@refinedev/antd 5.37.4 → 6.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.
- package/CHANGELOG.md +1760 -1778
- package/README.md +109 -17
- package/coverage/clover.xml +2005 -0
- package/coverage/coverage-final.json +1 -0
- package/coverage/lcov-report/base.css +224 -0
- package/coverage/lcov-report/block-navigation.js +87 -0
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/index.html +1331 -0
- package/coverage/lcov-report/prettify.css +1 -0
- package/coverage/lcov-report/prettify.js +2 -0
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +196 -0
- package/coverage/lcov-report/src/components/breadcrumb/index.html +116 -0
- package/coverage/lcov-report/src/components/breadcrumb/index.tsx.html +325 -0
- package/coverage/lcov-report/src/components/buttons/clone/index.html +116 -0
- package/coverage/lcov-report/src/components/buttons/clone/index.tsx.html +397 -0
- package/coverage/lcov-report/src/components/buttons/create/index.html +116 -0
- package/coverage/lcov-report/src/components/buttons/create/index.tsx.html +397 -0
- package/coverage/lcov-report/src/components/buttons/delete/index.html +116 -0
- package/coverage/lcov-report/src/components/buttons/delete/index.tsx.html +463 -0
- package/coverage/lcov-report/src/components/buttons/edit/index.html +116 -0
- package/coverage/lcov-report/src/components/buttons/edit/index.tsx.html +400 -0
- package/coverage/lcov-report/src/components/buttons/export/index.html +116 -0
- package/coverage/lcov-report/src/components/buttons/export/index.tsx.html +181 -0
- package/coverage/lcov-report/src/components/buttons/import/index.html +116 -0
- package/coverage/lcov-report/src/components/buttons/import/index.tsx.html +193 -0
- package/coverage/lcov-report/src/components/buttons/index.html +116 -0
- package/coverage/lcov-report/src/components/buttons/index.ts.html +118 -0
- package/coverage/lcov-report/src/components/buttons/list/index.html +116 -0
- package/coverage/lcov-report/src/components/buttons/list/index.tsx.html +451 -0
- package/coverage/lcov-report/src/components/buttons/refresh/index.html +116 -0
- package/coverage/lcov-report/src/components/buttons/refresh/index.tsx.html +268 -0
- package/coverage/lcov-report/src/components/buttons/save/index.html +116 -0
- package/coverage/lcov-report/src/components/buttons/save/index.tsx.html +181 -0
- package/coverage/lcov-report/src/components/buttons/show/index.html +116 -0
- package/coverage/lcov-report/src/components/buttons/show/index.tsx.html +397 -0
- package/coverage/lcov-report/src/components/crud/create/index.html +116 -0
- package/coverage/lcov-report/src/components/crud/create/index.tsx.html +514 -0
- package/coverage/lcov-report/src/components/crud/edit/index.html +116 -0
- package/coverage/lcov-report/src/components/crud/edit/index.tsx.html +766 -0
- package/coverage/lcov-report/src/components/crud/index.html +116 -0
- package/coverage/lcov-report/src/components/crud/index.ts.html +103 -0
- package/coverage/lcov-report/src/components/crud/list/index.html +116 -0
- package/coverage/lcov-report/src/components/crud/list/index.tsx.html +424 -0
- package/coverage/lcov-report/src/components/crud/show/index.html +116 -0
- package/coverage/lcov-report/src/components/crud/show/index.tsx.html +724 -0
- package/coverage/lcov-report/src/components/fields/boolean/index.html +116 -0
- package/coverage/lcov-report/src/components/fields/boolean/index.tsx.html +163 -0
- package/coverage/lcov-report/src/components/fields/date/index.html +116 -0
- package/coverage/lcov-report/src/components/fields/date/index.tsx.html +184 -0
- package/coverage/lcov-report/src/components/fields/email/index.html +116 -0
- package/coverage/lcov-report/src/components/fields/email/index.tsx.html +145 -0
- package/coverage/lcov-report/src/components/fields/file/index.html +116 -0
- package/coverage/lcov-report/src/components/fields/file/index.tsx.html +148 -0
- package/coverage/lcov-report/src/components/fields/image/index.html +116 -0
- package/coverage/lcov-report/src/components/fields/image/index.tsx.html +136 -0
- package/coverage/lcov-report/src/components/fields/index.html +116 -0
- package/coverage/lcov-report/src/components/fields/index.ts.html +118 -0
- package/coverage/lcov-report/src/components/fields/markdown/index.html +116 -0
- package/coverage/lcov-report/src/components/fields/markdown/index.tsx.html +133 -0
- package/coverage/lcov-report/src/components/fields/number/index.html +116 -0
- package/coverage/lcov-report/src/components/fields/number/index.tsx.html +193 -0
- package/coverage/lcov-report/src/components/fields/tag/index.html +116 -0
- package/coverage/lcov-report/src/components/fields/tag/index.tsx.html +124 -0
- package/coverage/lcov-report/src/components/fields/text/index.html +116 -0
- package/coverage/lcov-report/src/components/fields/text/index.tsx.html +130 -0
- package/coverage/lcov-report/src/components/fields/url/index.html +116 -0
- package/coverage/lcov-report/src/components/fields/url/index.tsx.html +157 -0
- package/coverage/lcov-report/src/components/index.html +116 -0
- package/coverage/lcov-report/src/components/index.ts.html +163 -0
- package/coverage/lcov-report/src/components/layout/header/index.html +116 -0
- package/coverage/lcov-report/src/components/layout/header/index.tsx.html +190 -0
- package/coverage/lcov-report/src/components/layout/index.html +116 -0
- package/coverage/lcov-report/src/components/layout/index.tsx.html +220 -0
- package/coverage/lcov-report/src/components/layout/sider/index.html +131 -0
- package/coverage/lcov-report/src/components/layout/sider/index.tsx.html +928 -0
- package/coverage/lcov-report/src/components/layout/sider/styles.ts.html +112 -0
- package/coverage/lcov-report/src/components/layout/title/index.html +116 -0
- package/coverage/lcov-report/src/components/layout/title/index.tsx.html +229 -0
- package/coverage/lcov-report/src/components/pageHeader/index.html +116 -0
- package/coverage/lcov-report/src/components/pageHeader/index.tsx.html +241 -0
- package/coverage/lcov-report/src/components/pages/auth/components/forgotPassword/index.html +116 -0
- package/coverage/lcov-report/src/components/pages/auth/components/forgotPassword/index.tsx.html +727 -0
- package/coverage/lcov-report/src/components/pages/auth/components/index.html +131 -0
- package/coverage/lcov-report/src/components/pages/auth/components/index.tsx.html +97 -0
- package/coverage/lcov-report/src/components/pages/auth/components/login/index.html +116 -0
- package/coverage/lcov-report/src/components/pages/auth/components/login/index.tsx.html +958 -0
- package/coverage/lcov-report/src/components/pages/auth/components/register/index.html +116 -0
- package/coverage/lcov-report/src/components/pages/auth/components/register/index.tsx.html +874 -0
- package/coverage/lcov-report/src/components/pages/auth/components/styles.ts.html +175 -0
- package/coverage/lcov-report/src/components/pages/auth/components/updatePassword/index.html +116 -0
- package/coverage/lcov-report/src/components/pages/auth/components/updatePassword/index.tsx.html +694 -0
- package/coverage/lcov-report/src/components/pages/auth/index.html +116 -0
- package/coverage/lcov-report/src/components/pages/auth/index.tsx.html +208 -0
- package/coverage/lcov-report/src/components/pages/error/index.html +116 -0
- package/coverage/lcov-report/src/components/pages/error/index.tsx.html +316 -0
- package/coverage/lcov-report/src/components/pages/index.html +116 -0
- package/coverage/lcov-report/src/components/pages/index.tsx.html +103 -0
- package/coverage/lcov-report/src/components/pages/login/index.html +131 -0
- package/coverage/lcov-report/src/components/pages/login/index.tsx.html +601 -0
- package/coverage/lcov-report/src/components/pages/login/styles.ts.html +160 -0
- package/coverage/lcov-report/src/components/pages/ready/index.html +116 -0
- package/coverage/lcov-report/src/components/pages/ready/index.tsx.html +373 -0
- package/coverage/lcov-report/src/components/pages/welcome/index.html +116 -0
- package/coverage/lcov-report/src/components/pages/welcome/index.tsx.html +115 -0
- package/coverage/lcov-report/src/components/table/components/filterDropdown/index.html +116 -0
- package/coverage/lcov-report/src/components/table/components/filterDropdown/index.tsx.html +421 -0
- package/coverage/lcov-report/src/components/table/components/index.html +116 -0
- package/coverage/lcov-report/src/components/table/components/index.ts.html +88 -0
- package/coverage/lcov-report/src/components/table/index.html +116 -0
- package/coverage/lcov-report/src/components/table/index.ts.html +88 -0
- package/coverage/lcov-report/src/components/themedLayout/header/index.html +116 -0
- package/coverage/lcov-report/src/components/themedLayout/header/index.tsx.html +226 -0
- package/coverage/lcov-report/src/components/themedLayout/index.html +116 -0
- package/coverage/lcov-report/src/components/themedLayout/index.tsx.html +217 -0
- package/coverage/lcov-report/src/components/themedLayout/sider/index.html +131 -0
- package/coverage/lcov-report/src/components/themedLayout/sider/index.tsx.html +1045 -0
- package/coverage/lcov-report/src/components/themedLayout/sider/styles.ts.html +112 -0
- package/coverage/lcov-report/src/components/themedLayout/title/index.html +116 -0
- package/coverage/lcov-report/src/components/themedLayout/title/index.tsx.html +349 -0
- package/coverage/lcov-report/src/components/themedLayoutV2/header/index.html +116 -0
- package/coverage/lcov-report/src/components/themedLayoutV2/header/index.tsx.html +256 -0
- package/coverage/lcov-report/src/components/themedLayoutV2/index.html +116 -0
- package/coverage/lcov-report/src/components/themedLayoutV2/index.tsx.html +226 -0
- package/coverage/lcov-report/src/components/themedLayoutV2/sider/index.html +131 -0
- package/coverage/lcov-report/src/components/themedLayoutV2/sider/index.tsx.html +1132 -0
- package/coverage/lcov-report/src/components/themedLayoutV2/sider/styles.ts.html +112 -0
- package/coverage/lcov-report/src/components/themedLayoutV2/title/index.html +116 -0
- package/coverage/lcov-report/src/components/themedLayoutV2/title/index.tsx.html +340 -0
- package/coverage/lcov-report/src/components/undoableNotification/index.html +116 -0
- package/coverage/lcov-report/src/components/undoableNotification/index.tsx.html +223 -0
- package/coverage/lcov-report/src/contexts/index.html +116 -0
- package/coverage/lcov-report/src/contexts/index.ts.html +97 -0
- package/coverage/lcov-report/src/contexts/themedLayoutContext/index.html +116 -0
- package/coverage/lcov-report/src/contexts/themedLayoutContext/index.tsx.html +178 -0
- package/coverage/lcov-report/src/definitions/table/index.html +116 -0
- package/coverage/lcov-report/src/definitions/table/index.ts.html +424 -0
- package/coverage/lcov-report/src/definitions/upload/index.html +116 -0
- package/coverage/lcov-report/src/definitions/upload/index.ts.html +172 -0
- package/coverage/lcov-report/src/hooks/fields/index.html +116 -0
- package/coverage/lcov-report/src/hooks/fields/index.ts.html +94 -0
- package/coverage/lcov-report/src/hooks/fields/useCheckboxGroup/index.html +116 -0
- package/coverage/lcov-report/src/hooks/fields/useCheckboxGroup/index.ts.html +361 -0
- package/coverage/lcov-report/src/hooks/fields/useRadioGroup/index.html +116 -0
- package/coverage/lcov-report/src/hooks/fields/useRadioGroup/index.ts.html +361 -0
- package/coverage/lcov-report/src/hooks/fields/useSelect/index.html +116 -0
- package/coverage/lcov-report/src/hooks/fields/useSelect/index.ts.html +238 -0
- package/coverage/lcov-report/src/hooks/form/index.html +131 -0
- package/coverage/lcov-report/src/hooks/form/index.ts.html +136 -0
- package/coverage/lcov-report/src/hooks/form/useDrawerForm/index.html +131 -0
- package/coverage/lcov-report/src/hooks/form/useDrawerForm/index.ts.html +103 -0
- package/coverage/lcov-report/src/hooks/form/useDrawerForm/useDrawerForm.ts.html +964 -0
- package/coverage/lcov-report/src/hooks/form/useForm.ts.html +718 -0
- package/coverage/lcov-report/src/hooks/form/useModalForm/index.html +131 -0
- package/coverage/lcov-report/src/hooks/form/useModalForm/index.ts.html +100 -0
- package/coverage/lcov-report/src/hooks/form/useModalForm/useModalForm.ts.html +1090 -0
- package/coverage/lcov-report/src/hooks/form/useStepsForm/index.html +131 -0
- package/coverage/lcov-report/src/hooks/form/useStepsForm/index.ts.html +100 -0
- package/coverage/lcov-report/src/hooks/form/useStepsForm/useStepsForm.ts.html +517 -0
- package/coverage/lcov-report/src/hooks/import/index.html +116 -0
- package/coverage/lcov-report/src/hooks/import/index.tsx.html +487 -0
- package/coverage/lcov-report/src/hooks/index.html +116 -0
- package/coverage/lcov-report/src/hooks/index.ts.html +109 -0
- package/coverage/lcov-report/src/hooks/list/index.html +116 -0
- package/coverage/lcov-report/src/hooks/list/index.ts.html +88 -0
- package/coverage/lcov-report/src/hooks/list/useSimpleList/index.html +131 -0
- package/coverage/lcov-report/src/hooks/list/useSimpleList/index.ts.html +88 -0
- package/coverage/lcov-report/src/hooks/list/useSimpleList/useSimpleList.ts.html +775 -0
- package/coverage/lcov-report/src/hooks/modal/index.html +116 -0
- package/coverage/lcov-report/src/hooks/modal/index.ts.html +88 -0
- package/coverage/lcov-report/src/hooks/modal/useModal/index.html +116 -0
- package/coverage/lcov-report/src/hooks/modal/useModal/index.tsx.html +214 -0
- package/coverage/lcov-report/src/hooks/table/index.html +116 -0
- package/coverage/lcov-report/src/hooks/table/index.ts.html +91 -0
- package/coverage/lcov-report/src/hooks/table/useEditableTable/index.html +131 -0
- package/coverage/lcov-report/src/hooks/table/useEditableTable/index.ts.html +88 -0
- package/coverage/lcov-report/src/hooks/table/useEditableTable/useEditableTable.ts.html +466 -0
- package/coverage/lcov-report/src/hooks/table/useTable/index.html +146 -0
- package/coverage/lcov-report/src/hooks/table/useTable/index.ts.html +88 -0
- package/coverage/lcov-report/src/hooks/table/useTable/paginationLink.tsx.html +166 -0
- package/coverage/lcov-report/src/hooks/table/useTable/useTable.ts.html +889 -0
- package/coverage/lcov-report/src/hooks/useFileUploadState/index.html +116 -0
- package/coverage/lcov-report/src/hooks/useFileUploadState/index.ts.html +187 -0
- package/coverage/lcov-report/src/hooks/useSiderVisible/index.html +116 -0
- package/coverage/lcov-report/src/hooks/useSiderVisible/index.ts.html +151 -0
- package/coverage/lcov-report/src/providers/notificationProvider/index.html +116 -0
- package/coverage/lcov-report/src/providers/notificationProvider/index.tsx.html +208 -0
- package/coverage/lcov.info +5292 -0
- package/dist/components/autoSaveIndicator/index.d.ts.map +1 -1
- package/dist/components/breadcrumb/index.d.ts +1 -1
- package/dist/components/breadcrumb/index.d.ts.map +1 -1
- package/dist/components/buttons/create/index.d.ts.map +1 -1
- package/dist/components/buttons/delete/index.d.ts.map +1 -1
- package/dist/components/buttons/import/index.d.ts.map +1 -1
- package/dist/components/buttons/types.d.ts +10 -10
- package/dist/components/buttons/types.d.ts.map +1 -1
- package/dist/components/crud/edit/index.d.ts.map +1 -1
- package/dist/components/crud/list/index.d.ts.map +1 -1
- package/dist/components/crud/show/index.d.ts.map +1 -1
- package/dist/components/crud/types.d.ts +4 -4
- package/dist/components/crud/types.d.ts.map +1 -1
- package/dist/components/fields/types.d.ts +10 -10
- package/dist/components/fields/types.d.ts.map +1 -1
- package/dist/components/layout/sider/index.d.ts.map +1 -1
- package/dist/components/layout/title/index.d.ts.map +1 -1
- package/dist/components/layout/types.d.ts.map +1 -1
- package/dist/components/pageHeader/index.d.ts +1 -1
- package/dist/components/pageHeader/index.d.ts.map +1 -1
- package/dist/components/pages/auth/components/forgotPassword/index.d.ts +1 -1
- package/dist/components/pages/auth/components/forgotPassword/index.d.ts.map +1 -1
- package/dist/components/pages/auth/components/login/index.d.ts +1 -1
- package/dist/components/pages/auth/components/login/index.d.ts.map +1 -1
- package/dist/components/pages/auth/components/register/index.d.ts +1 -1
- package/dist/components/pages/auth/components/register/index.d.ts.map +1 -1
- package/dist/components/pages/auth/components/updatePassword/index.d.ts +1 -1
- package/dist/components/pages/auth/components/updatePassword/index.d.ts.map +1 -1
- package/dist/components/pages/auth/index.d.ts +1 -1
- package/dist/components/pages/auth/index.d.ts.map +1 -1
- package/dist/components/pages/login/index.d.ts.map +1 -1
- package/dist/components/pages/ready/index.d.ts.map +1 -1
- package/dist/components/table/components/filterDropdown/index.d.ts +2 -2
- package/dist/components/table/components/filterDropdown/index.d.ts.map +1 -1
- package/dist/components/themedLayout/header/index.d.ts.map +1 -1
- package/dist/components/themedLayout/types.d.ts.map +1 -1
- package/dist/components/themedLayoutV2/header/index.d.ts.map +1 -1
- package/dist/components/themedLayoutV2/index.d.ts.map +1 -1
- package/dist/components/themedLayoutV2/sider/index.d.ts.map +1 -1
- package/dist/components/themedLayoutV2/types.d.ts +1 -1
- package/dist/components/themedLayoutV2/types.d.ts.map +1 -1
- package/dist/components/undoableNotification/index.d.ts +1 -1
- package/dist/components/undoableNotification/index.d.ts.map +1 -1
- package/dist/contexts/index.d.ts.map +1 -1
- package/dist/contexts/themedLayoutContext/IThemedLayoutContext.d.ts.map +1 -1
- package/dist/contexts/themedLayoutContext/index.d.ts.map +1 -1
- package/dist/definitions/table/index.d.ts +6 -3
- package/dist/definitions/table/index.d.ts.map +1 -1
- package/dist/definitions/themes/index.d.ts +2 -2
- package/dist/definitions/themes/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/hooks/fields/useCheckboxGroup/index.d.ts +2 -2
- package/dist/hooks/fields/useCheckboxGroup/index.d.ts.map +1 -1
- package/dist/hooks/fields/useRadioGroup/index.d.ts +2 -2
- package/dist/hooks/fields/useRadioGroup/index.d.ts.map +1 -1
- package/dist/hooks/fields/useSelect/index.d.ts +1 -1
- package/dist/hooks/fields/useSelect/index.d.ts.map +1 -1
- package/dist/hooks/form/index.d.ts.map +1 -1
- package/dist/hooks/form/useDrawerForm/index.d.ts.map +1 -1
- package/dist/hooks/form/useDrawerForm/useDrawerForm.d.ts +2 -2
- package/dist/hooks/form/useDrawerForm/useDrawerForm.d.ts.map +1 -1
- package/dist/hooks/form/useForm.d.ts +2 -2
- package/dist/hooks/form/useForm.d.ts.map +1 -1
- package/dist/hooks/form/useModalForm/index.d.ts.map +1 -1
- package/dist/hooks/form/useModalForm/useModalForm.d.ts +4 -4
- package/dist/hooks/form/useModalForm/useModalForm.d.ts.map +1 -1
- package/dist/hooks/form/useStepsForm/index.d.ts.map +1 -1
- package/dist/hooks/form/useStepsForm/useStepsForm.d.ts +3 -3
- package/dist/hooks/form/useStepsForm/useStepsForm.d.ts.map +1 -1
- package/dist/hooks/import/index.d.ts.map +1 -1
- package/dist/hooks/list/useSimpleList/useSimpleList.d.ts +3 -3
- package/dist/hooks/list/useSimpleList/useSimpleList.d.ts.map +1 -1
- package/dist/hooks/modal/useModal/index.d.ts +2 -2
- package/dist/hooks/modal/useModal/index.d.ts.map +1 -1
- package/dist/hooks/table/useEditableTable/useEditableTable.d.ts +2 -2
- package/dist/hooks/table/useEditableTable/useEditableTable.d.ts.map +1 -1
- package/dist/hooks/table/useTable/paginationLink.d.ts +2 -2
- package/dist/hooks/table/useTable/paginationLink.d.ts.map +1 -1
- package/dist/hooks/table/useTable/useTable.d.ts +2 -2
- package/dist/hooks/table/useTable/useTable.d.ts.map +1 -1
- package/dist/hooks/useFileUploadState/index.d.ts +1 -1
- package/dist/hooks/useFileUploadState/index.d.ts.map +1 -1
- package/dist/hooks/useSiderVisible/index.d.ts +1 -1
- package/dist/hooks/useSiderVisible/index.d.ts.map +1 -1
- package/dist/hooks/useThemedLayoutContext/index.d.ts +1 -1
- package/dist/hooks/useThemedLayoutContext/index.d.ts.map +1 -1
- package/dist/iife/index.js +10 -10
- package/dist/iife/index.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/interfaces/field.d.ts +1 -1
- package/dist/interfaces/field.d.ts.map +1 -1
- package/dist/interfaces/index.d.ts +3 -3
- package/dist/interfaces/index.d.ts.map +1 -1
- package/dist/interfaces/upload.d.ts.map +1 -1
- package/package.json +35 -37
- package/refine.config.js +497 -524
- package/src/components/autoSaveIndicator/index.tsx +69 -69
- package/src/components/breadcrumb/index.tsx +63 -65
- package/src/components/buttons/clone/index.tsx +86 -86
- package/src/components/buttons/create/index.tsx +85 -86
- package/src/components/buttons/delete/index.tsx +114 -119
- package/src/components/buttons/edit/index.tsx +86 -86
- package/src/components/buttons/export/index.tsx +17 -17
- package/src/components/buttons/import/index.tsx +19 -20
- package/src/components/buttons/list/index.tsx +105 -105
- package/src/components/buttons/refresh/index.tsx +50 -50
- package/src/components/buttons/save/index.tsx +17 -17
- package/src/components/buttons/show/index.tsx +86 -86
- package/src/components/buttons/types.ts +20 -20
- package/src/components/crud/create/index.tsx +120 -120
- package/src/components/crud/edit/index.tsx +205 -207
- package/src/components/crud/list/index.tsx +88 -90
- package/src/components/crud/show/index.tsx +175 -185
- package/src/components/crud/types.ts +41 -56
- package/src/components/fields/boolean/index.tsx +11 -11
- package/src/components/fields/date/index.tsx +13 -13
- package/src/components/fields/email/index.tsx +5 -5
- package/src/components/fields/file/index.tsx +8 -8
- package/src/components/fields/image/index.tsx +4 -4
- package/src/components/fields/markdown/index.tsx +9 -9
- package/src/components/fields/number/index.tsx +17 -17
- package/src/components/fields/tag/index.tsx +1 -1
- package/src/components/fields/text/index.tsx +1 -1
- package/src/components/fields/types.ts +18 -18
- package/src/components/fields/url/index.tsx +8 -8
- package/src/components/layout/header/index.tsx +25 -25
- package/src/components/layout/index.tsx +30 -30
- package/src/components/layout/sider/index.tsx +238 -246
- package/src/components/layout/sider/styles.ts +5 -5
- package/src/components/layout/title/index.tsx +40 -40
- package/src/components/layout/types.ts +6 -6
- package/src/components/pageHeader/index.tsx +44 -44
- package/src/components/pages/auth/components/forgotPassword/index.tsx +177 -180
- package/src/components/pages/auth/components/login/index.tsx +258 -271
- package/src/components/pages/auth/components/register/index.tsx +247 -263
- package/src/components/pages/auth/components/styles.ts +16 -16
- package/src/components/pages/auth/components/updatePassword/index.tsx +160 -174
- package/src/components/pages/auth/index.tsx +23 -23
- package/src/components/pages/error/index.tsx +57 -57
- package/src/components/pages/login/index.tsx +120 -146
- package/src/components/pages/login/styles.ts +12 -12
- package/src/components/pages/ready/index.tsx +72 -80
- package/src/components/pages/welcome/index.tsx +1 -1
- package/src/components/table/components/filterDropdown/index.tsx +90 -93
- package/src/components/themedLayout/header/index.tsx +28 -32
- package/src/components/themedLayout/index.tsx +30 -30
- package/src/components/themedLayout/sider/index.tsx +279 -279
- package/src/components/themedLayout/sider/styles.ts +5 -5
- package/src/components/themedLayout/title/index.tsx +66 -66
- package/src/components/themedLayout/types.ts +8 -8
- package/src/components/themedLayoutV2/header/index.tsx +37 -41
- package/src/components/themedLayoutV2/index.tsx +34 -36
- package/src/components/themedLayoutV2/sider/index.tsx +309 -313
- package/src/components/themedLayoutV2/sider/styles.ts +5 -5
- package/src/components/themedLayoutV2/title/index.tsx +66 -66
- package/src/components/themedLayoutV2/types.ts +9 -9
- package/src/components/undoableNotification/index.tsx +31 -31
- package/src/contexts/index.ts +2 -2
- package/src/contexts/themedLayoutContext/IThemedLayoutContext.ts +4 -4
- package/src/contexts/themedLayoutContext/index.tsx +22 -22
- package/src/definitions/table/index.ts +94 -83
- package/src/definitions/themes/index.ts +35 -35
- package/src/definitions/upload/index.ts +17 -17
- package/src/hooks/fields/useCheckboxGroup/index.ts +64 -64
- package/src/hooks/fields/useRadioGroup/index.ts +60 -63
- package/src/hooks/fields/useSelect/index.ts +30 -30
- package/src/hooks/form/index.ts +10 -10
- package/src/hooks/form/useDrawerForm/index.ts +4 -4
- package/src/hooks/form/useDrawerForm/useDrawerForm.ts +257 -261
- package/src/hooks/form/useForm.ts +256 -259
- package/src/hooks/form/useModalForm/index.ts +3 -3
- package/src/hooks/form/useModalForm/useModalForm.ts +289 -295
- package/src/hooks/form/useStepsForm/index.ts +3 -3
- package/src/hooks/form/useStepsForm/useStepsForm.ts +96 -96
- package/src/hooks/import/index.tsx +104 -106
- package/src/hooks/list/useSimpleList/useSimpleList.ts +179 -185
- package/src/hooks/modal/useModal/index.tsx +24 -24
- package/src/hooks/table/useEditableTable/useEditableTable.ts +85 -85
- package/src/hooks/table/useTable/paginationLink.tsx +17 -17
- package/src/hooks/table/useTable/useTable.ts +197 -207
- package/src/hooks/useFileUploadState/index.ts +20 -20
- package/src/hooks/useSiderVisible/index.ts +16 -16
- package/src/hooks/useThemedLayoutContext/index.ts +12 -12
- package/src/index.tsx +4 -4
- package/src/interfaces/field.ts +1 -1
- package/src/interfaces/index.ts +7 -8
- package/src/interfaces/upload.ts +7 -7
- package/src/providers/notificationProvider/index.tsx +78 -78
- package/src/types/index.d.ts +2 -2
- package/src/types/sunflower.d.ts +68 -68
- package/tsconfig.json +30 -26
package/dist/esm/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../src/hooks/form/useForm.ts","../../src/hooks/form/useModalForm/useModalForm.ts","../../src/hooks/modal/useModal/index.tsx","../../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/useSiderVisible/index.ts","../../src/contexts/themedLayoutContext/index.tsx","../../src/hooks/useThemedLayoutContext/index.ts","../../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/themedLayout/index.tsx","../../src/components/themedLayout/sider/index.tsx","../../src/components/themedLayout/sider/styles.ts","../../src/components/themedLayout/header/index.tsx","../../src/components/themedLayout/title/index.tsx","../../src/components/themedLayoutV2/index.tsx","../../src/components/themedLayoutV2/sider/index.tsx","../../src/components/themedLayoutV2/sider/styles.ts","../../src/components/themedLayoutV2/header/index.tsx","../../src/components/themedLayoutV2/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/components/autoSaveIndicator/index.tsx","../../src/definitions/upload/index.ts","../../src/definitions/themes/index.ts"],"sourcesContent":["import React from \"react\";\nimport { FormInstance, FormProps, Form, ButtonProps } from \"antd\";\nimport { useForm as useFormSF } from \"sunflower-antd\";\nimport {\n AutoSaveProps,\n flattenObjectKeys,\n propertyPathToArray,\n} from \"@refinedev/core\";\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 useTranslate,\n useRefineContext,\n} from \"@refinedev/core\";\n\nexport type UseFormProps<\n TQueryFnData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n TData extends BaseRecord = TQueryFnData,\n TResponse extends BaseRecord = TData,\n TResponseError extends HttpError = TError,\n> = UseFormPropsCore<\n TQueryFnData,\n TError,\n TVariables,\n TData,\n TResponse,\n TResponseError\n> & {\n submitOnEnter?: boolean;\n /**\n * Shows notification when unsaved changes exist\n */\n warnWhenUnsavedChanges?: boolean;\n /**\n * Disables server-side validation\n * @default false\n * @see {@link https://refine.dev/docs/advanced-tutorials/forms/server-side-form-validation/}\n */\n disableServerSideValidation?: boolean;\n} & AutoSaveProps<TVariables>;\n\nexport type UseFormReturnType<\n TQueryFnData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n TData extends BaseRecord = TQueryFnData,\n TResponse extends BaseRecord = TData,\n TResponseError extends HttpError = TError,\n> = UseFormReturnTypeCore<\n TQueryFnData,\n TError,\n TVariables,\n TData,\n TResponse,\n TResponseError\n> & {\n form: FormInstance<TVariables>;\n formProps: FormProps<TVariables>;\n saveButtonProps: ButtonProps & {\n onClick: () => void;\n };\n onFinish: (\n values?: TVariables,\n ) => Promise<CreateResponse<TResponse> | UpdateResponse<TResponse> | 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-reference/core/hooks/useForm} for more details.\n *\n * @typeParam TData - Result data of the query extends {@link https://refine.dev/docs/api-reference/core/interfaceReferences#baserecord `BaseRecord`}\n * @typeParam TError - Custom error object that extends {@link https://refine.dev/docs/api-reference/core/interfaceReferences/#httperror `HttpError`}\n * @typeParam TVariables - Values for params. default `{}`\n * @typeParam TData - Result data returned by the `select` function. Extends {@link https://refine.dev/docs/api-reference/core/interfaceReferences#baserecord `BaseRecord`}. Defaults to `TQueryFnData`\n * @typeParam TResponse - Result data returned by the mutation function. Extends {@link https://refine.dev/docs/api-reference/core/interfaceReferences#baserecord `BaseRecord`}. Defaults to `TData`\n * @typeParam TResponseError - Custom error object that extends {@link https://refine.dev/docs/api-reference/core/interfaceReferences#httperror `HttpError`}. Defaults to `TError`\n *\n *\n */\nexport const useForm = <\n TQueryFnData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n TData extends BaseRecord = TQueryFnData,\n TResponse extends BaseRecord = TData,\n TResponseError extends HttpError = TError,\n>({\n action,\n resource,\n onMutationSuccess: onMutationSuccessProp,\n onMutationError: onMutationErrorProp,\n autoSave,\n submitOnEnter = false,\n warnWhenUnsavedChanges: warnWhenUnsavedChangesProp,\n redirect,\n successNotification,\n errorNotification,\n meta,\n metaData,\n queryMeta,\n mutationMeta,\n liveMode,\n liveParams,\n mutationMode,\n dataProviderName,\n onLiveEvent,\n invalidates,\n undoableTimeout,\n queryOptions,\n createMutationOptions,\n updateMutationOptions,\n id: idFromProps,\n overtimeOptions,\n optimisticUpdateMap,\n disableServerSideValidation: disableServerSideValidationProp = false,\n}: UseFormProps<\n TQueryFnData,\n TError,\n TVariables,\n TData,\n TResponse,\n TResponseError\n> = {}): UseFormReturnType<\n TQueryFnData,\n TError,\n TVariables,\n TData,\n TResponse,\n TResponseError\n> => {\n const { options } = useRefineContext();\n const disableServerSideValidation =\n options?.disableServerSideValidation || disableServerSideValidationProp;\n\n const translate = useTranslate();\n\n const [formAnt] = Form.useForm();\n const formSF = useFormSF<TResponse, TVariables>({\n form: formAnt,\n });\n const { form } = formSF;\n\n const useFormCoreResult = useFormCore<\n TQueryFnData,\n TError,\n TVariables,\n TData,\n TResponse,\n TResponseError\n >({\n onMutationSuccess: onMutationSuccessProp\n ? onMutationSuccessProp\n : undefined,\n onMutationError: async (error, _variables, _context) => {\n if (disableServerSideValidation) {\n onMutationErrorProp?.(error, _variables, _context);\n return;\n }\n\n // antd form expects error object to be in a specific format.\n let parsedErrors: {\n name: string | number | (string | number)[];\n errors?: string[] | undefined;\n }[] = [];\n\n // reset antd errors before setting new errors\n const fieldsValue = form.getFieldsValue() as unknown as object;\n\n const fields = Object.keys(flattenObjectKeys(fieldsValue));\n\n parsedErrors = fields.map((field) => {\n return {\n name: propertyPathToArray(field),\n errors: undefined,\n };\n });\n\n form.setFields(parsedErrors);\n\n const errors = error?.errors;\n // parse errors to antd form errors\n for (const key in errors) {\n const fieldError = errors[key];\n\n let newError: string[] = [];\n\n if (Array.isArray(fieldError)) {\n newError = fieldError;\n }\n\n if (typeof fieldError === \"string\") {\n newError = [fieldError];\n }\n\n if (typeof fieldError === \"boolean\" && fieldError) {\n newError = [\"Field is not valid.\"];\n }\n\n if (typeof fieldError === \"object\" && \"key\" in fieldError) {\n const translatedMessage = translate(\n fieldError.key,\n fieldError.message,\n );\n\n newError = [translatedMessage];\n }\n\n parsedErrors.push({\n name: propertyPathToArray(key),\n errors: newError,\n });\n }\n\n form.setFields([...parsedErrors]);\n\n onMutationErrorProp?.(error, _variables, _context);\n },\n redirect,\n action,\n resource,\n successNotification,\n errorNotification,\n meta: pickNotDeprecated(meta, metaData),\n metaData: pickNotDeprecated(meta, metaData),\n queryMeta,\n mutationMeta,\n liveMode,\n liveParams,\n mutationMode,\n dataProviderName,\n onLiveEvent,\n invalidates,\n undoableTimeout,\n queryOptions,\n createMutationOptions,\n updateMutationOptions,\n id: idFromProps,\n overtimeOptions,\n optimisticUpdateMap,\n autoSave,\n });\n\n const { formLoading, onFinish, queryResult, id, onFinishAutoSave } =\n 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, allValues: any) => {\n if (changeValues && warnWhenUnsavedChanges) {\n setWarnWhen(true);\n }\n\n if (autoSave?.enabled) {\n setWarnWhen(false);\n\n const onFinishFromProps =\n autoSave?.onFinish ?? ((values) => values);\n\n return onFinishAutoSave(onFinishFromProps(allValues));\n }\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 React, { useCallback } from \"react\";\nimport { FormInstance, FormProps, ModalProps } from \"antd\";\n\nimport {\n useTranslate,\n useWarnAboutChange,\n HttpError,\n UseFormProps as UseFormPropsCore,\n BaseRecord,\n LiveModeProps,\n BaseKey,\n useUserFriendlyName,\n useResource,\n FormWithSyncWithLocationParams,\n useParsed,\n useGo,\n useInvalidate,\n} from \"@refinedev/core\";\nimport { useForm, UseFormProps, UseFormReturnType } from \"../useForm\";\nimport { useModal } from \"@hooks/modal\";\n\nexport type useModalFormFromSFReturnType<TResponse, 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<TResponse>;\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 TQueryFnData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n TData extends BaseRecord = TQueryFnData,\n TResponse extends BaseRecord = TData,\n TResponseError extends HttpError = TError,\n> = Omit<\n UseFormReturnType<\n TQueryFnData,\n TError,\n TVariables,\n TData,\n TResponse,\n TResponseError\n >,\n \"saveButtonProps\" | \"deleteButtonProps\"\n> &\n useModalFormFromSFReturnType<TResponse, TVariables>;\n\nexport type UseModalFormProps<\n TQueryFnData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n TData extends BaseRecord = TQueryFnData,\n TResponse extends BaseRecord = TData,\n TResponseError extends HttpError = TError,\n> = UseFormPropsCore<\n TQueryFnData,\n TError,\n TVariables,\n TData,\n TResponse,\n TResponseError\n> &\n UseFormProps<\n TQueryFnData,\n TError,\n TVariables,\n TData,\n TResponse,\n TResponseError\n > &\n useModalFormConfig &\n LiveModeProps &\n FormWithSyncWithLocationParams & {\n defaultVisible?: boolean;\n autoSubmitClose?: boolean;\n autoResetForm?: boolean;\n };\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/api-reference/antd/hooks/form/useModalForm} for more details.\n *\n * @typeParam TData - Result data of the query extends {@link https://refine.dev/docs/api-reference/core/interfaceReferences#baserecord `BaseRecord`}\n * @typeParam TError - Custom error object that extends {@link https://refine.dev/docs/api-reference/core/interfaceReferences/#httperror `HttpError`}\n * @typeParam TVariables - Values for params. default `{}`\n *\n *\n */\nexport const useModalForm = <\n TQueryFnData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n TData extends BaseRecord = TQueryFnData,\n TResponse extends BaseRecord = TData,\n TResponseError extends HttpError = TError,\n>({\n syncWithLocation,\n defaultVisible = false,\n autoSubmitClose = true,\n autoResetForm = true,\n autoSave,\n invalidates,\n ...rest\n}: UseModalFormProps<\n TQueryFnData,\n TError,\n TVariables,\n TData,\n TResponse,\n TResponseError\n>): UseModalFormReturnType<\n TQueryFnData,\n TError,\n TVariables,\n TData,\n TResponse,\n TResponseError\n> => {\n const [initiallySynced, setInitiallySynced] = React.useState(false);\n const invalidate = useInvalidate();\n\n const {\n resource,\n action: actionFromParams,\n identifier,\n } = useResource(rest.resource);\n\n const parsed = useParsed();\n const go = useGo();\n const getUserFriendlyName = useUserFriendlyName();\n\n const action = rest.action ?? actionFromParams ?? \"\";\n\n const syncingId = !(\n typeof syncWithLocation === \"object\" &&\n syncWithLocation?.syncId === false\n );\n\n const syncWithLocationKey =\n typeof syncWithLocation === \"object\" && \"key\" in syncWithLocation\n ? syncWithLocation.key\n : resource && action && syncWithLocation\n ? `modal-${identifier}-${action}`\n : undefined;\n\n const useFormProps = useForm<\n TQueryFnData,\n TError,\n TVariables,\n TData,\n TResponse,\n TResponseError\n >({\n meta: {\n ...(syncWithLocationKey\n ? { [syncWithLocationKey]: undefined }\n : {}),\n ...rest.meta,\n },\n autoSave,\n invalidates,\n ...rest,\n });\n\n const { form, formProps, id, setId, formLoading, onFinish, autoSaveProps } =\n useFormProps;\n\n const translate = useTranslate();\n\n const { warnWhen, setWarnWhen } = useWarnAboutChange();\n\n const { show, close, modalProps } = useModal({\n modalProps: {\n open: defaultVisible,\n },\n });\n\n const visible = modalProps.open || false;\n const sunflowerUseModal: useModalFormFromSFReturnType<\n TResponse,\n TVariables\n > = {\n modalProps,\n form,\n formLoading,\n formProps,\n formResult: undefined,\n formValues: form.getFieldsValue,\n defaultFormValuesLoading: false,\n initialValues: {},\n submit: onFinish as any,\n close,\n open: modalProps.open || false,\n show,\n visible,\n };\n\n React.useEffect(() => {\n if (initiallySynced === false && syncWithLocationKey) {\n const openStatus = parsed?.params?.[syncWithLocationKey]?.open;\n\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 setInitiallySynced(true);\n }\n }, [syncWithLocationKey, parsed, syncingId, setId]);\n\n React.useEffect(() => {\n if (initiallySynced === 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 saveButtonPropsSF = {\n disabled: formLoading,\n loading: formLoading,\n onClick: () => {\n form.submit();\n },\n };\n\n const handleClose = useCallback(() => {\n if (autoSaveProps.status === \"success\" && autoSave?.invalidateOnClose) {\n invalidate({\n id,\n invalidates: invalidates || [\"list\", \"many\", \"detail\"],\n dataProviderName: rest.dataProviderName,\n resource: identifier,\n });\n }\n\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, autoSaveProps.status]);\n\n const handleShow = useCallback(\n (showId?: BaseKey) => {\n if (typeof showId !== \"undefined\") {\n setId?.(showId);\n }\n const needsIdToOpen = action === \"edit\" || action === \"clone\";\n const hasId =\n typeof showId !== \"undefined\" || typeof id !== \"undefined\";\n if (needsIdToOpen ? hasId : true) {\n sunflowerUseModal.show();\n }\n },\n [id],\n );\n\n const { visible: _visible, ...otherModalProps } = modalProps;\n const newModalProps = { open: _visible, ...otherModalProps };\n\n return {\n ...useFormProps,\n ...sunflowerUseModal,\n show: handleShow,\n close: handleClose,\n open: visible,\n formProps: {\n ...formProps,\n ...useFormProps.formProps,\n onValuesChange: formProps?.onValuesChange,\n onKeyUp: formProps?.onKeyUp,\n onFinish: async (values) => {\n await onFinish(values);\n\n if (autoSubmitClose) {\n close();\n }\n\n if (autoResetForm) {\n form.resetFields();\n }\n },\n },\n modalProps: {\n ...newModalProps,\n width: \"1000px\",\n okButtonProps: saveButtonPropsSF,\n title: translate(\n `${identifier}.titles.${rest.action}`,\n `${getUserFriendlyName(\n `${rest.action} ${\n resource?.meta?.label ??\n resource?.options?.label ??\n resource?.label ??\n identifier\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 { 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/api-reference/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, { useCallback } from \"react\";\nimport { UseFormConfig } from \"sunflower-antd\";\nimport { FormInstance, FormProps, DrawerProps, ButtonProps } from \"antd\";\nimport {\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 useModal,\n useInvalidate,\n} from \"@refinedev/core\";\n\nimport { useForm, UseFormProps, UseFormReturnType } from \"../useForm\";\nimport { DeleteButtonProps } from \"../../../components\";\n\nexport interface UseDrawerFormConfig extends UseFormConfig {\n action: \"show\" | \"edit\" | \"create\" | \"clone\";\n}\n\nexport type UseDrawerFormProps<\n TQueryFnData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n TData extends BaseRecord = TQueryFnData,\n TResponse extends BaseRecord = TData,\n TResponseError extends HttpError = TError,\n> = UseFormPropsCore<\n TQueryFnData,\n TError,\n TVariables,\n TData,\n TResponse,\n TResponseError\n> &\n UseFormProps<\n TQueryFnData,\n TError,\n TVariables,\n TData,\n TResponse,\n TResponseError\n > &\n UseDrawerFormConfig &\n LiveModeProps &\n FormWithSyncWithLocationParams & {\n defaultVisible?: boolean;\n autoSubmitClose?: boolean;\n autoResetForm?: boolean;\n };\n\nexport type UseDrawerFormReturnType<\n TQueryFnData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n TData extends BaseRecord = TQueryFnData,\n TResponse extends BaseRecord = TData,\n TResponseError extends HttpError = TError,\n> = UseFormReturnType<\n TQueryFnData,\n TError,\n TVariables,\n TData,\n TResponse,\n TResponseError\n> & {\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/api-reference/antd/hooks/form/useDrawerForm} for more details.\n *\n * @typeParam TData - Result data of the query extends {@link https://refine.dev/docs/api-reference/core/interfaceReferences#baserecord `BaseRecord`}\n * @typeParam TError - Custom error object that extends {@link https://refine.dev/docs/api-reference/core/interfaceReferences/#httperror `HttpError`}\n * @typeParam TVariables - Values for params. default `{}`\n *\n *\n */\n\nexport const useDrawerForm = <\n TQueryFnData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n TData extends BaseRecord = TQueryFnData,\n TResponse extends BaseRecord = TData,\n TResponseError extends HttpError = TError,\n>({\n syncWithLocation,\n defaultVisible = false,\n autoSubmitClose = true,\n autoResetForm = true,\n autoSave,\n invalidates,\n ...rest\n}: UseDrawerFormProps<\n TQueryFnData,\n TError,\n TVariables,\n TData,\n TResponse,\n TResponseError\n>): UseDrawerFormReturnType<\n TQueryFnData,\n TError,\n TVariables,\n TData,\n TResponse,\n TResponseError\n> => {\n const invalidate = useInvalidate();\n const [initiallySynced, setInitiallySynced] = React.useState(false);\n\n const { visible, show, close } = useModal({\n defaultVisible,\n });\n\n const {\n resource,\n action: actionFromParams,\n identifier,\n } = 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\" &&\n syncWithLocation?.syncId === false\n );\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 useFormProps = useForm<\n TQueryFnData,\n TError,\n TVariables,\n TData,\n TResponse,\n TResponseError\n >({\n meta: {\n ...(syncWithLocationKey\n ? { [syncWithLocationKey]: undefined }\n : {}),\n ...rest.meta,\n },\n autoSave,\n invalidates,\n ...rest,\n });\n\n const { form, formProps, formLoading, id, setId, onFinish, autoSaveProps } =\n useFormProps;\n\n React.useEffect(() => {\n if (initiallySynced === false && syncWithLocationKey) {\n const openStatus = parsed?.params?.[syncWithLocationKey]?.open;\n if (typeof openStatus === \"boolean\") {\n openStatus ? show() : close();\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 setInitiallySynced(true);\n }\n }, [syncWithLocationKey, parsed, syncingId, setId, initiallySynced]);\n\n React.useEffect(() => {\n if (initiallySynced === 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 }, [\n id,\n visible,\n show,\n close,\n syncWithLocationKey,\n syncingId,\n initiallySynced,\n ]);\n\n const translate = useTranslate();\n\n const { warnWhen, setWarnWhen } = useWarnAboutChange();\n\n const saveButtonProps = {\n disabled: formLoading,\n onClick: () => {\n form.submit();\n },\n loading: formLoading,\n };\n\n const deleteButtonProps = {\n recordItemId: id,\n onSuccess: () => {\n setId?.(undefined);\n close();\n },\n };\n\n const handleClose = useCallback(() => {\n if (autoSaveProps.status === \"success\" && autoSave?.invalidateOnClose) {\n invalidate({\n id,\n invalidates: invalidates || [\"list\", \"many\", \"detail\"],\n dataProviderName: rest.dataProviderName,\n resource: identifier,\n });\n }\n\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 close();\n setId?.(undefined);\n }, [warnWhen]);\n\n const handleShow = useCallback(\n (showId?: BaseKey) => {\n if (typeof showId !== \"undefined\") {\n setId?.(showId);\n }\n const needsIdToOpen = action === \"edit\" || action === \"clone\";\n const hasId =\n typeof showId !== \"undefined\" || typeof id !== \"undefined\";\n if (needsIdToOpen ? hasId : true) {\n show();\n }\n },\n [id],\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: async (values) => {\n await onFinish(values);\n\n if (autoSubmitClose) {\n close();\n }\n\n if (autoResetForm) {\n form.resetFields();\n }\n },\n },\n drawerProps: {\n width: \"500px\",\n onClose: handleClose,\n open: visible,\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<TResponse, TVariables> = {\n current: number;\n gotoStep: (step: number) => Promise<TVariables> | true;\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<TResponse>;\n};\n\nexport type UseStepsFormReturnType<\n TQueryFnData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n TData extends BaseRecord = TQueryFnData,\n TResponse extends BaseRecord = TData,\n TResponseError extends HttpError = TError,\n> = UseFormReturnType<\n TQueryFnData,\n TError,\n TVariables,\n TData,\n TResponse,\n TResponseError\n> &\n UseStepsFormFromSFReturnType<TResponse, TVariables>;\n\nexport type UseStepsFormProps<\n TQueryFnData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n TData extends BaseRecord = TQueryFnData,\n TResponse extends BaseRecord = TData,\n TResponseError extends HttpError = TError,\n> = UseFormPropsCore<\n TQueryFnData,\n TError,\n TVariables,\n TData,\n TResponse,\n TResponseError\n> &\n UseFormProps<\n TQueryFnData,\n TError,\n TVariables,\n TData,\n TResponse,\n TResponseError\n > &\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/api-reference/antd/hooks/form/useStepsForm} for more details.\n *\n * @typeParam TData - Result data of the query extends {@link https://refine.dev/docs/api-reference/core/interfaceReferences#baserecord `BaseRecord`}\n * @typeParam TError - Custom error object that extends {@link https://refine.dev/docs/api-reference/core/interfaceReferences/#httperror `HttpError`}\n * @typeParam TVariables - Values for params. default `{}`\n *\n *\n */\nexport const useStepsForm = <\n TQueryFnData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n TData extends BaseRecord = TQueryFnData,\n TResponse extends BaseRecord = TData,\n TResponseError extends HttpError = TError,\n>(\n props: UseStepsFormProps<\n TQueryFnData,\n TError,\n TVariables,\n TData,\n TResponse,\n TResponseError\n > = {},\n): UseStepsFormReturnType<\n TQueryFnData,\n TError,\n TVariables,\n TData,\n TResponse,\n TResponseError\n> => {\n const useFormProps = useForm<\n TQueryFnData,\n TError,\n TVariables,\n TData,\n TResponse,\n TResponseError\n >({\n ...props,\n });\n const { form, formProps } = useFormProps;\n\n const stepsPropsSunflower = useStepsFormSF<TResponse, 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 formLoading: useFormProps.formLoading,\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 HttpError,\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<TQueryFnData, TError, TSearchVariables, TData> =\n useTablePropsCore<TQueryFnData, TError, TData> & {\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-reference/antd/hooks/table/useTable/} for more details.\n *\n * @typeParam TQueryFnData - Result data returned by the query function. Extends {@link https://refine.dev/docs/api-reference/core/interfaceReferences#baserecord `BaseRecord`}\n * @typeParam TError - Custom error object that extends {@link https://refine.dev/docs/api-reference/core/interfaceReferences#httperror `HttpError`}\n * @typeParam TSearchVariables - Values for search params\n * @typeParam TData - Result data returned by the `select` function. Extends {@link https://refine.dev/docs/api-reference/core/interfaceReferences#baserecord `BaseRecord`}. Defaults to `TQueryFnData`\n *\n */\n\nexport const useTable = <\n TQueryFnData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TSearchVariables = unknown,\n TData extends BaseRecord = TQueryFnData,\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<\n TQueryFnData,\n TError,\n TSearchVariables,\n TData\n> = {}): useTableReturnType<TData, TError, TSearchVariables> => {\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 overtime,\n } = useTableCore<TQueryFnData, TError, TData>({\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 overtime,\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 TQueryFnData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n TSearchVariables = unknown,\n TData extends BaseRecord = TQueryFnData,\n> = useTableReturnType<TData, TError, TSearchVariables> &\n UseFormReturnType<TQueryFnData, 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 TQueryFnData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n TSearchVariables = unknown,\n TData extends BaseRecord = TQueryFnData,\n> = Omit<\n useTableProps<TQueryFnData, TError, TSearchVariables, TData>,\n \"successNotification\" | \"errorNotification\"\n> &\n UseFormProps<TQueryFnData, TError, TVariables> & {\n /**\n * When true, row will be closed after successful submit.\n */\n autoSubmitClose?: boolean;\n };\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-reference/core/hooks/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/api-reference/antd/hooks/table/useTable/} for more details.\n *\n * @typeParam TQueryFnData - Result data returned by the query function. Extends {@link https://refine.dev/docs/api-reference/core/interfaceReferences#baserecord `BaseRecord`}\n * @typeParam TError - Custom error object that extends {@link https://refine.dev/docs/api-reference/core/interfaceReferences#httperror `HttpError`}\n * @typeParam TVariables - Values for params\n * @typeParam TSearchVariables - Values for search params\n * @typeParam TData - Result data returned by the `select` function. Extends {@link https://refine.dev/docs/api-reference/core/interfaceReferences#baserecord `BaseRecord`}. Defaults to `TQueryFnData`\n *\n */\nexport const useEditableTable = <\n TQueryFnData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n TSearchVariables = unknown,\n TData extends BaseRecord = TQueryFnData,\n>({\n autoSubmitClose = true,\n ...props\n}: useEditableTableProps<\n TQueryFnData,\n TError,\n TVariables,\n TSearchVariables,\n TData\n> = {}): useEditableTableReturnType<\n TQueryFnData,\n TError,\n TVariables,\n TSearchVariables,\n TData\n> => {\n const table = useTable<TQueryFnData, TError, TSearchVariables, TData>({\n ...props,\n successNotification: undefined,\n errorNotification: undefined,\n });\n const edit = useForm<TQueryFnData, 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 formProps: {\n ...edit.formProps,\n onFinish: async (values) => {\n const result = await edit.onFinish(values);\n if (autoSubmitClose) {\n setId(undefined);\n }\n return result;\n },\n },\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 BaseOption,\n} from \"@refinedev/core\";\n\nexport type UseSelectReturnType<\n TData extends BaseRecord = BaseRecord,\n TOption extends BaseOption = BaseOption,\n> = {\n selectProps: SelectProps<TOption>;\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-reference/antd/hooks/field/useSelect/} for more details.\n *\n * @typeParam TQueryFnData - Result data returned by the query function. Extends {@link https://refine.dev/docs/api-reference/core/interfaceReferences#baserecord `BaseRecord`}\n * @typeParam TError - Custom error object that extends {@link https://refine.dev/docs/api-reference/core/interfaceReferences#httperror `HttpError`}\n * @typeParam TData - Result data returned by the `select` function. Extends {@link https://refine.dev/docs/api-reference/core/interfaceReferences#baserecord `BaseRecord`}. Defaults to `TQueryFnData`\n *\n */\n\nexport const useSelect = <\n TQueryFnData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TData extends BaseRecord = TQueryFnData,\n TOption extends BaseOption = BaseOption,\n>(\n props: UseSelectProps<TQueryFnData, TError, TData>,\n): UseSelectReturnType<TData, TOption> => {\n const { queryResult, defaultValueQueryResult, onSearch, options } =\n useSelectCore<TQueryFnData, TError, TData, TOption>(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\";\nimport type { Checkbox } from \"antd\";\n\nimport {\n BaseRecord,\n GetListResponse,\n HttpError,\n UseSelectProps,\n useSelect,\n BaseKey,\n pickNotDeprecated,\n BaseOption,\n} from \"@refinedev/core\";\n\nexport type UseCheckboxGroupReturnType<\n TData extends BaseRecord = BaseRecord,\n TOption extends BaseOption = BaseOption,\n> = {\n checkboxGroupProps: Omit<\n React.ComponentProps<typeof Checkbox.Group>,\n \"options\"\n > & {\n options: TOption[];\n };\n queryResult: QueryObserverResult<GetListResponse<TData>>;\n};\n\ntype UseCheckboxGroupProps<TQueryFnData, TError, TData> = Omit<\n UseSelectProps<TQueryFnData, TError, TData>,\n \"defaultValue\"\n> & {\n /**\n * Sets the default value\n */\n defaultValue?: BaseKey[];\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/api-reference/antd/hooks/field/useCheckboxGroup/} for more details\n *\n * @typeParam TQueryFnData - Result data returned by the query function. Extends {@link https://refine.dev/docs/api-reference/core/interfaceReferences#baserecord `BaseRecord`}\n * @typeParam TError - Custom error object that extends {@link https://refine.dev/docs/api-reference/core/interfaceReferences#httperror `HttpError`}\n * @typeParam TData - Result data returned by the `select` function. Extends {@link https://refine.dev/docs/api-reference/core/interfaceReferences#baserecord `BaseRecord`}. Defaults to `TQueryFnData`\n *\n */\n\nexport const useCheckboxGroup = <\n TQueryFnData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TData extends BaseRecord = TQueryFnData,\n TOption extends BaseOption = BaseOption,\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<\n TQueryFnData,\n TError,\n TData\n>): UseCheckboxGroupReturnType<TData, TOption> => {\n const { queryResult, options } = useSelect<\n TQueryFnData,\n TError,\n TData,\n TOption\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: 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\";\nimport type { Radio } from \"antd\";\n\nimport {\n BaseKey,\n BaseOption,\n BaseRecord,\n GetListResponse,\n HttpError,\n pickNotDeprecated,\n useSelect,\n UseSelectProps,\n} from \"@refinedev/core\";\n\nexport type UseRadioGroupReturnType<\n TData extends BaseRecord = BaseRecord,\n TOption extends BaseOption = BaseOption,\n> = {\n radioGroupProps: Omit<\n React.ComponentProps<typeof Radio.Group>,\n \"options\"\n > & {\n options: TOption[];\n };\n queryResult: QueryObserverResult<GetListResponse<TData>>;\n};\n\ntype UseRadioGroupProps<TQueryFnData, TError, TData> = Omit<\n UseSelectProps<TQueryFnData, TError, TData>,\n \"defaultValue\"\n> & {\n /**\n * Sets the default value\n */\n defaultValue?: BaseKey;\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/api-reference/antd/hooks/field/useRadioGroup/} for more details.\n *\n * @typeParam TQueryFnData - Result data returned by the query function. Extends {@link https://refine.dev/docs/api-reference/core/interfaceReferences#baserecord `BaseRecord`}\n * @typeParam TError - Custom error object that extends {@link https://refine.dev/docs/api-reference/core/interfaceReferences#httperror `HttpError`}\n * @typeParam TData - Result data returned by the `select` function. Extends {@link https://refine.dev/docs/api-reference/core/interfaceReferences#baserecord `BaseRecord`}. Defaults to `TQueryFnData`\n *\n */\n\nexport const useRadioGroup = <\n TQueryFnData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TData extends BaseRecord = TQueryFnData,\n TOption extends BaseOption = BaseOption,\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<TQueryFnData, TError, TData>): UseRadioGroupReturnType<\n TData,\n TOption\n> => {\n const { queryResult, options } = useSelect<\n TQueryFnData,\n TError,\n TData,\n TOption\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: 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/api-reference/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-reference/core/interfaceReferences#baserecord `BaseRecord`}\n * @typeParam TError - Custom error object that extends {@link https://refine.dev/docs/api-reference/core/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 size={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 HttpError,\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<TQueryFnData, TError, TSearchVariables, TData> =\n useTablePropsCore<TQueryFnData, TError, TData> & {\n onSearch?: (\n data: TSearchVariables,\n ) => CrudFilters | Promise<CrudFilters>;\n };\n\nexport type useSimpleListReturnType<\n TQueryFnData extends BaseRecord = BaseRecord,\n TSearchVariables = unknown,\n TData extends BaseRecord = TQueryFnData,\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/api-reference/antd/hooks/list/useSimpleList} for more details.\n *\n * @typeParam TQueryFnData - Result data returned by the query function. Extends {@link https://refine.dev/docs/api-reference/core/interfaceReferences#baserecord `BaseRecord`}\n * @typeParam TError - Custom error object that extends {@link https://refine.dev/docs/api-reference/core/interfaceReferences#httperror `HttpError`}\n * @typeParam TSearchVariables - Antd form values\n * @typeParam TData - Result data returned by the `select` function. Extends {@link https://refine.dev/docs/api-reference/core/interfaceReferences#baserecord `BaseRecord`}. Defaults to `TQueryFnData`\n *\n */\n\nexport const useSimpleList = <\n TQueryFnData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TSearchVariables = unknown,\n TData extends BaseRecord = TQueryFnData,\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 TQueryFnData,\n TError,\n TSearchVariables,\n TData\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 overtime,\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 overtime,\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 { useContext } from \"react\";\n\nimport { ThemedLayoutContext } from \"@contexts\";\n\nexport type UseSiderVisibleType = {\n siderVisible: boolean;\n drawerSiderVisible: boolean;\n setSiderVisible: (visible: boolean) => void;\n setDrawerSiderVisible: (visible: boolean) => void;\n};\n\n/**\n * @deprecated Please use `useThemedLayoutContext` instead.\n */\nexport const useSiderVisible = (): UseSiderVisibleType => {\n const {\n mobileSiderOpen,\n siderCollapsed,\n setMobileSiderOpen,\n setSiderCollapsed,\n } = useContext(ThemedLayoutContext);\n\n return {\n siderVisible: mobileSiderOpen,\n setSiderVisible: setMobileSiderOpen,\n drawerSiderVisible: siderCollapsed,\n setDrawerSiderVisible: setSiderCollapsed,\n };\n};\n","import React, { ReactNode, useState } from \"react\";\n\nimport { IThemedLayoutContext } from \"./IThemedLayoutContext\";\n\nexport const ThemedLayoutContext = React.createContext<IThemedLayoutContext>({\n siderCollapsed: false,\n mobileSiderOpen: false,\n setSiderCollapsed: () => undefined,\n setMobileSiderOpen: () => undefined,\n});\n\nexport const ThemedLayoutContextProvider: React.FC<{\n children: ReactNode;\n initialSiderCollapsed?: boolean;\n}> = ({ children, initialSiderCollapsed }) => {\n const [siderCollapsed, setSiderCollapsed] = useState(\n initialSiderCollapsed ?? false,\n );\n const [mobileSiderOpen, setMobileSiderOpen] = useState(false);\n\n return (\n <ThemedLayoutContext.Provider\n value={{\n siderCollapsed,\n mobileSiderOpen,\n setSiderCollapsed,\n setMobileSiderOpen,\n }}\n >\n {children}\n </ThemedLayoutContext.Provider>\n );\n};\n","import { useContext } from \"react\";\n\nimport { ThemedLayoutContext } from \"@contexts\";\nimport { IThemedLayoutContext } from \"@contexts/themedLayoutContext/IThemedLayoutContext\";\n\nexport type UseThemedLayoutContextType = IThemedLayoutContext;\n\nexport const useThemedLayoutContext = (): UseThemedLayoutContextType => {\n const {\n mobileSiderOpen,\n siderCollapsed,\n setMobileSiderOpen,\n setSiderCollapsed,\n } = useContext(ThemedLayoutContext);\n\n return {\n mobileSiderOpen,\n siderCollapsed,\n setMobileSiderOpen,\n setSiderCollapsed,\n };\n};\n","import { NotificationProvider } from \"@refinedev/core\";\nimport { App, notification as staticNotification } from \"antd\";\nimport React from \"react\";\n\nimport { UndoableNotification } from \"@components/undoableNotification\";\n\n/**\n * @deprecated `notificationProvider` is deprecated due to not being compatible with theme changes in Ant Design. Please use `useNotificationProvider` export as your notification provider.\n * @see https://refine.dev/docs/api-reference/antd/theming/#usenotificationprovider-compatible-with-theme\n */\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 staticNotification.open({\n key,\n description: (\n <UndoableNotification\n notificationKey={key}\n message={message}\n cancelMutation={() => {\n cancelMutation?.();\n staticNotification.destroy(key ?? \"\");\n }}\n undoableTimeout={undoableTimeout}\n />\n ),\n message: null,\n duration: 0,\n closeIcon: <></>,\n });\n } else {\n staticNotification.open({\n key,\n description: message,\n message: description ?? null,\n type,\n });\n }\n },\n close: (key) => staticNotification.destroy(key),\n};\n\nexport const useNotificationProvider = (): NotificationProvider => {\n const { notification: notificationFromContext } = App.useApp();\n const notification =\n \"open\" in notificationFromContext\n ? notificationFromContext\n : staticNotification;\n\n 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={() => {\n cancelMutation?.();\n notification.destroy(key ?? \"\");\n }}\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\n return notificationProvider;\n};\n","import React from \"react\";\nimport { Button, 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 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 size={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={cancelMutation}\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\n/**\n * @deprecated use `<ThemedLayout>` instead with 100% backward compatibility.\n * @see https://refine.dev/docs/api-reference/antd/components/antd-themed-layout\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 useWarnAboutChange,\n} from \"@refinedev/core\";\n\nimport { Title as DefaultTitle } from \"@components\";\n\nimport { drawerButtonStyles } from \"./styles\";\nimport { RefineLayoutSiderProps } from \"../types\";\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 { warnWhen, setWarnWhen } = useWarnAboutChange();\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 <Menu.SubMenu\n key={item.key}\n icon={icon ?? <UnorderedListOutlined />}\n title={label}\n >\n {renderTreeView(children, selectedKey)}\n </Menu.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 handleLogout = () => {\n if (warnWhen) {\n const confirm = window.confirm(\n translate(\n \"warnWhenUnsavedChanges\",\n \"Are you sure you want to leave? You have unsaved changes.\",\n ),\n );\n\n if (confirm) {\n setWarnWhen(false);\n mutateLogout();\n }\n } else {\n mutateLogout();\n }\n };\n\n const logout = isExistAuthentication && (\n <Menu.Item\n key=\"logout\"\n onClick={handleLogout}\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 { useActiveAuthProvider, useGetIdentity } from \"@refinedev/core\";\nimport { Avatar, Layout as AntdLayout, Space, Typography } from \"antd\";\nimport React from \"react\";\nimport { RefineLayoutHeaderProps } from \"../types\";\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 style={{ marginLeft: \"8px\" }}>\n {user?.name && (\n <Typography.Text style={{ color: \"white\" }} strong>\n {user.name}\n </Typography.Text>\n )}\n {user?.avatar && <Avatar src={user?.avatar} alt={user?.name} />}\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 { Grid, Layout as AntdLayout } from \"antd\";\n\nimport { ThemedSider as DefaultSider } from \"./sider\";\nimport { ThemedHeader as DefaultHeader } from \"./header\";\nimport { RefineThemedLayoutProps } from \"./types\";\n\n/**\n * @deprecated It is recommended to use the improved `ThemedLayoutV2`. Review migration guidelines. https://refine.dev/docs/api-reference/antd/components/antd-themed-layout/#migrate-themedlayout-to-themedlayoutv2\n */\nexport const ThemedLayout: React.FC<RefineThemedLayoutProps> = ({\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, Drawer, Button, theme } from \"antd\";\nimport {\n DashboardOutlined,\n LogoutOutlined,\n UnorderedListOutlined,\n BarsOutlined,\n LeftOutlined,\n RightOutlined,\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 useWarnAboutChange,\n} from \"@refinedev/core\";\n\nimport { drawerButtonStyles } from \"./styles\";\nimport { RefineThemedLayoutSiderProps } from \"../types\";\nimport { ThemedTitle } from \"@components\";\n\n/**\n * @deprecated It is recommended to use the improved `ThemedLayoutV2`. Review migration guidelines. https://refine.dev/docs/api-reference/antd/components/antd-themed-layout/#migrate-themedlayout-to-themedlayoutv2\n */\nexport const ThemedSider: React.FC<RefineThemedLayoutSiderProps> = ({\n Title: TitleFromProps,\n render,\n meta,\n}) => {\n const { token } = theme.useToken();\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 { warnWhen, setWarnWhen } = useWarnAboutChange();\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 ?? ThemedTitle;\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 <Menu.SubMenu\n key={item.key}\n icon={icon ?? <UnorderedListOutlined />}\n title={label}\n >\n {renderTreeView(children, selectedKey)}\n </Menu.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\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 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 handleLogout = () => {\n if (warnWhen) {\n const confirm = window.confirm(\n translate(\n \"warnWhenUnsavedChanges\",\n \"Are you sure you want to leave? You have unsaved changes.\",\n ),\n );\n\n if (confirm) {\n setWarnWhen(false);\n mutateLogout();\n }\n } else {\n mutateLogout();\n }\n };\n\n const logout = isExistAuthentication && (\n <Menu.Item\n key=\"logout\"\n onClick={() => handleLogout()}\n icon={<LogoutOutlined />}\n >\n {translate(\"buttons.logout\", \"Logout\")}\n </Menu.Item>\n );\n\n const dashboard = hasDashboard ? (\n <Menu.Item key=\"dashboard\" icon={<DashboardOutlined />}>\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 selectedKeys={selectedKey ? [selectedKey] : []}\n defaultOpenKeys={defaultOpenKeys}\n mode=\"inline\"\n style={{\n marginTop: \"8px\",\n border: \"none\",\n }}\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={{\n height: \"100vh\",\n overflow: \"hidden\",\n backgroundColor: token.colorBgContainer,\n borderRight: `1px solid ${token.colorBgElevated}`,\n }}\n >\n <div\n style={{\n width: \"200px\",\n padding: \"0 16px\",\n display: \"flex\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n height: \"64px\",\n backgroundColor: token.colorBgElevated,\n }}\n >\n <RenderToTitle collapsed={false} />\n </div>\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 if (isMobile) {\n return renderDrawerSider();\n }\n\n return (\n <Layout.Sider\n style={{\n backgroundColor: token.colorBgContainer,\n borderRight: `1px solid ${token.colorBgElevated}`,\n }}\n collapsible\n collapsed={collapsed}\n onCollapse={(collapsed) => setCollapsed(collapsed)}\n collapsedWidth={80}\n breakpoint=\"lg\"\n trigger={\n <Button\n type=\"text\"\n style={{\n borderRadius: 0,\n height: \"100%\",\n width: \"100%\",\n backgroundColor: token.colorBgElevated,\n }}\n >\n {collapsed ? (\n <RightOutlined\n style={{\n color: token.colorPrimary,\n }}\n />\n ) : (\n <LeftOutlined\n style={{\n color: token.colorPrimary,\n }}\n />\n )}\n </Button>\n }\n >\n <div\n style={{\n width: collapsed ? \"80px\" : \"200px\",\n padding: collapsed ? \"0\" : \"0 16px\",\n display: \"flex\",\n justifyContent: collapsed ? \"center\" : \"flex-start\",\n alignItems: \"center\",\n height: \"64px\",\n backgroundColor: token.colorBgElevated,\n fontSize: \"14px\",\n }}\n >\n <RenderToTitle collapsed={collapsed} />\n </div>\n {renderMenu()}\n </Layout.Sider>\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, theme } from \"antd\";\nimport { useActiveAuthProvider, useGetIdentity } from \"@refinedev/core\";\nimport { RefineThemedLayoutHeaderProps } from \"../types\";\n\n/**\n * @deprecated It is recommended to use the improved `ThemedLayoutV2`. Review migration guidelines. https://refine.dev/docs/api-reference/antd/components/antd-themed-layout/#migrate-themedlayout-to-themedlayoutv2\n */\nexport const ThemedHeader: React.FC<RefineThemedLayoutHeaderProps> = () => {\n const { token } = theme.useToken();\n\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 if (!shouldRenderHeader) {\n return null;\n }\n\n return (\n <AntdLayout.Header\n style={{\n backgroundColor: token.colorBgElevated,\n display: \"flex\",\n justifyContent: \"flex-end\",\n alignItems: \"center\",\n padding: \"0px 24px\",\n height: \"64px\",\n }}\n >\n <Space>\n <Space size=\"middle\">\n {user?.name && (\n <Typography.Text strong>{user.name}</Typography.Text>\n )}\n {user?.avatar && (\n <Avatar src={user?.avatar} alt={user?.name} />\n )}\n </Space>\n </Space>\n </AntdLayout.Header>\n );\n};\n","import React from \"react\";\nimport { useRouterContext, useRouterType, useLink } from \"@refinedev/core\";\nimport { Typography, theme, Space } from \"antd\";\nimport { RefineLayoutThemedTitleProps } from \"../types\";\n\nconst defaultText = \"Refine Project\";\n\nconst defaultIcon = (\n <svg\n width={24}\n height={24}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n data-testid=\"refine-logo\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M13.7889 0.422291C12.6627 -0.140764 11.3373 -0.140764 10.2111 0.422291L2.21115 4.42229C0.85601 5.09986 0 6.48491 0 8V16C0 17.5151 0.85601 18.9001 2.21115 19.5777L10.2111 23.5777C11.3373 24.1408 12.6627 24.1408 13.7889 23.5777L21.7889 19.5777C23.144 18.9001 24 17.5151 24 16V8C24 6.48491 23.144 5.09986 21.7889 4.42229L13.7889 0.422291ZM8 8C8 5.79086 9.79086 4 12 4C14.2091 4 16 5.79086 16 8V16C16 18.2091 14.2091 20 12 20C9.79086 20 8 18.2091 8 16V8Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M14 8C14 9.10457 13.1046 10 12 10C10.8954 10 10 9.10457 10 8C10 6.89543 10.8954 6 12 6C13.1046 6 14 6.89543 14 8Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n\n/**\n * @deprecated It is recommended to use the improved `ThemedLayoutV2`. Review migration guidelines. https://refine.dev/docs/api-reference/antd/components/antd-themed-layout/#migrate-themedlayout-to-themedlayoutv2\n */\nexport const ThemedTitle: React.FC<RefineLayoutThemedTitleProps> = ({\n collapsed,\n icon = defaultIcon,\n text = defaultText,\n wrapperStyles,\n}) => {\n const { token } = theme.useToken();\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\n to=\"/\"\n style={{\n display: \"inline-block\",\n textDecoration: \"none\",\n }}\n >\n <Space\n style={{\n display: \"flex\",\n alignItems: \"center\",\n fontSize: \"inherit\",\n ...wrapperStyles,\n }}\n >\n <div\n style={{\n height: \"24px\",\n width: \"24px\",\n color: token.colorPrimary,\n }}\n >\n {icon}\n </div>\n\n {!collapsed && (\n <Typography.Title\n style={{\n fontSize: \"inherit\",\n marginBottom: 0,\n fontWeight: 700,\n }}\n >\n {text}\n </Typography.Title>\n )}\n </Space>\n </ActiveLink>\n );\n};\n","import React, { useMemo } from \"react\";\nimport { Grid, Layout as AntdLayout } from \"antd\";\n\nimport { ThemedSiderV2 as DefaultSider } from \"./sider\";\nimport { ThemedHeaderV2 as DefaultHeader } from \"./header\";\nimport { RefineThemedLayoutV2Props } from \"./types\";\nimport { ThemedLayoutContextProvider } from \"@contexts\";\n\nexport const ThemedLayoutV2: React.FC<RefineThemedLayoutV2Props> = ({\n children,\n Header,\n Sider,\n Title,\n Footer,\n OffLayoutArea,\n initialSiderCollapsed,\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 const hasSider = !!SiderToRender({ Title });\n\n return (\n <ThemedLayoutContextProvider\n initialSiderCollapsed={initialSiderCollapsed}\n >\n <AntdLayout style={{ minHeight: \"100vh\" }} hasSider={hasSider}>\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 </ThemedLayoutContextProvider>\n );\n};\n","import React from \"react\";\nimport { Layout, Menu, Grid, Drawer, Button, theme } from \"antd\";\nimport {\n DashboardOutlined,\n LogoutOutlined,\n UnorderedListOutlined,\n BarsOutlined,\n LeftOutlined,\n RightOutlined,\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 useWarnAboutChange,\n} from \"@refinedev/core\";\n\nimport { drawerButtonStyles } from \"./styles\";\nimport { RefineThemedLayoutV2SiderProps } from \"../types\";\nimport { ThemedTitleV2 } from \"@components\";\nimport { useThemedLayoutContext } from \"@hooks\";\n\nexport const ThemedSiderV2: React.FC<RefineThemedLayoutV2SiderProps> = ({\n Title: TitleFromProps,\n render,\n meta,\n fixed,\n activeItemDisabled = false,\n}) => {\n const { token } = theme.useToken();\n const {\n siderCollapsed,\n setSiderCollapsed,\n mobileSiderOpen,\n setMobileSiderOpen,\n } = useThemedLayoutContext();\n\n const isExistAuthentication = useIsExistAuthentication();\n const routerType = useRouterType();\n const NewLink = useLink();\n const { warnWhen, setWarnWhen } = useWarnAboutChange();\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 ?? ThemedTitleV2;\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 <Menu.SubMenu\n key={item.key}\n icon={icon ?? <UnorderedListOutlined />}\n title={label}\n >\n {renderTreeView(children, selectedKey)}\n </Menu.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\n const linkStyle: React.CSSProperties =\n activeItemDisabled && isSelected\n ? { pointerEvents: \"none\" }\n : {};\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 icon={icon ?? (isRoute && <UnorderedListOutlined />)}\n style={linkStyle}\n >\n <Link to={route ?? \"\"} style={linkStyle}>\n {label}\n </Link>\n {!siderCollapsed && isSelected && (\n <div className=\"ant-menu-tree-arrow\" />\n )}\n </Menu.Item>\n </CanAccess>\n );\n });\n };\n\n const handleLogout = () => {\n if (warnWhen) {\n const confirm = window.confirm(\n translate(\n \"warnWhenUnsavedChanges\",\n \"Are you sure you want to leave? You have unsaved changes.\",\n ),\n );\n\n if (confirm) {\n setWarnWhen(false);\n mutateLogout();\n }\n } else {\n mutateLogout();\n }\n };\n\n const logout = isExistAuthentication && (\n <Menu.Item\n key=\"logout\"\n onClick={() => handleLogout()}\n icon={<LogoutOutlined />}\n >\n {translate(\"buttons.logout\", \"Logout\")}\n </Menu.Item>\n );\n\n const dashboard = hasDashboard ? (\n <Menu.Item key=\"dashboard\" icon={<DashboardOutlined />}>\n <Link to=\"/\">{translate(\"dashboard.title\", \"Dashboard\")}</Link>\n {!siderCollapsed && 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: siderCollapsed,\n });\n }\n return (\n <>\n {dashboard}\n {items}\n {logout}\n </>\n );\n };\n\n const renderMenu = () => {\n return (\n <Menu\n selectedKeys={selectedKey ? [selectedKey] : []}\n defaultOpenKeys={defaultOpenKeys}\n mode=\"inline\"\n style={{\n paddingTop: \"8px\",\n border: \"none\",\n overflow: \"auto\",\n height: \"calc(100% - 72px)\",\n }}\n onClick={() => {\n setMobileSiderOpen(false);\n }}\n >\n {renderSider()}\n </Menu>\n );\n };\n\n const renderDrawerSider = () => {\n return (\n <>\n <Drawer\n open={mobileSiderOpen}\n onClose={() => setMobileSiderOpen(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={{\n height: \"100vh\",\n backgroundColor: token.colorBgContainer,\n borderRight: `1px solid ${token.colorBgElevated}`,\n }}\n >\n <div\n style={{\n width: \"200px\",\n padding: \"0 16px\",\n display: \"flex\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n height: \"64px\",\n backgroundColor: token.colorBgElevated,\n }}\n >\n <RenderToTitle collapsed={false} />\n </div>\n {renderMenu()}\n </Layout.Sider>\n </Layout>\n </Drawer>\n <Button\n style={drawerButtonStyles}\n size=\"large\"\n onClick={() => setMobileSiderOpen(true)}\n icon={<BarsOutlined />}\n ></Button>\n </>\n );\n };\n\n if (isMobile) {\n return renderDrawerSider();\n }\n\n const siderStyles: React.CSSProperties = {\n backgroundColor: token.colorBgContainer,\n borderRight: `1px solid ${token.colorBgElevated}`,\n };\n\n if (fixed) {\n siderStyles.position = \"fixed\";\n siderStyles.top = 0;\n siderStyles.height = \"100vh\";\n siderStyles.zIndex = 999;\n }\n\n return (\n <>\n {fixed && (\n <div\n style={{\n width: siderCollapsed ? \"80px\" : \"200px\",\n transition: \"all 0.2s\",\n }}\n />\n )}\n <Layout.Sider\n style={siderStyles}\n collapsible\n collapsed={siderCollapsed}\n onCollapse={(collapsed, type) => {\n if (type === \"clickTrigger\") {\n setSiderCollapsed(collapsed);\n }\n }}\n collapsedWidth={80}\n breakpoint=\"lg\"\n trigger={\n <Button\n type=\"text\"\n style={{\n borderRadius: 0,\n height: \"100%\",\n width: \"100%\",\n backgroundColor: token.colorBgElevated,\n }}\n >\n {siderCollapsed ? (\n <RightOutlined\n style={{\n color: token.colorPrimary,\n }}\n />\n ) : (\n <LeftOutlined\n style={{\n color: token.colorPrimary,\n }}\n />\n )}\n </Button>\n }\n >\n <div\n style={{\n width: siderCollapsed ? \"80px\" : \"200px\",\n padding: siderCollapsed ? \"0\" : \"0 16px\",\n display: \"flex\",\n justifyContent: siderCollapsed\n ? \"center\"\n : \"flex-start\",\n alignItems: \"center\",\n height: \"64px\",\n backgroundColor: token.colorBgElevated,\n fontSize: \"14px\",\n }}\n >\n <RenderToTitle collapsed={siderCollapsed} />\n </div>\n {renderMenu()}\n </Layout.Sider>\n </>\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, theme } from \"antd\";\nimport {\n pickNotDeprecated,\n useActiveAuthProvider,\n useGetIdentity,\n} from \"@refinedev/core\";\nimport { RefineThemedLayoutV2HeaderProps } from \"../types\";\n\nexport const ThemedHeaderV2: React.FC<RefineThemedLayoutV2HeaderProps> = ({\n isSticky,\n sticky,\n}) => {\n const { token } = theme.useToken();\n\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 if (!shouldRenderHeader) {\n return null;\n }\n\n const headerStyles: React.CSSProperties = {\n backgroundColor: token.colorBgElevated,\n display: \"flex\",\n justifyContent: \"flex-end\",\n alignItems: \"center\",\n padding: \"0px 24px\",\n height: \"64px\",\n };\n\n if (pickNotDeprecated(sticky, isSticky)) {\n headerStyles.position = \"sticky\";\n headerStyles.top = 0;\n headerStyles.zIndex = 1;\n }\n\n return (\n <AntdLayout.Header style={headerStyles}>\n <Space>\n <Space size=\"middle\">\n {user?.name && (\n <Typography.Text strong>{user.name}</Typography.Text>\n )}\n {user?.avatar && (\n <Avatar src={user?.avatar} alt={user?.name} />\n )}\n </Space>\n </Space>\n </AntdLayout.Header>\n );\n};\n","import React from \"react\";\nimport { useRouterContext, useRouterType, useLink } from \"@refinedev/core\";\nimport { Typography, theme, Space } from \"antd\";\nimport { RefineLayoutThemedTitleProps } from \"../types\";\n\nconst defaultText = \"Refine Project\";\n\nconst defaultIcon = (\n <svg\n width={24}\n height={24}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n data-testid=\"refine-logo\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M13.7889 0.422291C12.6627 -0.140764 11.3373 -0.140764 10.2111 0.422291L2.21115 4.42229C0.85601 5.09986 0 6.48491 0 8V16C0 17.5151 0.85601 18.9001 2.21115 19.5777L10.2111 23.5777C11.3373 24.1408 12.6627 24.1408 13.7889 23.5777L21.7889 19.5777C23.144 18.9001 24 17.5151 24 16V8C24 6.48491 23.144 5.09986 21.7889 4.42229L13.7889 0.422291ZM8 8C8 5.79086 9.79086 4 12 4C14.2091 4 16 5.79086 16 8V16C16 18.2091 14.2091 20 12 20C9.79086 20 8 18.2091 8 16V8Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M14 8C14 9.10457 13.1046 10 12 10C10.8954 10 10 9.10457 10 8C10 6.89543 10.8954 6 12 6C13.1046 6 14 6.89543 14 8Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n\nexport const ThemedTitleV2: React.FC<RefineLayoutThemedTitleProps> = ({\n collapsed,\n icon = defaultIcon,\n text = defaultText,\n wrapperStyles,\n}) => {\n const { token } = theme.useToken();\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\n to=\"/\"\n style={{\n display: \"inline-block\",\n textDecoration: \"none\",\n }}\n >\n <Space\n style={{\n display: \"flex\",\n alignItems: \"center\",\n fontSize: \"inherit\",\n ...wrapperStyles,\n }}\n >\n <div\n style={{\n height: \"24px\",\n width: \"24px\",\n color: token.colorPrimary,\n }}\n >\n {icon}\n </div>\n\n {!collapsed && (\n <Typography.Title\n style={{\n fontSize: \"inherit\",\n marginBottom: 0,\n fontWeight: 700,\n }}\n >\n {text}\n </Typography.Title>\n )}\n </Space>\n </ActiveLink>\n );\n};\n","import React, { useContext } 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 AccessControlContext,\n} from \"@refinedev/core\";\nimport {\n RefineButtonClassNames,\n RefineButtonTestIds,\n} 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/api-reference/core/hooks/navigation/useNavigation#create `create`} method from {@link https://refine.dev/docs/api-reference/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/api-reference/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 accessControlContext = useContext(AccessControlContext);\n\n const accessControlEnabled =\n accessControl?.enabled ??\n accessControlContext.options.buttons.enableAccessControl;\n\n const hideIfUnauthorized =\n accessControl?.hideIfUnauthorized ??\n accessControlContext.options.buttons.hideIfUnauthorized;\n\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 className={RefineButtonClassNames.CreateButton}\n type=\"primary\"\n {...rest}\n >\n {!hideText &&\n (children ?? translate(\"buttons.create\", \"Create\"))}\n </Button>\n </ActiveLink>\n );\n};\n","import React, { useContext } 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 AccessControlContext,\n} from \"@refinedev/core\";\nimport {\n RefineButtonClassNames,\n RefineButtonTestIds,\n} 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/api-reference/core/hooks/navigation/useNavigation#edit `edit`} method from {@link https://refine.dev/docs/api-reference/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/api-reference/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 accessControlContext = useContext(AccessControlContext);\n\n const accessControlEnabled =\n accessControl?.enabled ??\n accessControlContext.options.buttons.enableAccessControl;\n\n const hideIfUnauthorized =\n accessControl?.hideIfUnauthorized ??\n accessControlContext.options.buttons.hideIfUnauthorized;\n\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 className={RefineButtonClassNames.EditButton}\n {...rest}\n >\n {!hideText && (children ?? translate(\"buttons.edit\", \"Edit\"))}\n </Button>\n </ActiveLink>\n );\n};\n","import React, { useContext } 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 useWarnAboutChange,\n AccessControlContext,\n} from \"@refinedev/core\";\nimport {\n RefineButtonClassNames,\n RefineButtonTestIds,\n} 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/api-reference/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 accessControlContext = useContext(AccessControlContext);\n\n const accessControlEnabled =\n accessControl?.enabled ??\n accessControlContext.options.buttons.enableAccessControl;\n\n const hideIfUnauthorized =\n accessControl?.hideIfUnauthorized ??\n accessControlContext.options.buttons.hideIfUnauthorized;\n\n const translate = useTranslate();\n\n const { id, resource, identifier } = 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 const disabledTitle = () => {\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 { setWarnWhen } = useWarnAboutChange();\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) && identifier) {\n setWarnWhen(false);\n mutate(\n {\n id: recordItemId ?? id ?? \"\",\n resource: identifier,\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 title={disabledTitle()}\n disabled={data?.can === false}\n data-testid={RefineButtonTestIds.DeleteButton}\n className={RefineButtonClassNames.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 useTranslate,\n useResource,\n useInvalidate,\n queryKeys,\n pickDataProvider,\n} from \"@refinedev/core\";\nimport {\n RefineButtonClassNames,\n RefineButtonTestIds,\n} from \"@refinedev/ui-types\";\n\nimport { RefreshButtonProps } from \"../types\";\n\nimport { useQueryClient } from \"@tanstack/react-query\";\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/api-reference/core/hooks/invalidate/useInvalidate `useInvalidate`} hook.\n *\n * @see {@link https://refine.dev/docs/api-reference/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 dataProviderName,\n children,\n onClick,\n meta: _meta,\n metaData: _metaData,\n ...rest\n}) => {\n const translate = useTranslate();\n\n const queryClient = useQueryClient();\n const invalidates = useInvalidate();\n\n const { resources, identifier, id } = useResource(\n resourceNameFromProps ?? propResourceNameOrRouteName,\n );\n\n const isInvalidating = !!queryClient.isFetching({\n queryKey: queryKeys(\n identifier,\n pickDataProvider(identifier, dataProviderName, resources),\n ).detail(recordItemId ?? id),\n });\n\n const handleInvalidate = () => {\n invalidates({\n id: recordItemId ?? id,\n invalidates: [\"detail\"],\n dataProviderName,\n resource: identifier,\n });\n };\n\n return (\n <Button\n onClick={(e) => {\n onClick ? onClick(e) : handleInvalidate();\n }}\n icon={<RedoOutlined spin={isInvalidating} />}\n data-testid={RefineButtonTestIds.RefreshButton}\n className={RefineButtonClassNames.RefreshButton}\n {...rest}\n >\n {!hideText && (children ?? translate(\"buttons.refresh\", \"Refresh\"))}\n </Button>\n );\n};\n","import React, { useContext } 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 AccessControlContext,\n} from \"@refinedev/core\";\nimport {\n RefineButtonClassNames,\n RefineButtonTestIds,\n} 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/api-reference/core/hooks/navigation/useNavigation#show `show`} method from {@link https://refine.dev/docs/api-reference/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/api-reference/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 accessControlContext = useContext(AccessControlContext);\n\n const accessControlEnabled =\n accessControl?.enabled ??\n accessControlContext.options.buttons.enableAccessControl;\n\n const hideIfUnauthorized =\n accessControl?.hideIfUnauthorized ??\n accessControlContext.options.buttons.hideIfUnauthorized;\n\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 className={RefineButtonClassNames.ShowButton}\n {...rest}\n >\n {!hideText && (children ?? translate(\"buttons.show\", \"Show\"))}\n </Button>\n </ActiveLink>\n );\n};\n","import React, { useContext } from \"react\";\nimport { Button } from \"antd\";\nimport { BarsOutlined } from \"@ant-design/icons\";\nimport {\n useCan,\n useNavigation,\n useTranslate,\n useUserFriendlyName,\n useResource,\n useRouterContext,\n useRouterType,\n useLink,\n pickNotDeprecated,\n AccessControlContext,\n} from \"@refinedev/core\";\nimport {\n RefineButtonClassNames,\n RefineButtonTestIds,\n} 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/api-reference/core/hooks/navigation/useNavigation#list `list`} method from {@link https://refine.dev/docs/api-reference/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/api-reference/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 accessControlContext = useContext(AccessControlContext);\n\n const accessControlEnabled =\n accessControl?.enabled ??\n accessControlContext.options.buttons.enableAccessControl;\n\n const hideIfUnauthorized =\n accessControl?.hideIfUnauthorized ??\n accessControlContext.options.buttons.hideIfUnauthorized;\n\n const { listUrl: generateListUrl } = useNavigation();\n const routerType = useRouterType();\n const Link = useLink();\n const { Link: LegacyLink } = useRouterContext();\n const getUserFriendlyName = useUserFriendlyName();\n\n const ActiveLink = routerType === \"legacy\" ? LegacyLink : Link;\n\n const translate = useTranslate();\n\n const { resource, identifier } = 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 className={RefineButtonClassNames.ListButton}\n {...rest}\n >\n {!hideText &&\n (children ??\n translate(\n `${\n identifier ??\n resourceNameFromProps ??\n propResourceNameOrRouteName\n }.titles.list`,\n getUserFriendlyName(\n resource?.meta?.label ??\n resource?.label ??\n identifier ??\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 {\n RefineButtonClassNames,\n RefineButtonTestIds,\n} 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/api-reference/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 className={RefineButtonClassNames.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 {\n RefineButtonClassNames,\n RefineButtonTestIds,\n} 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/api-reference/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 className={RefineButtonClassNames.SaveButton}\n {...rest}\n >\n {!hideText && (children ?? translate(\"buttons.save\", \"Save\"))}\n </Button>\n );\n};\n","import React, { useContext } 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 AccessControlContext,\n} from \"@refinedev/core\";\nimport {\n RefineButtonTestIds,\n RefineButtonClassNames,\n} 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/api-reference/core/hooks/navigation/useNavigation#clone `clone`} method from {@link https://refine.dev/docs/api-reference/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/api-reference/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 accessControlContext = useContext(AccessControlContext);\n\n const accessControlEnabled =\n accessControl?.enabled ??\n accessControlContext.options.buttons.enableAccessControl;\n\n const hideIfUnauthorized =\n accessControl?.hideIfUnauthorized ??\n accessControlContext.options.buttons.hideIfUnauthorized;\n\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 className={RefineButtonClassNames.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 {\n RefineButtonClassNames,\n RefineButtonTestIds,\n} from \"@refinedev/ui-types\";\n\nimport { ImportButtonProps } from \"../types\";\n\n/**\n * `<ImportButton>` is compatible with the {@link https://refine.dev/docs/api-reference/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/api-reference/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 className={RefineButtonClassNames.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 useUserFriendlyName,\n useRefineContext,\n useRouterType,\n useResource,\n} from \"@refinedev/core\";\n\nimport {\n Breadcrumb,\n CreateButton,\n CreateButtonProps,\n PageHeader,\n} 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: createButtonPropsFromProps,\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 const getUserFriendlyName = useUserFriendlyName();\n\n const { resource, identifier } = useResource(resourceFromProps);\n\n const isCreateButtonVisible =\n canCreate ??\n ((resource?.canCreate ?? !!resource?.create) ||\n createButtonPropsFromProps);\n\n const breadcrumb =\n typeof breadcrumbFromProps === \"undefined\"\n ? globalBreadcrumb\n : breadcrumbFromProps;\n\n const createButtonProps: CreateButtonProps | undefined =\n isCreateButtonVisible\n ? {\n size: \"middle\",\n resource:\n routerType === \"legacy\" ? resource?.route : identifier,\n ...createButtonPropsFromProps,\n }\n : undefined;\n\n const defaultExtra = isCreateButtonVisible ? (\n <CreateButton {...createButtonProps} />\n ) : null;\n\n return (\n <div {...(wrapperProps ?? {})}>\n <PageHeader\n ghost={false}\n title={\n title ??\n translate(\n `${identifier}.titles.list`,\n getUserFriendlyName(\n resource?.meta?.label ??\n resource?.options?.label ??\n resource?.label ??\n identifier,\n \"plural\",\n ),\n )\n }\n extra={\n headerButtons ? (\n <Space wrap {...headerButtonProps}>\n {typeof headerButtons === \"function\"\n ? headerButtons({\n defaultButtons: defaultExtra,\n createButtonProps,\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 useUserFriendlyName,\n useRefineContext,\n useRouterType,\n useResource,\n useBack,\n} from \"@refinedev/core\";\n\nimport {\n Breadcrumb,\n SaveButton,\n PageHeader,\n SaveButtonProps,\n} 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: saveButtonPropsFromProps,\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 const getUserFriendlyName = useUserFriendlyName();\n\n const { resource, action, identifier } = useResource(resourceFromProps);\n\n const breadcrumb =\n typeof breadcrumbFromProps === \"undefined\"\n ? globalBreadcrumb\n : breadcrumbFromProps;\n\n const saveButtonProps: SaveButtonProps = {\n ...(isLoading ? { disabled: true } : {}),\n ...saveButtonPropsFromProps,\n htmlType: \"submit\",\n };\n\n const defaultFooterButtons = (\n <>\n <SaveButton {...saveButtonProps} />\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 `${identifier}.titles.create`,\n `Create ${getUserFriendlyName(\n resource?.meta?.label ??\n resource?.options?.label ??\n resource?.label ??\n identifier,\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 saveButtonProps: saveButtonProps,\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 useUserFriendlyName,\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 ListButtonProps,\n RefreshButtonProps,\n DeleteButtonProps,\n SaveButtonProps,\n AutoSaveIndicator,\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: saveButtonPropsFromProps,\n mutationMode: mutationModeProp,\n recordItemId,\n children,\n deleteButtonProps: deleteButtonPropsFromProps,\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 autoSaveProps,\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 const getUserFriendlyName = useUserFriendlyName();\n\n const {\n resource,\n action,\n id: idFromParams,\n identifier,\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 hasList = resource?.list && !recordItemId;\n const isDeleteButtonVisible =\n canDelete ??\n ((resource?.meta?.canDelete ?? resource?.canDelete) ||\n deleteButtonPropsFromProps);\n\n const listButtonProps: ListButtonProps | undefined = hasList\n ? {\n ...(isLoading ? { disabled: true } : {}),\n resource: routerType === \"legacy\" ? resource?.route : identifier,\n }\n : undefined;\n\n const refreshButtonProps: RefreshButtonProps = {\n ...(isLoading ? { disabled: true } : {}),\n resource: routerType === \"legacy\" ? resource?.route : identifier,\n recordItemId: id,\n dataProviderName,\n };\n\n const deleteButtonProps: DeleteButtonProps | undefined =\n isDeleteButtonVisible\n ? {\n ...(isLoading ? { disabled: true } : {}),\n resource:\n routerType === \"legacy\" ? resource?.route : identifier,\n mutationMode,\n onSuccess: () => {\n if (routerType === \"legacy\") {\n legacyGoList(resource?.route ?? resource?.name ?? \"\");\n } else {\n go({ to: goListPath });\n }\n },\n recordItemId: id,\n dataProviderName,\n ...deleteButtonPropsFromProps,\n }\n : undefined;\n\n const saveButtonProps: SaveButtonProps = {\n ...(isLoading ? { disabled: true } : {}),\n ...saveButtonPropsFromProps,\n };\n\n const defaultHeaderButtons = (\n <>\n {autoSaveProps && <AutoSaveIndicator {...autoSaveProps} />}\n {hasList && <ListButton {...listButtonProps} />}\n <RefreshButton {...refreshButtonProps} />\n </>\n );\n\n const defaultFooterButtons = (\n <>\n {isDeleteButtonVisible && <DeleteButton {...deleteButtonProps} />}\n <SaveButton {...saveButtonProps} />\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 `${identifier}.titles.edit`,\n `Edit ${getUserFriendlyName(\n resource?.meta?.label ??\n resource?.options?.label ??\n resource?.label ??\n identifier,\n \"singular\",\n )}`,\n )\n }\n extra={\n <Space wrap {...(headerButtonProps ?? {})}>\n {headerButtons\n ? typeof headerButtons === \"function\"\n ? headerButtons({\n defaultButtons: defaultHeaderButtons,\n listButtonProps,\n refreshButtonProps,\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 deleteButtonProps,\n saveButtonProps,\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 useUserFriendlyName,\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 ListButtonProps,\n EditButtonProps,\n DeleteButtonProps,\n RefreshButtonProps,\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 const getUserFriendlyName = useUserFriendlyName();\n\n const {\n resource,\n action,\n id: idFromParams,\n identifier,\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 hasList = resource?.list && !recordItemId;\n const isDeleteButtonVisible =\n canDelete ?? resource?.meta?.canDelete ?? resource?.canDelete;\n const isEditButtonVisible =\n canEdit ?? resource?.canEdit ?? !!resource?.edit;\n\n const listButtonProps: ListButtonProps | undefined = hasList\n ? {\n resource: routerType === \"legacy\" ? resource?.route : identifier,\n }\n : undefined;\n const editButtonProps: EditButtonProps | undefined = isEditButtonVisible\n ? {\n ...(isLoading ? { disabled: true } : {}),\n type: \"primary\",\n resource: routerType === \"legacy\" ? resource?.route : identifier,\n recordItemId: id,\n }\n : undefined;\n const deleteButtonProps: DeleteButtonProps | undefined =\n isDeleteButtonVisible\n ? {\n ...(isLoading ? { disabled: true } : {}),\n resource:\n routerType === \"legacy\" ? resource?.route : identifier,\n recordItemId: id,\n onSuccess: () => {\n if (routerType === \"legacy\") {\n legacyGoList(resource?.route ?? resource?.name ?? \"\");\n } else {\n go({ to: goListPath });\n }\n },\n dataProviderName,\n }\n : undefined;\n const refreshButtonProps: RefreshButtonProps = {\n ...(isLoading ? { disabled: true } : {}),\n resource: routerType === \"legacy\" ? resource?.route : identifier,\n recordItemId: id,\n dataProviderName,\n };\n\n const defaultHeaderButtons = (\n <>\n {hasList && <ListButton {...listButtonProps} />}\n {isEditButtonVisible && <EditButton {...editButtonProps} />}\n {isDeleteButtonVisible && <DeleteButton {...deleteButtonProps} />}\n <RefreshButton {...refreshButtonProps} />\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 `${identifier}.titles.show`,\n `Show ${getUserFriendlyName(\n resource?.meta?.label ??\n resource?.options?.label ??\n resource?.label ??\n identifier,\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 deleteButtonProps,\n editButtonProps,\n listButtonProps,\n refreshButtonProps,\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\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/api-reference/antd/components/fields/text} for more details.\n */\nexport const TextField: React.FC<TextFieldProps> = ({ value, ...rest }) => {\n return <Typography.Text {...rest}>{value}</Typography.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/api-reference/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\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/api-reference/antd/components/fields/email} for more details.\n */\nexport const EmailField: React.FC<EmailFieldProps> = ({ value, ...rest }) => {\n return (\n <Typography.Link href={`mailto:${value}`} {...rest}>\n {value}\n </Typography.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/api-reference/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/api-reference/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\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/api-reference/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 dayjs.extend(LocalizedFormat);\n\n const defaultLocale = dayjs.locale();\n\n return (\n <Typography.Text {...rest}>\n {dayjs(value)\n .locale(locales || defaultLocale)\n .format(dateFormat)}\n </Typography.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/api-reference/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\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/api-reference/antd/components/fields/url} for more details.\n */\nexport const UrlField: React.FC<UrlFieldProps> = ({\n children,\n value,\n ...rest\n}) => {\n return (\n <Typography.Link href={value} {...rest}>\n {children ?? value}\n </Typography.Link>\n );\n};\n","import React from \"react\";\nimport { Typography } from \"antd\";\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/api-reference/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 = Number(value);\n\n return (\n <Typography.Text {...rest}>\n {toLocaleStringSupportsOptions()\n ? number.toLocaleString(locale, options)\n : number}\n </Typography.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/api-reference/antd/components/fields/markdown} for more details.\n */\nexport const MarkdownField: React.FC<RefineFieldMarkdownProps> = ({\n value = \"\",\n}) => {\n // There's an issue related with the type inconsistency of the `remark-gfm` and `remark-rehype` packages, we need to cast the `gfm` as any. (https://github.com/orgs/rehypejs/discussions/63)\n return (\n <ReactMarkdown\n remarkPlugins={[gfm] as unknown as ReactMarkdown.PluggableList}\n >\n {value}\n </ReactMarkdown>\n );\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\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/packages/documentation/routers/} 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 <Typography.Text>\n {translate(\n \"pages.error.404\",\n \"Sorry, the page you visited does not exist.\",\n )}\n </Typography.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\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-reference/core/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 <Typography.Title level={3} style={titleStyles}>\n {translate(\"pages.login.title\", \"Sign in your account\")}\n </Typography.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 <Typography.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 </Typography.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\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 * @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 <Typography.Title style={styles.title}>\n Welcome on board\n </Typography.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 React from \"react\";\nimport { WelcomePage as WelcomePageFromCore } from \"@refinedev/core\";\n\n/**\n * It is a page that welcomes you after the configuration is completed.\n * @deprecated `WelcomePage` is deprecated. Use `WelcomePage` from `@refinedev/core` instead.\n */\nexport const WelcomePage: React.FC = () => {\n return <WelcomePageFromCore />;\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 renderContent?: (\n content: React.ReactNode,\n title: React.ReactNode,\n ) => React.ReactNode;\n title?: React.ReactNode;\n};\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/api-reference/antd/components/antd-auth-page/} 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 theme,\n} from \"antd\";\nimport { useLogin, useTranslate, useRouterContext } from \"@refinedev/core\";\n\nimport {\n bodyStyles,\n containerStyles,\n headStyles,\n layoutStyles,\n titleStyles,\n} from \"../styles\";\nimport { ThemedTitleV2 } from \"@components\";\n\ntype LoginProps = LoginPageProps<LayoutProps, CardProps, FormProps>;\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 title,\n hideForm,\n}) => {\n const { token } = theme.useToken();\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 PageTitle =\n title === false ? null : (\n <div\n style={{\n display: \"flex\",\n justifyContent: \"center\",\n marginBottom: \"32px\",\n fontSize: \"20px\",\n }}\n >\n {title ?? <ThemedTitleV2 collapsed={false} />}\n </div>\n );\n\n const CardTitle = (\n <Typography.Title\n level={3}\n style={{\n color: token.colorPrimaryTextHover,\n ...titleStyles,\n }}\n >\n {translate(\"pages.login.title\", \"Sign in to your account\")}\n </Typography.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 {!hideForm && (\n <Divider>\n <Typography.Text\n style={{\n color: token.colorTextLabel,\n }}\n >\n {translate(\"pages.login.divider\", \"or\")}\n </Typography.Text>\n </Divider>\n )}\n </>\n );\n }\n return null;\n };\n\n const CardContent = (\n <Card\n title={CardTitle}\n headStyle={headStyles}\n bodyStyle={bodyStyles}\n style={{\n ...containerStyles,\n backgroundColor: token.colorBgElevated,\n }}\n {...(contentProps ?? {})}\n >\n {renderProviders()}\n {!hideForm && (\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(\n \"pages.login.fields.password\",\n \"Password\",\n )}\n rules={[{ required: true }]}\n >\n <Input\n type=\"password\"\n autoComplete=\"current-password\"\n placeholder=\"●●●●●●●●\"\n size=\"large\"\n />\n </Form.Item>\n <div\n style={{\n display: \"flex\",\n justifyContent: \"space-between\",\n marginBottom: \"24px\",\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 color: token.colorPrimaryTextHover,\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 {!hideForm && (\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 )}\n </Form>\n )}\n\n {registerLink ?? (\n <div\n style={{\n marginTop: hideForm ? 16 : 8,\n }}\n >\n <Typography.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={{\n fontWeight: \"bold\",\n color: token.colorPrimaryTextHover,\n }}\n >\n {translate(\"pages.login.signup\", \"Sign up\")}\n </ActiveLink>\n </Typography.Text>\n </div>\n )}\n </Card>\n );\n\n return (\n <Layout style={layoutStyles} {...(wrapperProps ?? {})}>\n <Row\n justify=\"center\"\n align={hideForm ? \"top\" : \"middle\"}\n style={{\n padding: \"16px 0\",\n minHeight: \"100dvh\",\n paddingTop: hideForm ? \"15dvh\" : \"16px\",\n }}\n >\n <Col xs={22}>\n {renderContent ? (\n renderContent(CardContent, PageTitle)\n ) : (\n <>\n {PageTitle}\n {CardContent}\n </>\n )}\n </Col>\n </Row>\n </Layout>\n );\n};\n","import { CSSProperties } from \"react\";\n\nexport const layoutStyles: CSSProperties = {};\n\nexport const containerStyles: CSSProperties = {\n maxWidth: \"400px\",\n margin: \"auto\",\n padding: \"32px\",\n boxShadow:\n \"0px 2px 4px rgba(0, 0, 0, 0.02), 0px 1px 6px -1px rgba(0, 0, 0, 0.02), 0px 1px 2px rgba(0, 0, 0, 0.03)\",\n};\n\nexport const headStyles: CSSProperties = {\n borderBottom: 0,\n padding: 0,\n};\n\nexport const bodyStyles: CSSProperties = { padding: 0, marginTop: \"32px\" };\n\nexport const titleStyles: CSSProperties = {\n textAlign: \"center\",\n marginBottom: 0,\n fontSize: \"24px\",\n lineHeight: \"32px\",\n fontWeight: 700,\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 theme,\n} from \"antd\";\nimport { useTranslate, useRouterContext, useRegister } from \"@refinedev/core\";\n\nimport {\n layoutStyles,\n containerStyles,\n titleStyles,\n headStyles,\n bodyStyles,\n} from \"../styles\";\nimport { ThemedTitleV2 } from \"@components\";\n\ntype RegisterProps = RegisterPageProps<LayoutProps, CardProps, FormProps>;\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 title,\n hideForm,\n}) => {\n const { token } = theme.useToken();\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 PageTitle =\n title === false ? null : (\n <div\n style={{\n display: \"flex\",\n justifyContent: \"center\",\n marginBottom: \"32px\",\n fontSize: \"20px\",\n }}\n >\n {title ?? <ThemedTitleV2 collapsed={false} />}\n </div>\n );\n\n const CardTitle = (\n <Typography.Title\n level={3}\n style={{\n color: token.colorPrimaryTextHover,\n ...titleStyles,\n }}\n >\n {translate(\"pages.register.title\", \"Sign up for your account\")}\n </Typography.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 register({\n providerName: provider.name,\n })\n }\n >\n {provider.label}\n </Button>\n );\n })}\n {!hideForm && (\n <Divider>\n <Typography.Text\n style={{\n color: token.colorTextLabel,\n }}\n >\n {translate(\"pages.login.divider\", \"or\")}\n </Typography.Text>\n </Divider>\n )}\n </>\n );\n }\n return null;\n };\n\n const CardContent = (\n <Card\n title={CardTitle}\n headStyle={headStyles}\n bodyStyle={bodyStyles}\n style={{\n ...containerStyles,\n backgroundColor: token.colorBgElevated,\n }}\n {...(contentProps ?? {})}\n >\n {renderProviders()}\n {!hideForm && (\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 >\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: \"24px\",\n }}\n >\n {loginLink ?? (\n <Typography.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 color: token.colorPrimaryTextHover,\n }}\n to=\"/login\"\n >\n {translate(\"pages.login.signin\", \"Sign in\")}\n </ActiveLink>\n </Typography.Text>\n )}\n </div>\n <Form.Item\n style={{\n marginBottom: 0,\n }}\n >\n <Button\n type=\"primary\"\n size=\"large\"\n htmlType=\"submit\"\n loading={isLoading}\n block\n >\n {translate(\n \"pages.register.buttons.submit\",\n \"Sign up\",\n )}\n </Button>\n </Form.Item>\n </Form>\n )}\n {hideForm && loginLink !== false && (\n <div\n style={{\n marginTop: hideForm ? 16 : 8,\n }}\n >\n <Typography.Text\n style={{\n fontSize: 12,\n }}\n >\n {translate(\n \"pages.login.buttons.haveAccount\",\n \"Have an account?\",\n )}{\" \"}\n <ActiveLink\n style={{\n fontWeight: \"bold\",\n color: token.colorPrimaryTextHover,\n }}\n to=\"/login\"\n >\n {translate(\"pages.login.signin\", \"Sign in\")}\n </ActiveLink>\n </Typography.Text>\n </div>\n )}\n </Card>\n );\n\n return (\n <Layout style={layoutStyles} {...(wrapperProps ?? {})}>\n <Row\n justify=\"center\"\n align={hideForm ? \"top\" : \"middle\"}\n style={{\n padding: \"16px 0\",\n minHeight: \"100dvh\",\n paddingTop: hideForm ? \"15dvh\" : \"16px\",\n }}\n >\n <Col xs={22}>\n {renderContent ? (\n renderContent(CardContent, PageTitle)\n ) : (\n <>\n {PageTitle}\n {CardContent}\n </>\n )}\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 theme,\n} from \"antd\";\nimport {\n useTranslate,\n useRouterContext,\n useForgotPassword,\n} from \"@refinedev/core\";\n\nimport {\n layoutStyles,\n containerStyles,\n titleStyles,\n headStyles,\n bodyStyles,\n} from \"../styles\";\nimport { ThemedTitleV2 } from \"@components\";\n\ntype ResetPassworProps = ForgotPasswordPageProps<\n LayoutProps,\n CardProps,\n FormProps\n>;\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 title,\n}) => {\n const { token } = theme.useToken();\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 PageTitle =\n title === false ? null : (\n <div\n style={{\n display: \"flex\",\n justifyContent: \"center\",\n marginBottom: \"32px\",\n fontSize: \"20px\",\n }}\n >\n {title ?? <ThemedTitleV2 collapsed={false} />}\n </div>\n );\n\n const CardTitle = (\n <Typography.Title\n level={3}\n style={{\n color: token.colorPrimaryTextHover,\n ...titleStyles,\n }}\n >\n {translate(\"pages.forgotPassword.title\", \"Forgot your password?\")}\n </Typography.Title>\n );\n const CardContent = (\n <Card\n title={CardTitle}\n headStyle={headStyles}\n bodyStyle={bodyStyles}\n style={{\n ...containerStyles,\n backgroundColor: token.colorBgElevated,\n }}\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 }}\n >\n {loginLink ?? (\n <Typography.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 color: token.colorPrimaryTextHover,\n }}\n to=\"/login\"\n >\n {translate(\"pages.login.signin\", \"Sign in\")}\n </ActiveLink>\n </Typography.Text>\n )}\n </div>\n <Form.Item\n style={{\n marginTop: \"24px\",\n marginBottom: 0,\n }}\n >\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 padding: \"16px 0\",\n minHeight: \"100dvh\",\n }}\n >\n <Col xs={22}>\n {renderContent ? (\n renderContent(CardContent, PageTitle)\n ) : (\n <>\n {PageTitle}\n {CardContent}\n </>\n )}\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 theme,\n} from \"antd\";\nimport { useTranslate, useUpdatePassword } from \"@refinedev/core\";\n\nimport {\n layoutStyles,\n containerStyles,\n titleStyles,\n headStyles,\n bodyStyles,\n} from \"../styles\";\nimport { ThemedTitleV2 } from \"@components\";\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 title,\n}) => {\n const { token } = theme.useToken();\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 PageTitle =\n title === false ? null : (\n <div\n style={{\n display: \"flex\",\n justifyContent: \"center\",\n marginBottom: \"32px\",\n fontSize: \"20px\",\n }}\n >\n {title ?? <ThemedTitleV2 collapsed={false} />}\n </div>\n );\n\n const CardTitle = (\n <Typography.Title\n level={3}\n style={{\n color: token.colorPrimaryTextHover,\n ...titleStyles,\n }}\n >\n {translate(\"pages.updatePassword.title\", \"Set New Password\")}\n </Typography.Title>\n );\n\n const CardContent = (\n <Card\n title={CardTitle}\n headStyle={headStyles}\n bodyStyle={bodyStyles}\n style={{\n ...containerStyles,\n backgroundColor: token.colorBgElevated,\n }}\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 >\n <Input\n type=\"password\"\n placeholder=\"●●●●●●●●\"\n size=\"large\"\n />\n </Form.Item>\n <Form.Item\n style={{\n marginBottom: 0,\n }}\n >\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 padding: \"16px 0\",\n minHeight: \"100dvh\",\n }}\n >\n <Col xs={22}>\n {renderContent ? (\n renderContent(CardContent, PageTitle)\n ) : (\n <>\n {PageTitle}\n {CardContent}\n </>\n )}\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 const breadCrumbItems = breadcrumbs.map(({ label, icon, href }) => ({\n key: `breadcrumb-item-${label}`,\n title: (\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n gap: 4,\n }}\n >\n {!hideIcons && icon}\n {href ? (\n <ActiveLink to={href}>{label}</ActiveLink>\n ) : (\n <span>{label}</span>\n )}\n </div>\n ),\n }));\n\n const getBreadcrumbItems = () => {\n if (showHome && (hasDashboard || rootRouteResource.found)) {\n return [\n {\n key: \"breadcrumb-item-home\",\n title: (\n <ActiveLink to=\"/\">\n {rootRouteResource?.resource?.meta?.icon ?? (\n <HomeOutlined />\n )}\n </ActiveLink>\n ),\n },\n ...breadCrumbItems,\n ];\n }\n\n return breadCrumbItems;\n };\n\n return <AntdBreadcrumb items={getBreadcrumbItems()} {...breadcrumbProps} />;\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\";\nimport { RefinePageHeaderClassNames } from \"@refinedev/ui-types\";\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\n className={RefinePageHeaderClassNames.Title}\n level={4}\n style={{ marginBottom: 0 }}\n >\n {props.title}\n </Typography.Title>\n ) : (\n props.title\n );\n\n const subtitle =\n typeof props.title === \"string\" ? (\n <Typography.Title\n className={RefinePageHeaderClassNames.SubTitle}\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 React from \"react\";\nimport {\n AutoSaveIndicatorProps,\n useTranslate,\n AutoSaveIndicator as AutoSaveIndicatorCore,\n} from \"@refinedev/core\";\nimport { Typography, theme } from \"antd\";\nimport {\n EllipsisOutlined,\n SyncOutlined,\n CheckCircleOutlined,\n ExclamationCircleOutlined,\n} from \"@ant-design/icons\";\n\nexport const AutoSaveIndicator: React.FC<AutoSaveIndicatorProps> = ({\n status,\n elements: {\n success = (\n <Message\n key=\"autoSave.success\"\n defaultMessage=\"saved\"\n icon={<CheckCircleOutlined />}\n />\n ),\n error = (\n <Message\n key=\"autoSave.error\"\n defaultMessage=\"auto save failure\"\n icon={<ExclamationCircleOutlined />}\n />\n ),\n loading = (\n <Message\n key=\"autoSave.loading\"\n defaultMessage=\"saving...\"\n icon={<SyncOutlined />}\n />\n ),\n idle = (\n <Message\n key=\"autoSave.idle\"\n defaultMessage=\"waiting for changes\"\n icon={<EllipsisOutlined />}\n />\n ),\n } = {},\n}) => {\n return (\n <AutoSaveIndicatorCore\n status={status}\n elements={{\n success,\n error,\n loading,\n idle,\n }}\n />\n );\n};\n\nconst Message = ({\n key,\n defaultMessage,\n icon,\n}: {\n key: string;\n defaultMessage: string;\n icon: React.ReactNode;\n}) => {\n const translate = useTranslate();\n const { token } = theme.useToken();\n\n return (\n <Typography.Text\n style={{\n marginRight: 5,\n color: token.colorTextTertiary,\n fontSize: \".8rem\",\n }}\n >\n {translate(key, defaultMessage)}\n <span style={{ marginLeft: \".2rem\" }}>{icon}</span>\n </Typography.Text>\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","import { ThemeConfig } from \"antd\";\n\ntype ThemeNames =\n | \"Blue\"\n | \"Purple\"\n | \"Magenta\"\n | \"Red\"\n | \"Orange\"\n | \"Yellow\"\n | \"Green\";\n\ntype RefineThemes = Record<ThemeNames, ThemeConfig>;\n\nexport const RefineThemes: RefineThemes = {\n Blue: {\n token: {\n colorPrimary: \"#1677FF\",\n },\n },\n Purple: {\n token: {\n colorPrimary: \"#722ED1\",\n },\n },\n Magenta: {\n token: {\n colorPrimary: \"#EB2F96\",\n },\n },\n Red: {\n token: {\n colorPrimary: \"#F5222D\",\n },\n },\n Orange: {\n token: {\n colorPrimary: \"#FA541C\",\n },\n },\n Yellow: {\n token: {\n colorPrimary: \"#FAAD14\",\n },\n },\n Green: {\n token: {\n colorPrimary: \"#52C41A\",\n },\n },\n};\n"],"mappings":"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","names":["React","Form","useFormSF","flattenObjectKeys","propertyPathToArray","useFormCore","useWarnAboutChange","pickNotDeprecated","useTranslate","useRefineContext","useForm","__name","action","resource","onMutationSuccessProp","onMutationErrorProp","autoSave","submitOnEnter","warnWhenUnsavedChangesProp","redirect","successNotification","errorNotification","meta","metaData","queryMeta","mutationMeta","liveMode","liveParams","mutationMode","dataProviderName","onLiveEvent","invalidates","undoableTimeout","queryOptions","createMutationOptions","updateMutationOptions","idFromProps","overtimeOptions","optimisticUpdateMap","disableServerSideValidationProp","_a","_b","options","useRefineContext","disableServerSideValidation","translate","useTranslate","formAnt","Form","formSF","useFormSF","form","useFormCoreResult","useFormCore","error","_variables","_context","parsedErrors","fieldsValue","flattenObjectKeys","field","propertyPathToArray","errors","key","fieldError","newError","pickNotDeprecated","formLoading","onFinish","queryResult","id","onFinishAutoSave","warnWhenUnsavedChangesRefine","setWarnWhen","useWarnAboutChange","warnWhenUnsavedChanges","React","onKeyUp","event","onValuesChange","changeValues","allValues","onFinishFromProps","values","saveButtonProps","React","useCallback","useTranslate","useWarnAboutChange","useUserFriendlyName","useResource","useParsed","useGo","useInvalidate","useCoreModal","useModal","__name","modalProps","show","close","visible","useCoreModal","e","_a","useModalForm","__name","syncWithLocation","defaultVisible","autoSubmitClose","autoResetForm","autoSave","invalidates","rest","_a","_b","initiallySynced","setInitiallySynced","React","invalidate","useInvalidate","resource","actionFromParams","identifier","useResource","parsed","useParsed","go","useGo","getUserFriendlyName","useUserFriendlyName","action","syncingId","syncWithLocationKey","useFormProps","useForm","form","formProps","id","setId","formLoading","onFinish","autoSaveProps","translate","useTranslate","warnWhen","setWarnWhen","useWarnAboutChange","show","close","modalProps","useModal","visible","sunflowerUseModal","_c","_d","openStatus","idFromParams","saveButtonPropsSF","handleClose","useCallback","handleShow","showId","_visible","otherModalProps","newModalProps","values","React","useCallback","useTranslate","useWarnAboutChange","useResource","useParsed","useGo","useModal","useInvalidate","useDrawerForm","__name","syncWithLocation","defaultVisible","autoSubmitClose","autoResetForm","autoSave","invalidates","rest","invalidate","useInvalidate","initiallySynced","setInitiallySynced","React","visible","show","close","useModal","resource","actionFromParams","identifier","useResource","parsed","useParsed","go","useGo","action","syncingId","syncWithLocationKey","useFormProps","useForm","form","formProps","formLoading","id","setId","onFinish","autoSaveProps","_a","_b","_c","_d","openStatus","idFromParams","translate","useTranslate","warnWhen","setWarnWhen","useWarnAboutChange","saveButtonProps","deleteButtonProps","handleClose","useCallback","handleShow","showId","values","useStepsFormSF","useStepsForm","__name","props","useFormProps","useForm","form","formProps","stepsPropsSunflower","useStepsFormSF","values","_a","Children","createElement","Fragment","Grid","Form","useFormSF","useLiveMode","useTableCore","pickNotDeprecated","getDefaultFilterCore","getDefaultSortOrderCore","getDefaultSortOrder","__name","columnName","sorter","sort","getDefaultSortOrderCore","getDefaultFilter","filters","operatorType","getDefaultFilterCore","mapAntdSorterToCrudSorting","crudSorting","a","b","_a","_b","item","field","mapAntdFilterToCrudFilter","tableFilters","prevFilters","initialFilters","crudFilters","mapInitialFilter","acc","value","operator","i","useLink","useRouterContext","useRouterType","React","PaginationLink","__name","to","element","LegacyLink","useRouterContext","routerType","useRouterType","Link","useLink","React","e","useTable","__name","onSearch","initialCurrent","initialPageSize","hasPagination","pagination","initialSorter","permanentSorter","initialFilter","permanentFilter","defaultSetFilterBehavior","filtersFromProp","sortersFromProp","syncWithLocation","resource","successNotification","errorNotification","queryOptions","liveModeFromProp","onLiveEvent","liveParams","meta","metaData","dataProviderName","tableQueryResult","current","setCurrent","pageSize","setPageSize","filters","setFilters","sorters","setSorters","sorter","setSorter","createLinkForSyncWithLocation","pageCount","overtime","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","_a","link","createElement","PaginationLink","elementChildren","Children","Fragment","useEditableTable","__name","autoSubmitClose","props","table","useTable","edit","useForm","editId","setId","saveButtonProps","cancelButtonProps","editButtonProps","id","isEditing","values","result","useSelectCore","useSelect","__name","props","queryResult","defaultValueQueryResult","onSearch","options","useSelectCore","useSelect","pickNotDeprecated","useCheckboxGroup","__name","resource","sort","sorters","filters","optionLabel","optionValue","queryOptions","fetchSize","pagination","liveMode","defaultValue","onLiveEvent","liveParams","meta","metaData","dataProviderName","queryResult","options","useSelect","pickNotDeprecated","pickNotDeprecated","useSelect","useRadioGroup","__name","resource","sort","sorters","filters","optionLabel","optionValue","queryOptions","fetchSize","pagination","liveMode","defaultValue","onLiveEvent","liveParams","meta","metaData","dataProviderName","queryResult","options","useSelect","pickNotDeprecated","React","notification","Progress","useTranslate","useResource","useImportCore","pickNotDeprecated","useImport","__name","resourceFromProp","resourceName","mapData","item","paparseOptions","batchSize","onFinish","meta","metaData","dataProviderName","onProgressFromProp","t","useTranslate","resource","useResource","mutationResult","isLoading","handleChange","useImportCore","pickNotDeprecated","totalAmount","processedAmount","description","React","Progress","notification","Children","createElement","Fragment","Form","Grid","useTableCore","pickNotDeprecated","useLiveMode","useSimpleList","__name","resource","initialCurrent","initialPageSize","pagination","hasPagination","initialSorter","permanentSorter","initialFilter","permanentFilter","defaultSetFilterBehavior","filtersFromProp","sortersFromProp","onSearch","queryOptions","syncWithLocation","successNotification","errorNotification","liveModeFromProp","onLiveEvent","liveParams","meta","metaData","dataProviderName","sorters","sorter","filters","current","pageSize","pageCount","setFilters","setCurrent","setPageSize","setSorter","setSorters","createLinkForSyncWithLocation","queryResult","overtime","useTableCore","pickNotDeprecated","hasPaginationString","isPaginationEnabled","breakpoint","Grid","liveMode","useLiveMode","form","Form","data","isFetched","isLoading","onChange","page","onFinish","values","searchFilters","antdPagination","type","element","_a","link","createElement","PaginationLink","elementChildren","Children","Fragment","useCallback","useMemo","useState","useFileUploadState","__name","isLoading","setIsloading","useState","onChange","useCallback","info","mapStatusToLoading","useMemo","files","file","useContext","React","useState","ThemedLayoutContext","React","ThemedLayoutContextProvider","__name","children","initialSiderCollapsed","siderCollapsed","setSiderCollapsed","useState","mobileSiderOpen","setMobileSiderOpen","useSiderVisible","__name","mobileSiderOpen","siderCollapsed","setMobileSiderOpen","setSiderCollapsed","useContext","ThemedLayoutContext","useContext","useThemedLayoutContext","__name","mobileSiderOpen","siderCollapsed","setMobileSiderOpen","setSiderCollapsed","useContext","ThemedLayoutContext","App","staticNotification","React","React","Button","Progress","UndoOutlined","UndoableNotification","__name","message","cancelMutation","undoableTimeout","React","Progress","time","Button","UndoOutlined","notificationProvider","key","message","description","type","cancelMutation","undoableTimeout","staticNotification","React","UndoableNotification","useNotificationProvider","__name","notificationFromContext","App","notification","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","useWarnAboutChange","drawerButtonStyles","Sider","__name","TitleFromProps","render","meta","collapsed","setCollapsed","useState","drawerOpen","setDrawerOpen","isExistAuthentication","useIsExistAuthentication","routerType","useRouterType","NewLink","useLink","warnWhen","setWarnWhen","useWarnAboutChange","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","Menu","UnorderedListOutlined","isSelected","isRoute","pickNotDeprecated","handleLogout","logout","LogoutOutlined","dashboard","DashboardOutlined","items","renderSider","renderMenu","renderDrawerSider","Drawer","Layout","Button","drawerButtonStyles","BarsOutlined","ConfigProvider","useActiveAuthProvider","useGetIdentity","Avatar","AntdLayout","Space","Typography","React","Header","__name","authProvider","useActiveAuthProvider","user","useGetIdentity","React","AntdLayout","Space","Typography","Avatar","Layout","__name","children","Header","Sider","Title","Footer","OffLayoutArea","breakpoint","Grid","SiderToRender","HeaderToRender","isSmall","React","AntdLayout","React","useRouterContext","useRouterType","useLink","Title","__name","collapsed","routerType","useRouterType","Link","useLink","LegacyLink","useRouterContext","React","React","Grid","AntdLayout","React","useState","Layout","Menu","Grid","Drawer","Button","theme","DashboardOutlined","LogoutOutlined","UnorderedListOutlined","BarsOutlined","LeftOutlined","RightOutlined","useTranslate","useLogout","useTitle","CanAccess","useIsExistAuthentication","useRouterContext","useMenu","useRefineContext","useLink","useRouterType","useActiveAuthProvider","pickNotDeprecated","useWarnAboutChange","drawerButtonStyles","ThemedSider","__name","TitleFromProps","render","meta","token","theme","collapsed","setCollapsed","useState","drawerOpen","setDrawerOpen","isExistAuthentication","useIsExistAuthentication","routerType","useRouterType","NewLink","useLink","warnWhen","setWarnWhen","useWarnAboutChange","LegacyLink","useRouterContext","Link","TitleFromContext","useTitle","translate","useTranslate","menuItems","selectedKey","defaultOpenKeys","useMenu","breakpoint","Grid","hasDashboard","useRefineContext","authProvider","useActiveAuthProvider","mutateLogout","useLogout","isMobile","RenderToTitle","ThemedTitle","renderTreeView","tree","item","icon","label","route","key","name","children","parentName","options","React","CanAccess","Menu","UnorderedListOutlined","isSelected","isRoute","pickNotDeprecated","handleLogout","logout","LogoutOutlined","dashboard","DashboardOutlined","items","renderSider","renderMenu","renderDrawerSider","Drawer","Layout","Button","drawerButtonStyles","BarsOutlined","RightOutlined","LeftOutlined","React","AntdLayout","Typography","Avatar","Space","theme","useActiveAuthProvider","useGetIdentity","ThemedHeader","__name","token","theme","authProvider","useActiveAuthProvider","user","useGetIdentity","React","AntdLayout","Space","Typography","Avatar","ThemedLayout","__name","children","Header","Sider","Title","Footer","OffLayoutArea","breakpoint","Grid","SiderToRender","ThemedSider","HeaderToRender","ThemedHeader","isSmall","React","AntdLayout","React","useRouterContext","useRouterType","useLink","Typography","theme","Space","defaultText","defaultIcon","React","ThemedTitle","__name","collapsed","icon","text","wrapperStyles","token","theme","routerType","useRouterType","Link","useLink","LegacyLink","useRouterContext","Space","Typography","React","Grid","AntdLayout","React","Layout","Menu","Grid","Drawer","Button","theme","DashboardOutlined","LogoutOutlined","UnorderedListOutlined","BarsOutlined","LeftOutlined","RightOutlined","useTranslate","useLogout","useTitle","CanAccess","useIsExistAuthentication","useRouterContext","useMenu","useRefineContext","useLink","useRouterType","useActiveAuthProvider","pickNotDeprecated","useWarnAboutChange","drawerButtonStyles","ThemedSiderV2","__name","TitleFromProps","render","meta","fixed","activeItemDisabled","token","theme","siderCollapsed","setSiderCollapsed","mobileSiderOpen","setMobileSiderOpen","useThemedLayoutContext","isExistAuthentication","useIsExistAuthentication","routerType","useRouterType","NewLink","useLink","warnWhen","setWarnWhen","useWarnAboutChange","LegacyLink","useRouterContext","Link","TitleFromContext","useTitle","translate","useTranslate","menuItems","selectedKey","defaultOpenKeys","useMenu","breakpoint","Grid","hasDashboard","useRefineContext","authProvider","useActiveAuthProvider","mutateLogout","useLogout","isMobile","RenderToTitle","ThemedTitleV2","renderTreeView","tree","item","icon","label","route","key","name","children","parentName","options","React","CanAccess","Menu","UnorderedListOutlined","isSelected","isRoute","pickNotDeprecated","linkStyle","handleLogout","logout","LogoutOutlined","dashboard","DashboardOutlined","items","renderSider","renderMenu","renderDrawerSider","Drawer","Layout","Button","drawerButtonStyles","BarsOutlined","siderStyles","collapsed","type","RightOutlined","LeftOutlined","React","AntdLayout","Typography","Avatar","Space","theme","pickNotDeprecated","useActiveAuthProvider","useGetIdentity","ThemedHeaderV2","__name","isSticky","sticky","token","theme","authProvider","useActiveAuthProvider","user","useGetIdentity","headerStyles","pickNotDeprecated","React","AntdLayout","Space","Typography","Avatar","ThemedLayoutV2","__name","children","Header","Sider","Title","Footer","OffLayoutArea","initialSiderCollapsed","breakpoint","Grid","SiderToRender","ThemedSiderV2","HeaderToRender","ThemedHeaderV2","isSmall","hasSider","React","ThemedLayoutContextProvider","AntdLayout","React","useRouterContext","useRouterType","useLink","Typography","theme","Space","defaultText","defaultIcon","React","ThemedTitleV2","__name","collapsed","icon","text","wrapperStyles","token","theme","routerType","useRouterType","Link","useLink","LegacyLink","useRouterContext","Space","Typography","React","useContext","Button","PlusSquareOutlined","useNavigation","useTranslate","useCan","useResource","useRouterContext","useRouterType","useLink","AccessControlContext","RefineButtonClassNames","RefineButtonTestIds","CreateButton","__name","resourceNameFromProps","propResourceNameOrRouteName","hideText","accessControl","meta","children","onClick","rest","accessControlContext","useContext","AccessControlContext","accessControlEnabled","hideIfUnauthorized","translate","useTranslate","routerType","useRouterType","Link","useLink","LegacyLink","useRouterContext","ActiveLink","generateCreateUrl","useNavigation","resource","useResource","data","useCan","createButtonDisabledTitle","createUrl","React","e","Button","PlusSquareOutlined","RefineButtonTestIds","RefineButtonClassNames","React","useContext","Button","EditOutlined","useCan","useNavigation","useTranslate","useResource","useRouterContext","useRouterType","useLink","AccessControlContext","RefineButtonClassNames","RefineButtonTestIds","EditButton","__name","resourceNameFromProps","propResourceNameOrRouteName","recordItemId","hideText","accessControl","meta","children","onClick","rest","accessControlContext","useContext","AccessControlContext","accessControlEnabled","hideIfUnauthorized","translate","useTranslate","routerType","useRouterType","Link","useLink","LegacyLink","useRouterContext","ActiveLink","generateEditUrl","useNavigation","id","resource","useResource","data","useCan","createButtonDisabledTitle","editUrl","React","e","Button","EditOutlined","RefineButtonTestIds","RefineButtonClassNames","React","useContext","Button","Popconfirm","DeleteOutlined","useDelete","useTranslate","useMutationMode","useCan","useResource","pickNotDeprecated","useWarnAboutChange","AccessControlContext","RefineButtonClassNames","RefineButtonTestIds","DeleteButton","__name","resourceNameFromProps","propResourceNameOrRouteName","recordItemId","onSuccess","mutationModeProp","children","successNotification","errorNotification","hideText","accessControl","metaData","meta","dataProviderName","confirmTitle","confirmOkText","confirmCancelText","invalidates","rest","accessControlContext","useContext","AccessControlContext","accessControlEnabled","hideIfUnauthorized","translate","useTranslate","id","resource","identifier","useResource","mutationModeContext","useMutationMode","mutationMode","mutate","isLoading","variables","useDelete","data","useCan","disabledTitle","setWarnWhen","useWarnAboutChange","React","Popconfirm","pickNotDeprecated","value","Button","DeleteOutlined","RefineButtonTestIds","RefineButtonClassNames","React","Button","RedoOutlined","useTranslate","useResource","useInvalidate","queryKeys","pickDataProvider","RefineButtonClassNames","RefineButtonTestIds","useQueryClient","RefreshButton","__name","resourceNameFromProps","propResourceNameOrRouteName","recordItemId","hideText","dataProviderName","children","onClick","_meta","_metaData","rest","translate","useTranslate","queryClient","useQueryClient","invalidates","useInvalidate","resources","identifier","id","useResource","isInvalidating","queryKeys","pickDataProvider","handleInvalidate","React","Button","e","RedoOutlined","RefineButtonTestIds","RefineButtonClassNames","React","useContext","Button","EyeOutlined","useCan","useNavigation","useTranslate","useResource","useRouterContext","useRouterType","useLink","AccessControlContext","RefineButtonClassNames","RefineButtonTestIds","ShowButton","__name","resourceNameFromProps","propResourceNameOrRouteName","recordItemId","hideText","accessControl","meta","children","onClick","rest","accessControlContext","useContext","AccessControlContext","accessControlEnabled","hideIfUnauthorized","generateShowUrl","useNavigation","routerType","useRouterType","Link","useLink","LegacyLink","useRouterContext","ActiveLink","translate","useTranslate","id","resource","useResource","data","useCan","createButtonDisabledTitle","showUrl","React","e","Button","EyeOutlined","RefineButtonTestIds","RefineButtonClassNames","React","useContext","Button","BarsOutlined","useCan","useNavigation","useTranslate","useUserFriendlyName","useResource","useRouterContext","useRouterType","useLink","pickNotDeprecated","AccessControlContext","RefineButtonClassNames","RefineButtonTestIds","ListButton","__name","resourceNameFromProps","propResourceNameOrRouteName","hideText","accessControl","meta","children","onClick","rest","_a","accessControlContext","useContext","AccessControlContext","accessControlEnabled","hideIfUnauthorized","generateListUrl","useNavigation","routerType","useRouterType","Link","useLink","LegacyLink","useRouterContext","getUserFriendlyName","useUserFriendlyName","ActiveLink","translate","useTranslate","resource","identifier","useResource","data","useCan","createButtonDisabledTitle","listUrl","React","e","Button","BarsOutlined","RefineButtonTestIds","RefineButtonClassNames","pickNotDeprecated","React","Button","ExportOutlined","useTranslate","RefineButtonClassNames","RefineButtonTestIds","ExportButton","__name","hideText","children","rest","translate","useTranslate","React","Button","ExportOutlined","RefineButtonTestIds","RefineButtonClassNames","React","Button","SaveOutlined","useTranslate","RefineButtonClassNames","RefineButtonTestIds","SaveButton","__name","hideText","children","rest","translate","useTranslate","React","Button","SaveOutlined","RefineButtonTestIds","RefineButtonClassNames","React","useContext","Button","PlusSquareOutlined","useCan","useNavigation","useTranslate","useResource","useRouterContext","useRouterType","useLink","AccessControlContext","RefineButtonTestIds","RefineButtonClassNames","CloneButton","__name","propResourceNameOrRouteName","resourceNameFromProps","recordItemId","hideText","accessControl","meta","children","onClick","rest","accessControlContext","useContext","AccessControlContext","accessControlEnabled","hideIfUnauthorized","generateCloneUrl","useNavigation","routerType","useRouterType","Link","useLink","LegacyLink","useRouterContext","ActiveLink","translate","useTranslate","id","resource","useResource","data","useCan","createButtonDisabledTitle","cloneUrl","React","e","Button","PlusSquareOutlined","RefineButtonTestIds","RefineButtonClassNames","React","Button","Upload","ImportOutlined","useTranslate","RefineButtonClassNames","RefineButtonTestIds","ImportButton","__name","uploadProps","buttonProps","hideText","children","translate","useTranslate","React","Upload","Button","ImportOutlined","RefineButtonTestIds","RefineButtonClassNames","React","Space","useTranslate","useUserFriendlyName","useRefineContext","useRouterType","useResource","List","__name","canCreate","title","children","createButtonPropsFromProps","resourceFromProps","wrapperProps","contentProps","headerProps","breadcrumbFromProps","headerButtonProps","headerButtons","_a","_b","translate","useTranslate","globalBreadcrumb","useRefineContext","routerType","useRouterType","getUserFriendlyName","useUserFriendlyName","resource","identifier","useResource","isCreateButtonVisible","breadcrumb","createButtonProps","defaultExtra","React","CreateButton","PageHeader","Space","Breadcrumb","React","Card","Space","Spin","useNavigation","useTranslate","useUserFriendlyName","useRefineContext","useRouterType","useResource","useBack","Create","__name","title","saveButtonPropsFromProps","children","resourceFromProps","isLoading","breadcrumbFromProps","wrapperProps","headerProps","contentProps","headerButtonProps","headerButtons","footerButtonProps","footerButtons","goBackFromProps","_a","_b","translate","useTranslate","globalBreadcrumb","useRefineContext","routerType","useRouterType","back","useBack","goBack","useNavigation","getUserFriendlyName","useUserFriendlyName","resource","action","identifier","useResource","breadcrumb","saveButtonProps","defaultFooterButtons","React","SaveButton","PageHeader","Breadcrumb","Space","Spin","Card","React","Card","Space","Spin","useMutationMode","useNavigation","useTranslate","useUserFriendlyName","useRefineContext","useRouterType","useBack","useResource","useGo","useToPath","Edit","__name","title","saveButtonPropsFromProps","mutationModeProp","recordItemId","children","deleteButtonPropsFromProps","canDelete","resourceFromProps","isLoading","dataProviderName","breadcrumbFromProps","wrapperProps","headerProps","contentProps","headerButtonProps","headerButtons","footerButtonProps","footerButtons","goBackFromProps","autoSaveProps","_a","_b","_c","translate","useTranslate","globalBreadcrumb","useRefineContext","mutationModeContext","useMutationMode","mutationMode","routerType","useRouterType","back","useBack","go","useGo","goBack","legacyGoList","useNavigation","getUserFriendlyName","useUserFriendlyName","resource","action","idFromParams","identifier","useResource","goListPath","useToPath","id","breadcrumb","hasList","isDeleteButtonVisible","listButtonProps","refreshButtonProps","deleteButtonProps","saveButtonProps","defaultHeaderButtons","React","AutoSaveIndicator","ListButton","RefreshButton","defaultFooterButtons","DeleteButton","SaveButton","PageHeader","Space","Breadcrumb","Spin","Card","React","Card","Space","Spin","useNavigation","useTranslate","useUserFriendlyName","useRefineContext","useResource","useToPath","useRouterType","useBack","useGo","Show","__name","title","canEdit","canDelete","isLoading","children","resourceFromProps","recordItemId","dataProviderName","breadcrumbFromProps","contentProps","headerProps","wrapperProps","headerButtons","footerButtons","footerButtonProps","headerButtonProps","goBackFromProps","_a","_b","_c","translate","useTranslate","globalBreadcrumb","useRefineContext","routerType","useRouterType","back","useBack","go","useGo","goBack","legacyGoList","useNavigation","getUserFriendlyName","useUserFriendlyName","resource","action","idFromParams","identifier","useResource","goListPath","useToPath","id","breadcrumb","hasList","isDeleteButtonVisible","isEditButtonVisible","listButtonProps","editButtonProps","deleteButtonProps","refreshButtonProps","defaultHeaderButtons","React","ListButton","EditButton","DeleteButton","RefreshButton","PageHeader","Space","Breadcrumb","Spin","Card","React","Typography","TextField","__name","value","rest","React","Typography","React","Tag","TagField","__name","value","rest","React","Tag","React","Typography","EmailField","__name","value","rest","React","Typography","React","Image","ImageField","__name","value","imageTitle","rest","React","Image","React","Tooltip","CheckOutlined","CloseOutlined","BooleanField","__name","value","valueLabelTrue","valueLabelFalse","trueIcon","React","CheckOutlined","falseIcon","CloseOutlined","rest","Tooltip","React","dayjs","Typography","LocalizedFormat","DateField","__name","value","locales","dateFormat","rest","dayjs","LocalizedFormat","defaultLocale","React","Typography","React","FileField","__name","title","src","rest","React","UrlField","React","Typography","UrlField","__name","children","value","rest","React","Typography","React","Typography","toLocaleStringSupportsOptions","__name","NumberField","value","locale","options","rest","number","React","Typography","React","ReactMarkdown","gfm","MarkdownField","__name","value","React","ReactMarkdown","gfm","React","useState","Button","Space","dayjs","FilterOutlined","useTranslate","FilterDropdown","__name","props","setSelectedKeys","confirm","clearFilters","mapValue","selectedKeys","children","value","setValue","useState","translate","useTranslate","clearFilter","onFilter","_mappedValue","mappedValue","keys","dayjs","onChange","e","changeEvent","target","childrenWithProps","React","child","Space","Button","FilterOutlined","React","useEffect","useState","useGo","useResource","useRouterType","Button","Result","Typography","Space","Tooltip","InfoCircleOutlined","useNavigation","useTranslate","ErrorComponent","__name","errorMessage","setErrorMessage","useState","translate","useTranslate","push","useNavigation","go","useGo","routerType","useRouterType","resource","action","useResource","useEffect","React","Result","Space","Typography","Tooltip","InfoCircleOutlined","Button","React","useActiveAuthProvider","Row","Col","Layout","Card","Typography","Form","Input","Button","Checkbox","useLogin","useTranslate","layoutStyles","containerStyles","titleStyles","imageContainer","LoginPage","__name","form","Form","translate","useTranslate","authProvider","useActiveAuthProvider","login","isLoading","useLogin","CardTitle","React","Typography","titleStyles","Layout","layoutStyles","Row","Col","containerStyles","imageContainer","Card","values","Input","Checkbox","Button","React","Row","Col","Typography","Space","Button","ReadOutlined","FolderOutlined","TeamOutlined","styles","ReadyPage","__name","Row","Col","Typography","Space","Button","ReadOutlined","FolderOutlined","TeamOutlined","React","WelcomePageFromCore","WelcomePage","__name","React","WelcomePageFromCore","React","React","useLink","useRouterType","useActiveAuthProvider","Row","Col","Layout","Card","Typography","Form","Input","Button","Checkbox","Divider","theme","useLogin","useTranslate","useRouterContext","layoutStyles","containerStyles","headStyles","bodyStyles","titleStyles","LoginPage","__name","providers","registerLink","forgotPasswordLink","rememberMe","contentProps","wrapperProps","renderContent","formProps","title","hideForm","token","theme","form","Form","translate","useTranslate","routerType","useRouterType","Link","useLink","LegacyLink","useRouterContext","ActiveLink","authProvider","useActiveAuthProvider","login","isLoading","useLogin","PageTitle","React","ThemedTitleV2","CardTitle","Typography","titleStyles","renderProviders","provider","Button","Divider","CardContent","Card","headStyles","bodyStyles","containerStyles","values","Input","Checkbox","Layout","layoutStyles","Row","Col","React","useRouterType","useLink","useActiveAuthProvider","Row","Col","Layout","Card","Typography","Form","Input","Button","Divider","theme","useTranslate","useRouterContext","useRegister","RegisterPage","__name","providers","loginLink","wrapperProps","contentProps","renderContent","formProps","title","hideForm","token","theme","form","Form","translate","useTranslate","routerType","useRouterType","Link","useLink","LegacyLink","useRouterContext","ActiveLink","authProvider","useActiveAuthProvider","register","isLoading","useRegister","PageTitle","React","ThemedTitleV2","CardTitle","Typography","titleStyles","renderProviders","provider","Button","Divider","CardContent","Card","headStyles","bodyStyles","containerStyles","values","Input","Layout","layoutStyles","Row","Col","React","useRouterType","useLink","Row","Col","Layout","Card","Typography","Form","Input","Button","theme","useTranslate","useRouterContext","useForgotPassword","ForgotPasswordPage","__name","loginLink","wrapperProps","contentProps","renderContent","formProps","title","token","theme","form","Form","translate","useTranslate","routerType","useRouterType","Link","useLink","LegacyLink","useRouterContext","ActiveLink","forgotPassword","isLoading","useForgotPassword","PageTitle","React","ThemedTitleV2","CardTitle","Typography","titleStyles","CardContent","Card","headStyles","bodyStyles","containerStyles","values","Input","Button","Layout","layoutStyles","Row","Col","React","useActiveAuthProvider","Row","Col","Layout","Card","Typography","Form","Input","Button","theme","useTranslate","useUpdatePassword","UpdatePasswordPage","__name","wrapperProps","contentProps","renderContent","formProps","title","token","theme","form","Form","translate","useTranslate","authProvider","useActiveAuthProvider","updatePassword","isLoading","useUpdatePassword","PageTitle","React","ThemedTitleV2","CardTitle","Typography","titleStyles","CardContent","Card","headStyles","bodyStyles","containerStyles","values","Input","getFieldValue","_","value","Button","Layout","layoutStyles","Row","Col","AuthPage","__name","props","type","React","RegisterPage","ForgotPasswordPage","UpdatePasswordPage","LoginPage","React","useBreadcrumb","useLink","useRefineContext","useRouterContext","useRouterType","useResource","matchResourceFromRoute","AntdBreadcrumb","HomeOutlined","Breadcrumb","__name","breadcrumbProps","showHome","hideIcons","meta","routerType","useRouterType","breadcrumbs","useBreadcrumb","Link","useLink","LegacyLink","useRouterContext","hasDashboard","useRefineContext","resources","useResource","rootRouteResource","matchResourceFromRoute","ActiveLink","breadCrumbItems","label","icon","href","React","AntdBreadcrumb","_a","_b","HomeOutlined","React","AntdPageHeader","Button","Typography","ArrowLeftOutlined","RefinePageHeaderClassNames","PageHeader","__name","children","props","backIcon","React","Button","ArrowLeftOutlined","title","Typography","RefinePageHeaderClassNames","subtitle","AntdPageHeader","React","useTranslate","AutoSaveIndicatorCore","Typography","theme","EllipsisOutlined","SyncOutlined","CheckCircleOutlined","ExclamationCircleOutlined","AutoSaveIndicator","__name","status","success","React","Message","CheckCircleOutlined","error","ExclamationCircleOutlined","loading","SyncOutlined","idle","EllipsisOutlined","AutoSaveIndicatorCore","key","defaultMessage","icon","translate","useTranslate","token","theme","Typography","getValueFromEvent","__name","event","fileList","RefineThemes"]}
|
1
|
+
{"version":3,"sources":["../../src/hooks/form/useForm.ts","../../src/hooks/form/useModalForm/useModalForm.ts","../../src/hooks/modal/useModal/index.tsx","../../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/useSiderVisible/index.ts","../../src/contexts/themedLayoutContext/index.tsx","../../src/hooks/useThemedLayoutContext/index.ts","../../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/themedLayout/index.tsx","../../src/components/themedLayout/sider/index.tsx","../../src/components/themedLayout/sider/styles.ts","../../src/components/themedLayout/header/index.tsx","../../src/components/themedLayout/title/index.tsx","../../src/components/themedLayoutV2/index.tsx","../../src/components/themedLayoutV2/sider/index.tsx","../../src/components/themedLayoutV2/sider/styles.ts","../../src/components/themedLayoutV2/header/index.tsx","../../src/components/themedLayoutV2/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/components/autoSaveIndicator/index.tsx","../../src/definitions/upload/index.ts","../../src/definitions/themes/index.ts"],"sourcesContent":["import React from \"react\";\nimport { FormInstance, FormProps, Form, ButtonProps } from \"antd\";\nimport { useForm as useFormSF } from \"sunflower-antd\";\nimport {\n AutoSaveProps,\n flattenObjectKeys,\n propertyPathToArray,\n} from \"@refinedev/core\";\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 useTranslate,\n useRefineContext,\n} from \"@refinedev/core\";\n\nexport type UseFormProps<\n TQueryFnData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n TData extends BaseRecord = TQueryFnData,\n TResponse extends BaseRecord = TData,\n TResponseError extends HttpError = TError,\n> = UseFormPropsCore<\n TQueryFnData,\n TError,\n TVariables,\n TData,\n TResponse,\n TResponseError\n> & {\n submitOnEnter?: boolean;\n /**\n * Shows notification when unsaved changes exist\n */\n warnWhenUnsavedChanges?: boolean;\n /**\n * Disables server-side validation\n * @default false\n * @see {@link https://refine.dev/docs/advanced-tutorials/forms/server-side-form-validation/}\n */\n disableServerSideValidation?: boolean;\n} & AutoSaveProps<TVariables>;\n\nexport type UseFormReturnType<\n TQueryFnData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n TData extends BaseRecord = TQueryFnData,\n TResponse extends BaseRecord = TData,\n TResponseError extends HttpError = TError,\n> = UseFormReturnTypeCore<\n TQueryFnData,\n TError,\n TVariables,\n TData,\n TResponse,\n TResponseError\n> & {\n form: FormInstance<TVariables>;\n formProps: FormProps<TVariables>;\n saveButtonProps: ButtonProps & {\n onClick: () => void;\n };\n onFinish: (\n values?: TVariables,\n ) => Promise<CreateResponse<TResponse> | UpdateResponse<TResponse> | 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-reference/core/hooks/useForm} for more details.\n *\n * @typeParam TData - Result data of the query extends {@link https://refine.dev/docs/api-reference/core/interfaceReferences#baserecord `BaseRecord`}\n * @typeParam TError - Custom error object that extends {@link https://refine.dev/docs/api-reference/core/interfaceReferences/#httperror `HttpError`}\n * @typeParam TVariables - Values for params. default `{}`\n * @typeParam TData - Result data returned by the `select` function. Extends {@link https://refine.dev/docs/api-reference/core/interfaceReferences#baserecord `BaseRecord`}. Defaults to `TQueryFnData`\n * @typeParam TResponse - Result data returned by the mutation function. Extends {@link https://refine.dev/docs/api-reference/core/interfaceReferences#baserecord `BaseRecord`}. Defaults to `TData`\n * @typeParam TResponseError - Custom error object that extends {@link https://refine.dev/docs/api-reference/core/interfaceReferences#httperror `HttpError`}. Defaults to `TError`\n *\n *\n */\nexport const useForm = <\n TQueryFnData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n TData extends BaseRecord = TQueryFnData,\n TResponse extends BaseRecord = TData,\n TResponseError extends HttpError = TError,\n>({\n action,\n resource,\n onMutationSuccess: onMutationSuccessProp,\n onMutationError: onMutationErrorProp,\n autoSave,\n submitOnEnter = false,\n warnWhenUnsavedChanges: warnWhenUnsavedChangesProp,\n redirect,\n successNotification,\n errorNotification,\n meta,\n metaData,\n queryMeta,\n mutationMeta,\n liveMode,\n liveParams,\n mutationMode,\n dataProviderName,\n onLiveEvent,\n invalidates,\n undoableTimeout,\n queryOptions,\n createMutationOptions,\n updateMutationOptions,\n id: idFromProps,\n overtimeOptions,\n optimisticUpdateMap,\n disableServerSideValidation: disableServerSideValidationProp = false,\n}: UseFormProps<\n TQueryFnData,\n TError,\n TVariables,\n TData,\n TResponse,\n TResponseError\n> = {}): UseFormReturnType<\n TQueryFnData,\n TError,\n TVariables,\n TData,\n TResponse,\n TResponseError\n> => {\n const { options } = useRefineContext();\n const disableServerSideValidation =\n options?.disableServerSideValidation || disableServerSideValidationProp;\n\n const translate = useTranslate();\n\n const [formAnt] = Form.useForm();\n const formSF = useFormSF<TResponse, TVariables>({\n form: formAnt,\n });\n const { form } = formSF;\n\n const useFormCoreResult = useFormCore<\n TQueryFnData,\n TError,\n TVariables,\n TData,\n TResponse,\n TResponseError\n >({\n onMutationSuccess: onMutationSuccessProp\n ? onMutationSuccessProp\n : undefined,\n onMutationError: async (error, _variables, _context) => {\n if (disableServerSideValidation) {\n onMutationErrorProp?.(error, _variables, _context);\n return;\n }\n\n // antd form expects error object to be in a specific format.\n let parsedErrors: {\n name: string | number | (string | number)[];\n errors?: string[] | undefined;\n }[] = [];\n\n // reset antd errors before setting new errors\n const fieldsValue = form.getFieldsValue() as unknown as object;\n\n const fields = Object.keys(flattenObjectKeys(fieldsValue));\n\n parsedErrors = fields.map((field) => {\n return {\n name: propertyPathToArray(field),\n errors: undefined,\n };\n });\n\n form.setFields(parsedErrors);\n\n const errors = error?.errors;\n // parse errors to antd form errors\n for (const key in errors) {\n const fieldError = errors[key];\n\n let newError: string[] = [];\n\n if (Array.isArray(fieldError)) {\n newError = fieldError;\n }\n\n if (typeof fieldError === \"string\") {\n newError = [fieldError];\n }\n\n if (typeof fieldError === \"boolean\" && fieldError) {\n newError = [\"Field is not valid.\"];\n }\n\n if (typeof fieldError === \"object\" && \"key\" in fieldError) {\n const translatedMessage = translate(\n fieldError.key,\n fieldError.message,\n );\n\n newError = [translatedMessage];\n }\n\n parsedErrors.push({\n name: propertyPathToArray(key),\n errors: newError,\n });\n }\n\n form.setFields([...parsedErrors]);\n\n onMutationErrorProp?.(error, _variables, _context);\n },\n redirect,\n action,\n resource,\n successNotification,\n errorNotification,\n meta: pickNotDeprecated(meta, metaData),\n metaData: pickNotDeprecated(meta, metaData),\n queryMeta,\n mutationMeta,\n liveMode,\n liveParams,\n mutationMode,\n dataProviderName,\n onLiveEvent,\n invalidates,\n undoableTimeout,\n queryOptions,\n createMutationOptions,\n updateMutationOptions,\n id: idFromProps,\n overtimeOptions,\n optimisticUpdateMap,\n autoSave,\n });\n\n const { formLoading, onFinish, queryResult, id, onFinishAutoSave } =\n useFormCoreResult;\n\n const { warnWhenUnsavedChanges: warnWhenUnsavedChangesRefine, 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, allValues: any) => {\n if (changeValues && warnWhenUnsavedChanges) {\n setWarnWhen(true);\n }\n\n if (autoSave?.enabled) {\n setWarnWhen(false);\n\n const onFinishFromProps = autoSave?.onFinish ?? ((values) => values);\n\n return onFinishAutoSave(onFinishFromProps(allValues));\n }\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 React, { useCallback } from \"react\";\nimport { FormInstance, FormProps, ModalProps } from \"antd\";\n\nimport {\n useTranslate,\n useWarnAboutChange,\n HttpError,\n UseFormProps as UseFormPropsCore,\n BaseRecord,\n LiveModeProps,\n BaseKey,\n useUserFriendlyName,\n useResource,\n FormWithSyncWithLocationParams,\n useParsed,\n useGo,\n useInvalidate,\n} from \"@refinedev/core\";\nimport { useForm, UseFormProps, UseFormReturnType } from \"../useForm\";\nimport { useModal } from \"@hooks/modal\";\n\nexport type useModalFormFromSFReturnType<TResponse, 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<TResponse>;\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 TQueryFnData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n TData extends BaseRecord = TQueryFnData,\n TResponse extends BaseRecord = TData,\n TResponseError extends HttpError = TError,\n> = Omit<\n UseFormReturnType<\n TQueryFnData,\n TError,\n TVariables,\n TData,\n TResponse,\n TResponseError\n >,\n \"saveButtonProps\" | \"deleteButtonProps\"\n> &\n useModalFormFromSFReturnType<TResponse, TVariables>;\n\nexport type UseModalFormProps<\n TQueryFnData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n TData extends BaseRecord = TQueryFnData,\n TResponse extends BaseRecord = TData,\n TResponseError extends HttpError = TError,\n> = UseFormPropsCore<\n TQueryFnData,\n TError,\n TVariables,\n TData,\n TResponse,\n TResponseError\n> &\n UseFormProps<\n TQueryFnData,\n TError,\n TVariables,\n TData,\n TResponse,\n TResponseError\n > &\n useModalFormConfig &\n LiveModeProps &\n FormWithSyncWithLocationParams & {\n defaultVisible?: boolean;\n autoSubmitClose?: boolean;\n autoResetForm?: boolean;\n };\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/api-reference/antd/hooks/form/useModalForm} for more details.\n *\n * @typeParam TData - Result data of the query extends {@link https://refine.dev/docs/api-reference/core/interfaceReferences#baserecord `BaseRecord`}\n * @typeParam TError - Custom error object that extends {@link https://refine.dev/docs/api-reference/core/interfaceReferences/#httperror `HttpError`}\n * @typeParam TVariables - Values for params. default `{}`\n *\n *\n */\nexport const useModalForm = <\n TQueryFnData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n TData extends BaseRecord = TQueryFnData,\n TResponse extends BaseRecord = TData,\n TResponseError extends HttpError = TError,\n>({\n syncWithLocation,\n defaultVisible = false,\n autoSubmitClose = true,\n autoResetForm = true,\n autoSave,\n invalidates,\n ...rest\n}: UseModalFormProps<\n TQueryFnData,\n TError,\n TVariables,\n TData,\n TResponse,\n TResponseError\n>): UseModalFormReturnType<\n TQueryFnData,\n TError,\n TVariables,\n TData,\n TResponse,\n TResponseError\n> => {\n const [initiallySynced, setInitiallySynced] = React.useState(false);\n const invalidate = useInvalidate();\n\n const {\n resource,\n action: actionFromParams,\n identifier,\n } = useResource(rest.resource);\n\n const parsed = useParsed();\n const go = useGo();\n const getUserFriendlyName = useUserFriendlyName();\n\n const action = rest.action ?? actionFromParams ?? \"\";\n\n const syncingId = !(\n typeof syncWithLocation === \"object\" && syncWithLocation?.syncId === false\n );\n\n const syncWithLocationKey =\n typeof syncWithLocation === \"object\" && \"key\" in syncWithLocation\n ? syncWithLocation.key\n : resource && action && syncWithLocation\n ? `modal-${identifier}-${action}`\n : undefined;\n\n const useFormProps = useForm<\n TQueryFnData,\n TError,\n TVariables,\n TData,\n TResponse,\n TResponseError\n >({\n meta: {\n ...(syncWithLocationKey ? { [syncWithLocationKey]: undefined } : {}),\n ...rest.meta,\n },\n autoSave,\n invalidates,\n ...rest,\n });\n\n const { form, formProps, id, setId, formLoading, onFinish, autoSaveProps } =\n useFormProps;\n\n const translate = useTranslate();\n\n const { warnWhen, setWarnWhen } = useWarnAboutChange();\n\n const { show, close, modalProps } = useModal({\n modalProps: {\n open: defaultVisible,\n },\n });\n\n const visible = modalProps.open || false;\n const sunflowerUseModal: useModalFormFromSFReturnType<TResponse, TVariables> =\n {\n modalProps,\n form,\n formLoading,\n formProps,\n formResult: undefined,\n formValues: form.getFieldsValue,\n defaultFormValuesLoading: false,\n initialValues: {},\n submit: onFinish as any,\n close,\n open: modalProps.open || false,\n show,\n visible,\n };\n\n React.useEffect(() => {\n if (initiallySynced === false && syncWithLocationKey) {\n const openStatus = parsed?.params?.[syncWithLocationKey]?.open;\n\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 setInitiallySynced(true);\n }\n }, [syncWithLocationKey, parsed, syncingId, setId]);\n\n React.useEffect(() => {\n if (initiallySynced === 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 saveButtonPropsSF = {\n disabled: formLoading,\n loading: formLoading,\n onClick: () => {\n form.submit();\n },\n };\n\n const handleClose = useCallback(() => {\n if (autoSaveProps.status === \"success\" && autoSave?.invalidateOnClose) {\n invalidate({\n id,\n invalidates: invalidates || [\"list\", \"many\", \"detail\"],\n dataProviderName: rest.dataProviderName,\n resource: identifier,\n });\n }\n\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, autoSaveProps.status]);\n\n const handleShow = useCallback(\n (showId?: BaseKey) => {\n if (typeof showId !== \"undefined\") {\n setId?.(showId);\n }\n const needsIdToOpen = action === \"edit\" || action === \"clone\";\n const hasId = typeof showId !== \"undefined\" || typeof id !== \"undefined\";\n if (needsIdToOpen ? hasId : true) {\n sunflowerUseModal.show();\n }\n },\n [id],\n );\n\n const { visible: _visible, ...otherModalProps } = modalProps;\n const newModalProps = { open: _visible, ...otherModalProps };\n\n return {\n ...useFormProps,\n ...sunflowerUseModal,\n show: handleShow,\n close: handleClose,\n open: visible,\n formProps: {\n ...formProps,\n ...useFormProps.formProps,\n onValuesChange: formProps?.onValuesChange,\n onKeyUp: formProps?.onKeyUp,\n onFinish: async (values) => {\n await onFinish(values);\n\n if (autoSubmitClose) {\n close();\n }\n\n if (autoResetForm) {\n form.resetFields();\n }\n },\n },\n modalProps: {\n ...newModalProps,\n width: \"1000px\",\n okButtonProps: saveButtonPropsSF,\n title: translate(\n `${identifier}.titles.${rest.action}`,\n `${getUserFriendlyName(\n `${rest.action} ${\n resource?.meta?.label ??\n resource?.options?.label ??\n resource?.label ??\n identifier\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 { 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/api-reference/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, { useCallback } from \"react\";\nimport { UseFormConfig } from \"sunflower-antd\";\nimport { FormInstance, FormProps, DrawerProps, ButtonProps } from \"antd\";\nimport {\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 useModal,\n useInvalidate,\n} from \"@refinedev/core\";\n\nimport { useForm, UseFormProps, UseFormReturnType } from \"../useForm\";\nimport { DeleteButtonProps } from \"../../../components\";\n\nexport interface UseDrawerFormConfig extends UseFormConfig {\n action: \"show\" | \"edit\" | \"create\" | \"clone\";\n}\n\nexport type UseDrawerFormProps<\n TQueryFnData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n TData extends BaseRecord = TQueryFnData,\n TResponse extends BaseRecord = TData,\n TResponseError extends HttpError = TError,\n> = UseFormPropsCore<\n TQueryFnData,\n TError,\n TVariables,\n TData,\n TResponse,\n TResponseError\n> &\n UseFormProps<\n TQueryFnData,\n TError,\n TVariables,\n TData,\n TResponse,\n TResponseError\n > &\n UseDrawerFormConfig &\n LiveModeProps &\n FormWithSyncWithLocationParams & {\n defaultVisible?: boolean;\n autoSubmitClose?: boolean;\n autoResetForm?: boolean;\n };\n\nexport type UseDrawerFormReturnType<\n TQueryFnData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n TData extends BaseRecord = TQueryFnData,\n TResponse extends BaseRecord = TData,\n TResponseError extends HttpError = TError,\n> = UseFormReturnType<\n TQueryFnData,\n TError,\n TVariables,\n TData,\n TResponse,\n TResponseError\n> & {\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/api-reference/antd/hooks/form/useDrawerForm} for more details.\n *\n * @typeParam TData - Result data of the query extends {@link https://refine.dev/docs/api-reference/core/interfaceReferences#baserecord `BaseRecord`}\n * @typeParam TError - Custom error object that extends {@link https://refine.dev/docs/api-reference/core/interfaceReferences/#httperror `HttpError`}\n * @typeParam TVariables - Values for params. default `{}`\n *\n *\n */\n\nexport const useDrawerForm = <\n TQueryFnData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n TData extends BaseRecord = TQueryFnData,\n TResponse extends BaseRecord = TData,\n TResponseError extends HttpError = TError,\n>({\n syncWithLocation,\n defaultVisible = false,\n autoSubmitClose = true,\n autoResetForm = true,\n autoSave,\n invalidates,\n ...rest\n}: UseDrawerFormProps<\n TQueryFnData,\n TError,\n TVariables,\n TData,\n TResponse,\n TResponseError\n>): UseDrawerFormReturnType<\n TQueryFnData,\n TError,\n TVariables,\n TData,\n TResponse,\n TResponseError\n> => {\n const invalidate = useInvalidate();\n const [initiallySynced, setInitiallySynced] = React.useState(false);\n\n const { visible, show, close } = useModal({\n defaultVisible,\n });\n\n const {\n resource,\n action: actionFromParams,\n identifier,\n } = 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 === false\n );\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 useFormProps = useForm<\n TQueryFnData,\n TError,\n TVariables,\n TData,\n TResponse,\n TResponseError\n >({\n meta: {\n ...(syncWithLocationKey ? { [syncWithLocationKey]: undefined } : {}),\n ...rest.meta,\n },\n autoSave,\n invalidates,\n ...rest,\n });\n\n const { form, formProps, formLoading, id, setId, onFinish, autoSaveProps } =\n useFormProps;\n\n React.useEffect(() => {\n if (initiallySynced === false && syncWithLocationKey) {\n const openStatus = parsed?.params?.[syncWithLocationKey]?.open;\n if (typeof openStatus === \"boolean\") {\n openStatus ? show() : close();\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 setInitiallySynced(true);\n }\n }, [syncWithLocationKey, parsed, syncingId, setId, initiallySynced]);\n\n React.useEffect(() => {\n if (initiallySynced === 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 }, [\n id,\n visible,\n show,\n close,\n syncWithLocationKey,\n syncingId,\n initiallySynced,\n ]);\n\n const translate = useTranslate();\n\n const { warnWhen, setWarnWhen } = useWarnAboutChange();\n\n const saveButtonProps = {\n disabled: formLoading,\n onClick: () => {\n form.submit();\n },\n loading: formLoading,\n };\n\n const deleteButtonProps = {\n recordItemId: id,\n onSuccess: () => {\n setId?.(undefined);\n close();\n },\n };\n\n const handleClose = useCallback(() => {\n if (autoSaveProps.status === \"success\" && autoSave?.invalidateOnClose) {\n invalidate({\n id,\n invalidates: invalidates || [\"list\", \"many\", \"detail\"],\n dataProviderName: rest.dataProviderName,\n resource: identifier,\n });\n }\n\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 close();\n setId?.(undefined);\n }, [warnWhen]);\n\n const handleShow = useCallback(\n (showId?: BaseKey) => {\n if (typeof showId !== \"undefined\") {\n setId?.(showId);\n }\n const needsIdToOpen = action === \"edit\" || action === \"clone\";\n const hasId = typeof showId !== \"undefined\" || typeof id !== \"undefined\";\n if (needsIdToOpen ? hasId : true) {\n show();\n }\n },\n [id],\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: async (values) => {\n await onFinish(values);\n\n if (autoSubmitClose) {\n close();\n }\n\n if (autoResetForm) {\n form.resetFields();\n }\n },\n },\n drawerProps: {\n width: \"500px\",\n onClose: handleClose,\n open: visible,\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<TResponse, TVariables> = {\n current: number;\n gotoStep: (step: number) => Promise<TVariables> | true;\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<TResponse>;\n};\n\nexport type UseStepsFormReturnType<\n TQueryFnData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n TData extends BaseRecord = TQueryFnData,\n TResponse extends BaseRecord = TData,\n TResponseError extends HttpError = TError,\n> = UseFormReturnType<\n TQueryFnData,\n TError,\n TVariables,\n TData,\n TResponse,\n TResponseError\n> &\n UseStepsFormFromSFReturnType<TResponse, TVariables>;\n\nexport type UseStepsFormProps<\n TQueryFnData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n TData extends BaseRecord = TQueryFnData,\n TResponse extends BaseRecord = TData,\n TResponseError extends HttpError = TError,\n> = UseFormPropsCore<\n TQueryFnData,\n TError,\n TVariables,\n TData,\n TResponse,\n TResponseError\n> &\n UseFormProps<\n TQueryFnData,\n TError,\n TVariables,\n TData,\n TResponse,\n TResponseError\n > &\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/api-reference/antd/hooks/form/useStepsForm} for more details.\n *\n * @typeParam TData - Result data of the query extends {@link https://refine.dev/docs/api-reference/core/interfaceReferences#baserecord `BaseRecord`}\n * @typeParam TError - Custom error object that extends {@link https://refine.dev/docs/api-reference/core/interfaceReferences/#httperror `HttpError`}\n * @typeParam TVariables - Values for params. default `{}`\n *\n *\n */\nexport const useStepsForm = <\n TQueryFnData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n TData extends BaseRecord = TQueryFnData,\n TResponse extends BaseRecord = TData,\n TResponseError extends HttpError = TError,\n>(\n props: UseStepsFormProps<\n TQueryFnData,\n TError,\n TVariables,\n TData,\n TResponse,\n TResponseError\n > = {},\n): UseStepsFormReturnType<\n TQueryFnData,\n TError,\n TVariables,\n TData,\n TResponse,\n TResponseError\n> => {\n const useFormProps = useForm<\n TQueryFnData,\n TError,\n TVariables,\n TData,\n TResponse,\n TResponseError\n >({\n ...props,\n });\n const { form, formProps } = useFormProps;\n\n const stepsPropsSunflower = useStepsFormSF<TResponse, 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 formLoading: useFormProps.formLoading,\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 {\n useLiveMode,\n BaseRecord,\n CrudFilters,\n HttpError,\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\";\nimport { FilterValue, SorterResult } from \"../../../definitions/table\";\n\nexport type useTableProps<TQueryFnData, TError, TSearchVariables, TData> =\n useTablePropsCore<TQueryFnData, TError, TData> & {\n onSearch?: (data: TSearchVariables) => 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-reference/antd/hooks/table/useTable/} for more details.\n *\n * @typeParam TQueryFnData - Result data returned by the query function. Extends {@link https://refine.dev/docs/api-reference/core/interfaceReferences#baserecord `BaseRecord`}\n * @typeParam TError - Custom error object that extends {@link https://refine.dev/docs/api-reference/core/interfaceReferences#httperror `HttpError`}\n * @typeParam TSearchVariables - Values for search params\n * @typeParam TData - Result data returned by the `select` function. Extends {@link https://refine.dev/docs/api-reference/core/interfaceReferences#baserecord `BaseRecord`}. Defaults to `TQueryFnData`\n *\n */\n\nexport const useTable = <\n TQueryFnData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TSearchVariables = unknown,\n TData extends BaseRecord = TQueryFnData,\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<\n TQueryFnData,\n TError,\n TSearchVariables,\n TData\n> = {}): useTableReturnType<TData, TError, TSearchVariables> => {\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 overtime,\n } = useTableCore<TQueryFnData, TError, TData>({\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<string, FilterValue | null>,\n sorter: SorterResult | SorterResult[],\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)?.props\n ?.children;\n\n return createElement(PaginationLink, {\n to: link,\n element:\n Children.count(elementChildren) > 1\n ? createElement(Fragment, {}, elementChildren)\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 overtime,\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 { TableProps } from \"antd\";\n\nexport type FilterValue = Parameters<\n NonNullable<TableProps[\"onChange\"]>\n>[1][string];\nexport type SortOrder = NonNullable<TableProps[\"sortDirections\"]>[number];\nexport type SorterResult = Exclude<\n Parameters<NonNullable<TableProps[\"onChange\"]>>[2],\n any[]\n>;\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 | SorterResult[],\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 ?? 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 | FilterValue\n | (string | number | boolean)\n | (string | number | boolean)[]\n | 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 TQueryFnData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n TSearchVariables = unknown,\n TData extends BaseRecord = TQueryFnData,\n> = useTableReturnType<TData, TError, TSearchVariables> &\n UseFormReturnType<TQueryFnData, 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 TQueryFnData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n TSearchVariables = unknown,\n TData extends BaseRecord = TQueryFnData,\n> = Omit<\n useTableProps<TQueryFnData, TError, TSearchVariables, TData>,\n \"successNotification\" | \"errorNotification\"\n> &\n UseFormProps<TQueryFnData, TError, TVariables> & {\n /**\n * When true, row will be closed after successful submit.\n */\n autoSubmitClose?: boolean;\n };\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-reference/core/hooks/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/api-reference/antd/hooks/table/useTable/} for more details.\n *\n * @typeParam TQueryFnData - Result data returned by the query function. Extends {@link https://refine.dev/docs/api-reference/core/interfaceReferences#baserecord `BaseRecord`}\n * @typeParam TError - Custom error object that extends {@link https://refine.dev/docs/api-reference/core/interfaceReferences#httperror `HttpError`}\n * @typeParam TVariables - Values for params\n * @typeParam TSearchVariables - Values for search params\n * @typeParam TData - Result data returned by the `select` function. Extends {@link https://refine.dev/docs/api-reference/core/interfaceReferences#baserecord `BaseRecord`}. Defaults to `TQueryFnData`\n *\n */\nexport const useEditableTable = <\n TQueryFnData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n TSearchVariables = unknown,\n TData extends BaseRecord = TQueryFnData,\n>({\n autoSubmitClose = true,\n ...props\n}: useEditableTableProps<\n TQueryFnData,\n TError,\n TVariables,\n TSearchVariables,\n TData\n> = {}): useEditableTableReturnType<\n TQueryFnData,\n TError,\n TVariables,\n TSearchVariables,\n TData\n> => {\n const table = useTable<TQueryFnData, TError, TSearchVariables, TData>({\n ...props,\n successNotification: undefined,\n errorNotification: undefined,\n });\n const edit = useForm<TQueryFnData, 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 formProps: {\n ...edit.formProps,\n onFinish: async (values) => {\n const result = await edit.onFinish(values);\n if (autoSubmitClose) {\n setId(undefined);\n }\n return result;\n },\n },\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 BaseOption,\n} from \"@refinedev/core\";\n\nexport type UseSelectReturnType<\n TData extends BaseRecord = BaseRecord,\n TOption extends BaseOption = BaseOption,\n> = {\n selectProps: SelectProps<TOption>;\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-reference/antd/hooks/field/useSelect/} for more details.\n *\n * @typeParam TQueryFnData - Result data returned by the query function. Extends {@link https://refine.dev/docs/api-reference/core/interfaceReferences#baserecord `BaseRecord`}\n * @typeParam TError - Custom error object that extends {@link https://refine.dev/docs/api-reference/core/interfaceReferences#httperror `HttpError`}\n * @typeParam TData - Result data returned by the `select` function. Extends {@link https://refine.dev/docs/api-reference/core/interfaceReferences#baserecord `BaseRecord`}. Defaults to `TQueryFnData`\n *\n */\n\nexport const useSelect = <\n TQueryFnData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TData extends BaseRecord = TQueryFnData,\n TOption extends BaseOption = BaseOption,\n>(\n props: UseSelectProps<TQueryFnData, TError, TData>,\n): UseSelectReturnType<TData, TOption> => {\n const { queryResult, defaultValueQueryResult, onSearch, options } =\n useSelectCore<TQueryFnData, TError, TData, TOption>(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\";\nimport type { Checkbox } from \"antd\";\n\nimport {\n BaseRecord,\n GetListResponse,\n HttpError,\n UseSelectProps,\n useSelect,\n BaseKey,\n pickNotDeprecated,\n BaseOption,\n} from \"@refinedev/core\";\n\nexport type UseCheckboxGroupReturnType<\n TData extends BaseRecord = BaseRecord,\n TOption extends BaseOption = BaseOption,\n> = {\n checkboxGroupProps: Omit<\n React.ComponentProps<typeof Checkbox.Group>,\n \"options\"\n > & {\n options: TOption[];\n };\n queryResult: QueryObserverResult<GetListResponse<TData>>;\n};\n\ntype UseCheckboxGroupProps<TQueryFnData, TError, TData> = Omit<\n UseSelectProps<TQueryFnData, TError, TData>,\n \"defaultValue\"\n> & {\n /**\n * Sets the default value\n */\n defaultValue?: BaseKey[];\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/api-reference/antd/hooks/field/useCheckboxGroup/} for more details\n *\n * @typeParam TQueryFnData - Result data returned by the query function. Extends {@link https://refine.dev/docs/api-reference/core/interfaceReferences#baserecord `BaseRecord`}\n * @typeParam TError - Custom error object that extends {@link https://refine.dev/docs/api-reference/core/interfaceReferences#httperror `HttpError`}\n * @typeParam TData - Result data returned by the `select` function. Extends {@link https://refine.dev/docs/api-reference/core/interfaceReferences#baserecord `BaseRecord`}. Defaults to `TQueryFnData`\n *\n */\n\nexport const useCheckboxGroup = <\n TQueryFnData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TData extends BaseRecord = TQueryFnData,\n TOption extends BaseOption = BaseOption,\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<\n TQueryFnData,\n TError,\n TData\n>): UseCheckboxGroupReturnType<TData, TOption> => {\n const { queryResult, options } = useSelect<\n TQueryFnData,\n TError,\n TData,\n TOption\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: 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\";\nimport type { Radio } from \"antd\";\n\nimport {\n BaseKey,\n BaseOption,\n BaseRecord,\n GetListResponse,\n HttpError,\n pickNotDeprecated,\n useSelect,\n UseSelectProps,\n} from \"@refinedev/core\";\n\nexport type UseRadioGroupReturnType<\n TData extends BaseRecord = BaseRecord,\n TOption extends BaseOption = BaseOption,\n> = {\n radioGroupProps: Omit<React.ComponentProps<typeof Radio.Group>, \"options\"> & {\n options: TOption[];\n };\n queryResult: QueryObserverResult<GetListResponse<TData>>;\n};\n\ntype UseRadioGroupProps<TQueryFnData, TError, TData> = Omit<\n UseSelectProps<TQueryFnData, TError, TData>,\n \"defaultValue\"\n> & {\n /**\n * Sets the default value\n */\n defaultValue?: BaseKey;\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/api-reference/antd/hooks/field/useRadioGroup/} for more details.\n *\n * @typeParam TQueryFnData - Result data returned by the query function. Extends {@link https://refine.dev/docs/api-reference/core/interfaceReferences#baserecord `BaseRecord`}\n * @typeParam TError - Custom error object that extends {@link https://refine.dev/docs/api-reference/core/interfaceReferences#httperror `HttpError`}\n * @typeParam TData - Result data returned by the `select` function. Extends {@link https://refine.dev/docs/api-reference/core/interfaceReferences#baserecord `BaseRecord`}. Defaults to `TQueryFnData`\n *\n */\n\nexport const useRadioGroup = <\n TQueryFnData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TData extends BaseRecord = TQueryFnData,\n TOption extends BaseOption = BaseOption,\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<TQueryFnData, TError, TData>): UseRadioGroupReturnType<\n TData,\n TOption\n> => {\n const { queryResult, options } = useSelect<\n TQueryFnData,\n TError,\n TData,\n TOption\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: 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/api-reference/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-reference/core/interfaceReferences#baserecord `BaseRecord`}\n * @typeParam TError - Custom error object that extends {@link https://refine.dev/docs/api-reference/core/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((processedAmount / totalAmount) * 100)}\n size={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 HttpError,\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<TQueryFnData, TError, TSearchVariables, TData> =\n useTablePropsCore<TQueryFnData, TError, TData> & {\n onSearch?: (data: TSearchVariables) => CrudFilters | Promise<CrudFilters>;\n };\n\nexport type useSimpleListReturnType<\n TQueryFnData extends BaseRecord = BaseRecord,\n TSearchVariables = unknown,\n TData extends BaseRecord = TQueryFnData,\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/api-reference/antd/hooks/list/useSimpleList} for more details.\n *\n * @typeParam TQueryFnData - Result data returned by the query function. Extends {@link https://refine.dev/docs/api-reference/core/interfaceReferences#baserecord `BaseRecord`}\n * @typeParam TError - Custom error object that extends {@link https://refine.dev/docs/api-reference/core/interfaceReferences#httperror `HttpError`}\n * @typeParam TSearchVariables - Antd form values\n * @typeParam TData - Result data returned by the `select` function. Extends {@link https://refine.dev/docs/api-reference/core/interfaceReferences#baserecord `BaseRecord`}. Defaults to `TQueryFnData`\n *\n */\n\nexport const useSimpleList = <\n TQueryFnData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TSearchVariables = unknown,\n TData extends BaseRecord = TQueryFnData,\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 TQueryFnData,\n TError,\n TSearchVariables,\n TData\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 overtime,\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)?.props\n ?.children;\n\n return createElement(PaginationLink, {\n to: link,\n element:\n Children.count(elementChildren) > 1\n ? createElement(Fragment, {}, elementChildren)\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 overtime,\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 { useContext } from \"react\";\n\nimport { ThemedLayoutContext } from \"@contexts\";\n\nexport type UseSiderVisibleType = {\n siderVisible: boolean;\n drawerSiderVisible: boolean;\n setSiderVisible: (visible: boolean) => void;\n setDrawerSiderVisible: (visible: boolean) => void;\n};\n\n/**\n * @deprecated Please use `useThemedLayoutContext` instead.\n */\nexport const useSiderVisible = (): UseSiderVisibleType => {\n const {\n mobileSiderOpen,\n siderCollapsed,\n setMobileSiderOpen,\n setSiderCollapsed,\n } = useContext(ThemedLayoutContext);\n\n return {\n siderVisible: mobileSiderOpen,\n setSiderVisible: setMobileSiderOpen,\n drawerSiderVisible: siderCollapsed,\n setDrawerSiderVisible: setSiderCollapsed,\n };\n};\n","import React, { ReactNode, useState } from \"react\";\n\nimport { IThemedLayoutContext } from \"./IThemedLayoutContext\";\n\nexport const ThemedLayoutContext = React.createContext<IThemedLayoutContext>({\n siderCollapsed: false,\n mobileSiderOpen: false,\n setSiderCollapsed: () => undefined,\n setMobileSiderOpen: () => undefined,\n});\n\nexport const ThemedLayoutContextProvider: React.FC<{\n children: ReactNode;\n initialSiderCollapsed?: boolean;\n}> = ({ children, initialSiderCollapsed }) => {\n const [siderCollapsed, setSiderCollapsed] = useState(\n initialSiderCollapsed ?? false,\n );\n const [mobileSiderOpen, setMobileSiderOpen] = useState(false);\n\n return (\n <ThemedLayoutContext.Provider\n value={{\n siderCollapsed,\n mobileSiderOpen,\n setSiderCollapsed,\n setMobileSiderOpen,\n }}\n >\n {children}\n </ThemedLayoutContext.Provider>\n );\n};\n","import { useContext } from \"react\";\n\nimport { ThemedLayoutContext } from \"@contexts\";\nimport { IThemedLayoutContext } from \"@contexts/themedLayoutContext/IThemedLayoutContext\";\n\nexport type UseThemedLayoutContextType = IThemedLayoutContext;\n\nexport const useThemedLayoutContext = (): UseThemedLayoutContextType => {\n const {\n mobileSiderOpen,\n siderCollapsed,\n setMobileSiderOpen,\n setSiderCollapsed,\n } = useContext(ThemedLayoutContext);\n\n return {\n mobileSiderOpen,\n siderCollapsed,\n setMobileSiderOpen,\n setSiderCollapsed,\n };\n};\n","import { NotificationProvider } from \"@refinedev/core\";\nimport { App, notification as staticNotification } from \"antd\";\nimport React from \"react\";\n\nimport { UndoableNotification } from \"@components/undoableNotification\";\n\n/**\n * @deprecated `notificationProvider` is deprecated due to not being compatible with theme changes in Ant Design. Please use `useNotificationProvider` export as your notification provider.\n * @see https://refine.dev/docs/api-reference/antd/theming/#usenotificationprovider-compatible-with-theme\n */\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 staticNotification.open({\n key,\n description: (\n <UndoableNotification\n notificationKey={key}\n message={message}\n cancelMutation={() => {\n cancelMutation?.();\n staticNotification.destroy(key ?? \"\");\n }}\n undoableTimeout={undoableTimeout}\n />\n ),\n message: null,\n duration: 0,\n closeIcon: <></>,\n });\n } else {\n staticNotification.open({\n key,\n description: message,\n message: description ?? null,\n type,\n });\n }\n },\n close: (key) => staticNotification.destroy(key),\n};\n\nexport const useNotificationProvider = (): NotificationProvider => {\n const { notification: notificationFromContext } = App.useApp();\n const notification =\n \"open\" in notificationFromContext\n ? notificationFromContext\n : staticNotification;\n\n 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={() => {\n cancelMutation?.();\n notification.destroy(key ?? \"\");\n }}\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\n return notificationProvider;\n};\n","import React from \"react\";\nimport { Button, 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 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 size={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={cancelMutation}\n disabled={undoableTimeout === 0}\n icon={<UndoOutlined />}\n />\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\n/**\n * @deprecated use `<ThemedLayout>` instead with 100% backward compatibility.\n * @see https://refine.dev/docs/api-reference/antd/components/antd-themed-layout\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 useWarnAboutChange,\n} from \"@refinedev/core\";\n\nimport { Title as DefaultTitle } from \"@components\";\n\nimport { drawerButtonStyles } from \"./styles\";\nimport { RefineLayoutSiderProps } from \"../types\";\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 { warnWhen, setWarnWhen } = useWarnAboutChange();\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 <Menu.SubMenu\n key={item.key}\n icon={icon ?? <UnorderedListOutlined />}\n title={label}\n >\n {renderTreeView(children, selectedKey)}\n </Menu.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 handleLogout = () => {\n if (warnWhen) {\n const confirm = window.confirm(\n translate(\n \"warnWhenUnsavedChanges\",\n \"Are you sure you want to leave? You have unsaved changes.\",\n ),\n );\n\n if (confirm) {\n setWarnWhen(false);\n mutateLogout();\n }\n } else {\n mutateLogout();\n }\n };\n\n const logout = isExistAuthentication && (\n <Menu.Item key=\"logout\" onClick={handleLogout} icon={<LogoutOutlined />}>\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 style={{ height: \"100vh\", overflow: \"hidden\" }}>\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 />\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 => setCollapsed(collapsed)}\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 { useActiveAuthProvider, useGetIdentity } from \"@refinedev/core\";\nimport { Avatar, Layout as AntdLayout, Space, Typography } from \"antd\";\nimport React from \"react\";\nimport { RefineLayoutHeaderProps } from \"../types\";\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 style={{ marginLeft: \"8px\" }}>\n {user?.name && (\n <Typography.Text style={{ color: \"white\" }} strong>\n {user.name}\n </Typography.Text>\n )}\n {user?.avatar && <Avatar src={user?.avatar} alt={user?.name} />}\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 { Grid, Layout as AntdLayout } from \"antd\";\n\nimport { ThemedSider as DefaultSider } from \"./sider\";\nimport { ThemedHeader as DefaultHeader } from \"./header\";\nimport { RefineThemedLayoutProps } from \"./types\";\n\n/**\n * @deprecated It is recommended to use the improved `ThemedLayoutV2`. Review migration guidelines. https://refine.dev/docs/api-reference/antd/components/antd-themed-layout/#migrate-themedlayout-to-themedlayoutv2\n */\nexport const ThemedLayout: React.FC<RefineThemedLayoutProps> = ({\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, Drawer, Button, theme } from \"antd\";\nimport {\n DashboardOutlined,\n LogoutOutlined,\n UnorderedListOutlined,\n BarsOutlined,\n LeftOutlined,\n RightOutlined,\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 useWarnAboutChange,\n} from \"@refinedev/core\";\n\nimport { drawerButtonStyles } from \"./styles\";\nimport { RefineThemedLayoutSiderProps } from \"../types\";\nimport { ThemedTitle } from \"@components\";\n\n/**\n * @deprecated It is recommended to use the improved `ThemedLayoutV2`. Review migration guidelines. https://refine.dev/docs/api-reference/antd/components/antd-themed-layout/#migrate-themedlayout-to-themedlayoutv2\n */\nexport const ThemedSider: React.FC<RefineThemedLayoutSiderProps> = ({\n Title: TitleFromProps,\n render,\n meta,\n}) => {\n const { token } = theme.useToken();\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 { warnWhen, setWarnWhen } = useWarnAboutChange();\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 ?? ThemedTitle;\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 <Menu.SubMenu\n key={item.key}\n icon={icon ?? <UnorderedListOutlined />}\n title={label}\n >\n {renderTreeView(children, selectedKey)}\n </Menu.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\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 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 handleLogout = () => {\n if (warnWhen) {\n const confirm = window.confirm(\n translate(\n \"warnWhenUnsavedChanges\",\n \"Are you sure you want to leave? You have unsaved changes.\",\n ),\n );\n\n if (confirm) {\n setWarnWhen(false);\n mutateLogout();\n }\n } else {\n mutateLogout();\n }\n };\n\n const logout = isExistAuthentication && (\n <Menu.Item\n key=\"logout\"\n onClick={() => handleLogout()}\n icon={<LogoutOutlined />}\n >\n {translate(\"buttons.logout\", \"Logout\")}\n </Menu.Item>\n );\n\n const dashboard = hasDashboard ? (\n <Menu.Item key=\"dashboard\" icon={<DashboardOutlined />}>\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 selectedKeys={selectedKey ? [selectedKey] : []}\n defaultOpenKeys={defaultOpenKeys}\n mode=\"inline\"\n style={{\n marginTop: \"8px\",\n border: \"none\",\n }}\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={{\n height: \"100vh\",\n overflow: \"hidden\",\n backgroundColor: token.colorBgContainer,\n borderRight: `1px solid ${token.colorBgElevated}`,\n }}\n >\n <div\n style={{\n width: \"200px\",\n padding: \"0 16px\",\n display: \"flex\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n height: \"64px\",\n backgroundColor: token.colorBgElevated,\n }}\n >\n <RenderToTitle collapsed={false} />\n </div>\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 />\n </>\n );\n };\n\n if (isMobile) {\n return renderDrawerSider();\n }\n\n return (\n <Layout.Sider\n style={{\n backgroundColor: token.colorBgContainer,\n borderRight: `1px solid ${token.colorBgElevated}`,\n }}\n collapsible\n collapsed={collapsed}\n onCollapse={(collapsed) => setCollapsed(collapsed)}\n collapsedWidth={80}\n breakpoint=\"lg\"\n trigger={\n <Button\n type=\"text\"\n style={{\n borderRadius: 0,\n height: \"100%\",\n width: \"100%\",\n backgroundColor: token.colorBgElevated,\n }}\n >\n {collapsed ? (\n <RightOutlined\n style={{\n color: token.colorPrimary,\n }}\n />\n ) : (\n <LeftOutlined\n style={{\n color: token.colorPrimary,\n }}\n />\n )}\n </Button>\n }\n >\n <div\n style={{\n width: collapsed ? \"80px\" : \"200px\",\n padding: collapsed ? \"0\" : \"0 16px\",\n display: \"flex\",\n justifyContent: collapsed ? \"center\" : \"flex-start\",\n alignItems: \"center\",\n height: \"64px\",\n backgroundColor: token.colorBgElevated,\n fontSize: \"14px\",\n }}\n >\n <RenderToTitle collapsed={collapsed} />\n </div>\n {renderMenu()}\n </Layout.Sider>\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, theme } from \"antd\";\nimport { useActiveAuthProvider, useGetIdentity } from \"@refinedev/core\";\nimport { RefineThemedLayoutHeaderProps } from \"../types\";\n\n/**\n * @deprecated It is recommended to use the improved `ThemedLayoutV2`. Review migration guidelines. https://refine.dev/docs/api-reference/antd/components/antd-themed-layout/#migrate-themedlayout-to-themedlayoutv2\n */\nexport const ThemedHeader: React.FC<RefineThemedLayoutHeaderProps> = () => {\n const { token } = theme.useToken();\n\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 if (!shouldRenderHeader) {\n return null;\n }\n\n return (\n <AntdLayout.Header\n style={{\n backgroundColor: token.colorBgElevated,\n display: \"flex\",\n justifyContent: \"flex-end\",\n alignItems: \"center\",\n padding: \"0px 24px\",\n height: \"64px\",\n }}\n >\n <Space>\n <Space size=\"middle\">\n {user?.name && <Typography.Text strong>{user.name}</Typography.Text>}\n {user?.avatar && <Avatar src={user?.avatar} alt={user?.name} />}\n </Space>\n </Space>\n </AntdLayout.Header>\n );\n};\n","import React from \"react\";\nimport { useRouterContext, useRouterType, useLink } from \"@refinedev/core\";\nimport { Typography, theme, Space } from \"antd\";\nimport { RefineLayoutThemedTitleProps } from \"../types\";\n\nconst defaultText = \"Refine Project\";\n\nconst defaultIcon = (\n <svg\n width={24}\n height={24}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n data-testid=\"refine-logo\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M13.7889 0.422291C12.6627 -0.140764 11.3373 -0.140764 10.2111 0.422291L2.21115 4.42229C0.85601 5.09986 0 6.48491 0 8V16C0 17.5151 0.85601 18.9001 2.21115 19.5777L10.2111 23.5777C11.3373 24.1408 12.6627 24.1408 13.7889 23.5777L21.7889 19.5777C23.144 18.9001 24 17.5151 24 16V8C24 6.48491 23.144 5.09986 21.7889 4.42229L13.7889 0.422291ZM8 8C8 5.79086 9.79086 4 12 4C14.2091 4 16 5.79086 16 8V16C16 18.2091 14.2091 20 12 20C9.79086 20 8 18.2091 8 16V8Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M14 8C14 9.10457 13.1046 10 12 10C10.8954 10 10 9.10457 10 8C10 6.89543 10.8954 6 12 6C13.1046 6 14 6.89543 14 8Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n\n/**\n * @deprecated It is recommended to use the improved `ThemedLayoutV2`. Review migration guidelines. https://refine.dev/docs/api-reference/antd/components/antd-themed-layout/#migrate-themedlayout-to-themedlayoutv2\n */\nexport const ThemedTitle: React.FC<RefineLayoutThemedTitleProps> = ({\n collapsed,\n icon = defaultIcon,\n text = defaultText,\n wrapperStyles,\n}) => {\n const { token } = theme.useToken();\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\n to=\"/\"\n style={{\n display: \"inline-block\",\n textDecoration: \"none\",\n }}\n >\n <Space\n style={{\n display: \"flex\",\n alignItems: \"center\",\n fontSize: \"inherit\",\n ...wrapperStyles,\n }}\n >\n <div\n style={{\n height: \"24px\",\n width: \"24px\",\n color: token.colorPrimary,\n }}\n >\n {icon}\n </div>\n\n {!collapsed && (\n <Typography.Title\n style={{\n fontSize: \"inherit\",\n marginBottom: 0,\n fontWeight: 700,\n }}\n >\n {text}\n </Typography.Title>\n )}\n </Space>\n </ActiveLink>\n );\n};\n","import React, { useMemo } from \"react\";\nimport { Grid, Layout as AntdLayout } from \"antd\";\n\nimport { ThemedSiderV2 as DefaultSider } from \"./sider\";\nimport { ThemedHeaderV2 as DefaultHeader } from \"./header\";\nimport { RefineThemedLayoutV2Props } from \"./types\";\nimport { ThemedLayoutContextProvider } from \"@contexts\";\n\nexport const ThemedLayoutV2: React.FC<RefineThemedLayoutV2Props> = ({\n children,\n Header,\n Sider,\n Title,\n Footer,\n OffLayoutArea,\n initialSiderCollapsed,\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 const hasSider = !!SiderToRender({ Title });\n\n return (\n <ThemedLayoutContextProvider initialSiderCollapsed={initialSiderCollapsed}>\n <AntdLayout style={{ minHeight: \"100vh\" }} hasSider={hasSider}>\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 </ThemedLayoutContextProvider>\n );\n};\n","import React from \"react\";\nimport { Layout, Menu, Grid, Drawer, Button, theme } from \"antd\";\nimport {\n DashboardOutlined,\n LogoutOutlined,\n UnorderedListOutlined,\n BarsOutlined,\n LeftOutlined,\n RightOutlined,\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 useWarnAboutChange,\n} from \"@refinedev/core\";\n\nimport { drawerButtonStyles } from \"./styles\";\nimport { RefineThemedLayoutV2SiderProps } from \"../types\";\nimport { ThemedTitleV2 } from \"@components\";\nimport { useThemedLayoutContext } from \"@hooks\";\n\nexport const ThemedSiderV2: React.FC<RefineThemedLayoutV2SiderProps> = ({\n Title: TitleFromProps,\n render,\n meta,\n fixed,\n activeItemDisabled = false,\n}) => {\n const { token } = theme.useToken();\n const {\n siderCollapsed,\n setSiderCollapsed,\n mobileSiderOpen,\n setMobileSiderOpen,\n } = useThemedLayoutContext();\n\n const isExistAuthentication = useIsExistAuthentication();\n const routerType = useRouterType();\n const NewLink = useLink();\n const { warnWhen, setWarnWhen } = useWarnAboutChange();\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 ?? ThemedTitleV2;\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 <Menu.SubMenu\n key={item.key}\n icon={icon ?? <UnorderedListOutlined />}\n title={label}\n >\n {renderTreeView(children, selectedKey)}\n </Menu.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\n const linkStyle: React.CSSProperties =\n activeItemDisabled && isSelected ? { pointerEvents: \"none\" } : {};\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 icon={icon ?? (isRoute && <UnorderedListOutlined />)}\n style={linkStyle}\n >\n <Link to={route ?? \"\"} style={linkStyle}>\n {label}\n </Link>\n {!siderCollapsed && isSelected && (\n <div className=\"ant-menu-tree-arrow\" />\n )}\n </Menu.Item>\n </CanAccess>\n );\n });\n };\n\n const handleLogout = () => {\n if (warnWhen) {\n const confirm = window.confirm(\n translate(\n \"warnWhenUnsavedChanges\",\n \"Are you sure you want to leave? You have unsaved changes.\",\n ),\n );\n\n if (confirm) {\n setWarnWhen(false);\n mutateLogout();\n }\n } else {\n mutateLogout();\n }\n };\n\n const logout = isExistAuthentication && (\n <Menu.Item\n key=\"logout\"\n onClick={() => handleLogout()}\n icon={<LogoutOutlined />}\n >\n {translate(\"buttons.logout\", \"Logout\")}\n </Menu.Item>\n );\n\n const dashboard = hasDashboard ? (\n <Menu.Item key=\"dashboard\" icon={<DashboardOutlined />}>\n <Link to=\"/\">{translate(\"dashboard.title\", \"Dashboard\")}</Link>\n {!siderCollapsed && 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: siderCollapsed,\n });\n }\n return (\n <>\n {dashboard}\n {items}\n {logout}\n </>\n );\n };\n\n const renderMenu = () => {\n return (\n <Menu\n selectedKeys={selectedKey ? [selectedKey] : []}\n defaultOpenKeys={defaultOpenKeys}\n mode=\"inline\"\n style={{\n paddingTop: \"8px\",\n border: \"none\",\n overflow: \"auto\",\n height: \"calc(100% - 72px)\",\n }}\n onClick={() => {\n setMobileSiderOpen(false);\n }}\n >\n {renderSider()}\n </Menu>\n );\n };\n\n const renderDrawerSider = () => {\n return (\n <>\n <Drawer\n open={mobileSiderOpen}\n onClose={() => setMobileSiderOpen(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={{\n height: \"100vh\",\n backgroundColor: token.colorBgContainer,\n borderRight: `1px solid ${token.colorBgElevated}`,\n }}\n >\n <div\n style={{\n width: \"200px\",\n padding: \"0 16px\",\n display: \"flex\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n height: \"64px\",\n backgroundColor: token.colorBgElevated,\n }}\n >\n <RenderToTitle collapsed={false} />\n </div>\n {renderMenu()}\n </Layout.Sider>\n </Layout>\n </Drawer>\n <Button\n style={drawerButtonStyles}\n size=\"large\"\n onClick={() => setMobileSiderOpen(true)}\n icon={<BarsOutlined />}\n />\n </>\n );\n };\n\n if (isMobile) {\n return renderDrawerSider();\n }\n\n const siderStyles: React.CSSProperties = {\n backgroundColor: token.colorBgContainer,\n borderRight: `1px solid ${token.colorBgElevated}`,\n };\n\n if (fixed) {\n siderStyles.position = \"fixed\";\n siderStyles.top = 0;\n siderStyles.height = \"100vh\";\n siderStyles.zIndex = 999;\n }\n\n return (\n <>\n {fixed && (\n <div\n style={{\n width: siderCollapsed ? \"80px\" : \"200px\",\n transition: \"all 0.2s\",\n }}\n />\n )}\n <Layout.Sider\n style={siderStyles}\n collapsible\n collapsed={siderCollapsed}\n onCollapse={(collapsed, type) => {\n if (type === \"clickTrigger\") {\n setSiderCollapsed(collapsed);\n }\n }}\n collapsedWidth={80}\n breakpoint=\"lg\"\n trigger={\n <Button\n type=\"text\"\n style={{\n borderRadius: 0,\n height: \"100%\",\n width: \"100%\",\n backgroundColor: token.colorBgElevated,\n }}\n >\n {siderCollapsed ? (\n <RightOutlined\n style={{\n color: token.colorPrimary,\n }}\n />\n ) : (\n <LeftOutlined\n style={{\n color: token.colorPrimary,\n }}\n />\n )}\n </Button>\n }\n >\n <div\n style={{\n width: siderCollapsed ? \"80px\" : \"200px\",\n padding: siderCollapsed ? \"0\" : \"0 16px\",\n display: \"flex\",\n justifyContent: siderCollapsed ? \"center\" : \"flex-start\",\n alignItems: \"center\",\n height: \"64px\",\n backgroundColor: token.colorBgElevated,\n fontSize: \"14px\",\n }}\n >\n <RenderToTitle collapsed={siderCollapsed} />\n </div>\n {renderMenu()}\n </Layout.Sider>\n </>\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, theme } from \"antd\";\nimport {\n pickNotDeprecated,\n useActiveAuthProvider,\n useGetIdentity,\n} from \"@refinedev/core\";\nimport { RefineThemedLayoutV2HeaderProps } from \"../types\";\n\nexport const ThemedHeaderV2: React.FC<RefineThemedLayoutV2HeaderProps> = ({\n isSticky,\n sticky,\n}) => {\n const { token } = theme.useToken();\n\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 if (!shouldRenderHeader) {\n return null;\n }\n\n const headerStyles: React.CSSProperties = {\n backgroundColor: token.colorBgElevated,\n display: \"flex\",\n justifyContent: \"flex-end\",\n alignItems: \"center\",\n padding: \"0px 24px\",\n height: \"64px\",\n };\n\n if (pickNotDeprecated(sticky, isSticky)) {\n headerStyles.position = \"sticky\";\n headerStyles.top = 0;\n headerStyles.zIndex = 1;\n }\n\n return (\n <AntdLayout.Header style={headerStyles}>\n <Space>\n <Space size=\"middle\">\n {user?.name && <Typography.Text strong>{user.name}</Typography.Text>}\n {user?.avatar && <Avatar src={user?.avatar} alt={user?.name} />}\n </Space>\n </Space>\n </AntdLayout.Header>\n );\n};\n","import React from \"react\";\nimport { useRouterContext, useRouterType, useLink } from \"@refinedev/core\";\nimport { Typography, theme, Space } from \"antd\";\nimport { RefineLayoutThemedTitleProps } from \"../types\";\n\nconst defaultText = \"Refine Project\";\n\nconst defaultIcon = (\n <svg\n width={24}\n height={24}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n data-testid=\"refine-logo\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M13.7889 0.422291C12.6627 -0.140764 11.3373 -0.140764 10.2111 0.422291L2.21115 4.42229C0.85601 5.09986 0 6.48491 0 8V16C0 17.5151 0.85601 18.9001 2.21115 19.5777L10.2111 23.5777C11.3373 24.1408 12.6627 24.1408 13.7889 23.5777L21.7889 19.5777C23.144 18.9001 24 17.5151 24 16V8C24 6.48491 23.144 5.09986 21.7889 4.42229L13.7889 0.422291ZM8 8C8 5.79086 9.79086 4 12 4C14.2091 4 16 5.79086 16 8V16C16 18.2091 14.2091 20 12 20C9.79086 20 8 18.2091 8 16V8Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M14 8C14 9.10457 13.1046 10 12 10C10.8954 10 10 9.10457 10 8C10 6.89543 10.8954 6 12 6C13.1046 6 14 6.89543 14 8Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n\nexport const ThemedTitleV2: React.FC<RefineLayoutThemedTitleProps> = ({\n collapsed,\n icon = defaultIcon,\n text = defaultText,\n wrapperStyles,\n}) => {\n const { token } = theme.useToken();\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\n to=\"/\"\n style={{\n display: \"inline-block\",\n textDecoration: \"none\",\n }}\n >\n <Space\n style={{\n display: \"flex\",\n alignItems: \"center\",\n fontSize: \"inherit\",\n ...wrapperStyles,\n }}\n >\n <div\n style={{\n height: \"24px\",\n width: \"24px\",\n color: token.colorPrimary,\n }}\n >\n {icon}\n </div>\n\n {!collapsed && (\n <Typography.Title\n style={{\n fontSize: \"inherit\",\n marginBottom: 0,\n fontWeight: 700,\n }}\n >\n {text}\n </Typography.Title>\n )}\n </Space>\n </ActiveLink>\n );\n};\n","import React, { useContext } 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 AccessControlContext,\n} from \"@refinedev/core\";\nimport {\n RefineButtonClassNames,\n RefineButtonTestIds,\n} 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/api-reference/core/hooks/navigation/useNavigation#create `create`} method from {@link https://refine.dev/docs/api-reference/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/api-reference/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 accessControlContext = useContext(AccessControlContext);\n\n const accessControlEnabled =\n accessControl?.enabled ??\n accessControlContext.options.buttons.enableAccessControl;\n\n const hideIfUnauthorized =\n accessControl?.hideIfUnauthorized ??\n accessControlContext.options.buttons.hideIfUnauthorized;\n\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 if (data?.reason) return data.reason;\n\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 className={RefineButtonClassNames.CreateButton}\n type=\"primary\"\n {...rest}\n >\n {!hideText && (children ?? translate(\"buttons.create\", \"Create\"))}\n </Button>\n </ActiveLink>\n );\n};\n","import React, { useContext } 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 AccessControlContext,\n} from \"@refinedev/core\";\nimport {\n RefineButtonClassNames,\n RefineButtonTestIds,\n} 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/api-reference/core/hooks/navigation/useNavigation#edit `edit`} method from {@link https://refine.dev/docs/api-reference/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/api-reference/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 accessControlContext = useContext(AccessControlContext);\n\n const accessControlEnabled =\n accessControl?.enabled ??\n accessControlContext.options.buttons.enableAccessControl;\n\n const hideIfUnauthorized =\n accessControl?.hideIfUnauthorized ??\n accessControlContext.options.buttons.hideIfUnauthorized;\n\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 if (data?.reason) return data.reason;\n\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 className={RefineButtonClassNames.EditButton}\n {...rest}\n >\n {!hideText && (children ?? translate(\"buttons.edit\", \"Edit\"))}\n </Button>\n </ActiveLink>\n );\n};\n","import React, { useContext } 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 useWarnAboutChange,\n AccessControlContext,\n} from \"@refinedev/core\";\nimport {\n RefineButtonClassNames,\n RefineButtonTestIds,\n} 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/api-reference/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 accessControlContext = useContext(AccessControlContext);\n\n const accessControlEnabled =\n accessControl?.enabled ??\n accessControlContext.options.buttons.enableAccessControl;\n\n const hideIfUnauthorized =\n accessControl?.hideIfUnauthorized ??\n accessControlContext.options.buttons.hideIfUnauthorized;\n\n const translate = useTranslate();\n\n const { id, resource, identifier } = 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 const disabledTitle = () => {\n if (data?.can) return \"\";\n if (data?.reason) return data.reason;\n\n return translate(\n \"buttons.notAccessTitle\",\n \"You don't have permission to access\",\n );\n };\n\n const { setWarnWhen } = useWarnAboutChange();\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={confirmCancelText ?? translate(\"buttons.cancel\", \"Cancel\")}\n okType=\"danger\"\n title={confirmTitle ?? translate(\"buttons.confirm\", \"Are you sure?\")}\n okButtonProps={{ disabled: isLoading }}\n onConfirm={(): void => {\n if ((recordItemId ?? id) && identifier) {\n setWarnWhen(false);\n mutate(\n {\n id: recordItemId ?? id ?? \"\",\n resource: identifier,\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?.(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 title={disabledTitle()}\n disabled={data?.can === false}\n data-testid={RefineButtonTestIds.DeleteButton}\n className={RefineButtonClassNames.DeleteButton}\n {...rest}\n >\n {!hideText && (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 useTranslate,\n useResource,\n useInvalidate,\n queryKeys,\n pickDataProvider,\n} from \"@refinedev/core\";\nimport {\n RefineButtonClassNames,\n RefineButtonTestIds,\n} from \"@refinedev/ui-types\";\n\nimport { RefreshButtonProps } from \"../types\";\n\nimport { useQueryClient } from \"@tanstack/react-query\";\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/api-reference/core/hooks/invalidate/useInvalidate `useInvalidate`} hook.\n *\n * @see {@link https://refine.dev/docs/api-reference/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 dataProviderName,\n children,\n onClick,\n meta: _meta,\n metaData: _metaData,\n ...rest\n}) => {\n const translate = useTranslate();\n\n const queryClient = useQueryClient();\n const invalidates = useInvalidate();\n\n const { resources, identifier, id } = useResource(\n resourceNameFromProps ?? propResourceNameOrRouteName,\n );\n\n const isInvalidating = !!queryClient.isFetching({\n queryKey: queryKeys(\n identifier,\n pickDataProvider(identifier, dataProviderName, resources),\n ).detail(recordItemId ?? id),\n });\n\n const handleInvalidate = () => {\n invalidates({\n id: recordItemId ?? id,\n invalidates: [\"detail\"],\n dataProviderName,\n resource: identifier,\n });\n };\n\n return (\n <Button\n onClick={(e) => {\n onClick ? onClick(e) : handleInvalidate();\n }}\n icon={<RedoOutlined spin={isInvalidating} />}\n data-testid={RefineButtonTestIds.RefreshButton}\n className={RefineButtonClassNames.RefreshButton}\n {...rest}\n >\n {!hideText && (children ?? translate(\"buttons.refresh\", \"Refresh\"))}\n </Button>\n );\n};\n","import React, { useContext } 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 AccessControlContext,\n} from \"@refinedev/core\";\nimport {\n RefineButtonClassNames,\n RefineButtonTestIds,\n} 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/api-reference/core/hooks/navigation/useNavigation#show `show`} method from {@link https://refine.dev/docs/api-reference/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/api-reference/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 accessControlContext = useContext(AccessControlContext);\n\n const accessControlEnabled =\n accessControl?.enabled ??\n accessControlContext.options.buttons.enableAccessControl;\n\n const hideIfUnauthorized =\n accessControl?.hideIfUnauthorized ??\n accessControlContext.options.buttons.hideIfUnauthorized;\n\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 if (data?.reason) return data.reason;\n\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 className={RefineButtonClassNames.ShowButton}\n {...rest}\n >\n {!hideText && (children ?? translate(\"buttons.show\", \"Show\"))}\n </Button>\n </ActiveLink>\n );\n};\n","import React, { useContext } from \"react\";\nimport { Button } from \"antd\";\nimport { BarsOutlined } from \"@ant-design/icons\";\nimport {\n useCan,\n useNavigation,\n useTranslate,\n useUserFriendlyName,\n useResource,\n useRouterContext,\n useRouterType,\n useLink,\n pickNotDeprecated,\n AccessControlContext,\n} from \"@refinedev/core\";\nimport {\n RefineButtonClassNames,\n RefineButtonTestIds,\n} 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/api-reference/core/hooks/navigation/useNavigation#list `list`} method from {@link https://refine.dev/docs/api-reference/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/api-reference/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 accessControlContext = useContext(AccessControlContext);\n\n const accessControlEnabled =\n accessControl?.enabled ??\n accessControlContext.options.buttons.enableAccessControl;\n\n const hideIfUnauthorized =\n accessControl?.hideIfUnauthorized ??\n accessControlContext.options.buttons.hideIfUnauthorized;\n\n const { listUrl: generateListUrl } = useNavigation();\n const routerType = useRouterType();\n const Link = useLink();\n const { Link: LegacyLink } = useRouterContext();\n const getUserFriendlyName = useUserFriendlyName();\n\n const ActiveLink = routerType === \"legacy\" ? LegacyLink : Link;\n\n const translate = useTranslate();\n\n const { resource, identifier } = 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 if (data?.reason) return data.reason;\n\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 className={RefineButtonClassNames.ListButton}\n {...rest}\n >\n {!hideText &&\n (children ??\n translate(\n `${\n identifier ??\n resourceNameFromProps ??\n propResourceNameOrRouteName\n }.titles.list`,\n getUserFriendlyName(\n resource?.meta?.label ??\n resource?.label ??\n identifier ??\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 {\n RefineButtonClassNames,\n RefineButtonTestIds,\n} 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/api-reference/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 className={RefineButtonClassNames.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 {\n RefineButtonClassNames,\n RefineButtonTestIds,\n} 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/api-reference/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 className={RefineButtonClassNames.SaveButton}\n {...rest}\n >\n {!hideText && (children ?? translate(\"buttons.save\", \"Save\"))}\n </Button>\n );\n};\n","import React, { useContext } 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 AccessControlContext,\n} from \"@refinedev/core\";\nimport {\n RefineButtonTestIds,\n RefineButtonClassNames,\n} 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/api-reference/core/hooks/navigation/useNavigation#clone `clone`} method from {@link https://refine.dev/docs/api-reference/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/api-reference/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 accessControlContext = useContext(AccessControlContext);\n\n const accessControlEnabled =\n accessControl?.enabled ??\n accessControlContext.options.buttons.enableAccessControl;\n\n const hideIfUnauthorized =\n accessControl?.hideIfUnauthorized ??\n accessControlContext.options.buttons.hideIfUnauthorized;\n\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 if (data?.reason) return data.reason;\n\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 className={RefineButtonClassNames.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 {\n RefineButtonClassNames,\n RefineButtonTestIds,\n} from \"@refinedev/ui-types\";\n\nimport { ImportButtonProps } from \"../types\";\n\n/**\n * `<ImportButton>` is compatible with the {@link https://refine.dev/docs/api-reference/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/api-reference/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 className={RefineButtonClassNames.ImportButton}\n {...buttonProps}\n >\n {!hideText && (children ?? translate(\"buttons.import\", \"Import\"))}\n </Button>\n </Upload>\n );\n};\n","import React from \"react\";\nimport { Space } from \"antd\";\nimport {\n useTranslate,\n useUserFriendlyName,\n useRefineContext,\n useRouterType,\n useResource,\n} from \"@refinedev/core\";\n\nimport {\n Breadcrumb,\n CreateButton,\n CreateButtonProps,\n PageHeader,\n} 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: createButtonPropsFromProps,\n resource: resourceFromProps,\n wrapperProps,\n contentProps,\n headerProps,\n breadcrumb: breadcrumbFromProps,\n headerButtonProps,\n headerButtons,\n}) => {\n const translate = useTranslate();\n const {\n options: { breadcrumb: globalBreadcrumb } = {},\n } = useRefineContext();\n\n const routerType = useRouterType();\n const getUserFriendlyName = useUserFriendlyName();\n\n const { resource, identifier } = useResource(resourceFromProps);\n\n const isCreateButtonVisible =\n canCreate ??\n ((resource?.canCreate ?? !!resource?.create) || createButtonPropsFromProps);\n\n const breadcrumb =\n typeof breadcrumbFromProps === \"undefined\"\n ? globalBreadcrumb\n : breadcrumbFromProps;\n\n const createButtonProps: CreateButtonProps | undefined = isCreateButtonVisible\n ? {\n size: \"middle\",\n resource: routerType === \"legacy\" ? resource?.route : identifier,\n ...createButtonPropsFromProps,\n }\n : undefined;\n\n const defaultExtra = isCreateButtonVisible ? (\n <CreateButton {...createButtonProps} />\n ) : null;\n\n return (\n <div {...(wrapperProps ?? {})}>\n <PageHeader\n ghost={false}\n title={\n title ??\n translate(\n `${identifier}.titles.list`,\n getUserFriendlyName(\n resource?.meta?.label ??\n resource?.options?.label ??\n resource?.label ??\n identifier,\n \"plural\",\n ),\n )\n }\n extra={\n headerButtons ? (\n <Space wrap {...headerButtonProps}>\n {typeof headerButtons === \"function\"\n ? headerButtons({\n defaultButtons: defaultExtra,\n createButtonProps,\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 useUserFriendlyName,\n useRefineContext,\n useRouterType,\n useResource,\n useBack,\n} from \"@refinedev/core\";\n\nimport {\n Breadcrumb,\n SaveButton,\n PageHeader,\n SaveButtonProps,\n} 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: saveButtonPropsFromProps,\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 {\n options: { breadcrumb: globalBreadcrumb } = {},\n } = useRefineContext();\n\n const routerType = useRouterType();\n const back = useBack();\n const { goBack } = useNavigation();\n const getUserFriendlyName = useUserFriendlyName();\n\n const { resource, action, identifier } = useResource(resourceFromProps);\n\n const breadcrumb =\n typeof breadcrumbFromProps === \"undefined\"\n ? globalBreadcrumb\n : breadcrumbFromProps;\n\n const saveButtonProps: SaveButtonProps = {\n ...(isLoading ? { disabled: true } : {}),\n ...saveButtonPropsFromProps,\n htmlType: \"submit\",\n };\n\n const defaultFooterButtons = (\n <>\n <SaveButton {...saveButtonProps} />\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 `${identifier}.titles.create`,\n `Create ${getUserFriendlyName(\n resource?.meta?.label ??\n resource?.options?.label ??\n resource?.label ??\n identifier,\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: defaultFooterButtons,\n saveButtonProps: saveButtonProps,\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 useUserFriendlyName,\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 ListButtonProps,\n RefreshButtonProps,\n DeleteButtonProps,\n SaveButtonProps,\n AutoSaveIndicator,\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: saveButtonPropsFromProps,\n mutationMode: mutationModeProp,\n recordItemId,\n children,\n deleteButtonProps: deleteButtonPropsFromProps,\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 autoSaveProps,\n}) => {\n const translate = useTranslate();\n const {\n 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 const getUserFriendlyName = useUserFriendlyName();\n\n const {\n resource,\n action,\n id: idFromParams,\n identifier,\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 hasList = resource?.list && !recordItemId;\n const isDeleteButtonVisible =\n canDelete ??\n ((resource?.meta?.canDelete ?? resource?.canDelete) ||\n deleteButtonPropsFromProps);\n\n const listButtonProps: ListButtonProps | undefined = hasList\n ? {\n ...(isLoading ? { disabled: true } : {}),\n resource: routerType === \"legacy\" ? resource?.route : identifier,\n }\n : undefined;\n\n const refreshButtonProps: RefreshButtonProps = {\n ...(isLoading ? { disabled: true } : {}),\n resource: routerType === \"legacy\" ? resource?.route : identifier,\n recordItemId: id,\n dataProviderName,\n };\n\n const deleteButtonProps: DeleteButtonProps | undefined = isDeleteButtonVisible\n ? {\n ...(isLoading ? { disabled: true } : {}),\n resource: routerType === \"legacy\" ? resource?.route : identifier,\n mutationMode,\n onSuccess: () => {\n if (routerType === \"legacy\") {\n legacyGoList(resource?.route ?? resource?.name ?? \"\");\n } else {\n go({ to: goListPath });\n }\n },\n recordItemId: id,\n dataProviderName,\n ...deleteButtonPropsFromProps,\n }\n : undefined;\n\n const saveButtonProps: SaveButtonProps = {\n ...(isLoading ? { disabled: true } : {}),\n ...saveButtonPropsFromProps,\n };\n\n const defaultHeaderButtons = (\n <>\n {autoSaveProps && <AutoSaveIndicator {...autoSaveProps} />}\n {hasList && <ListButton {...listButtonProps} />}\n <RefreshButton {...refreshButtonProps} />\n </>\n );\n\n const defaultFooterButtons = (\n <>\n {isDeleteButtonVisible && <DeleteButton {...deleteButtonProps} />}\n <SaveButton {...saveButtonProps} />\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 `${identifier}.titles.edit`,\n `Edit ${getUserFriendlyName(\n resource?.meta?.label ??\n resource?.options?.label ??\n resource?.label ??\n identifier,\n \"singular\",\n )}`,\n )\n }\n extra={\n <Space wrap {...(headerButtonProps ?? {})}>\n {headerButtons\n ? typeof headerButtons === \"function\"\n ? headerButtons({\n defaultButtons: defaultHeaderButtons,\n listButtonProps,\n refreshButtonProps,\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: defaultFooterButtons,\n deleteButtonProps,\n saveButtonProps,\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 useUserFriendlyName,\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 ListButtonProps,\n EditButtonProps,\n DeleteButtonProps,\n RefreshButtonProps,\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 {\n 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 const getUserFriendlyName = useUserFriendlyName();\n\n const {\n resource,\n action,\n id: idFromParams,\n identifier,\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 hasList = resource?.list && !recordItemId;\n const isDeleteButtonVisible =\n canDelete ?? resource?.meta?.canDelete ?? resource?.canDelete;\n const isEditButtonVisible = canEdit ?? resource?.canEdit ?? !!resource?.edit;\n\n const listButtonProps: ListButtonProps | undefined = hasList\n ? {\n resource: routerType === \"legacy\" ? resource?.route : identifier,\n }\n : undefined;\n const editButtonProps: EditButtonProps | undefined = isEditButtonVisible\n ? {\n ...(isLoading ? { disabled: true } : {}),\n type: \"primary\",\n resource: routerType === \"legacy\" ? resource?.route : identifier,\n recordItemId: id,\n }\n : undefined;\n const deleteButtonProps: DeleteButtonProps | undefined = isDeleteButtonVisible\n ? {\n ...(isLoading ? { disabled: true } : {}),\n resource: routerType === \"legacy\" ? resource?.route : identifier,\n recordItemId: id,\n onSuccess: () => {\n if (routerType === \"legacy\") {\n legacyGoList(resource?.route ?? resource?.name ?? \"\");\n } else {\n go({ to: goListPath });\n }\n },\n dataProviderName,\n }\n : undefined;\n const refreshButtonProps: RefreshButtonProps = {\n ...(isLoading ? { disabled: true } : {}),\n resource: routerType === \"legacy\" ? resource?.route : identifier,\n recordItemId: id,\n dataProviderName,\n };\n\n const defaultHeaderButtons = (\n <>\n {hasList && <ListButton {...listButtonProps} />}\n {isEditButtonVisible && <EditButton {...editButtonProps} />}\n {isDeleteButtonVisible && <DeleteButton {...deleteButtonProps} />}\n <RefreshButton {...refreshButtonProps} />\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 `${identifier}.titles.show`,\n `Show ${getUserFriendlyName(\n resource?.meta?.label ??\n resource?.options?.label ??\n resource?.label ??\n identifier,\n \"singular\",\n )}`,\n )\n }\n extra={\n <Space key=\"extra-buttons\" wrap {...(headerButtonProps ?? {})}>\n {headerButtons\n ? typeof headerButtons === \"function\"\n ? headerButtons({\n defaultButtons: defaultHeaderButtons,\n deleteButtonProps,\n editButtonProps,\n listButtonProps,\n refreshButtonProps,\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 key=\"footer-buttons\" wrap {...footerButtonProps}>\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\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/api-reference/antd/components/fields/text} for more details.\n */\nexport const TextField: React.FC<TextFieldProps> = ({ value, ...rest }) => {\n return <Typography.Text {...rest}>{value}</Typography.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/api-reference/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\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/api-reference/antd/components/fields/email} for more details.\n */\nexport const EmailField: React.FC<EmailFieldProps> = ({ value, ...rest }) => {\n return (\n <Typography.Link href={`mailto:${value}`} {...rest}>\n {value}\n </Typography.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/api-reference/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/api-reference/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\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/api-reference/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 dayjs.extend(LocalizedFormat);\n\n const defaultLocale = dayjs.locale();\n\n return (\n <Typography.Text {...rest}>\n {dayjs(value)\n .locale(locales || defaultLocale)\n .format(dateFormat)}\n </Typography.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/api-reference/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\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/api-reference/antd/components/fields/url} for more details.\n */\nexport const UrlField: React.FC<UrlFieldProps> = ({\n children,\n value,\n ...rest\n}) => {\n return (\n <Typography.Link href={value} {...rest}>\n {children ?? value}\n </Typography.Link>\n );\n};\n","import React from \"react\";\nimport { Typography } from \"antd\";\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/api-reference/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 = Number(value);\n\n return (\n <Typography.Text {...rest}>\n {toLocaleStringSupportsOptions()\n ? number.toLocaleString(locale, options)\n : number}\n </Typography.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/api-reference/antd/components/fields/markdown} for more details.\n */\nexport const MarkdownField: React.FC<RefineFieldMarkdownProps> = ({\n value = \"\",\n}) => {\n // There's an issue related with the type inconsistency of the `remark-gfm` and `remark-rehype` packages, we need to cast the `gfm` as any. (https://github.com/orgs/rehypejs/discussions/63)\n return (\n <ReactMarkdown\n remarkPlugins={[gfm] as unknown as ReactMarkdown.PluggableList}\n >\n {value}\n </ReactMarkdown>\n );\n};\n","import React, { type 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 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) ? { target: { value: e } } : 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 as React.ReactElement, {\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\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/packages/documentation/routers/} 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 <Typography.Text>\n {translate(\n \"pages.error.404\",\n \"Sorry, the page you visited does not exist.\",\n )}\n </Typography.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\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-reference/core/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 <Typography.Title level={3} style={titleStyles}>\n {translate(\"pages.login.title\", \"Sign in your account\")}\n </Typography.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(\"pages.login.username\", \"Username\")}\n rules={[{ required: true }]}\n >\n <Input\n size=\"large\"\n placeholder={translate(\"pages.login.username\", \"Username\")}\n />\n </Form.Item>\n <Form.Item\n name=\"password\"\n label={translate(\"pages.login.password\", \"Password\")}\n rules={[{ required: true }]}\n style={{ marginBottom: \"12px\" }}\n >\n <Input type=\"password\" placeholder=\"●●●●●●●●\" size=\"large\" />\n </Form.Item>\n <div style={{ marginBottom: \"12px\" }}>\n <Form.Item name=\"remember\" valuePropName=\"checked\" noStyle>\n <Checkbox\n style={{\n fontSize: \"12px\",\n }}\n >\n {translate(\"pages.login.remember\", \"Remember me\")}\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 <Typography.Text style={{ fontSize: 12 }}>\n {translate(\"pages.login.noAccount\", \"Don’t have an account?\")}{\" \"}\n <a href=\"#\" style={{ fontWeight: \"bold\" }}>\n {translate(\"pages.login.signup\", \"Sign up\")}\n </a>\n </Typography.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\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 * @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 <Typography.Title style={styles.title}>\n Welcome on board\n </Typography.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 href=\"https://refine.dev\" target=\"_blank\" rel=\"noreferrer\">\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 href=\"https://discord.gg/refine\" target=\"_blank\" rel=\"noreferrer\">\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 { WelcomePage as WelcomePageFromCore } from \"@refinedev/core\";\n\n/**\n * It is a page that welcomes you after the configuration is completed.\n * @deprecated `WelcomePage` is deprecated. Use `WelcomePage` from `@refinedev/core` instead.\n */\nexport const WelcomePage: React.FC = () => {\n return <WelcomePageFromCore />;\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 renderContent?: (\n content: React.ReactNode,\n title: React.ReactNode,\n ) => React.ReactNode;\n title?: React.ReactNode;\n};\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/api-reference/antd/components/antd-auth-page/} 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 theme,\n} from \"antd\";\nimport { useLogin, useTranslate, useRouterContext } from \"@refinedev/core\";\n\nimport {\n bodyStyles,\n containerStyles,\n headStyles,\n layoutStyles,\n titleStyles,\n} from \"../styles\";\nimport { ThemedTitleV2 } from \"@components\";\n\ntype LoginProps = LoginPageProps<LayoutProps, CardProps, FormProps>;\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 title,\n hideForm,\n}) => {\n const { token } = theme.useToken();\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 PageTitle =\n title === false ? null : (\n <div\n style={{\n display: \"flex\",\n justifyContent: \"center\",\n marginBottom: \"32px\",\n fontSize: \"20px\",\n }}\n >\n {title ?? <ThemedTitleV2 collapsed={false} />}\n </div>\n );\n\n const CardTitle = (\n <Typography.Title\n level={3}\n style={{\n color: token.colorPrimaryTextHover,\n ...titleStyles,\n }}\n >\n {translate(\"pages.login.title\", \"Sign in to your account\")}\n </Typography.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 {!hideForm && (\n <Divider>\n <Typography.Text\n style={{\n color: token.colorTextLabel,\n }}\n >\n {translate(\"pages.login.divider\", \"or\")}\n </Typography.Text>\n </Divider>\n )}\n </>\n );\n }\n return null;\n };\n\n const CardContent = (\n <Card\n title={CardTitle}\n headStyle={headStyles}\n bodyStyle={bodyStyles}\n style={{\n ...containerStyles,\n backgroundColor: token.colorBgElevated,\n }}\n {...(contentProps ?? {})}\n >\n {renderProviders()}\n {!hideForm && (\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(\"pages.login.fields.email\", \"Email\")}\n />\n </Form.Item>\n <Form.Item\n name=\"password\"\n label={translate(\"pages.login.fields.password\", \"Password\")}\n rules={[{ required: true }]}\n >\n <Input\n type=\"password\"\n autoComplete=\"current-password\"\n placeholder=\"●●●●●●●●\"\n size=\"large\"\n />\n </Form.Item>\n <div\n style={{\n display: \"flex\",\n justifyContent: \"space-between\",\n marginBottom: \"24px\",\n }}\n >\n {rememberMe ?? (\n <Form.Item name=\"remember\" valuePropName=\"checked\" noStyle>\n <Checkbox\n style={{\n fontSize: \"12px\",\n }}\n >\n {translate(\"pages.login.buttons.rememberMe\", \"Remember me\")}\n </Checkbox>\n </Form.Item>\n )}\n {forgotPasswordLink ?? (\n <ActiveLink\n style={{\n color: token.colorPrimaryTextHover,\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 {!hideForm && (\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 )}\n </Form>\n )}\n\n {registerLink ?? (\n <div\n style={{\n marginTop: hideForm ? 16 : 8,\n }}\n >\n <Typography.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={{\n fontWeight: \"bold\",\n color: token.colorPrimaryTextHover,\n }}\n >\n {translate(\"pages.login.signup\", \"Sign up\")}\n </ActiveLink>\n </Typography.Text>\n </div>\n )}\n </Card>\n );\n\n return (\n <Layout style={layoutStyles} {...(wrapperProps ?? {})}>\n <Row\n justify=\"center\"\n align={hideForm ? \"top\" : \"middle\"}\n style={{\n padding: \"16px 0\",\n minHeight: \"100dvh\",\n paddingTop: hideForm ? \"15dvh\" : \"16px\",\n }}\n >\n <Col xs={22}>\n {renderContent ? (\n renderContent(CardContent, PageTitle)\n ) : (\n <>\n {PageTitle}\n {CardContent}\n </>\n )}\n </Col>\n </Row>\n </Layout>\n );\n};\n","import { CSSProperties } from \"react\";\n\nexport const layoutStyles: CSSProperties = {};\n\nexport const containerStyles: CSSProperties = {\n maxWidth: \"400px\",\n margin: \"auto\",\n padding: \"32px\",\n boxShadow:\n \"0px 2px 4px rgba(0, 0, 0, 0.02), 0px 1px 6px -1px rgba(0, 0, 0, 0.02), 0px 1px 2px rgba(0, 0, 0, 0.03)\",\n};\n\nexport const headStyles: CSSProperties = {\n borderBottom: 0,\n padding: 0,\n};\n\nexport const bodyStyles: CSSProperties = { padding: 0, marginTop: \"32px\" };\n\nexport const titleStyles: CSSProperties = {\n textAlign: \"center\",\n marginBottom: 0,\n fontSize: \"24px\",\n lineHeight: \"32px\",\n fontWeight: 700,\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 theme,\n} from \"antd\";\nimport { useTranslate, useRouterContext, useRegister } from \"@refinedev/core\";\n\nimport {\n layoutStyles,\n containerStyles,\n titleStyles,\n headStyles,\n bodyStyles,\n} from \"../styles\";\nimport { ThemedTitleV2 } from \"@components\";\n\ntype RegisterProps = RegisterPageProps<LayoutProps, CardProps, FormProps>;\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 title,\n hideForm,\n}) => {\n const { token } = theme.useToken();\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 PageTitle =\n title === false ? null : (\n <div\n style={{\n display: \"flex\",\n justifyContent: \"center\",\n marginBottom: \"32px\",\n fontSize: \"20px\",\n }}\n >\n {title ?? <ThemedTitleV2 collapsed={false} />}\n </div>\n );\n\n const CardTitle = (\n <Typography.Title\n level={3}\n style={{\n color: token.colorPrimaryTextHover,\n ...titleStyles,\n }}\n >\n {translate(\"pages.register.title\", \"Sign up for your account\")}\n </Typography.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 register({\n providerName: provider.name,\n })\n }\n >\n {provider.label}\n </Button>\n );\n })}\n {!hideForm && (\n <Divider>\n <Typography.Text\n style={{\n color: token.colorTextLabel,\n }}\n >\n {translate(\"pages.login.divider\", \"or\")}\n </Typography.Text>\n </Divider>\n )}\n </>\n );\n }\n return null;\n };\n\n const CardContent = (\n <Card\n title={CardTitle}\n headStyle={headStyles}\n bodyStyle={bodyStyles}\n style={{\n ...containerStyles,\n backgroundColor: token.colorBgElevated,\n }}\n {...(contentProps ?? {})}\n >\n {renderProviders()}\n {!hideForm && (\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(\"pages.register.fields.email\", \"Email\")}\n />\n </Form.Item>\n <Form.Item\n name=\"password\"\n label={translate(\"pages.register.fields.password\", \"Password\")}\n rules={[{ required: true }]}\n >\n <Input type=\"password\" placeholder=\"●●●●●●●●\" size=\"large\" />\n </Form.Item>\n <div\n style={{\n display: \"flex\",\n justifyContent: \"space-between\",\n marginBottom: \"24px\",\n }}\n >\n {loginLink ?? (\n <Typography.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 color: token.colorPrimaryTextHover,\n }}\n to=\"/login\"\n >\n {translate(\"pages.login.signin\", \"Sign in\")}\n </ActiveLink>\n </Typography.Text>\n )}\n </div>\n <Form.Item\n style={{\n marginBottom: 0,\n }}\n >\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 )}\n {hideForm && loginLink !== false && (\n <div\n style={{\n marginTop: hideForm ? 16 : 8,\n }}\n >\n <Typography.Text\n style={{\n fontSize: 12,\n }}\n >\n {translate(\"pages.login.buttons.haveAccount\", \"Have an account?\")}{\" \"}\n <ActiveLink\n style={{\n fontWeight: \"bold\",\n color: token.colorPrimaryTextHover,\n }}\n to=\"/login\"\n >\n {translate(\"pages.login.signin\", \"Sign in\")}\n </ActiveLink>\n </Typography.Text>\n </div>\n )}\n </Card>\n );\n\n return (\n <Layout style={layoutStyles} {...(wrapperProps ?? {})}>\n <Row\n justify=\"center\"\n align={hideForm ? \"top\" : \"middle\"}\n style={{\n padding: \"16px 0\",\n minHeight: \"100dvh\",\n paddingTop: hideForm ? \"15dvh\" : \"16px\",\n }}\n >\n <Col xs={22}>\n {renderContent ? (\n renderContent(CardContent, PageTitle)\n ) : (\n <>\n {PageTitle}\n {CardContent}\n </>\n )}\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 theme,\n} from \"antd\";\nimport {\n useTranslate,\n useRouterContext,\n useForgotPassword,\n} from \"@refinedev/core\";\n\nimport {\n layoutStyles,\n containerStyles,\n titleStyles,\n headStyles,\n bodyStyles,\n} from \"../styles\";\nimport { ThemedTitleV2 } from \"@components\";\n\ntype ResetPassworProps = ForgotPasswordPageProps<\n LayoutProps,\n CardProps,\n FormProps\n>;\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 title,\n}) => {\n const { token } = theme.useToken();\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 PageTitle =\n title === false ? null : (\n <div\n style={{\n display: \"flex\",\n justifyContent: \"center\",\n marginBottom: \"32px\",\n fontSize: \"20px\",\n }}\n >\n {title ?? <ThemedTitleV2 collapsed={false} />}\n </div>\n );\n\n const CardTitle = (\n <Typography.Title\n level={3}\n style={{\n color: token.colorPrimaryTextHover,\n ...titleStyles,\n }}\n >\n {translate(\"pages.forgotPassword.title\", \"Forgot your password?\")}\n </Typography.Title>\n );\n const CardContent = (\n <Card\n title={CardTitle}\n headStyle={headStyles}\n bodyStyle={bodyStyles}\n style={{\n ...containerStyles,\n backgroundColor: token.colorBgElevated,\n }}\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(\"pages.forgotPassword.fields.email\", \"Email\")}\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 }}\n >\n {loginLink ?? (\n <Typography.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 color: token.colorPrimaryTextHover,\n }}\n to=\"/login\"\n >\n {translate(\"pages.login.signin\", \"Sign in\")}\n </ActiveLink>\n </Typography.Text>\n )}\n </div>\n <Form.Item\n style={{\n marginTop: \"24px\",\n marginBottom: 0,\n }}\n >\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 padding: \"16px 0\",\n minHeight: \"100dvh\",\n }}\n >\n <Col xs={22}>\n {renderContent ? (\n renderContent(CardContent, PageTitle)\n ) : (\n <>\n {PageTitle}\n {CardContent}\n </>\n )}\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 theme,\n} from \"antd\";\nimport { useTranslate, useUpdatePassword } from \"@refinedev/core\";\n\nimport {\n layoutStyles,\n containerStyles,\n titleStyles,\n headStyles,\n bodyStyles,\n} from \"../styles\";\nimport { ThemedTitleV2 } from \"@components\";\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 title,\n}) => {\n const { token } = theme.useToken();\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 PageTitle =\n title === false ? null : (\n <div\n style={{\n display: \"flex\",\n justifyContent: \"center\",\n marginBottom: \"32px\",\n fontSize: \"20px\",\n }}\n >\n {title ?? <ThemedTitleV2 collapsed={false} />}\n </div>\n );\n\n const CardTitle = (\n <Typography.Title\n level={3}\n style={{\n color: token.colorPrimaryTextHover,\n ...titleStyles,\n }}\n >\n {translate(\"pages.updatePassword.title\", \"Set New Password\")}\n </Typography.Title>\n );\n\n const CardContent = (\n <Card\n title={CardTitle}\n headStyle={headStyles}\n bodyStyle={bodyStyles}\n style={{\n ...containerStyles,\n backgroundColor: token.colorBgElevated,\n }}\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 type=\"password\" placeholder=\"●●●●●●●●\" size=\"large\" />\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 (!value || getFieldValue(\"password\") === value) {\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 >\n <Input type=\"password\" placeholder=\"●●●●●●●●\" size=\"large\" />\n </Form.Item>\n <Form.Item\n style={{\n marginBottom: 0,\n }}\n >\n <Button\n type=\"primary\"\n size=\"large\"\n htmlType=\"submit\"\n loading={isLoading}\n block\n >\n {translate(\"pages.updatePassword.buttons.submit\", \"Update\")}\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 padding: \"16px 0\",\n minHeight: \"100dvh\",\n }}\n >\n <Col xs={22}>\n {renderContent ? (\n renderContent(CardContent, PageTitle)\n ) : (\n <>\n {PageTitle}\n {CardContent}\n </>\n )}\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 const breadCrumbItems = breadcrumbs.map(({ label, icon, href }) => ({\n key: `breadcrumb-item-${label}`,\n title: (\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n gap: 4,\n }}\n >\n {!hideIcons && icon}\n {href ? (\n <ActiveLink to={href}>{label}</ActiveLink>\n ) : (\n <span>{label}</span>\n )}\n </div>\n ),\n }));\n\n const getBreadcrumbItems = () => {\n if (showHome && (hasDashboard || rootRouteResource.found)) {\n return [\n {\n key: \"breadcrumb-item-home\",\n title: (\n <ActiveLink to=\"/\">\n {rootRouteResource?.resource?.meta?.icon ?? <HomeOutlined />}\n </ActiveLink>\n ),\n },\n ...breadCrumbItems,\n ];\n }\n\n return breadCrumbItems;\n };\n\n return <AntdBreadcrumb items={getBreadcrumbItems()} {...breadcrumbProps} />;\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\";\nimport { RefinePageHeaderClassNames } from \"@refinedev/ui-types\";\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\n className={RefinePageHeaderClassNames.Title}\n level={4}\n style={{ marginBottom: 0 }}\n >\n {props.title}\n </Typography.Title>\n ) : (\n props.title\n );\n\n const subtitle =\n typeof props.title === \"string\" ? (\n <Typography.Title\n className={RefinePageHeaderClassNames.SubTitle}\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 React from \"react\";\nimport {\n AutoSaveIndicatorProps,\n useTranslate,\n AutoSaveIndicator as AutoSaveIndicatorCore,\n} from \"@refinedev/core\";\nimport { Typography, theme } from \"antd\";\nimport {\n EllipsisOutlined,\n SyncOutlined,\n CheckCircleOutlined,\n ExclamationCircleOutlined,\n} from \"@ant-design/icons\";\n\nexport const AutoSaveIndicator: React.FC<AutoSaveIndicatorProps> = ({\n status,\n elements: {\n success = (\n <Message\n key=\"autoSave.success\"\n defaultMessage=\"saved\"\n icon={<CheckCircleOutlined />}\n />\n ),\n error = (\n <Message\n key=\"autoSave.error\"\n defaultMessage=\"auto save failure\"\n icon={<ExclamationCircleOutlined />}\n />\n ),\n loading = (\n <Message\n key=\"autoSave.loading\"\n defaultMessage=\"saving...\"\n icon={<SyncOutlined />}\n />\n ),\n idle = (\n <Message\n key=\"autoSave.idle\"\n defaultMessage=\"waiting for changes\"\n icon={<EllipsisOutlined />}\n />\n ),\n } = {},\n}) => {\n return (\n <AutoSaveIndicatorCore\n status={status}\n elements={{\n success,\n error,\n loading,\n idle,\n }}\n />\n );\n};\n\nconst Message = ({\n key,\n defaultMessage,\n icon,\n}: {\n key: string;\n defaultMessage: string;\n icon: React.ReactNode;\n}) => {\n const translate = useTranslate();\n const { token } = theme.useToken();\n\n return (\n <Typography.Text\n style={{\n marginRight: 5,\n color: token.colorTextTertiary,\n fontSize: \".8rem\",\n }}\n >\n {translate(key, defaultMessage)}\n <span style={{ marginLeft: \".2rem\" }}>{icon}</span>\n </Typography.Text>\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","import { ThemeConfig } from \"antd\";\n\ntype ThemeNames =\n | \"Blue\"\n | \"Purple\"\n | \"Magenta\"\n | \"Red\"\n | \"Orange\"\n | \"Yellow\"\n | \"Green\";\n\ntype RefineThemes = Record<ThemeNames, ThemeConfig>;\n\nexport const RefineThemes: RefineThemes = {\n Blue: {\n token: {\n colorPrimary: \"#1677FF\",\n },\n },\n Purple: {\n token: {\n colorPrimary: \"#722ED1\",\n },\n },\n Magenta: {\n token: {\n colorPrimary: \"#EB2F96\",\n },\n },\n Red: {\n token: {\n colorPrimary: \"#F5222D\",\n },\n },\n Orange: {\n token: {\n colorPrimary: \"#FA541C\",\n },\n },\n Yellow: {\n token: {\n colorPrimary: \"#FAAD14\",\n },\n },\n Green: {\n token: {\n colorPrimary: \"#52C41A\",\n },\n },\n};\n"],"mappings":"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","names":["React","Form","useFormSF","flattenObjectKeys","propertyPathToArray","useFormCore","useWarnAboutChange","pickNotDeprecated","useTranslate","useRefineContext","useForm","__name","action","resource","onMutationSuccessProp","onMutationErrorProp","autoSave","submitOnEnter","warnWhenUnsavedChangesProp","redirect","successNotification","errorNotification","meta","metaData","queryMeta","mutationMeta","liveMode","liveParams","mutationMode","dataProviderName","onLiveEvent","invalidates","undoableTimeout","queryOptions","createMutationOptions","updateMutationOptions","idFromProps","overtimeOptions","optimisticUpdateMap","disableServerSideValidationProp","_a","_b","options","useRefineContext","disableServerSideValidation","translate","useTranslate","formAnt","Form","formSF","useFormSF","form","useFormCoreResult","useFormCore","error","_variables","_context","parsedErrors","fieldsValue","flattenObjectKeys","field","propertyPathToArray","errors","key","fieldError","newError","pickNotDeprecated","formLoading","onFinish","queryResult","id","onFinishAutoSave","warnWhenUnsavedChangesRefine","setWarnWhen","useWarnAboutChange","warnWhenUnsavedChanges","React","onKeyUp","event","onValuesChange","changeValues","allValues","onFinishFromProps","values","saveButtonProps","React","useCallback","useTranslate","useWarnAboutChange","useUserFriendlyName","useResource","useParsed","useGo","useInvalidate","useCoreModal","useModal","__name","modalProps","show","close","visible","useCoreModal","e","_a","useModalForm","__name","syncWithLocation","defaultVisible","autoSubmitClose","autoResetForm","autoSave","invalidates","rest","_a","_b","initiallySynced","setInitiallySynced","React","invalidate","useInvalidate","resource","actionFromParams","identifier","useResource","parsed","useParsed","go","useGo","getUserFriendlyName","useUserFriendlyName","action","syncingId","syncWithLocationKey","useFormProps","useForm","form","formProps","id","setId","formLoading","onFinish","autoSaveProps","translate","useTranslate","warnWhen","setWarnWhen","useWarnAboutChange","show","close","modalProps","useModal","visible","sunflowerUseModal","_c","_d","openStatus","idFromParams","saveButtonPropsSF","handleClose","useCallback","handleShow","showId","_visible","otherModalProps","newModalProps","values","React","useCallback","useTranslate","useWarnAboutChange","useResource","useParsed","useGo","useModal","useInvalidate","useDrawerForm","__name","syncWithLocation","defaultVisible","autoSubmitClose","autoResetForm","autoSave","invalidates","rest","invalidate","useInvalidate","initiallySynced","setInitiallySynced","React","visible","show","close","useModal","resource","actionFromParams","identifier","useResource","parsed","useParsed","go","useGo","action","syncingId","syncWithLocationKey","useFormProps","useForm","form","formProps","formLoading","id","setId","onFinish","autoSaveProps","_a","_b","_c","_d","openStatus","idFromParams","translate","useTranslate","warnWhen","setWarnWhen","useWarnAboutChange","saveButtonProps","deleteButtonProps","handleClose","useCallback","handleShow","showId","values","useStepsFormSF","useStepsForm","__name","props","useFormProps","useForm","form","formProps","stepsPropsSunflower","useStepsFormSF","values","_a","Children","createElement","Fragment","Grid","Form","useFormSF","useLiveMode","useTableCore","pickNotDeprecated","getDefaultFilterCore","getDefaultSortOrderCore","getDefaultSortOrder","__name","columnName","sorter","sort","getDefaultSortOrderCore","getDefaultFilter","filters","operatorType","getDefaultFilterCore","mapAntdSorterToCrudSorting","crudSorting","a","b","_a","_b","item","field","mapAntdFilterToCrudFilter","tableFilters","prevFilters","initialFilters","crudFilters","mapInitialFilter","acc","value","operator","i","useLink","useRouterContext","useRouterType","React","PaginationLink","__name","to","element","LegacyLink","useRouterContext","routerType","useRouterType","Link","useLink","React","e","useTable","__name","onSearch","initialCurrent","initialPageSize","hasPagination","pagination","initialSorter","permanentSorter","initialFilter","permanentFilter","defaultSetFilterBehavior","filtersFromProp","sortersFromProp","syncWithLocation","resource","successNotification","errorNotification","queryOptions","liveModeFromProp","onLiveEvent","liveParams","meta","metaData","dataProviderName","tableQueryResult","current","setCurrent","pageSize","setPageSize","filters","setFilters","sorters","setSorters","sorter","setSorter","createLinkForSyncWithLocation","pageCount","overtime","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","_a","link","createElement","PaginationLink","elementChildren","Children","Fragment","useEditableTable","__name","autoSubmitClose","props","table","useTable","edit","useForm","editId","setId","saveButtonProps","cancelButtonProps","editButtonProps","id","isEditing","values","result","useSelectCore","useSelect","__name","props","queryResult","defaultValueQueryResult","onSearch","options","useSelectCore","useSelect","pickNotDeprecated","useCheckboxGroup","__name","resource","sort","sorters","filters","optionLabel","optionValue","queryOptions","fetchSize","pagination","liveMode","defaultValue","onLiveEvent","liveParams","meta","metaData","dataProviderName","queryResult","options","useSelect","pickNotDeprecated","pickNotDeprecated","useSelect","useRadioGroup","__name","resource","sort","sorters","filters","optionLabel","optionValue","queryOptions","fetchSize","pagination","liveMode","defaultValue","onLiveEvent","liveParams","meta","metaData","dataProviderName","queryResult","options","useSelect","pickNotDeprecated","React","notification","Progress","useTranslate","useResource","useImportCore","pickNotDeprecated","useImport","__name","resourceFromProp","resourceName","mapData","item","paparseOptions","batchSize","onFinish","meta","metaData","dataProviderName","onProgressFromProp","t","useTranslate","resource","useResource","mutationResult","isLoading","handleChange","useImportCore","pickNotDeprecated","totalAmount","processedAmount","description","React","Progress","notification","Children","createElement","Fragment","Form","Grid","useTableCore","pickNotDeprecated","useLiveMode","useSimpleList","__name","resource","initialCurrent","initialPageSize","pagination","hasPagination","initialSorter","permanentSorter","initialFilter","permanentFilter","defaultSetFilterBehavior","filtersFromProp","sortersFromProp","onSearch","queryOptions","syncWithLocation","successNotification","errorNotification","liveModeFromProp","onLiveEvent","liveParams","meta","metaData","dataProviderName","sorters","sorter","filters","current","pageSize","pageCount","setFilters","setCurrent","setPageSize","setSorter","setSorters","createLinkForSyncWithLocation","queryResult","overtime","useTableCore","pickNotDeprecated","hasPaginationString","isPaginationEnabled","breakpoint","Grid","liveMode","useLiveMode","form","Form","data","isFetched","isLoading","onChange","page","onFinish","values","searchFilters","antdPagination","type","element","_a","link","createElement","PaginationLink","elementChildren","Children","Fragment","useCallback","useMemo","useState","useFileUploadState","__name","isLoading","setIsloading","useState","onChange","useCallback","info","mapStatusToLoading","useMemo","files","file","useContext","React","useState","ThemedLayoutContext","React","ThemedLayoutContextProvider","__name","children","initialSiderCollapsed","siderCollapsed","setSiderCollapsed","useState","mobileSiderOpen","setMobileSiderOpen","useSiderVisible","__name","mobileSiderOpen","siderCollapsed","setMobileSiderOpen","setSiderCollapsed","useContext","ThemedLayoutContext","useContext","useThemedLayoutContext","__name","mobileSiderOpen","siderCollapsed","setMobileSiderOpen","setSiderCollapsed","useContext","ThemedLayoutContext","App","staticNotification","React","React","Button","Progress","UndoOutlined","UndoableNotification","__name","message","cancelMutation","undoableTimeout","React","Progress","time","Button","UndoOutlined","notificationProvider","key","message","description","type","cancelMutation","undoableTimeout","staticNotification","React","UndoableNotification","useNotificationProvider","__name","notificationFromContext","App","notification","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","useWarnAboutChange","drawerButtonStyles","Sider","__name","TitleFromProps","render","meta","collapsed","setCollapsed","useState","drawerOpen","setDrawerOpen","isExistAuthentication","useIsExistAuthentication","routerType","useRouterType","NewLink","useLink","warnWhen","setWarnWhen","useWarnAboutChange","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","Menu","UnorderedListOutlined","isSelected","isRoute","pickNotDeprecated","handleLogout","logout","LogoutOutlined","dashboard","DashboardOutlined","items","renderSider","renderMenu","renderDrawerSider","Drawer","Layout","Button","drawerButtonStyles","BarsOutlined","ConfigProvider","useActiveAuthProvider","useGetIdentity","Avatar","AntdLayout","Space","Typography","React","Header","__name","authProvider","useActiveAuthProvider","user","useGetIdentity","React","AntdLayout","Space","Typography","Avatar","Layout","__name","children","Header","Sider","Title","Footer","OffLayoutArea","breakpoint","Grid","SiderToRender","HeaderToRender","isSmall","React","AntdLayout","React","useRouterContext","useRouterType","useLink","Title","__name","collapsed","routerType","useRouterType","Link","useLink","LegacyLink","useRouterContext","React","React","Grid","AntdLayout","React","useState","Layout","Menu","Grid","Drawer","Button","theme","DashboardOutlined","LogoutOutlined","UnorderedListOutlined","BarsOutlined","LeftOutlined","RightOutlined","useTranslate","useLogout","useTitle","CanAccess","useIsExistAuthentication","useRouterContext","useMenu","useRefineContext","useLink","useRouterType","useActiveAuthProvider","pickNotDeprecated","useWarnAboutChange","drawerButtonStyles","ThemedSider","__name","TitleFromProps","render","meta","token","theme","collapsed","setCollapsed","useState","drawerOpen","setDrawerOpen","isExistAuthentication","useIsExistAuthentication","routerType","useRouterType","NewLink","useLink","warnWhen","setWarnWhen","useWarnAboutChange","LegacyLink","useRouterContext","Link","TitleFromContext","useTitle","translate","useTranslate","menuItems","selectedKey","defaultOpenKeys","useMenu","breakpoint","Grid","hasDashboard","useRefineContext","authProvider","useActiveAuthProvider","mutateLogout","useLogout","isMobile","RenderToTitle","ThemedTitle","renderTreeView","tree","item","icon","label","route","key","name","children","parentName","options","React","CanAccess","Menu","UnorderedListOutlined","isSelected","isRoute","pickNotDeprecated","handleLogout","logout","LogoutOutlined","dashboard","DashboardOutlined","items","renderSider","renderMenu","renderDrawerSider","Drawer","Layout","Button","drawerButtonStyles","BarsOutlined","RightOutlined","LeftOutlined","React","AntdLayout","Typography","Avatar","Space","theme","useActiveAuthProvider","useGetIdentity","ThemedHeader","__name","token","theme","authProvider","useActiveAuthProvider","user","useGetIdentity","React","AntdLayout","Space","Typography","Avatar","ThemedLayout","__name","children","Header","Sider","Title","Footer","OffLayoutArea","breakpoint","Grid","SiderToRender","ThemedSider","HeaderToRender","ThemedHeader","isSmall","React","AntdLayout","React","useRouterContext","useRouterType","useLink","Typography","theme","Space","defaultText","defaultIcon","React","ThemedTitle","__name","collapsed","icon","text","wrapperStyles","token","theme","routerType","useRouterType","Link","useLink","LegacyLink","useRouterContext","Space","Typography","React","Grid","AntdLayout","React","Layout","Menu","Grid","Drawer","Button","theme","DashboardOutlined","LogoutOutlined","UnorderedListOutlined","BarsOutlined","LeftOutlined","RightOutlined","useTranslate","useLogout","useTitle","CanAccess","useIsExistAuthentication","useRouterContext","useMenu","useRefineContext","useLink","useRouterType","useActiveAuthProvider","pickNotDeprecated","useWarnAboutChange","drawerButtonStyles","ThemedSiderV2","__name","TitleFromProps","render","meta","fixed","activeItemDisabled","token","theme","siderCollapsed","setSiderCollapsed","mobileSiderOpen","setMobileSiderOpen","useThemedLayoutContext","isExistAuthentication","useIsExistAuthentication","routerType","useRouterType","NewLink","useLink","warnWhen","setWarnWhen","useWarnAboutChange","LegacyLink","useRouterContext","Link","TitleFromContext","useTitle","translate","useTranslate","menuItems","selectedKey","defaultOpenKeys","useMenu","breakpoint","Grid","hasDashboard","useRefineContext","authProvider","useActiveAuthProvider","mutateLogout","useLogout","isMobile","RenderToTitle","ThemedTitleV2","renderTreeView","tree","item","icon","label","route","key","name","children","parentName","options","React","CanAccess","Menu","UnorderedListOutlined","isSelected","isRoute","pickNotDeprecated","linkStyle","handleLogout","logout","LogoutOutlined","dashboard","DashboardOutlined","items","renderSider","renderMenu","renderDrawerSider","Drawer","Layout","Button","drawerButtonStyles","BarsOutlined","siderStyles","collapsed","type","RightOutlined","LeftOutlined","React","AntdLayout","Typography","Avatar","Space","theme","pickNotDeprecated","useActiveAuthProvider","useGetIdentity","ThemedHeaderV2","__name","isSticky","sticky","token","theme","authProvider","useActiveAuthProvider","user","useGetIdentity","headerStyles","pickNotDeprecated","React","AntdLayout","Space","Typography","Avatar","ThemedLayoutV2","__name","children","Header","Sider","Title","Footer","OffLayoutArea","initialSiderCollapsed","breakpoint","Grid","SiderToRender","ThemedSiderV2","HeaderToRender","ThemedHeaderV2","isSmall","hasSider","React","ThemedLayoutContextProvider","AntdLayout","React","useRouterContext","useRouterType","useLink","Typography","theme","Space","defaultText","defaultIcon","React","ThemedTitleV2","__name","collapsed","icon","text","wrapperStyles","token","theme","routerType","useRouterType","Link","useLink","LegacyLink","useRouterContext","Space","Typography","React","useContext","Button","PlusSquareOutlined","useNavigation","useTranslate","useCan","useResource","useRouterContext","useRouterType","useLink","AccessControlContext","RefineButtonClassNames","RefineButtonTestIds","CreateButton","__name","resourceNameFromProps","propResourceNameOrRouteName","hideText","accessControl","meta","children","onClick","rest","accessControlContext","useContext","AccessControlContext","accessControlEnabled","hideIfUnauthorized","translate","useTranslate","routerType","useRouterType","Link","useLink","LegacyLink","useRouterContext","ActiveLink","generateCreateUrl","useNavigation","resource","useResource","data","useCan","createButtonDisabledTitle","createUrl","React","e","Button","PlusSquareOutlined","RefineButtonTestIds","RefineButtonClassNames","React","useContext","Button","EditOutlined","useCan","useNavigation","useTranslate","useResource","useRouterContext","useRouterType","useLink","AccessControlContext","RefineButtonClassNames","RefineButtonTestIds","EditButton","__name","resourceNameFromProps","propResourceNameOrRouteName","recordItemId","hideText","accessControl","meta","children","onClick","rest","accessControlContext","useContext","AccessControlContext","accessControlEnabled","hideIfUnauthorized","translate","useTranslate","routerType","useRouterType","Link","useLink","LegacyLink","useRouterContext","ActiveLink","generateEditUrl","useNavigation","id","resource","useResource","data","useCan","createButtonDisabledTitle","editUrl","React","e","Button","EditOutlined","RefineButtonTestIds","RefineButtonClassNames","React","useContext","Button","Popconfirm","DeleteOutlined","useDelete","useTranslate","useMutationMode","useCan","useResource","pickNotDeprecated","useWarnAboutChange","AccessControlContext","RefineButtonClassNames","RefineButtonTestIds","DeleteButton","__name","resourceNameFromProps","propResourceNameOrRouteName","recordItemId","onSuccess","mutationModeProp","children","successNotification","errorNotification","hideText","accessControl","metaData","meta","dataProviderName","confirmTitle","confirmOkText","confirmCancelText","invalidates","rest","accessControlContext","useContext","AccessControlContext","accessControlEnabled","hideIfUnauthorized","translate","useTranslate","id","resource","identifier","useResource","mutationModeContext","useMutationMode","mutationMode","mutate","isLoading","variables","useDelete","data","useCan","disabledTitle","setWarnWhen","useWarnAboutChange","React","Popconfirm","pickNotDeprecated","value","Button","DeleteOutlined","RefineButtonTestIds","RefineButtonClassNames","React","Button","RedoOutlined","useTranslate","useResource","useInvalidate","queryKeys","pickDataProvider","RefineButtonClassNames","RefineButtonTestIds","useQueryClient","RefreshButton","__name","resourceNameFromProps","propResourceNameOrRouteName","recordItemId","hideText","dataProviderName","children","onClick","_meta","_metaData","rest","translate","useTranslate","queryClient","useQueryClient","invalidates","useInvalidate","resources","identifier","id","useResource","isInvalidating","queryKeys","pickDataProvider","handleInvalidate","React","Button","e","RedoOutlined","RefineButtonTestIds","RefineButtonClassNames","React","useContext","Button","EyeOutlined","useCan","useNavigation","useTranslate","useResource","useRouterContext","useRouterType","useLink","AccessControlContext","RefineButtonClassNames","RefineButtonTestIds","ShowButton","__name","resourceNameFromProps","propResourceNameOrRouteName","recordItemId","hideText","accessControl","meta","children","onClick","rest","accessControlContext","useContext","AccessControlContext","accessControlEnabled","hideIfUnauthorized","generateShowUrl","useNavigation","routerType","useRouterType","Link","useLink","LegacyLink","useRouterContext","ActiveLink","translate","useTranslate","id","resource","useResource","data","useCan","createButtonDisabledTitle","showUrl","React","e","Button","EyeOutlined","RefineButtonTestIds","RefineButtonClassNames","React","useContext","Button","BarsOutlined","useCan","useNavigation","useTranslate","useUserFriendlyName","useResource","useRouterContext","useRouterType","useLink","pickNotDeprecated","AccessControlContext","RefineButtonClassNames","RefineButtonTestIds","ListButton","__name","resourceNameFromProps","propResourceNameOrRouteName","hideText","accessControl","meta","children","onClick","rest","_a","accessControlContext","useContext","AccessControlContext","accessControlEnabled","hideIfUnauthorized","generateListUrl","useNavigation","routerType","useRouterType","Link","useLink","LegacyLink","useRouterContext","getUserFriendlyName","useUserFriendlyName","ActiveLink","translate","useTranslate","resource","identifier","useResource","data","useCan","createButtonDisabledTitle","listUrl","React","e","Button","BarsOutlined","RefineButtonTestIds","RefineButtonClassNames","pickNotDeprecated","React","Button","ExportOutlined","useTranslate","RefineButtonClassNames","RefineButtonTestIds","ExportButton","__name","hideText","children","rest","translate","useTranslate","React","Button","ExportOutlined","RefineButtonTestIds","RefineButtonClassNames","React","Button","SaveOutlined","useTranslate","RefineButtonClassNames","RefineButtonTestIds","SaveButton","__name","hideText","children","rest","translate","useTranslate","React","Button","SaveOutlined","RefineButtonTestIds","RefineButtonClassNames","React","useContext","Button","PlusSquareOutlined","useCan","useNavigation","useTranslate","useResource","useRouterContext","useRouterType","useLink","AccessControlContext","RefineButtonTestIds","RefineButtonClassNames","CloneButton","__name","propResourceNameOrRouteName","resourceNameFromProps","recordItemId","hideText","accessControl","meta","children","onClick","rest","accessControlContext","useContext","AccessControlContext","accessControlEnabled","hideIfUnauthorized","generateCloneUrl","useNavigation","routerType","useRouterType","Link","useLink","LegacyLink","useRouterContext","ActiveLink","translate","useTranslate","id","resource","useResource","data","useCan","createButtonDisabledTitle","cloneUrl","React","e","Button","PlusSquareOutlined","RefineButtonTestIds","RefineButtonClassNames","React","Button","Upload","ImportOutlined","useTranslate","RefineButtonClassNames","RefineButtonTestIds","ImportButton","__name","uploadProps","buttonProps","hideText","children","translate","useTranslate","React","Upload","Button","ImportOutlined","RefineButtonTestIds","RefineButtonClassNames","React","Space","useTranslate","useUserFriendlyName","useRefineContext","useRouterType","useResource","List","__name","canCreate","title","children","createButtonPropsFromProps","resourceFromProps","wrapperProps","contentProps","headerProps","breadcrumbFromProps","headerButtonProps","headerButtons","_a","_b","translate","useTranslate","globalBreadcrumb","useRefineContext","routerType","useRouterType","getUserFriendlyName","useUserFriendlyName","resource","identifier","useResource","isCreateButtonVisible","breadcrumb","createButtonProps","defaultExtra","React","CreateButton","PageHeader","Space","Breadcrumb","React","Card","Space","Spin","useNavigation","useTranslate","useUserFriendlyName","useRefineContext","useRouterType","useResource","useBack","Create","__name","title","saveButtonPropsFromProps","children","resourceFromProps","isLoading","breadcrumbFromProps","wrapperProps","headerProps","contentProps","headerButtonProps","headerButtons","footerButtonProps","footerButtons","goBackFromProps","_a","_b","translate","useTranslate","globalBreadcrumb","useRefineContext","routerType","useRouterType","back","useBack","goBack","useNavigation","getUserFriendlyName","useUserFriendlyName","resource","action","identifier","useResource","breadcrumb","saveButtonProps","defaultFooterButtons","React","SaveButton","PageHeader","Breadcrumb","Space","Spin","Card","React","Card","Space","Spin","useMutationMode","useNavigation","useTranslate","useUserFriendlyName","useRefineContext","useRouterType","useBack","useResource","useGo","useToPath","Edit","__name","title","saveButtonPropsFromProps","mutationModeProp","recordItemId","children","deleteButtonPropsFromProps","canDelete","resourceFromProps","isLoading","dataProviderName","breadcrumbFromProps","wrapperProps","headerProps","contentProps","headerButtonProps","headerButtons","footerButtonProps","footerButtons","goBackFromProps","autoSaveProps","_a","_b","_c","translate","useTranslate","globalBreadcrumb","useRefineContext","mutationModeContext","useMutationMode","mutationMode","routerType","useRouterType","back","useBack","go","useGo","goBack","legacyGoList","useNavigation","getUserFriendlyName","useUserFriendlyName","resource","action","idFromParams","identifier","useResource","goListPath","useToPath","id","breadcrumb","hasList","isDeleteButtonVisible","listButtonProps","refreshButtonProps","deleteButtonProps","saveButtonProps","defaultHeaderButtons","React","AutoSaveIndicator","ListButton","RefreshButton","defaultFooterButtons","DeleteButton","SaveButton","PageHeader","Space","Breadcrumb","Spin","Card","React","Card","Space","Spin","useNavigation","useTranslate","useUserFriendlyName","useRefineContext","useResource","useToPath","useRouterType","useBack","useGo","Show","__name","title","canEdit","canDelete","isLoading","children","resourceFromProps","recordItemId","dataProviderName","breadcrumbFromProps","contentProps","headerProps","wrapperProps","headerButtons","footerButtons","footerButtonProps","headerButtonProps","goBackFromProps","_a","_b","_c","translate","useTranslate","globalBreadcrumb","useRefineContext","routerType","useRouterType","back","useBack","go","useGo","goBack","legacyGoList","useNavigation","getUserFriendlyName","useUserFriendlyName","resource","action","idFromParams","identifier","useResource","goListPath","useToPath","id","breadcrumb","hasList","isDeleteButtonVisible","isEditButtonVisible","listButtonProps","editButtonProps","deleteButtonProps","refreshButtonProps","defaultHeaderButtons","React","ListButton","EditButton","DeleteButton","RefreshButton","PageHeader","Space","Breadcrumb","Spin","Card","React","Typography","TextField","__name","value","rest","React","Typography","React","Tag","TagField","__name","value","rest","React","Tag","React","Typography","EmailField","__name","value","rest","React","Typography","React","Image","ImageField","__name","value","imageTitle","rest","React","Image","React","Tooltip","CheckOutlined","CloseOutlined","BooleanField","__name","value","valueLabelTrue","valueLabelFalse","trueIcon","React","CheckOutlined","falseIcon","CloseOutlined","rest","Tooltip","React","dayjs","Typography","LocalizedFormat","DateField","__name","value","locales","dateFormat","rest","dayjs","LocalizedFormat","defaultLocale","React","Typography","React","FileField","__name","title","src","rest","React","UrlField","React","Typography","UrlField","__name","children","value","rest","React","Typography","React","Typography","toLocaleStringSupportsOptions","__name","NumberField","value","locale","options","rest","number","React","Typography","React","ReactMarkdown","gfm","MarkdownField","__name","value","React","ReactMarkdown","gfm","React","useState","Button","Space","dayjs","FilterOutlined","useTranslate","FilterDropdown","__name","props","setSelectedKeys","confirm","clearFilters","mapValue","selectedKeys","children","value","setValue","useState","translate","useTranslate","clearFilter","onFilter","_mappedValue","mappedValue","keys","dayjs","onChange","e","changeEvent","target","childrenWithProps","React","child","Space","Button","FilterOutlined","React","useEffect","useState","useGo","useResource","useRouterType","Button","Result","Typography","Space","Tooltip","InfoCircleOutlined","useNavigation","useTranslate","ErrorComponent","__name","errorMessage","setErrorMessage","useState","translate","useTranslate","push","useNavigation","go","useGo","routerType","useRouterType","resource","action","useResource","useEffect","React","Result","Space","Typography","Tooltip","InfoCircleOutlined","Button","React","useActiveAuthProvider","Row","Col","Layout","Card","Typography","Form","Input","Button","Checkbox","useLogin","useTranslate","layoutStyles","containerStyles","titleStyles","imageContainer","LoginPage","__name","form","Form","translate","useTranslate","authProvider","useActiveAuthProvider","login","isLoading","useLogin","CardTitle","React","Typography","titleStyles","Layout","layoutStyles","Row","Col","containerStyles","imageContainer","Card","values","Input","Checkbox","Button","React","Row","Col","Typography","Space","Button","ReadOutlined","FolderOutlined","TeamOutlined","styles","ReadyPage","__name","Row","Col","Typography","Space","Button","ReadOutlined","FolderOutlined","TeamOutlined","React","WelcomePageFromCore","WelcomePage","__name","React","WelcomePageFromCore","React","React","useLink","useRouterType","useActiveAuthProvider","Row","Col","Layout","Card","Typography","Form","Input","Button","Checkbox","Divider","theme","useLogin","useTranslate","useRouterContext","layoutStyles","containerStyles","headStyles","bodyStyles","titleStyles","LoginPage","__name","providers","registerLink","forgotPasswordLink","rememberMe","contentProps","wrapperProps","renderContent","formProps","title","hideForm","token","theme","form","Form","translate","useTranslate","routerType","useRouterType","Link","useLink","LegacyLink","useRouterContext","ActiveLink","authProvider","useActiveAuthProvider","login","isLoading","useLogin","PageTitle","React","ThemedTitleV2","CardTitle","Typography","titleStyles","renderProviders","provider","Button","Divider","CardContent","Card","headStyles","bodyStyles","containerStyles","values","Input","Checkbox","Layout","layoutStyles","Row","Col","React","useRouterType","useLink","useActiveAuthProvider","Row","Col","Layout","Card","Typography","Form","Input","Button","Divider","theme","useTranslate","useRouterContext","useRegister","RegisterPage","__name","providers","loginLink","wrapperProps","contentProps","renderContent","formProps","title","hideForm","token","theme","form","Form","translate","useTranslate","routerType","useRouterType","Link","useLink","LegacyLink","useRouterContext","ActiveLink","authProvider","useActiveAuthProvider","register","isLoading","useRegister","PageTitle","React","ThemedTitleV2","CardTitle","Typography","titleStyles","renderProviders","provider","Button","Divider","CardContent","Card","headStyles","bodyStyles","containerStyles","values","Input","Layout","layoutStyles","Row","Col","React","useRouterType","useLink","Row","Col","Layout","Card","Typography","Form","Input","Button","theme","useTranslate","useRouterContext","useForgotPassword","ForgotPasswordPage","__name","loginLink","wrapperProps","contentProps","renderContent","formProps","title","token","theme","form","Form","translate","useTranslate","routerType","useRouterType","Link","useLink","LegacyLink","useRouterContext","ActiveLink","forgotPassword","isLoading","useForgotPassword","PageTitle","React","ThemedTitleV2","CardTitle","Typography","titleStyles","CardContent","Card","headStyles","bodyStyles","containerStyles","values","Input","Button","Layout","layoutStyles","Row","Col","React","useActiveAuthProvider","Row","Col","Layout","Card","Typography","Form","Input","Button","theme","useTranslate","useUpdatePassword","UpdatePasswordPage","__name","wrapperProps","contentProps","renderContent","formProps","title","token","theme","form","Form","translate","useTranslate","authProvider","useActiveAuthProvider","updatePassword","isLoading","useUpdatePassword","PageTitle","React","ThemedTitleV2","CardTitle","Typography","titleStyles","CardContent","Card","headStyles","bodyStyles","containerStyles","values","Input","getFieldValue","_","value","Button","Layout","layoutStyles","Row","Col","AuthPage","__name","props","type","React","RegisterPage","ForgotPasswordPage","UpdatePasswordPage","LoginPage","React","useBreadcrumb","useLink","useRefineContext","useRouterContext","useRouterType","useResource","matchResourceFromRoute","AntdBreadcrumb","HomeOutlined","Breadcrumb","__name","breadcrumbProps","showHome","hideIcons","meta","routerType","useRouterType","breadcrumbs","useBreadcrumb","Link","useLink","LegacyLink","useRouterContext","hasDashboard","useRefineContext","resources","useResource","rootRouteResource","matchResourceFromRoute","ActiveLink","breadCrumbItems","label","icon","href","React","AntdBreadcrumb","_a","_b","HomeOutlined","React","AntdPageHeader","Button","Typography","ArrowLeftOutlined","RefinePageHeaderClassNames","PageHeader","__name","children","props","backIcon","React","Button","ArrowLeftOutlined","title","Typography","RefinePageHeaderClassNames","subtitle","AntdPageHeader","React","useTranslate","AutoSaveIndicatorCore","Typography","theme","EllipsisOutlined","SyncOutlined","CheckCircleOutlined","ExclamationCircleOutlined","AutoSaveIndicator","__name","status","success","React","Message","CheckCircleOutlined","error","ExclamationCircleOutlined","loading","SyncOutlined","idle","EllipsisOutlined","AutoSaveIndicatorCore","key","defaultMessage","icon","translate","useTranslate","token","theme","Typography","getValueFromEvent","__name","event","fileList","RefineThemes"]}
|