@refinedev/antd 5.13.0 → 5.13.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/hooks/form/useForm.ts","../../src/hooks/form/useModalForm/useModalForm.ts","../../src/hooks/form/useDrawerForm/useDrawerForm.ts","../../src/hooks/form/useStepsForm/useStepsForm.ts","../../src/hooks/table/useTable/useTable.ts","../../src/definitions/table/index.ts","../../src/hooks/table/useTable/paginationLink.tsx","../../src/hooks/table/useEditableTable/useEditableTable.ts","../../src/hooks/fields/useSelect/index.ts","../../src/hooks/fields/useCheckboxGroup/index.ts","../../src/hooks/fields/useRadioGroup/index.ts","../../src/hooks/import/index.tsx","../../src/hooks/list/useSimpleList/useSimpleList.ts","../../src/hooks/useFileUploadState/index.ts","../../src/hooks/modal/useModal/index.tsx","../../src/hooks/useSiderVisible/index.ts","../../src/contexts/themedLayoutContext/index.tsx","../../src/providers/notificationProvider/index.tsx","../../src/components/undoableNotification/index.tsx","../../src/components/layout/index.tsx","../../src/components/layout/sider/index.tsx","../../src/components/layout/sider/styles.ts","../../src/components/layout/header/index.tsx","../../src/components/layout/title/index.tsx","../../src/components/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/definitions/upload/index.ts","../../src/definitions/themes/index.ts"],"sourcesContent":["import React from \"react\";\nimport { FormInstance, FormProps, Form } from \"antd\";\nimport { useForm as useFormSF } from \"sunflower-antd\";\nimport { ButtonProps } from \"antd\";\n\nimport {\n HttpError,\n BaseRecord,\n useForm as useFormCore,\n UseFormReturnType as UseFormReturnTypeCore,\n useWarnAboutChange,\n UseFormProps as UseFormPropsCore,\n CreateResponse,\n UpdateResponse,\n pickNotDeprecated,\n} from \"@refinedev/core\";\n\nexport type UseFormProps<\n TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n TSelectData extends BaseRecord = TData,\n> = UseFormPropsCore<TData, TError, TVariables, TSelectData> & {\n submitOnEnter?: boolean;\n /**\n * Shows notification when unsaved changes exist\n */\n warnWhenUnsavedChanges?: boolean;\n};\n\nexport type UseFormReturnType<\n TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n TSelectData extends BaseRecord = TData,\n> = UseFormReturnTypeCore<TData, TError, TVariables, TSelectData> & {\n form: FormInstance<TVariables>;\n formProps: FormProps<TVariables>;\n saveButtonProps: ButtonProps & {\n onClick: () => void;\n };\n onFinish: (\n values?: TVariables,\n ) => Promise<CreateResponse<TData> | UpdateResponse<TData> | void>;\n};\n\n/**\n * `useForm` is used to manage forms. It uses Ant Design {@link https://ant.design/components/form/ Form} data scope management under the hood and returns the required props for managing the form actions.\n *\n * @see {@link https://refine.dev/docs/api-references/hooks/form/useForm} for more details.\n *\n * @typeParam TData - Result data of the query extends {@link https://refine.dev/docs/api-references/interfaceReferences#baserecord `BaseRecord`}\n * @typeParam TError - Custom error object that extends {@link https://refine.dev/docs/api-references/interfaceReferences#httperror `HttpError`}\n * @typeParam TVariables - Values for params. default `{}`\n *\n *\n */\nexport const useForm = <\n TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n TSelectData extends BaseRecord = TData,\n>({\n action,\n resource,\n onMutationSuccess: onMutationSuccessProp,\n onMutationError,\n submitOnEnter = false,\n warnWhenUnsavedChanges: warnWhenUnsavedChangesProp,\n redirect,\n successNotification,\n errorNotification,\n meta,\n metaData,\n liveMode,\n liveParams,\n mutationMode,\n dataProviderName,\n onLiveEvent,\n invalidates,\n undoableTimeout,\n queryOptions,\n createMutationOptions,\n updateMutationOptions,\n id: idFromProps,\n}: UseFormProps<\n TData,\n TError,\n TVariables,\n TSelectData\n> = {}): UseFormReturnType<TData, TError, TVariables, TSelectData> => {\n const [formAnt] = Form.useForm();\n const formSF = useFormSF<TData, TVariables>({\n form: formAnt,\n });\n const { form } = formSF;\n\n const useFormCoreResult = useFormCore<\n TData,\n TError,\n TVariables,\n TSelectData\n >({\n onMutationSuccess: onMutationSuccessProp\n ? onMutationSuccessProp\n : undefined,\n onMutationError,\n redirect,\n action,\n resource,\n successNotification,\n errorNotification,\n meta: pickNotDeprecated(meta, metaData),\n metaData: pickNotDeprecated(meta, metaData),\n liveMode,\n liveParams,\n mutationMode,\n dataProviderName,\n onLiveEvent,\n invalidates,\n undoableTimeout,\n queryOptions,\n createMutationOptions,\n updateMutationOptions,\n id: idFromProps,\n });\n\n const { formLoading, onFinish, queryResult, id } = useFormCoreResult;\n\n const {\n warnWhenUnsavedChanges: warnWhenUnsavedChangesRefine,\n setWarnWhen,\n } = useWarnAboutChange();\n const warnWhenUnsavedChanges =\n warnWhenUnsavedChangesProp ?? warnWhenUnsavedChangesRefine;\n\n React.useEffect(() => {\n form.resetFields();\n }, [queryResult?.data?.data, id]);\n\n const onKeyUp = (event: React.KeyboardEvent<HTMLFormElement>) => {\n if (submitOnEnter && event.key === \"Enter\") {\n form.submit();\n }\n };\n\n const onValuesChange = (changeValues: object) => {\n if (changeValues && warnWhenUnsavedChanges) {\n setWarnWhen(true);\n }\n return changeValues;\n };\n\n const saveButtonProps = {\n disabled: formLoading,\n onClick: () => {\n form.submit();\n },\n };\n\n return {\n form: formSF.form,\n formProps: {\n ...formSF.formProps,\n onFinish: (values: TVariables) =>\n onFinish(values).catch((error) => error),\n onKeyUp,\n onValuesChange,\n initialValues: queryResult?.data?.data,\n },\n saveButtonProps,\n ...useFormCoreResult,\n onFinish: async (values?: TVariables) => {\n return await onFinish(values ?? formSF.form.getFieldsValue(true));\n },\n };\n};\n","import React, { useCallback } from \"react\";\nimport { FormInstance, FormProps, ModalProps } from \"antd\";\nimport {\n useModalForm as useModalFormSF,\n UseModalFormConfig as UseModalFormConfigSF,\n} from \"sunflower-antd\";\n\nimport {\n useTranslate,\n useWarnAboutChange,\n HttpError,\n UseFormProps as UseFormPropsCore,\n BaseRecord,\n LiveModeProps,\n BaseKey,\n userFriendlyResourceName,\n useResource,\n FormWithSyncWithLocationParams,\n useParsed,\n useGo,\n} from \"@refinedev/core\";\nimport { useForm, UseFormProps, UseFormReturnType } from \"../useForm\";\n\nexport type useModalFormFromSFReturnType<TData, TVariables> = {\n open: boolean;\n form: FormInstance<TVariables>;\n show: (id?: BaseKey) => void;\n close: () => void;\n modalProps: ModalProps;\n formProps: FormProps<TVariables>;\n formLoading: boolean;\n defaultFormValuesLoading: boolean;\n formValues: {};\n initialValues: {};\n formResult: undefined;\n submit: (values?: TVariables) => Promise<TData>;\n /** @deprecated Please use `open` instead. */\n visible: boolean;\n};\n\ntype useModalFormConfig = {\n action: \"show\" | \"edit\" | \"create\" | \"clone\";\n};\n\nexport type UseModalFormReturnType<\n TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n TSelectData extends BaseRecord = TData,\n> = Omit<\n UseFormReturnType<TData, TError, TVariables, TSelectData>,\n \"saveButtonProps\" | \"deleteButtonProps\"\n> &\n useModalFormFromSFReturnType<TSelectData, TVariables>;\n\nexport type UseModalFormProps<\n TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n TSelectData extends BaseRecord = TData,\n> = UseFormPropsCore<TData, TError, TVariables, TSelectData> &\n UseFormProps<TData, TError, TVariables, TSelectData> &\n UseModalFormConfigSF &\n useModalFormConfig &\n LiveModeProps &\n FormWithSyncWithLocationParams;\n/**\n * `useModalForm` hook allows you to manage a form within a modal. It returns Ant Design {@link https://ant.design/components/form/ Form} and {@link https://ant.design/components/modal/ Modal} components props.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/hooks/form/useModalForm} for more details.\n *\n * @typeParam TData - Result data of the query extends {@link https://refine.dev/docs/api-references/interfaceReferences#baserecord `BaseRecord`}\n * @typeParam TError - Custom error object that extends {@link https://refine.dev/docs/api-references/interfaceReferences#httperror `HttpError`}\n * @typeParam TVariables - Values for params. default `{}`\n *\n *\n */\nexport const useModalForm = <\n TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n TSelectData extends BaseRecord = TData,\n>({\n syncWithLocation,\n ...rest\n}: UseModalFormProps<\n TData,\n TError,\n TVariables,\n TSelectData\n>): UseModalFormReturnType<TData, TError, TVariables, TSelectData> => {\n const initiallySynced = React.useRef(false);\n\n const useFormProps = useForm<TData, TError, TVariables, TSelectData>({\n ...rest,\n });\n\n const { form, formProps, id, setId, formLoading, onFinish } = useFormProps;\n\n const { resource, action: actionFromParams } = useResource(rest.resource);\n\n const parsed = useParsed();\n const go = useGo();\n\n const action = rest.action ?? actionFromParams ?? \"\";\n\n const syncingId =\n typeof syncWithLocation === \"object\" && syncWithLocation.syncId;\n\n const syncWithLocationKey =\n typeof syncWithLocation === \"object\" && \"key\" in syncWithLocation\n ? syncWithLocation.key\n : resource && action && syncWithLocation\n ? `modal-${resource?.identifier ?? resource?.name}-${action}`\n : undefined;\n\n const translate = useTranslate();\n\n const { warnWhen, setWarnWhen } = useWarnAboutChange();\n\n const sunflowerUseModal = useModalFormSF<TSelectData, TVariables>({\n ...rest,\n form: form,\n submit: onFinish as any,\n });\n\n const {\n visible,\n show,\n formProps: modalFormProps,\n modalProps,\n } = sunflowerUseModal;\n\n React.useEffect(() => {\n if (initiallySynced.current === false && syncWithLocationKey) {\n const openStatus = parsed?.params?.[syncWithLocationKey]?.open;\n if (typeof openStatus === \"boolean\") {\n if (openStatus) {\n show();\n }\n } else if (typeof openStatus === \"string\") {\n if (openStatus === \"true\") {\n show();\n }\n }\n\n if (syncingId) {\n const idFromParams = parsed?.params?.[syncWithLocationKey]?.id;\n if (idFromParams) {\n setId?.(idFromParams);\n }\n }\n\n initiallySynced.current = true;\n }\n }, [syncWithLocationKey, parsed, syncingId, setId]);\n\n React.useEffect(() => {\n if (initiallySynced.current === true) {\n if (visible && syncWithLocationKey) {\n go({\n query: {\n [syncWithLocationKey]: {\n ...parsed?.params?.[syncWithLocationKey],\n open: true,\n ...(syncingId && id && { id }),\n },\n },\n options: { keepQuery: true },\n type: \"replace\",\n });\n } else if (syncWithLocationKey && !visible) {\n go({\n query: {\n [syncWithLocationKey]: undefined,\n },\n options: { keepQuery: true },\n type: \"replace\",\n });\n }\n }\n }, [id, visible, show, syncWithLocationKey, syncingId]);\n\n const saveButtonPropsSF = {\n disabled: formLoading,\n loading: formLoading,\n };\n\n const handleClose = useCallback(() => {\n if (warnWhen) {\n const warnWhenConfirm = window.confirm(\n translate(\n \"warnWhenUnsavedChanges\",\n \"Are you sure you want to leave? You have unsaved changes.\",\n ),\n );\n\n if (warnWhenConfirm) {\n setWarnWhen(false);\n } else {\n return;\n }\n }\n\n setId?.(undefined);\n sunflowerUseModal.close();\n }, [warnWhen]);\n\n const handleShow = useCallback(\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 ...modalFormProps,\n ...useFormProps.formProps,\n onValuesChange: formProps?.onValuesChange,\n onKeyUp: formProps?.onKeyUp,\n onFinish: formProps.onFinish,\n },\n modalProps: {\n ...newModalProps,\n width: \"1000px\",\n okButtonProps: saveButtonPropsSF,\n title: translate(\n `${resource?.name}.titles.${rest.action}`,\n `${userFriendlyResourceName(\n `${rest.action} ${\n resource?.meta?.label ??\n resource?.options?.label ??\n resource?.label ??\n resource?.name\n }`,\n \"singular\",\n )}`,\n ),\n okText: translate(\"buttons.save\", \"Save\"),\n cancelText: translate(\"buttons.cancel\", \"Cancel\"),\n onCancel: handleClose,\n forceRender: true,\n },\n formLoading,\n };\n};\n","import 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} 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 TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n TSelectData extends BaseRecord = TData,\n> = UseFormPropsCore<TData, TError, TVariables, TSelectData> &\n UseFormProps<TData, TError, TVariables, TSelectData> &\n UseDrawerFormConfig &\n LiveModeProps &\n FormWithSyncWithLocationParams & {\n defaultVisible?: boolean;\n autoSubmitClose?: boolean;\n autoResetForm?: boolean;\n };\n\nexport type UseDrawerFormReturnType<\n TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n TSelectData extends BaseRecord = TData,\n> = UseFormReturnType<TData, TError, TVariables, TSelectData> & {\n formProps: FormProps<TVariables> & {\n form: FormInstance<TVariables>;\n };\n show: (id?: BaseKey) => void;\n close: () => void;\n drawerProps: DrawerProps;\n saveButtonProps: ButtonProps;\n deleteButtonProps: DeleteButtonProps;\n formLoading: boolean;\n};\n\n/**\n * `useDrawerForm` hook allows you to manage a form within a drawer. It returns Ant Design {@link https://ant.design/components/form/ Form} and {@link https://ant.design/components/drawer/ Drawer} components props.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/hooks/form/useDrawerForm} for more details.\n *\n * @typeParam TData - Result data of the query extends {@link https://refine.dev/docs/api-references/interfaceReferences#baserecord `BaseRecord`}\n * @typeParam TError - Custom error object that extends {@link https://refine.dev/docs/api-references/interfaceReferences#httperror `HttpError`}\n * @typeParam TVariables - Values for params. default `{}`\n *\n *\n */\n\nexport const useDrawerForm = <\n TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n TSelectData extends BaseRecord = TData,\n>({\n syncWithLocation,\n defaultVisible = false,\n autoSubmitClose = true,\n autoResetForm = true,\n ...rest\n}: UseDrawerFormProps<\n TData,\n TError,\n TVariables,\n TSelectData\n>): UseDrawerFormReturnType<TData, TError, TVariables, TSelectData> => {\n const initiallySynced = React.useRef(false);\n\n const { visible, show, close } = useModal({\n defaultVisible,\n });\n\n const useFormProps = useForm<TData, TError, TVariables, TSelectData>({\n ...rest,\n });\n\n const { form, formProps, formLoading, id, setId, onFinish } = useFormProps;\n\n const { resource, action: actionFromParams } = useResource(rest.resource);\n\n const parsed = useParsed();\n const go = useGo();\n\n const action = rest.action ?? actionFromParams ?? \"\";\n\n const syncingId =\n typeof syncWithLocation === \"object\" && syncWithLocation.syncId;\n\n const syncWithLocationKey =\n typeof syncWithLocation === \"object\" && \"key\" in syncWithLocation\n ? syncWithLocation.key\n : resource && action && syncWithLocation\n ? `drawer-${resource?.identifier ?? resource?.name}-${action}`\n : undefined;\n\n React.useEffect(() => {\n if (initiallySynced.current === 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 initiallySynced.current = true;\n }\n }, [syncWithLocationKey, parsed, syncingId, setId]);\n\n React.useEffect(() => {\n if (initiallySynced.current === true) {\n if (visible && syncWithLocationKey) {\n go({\n query: {\n [syncWithLocationKey]: {\n ...parsed?.params?.[syncWithLocationKey],\n open: true,\n ...(syncingId && id && { id }),\n },\n },\n options: { keepQuery: true },\n type: \"replace\",\n });\n } else if (syncWithLocationKey && !visible) {\n go({\n query: {\n [syncWithLocationKey]: undefined,\n },\n options: { keepQuery: true },\n type: \"replace\",\n });\n }\n }\n }, [id, visible, show, close, syncWithLocationKey, syncingId]);\n\n const translate = useTranslate();\n\n const { warnWhen, setWarnWhen } = useWarnAboutChange();\n\n const submit = async () => {\n await onFinish(form.getFieldsValue());\n\n if (autoSubmitClose) {\n close();\n }\n\n if (autoResetForm) {\n form.resetFields();\n }\n };\n\n const saveButtonProps = {\n disabled: formLoading,\n onClick: submit,\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 (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: formProps.onFinish,\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<TData, TVariables> = {\n current: number;\n gotoStep: (step: number) => void;\n stepsProps: {\n current: number;\n onChange: (currentStep: number) => void;\n };\n formProps: FormProps<TVariables>;\n formLoading: boolean;\n defaultFormValuesLoading: boolean;\n formValues: {};\n initialValues: {};\n formResult: undefined;\n form: FormInstance<TVariables>;\n submit: (values?: TVariables) => Promise<TData>;\n};\n\nexport type UseStepsFormReturnType<\n TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n TSelectData extends BaseRecord = TData,\n> = UseFormReturnType<TData, TError, TVariables, TSelectData> &\n UseStepsFormFromSFReturnType<TSelectData, TVariables>;\n\nexport type UseStepsFormProps<\n TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n TSelectData extends BaseRecord = TData,\n> = UseFormPropsCore<TData, TError, TVariables, TSelectData> &\n UseFormProps<TData, TError, TVariables, TSelectData> &\n UseStepsFormConfig;\n\n/**\n * `useStepsForm` hook allows you to split your form under an Ant Design based {@link https://ant.design/components/steps/ Steps} component and provides you with a few useful functionalities that will help you manage your form.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/hooks/form/useStepsForm} for more details.\n *\n * @typeParam TData - Result data of the query extends {@link https://refine.dev/docs/api-references/interfaceReferences#baserecord `BaseRecord`}\n * @typeParam TError - Custom error object that extends {@link https://refine.dev/docs/api-references/interfaceReferences#httperror `HttpError`}\n * @typeParam TVariables - Values for params. default `{}`\n *\n *\n */\nexport const useStepsForm = <\n TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n TSelectData extends BaseRecord = TData,\n>(\n props: UseStepsFormProps<TData, TError, TVariables, TSelectData> = {},\n): UseStepsFormReturnType<TData, TError, TVariables, TSelectData> => {\n const useFormProps = useForm<TData, TError, TVariables, TSelectData>({\n ...props,\n });\n const { form, formProps } = useFormProps;\n\n const stepsPropsSunflower = useStepsFormSF<TSelectData, TVariables>({\n isBackValidate: false,\n form: form,\n submit: (values: any) => {\n formProps?.onFinish?.(values);\n },\n ...props,\n });\n\n return {\n ...useFormProps,\n ...stepsPropsSunflower,\n formProps: {\n ...stepsPropsSunflower.formProps,\n ...useFormProps.formProps,\n onValuesChange: formProps?.onValuesChange,\n onKeyUp: formProps?.onKeyUp,\n },\n saveButtonProps: {\n ...useFormProps.saveButtonProps,\n onClick: () => stepsPropsSunflower.submit(),\n },\n };\n};\n","import React, { Children, createElement, Fragment } from \"react\";\nimport { Grid, FormProps, Form, TablePaginationConfig, TableProps } from \"antd\";\nimport { useForm as useFormSF } from \"sunflower-antd\";\n\nimport { SorterResult } from \"antd/lib/table/interface\";\n\nimport {\n useLiveMode,\n BaseRecord,\n CrudFilters,\n 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 } = 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 };\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/**\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 props: useEditableTableProps<\n TQueryFnData,\n TError,\n TVariables,\n TSearchVariables,\n TData\n > = {},\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 saveButtonProps,\n cancelButtonProps,\n editButtonProps,\n isEditing,\n };\n};\n","import { SelectProps } from \"antd/lib/select\";\nimport { QueryObserverResult } from \"@tanstack/react-query\";\n\nimport {\n useSelect as useSelectCore,\n BaseRecord,\n GetManyResponse,\n GetListResponse,\n HttpError,\n UseSelectProps,\n} from \"@refinedev/core\";\n\nexport type UseSelectReturnType<TData extends BaseRecord = BaseRecord> = {\n selectProps: SelectProps<{ value: string; label: string }>;\n queryResult: QueryObserverResult<GetListResponse<TData>>;\n defaultValueQueryResult: QueryObserverResult<GetManyResponse<TData>>;\n};\n\n/**\n * `useSelect` hook allows you to manage an Ant Design {@link https://ant.design/components/select/ Select} component when records in a resource needs to be used as select options.\n *\n * @see {@link https://refine.dev/docs/api-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>(\n props: UseSelectProps<TQueryFnData, TError, TData>,\n): UseSelectReturnType<TData> => {\n const { queryResult, defaultValueQueryResult, onSearch, options } =\n useSelectCore(props);\n\n return {\n selectProps: {\n options,\n onSearch,\n loading: defaultValueQueryResult.isFetching,\n showSearch: true,\n filterOption: false,\n },\n queryResult,\n defaultValueQueryResult,\n };\n};\n","import { QueryObserverResult } from \"@tanstack/react-query\";\n\nimport { CheckboxGroupProps } from \"antd/lib/checkbox\";\nimport {\n BaseRecord,\n GetListResponse,\n HttpError,\n UseSelectProps,\n useSelect,\n BaseKey,\n pickNotDeprecated,\n} from \"@refinedev/core\";\n\nexport type UseCheckboxGroupReturnType<TData extends BaseRecord = BaseRecord> =\n {\n checkboxGroupProps: CheckboxGroupProps;\n queryResult: QueryObserverResult<GetListResponse<TData>>;\n };\n\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>({\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> => {\n const { queryResult, options } = useSelect({\n resource,\n sort,\n sorters,\n filters,\n optionLabel,\n optionValue,\n queryOptions,\n fetchSize,\n pagination,\n liveMode,\n defaultValue,\n onLiveEvent,\n liveParams,\n meta: pickNotDeprecated(meta, metaData),\n metaData: pickNotDeprecated(meta, metaData),\n dataProviderName,\n });\n return {\n checkboxGroupProps: {\n options,\n defaultValue,\n },\n queryResult,\n };\n};\n","import { QueryObserverResult } from \"@tanstack/react-query\";\n\nimport { RadioGroupProps } from \"antd/lib/radio\";\nimport {\n BaseKey,\n BaseRecord,\n GetListResponse,\n HttpError,\n pickNotDeprecated,\n useSelect,\n UseSelectProps,\n} from \"@refinedev/core\";\n\nexport type UseRadioGroupReturnType<TData extends BaseRecord = BaseRecord> = {\n radioGroupProps: RadioGroupProps;\n queryResult: QueryObserverResult<GetListResponse<TData>>;\n};\n\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>({\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<\n TQueryFnData,\n TError,\n TData\n>): UseRadioGroupReturnType<TData> => {\n const { queryResult, options } = useSelect({\n resource,\n sort,\n sorters,\n filters,\n optionLabel,\n optionValue,\n queryOptions,\n fetchSize,\n pagination,\n liveMode,\n defaultValue,\n onLiveEvent,\n liveParams,\n meta: pickNotDeprecated(meta, metaData),\n metaData: pickNotDeprecated(meta, metaData),\n dataProviderName,\n });\n\n return {\n radioGroupProps: {\n options,\n defaultValue,\n },\n queryResult,\n };\n};\n","import React from \"react\";\nimport { ButtonProps, notification, UploadProps, Progress } from \"antd\";\nimport {\n useTranslate,\n useResource,\n BaseRecord,\n HttpError,\n useImport as useImportCore,\n UseImportReturnType,\n ImportOptions,\n pickNotDeprecated,\n} from \"@refinedev/core\";\n\n/**\n * `useImport` hook allows you to handle your csv import logic easily.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/hooks/import/useImport} for more details.\n *\n * @typeParam TItem - Interface of parsed csv data\n * @typeParam TData - Result data of the query extends {@link https://refine.dev/docs/api-references/interfaceReferences#baserecord `BaseRecord`}\n * @typeParam TError - Custom error object that extends {@link https://refine.dev/docs/api-references/interfaceReferences#httperror `HttpError`}\n * @typeParam TVariables - Values for mutation function\n *\n */\nexport const useImport = <\n TItem = any,\n TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = any,\n>({\n resource: resourceFromProp,\n resourceName,\n mapData = (item) => item as unknown as TVariables,\n paparseOptions,\n batchSize = Number.MAX_SAFE_INTEGER,\n onFinish,\n meta,\n metaData,\n dataProviderName,\n onProgress: onProgressFromProp,\n}: ImportOptions<TItem, TVariables, TData> = {}): Omit<\n UseImportReturnType<TData, TVariables, TError>,\n \"handleChange\" | \"inputProps\"\n> & {\n uploadProps: UploadProps;\n buttonProps: ButtonProps;\n} => {\n const t = useTranslate();\n\n const { resource } = useResource(resourceFromProp ?? resourceName);\n\n const { mutationResult, isLoading, handleChange } = useImportCore<\n TItem,\n TData,\n TError,\n TVariables\n >({\n resource: resource?.identifier ?? resource?.name,\n mapData,\n paparseOptions,\n batchSize,\n meta: pickNotDeprecated(meta, metaData),\n metaData: pickNotDeprecated(meta, metaData),\n dataProviderName,\n onFinish,\n onProgress:\n onProgressFromProp ??\n (({ totalAmount, processedAmount }) => {\n if (totalAmount > 0 && processedAmount > 0) {\n const description = (\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n marginTop: \"-7px\",\n }}\n >\n <Progress\n type=\"circle\"\n percent={Math.floor(\n (processedAmount / totalAmount) * 100,\n )}\n width={50}\n strokeColor=\"#1890ff\"\n status=\"normal\"\n />\n <span style={{ marginLeft: 8, width: \"100%\" }}>\n {t(\n \"notifications.importProgress\",\n {\n processed: processedAmount,\n total: totalAmount,\n },\n `Importing: ${processedAmount}/${totalAmount}`,\n )}\n </span>\n </div>\n );\n\n notification.open({\n description,\n message: null,\n key: `${resource}-import`,\n duration: 0,\n });\n\n if (processedAmount >= totalAmount) {\n }\n\n if (processedAmount === totalAmount) {\n setTimeout(() => {\n notification.destroy(`${resource}-import`);\n }, 4500);\n }\n }\n }),\n });\n\n return {\n uploadProps: {\n onChange: handleChange,\n beforeUpload: () => false,\n showUploadList: false,\n accept: \".csv\",\n },\n buttonProps: {\n type: \"default\",\n loading: isLoading,\n },\n mutationResult,\n isLoading,\n };\n};\n","import { Children, createElement, Fragment } from \"react\";\nimport { ListProps, FormProps, Form, Grid } from \"antd\";\n\nimport {\n BaseRecord,\n CrudFilters,\n 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/ui-frameworks/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 } = useTableCore({\n resource,\n initialSorter,\n permanentSorter,\n initialFilter,\n permanentFilter,\n filters: filtersFromProp,\n sorters: sortersFromProp,\n defaultSetFilterBehavior,\n initialCurrent,\n initialPageSize,\n queryOptions,\n successNotification,\n errorNotification,\n liveMode: liveModeFromProp,\n onLiveEvent,\n liveParams,\n meta: pickNotDeprecated(meta, metaData),\n metaData: pickNotDeprecated(meta, metaData),\n syncWithLocation,\n dataProviderName,\n pagination,\n hasPagination,\n });\n\n const hasPaginationString = hasPagination === false ? \"off\" : \"server\";\n const isPaginationEnabled =\n (pagination?.mode ?? hasPaginationString) !== \"off\";\n\n const breakpoint = Grid.useBreakpoint();\n\n const liveMode = useLiveMode(liveModeFromProp);\n\n const [form] = Form.useForm<TSearchVariables>();\n\n const { data, isFetched, isLoading } = queryResult;\n\n const onChange = (page: number, pageSize?: number): void => {\n if (isPaginationEnabled) {\n setCurrent(page);\n setPageSize(pageSize || 10);\n }\n };\n\n const onFinish = async (values: TSearchVariables) => {\n if (onSearch) {\n const searchFilters = await onSearch(values);\n if (isPaginationEnabled) {\n setCurrent?.(1);\n }\n return setFilters(searchFilters);\n }\n };\n\n const antdPagination = (): false | PaginationConfig => {\n if (isPaginationEnabled) {\n return {\n itemRender: (page, type, element) => {\n const link = createLinkForSyncWithLocation({\n pagination: {\n pageSize,\n current: page,\n },\n sorters,\n filters,\n });\n\n if (type === \"page\") {\n return createElement(PaginationLink, {\n to: link,\n element: `${page}`,\n });\n }\n if (type === \"next\" || type === \"prev\") {\n return createElement(PaginationLink, {\n to: link,\n element: element,\n });\n }\n\n if (type === \"jump-next\" || type === \"jump-prev\") {\n const elementChildren = (element as React.ReactElement)\n ?.props?.children;\n\n return createElement(PaginationLink, {\n to: link,\n element:\n Children.count(elementChildren) > 1\n ? createElement(\n Fragment,\n {},\n elementChildren,\n )\n : elementChildren,\n });\n }\n\n return element;\n },\n pageSize,\n current,\n simple: !breakpoint.sm,\n total: data?.total,\n onChange,\n };\n }\n\n return false;\n };\n\n return {\n searchFormProps: {\n form,\n onFinish,\n },\n listProps: {\n dataSource: data?.data,\n loading: liveMode === \"auto\" ? isLoading : !isFetched,\n pagination: antdPagination(),\n },\n queryResult,\n filters,\n setFilters,\n sorter,\n setSorter,\n sorters,\n setSorters,\n current,\n setCurrent,\n pageSize,\n setPageSize,\n pageCount,\n createLinkForSyncWithLocation,\n };\n};\n","import { useCallback, useMemo, useState } from \"react\";\nimport { UploadChangeParam } from \"antd/lib/upload\";\n\nexport type UseFileUploadStateType = () => {\n isLoading: boolean;\n onChange: (info: UploadChangeParam) => void;\n};\n\nexport const useFileUploadState: UseFileUploadStateType = () => {\n const [isLoading, setIsloading] = useState(false);\n\n const onChange = useCallback((info: UploadChangeParam) => {\n const fileListLoadings = mapStatusToLoading(info.fileList);\n\n if (fileListLoadings.includes(true)) {\n setIsloading(true);\n } else {\n setIsloading(false);\n }\n }, []);\n\n return useMemo(() => ({ isLoading, onChange }), [isLoading]);\n};\n\nconst mapStatusToLoading = (files: UploadChangeParam[\"fileList\"]) => {\n return files.map((file) => {\n switch (file.status) {\n case \"uploading\":\n return true;\n default:\n return false;\n }\n });\n};\n","import { ModalProps } from \"antd\";\nimport {\n useModal as useCoreModal,\n useModalReturnType as useCoreModelReturnType,\n} from \"@refinedev/core\";\n\nexport type useModalReturnType = {\n modalProps: ModalProps;\n} & Omit<useCoreModelReturnType, \"visible\">;\n\nexport type useModalProps = {\n /**\n * Default props for Ant Design {@link https://ant.design/components/modal/ `<Modal>`} component.\n */\n modalProps?: ModalProps;\n};\n\n/**\n * By using `useModal` you get props for your records from API in accordance with Ant Design {@link https://ant.design/components/modal/ `<Modal>`} component.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/hooks/ui/useModal} for more details.\n */\nexport const useModal = ({\n modalProps = {},\n}: useModalProps = {}): useModalReturnType => {\n const { show, close, visible } = useCoreModal({\n defaultVisible: modalProps.open,\n });\n\n return {\n modalProps: {\n ...modalProps,\n onCancel: (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => {\n modalProps.onCancel?.(e);\n close();\n },\n open: visible,\n visible,\n },\n show,\n close,\n };\n};\n","import { useContext } from \"react\";\n\nimport { ThemedLayoutContext } from \"@contexts\";\nimport { IThemedLayoutContext } from \"@contexts/themedLayoutContext/IThemedLayoutContext\";\n\nexport type UseSiderVisibleType = IThemedLayoutContext;\n\nexport const useSiderVisible = (): UseSiderVisibleType => {\n const {\n siderVisible,\n setSiderVisible,\n drawerSiderVisible,\n setDrawerSiderVisible,\n } = useContext(ThemedLayoutContext);\n\n return {\n siderVisible,\n setSiderVisible,\n drawerSiderVisible,\n setDrawerSiderVisible,\n };\n};\n","import React, { ReactNode, useState } from \"react\";\n\nimport { IThemedLayoutContext } from \"./IThemedLayoutContext\";\n\nexport const ThemedLayoutContext = React.createContext<IThemedLayoutContext>({\n siderVisible: false,\n drawerSiderVisible: false,\n});\n\nexport const ThemedLayoutContextProvider: React.FC<{\n children: ReactNode;\n initialSiderCollapsed?: boolean;\n}> = ({ children, initialSiderCollapsed }) => {\n const [siderVisible, setSiderVisible] = useState(false);\n const [drawerSiderVisible, setDrawerSiderVisible] = useState(\n initialSiderCollapsed ?? false,\n );\n\n return (\n <ThemedLayoutContext.Provider\n value={{\n siderVisible,\n drawerSiderVisible,\n setSiderVisible,\n setDrawerSiderVisible,\n }}\n >\n {children}\n </ThemedLayoutContext.Provider>\n );\n};\n","import React from \"react\";\nimport { NotificationProvider } from \"@refinedev/core\";\nimport { notification } from \"antd\";\n\nimport { UndoableNotification } from \"@components/undoableNotification\";\n\nexport const notificationProvider: NotificationProvider = {\n open: ({\n key,\n message,\n description,\n type,\n cancelMutation,\n undoableTimeout,\n }) => {\n if (type === \"progress\") {\n notification.open({\n key,\n description: (\n <UndoableNotification\n notificationKey={key}\n message={message}\n cancelMutation={cancelMutation}\n undoableTimeout={undoableTimeout}\n />\n ),\n message: null,\n duration: 0,\n closeIcon: <></>,\n });\n } else {\n notification.open({\n key,\n description: message,\n message: description ?? null,\n type,\n });\n }\n },\n close: (key) => notification.destroy(key),\n};\n","import React from \"react\";\nimport { Button, notification, Progress } from \"antd\";\nimport { OpenNotificationParams } from \"@refinedev/core\";\nimport { UndoOutlined } from \"@ant-design/icons\";\n\nexport type UndoableNotificationProps = {\n notificationKey: OpenNotificationParams[\"key\"];\n message: OpenNotificationParams[\"message\"];\n cancelMutation: OpenNotificationParams[\"cancelMutation\"];\n undoableTimeout: OpenNotificationParams[\"undoableTimeout\"];\n};\n\nexport const UndoableNotification: React.FC<UndoableNotificationProps> = ({\n notificationKey,\n message,\n cancelMutation,\n undoableTimeout,\n}) => (\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n marginTop: \"-7px\",\n }}\n >\n <Progress\n type=\"circle\"\n percent={(undoableTimeout ?? 0) * 20}\n format={(time) => time && time / 20}\n width={50}\n strokeColor=\"#1890ff\"\n status=\"normal\"\n />\n <span style={{ marginLeft: 8, width: \"100%\" }}>{message}</span>\n <Button\n style={{ flexShrink: 0 }}\n onClick={() => {\n cancelMutation?.();\n notification.destroy(notificationKey ?? \"\");\n }}\n disabled={undoableTimeout === 0}\n icon={<UndoOutlined />}\n ></Button>\n </div>\n);\n","import React from \"react\";\nimport { Grid, Layout as AntdLayout } from \"antd\";\n\nimport { Sider as DefaultSider } from \"./sider\";\nimport { Header as DefaultHeader } from \"./header\";\nimport { RefineLayoutLayoutProps } from \"./types\";\n\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\nconst { SubMenu } = Menu;\n\nexport const Sider: React.FC<RefineLayoutSiderProps> = ({\n Title: TitleFromProps,\n render,\n meta,\n}) => {\n const [collapsed, setCollapsed] = useState<boolean>(false);\n const [drawerOpen, setDrawerOpen] = useState<boolean>(false);\n const isExistAuthentication = useIsExistAuthentication();\n const routerType = useRouterType();\n const NewLink = useLink();\n const { 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 <SubMenu\n key={item.key}\n icon={icon ?? <UnorderedListOutlined />}\n title={label}\n >\n {renderTreeView(children, selectedKey)}\n </SubMenu>\n </CanAccess>\n );\n }\n const isSelected = key === selectedKey;\n const isRoute = !(\n pickNotDeprecated(meta?.parent, options?.parent, parentName) !==\n undefined && children.length === 0\n );\n return (\n <CanAccess\n key={item.key}\n resource={name.toLowerCase()}\n action=\"list\"\n params={{\n resource: item,\n }}\n >\n <Menu.Item\n key={item.key}\n style={{\n fontWeight: isSelected ? \"bold\" : \"normal\",\n }}\n icon={icon ?? (isRoute && <UnorderedListOutlined />)}\n >\n <Link to={route ?? \"\"}>{label}</Link>\n {!collapsed && isSelected && (\n <div className=\"ant-menu-tree-arrow\" />\n )}\n </Menu.Item>\n </CanAccess>\n );\n });\n };\n\n const 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\";\nconst { Text } = Typography;\n\nexport const Header: React.FC<RefineLayoutHeaderProps> = () => {\n const authProvider = useActiveAuthProvider();\n const { data: user } = useGetIdentity({\n v3LegacyAuthProviderCompatible: Boolean(authProvider?.isLegacy),\n });\n\n const shouldRenderHeader = user && (user.name || user.avatar);\n\n return shouldRenderHeader ? (\n <AntdLayout.Header\n style={{\n display: \"flex\",\n justifyContent: \"flex-end\",\n alignItems: \"center\",\n padding: \"0px 24px\",\n height: \"64px\",\n }}\n >\n <Space style={{ marginLeft: \"8px\" }}>\n {user?.name && (\n <Text style={{ color: \"white\" }} strong>\n {user.name}\n </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\nconst { SubMenu } = Menu;\nconst { useToken } = theme;\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 } = 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 <SubMenu\n key={item.key}\n icon={icon ?? <UnorderedListOutlined />}\n title={label}\n >\n {renderTreeView(children, selectedKey)}\n </SubMenu>\n </CanAccess>\n );\n }\n const isSelected = key === selectedKey;\n const isRoute = !(\n pickNotDeprecated(meta?.parent, options?.parent, parentName) !==\n undefined && children.length === 0\n );\n\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\nconst { Text } = Typography;\nconst { useToken } = theme;\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 } = 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 && <Text strong>{user.name}</Text>}\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 { useToken } = theme;\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 d=\"M12 9C13.6569 9 15 7.65685 15 6C15 4.34315 13.6569 3 12 3C10.3431 3 9 4.34315 9 6C9 7.65685 10.3431 9 12 9Z\"\n fill=\"currentColor\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M24 12C24 18.6274 18.6274 24 12 24C5.37258 24 0 18.6274 0 12C0 5.37258 5.37258 0 12 0C18.6274 0 24 5.37258 24 12ZM8 6C8 3.79086 9.79086 2 12 2C14.2091 2 16 3.79086 16 6V18C16 20.2091 14.2091 22 12 22C9.79086 22 8 20.2091 8 18V6Z\"\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 } = 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 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\n return (\n <ThemedLayoutContextProvider\n initialSiderCollapsed={initialSiderCollapsed}\n >\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 </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 { useSiderVisible } from \"@hooks\";\n\nconst { SubMenu } = Menu;\nconst { useToken } = theme;\n\nexport const ThemedSiderV2: React.FC<RefineThemedLayoutV2SiderProps> = ({\n Title: TitleFromProps,\n render,\n meta,\n}) => {\n const { token } = useToken();\n const {\n siderVisible,\n setSiderVisible,\n drawerSiderVisible,\n setDrawerSiderVisible,\n } = useSiderVisible();\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 <SubMenu\n key={item.key}\n icon={icon ?? <UnorderedListOutlined />}\n title={label}\n >\n {renderTreeView(children, selectedKey)}\n </SubMenu>\n </CanAccess>\n );\n }\n const isSelected = key === selectedKey;\n const isRoute = !(\n pickNotDeprecated(meta?.parent, options?.parent, parentName) !==\n undefined && children.length === 0\n );\n\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 {!drawerSiderVisible && 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 {!drawerSiderVisible && 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: drawerSiderVisible,\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 setSiderVisible?.(false);\n if (!breakpoint.lg) {\n setDrawerSiderVisible?.(true);\n }\n }}\n >\n {renderSider()}\n </Menu>\n </>\n );\n };\n\n const renderDrawerSider = () => {\n return (\n <>\n <Drawer\n open={siderVisible}\n onClose={() => setSiderVisible?.(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={() => setSiderVisible?.(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={drawerSiderVisible}\n onCollapse={(collapsed, type) => {\n if (type === \"clickTrigger\") {\n setDrawerSiderVisible?.(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 {drawerSiderVisible ? (\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: drawerSiderVisible ? \"80px\" : \"200px\",\n padding: drawerSiderVisible ? \"0\" : \"0 16px\",\n display: \"flex\",\n justifyContent: drawerSiderVisible\n ? \"center\"\n : \"flex-start\",\n alignItems: \"center\",\n height: \"64px\",\n backgroundColor: token.colorBgElevated,\n fontSize: \"14px\",\n }}\n >\n <RenderToTitle collapsed={drawerSiderVisible} />\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 { RefineThemedLayoutV2HeaderProps } from \"../types\";\n\nconst { Text } = Typography;\nconst { useToken } = theme;\n\nexport const ThemedHeaderV2: React.FC<RefineThemedLayoutV2HeaderProps> = ({\n isSticky,\n}) => {\n const { token } = 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 (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 && <Text strong>{user.name}</Text>}\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 { useToken } = theme;\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 d=\"M12 9C13.6569 9 15 7.65685 15 6C15 4.34315 13.6569 3 12 3C10.3431 3 9 4.34315 9 6C9 7.65685 10.3431 9 12 9Z\"\n fill=\"currentColor\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M24 12C24 18.6274 18.6274 24 12 24C5.37258 24 0 18.6274 0 12C0 5.37258 5.37258 0 12 0C18.6274 0 24 5.37258 24 12ZM8 6C8 3.79086 9.79086 2 12 2C14.2091 2 16 3.79086 16 6V18C16 20.2091 14.2091 22 12 22C9.79086 22 8 20.2091 8 18V6Z\"\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 } = 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 from \"react\";\nimport { Button } from \"antd\";\nimport { PlusSquareOutlined } from \"@ant-design/icons\";\nimport {\n useNavigation,\n useTranslate,\n useCan,\n useResource,\n useRouterContext,\n useRouterType,\n useLink,\n} from \"@refinedev/core\";\nimport { RefineButtonTestIds } from \"@refinedev/ui-types\";\n\nimport { CreateButtonProps } from \"../types\";\n\n/**\n * <CreateButton> uses Ant Design's {@link https://ant.design/components/button/ `<Button> component`}.\n * It uses the {@link https://refine.dev/docs/core/hooks/navigation/useNavigation#create `create`} method from {@link https://refine.dev/docs/core/hooks/navigation/useNavigation `useNavigation`} under the hood.\n * It can be useful to redirect the app to the create page route of resource}.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/buttons/create-button} for more details.\n */\nexport const CreateButton: React.FC<CreateButtonProps> = ({\n resource: resourceNameFromProps,\n resourceNameOrRouteName: propResourceNameOrRouteName,\n hideText = false,\n accessControl,\n meta,\n children,\n onClick,\n ...rest\n}) => {\n const accessControlEnabled = accessControl?.enabled ?? true;\n const hideIfUnauthorized = accessControl?.hideIfUnauthorized ?? false;\n const translate = useTranslate();\n const routerType = useRouterType();\n const Link = useLink();\n const { Link: LegacyLink } = useRouterContext();\n\n const ActiveLink = routerType === \"legacy\" ? LegacyLink : Link;\n\n const { createUrl: generateCreateUrl } = useNavigation();\n\n const { resource } = useResource(\n resourceNameFromProps ?? propResourceNameOrRouteName,\n );\n\n const { data } = useCan({\n resource: resource?.name,\n action: \"create\",\n queryOptions: {\n enabled: accessControlEnabled,\n },\n params: {\n resource,\n },\n });\n\n const createButtonDisabledTitle = () => {\n if (data?.can) return \"\";\n else if (data?.reason) return data.reason;\n else\n return translate(\n \"buttons.notAccessTitle\",\n \"You don't have permission to access\",\n );\n };\n\n const createUrl = resource ? generateCreateUrl(resource, meta) : \"\";\n\n if (accessControlEnabled && hideIfUnauthorized && !data?.can) {\n return null;\n }\n\n return (\n <ActiveLink\n to={createUrl}\n replace={false}\n onClick={(e: React.PointerEvent<HTMLButtonElement>) => {\n if (data?.can === false) {\n e.preventDefault();\n return;\n }\n if (onClick) {\n e.preventDefault();\n onClick(e);\n }\n }}\n >\n <Button\n icon={<PlusSquareOutlined />}\n disabled={data?.can === false}\n title={createButtonDisabledTitle()}\n data-testid={RefineButtonTestIds.CreateButton}\n type=\"primary\"\n {...rest}\n >\n {!hideText &&\n (children ?? translate(\"buttons.create\", \"Create\"))}\n </Button>\n </ActiveLink>\n );\n};\n","import React from \"react\";\nimport { Button } from \"antd\";\nimport { EditOutlined } from \"@ant-design/icons\";\nimport {\n useCan,\n useNavigation,\n useTranslate,\n useResource,\n useRouterContext,\n useRouterType,\n useLink,\n} from \"@refinedev/core\";\nimport { RefineButtonTestIds } from \"@refinedev/ui-types\";\n\nimport { EditButtonProps } from \"../types\";\n\n/**\n * `<EditButton>` uses Ant Design's {@link https://ant.design/components/button/ `<Button>`} component.\n * It uses the {@link https://refine.dev/docs/core/hooks/navigation/useNavigation#edit `edit`} method from {@link https://refine.dev/docs/core/hooks/navigation/useNavigation `useNavigation`} under the hood.\n * It can be useful when redirecting the app to the edit page with the record id route of resource}.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/buttons/edit-button} for more details.\n */\nexport const EditButton: React.FC<EditButtonProps> = ({\n resource: resourceNameFromProps,\n resourceNameOrRouteName: propResourceNameOrRouteName,\n recordItemId,\n hideText = false,\n accessControl,\n meta,\n children,\n onClick,\n ...rest\n}) => {\n const accessControlEnabled = accessControl?.enabled ?? true;\n const hideIfUnauthorized = accessControl?.hideIfUnauthorized ?? false;\n const translate = useTranslate();\n\n const routerType = useRouterType();\n const Link = useLink();\n const { Link: LegacyLink } = useRouterContext();\n\n const ActiveLink = routerType === \"legacy\" ? LegacyLink : Link;\n\n const { editUrl: generateEditUrl } = useNavigation();\n\n const { id, resource } = useResource(\n resourceNameFromProps ?? propResourceNameOrRouteName,\n );\n\n const { data } = useCan({\n resource: resource?.name,\n action: \"edit\",\n params: { id: recordItemId ?? id, resource },\n queryOptions: {\n enabled: accessControlEnabled,\n },\n });\n\n const createButtonDisabledTitle = () => {\n if (data?.can) return \"\";\n else if (data?.reason) return data.reason;\n else\n return translate(\n \"buttons.notAccessTitle\",\n \"You don't have permission to access\",\n );\n };\n\n const editUrl =\n resource && (recordItemId ?? id)\n ? generateEditUrl(resource, recordItemId! ?? id!, meta)\n : \"\";\n\n if (accessControlEnabled && hideIfUnauthorized && !data?.can) {\n return null;\n }\n\n return (\n <ActiveLink\n to={editUrl}\n replace={false}\n onClick={(e: React.PointerEvent<HTMLButtonElement>) => {\n if (data?.can === false) {\n e.preventDefault();\n return;\n }\n if (onClick) {\n e.preventDefault();\n onClick(e);\n }\n }}\n >\n <Button\n icon={<EditOutlined />}\n disabled={data?.can === false}\n title={createButtonDisabledTitle()}\n data-testid={RefineButtonTestIds.EditButton}\n {...rest}\n >\n {!hideText && (children ?? translate(\"buttons.edit\", \"Edit\"))}\n </Button>\n </ActiveLink>\n );\n};\n","import React from \"react\";\nimport { Button, Popconfirm } from \"antd\";\nimport { DeleteOutlined } from \"@ant-design/icons\";\nimport {\n useDelete,\n useTranslate,\n useMutationMode,\n useCan,\n useResource,\n pickNotDeprecated,\n useWarnAboutChange,\n} from \"@refinedev/core\";\nimport { RefineButtonTestIds } from \"@refinedev/ui-types\";\n\nimport { DeleteButtonProps } from \"../types\";\n\n/**\n * `<DeleteButton>` uses Ant Design's {@link https://ant.design/components/button/ `<Button>`} and {@link https://ant.design/components/button/ `<Popconfirm>`} components.\n * When you try to delete something, a pop-up shows up and asks for confirmation. When confirmed it executes the `useDelete` method provided by your `dataProvider`.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/buttons/delete-button} for more details.\n */\nexport const DeleteButton: React.FC<DeleteButtonProps> = ({\n resource: resourceNameFromProps,\n resourceNameOrRouteName: propResourceNameOrRouteName,\n recordItemId,\n onSuccess,\n mutationMode: mutationModeProp,\n children,\n successNotification,\n errorNotification,\n hideText = false,\n accessControl,\n metaData,\n meta,\n dataProviderName,\n confirmTitle,\n confirmOkText,\n confirmCancelText,\n invalidates,\n ...rest\n}) => {\n const accessControlEnabled = accessControl?.enabled ?? true;\n const hideIfUnauthorized = accessControl?.hideIfUnauthorized ?? false;\n const translate = useTranslate();\n\n const { id, resource } = useResource(\n resourceNameFromProps ?? propResourceNameOrRouteName,\n );\n\n const { mutationMode: mutationModeContext } = useMutationMode();\n\n const mutationMode = mutationModeProp ?? mutationModeContext;\n\n const { mutate, isLoading, variables } = useDelete();\n\n const { data } = useCan({\n resource: resource?.name,\n action: \"delete\",\n params: { id: recordItemId ?? id, resource },\n queryOptions: {\n enabled: accessControlEnabled,\n },\n });\n\n 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) && resource?.name) {\n setWarnWhen(false);\n mutate(\n {\n id: recordItemId ?? id ?? \"\",\n resource: resource?.name,\n mutationMode,\n successNotification,\n errorNotification,\n meta: pickNotDeprecated(meta, metaData),\n metaData: pickNotDeprecated(meta, metaData),\n dataProviderName,\n invalidates,\n },\n {\n onSuccess: (value) => {\n onSuccess && onSuccess(value);\n },\n },\n );\n }\n }}\n disabled={\n typeof rest?.disabled !== \"undefined\"\n ? rest.disabled\n : data?.can === false\n }\n >\n <Button\n danger\n loading={(recordItemId ?? id) === variables?.id && isLoading}\n icon={<DeleteOutlined />}\n disabled={data?.can === false}\n data-testid={RefineButtonTestIds.DeleteButton}\n {...rest}\n >\n {!hideText &&\n (children ?? translate(\"buttons.delete\", \"Delete\"))}\n </Button>\n </Popconfirm>\n );\n};\n","import React from \"react\";\nimport { Button } from \"antd\";\nimport { RedoOutlined } from \"@ant-design/icons\";\nimport {\n useOne,\n useTranslate,\n useResource,\n pickNotDeprecated,\n} from \"@refinedev/core\";\nimport { RefineButtonTestIds } from \"@refinedev/ui-types\";\n\nimport { RefreshButtonProps } from \"../types\";\n\n/**\n * `<RefreshButton>` uses Ant Design's {@link https://ant.design/components/button/ `<Button>`} component\n * to update the data shown on the page via the {@link https://refine.dev/docs/core/hooks/data/useOne `useOne`} method provided by your dataProvider.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/buttons/refresh-button} for more details.\n */\nexport const RefreshButton: React.FC<RefreshButtonProps> = ({\n resource: resourceNameFromProps,\n resourceNameOrRouteName: propResourceNameOrRouteName,\n recordItemId,\n hideText = false,\n meta,\n metaData,\n dataProviderName,\n children,\n onClick,\n ...rest\n}) => {\n const translate = useTranslate();\n\n const { resource, id } = useResource(\n resourceNameFromProps ?? propResourceNameOrRouteName,\n );\n\n const { refetch, isFetching } = useOne({\n resource: resource?.name,\n id: recordItemId ?? id,\n queryOptions: {\n enabled: false,\n },\n meta: pickNotDeprecated(meta, metaData),\n metaData: pickNotDeprecated(meta, metaData),\n liveMode: \"off\",\n dataProviderName,\n });\n\n return (\n <Button\n // TODO: fix any type\n onClick={(e) => (onClick ? onClick(e as any) : refetch())}\n icon={<RedoOutlined spin={isFetching} />}\n data-testid={RefineButtonTestIds.RefreshButton}\n {...rest}\n >\n {!hideText && (children ?? translate(\"buttons.refresh\", \"Refresh\"))}\n </Button>\n );\n};\n","import React from \"react\";\nimport { Button } from \"antd\";\nimport { EyeOutlined } from \"@ant-design/icons\";\nimport {\n useCan,\n useNavigation,\n useTranslate,\n useResource,\n useRouterContext,\n useRouterType,\n useLink,\n} from \"@refinedev/core\";\nimport { RefineButtonTestIds } from \"@refinedev/ui-types\";\n\nimport { ShowButtonProps } from \"../types\";\n\n/**\n * `<ShowButton>` uses Ant Design's {@link https://ant.design/components/button/ `<Button>`} component.\n * It uses the {@link https://refine.dev/docs/core/hooks/navigation/useNavigation#show `show`} method from {@link https://refine.dev/docs/core/hooks/navigation/useNavigation `useNavigation`} under the hood.\n * It can be useful when redirecting the app to the show page with the record id route of resource.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/buttons/show-button} for more details.\n */\nexport const ShowButton: React.FC<ShowButtonProps> = ({\n resource: resourceNameFromProps,\n resourceNameOrRouteName: propResourceNameOrRouteName,\n recordItemId,\n hideText = false,\n accessControl,\n meta,\n children,\n onClick,\n ...rest\n}) => {\n const accessControlEnabled = accessControl?.enabled ?? true;\n const hideIfUnauthorized = accessControl?.hideIfUnauthorized ?? false;\n const { showUrl: generateShowUrl } = useNavigation();\n const routerType = useRouterType();\n const Link = useLink();\n const { Link: LegacyLink } = useRouterContext();\n\n const ActiveLink = routerType === \"legacy\" ? LegacyLink : Link;\n\n const translate = useTranslate();\n\n const { id, resource } = useResource(\n resourceNameFromProps ?? propResourceNameOrRouteName,\n );\n\n const { data } = useCan({\n resource: resource?.name,\n action: \"show\",\n params: { id: recordItemId ?? id, resource },\n queryOptions: {\n enabled: accessControlEnabled,\n },\n });\n\n const createButtonDisabledTitle = () => {\n if (data?.can) return \"\";\n else if (data?.reason) return data.reason;\n else\n return translate(\n \"buttons.notAccessTitle\",\n \"You don't have permission to access\",\n );\n };\n\n const showUrl =\n resource && (recordItemId || id)\n ? generateShowUrl(resource, recordItemId! ?? id!, meta)\n : \"\";\n\n if (accessControlEnabled && hideIfUnauthorized && !data?.can) {\n return null;\n }\n\n return (\n <ActiveLink\n to={showUrl}\n replace={false}\n onClick={(e: React.PointerEvent<HTMLButtonElement>) => {\n if (data?.can === false) {\n e.preventDefault();\n return;\n }\n if (onClick) {\n e.preventDefault();\n onClick(e);\n }\n }}\n >\n <Button\n icon={<EyeOutlined />}\n disabled={data?.can === false}\n title={createButtonDisabledTitle()}\n data-testid={RefineButtonTestIds.ShowButton}\n {...rest}\n >\n {!hideText && (children ?? translate(\"buttons.show\", \"Show\"))}\n </Button>\n </ActiveLink>\n );\n};\n","import React from \"react\";\nimport { Button } from \"antd\";\nimport { BarsOutlined } from \"@ant-design/icons\";\nimport {\n useCan,\n useNavigation,\n useTranslate,\n userFriendlyResourceName,\n useResource,\n useRouterContext,\n useRouterType,\n useLink,\n pickNotDeprecated,\n} from \"@refinedev/core\";\nimport { RefineButtonTestIds } from \"@refinedev/ui-types\";\n\nimport { ListButtonProps } from \"../types\";\n\n/**\n * `<ListButton>` is using Ant Design's {@link https://ant.design/components/button/ `<Button>`} component.\n * It uses the {@link https://refine.dev/docs/core/hooks/navigation/useNavigation#list `list`} method from {@link https://refine.dev/docs/core/hooks/navigation/useNavigation `useNavigation`} under the hood.\n * It can be useful when redirecting the app to the list page route of resource}.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/buttons/list-button} for more details.\n */\nexport const ListButton: React.FC<ListButtonProps> = ({\n resource: resourceNameFromProps,\n resourceNameOrRouteName: propResourceNameOrRouteName,\n hideText = false,\n accessControl,\n meta,\n children,\n onClick,\n ...rest\n}) => {\n const accessControlEnabled = accessControl?.enabled ?? true;\n const hideIfUnauthorized = accessControl?.hideIfUnauthorized ?? false;\n const { listUrl: generateListUrl } = useNavigation();\n const routerType = useRouterType();\n const Link = useLink();\n const { Link: LegacyLink } = useRouterContext();\n\n const ActiveLink = routerType === \"legacy\" ? LegacyLink : Link;\n\n const translate = useTranslate();\n\n const { resource } = useResource(\n resourceNameFromProps ?? propResourceNameOrRouteName,\n );\n\n const { data } = useCan({\n resource: resource?.name,\n action: \"list\",\n queryOptions: {\n enabled: accessControlEnabled,\n },\n params: {\n resource,\n },\n });\n\n const createButtonDisabledTitle = () => {\n if (data?.can) return \"\";\n else if (data?.reason) return data.reason;\n else\n return translate(\n \"buttons.notAccessTitle\",\n \"You don't have permission to access\",\n );\n };\n\n const listUrl = resource ? generateListUrl(resource, meta) : \"\";\n\n if (accessControlEnabled && hideIfUnauthorized && !data?.can) {\n return null;\n }\n\n return (\n <ActiveLink\n to={listUrl}\n replace={false}\n onClick={(e: React.PointerEvent<HTMLButtonElement>) => {\n if (data?.can === false) {\n e.preventDefault();\n return;\n }\n if (onClick) {\n e.preventDefault();\n onClick(e);\n }\n }}\n >\n <Button\n icon={<BarsOutlined />}\n disabled={data?.can === false}\n title={createButtonDisabledTitle()}\n data-testid={RefineButtonTestIds.ListButton}\n {...rest}\n >\n {!hideText &&\n (children ??\n translate(\n `${\n resource?.name ??\n resourceNameFromProps ??\n propResourceNameOrRouteName\n }.titles.list`,\n userFriendlyResourceName(\n resource?.meta?.label ??\n resource?.label ??\n resource?.name ??\n pickNotDeprecated(\n resourceNameFromProps,\n propResourceNameOrRouteName,\n ),\n \"plural\",\n ),\n ))}\n </Button>\n </ActiveLink>\n );\n};\n","import React from \"react\";\nimport { Button } from \"antd\";\nimport { ExportOutlined } from \"@ant-design/icons\";\nimport { useTranslate } from \"@refinedev/core\";\nimport { RefineButtonTestIds } from \"@refinedev/ui-types\";\n\nimport { ExportButtonProps } from \"../types\";\n\n/**\n * `<ExportButton>` is an Ant Design {@link https://ant.design/components/button/ `<Button>`} with a default export icon and a default text with \"Export\".\n * It only has presentational value.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/buttons/export-button} for more details.\n */\nexport const ExportButton: React.FC<ExportButtonProps> = ({\n hideText = false,\n children,\n ...rest\n}) => {\n const translate = useTranslate();\n\n return (\n <Button\n type=\"default\"\n icon={<ExportOutlined />}\n data-testid={RefineButtonTestIds.ExportButton}\n {...rest}\n >\n {!hideText && (children ?? translate(\"buttons.export\", \"Export\"))}\n </Button>\n );\n};\n","import React from \"react\";\nimport { Button } from \"antd\";\nimport { SaveOutlined } from \"@ant-design/icons\";\nimport { useTranslate } from \"@refinedev/core\";\nimport { RefineButtonTestIds } from \"@refinedev/ui-types\";\n\nimport { SaveButtonProps } from \"../types\";\n\n/**\n * `<SaveButton>` uses Ant Design's {@link https://ant.design/components/button/ `<Button>`} component.\n * It uses it for presantation purposes only. Some of the hooks that refine has adds features to this button.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/buttons/save-button} for more details.\n */\nexport const SaveButton: React.FC<SaveButtonProps> = ({\n hideText = false,\n children,\n ...rest\n}) => {\n const translate = useTranslate();\n\n return (\n <Button\n type=\"primary\"\n icon={<SaveOutlined />}\n data-testid={RefineButtonTestIds.SaveButton}\n {...rest}\n >\n {!hideText && (children ?? translate(\"buttons.save\", \"Save\"))}\n </Button>\n );\n};\n","import React from \"react\";\nimport { Button } from \"antd\";\nimport { PlusSquareOutlined } from \"@ant-design/icons\";\nimport {\n useCan,\n useNavigation,\n useTranslate,\n useResource,\n useRouterContext,\n useRouterType,\n useLink,\n} from \"@refinedev/core\";\nimport { RefineButtonTestIds } from \"@refinedev/ui-types\";\n\nimport { CloneButtonProps } from \"../types\";\n\n/**\n * `<CloneButton>` uses Ant Design's {@link https://ant.design/components/button/ `<Button> component`}.\n * It uses the {@link https://refine.dev/docs/core/hooks/navigation/useNavigation#clone `clone`} method from {@link https://refine.dev/docs/core/hooks/navigation/useNavigation useNavigation} under the hood.\n * It can be useful when redirecting the app to the create page with the record id route of resource.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/buttons/clone-button} for more details.\n */\nexport const CloneButton: React.FC<CloneButtonProps> = ({\n resourceNameOrRouteName: propResourceNameOrRouteName,\n resource: resourceNameFromProps,\n recordItemId,\n hideText = false,\n accessControl,\n meta,\n children,\n onClick,\n ...rest\n}) => {\n const accessControlEnabled = accessControl?.enabled ?? true;\n const hideIfUnauthorized = accessControl?.hideIfUnauthorized ?? false;\n const { cloneUrl: generateCloneUrl } = useNavigation();\n const routerType = useRouterType();\n const Link = useLink();\n const { Link: LegacyLink } = useRouterContext();\n\n const ActiveLink = routerType === \"legacy\" ? LegacyLink : Link;\n\n const translate = useTranslate();\n\n const { id, resource } = useResource(\n resourceNameFromProps ?? propResourceNameOrRouteName,\n );\n\n const { data } = useCan({\n resource: resource?.name,\n action: \"create\",\n params: { id: recordItemId ?? id, resource },\n queryOptions: {\n enabled: accessControlEnabled,\n },\n });\n\n const createButtonDisabledTitle = () => {\n if (data?.can) return \"\";\n else if (data?.reason) return data.reason;\n else\n return translate(\n \"buttons.notAccessTitle\",\n \"You don't have permission to access\",\n );\n };\n\n const cloneUrl =\n resource && (recordItemId || id)\n ? generateCloneUrl(resource, recordItemId! ?? id!, meta)\n : \"\";\n\n if (accessControlEnabled && hideIfUnauthorized && !data?.can) {\n return null;\n }\n\n return (\n <ActiveLink\n to={cloneUrl}\n replace={false}\n onClick={(e: React.PointerEvent<HTMLButtonElement>) => {\n if (data?.can === false) {\n e.preventDefault();\n return;\n }\n if (onClick) {\n e.preventDefault();\n onClick(e);\n }\n }}\n >\n <Button\n icon={<PlusSquareOutlined />}\n disabled={data?.can === false}\n title={createButtonDisabledTitle()}\n data-testid={RefineButtonTestIds.CloneButton}\n {...rest}\n >\n {!hideText && (children ?? translate(\"buttons.clone\", \"Clone\"))}\n </Button>\n </ActiveLink>\n );\n};\n","import React from \"react\";\nimport { Button, Upload } from \"antd\";\nimport { ImportOutlined } from \"@ant-design/icons\";\nimport { useTranslate } from \"@refinedev/core\";\nimport { RefineButtonTestIds } from \"@refinedev/ui-types\";\n\nimport { ImportButtonProps } from \"../types\";\n\n/**\n * `<ImportButton>` is compatible with the {@link https://refine.dev/docs/ui-frameworks/antd/hooks/import/useImport `useImport`} hook and is meant to be used as it's upload button.\n * It uses Ant Design's {@link https://ant.design/components/button/ `<Button>`} and {@link https://ant.design/components/upload/ `<Upload>`} components.\n * It wraps a `<Button>` component with an `<Upload>` component and accepts properties for `<Button>` and `<Upload>` components separately.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/buttons/import-button} for more details.\n */\nexport const ImportButton: React.FC<ImportButtonProps> = ({\n uploadProps,\n buttonProps,\n hideText = false,\n children,\n}) => {\n const translate = useTranslate();\n\n return (\n <Upload {...uploadProps}>\n <Button\n icon={<ImportOutlined />}\n data-testid={RefineButtonTestIds.ImportButton}\n {...buttonProps}\n >\n {!hideText &&\n (children ?? translate(\"buttons.import\", \"Import\"))}\n </Button>\n </Upload>\n );\n};\n","import React from \"react\";\nimport { Space } from \"antd\";\nimport {\n useTranslate,\n userFriendlyResourceName,\n useRefineContext,\n useRouterType,\n useResource,\n} from \"@refinedev/core\";\n\nimport { Breadcrumb, CreateButton, PageHeader } from \"@components\";\nimport { ListProps } from \"../types\";\n\n/**\n * `<List>` provides us a layout for displaying the page.\n * It does not contain any logic but adds extra functionalities like a refresh button.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/basic-views/list} for more details.\n */\nexport const List: React.FC<ListProps> = ({\n canCreate,\n title,\n children,\n createButtonProps,\n resource: resourceFromProps,\n wrapperProps,\n contentProps,\n headerProps,\n breadcrumb: breadcrumbFromProps,\n headerButtonProps,\n headerButtons,\n}) => {\n const translate = useTranslate();\n const { options: { breadcrumb: globalBreadcrumb } = {} } =\n useRefineContext();\n\n const routerType = useRouterType();\n\n const { resource } = useResource(resourceFromProps);\n\n const isCreateButtonVisible =\n canCreate ??\n ((resource?.canCreate ?? !!resource?.create) || createButtonProps);\n\n const breadcrumb =\n typeof breadcrumbFromProps === \"undefined\"\n ? globalBreadcrumb\n : breadcrumbFromProps;\n\n const defaultExtra = isCreateButtonVisible ? (\n <CreateButton\n size=\"middle\"\n resource={\n routerType === \"legacy\"\n ? resource?.route\n : resource?.identifier ?? resource?.name\n }\n {...createButtonProps}\n />\n ) : null;\n\n return (\n <div {...(wrapperProps ?? {})}>\n <PageHeader\n ghost={false}\n title={\n title ??\n translate(\n `${resource?.name}.titles.list`,\n userFriendlyResourceName(\n resource?.meta?.label ??\n resource?.options?.label ??\n resource?.label ??\n resource?.name,\n \"plural\",\n ),\n )\n }\n extra={\n headerButtons ? (\n <Space wrap {...headerButtonProps}>\n {typeof headerButtons === \"function\"\n ? headerButtons({\n defaultButtons: defaultExtra,\n })\n : headerButtons}\n </Space>\n ) : (\n defaultExtra\n )\n }\n breadcrumb={\n typeof breadcrumb !== \"undefined\" ? (\n <>{breadcrumb}</> ?? undefined\n ) : (\n <Breadcrumb />\n )\n }\n {...(headerProps ?? {})}\n >\n <div {...(contentProps ?? {})}>{children}</div>\n </PageHeader>\n </div>\n );\n};\n","import React from \"react\";\nimport { Card, Space, Spin } from \"antd\";\nimport {\n useNavigation,\n useTranslate,\n userFriendlyResourceName,\n useRefineContext,\n useRouterType,\n useResource,\n useBack,\n} from \"@refinedev/core\";\n\nimport { Breadcrumb, SaveButton, PageHeader } from \"@components\";\nimport { CreateProps } from \"../types\";\n\n/**\n * `<Create>` provides us a layout to display the page.\n * It does not contain any logic but adds extra functionalities like action buttons and giving titles to the page.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/basic-views/create} for more details.\n */\nexport const Create: React.FC<CreateProps> = ({\n title,\n saveButtonProps,\n children,\n resource: resourceFromProps,\n isLoading = false,\n breadcrumb: breadcrumbFromProps,\n wrapperProps,\n headerProps,\n contentProps,\n headerButtonProps,\n headerButtons,\n footerButtonProps,\n footerButtons,\n goBack: goBackFromProps,\n}) => {\n const translate = useTranslate();\n const { options: { breadcrumb: globalBreadcrumb } = {} } =\n useRefineContext();\n\n const routerType = useRouterType();\n const back = useBack();\n const { goBack } = useNavigation();\n\n const { resource, action } = useResource(resourceFromProps);\n\n const breadcrumb =\n typeof breadcrumbFromProps === \"undefined\"\n ? globalBreadcrumb\n : breadcrumbFromProps;\n\n const defaultFooterButtons = (\n <>\n <SaveButton\n {...(isLoading ? { disabled: true } : {})}\n {...saveButtonProps}\n htmlType=\"submit\"\n />\n </>\n );\n\n return (\n <div {...(wrapperProps ?? {})}>\n <PageHeader\n ghost={false}\n backIcon={goBackFromProps}\n onBack={\n action !== \"list\" || typeof action !== \"undefined\"\n ? routerType === \"legacy\"\n ? goBack\n : back\n : undefined\n }\n title={\n title ??\n translate(\n `${resource?.name}.titles.create`,\n `Create ${userFriendlyResourceName(\n resource?.meta?.label ??\n resource?.options?.label ??\n resource?.label ??\n resource?.name,\n \"singular\",\n )}`,\n )\n }\n breadcrumb={\n typeof breadcrumb !== \"undefined\" ? (\n <>{breadcrumb}</> ?? undefined\n ) : (\n <Breadcrumb />\n )\n }\n extra={\n <Space wrap {...(headerButtonProps ?? {})}>\n {headerButtons\n ? typeof headerButtons === \"function\"\n ? headerButtons({\n defaultButtons: null,\n })\n : headerButtons\n : null}\n </Space>\n }\n {...(headerProps ?? {})}\n >\n <Spin spinning={isLoading}>\n <Card\n bordered={false}\n actions={[\n <Space\n key=\"action-buttons\"\n style={{ float: \"right\", marginRight: 24 }}\n {...(footerButtonProps ?? {})}\n >\n {footerButtons\n ? typeof footerButtons === \"function\"\n ? footerButtons({\n defaultButtons:\n defaultFooterButtons,\n })\n : footerButtons\n : defaultFooterButtons}\n </Space>,\n ]}\n {...(contentProps ?? {})}\n >\n {children}\n </Card>\n </Spin>\n </PageHeader>\n </div>\n );\n};\n","import React from \"react\";\n\nimport { Card, Space, Spin } from \"antd\";\nimport {\n useMutationMode,\n useNavigation,\n useTranslate,\n userFriendlyResourceName,\n useRefineContext,\n useRouterType,\n useBack,\n useResource,\n useGo,\n useToPath,\n} from \"@refinedev/core\";\n\nimport {\n DeleteButton,\n RefreshButton,\n ListButton,\n SaveButton,\n Breadcrumb,\n PageHeader,\n} from \"@components\";\nimport { EditProps } from \"../types\";\n\n/**\n * `<Edit>` provides us a layout for displaying the page.\n * It does not contain any logic but adds extra functionalities like a refresh button.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/basic-views/edit} for more details.\n */\nexport const Edit: React.FC<EditProps> = ({\n title,\n saveButtonProps,\n mutationMode: mutationModeProp,\n recordItemId,\n children,\n deleteButtonProps,\n canDelete,\n resource: resourceFromProps,\n isLoading = false,\n dataProviderName,\n breadcrumb: breadcrumbFromProps,\n wrapperProps,\n headerProps,\n contentProps,\n headerButtonProps,\n headerButtons,\n footerButtonProps,\n footerButtons,\n goBack: goBackFromProps,\n}) => {\n const translate = useTranslate();\n const { options: { breadcrumb: globalBreadcrumb } = {} } =\n useRefineContext();\n const { mutationMode: mutationModeContext } = useMutationMode();\n const mutationMode = mutationModeProp ?? mutationModeContext;\n\n const routerType = useRouterType();\n const back = useBack();\n const go = useGo();\n const { goBack, list: legacyGoList } = useNavigation();\n\n const {\n resource,\n action,\n id: idFromParams,\n } = useResource(resourceFromProps);\n\n const goListPath = useToPath({\n resource,\n action: \"list\",\n });\n\n const id = recordItemId ?? idFromParams;\n\n const breadcrumb =\n typeof breadcrumbFromProps === \"undefined\"\n ? globalBreadcrumb\n : breadcrumbFromProps;\n\n const isDeleteButtonVisible =\n canDelete ??\n ((resource?.meta?.canDelete ?? resource?.canDelete) ||\n deleteButtonProps);\n\n const defaultHeaderButtons = (\n <>\n {!recordItemId && (\n <ListButton\n {...(isLoading ? { disabled: true } : {})}\n resource={\n routerType === \"legacy\"\n ? resource?.route\n : resource?.identifier ?? resource?.name\n }\n />\n )}\n <RefreshButton\n {...(isLoading ? { disabled: true } : {})}\n resource={\n routerType === \"legacy\"\n ? resource?.route\n : resource?.identifier ?? resource?.name\n }\n recordItemId={id}\n dataProviderName={dataProviderName}\n />\n </>\n );\n\n const defaultFooterButtons = (\n <>\n {isDeleteButtonVisible && (\n <DeleteButton\n {...(isLoading ? { disabled: true } : {})}\n resource={\n routerType === \"legacy\"\n ? resource?.route\n : resource?.identifier ?? resource?.name\n }\n mutationMode={mutationMode}\n onSuccess={() => {\n if (routerType === \"legacy\") {\n legacyGoList(\n resource?.route ?? resource?.name ?? \"\",\n );\n } else {\n go({ to: goListPath });\n }\n }}\n recordItemId={id}\n dataProviderName={dataProviderName}\n {...deleteButtonProps}\n />\n )}\n <SaveButton\n {...(isLoading ? { disabled: true } : {})}\n {...saveButtonProps}\n />\n </>\n );\n\n return (\n <div {...(wrapperProps ?? {})}>\n <PageHeader\n ghost={false}\n backIcon={goBackFromProps}\n onBack={\n action !== \"list\" && typeof action !== \"undefined\"\n ? routerType === \"legacy\"\n ? goBack\n : back\n : undefined\n }\n title={\n title ??\n translate(\n `${resource?.name}.titles.edit`,\n `Edit ${userFriendlyResourceName(\n resource?.meta?.label ??\n resource?.options?.label ??\n resource?.label ??\n resource?.name,\n \"singular\",\n )}`,\n )\n }\n extra={\n <Space wrap {...(headerButtonProps ?? {})}>\n {headerButtons\n ? typeof headerButtons === \"function\"\n ? headerButtons({\n defaultButtons: defaultHeaderButtons,\n })\n : headerButtons\n : defaultHeaderButtons}\n </Space>\n }\n breadcrumb={\n typeof breadcrumb !== \"undefined\" ? (\n <>{breadcrumb}</> ?? undefined\n ) : (\n <Breadcrumb />\n )\n }\n {...(headerProps ?? {})}\n >\n <Spin spinning={isLoading}>\n <Card\n bordered={false}\n actions={[\n <Space\n key=\"footer-buttons\"\n wrap\n style={{\n float: \"right\",\n marginRight: 24,\n }}\n {...(footerButtonProps ?? {})}\n >\n {footerButtons\n ? typeof footerButtons === \"function\"\n ? footerButtons({\n defaultButtons:\n defaultFooterButtons,\n })\n : footerButtons\n : defaultFooterButtons}\n </Space>,\n ]}\n {...(contentProps ?? {})}\n >\n {children}\n </Card>\n </Spin>\n </PageHeader>\n </div>\n );\n};\n","import React from \"react\";\nimport { Card, Space, Spin } from \"antd\";\nimport {\n useNavigation,\n useTranslate,\n userFriendlyResourceName,\n useRefineContext,\n useResource,\n useToPath,\n useRouterType,\n useBack,\n useGo,\n} from \"@refinedev/core\";\n\nimport {\n EditButton,\n DeleteButton,\n RefreshButton,\n ListButton,\n Breadcrumb,\n PageHeader,\n} from \"@components\";\nimport { ShowProps } from \"../types\";\n\n/**\n * `<Show>` provides us a layout for displaying the page.\n * It does not contain any logic but adds extra functionalities like a refresh button.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/basic-views/show} for more details.\n */\nexport const Show: React.FC<ShowProps> = ({\n title,\n canEdit,\n canDelete,\n isLoading = false,\n children,\n resource: resourceFromProps,\n recordItemId,\n dataProviderName,\n breadcrumb: breadcrumbFromProps,\n contentProps,\n headerProps,\n wrapperProps,\n headerButtons,\n footerButtons,\n footerButtonProps,\n headerButtonProps,\n goBack: goBackFromProps,\n}) => {\n const translate = useTranslate();\n const { options: { breadcrumb: globalBreadcrumb } = {} } =\n useRefineContext();\n\n const routerType = useRouterType();\n const back = useBack();\n const go = useGo();\n const { goBack, list: legacyGoList } = useNavigation();\n\n const {\n resource,\n action,\n id: idFromParams,\n } = useResource(resourceFromProps);\n\n const goListPath = useToPath({\n resource,\n action: \"list\",\n });\n\n const id = recordItemId ?? idFromParams;\n\n const breadcrumb =\n typeof breadcrumbFromProps === \"undefined\"\n ? globalBreadcrumb\n : breadcrumbFromProps;\n\n const isDeleteButtonVisible =\n canDelete ?? resource?.meta?.canDelete ?? resource?.canDelete;\n const isEditButtonVisible =\n canEdit ?? resource?.canEdit ?? !!resource?.edit;\n\n const defaultHeaderButtons = (\n <>\n {!recordItemId && (\n <ListButton\n resource={\n routerType === \"legacy\"\n ? resource?.route\n : resource?.identifier ?? resource?.name\n }\n />\n )}\n {isEditButtonVisible && (\n <EditButton\n {...(isLoading ? { disabled: true } : {})}\n type=\"primary\"\n resource={\n routerType === \"legacy\"\n ? resource?.route\n : resource?.identifier ?? resource?.name\n }\n recordItemId={id}\n />\n )}\n {isDeleteButtonVisible && (\n <DeleteButton\n {...(isLoading ? { disabled: true } : {})}\n resource={\n routerType === \"legacy\"\n ? resource?.route\n : resource?.identifier ?? resource?.name\n }\n recordItemId={id}\n onSuccess={() => {\n if (routerType === \"legacy\") {\n legacyGoList(\n resource?.route ?? resource?.name ?? \"\",\n );\n } else {\n go({ to: goListPath });\n }\n }}\n dataProviderName={dataProviderName}\n />\n )}\n <RefreshButton\n {...(isLoading ? { disabled: true } : {})}\n resource={\n routerType === \"legacy\"\n ? resource?.route\n : resource?.identifier ?? resource?.name\n }\n recordItemId={id}\n dataProviderName={dataProviderName}\n />\n </>\n );\n\n return (\n <div {...(wrapperProps ?? {})}>\n <PageHeader\n ghost={false}\n backIcon={goBackFromProps}\n onBack={\n action !== \"list\" && typeof action !== \"undefined\"\n ? routerType === \"legacy\"\n ? goBack\n : back\n : undefined\n }\n title={\n title ??\n translate(\n `${resource?.name}.titles.show`,\n `Show ${userFriendlyResourceName(\n resource?.meta?.label ??\n resource?.options?.label ??\n resource?.label ??\n resource?.name,\n \"singular\",\n )}`,\n )\n }\n extra={\n <Space\n key=\"extra-buttons\"\n wrap\n {...(headerButtonProps ?? {})}\n >\n {headerButtons\n ? typeof headerButtons === \"function\"\n ? headerButtons({\n defaultButtons: defaultHeaderButtons,\n })\n : headerButtons\n : defaultHeaderButtons}\n </Space>\n }\n breadcrumb={\n typeof breadcrumb !== \"undefined\" ? (\n <>{breadcrumb}</> ?? undefined\n ) : (\n <Breadcrumb />\n )\n }\n {...(headerProps ?? {})}\n >\n <Spin spinning={isLoading}>\n <Card\n bordered={false}\n actions={\n footerButtons\n ? [\n <Space\n key=\"footer-buttons\"\n wrap\n {...footerButtonProps}\n >\n {typeof footerButtons === \"function\"\n ? footerButtons({\n defaultButtons: null,\n })\n : footerButtons}\n </Space>,\n ]\n : undefined\n }\n {...(contentProps ?? {})}\n >\n {children}\n </Card>\n </Spin>\n </PageHeader>\n </div>\n );\n};\n","import React from \"react\";\nimport { Typography } from \"antd\";\n\nconst { Text } = Typography;\n\nimport { TextFieldProps } from \"../types\";\n\n/**\n * This field lets you show basic text. It uses Ant Design's {@link https://ant.design/components/typography/#Typography.Text `<Typography.Text>`} component.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/fields/text} for more details.\n */\nexport const TextField: React.FC<TextFieldProps> = ({ value, ...rest }) => {\n return <Text {...rest}>{value}</Text>;\n};\n","import React from \"react\";\nimport { Tag } from \"antd\";\n\nimport { TagFieldProps } from \"../types\";\n\n/**\n * This field lets you display a value in a tag. It uses Ant Design's {@link https://ant.design/components/tag/ `<Tag>`} component.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/fields/tag} for more details.\n */\nexport const TagField: React.FC<TagFieldProps> = ({ value, ...rest }) => {\n return <Tag {...rest}>{value?.toString()}</Tag>;\n};\n","import React from \"react\";\nimport { Typography } from \"antd\";\n\nconst { Link } = Typography;\n\nimport { EmailFieldProps } from \"../types\";\n\n/**\n * This field is used to display email values. It uses the {@link https://ant.design/components/typography/#FAQ `<Link>`} component\n * of {@link https://ant.design/components/typography `<Typography>`} from Ant Design.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/fields/email} for more details.\n */\nexport const EmailField: React.FC<EmailFieldProps> = ({ value, ...rest }) => {\n return (\n <Link href={`mailto:${value}`} {...rest}>\n {value}\n </Link>\n );\n};\n","import React from \"react\";\nimport { Image } from \"antd\";\n\nimport { ImageFieldProps } from \"../types\";\n\n/**\n * This field is used to display images and uses {@link https://ant.design/components/image/#header `<Image>`} from Ant Design.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/fields/image} for more details.\n */\nexport const ImageField: React.FC<ImageFieldProps> = ({\n value,\n imageTitle,\n ...rest\n}) => {\n return <Image {...rest} src={value} title={imageTitle} />;\n};\n","import React from \"react\";\nimport { Tooltip } from \"antd\";\n\nimport { CheckOutlined, CloseOutlined } from \"@ant-design/icons\";\n\nimport { BooleanFieldProps } from \"../types\";\n\n/**\n * This field is used to display boolean values. It uses the {@link https://ant.design/components/tooltip/#header `<Tooltip>`} values from Ant Design.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/fields/boolean} for more details.\n */\nexport const BooleanField: React.FC<BooleanFieldProps> = ({\n value,\n valueLabelTrue = \"true\",\n valueLabelFalse = \"false\",\n trueIcon = <CheckOutlined />,\n falseIcon = <CloseOutlined />,\n ...rest\n}) => {\n return (\n <Tooltip title={value ? valueLabelTrue : valueLabelFalse} {...rest}>\n {value ? <span>{trueIcon}</span> : <span>{falseIcon}</span>}\n </Tooltip>\n );\n};\n","import React from \"react\";\nimport dayjs from \"dayjs\";\nimport { Typography } from \"antd\";\n\nimport LocalizedFormat from \"dayjs/plugin/localizedFormat\";\n\ndayjs.extend(LocalizedFormat);\n\nconst defaultLocale = dayjs.locale();\n\nimport { DateFieldProps } from \"../types\";\n\n/**\n * This field is used to display dates. It uses {@link https://day.js.org/docs/en/display/format `Day.js`} to display date format.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/fields/date} for more details.\n */\nexport const DateField: React.FC<DateFieldProps> = ({\n value,\n locales,\n format: dateFormat = \"L\",\n ...rest\n}) => {\n const { Text } = Typography;\n\n return (\n <Text {...rest}>\n {dayjs(value)\n .locale(locales || defaultLocale)\n .format(dateFormat)}\n </Text>\n );\n};\n","import React from \"react\";\n\nimport { UrlField } from \"@components\";\nimport { FileFieldProps } from \"../types\";\n\n/**\n * This field is used to display files and uses {@link https://ant.design/components/typography `<Typography.Link>`} from Ant Design.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/fields/file} for more details.\n */\nexport const FileField: React.FC<FileFieldProps> = ({\n title,\n src,\n ...rest\n}) => {\n return (\n <UrlField value={src} title={title} {...rest}>\n {title ?? src}\n </UrlField>\n );\n};\n","import React from \"react\";\nimport { Typography } from \"antd\";\n\nconst { Link } = Typography;\n\nimport { UrlFieldProps } from \"../types\";\n\n/**\n * This field lets you embed a link. It uses Ant Design's {@link https://ant.design/components/typography/ `<Typography.Link>`} component.\n * You can pass a URL in its `value` property and you can show a text in its place by passing any `children`.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/fields/url} for more details.\n */\nexport const UrlField: React.FC<UrlFieldProps> = ({\n children,\n value,\n ...rest\n}) => {\n return (\n <Link href={value} {...rest}>\n {children ?? value}\n </Link>\n );\n};\n","import React from \"react\";\nimport { Typography } from \"antd\";\n\nconst { Text } = Typography;\n\nfunction toLocaleStringSupportsOptions() {\n return !!(\n typeof Intl == \"object\" &&\n Intl &&\n typeof Intl.NumberFormat == \"function\"\n );\n}\n\nimport { NumberFieldProps } from \"../types\";\n\n/**\n * This field is used to display a number formatted according to the browser locale, right aligned. and uses {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl `Intl`} to display date format.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/fields/number} for more details.\n */\nexport const NumberField: React.FC<NumberFieldProps> = ({\n value,\n locale,\n options,\n ...rest\n}) => {\n const number = Number(value);\n\n return (\n <Text {...rest}>\n {toLocaleStringSupportsOptions()\n ? number.toLocaleString(locale, options)\n : number}\n </Text>\n );\n};\n","import React from \"react\";\nimport ReactMarkdown from \"react-markdown\";\nimport gfm from \"remark-gfm\";\n\nimport { RefineFieldMarkdownProps } from \"../types\";\n\n/**\n * This field lets you display markdown content. It supports {@link https://github.github.com/gfm/ GitHub Flavored Markdown}.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/fields/markdown} for more details.\n */\nexport const MarkdownField: React.FC<RefineFieldMarkdownProps> = ({\n value = \"\",\n}) => {\n return <ReactMarkdown plugins={[gfm]}>{value}</ReactMarkdown>;\n};\n","import React, { ReactNode, useState } from \"react\";\nimport { Button, Space } from \"antd\";\nimport type { FilterDropdownProps as AntdFilterDropdownProps } from \"antd/lib/table/interface\";\nimport dayjs from \"dayjs\";\nimport { FilterOutlined } from \"@ant-design/icons\";\nimport { useTranslate } from \"@refinedev/core\";\n\nexport type FilterDropdownProps = AntdFilterDropdownProps & {\n mapValue?: (selectedKeys: React.Key[]) => any;\n children: ReactNode;\n};\n\n/**\n * `<FilterDropdown>` is a helper component for {@link https://ant.design/components/table/#components-table-demo-custom-filter-panel filter dropdowns in Ant Design `<Table>` components.}\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/filter-dropdown} for more details.\n */\nexport const FilterDropdown: React.FC<FilterDropdownProps> = (props) => {\n const {\n setSelectedKeys,\n confirm,\n clearFilters,\n mapValue,\n selectedKeys,\n children,\n } = props;\n\n const [value, setValue] = useState<any[] | undefined>(selectedKeys);\n const translate = useTranslate();\n\n const clearFilter = () => {\n if (clearFilters) {\n setValue([]);\n clearFilters();\n }\n };\n\n const onFilter = () => {\n const _mappedValue = mappedValue(value);\n\n let keys;\n if (typeof _mappedValue === \"number\") {\n keys = `${_mappedValue}`;\n } else if (dayjs.isDayjs(_mappedValue)) {\n keys = [_mappedValue.toISOString()];\n } else {\n keys = _mappedValue;\n }\n\n setSelectedKeys(keys);\n\n confirm?.();\n };\n\n const mappedValue = (value: any) => (mapValue ? mapValue(value) : value);\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const onChange = (e: any) => {\n if (typeof e === \"object\") {\n if (Array.isArray(e)) {\n const _mappedValue = mappedValue(e);\n\n setValue(_mappedValue);\n return setSelectedKeys(_mappedValue);\n }\n\n const changeEvent =\n !e || !e.target || dayjs.isDayjs(e)\n ? { target: { value: e } }\n : e;\n\n const { target }: React.ChangeEvent<HTMLInputElement> = changeEvent;\n const _mappedValue = mappedValue(target.value);\n setValue(_mappedValue);\n return;\n }\n\n const _mappedValue = mappedValue(e);\n\n setValue(_mappedValue);\n };\n\n const childrenWithProps = React.Children.map(children, (child) => {\n if (React.isValidElement(child)) {\n return React.cloneElement(child, {\n onChange,\n value: mappedValue(value),\n });\n }\n return child;\n });\n return (\n <div\n style={{\n padding: 10,\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"flex-end\",\n }}\n >\n <div style={{ marginBottom: 15 }}>{childrenWithProps}</div>\n <Space>\n <Button type=\"primary\" size=\"small\" onClick={() => onFilter()}>\n <FilterOutlined /> {translate(\"buttons.filter\", \"Filter\")}\n </Button>\n <Button danger size=\"small\" onClick={() => clearFilter()}>\n {translate(\"buttons.clear\", \"Clear\")}\n </Button>\n </Space>\n </div>\n );\n};\n","import React, { useEffect, useState } from \"react\";\nimport { useGo, useResource, useRouterType } from \"@refinedev/core\";\nimport { RefineErrorPageProps } from \"@refinedev/ui-types\";\nimport { Button, Result, Typography, Space, Tooltip } from \"antd\";\nimport { InfoCircleOutlined } from \"@ant-design/icons\";\nimport { useNavigation, useTranslate } from \"@refinedev/core\";\n\nconst { Text } = Typography;\n\n/**\n * When the app is navigated to a non-existent route, refine shows a default error page.\n * A custom error component can be used for this error page.\n *\n * @see {@link https://refine.dev/docs/api-references/components/refine-config#catchall} for more details.\n */\nexport const ErrorComponent: React.FC<RefineErrorPageProps> = () => {\n const [errorMessage, setErrorMessage] = useState<string>();\n const translate = useTranslate();\n const { push } = useNavigation();\n const go = useGo();\n const routerType = useRouterType();\n\n const { resource, action } = useResource();\n\n useEffect(() => {\n if (resource) {\n if (action) {\n setErrorMessage(\n translate(\n \"pages.error.info\",\n {\n action: action,\n resource: resource?.name,\n },\n `You may have forgotten to add the \"${action}\" component to \"${resource?.name}\" resource.`,\n ),\n );\n }\n }\n }, [resource, action]);\n\n return (\n <Result\n status=\"404\"\n title=\"404\"\n extra={\n <Space direction=\"vertical\" size=\"large\">\n <Space>\n <Text>\n {translate(\n \"pages.error.404\",\n \"Sorry, the page you visited does not exist.\",\n )}\n </Text>\n {errorMessage && (\n <Tooltip title={errorMessage}>\n <InfoCircleOutlined data-testid=\"error-component-tooltip\" />\n </Tooltip>\n )}\n </Space>\n <Button\n type=\"primary\"\n onClick={() => {\n if (routerType === \"legacy\") {\n push(\"/\");\n } else {\n go({ to: \"/\" });\n }\n }}\n >\n {translate(\"pages.error.backHome\", \"Back Home\")}\n </Button>\n </Space>\n }\n />\n );\n};\n","import React from \"react\";\nimport { LoginPageProps, useActiveAuthProvider } from \"@refinedev/core\";\nimport {\n Row,\n Col,\n Layout,\n Card,\n Typography,\n Form,\n Input,\n Button,\n Checkbox,\n} from \"antd\";\nimport { useLogin, useTranslate } from \"@refinedev/core\";\n\nimport {\n layoutStyles,\n containerStyles,\n titleStyles,\n imageContainer,\n} from \"./styles\";\n\nconst { Text, Title } = Typography;\nexport interface ILoginForm {\n username: string;\n password: string;\n remember: boolean;\n}\n\n/**\n * @deprecated LoginPage is deprecated. Use AuthPage instead. @see {@link https://refine.dev/docs/api-reference/antd/components/antd-auth-page} for more details.\n * **refine** has a default login page form which is served on `/login` route when the `authProvider` configuration is provided.\n *\n * @see {@link https://refine.dev/docs/api-references/components/refine-config#loginpage} for more details.\n */\nexport const LoginPage: React.FC<LoginPageProps> = () => {\n const [form] = Form.useForm<ILoginForm>();\n const translate = useTranslate();\n\n const authProvider = useActiveAuthProvider();\n const { mutate: login, isLoading } = useLogin<ILoginForm>({\n v3LegacyAuthProviderCompatible: Boolean(authProvider?.isLegacy),\n });\n\n const CardTitle = (\n <Title level={3} style={titleStyles}>\n {translate(\"pages.login.title\", \"Sign in your account\")}\n </Title>\n );\n\n return (\n <Layout style={layoutStyles}>\n <Row\n justify=\"center\"\n align=\"middle\"\n style={{\n height: \"100vh\",\n }}\n >\n <Col xs={22}>\n <div style={containerStyles}>\n <div style={imageContainer}>\n <img\n src=\"https://refine.ams3.cdn.digitaloceanspaces.com/logo/refine.svg\"\n alt=\"Refine Logo\"\n />\n </div>\n <Card title={CardTitle} headStyle={{ borderBottom: 0 }}>\n <Form<ILoginForm>\n layout=\"vertical\"\n form={form}\n onFinish={(values) => {\n login(values);\n }}\n requiredMark={false}\n initialValues={{\n remember: false,\n }}\n >\n <Form.Item\n name=\"username\"\n label={translate(\n \"pages.login.username\",\n \"Username\",\n )}\n rules={[{ required: true }]}\n >\n <Input\n size=\"large\"\n placeholder={translate(\n \"pages.login.username\",\n \"Username\",\n )}\n />\n </Form.Item>\n <Form.Item\n name=\"password\"\n label={translate(\n \"pages.login.password\",\n \"Password\",\n )}\n rules={[{ required: true }]}\n style={{ marginBottom: \"12px\" }}\n >\n <Input\n type=\"password\"\n placeholder=\"●●●●●●●●\"\n size=\"large\"\n />\n </Form.Item>\n <div style={{ marginBottom: \"12px\" }}>\n <Form.Item\n name=\"remember\"\n valuePropName=\"checked\"\n noStyle\n >\n <Checkbox\n style={{\n fontSize: \"12px\",\n }}\n >\n {translate(\n \"pages.login.remember\",\n \"Remember me\",\n )}\n </Checkbox>\n </Form.Item>\n\n <a\n style={{\n float: \"right\",\n fontSize: \"12px\",\n }}\n href=\"#\"\n >\n {translate(\n \"pages.login.forgotPassword\",\n \"Forgot password?\",\n )}\n </a>\n </div>\n <Button\n type=\"primary\"\n size=\"large\"\n htmlType=\"submit\"\n loading={isLoading}\n block\n >\n {translate(\"pages.login.signin\", \"Sign in\")}\n </Button>\n </Form>\n <div style={{ marginTop: 8 }}>\n <Text style={{ fontSize: 12 }}>\n {translate(\n \"pages.login.noAccount\",\n \"Don’t have an account?\",\n )}{\" \"}\n <a href=\"#\" style={{ fontWeight: \"bold\" }}>\n {translate(\n \"pages.login.signup\",\n \"Sign up\",\n )}\n </a>\n </Text>\n </div>\n </Card>\n </div>\n </Col>\n </Row>\n </Layout>\n );\n};\n","import { CSSProperties } from \"react\";\n\nexport const layoutStyles: CSSProperties = {\n background: `radial-gradient(50% 50% at 50% 50%, #63386A 0%, #310438 100%)`,\n backgroundSize: \"cover\",\n};\n\nexport const containerStyles: CSSProperties = {\n maxWidth: \"408px\",\n margin: \"auto\",\n};\n\nexport const titleStyles: CSSProperties = {\n textAlign: \"center\",\n color: \"#626262\",\n fontSize: \"30px\",\n letterSpacing: \"-0.04em\",\n};\n\nexport const imageContainer: CSSProperties = {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n marginBottom: \"28px\",\n};\n","import * as React from \"react\";\nimport { RefineReadyPageProps } from \"@refinedev/ui-types\";\nimport { Row, Col, Typography, Space, Button } from \"antd\";\nimport { ReadOutlined, FolderOutlined, TeamOutlined } from \"@ant-design/icons\";\n\nconst styles: { [key: string]: React.CSSProperties } = {\n root: {\n height: \"100vh\",\n backgroundImage:\n \"url('https://refine.ams3.cdn.digitaloceanspaces.com/login-background/background.png')\",\n backgroundSize: \"cover\",\n backgroundColor: \"#331049\",\n },\n title: {\n color: \"white\",\n fontWeight: 800,\n fontSize: \"64px\",\n marginBottom: \"8px\",\n },\n p1: {\n color: \"white\",\n marginBottom: 0,\n fontSize: \"20px\",\n fontWeight: \"bold\",\n },\n p2: {\n color: \"white\",\n fontSize: \"20px\",\n },\n code: {\n backgroundColor: \"white\",\n color: \"#331049\",\n },\n};\n\nconst { Title } = Typography;\n\n/**\n * **refine** shows a default ready page on root route when no `resources` is passed to the `<Refine>` component as a property.\n *\n * @see {@link https://refine.dev/docs/api-references/components/refine-config#readypage} for more details.\n * @deprecated `ReadyPage` is deprecated and will be removed in the next major release.\n */\nexport const ReadyPage: React.FC<RefineReadyPageProps> = () => {\n return (\n <Row align=\"middle\" justify=\"center\" style={styles.root}>\n <Col style={{ textAlign: \"center\" }}>\n <img\n style={{ marginBottom: \"48px\" }}\n src=\"https://refine.ams3.cdn.digitaloceanspaces.com/logo/refine.svg\"\n alt=\"Refine Logo\"\n />\n <Title style={styles.title}>Welcome on board</Title>\n <p style={styles.p1}>Your configuration is completed.</p>\n <p style={styles.p2}>\n Now you can get started by adding your resources to the{\" \"}\n <code style={styles.code}>{`resources`}</code> property of{\" \"}\n <code style={styles.code}>{`<Refine>`}</code>\n </p>\n <Space\n size=\"large\"\n wrap\n style={{ marginTop: \"70px\", justifyContent: \"center\" }}\n >\n <a\n href=\"https://refine.dev\"\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n <Button size=\"large\" icon={<ReadOutlined />}>\n Documentation\n </Button>\n </a>\n <a\n href=\"https://refine.dev/examples\"\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n <Button size=\"large\" icon={<FolderOutlined />}>\n Examples\n </Button>\n </a>\n <a\n href=\"https://discord.gg/refine\"\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n <Button size=\"large\" icon={<TeamOutlined />}>\n Community\n </Button>\n </a>\n </Space>\n </Col>\n </Row>\n );\n};\n","import 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/ui-frameworks/antd/components/authpage/} for more details.\n */\nexport const AuthPage: React.FC<AuthProps> = (props) => {\n const { type } = props;\n const renderView = () => {\n switch (type) {\n case \"register\":\n return <RegisterPage {...props} />;\n case \"forgotPassword\":\n return <ForgotPasswordPage {...props} />;\n case \"updatePassword\":\n return <UpdatePasswordPage {...props} />;\n default:\n return <LoginPage {...props} />;\n }\n };\n\n return <>{renderView()}</>;\n};\n","import React from \"react\";\nimport {\n LoginPageProps,\n LoginFormTypes,\n useLink,\n useRouterType,\n useActiveAuthProvider,\n} from \"@refinedev/core\";\nimport {\n Row,\n Col,\n Layout,\n Card,\n Typography,\n Form,\n Input,\n Button,\n Checkbox,\n CardProps,\n LayoutProps,\n Divider,\n FormProps,\n 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 { ThemedTitle } from \"@components\";\n\nconst { Text, Title } = Typography;\nconst { useToken } = theme;\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}) => {\n const { token } = 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 ?? <ThemedTitle collapsed={false} />}\n </div>\n );\n\n const CardTitle = (\n <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 </Title>\n );\n\n const renderProviders = () => {\n if (providers && providers.length > 0) {\n return (\n <>\n {providers.map((provider) => {\n return (\n <Button\n key={provider.name}\n type=\"default\"\n block\n icon={provider.icon}\n style={{\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n width: \"100%\",\n marginBottom: \"8px\",\n }}\n onClick={() =>\n login({\n providerName: provider.name,\n })\n }\n >\n {provider.label}\n </Button>\n );\n })}\n <Divider>\n <Text\n style={{\n color: token.colorTextLabel,\n }}\n >\n {translate(\"pages.login.divider\", \"or\")}\n </Text>\n </Divider>\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 <Form<LoginFormTypes>\n layout=\"vertical\"\n form={form}\n onFinish={(values) => login(values)}\n requiredMark={false}\n initialValues={{\n remember: false,\n }}\n {...formProps}\n >\n <Form.Item\n name=\"email\"\n label={translate(\"pages.login.fields.email\", \"Email\")}\n rules={[\n { required: true },\n {\n type: \"email\",\n message: translate(\n \"pages.login.errors.validEmail\",\n \"Invalid email address\",\n ),\n },\n ]}\n >\n <Input\n size=\"large\"\n placeholder={translate(\n \"pages.login.fields.email\",\n \"Email\",\n )}\n />\n </Form.Item>\n <Form.Item\n name=\"password\"\n label={translate(\"pages.login.fields.password\", \"Password\")}\n rules={[{ required: true }]}\n >\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 {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 <Form.Item>\n <Button\n type=\"primary\"\n size=\"large\"\n htmlType=\"submit\"\n loading={isLoading}\n block\n >\n {translate(\"pages.login.signin\", \"Sign in\")}\n </Button>\n </Form.Item>\n </Form>\n <div style={{ marginTop: 8 }}>\n {registerLink ?? (\n <Text style={{ fontSize: 12 }}>\n {translate(\n \"pages.login.buttons.noAccount\",\n \"Don’t have an account?\",\n )}{\" \"}\n <ActiveLink\n to=\"/register\"\n style={{\n fontWeight: \"bold\",\n color: token.colorPrimaryTextHover,\n }}\n >\n {translate(\"pages.login.signup\", \"Sign up\")}\n </ActiveLink>\n </Text>\n )}\n </div>\n </Card>\n );\n\n return (\n <Layout style={layoutStyles} {...(wrapperProps ?? {})}>\n <Row\n justify=\"center\"\n align=\"middle\"\n style={{\n height: \"100vh\",\n }}\n >\n <Col xs={22}>\n {renderContent ? (\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 { ThemedTitle } from \"@components\";\n\nconst { Text, Title } = Typography;\nconst { useToken } = theme;\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}) => {\n const { token } = 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 ?? <ThemedTitle collapsed={false} />}\n </div>\n );\n\n const CardTitle = (\n <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 </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 <Divider>\n <Text\n style={{\n color: token.colorTextLabel,\n }}\n >\n {translate(\"pages.login.divider\", \"or\")}\n </Text>\n </Divider>\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 <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 <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 </Text>\n )}\n </div>\n\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 </Card>\n );\n\n return (\n <Layout style={layoutStyles} {...(wrapperProps ?? {})}>\n <Row\n justify=\"center\"\n align=\"middle\"\n style={{\n height: \"100vh\",\n }}\n >\n <Col xs={22}>\n {renderContent ? (\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 { ThemedTitle } from \"@components\";\n\ntype ResetPassworProps = ForgotPasswordPageProps<\n LayoutProps,\n CardProps,\n FormProps\n>;\n\nconst { Text, Title } = Typography;\nconst { useToken } = theme;\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 } = 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 ?? <ThemedTitle collapsed={false} />}\n </div>\n );\n\n const CardTitle = (\n <Title\n level={3}\n style={{\n color: token.colorPrimaryTextHover,\n ...titleStyles,\n }}\n >\n {translate(\"pages.forgotPassword.title\", \"Forgot your password?\")}\n </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 <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 </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 height: \"100vh\",\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 { ThemedTitle } from \"@components\";\n\nconst { Title } = Typography;\nconst { useToken } = theme;\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 } = 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 ?? <ThemedTitle collapsed={false} />}\n </div>\n );\n\n const CardTitle = (\n <Title\n level={3}\n style={{\n color: token.colorPrimaryTextHover,\n ...titleStyles,\n }}\n >\n {translate(\"pages.updatePassword.title\", \"Set New Password\")}\n </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 height: \"100vh\",\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 <>\n {!hideIcons && icon}\n {href ? (\n <ActiveLink to={href}>{label}</ActiveLink>\n ) : (\n <span>{label}</span>\n )}\n </>\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\";\n\nexport type PageHeaderProps = AntdPageHeaderProps;\n\nexport const PageHeader: FC<AntdPageHeaderProps> = ({ children, ...props }) => {\n const backIcon =\n typeof props.backIcon === \"undefined\" ? (\n <Button type=\"text\" icon={<ArrowLeftOutlined />} />\n ) : (\n props.backIcon\n );\n\n const title =\n typeof props.title === \"string\" ? (\n <Typography.Title level={4} style={{ marginBottom: 0 }}>\n {props.title}\n </Typography.Title>\n ) : (\n props.title\n );\n\n const subtitle =\n typeof props.title === \"string\" ? (\n <Typography.Title\n level={5}\n type=\"secondary\"\n style={{ marginBottom: 0 }}\n >\n {props.subTitle}\n </Typography.Title>\n ) : (\n props.subTitle\n );\n\n return (\n <AntdPageHeader\n {...props}\n backIcon={backIcon}\n title={title}\n subTitle={subtitle}\n style={{ padding: 0, ...props.style }}\n >\n {children}\n </AntdPageHeader>\n );\n};\n","import type { UploadFile, UploadChangeParam } from \"antd/lib/upload/interface\";\n\nexport const getValueFromEvent = (event: UploadChangeParam): UploadFile[] => {\n const { fileList } = event;\n\n return [...fileList];\n};\n\nexport function file2Base64(file: UploadFile): Promise<string> {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n\n const resultHandler = () => {\n if (reader.result) {\n reader.removeEventListener(\"load\", resultHandler, false);\n\n resolve(reader.result as string);\n }\n };\n\n reader.addEventListener(\"load\", resultHandler, false);\n\n reader.readAsDataURL(file.originFileObj as Blob);\n reader.onerror = (error) => {\n reader.removeEventListener(\"load\", resultHandler, false);\n return reject(error);\n };\n });\n}\n","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","useFormCore","useWarnAboutChange","pickNotDeprecated","useForm","action","resource","onMutationSuccessProp","onMutationError","submitOnEnter","warnWhenUnsavedChangesProp","redirect","successNotification","errorNotification","meta","metaData","liveMode","liveParams","mutationMode","dataProviderName","onLiveEvent","invalidates","undoableTimeout","queryOptions","createMutationOptions","updateMutationOptions","idFromProps","_a","_b","formAnt","formSF","form","useFormCoreResult","formLoading","onFinish","queryResult","id","warnWhenUnsavedChangesRefine","setWarnWhen","warnWhenUnsavedChanges","onKeyUp","event","onValuesChange","changeValues","saveButtonProps","values","error","React","useCallback","useModalFormSF","useTranslate","useWarnAboutChange","userFriendlyResourceName","useResource","useParsed","useGo","useModalForm","syncWithLocation","rest","_a","_b","_c","_d","_e","_f","_g","_h","initiallySynced","React","useFormProps","useForm","form","formProps","id","setId","formLoading","onFinish","resource","actionFromParams","useResource","parsed","useParsed","go","useGo","action","syncingId","syncWithLocationKey","translate","useTranslate","warnWhen","setWarnWhen","useWarnAboutChange","sunflowerUseModal","useModalFormSF","visible","show","modalFormProps","modalProps","openStatus","idFromParams","saveButtonPropsSF","handleClose","useCallback","handleShow","showId","_visible","otherModalProps","newModalProps","userFriendlyResourceName","React","useCallback","useTranslate","useWarnAboutChange","useResource","useParsed","useGo","useModal","useDrawerForm","syncWithLocation","defaultVisible","autoSubmitClose","autoResetForm","rest","_a","_b","_c","initiallySynced","React","visible","show","close","useModal","useFormProps","useForm","form","formProps","formLoading","id","setId","onFinish","resource","actionFromParams","useResource","parsed","useParsed","go","useGo","action","syncingId","syncWithLocationKey","_d","openStatus","idFromParams","translate","useTranslate","warnWhen","setWarnWhen","useWarnAboutChange","saveButtonProps","deleteButtonProps","handleClose","useCallback","handleShow","showId","useStepsFormSF","useStepsForm","props","useFormProps","useForm","form","formProps","stepsPropsSunflower","useStepsFormSF","values","_a","Children","createElement","Fragment","Grid","Form","useFormSF","useLiveMode","useTableCore","pickNotDeprecated","getDefaultFilterCore","getDefaultSortOrderCore","getDefaultSortOrder","columnName","sorter","sort","getDefaultFilter","filters","operatorType","mapAntdSorterToCrudSorting","_a","crudSorting","a","b","_b","_c","_d","item","field","mapAntdFilterToCrudFilter","tableFilters","prevFilters","initialFilters","crudFilters","mapInitialFilter","acc","value","operator","i","p","useLink","useRouterContext","useRouterType","React","PaginationLink","to","element","LegacyLink","routerType","Link","e","useTable","onSearch","initialCurrent","initialPageSize","hasPagination","pagination","initialSorter","permanentSorter","initialFilter","permanentFilter","defaultSetFilterBehavior","filtersFromProp","sortersFromProp","syncWithLocation","resource","successNotification","errorNotification","queryOptions","liveModeFromProp","onLiveEvent","liveParams","meta","metaData","dataProviderName","_a","tableQueryResult","current","setCurrent","pageSize","setPageSize","filters","setFilters","sorters","setSorters","sorter","setSorter","createLinkForSyncWithLocation","pageCount","useTableCore","pickNotDeprecated","breakpoint","Grid","form","Form","formSF","useFormSF","liveMode","useLiveMode","hasPaginationString","isPaginationEnabled","preferredInitialFilters","data","isFetched","isLoading","onChange","paginationState","tableFilters","crudFilters","mapAntdFilterToCrudFilter","crudSorting","mapAntdSorterToCrudSorting","onFinish","value","searchFilters","antdPagination","page","type","element","link","createElement","PaginationLink","elementChildren","Children","Fragment","useEditableTable","props","table","useTable","edit","useForm","editId","setId","saveButtonProps","id","useSelectCore","useSelect","props","queryResult","defaultValueQueryResult","onSearch","options","useSelect","pickNotDeprecated","useCheckboxGroup","resource","sort","sorters","filters","optionLabel","optionValue","queryOptions","fetchSize","pagination","liveMode","defaultValue","onLiveEvent","liveParams","meta","metaData","dataProviderName","queryResult","options","pickNotDeprecated","useSelect","useRadioGroup","resource","sort","sorters","filters","optionLabel","optionValue","queryOptions","fetchSize","pagination","liveMode","defaultValue","onLiveEvent","liveParams","meta","metaData","dataProviderName","queryResult","options","React","notification","Progress","useTranslate","useResource","useImportCore","pickNotDeprecated","useImport","resourceFromProp","resourceName","mapData","item","paparseOptions","batchSize","onFinish","meta","metaData","dataProviderName","onProgressFromProp","_a","t","resource","mutationResult","isLoading","handleChange","totalAmount","processedAmount","description","Children","createElement","Fragment","Form","Grid","useTableCore","pickNotDeprecated","useLiveMode","useSimpleList","resource","initialCurrent","initialPageSize","pagination","hasPagination","initialSorter","permanentSorter","initialFilter","permanentFilter","defaultSetFilterBehavior","filtersFromProp","sortersFromProp","onSearch","queryOptions","syncWithLocation","successNotification","errorNotification","liveModeFromProp","onLiveEvent","liveParams","meta","metaData","dataProviderName","_a","sorters","sorter","filters","current","pageSize","pageCount","setFilters","setCurrent","setPageSize","setSorter","setSorters","createLinkForSyncWithLocation","queryResult","useTableCore","pickNotDeprecated","hasPaginationString","isPaginationEnabled","breakpoint","Grid","liveMode","useLiveMode","form","Form","data","isFetched","isLoading","onChange","page","onFinish","values","searchFilters","antdPagination","type","element","link","createElement","PaginationLink","elementChildren","Children","Fragment","useCallback","useMemo","useState","useFileUploadState","isLoading","setIsloading","onChange","info","mapStatusToLoading","files","file","useCoreModal","useModal","modalProps","show","close","visible","e","_a","useContext","React","useState","ThemedLayoutContext","ThemedLayoutContextProvider","children","initialSiderCollapsed","siderVisible","setSiderVisible","drawerSiderVisible","setDrawerSiderVisible","useSiderVisible","siderVisible","setSiderVisible","drawerSiderVisible","setDrawerSiderVisible","useContext","ThemedLayoutContext","React","notification","React","Button","notification","Progress","UndoOutlined","UndoableNotification","notificationKey","message","cancelMutation","undoableTimeout","time","notificationProvider","key","message","description","type","cancelMutation","undoableTimeout","notification","React","UndoableNotification","React","Grid","AntdLayout","React","useState","Layout","Menu","Grid","ConfigProvider","Drawer","Button","DashboardOutlined","LogoutOutlined","UnorderedListOutlined","BarsOutlined","useTranslate","useLogout","useTitle","CanAccess","useIsExistAuthentication","useRouterContext","useMenu","useRefineContext","useLink","useRouterType","useActiveAuthProvider","pickNotDeprecated","useWarnAboutChange","drawerButtonStyles","SubMenu","Menu","Sider","TitleFromProps","render","meta","_a","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","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","Text","Header","authProvider","user","Layout","children","Header","Sider","Title","Footer","OffLayoutArea","breakpoint","Grid","SiderToRender","HeaderToRender","isSmall","React","AntdLayout","React","useRouterContext","useRouterType","useLink","Title","collapsed","routerType","Link","LegacyLink","React","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","SubMenu","Menu","useToken","theme","ThemedSider","TitleFromProps","render","meta","_a","token","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","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","Text","useToken","ThemedHeader","token","authProvider","user","ThemedLayout","children","Header","Sider","Title","Footer","OffLayoutArea","breakpoint","Grid","SiderToRender","ThemedSider","HeaderToRender","ThemedHeader","isSmall","React","AntdLayout","React","useRouterContext","useRouterType","useLink","Typography","theme","Space","useToken","defaultText","defaultIcon","ThemedTitle","collapsed","icon","text","wrapperStyles","token","routerType","Link","LegacyLink","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","SubMenu","Menu","useToken","theme","ThemedSiderV2","TitleFromProps","render","meta","_a","token","siderVisible","setSiderVisible","drawerSiderVisible","setDrawerSiderVisible","useSiderVisible","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","UnorderedListOutlined","isSelected","isRoute","pickNotDeprecated","handleLogout","logout","LogoutOutlined","dashboard","DashboardOutlined","items","renderSider","renderMenu","renderDrawerSider","Drawer","Layout","Button","drawerButtonStyles","BarsOutlined","collapsed","type","RightOutlined","LeftOutlined","React","AntdLayout","Typography","Avatar","Space","theme","useActiveAuthProvider","useGetIdentity","Text","useToken","ThemedHeaderV2","isSticky","token","authProvider","user","headerStyles","ThemedLayoutV2","children","Header","Sider","Title","Footer","OffLayoutArea","initialSiderCollapsed","breakpoint","Grid","SiderToRender","ThemedSiderV2","HeaderToRender","ThemedHeaderV2","isSmall","React","ThemedLayoutContextProvider","AntdLayout","React","useRouterContext","useRouterType","useLink","Typography","theme","Space","useToken","defaultText","defaultIcon","ThemedTitleV2","collapsed","icon","text","wrapperStyles","token","routerType","Link","LegacyLink","React","Button","PlusSquareOutlined","useNavigation","useTranslate","useCan","useResource","useRouterContext","useRouterType","useLink","RefineButtonTestIds","CreateButton","resourceNameFromProps","propResourceNameOrRouteName","hideText","accessControl","meta","children","onClick","rest","_a","_b","accessControlEnabled","hideIfUnauthorized","translate","routerType","Link","LegacyLink","ActiveLink","generateCreateUrl","resource","data","createButtonDisabledTitle","createUrl","e","React","Button","EditOutlined","useCan","useNavigation","useTranslate","useResource","useRouterContext","useRouterType","useLink","RefineButtonTestIds","EditButton","resourceNameFromProps","propResourceNameOrRouteName","recordItemId","hideText","accessControl","meta","children","onClick","rest","_a","_b","accessControlEnabled","hideIfUnauthorized","translate","routerType","Link","LegacyLink","ActiveLink","generateEditUrl","id","resource","data","createButtonDisabledTitle","editUrl","e","React","Button","Popconfirm","DeleteOutlined","useDelete","useTranslate","useMutationMode","useCan","useResource","pickNotDeprecated","useWarnAboutChange","RefineButtonTestIds","DeleteButton","resourceNameFromProps","propResourceNameOrRouteName","recordItemId","onSuccess","mutationModeProp","children","successNotification","errorNotification","hideText","accessControl","metaData","meta","dataProviderName","confirmTitle","confirmOkText","confirmCancelText","invalidates","rest","_a","_b","accessControlEnabled","hideIfUnauthorized","translate","id","resource","mutationModeContext","mutationMode","mutate","isLoading","variables","data","setWarnWhen","value","React","Button","RedoOutlined","useOne","useTranslate","useResource","pickNotDeprecated","RefineButtonTestIds","RefreshButton","resourceNameFromProps","propResourceNameOrRouteName","recordItemId","hideText","meta","metaData","dataProviderName","children","onClick","rest","translate","resource","id","refetch","isFetching","e","React","Button","EyeOutlined","useCan","useNavigation","useTranslate","useResource","useRouterContext","useRouterType","useLink","RefineButtonTestIds","ShowButton","resourceNameFromProps","propResourceNameOrRouteName","recordItemId","hideText","accessControl","meta","children","onClick","rest","_a","_b","accessControlEnabled","hideIfUnauthorized","generateShowUrl","routerType","Link","LegacyLink","ActiveLink","translate","id","resource","data","createButtonDisabledTitle","showUrl","e","React","Button","BarsOutlined","useCan","useNavigation","useTranslate","userFriendlyResourceName","useResource","useRouterContext","useRouterType","useLink","pickNotDeprecated","RefineButtonTestIds","ListButton","resourceNameFromProps","propResourceNameOrRouteName","hideText","accessControl","meta","children","onClick","rest","_a","_b","_c","_d","_e","_f","_g","_h","accessControlEnabled","hideIfUnauthorized","generateListUrl","routerType","Link","LegacyLink","ActiveLink","translate","resource","data","createButtonDisabledTitle","listUrl","e","React","Button","ExportOutlined","useTranslate","RefineButtonTestIds","ExportButton","hideText","children","rest","translate","React","Button","SaveOutlined","useTranslate","RefineButtonTestIds","SaveButton","hideText","children","rest","translate","React","Button","PlusSquareOutlined","useCan","useNavigation","useTranslate","useResource","useRouterContext","useRouterType","useLink","RefineButtonTestIds","CloneButton","propResourceNameOrRouteName","resourceNameFromProps","recordItemId","hideText","accessControl","meta","children","onClick","rest","_a","_b","accessControlEnabled","hideIfUnauthorized","generateCloneUrl","routerType","Link","LegacyLink","ActiveLink","translate","id","resource","data","createButtonDisabledTitle","cloneUrl","e","React","Button","Upload","ImportOutlined","useTranslate","RefineButtonTestIds","ImportButton","uploadProps","buttonProps","hideText","children","translate","React","Space","useTranslate","userFriendlyResourceName","useRefineContext","useRouterType","useResource","List","canCreate","title","children","createButtonProps","resourceFromProps","wrapperProps","contentProps","headerProps","breadcrumbFromProps","headerButtonProps","headerButtons","_a","_b","_c","_d","_e","_f","_g","_h","translate","useTranslate","globalBreadcrumb","useRefineContext","routerType","useRouterType","resource","useResource","isCreateButtonVisible","breadcrumb","defaultExtra","React","CreateButton","PageHeader","userFriendlyResourceName","Space","Breadcrumb","React","Card","Space","Spin","useNavigation","useTranslate","userFriendlyResourceName","useRefineContext","useRouterType","useResource","useBack","Create","title","saveButtonProps","children","resourceFromProps","isLoading","breadcrumbFromProps","wrapperProps","headerProps","contentProps","headerButtonProps","headerButtons","footerButtonProps","footerButtons","goBackFromProps","_a","_b","_c","_d","_e","_f","translate","useTranslate","globalBreadcrumb","useRefineContext","routerType","useRouterType","back","useBack","goBack","useNavigation","resource","action","useResource","breadcrumb","defaultFooterButtons","React","SaveButton","PageHeader","userFriendlyResourceName","Breadcrumb","Space","Spin","Card","React","Card","Space","Spin","useMutationMode","useNavigation","useTranslate","userFriendlyResourceName","useRefineContext","useRouterType","useBack","useResource","useGo","useToPath","Edit","title","saveButtonProps","mutationModeProp","recordItemId","children","deleteButtonProps","canDelete","resourceFromProps","isLoading","dataProviderName","breadcrumbFromProps","wrapperProps","headerProps","contentProps","headerButtonProps","headerButtons","footerButtonProps","footerButtons","goBackFromProps","_a","_b","_c","_d","_e","_f","_g","_h","_i","_j","_k","translate","useTranslate","globalBreadcrumb","useRefineContext","mutationModeContext","useMutationMode","mutationMode","routerType","useRouterType","back","useBack","go","useGo","goBack","legacyGoList","useNavigation","resource","action","idFromParams","useResource","goListPath","useToPath","id","breadcrumb","isDeleteButtonVisible","defaultHeaderButtons","React","ListButton","RefreshButton","defaultFooterButtons","DeleteButton","SaveButton","PageHeader","userFriendlyResourceName","Space","Breadcrumb","Spin","Card","React","Card","Space","Spin","useNavigation","useTranslate","userFriendlyResourceName","useRefineContext","useResource","useToPath","useRouterType","useBack","useGo","Show","title","canEdit","canDelete","isLoading","children","resourceFromProps","recordItemId","dataProviderName","breadcrumbFromProps","contentProps","headerProps","wrapperProps","headerButtons","footerButtons","footerButtonProps","headerButtonProps","goBackFromProps","_a","_b","_c","_d","_e","_f","_g","_h","_i","_j","_k","_l","_m","translate","useTranslate","globalBreadcrumb","useRefineContext","routerType","useRouterType","back","useBack","go","useGo","goBack","legacyGoList","useNavigation","resource","action","idFromParams","useResource","goListPath","useToPath","id","breadcrumb","isDeleteButtonVisible","isEditButtonVisible","defaultHeaderButtons","React","ListButton","EditButton","DeleteButton","RefreshButton","PageHeader","userFriendlyResourceName","Space","Breadcrumb","Spin","Card","React","Typography","Text","TextField","value","rest","React","Tag","TagField","value","rest","React","Typography","Link","EmailField","value","rest","React","Image","ImageField","value","imageTitle","rest","React","Tooltip","CheckOutlined","CloseOutlined","BooleanField","value","valueLabelTrue","valueLabelFalse","trueIcon","falseIcon","rest","React","dayjs","Typography","LocalizedFormat","defaultLocale","DateField","value","locales","dateFormat","rest","Text","React","FileField","title","src","rest","React","UrlField","React","Typography","Link","UrlField","children","value","rest","React","Typography","Text","toLocaleStringSupportsOptions","NumberField","value","locale","options","rest","number","React","ReactMarkdown","gfm","MarkdownField","value","React","useState","Button","Space","dayjs","FilterOutlined","useTranslate","FilterDropdown","props","setSelectedKeys","confirm","clearFilters","mapValue","selectedKeys","children","value","setValue","translate","clearFilter","onFilter","_mappedValue","mappedValue","keys","onChange","e","changeEvent","target","childrenWithProps","child","React","useEffect","useState","useGo","useResource","useRouterType","Button","Result","Typography","Space","Tooltip","InfoCircleOutlined","useNavigation","useTranslate","Text","ErrorComponent","errorMessage","setErrorMessage","translate","push","go","routerType","resource","action","React","useActiveAuthProvider","Row","Col","Layout","Card","Typography","Form","Input","Button","Checkbox","useLogin","useTranslate","layoutStyles","containerStyles","titleStyles","imageContainer","Text","Title","Typography","LoginPage","form","Form","translate","useTranslate","authProvider","useActiveAuthProvider","login","isLoading","useLogin","CardTitle","React","titleStyles","Layout","layoutStyles","Row","Col","containerStyles","imageContainer","Card","values","Input","Checkbox","Button","React","Row","Col","Typography","Space","Button","ReadOutlined","FolderOutlined","TeamOutlined","styles","Title","ReadyPage","React","WelcomePageFromCore","WelcomePage","React","React","useLink","useRouterType","useActiveAuthProvider","Row","Col","Layout","Card","Typography","Form","Input","Button","Checkbox","Divider","theme","useLogin","useTranslate","useRouterContext","layoutStyles","containerStyles","headStyles","bodyStyles","titleStyles","Text","Title","Typography","useToken","theme","LoginPage","providers","registerLink","forgotPasswordLink","rememberMe","contentProps","wrapperProps","renderContent","formProps","title","token","form","Form","translate","useTranslate","routerType","useRouterType","Link","useLink","LegacyLink","useRouterContext","ActiveLink","authProvider","useActiveAuthProvider","login","isLoading","useLogin","PageTitle","React","ThemedTitle","CardTitle","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","Text","Title","Typography","useToken","theme","RegisterPage","providers","loginLink","wrapperProps","contentProps","renderContent","formProps","title","token","form","Form","translate","useTranslate","routerType","useRouterType","Link","useLink","LegacyLink","useRouterContext","ActiveLink","authProvider","useActiveAuthProvider","register","isLoading","useRegister","PageTitle","React","ThemedTitle","CardTitle","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","Text","Title","Typography","useToken","theme","ForgotPasswordPage","loginLink","wrapperProps","contentProps","renderContent","formProps","title","token","form","Form","translate","useTranslate","routerType","useRouterType","Link","useLink","LegacyLink","useRouterContext","ActiveLink","forgotPassword","isLoading","useForgotPassword","PageTitle","React","ThemedTitle","CardTitle","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","Title","Typography","useToken","theme","UpdatePasswordPage","wrapperProps","contentProps","renderContent","formProps","title","token","form","Form","translate","useTranslate","authProvider","useActiveAuthProvider","updatePassword","isLoading","useUpdatePassword","PageTitle","React","ThemedTitle","CardTitle","titleStyles","CardContent","Card","headStyles","bodyStyles","containerStyles","values","Input","getFieldValue","_","value","Button","Layout","layoutStyles","Row","Col","AuthPage","props","type","React","RegisterPage","ForgotPasswordPage","UpdatePasswordPage","LoginPage","React","useBreadcrumb","useLink","useRefineContext","useRouterContext","useRouterType","useResource","matchResourceFromRoute","AntdBreadcrumb","HomeOutlined","Breadcrumb","breadcrumbProps","showHome","hideIcons","meta","routerType","breadcrumbs","Link","LegacyLink","hasDashboard","resources","rootRouteResource","ActiveLink","breadCrumbItems","label","icon","href","_a","_b","_c","React","AntdPageHeader","Button","Typography","ArrowLeftOutlined","PageHeader","children","props","backIcon","title","subtitle","getValueFromEvent","event","fileList","RefineThemes"]}
1
+ {"version":3,"sources":["../../src/hooks/form/useForm.ts","../../src/hooks/form/useModalForm/useModalForm.ts","../../src/hooks/form/useDrawerForm/useDrawerForm.ts","../../src/hooks/form/useStepsForm/useStepsForm.ts","../../src/hooks/table/useTable/useTable.ts","../../src/definitions/table/index.ts","../../src/hooks/table/useTable/paginationLink.tsx","../../src/hooks/table/useEditableTable/useEditableTable.ts","../../src/hooks/fields/useSelect/index.ts","../../src/hooks/fields/useCheckboxGroup/index.ts","../../src/hooks/fields/useRadioGroup/index.ts","../../src/hooks/import/index.tsx","../../src/hooks/list/useSimpleList/useSimpleList.ts","../../src/hooks/useFileUploadState/index.ts","../../src/hooks/modal/useModal/index.tsx","../../src/hooks/useSiderVisible/index.ts","../../src/contexts/themedLayoutContext/index.tsx","../../src/providers/notificationProvider/index.tsx","../../src/components/undoableNotification/index.tsx","../../src/components/layout/index.tsx","../../src/components/layout/sider/index.tsx","../../src/components/layout/sider/styles.ts","../../src/components/layout/header/index.tsx","../../src/components/layout/title/index.tsx","../../src/components/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/definitions/upload/index.ts","../../src/definitions/themes/index.ts"],"sourcesContent":["import React from \"react\";\nimport { FormInstance, FormProps, Form } from \"antd\";\nimport { useForm as useFormSF } from \"sunflower-antd\";\nimport { ButtonProps } from \"antd\";\n\nimport {\n HttpError,\n BaseRecord,\n useForm as useFormCore,\n UseFormReturnType as UseFormReturnTypeCore,\n useWarnAboutChange,\n UseFormProps as UseFormPropsCore,\n CreateResponse,\n UpdateResponse,\n pickNotDeprecated,\n} from \"@refinedev/core\";\n\nexport type UseFormProps<\n 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\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-references/hooks/form/useForm} for more details.\n *\n * @typeParam TData - Result data of the query extends {@link https://refine.dev/docs/api-references/interfaceReferences#baserecord `BaseRecord`}\n * @typeParam TError - Custom error object that extends {@link https://refine.dev/docs/api-references/interfaceReferences#httperror `HttpError`}\n * @typeParam TVariables - Values for params. default `{}`\n * @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,\n submitOnEnter = false,\n warnWhenUnsavedChanges: warnWhenUnsavedChangesProp,\n redirect,\n successNotification,\n errorNotification,\n meta,\n metaData,\n liveMode,\n liveParams,\n mutationMode,\n dataProviderName,\n onLiveEvent,\n invalidates,\n undoableTimeout,\n queryOptions,\n createMutationOptions,\n updateMutationOptions,\n id: idFromProps,\n}: UseFormProps<\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 [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,\n redirect,\n action,\n resource,\n successNotification,\n errorNotification,\n meta: pickNotDeprecated(meta, metaData),\n metaData: pickNotDeprecated(meta, metaData),\n liveMode,\n liveParams,\n mutationMode,\n dataProviderName,\n onLiveEvent,\n invalidates,\n undoableTimeout,\n queryOptions,\n createMutationOptions,\n updateMutationOptions,\n id: idFromProps,\n });\n\n const { formLoading, onFinish, queryResult, id } = useFormCoreResult;\n\n const {\n warnWhenUnsavedChanges: warnWhenUnsavedChangesRefine,\n setWarnWhen,\n } = useWarnAboutChange();\n const warnWhenUnsavedChanges =\n warnWhenUnsavedChangesProp ?? warnWhenUnsavedChangesRefine;\n\n React.useEffect(() => {\n form.resetFields();\n }, [queryResult?.data?.data, id]);\n\n const onKeyUp = (event: React.KeyboardEvent<HTMLFormElement>) => {\n if (submitOnEnter && event.key === \"Enter\") {\n form.submit();\n }\n };\n\n const onValuesChange = (changeValues: object) => {\n if (changeValues && warnWhenUnsavedChanges) {\n setWarnWhen(true);\n }\n return changeValues;\n };\n\n const saveButtonProps = {\n disabled: formLoading,\n onClick: () => {\n form.submit();\n },\n };\n\n return {\n form: formSF.form,\n formProps: {\n ...formSF.formProps,\n onFinish: (values: TVariables) =>\n onFinish(values).catch((error) => error),\n onKeyUp,\n onValuesChange,\n initialValues: queryResult?.data?.data,\n },\n saveButtonProps,\n ...useFormCoreResult,\n onFinish: async (values?: TVariables) => {\n return await onFinish(values ?? formSF.form.getFieldsValue(true));\n },\n };\n};\n","import React, { useCallback } from \"react\";\nimport { FormInstance, FormProps, ModalProps } from \"antd\";\nimport {\n useModalForm as useModalFormSF,\n UseModalFormConfig as UseModalFormConfigSF,\n} from \"sunflower-antd\";\n\nimport {\n useTranslate,\n useWarnAboutChange,\n HttpError,\n UseFormProps as UseFormPropsCore,\n BaseRecord,\n LiveModeProps,\n BaseKey,\n userFriendlyResourceName,\n useResource,\n FormWithSyncWithLocationParams,\n useParsed,\n useGo,\n} from \"@refinedev/core\";\nimport { useForm, UseFormProps, UseFormReturnType } from \"../useForm\";\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 UseModalFormConfigSF &\n useModalFormConfig &\n LiveModeProps &\n FormWithSyncWithLocationParams;\n/**\n * `useModalForm` hook allows you to manage a form within a modal. It returns Ant Design {@link https://ant.design/components/form/ Form} and {@link https://ant.design/components/modal/ Modal} components props.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/hooks/form/useModalForm} for more details.\n *\n * @typeParam TData - Result data of the query extends {@link https://refine.dev/docs/api-references/interfaceReferences#baserecord `BaseRecord`}\n * @typeParam TError - Custom error object that extends {@link https://refine.dev/docs/api-references/interfaceReferences#httperror `HttpError`}\n * @typeParam TVariables - Values for params. default `{}`\n *\n *\n */\nexport const useModalForm = <\n 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 ...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 = React.useRef(false);\n\n const useFormProps = useForm<\n TQueryFnData,\n TError,\n TVariables,\n TData,\n TResponse,\n TResponseError\n >({\n ...rest,\n });\n\n const { form, formProps, id, setId, formLoading, onFinish } = useFormProps;\n\n const { resource, action: actionFromParams } = useResource(rest.resource);\n\n const parsed = useParsed();\n const go = useGo();\n\n const action = rest.action ?? actionFromParams ?? \"\";\n\n const syncingId =\n typeof syncWithLocation === \"object\" && syncWithLocation.syncId;\n\n const syncWithLocationKey =\n typeof syncWithLocation === \"object\" && \"key\" in syncWithLocation\n ? syncWithLocation.key\n : resource && action && syncWithLocation\n ? `modal-${resource?.identifier ?? resource?.name}-${action}`\n : undefined;\n\n const translate = useTranslate();\n\n const { warnWhen, setWarnWhen } = useWarnAboutChange();\n\n const sunflowerUseModal = useModalFormSF<TResponse, TVariables>({\n ...rest,\n form: form,\n submit: onFinish as any,\n });\n\n const {\n visible,\n show,\n formProps: modalFormProps,\n modalProps,\n } = sunflowerUseModal;\n\n React.useEffect(() => {\n if (initiallySynced.current === false && syncWithLocationKey) {\n const openStatus = parsed?.params?.[syncWithLocationKey]?.open;\n if (typeof openStatus === \"boolean\") {\n if (openStatus) {\n show();\n }\n } else if (typeof openStatus === \"string\") {\n if (openStatus === \"true\") {\n show();\n }\n }\n\n if (syncingId) {\n const idFromParams = parsed?.params?.[syncWithLocationKey]?.id;\n if (idFromParams) {\n setId?.(idFromParams);\n }\n }\n\n initiallySynced.current = true;\n }\n }, [syncWithLocationKey, parsed, syncingId, setId]);\n\n React.useEffect(() => {\n if (initiallySynced.current === true) {\n if (visible && syncWithLocationKey) {\n go({\n query: {\n [syncWithLocationKey]: {\n ...parsed?.params?.[syncWithLocationKey],\n open: true,\n ...(syncingId && id && { id }),\n },\n },\n options: { keepQuery: true },\n type: \"replace\",\n });\n } else if (syncWithLocationKey && !visible) {\n go({\n query: {\n [syncWithLocationKey]: undefined,\n },\n options: { keepQuery: true },\n type: \"replace\",\n });\n }\n }\n }, [id, visible, show, syncWithLocationKey, syncingId]);\n\n const saveButtonPropsSF = {\n disabled: formLoading,\n loading: formLoading,\n };\n\n const handleClose = useCallback(() => {\n if (warnWhen) {\n const warnWhenConfirm = window.confirm(\n translate(\n \"warnWhenUnsavedChanges\",\n \"Are you sure you want to leave? You have unsaved changes.\",\n ),\n );\n\n if (warnWhenConfirm) {\n setWarnWhen(false);\n } else {\n return;\n }\n }\n\n setId?.(undefined);\n sunflowerUseModal.close();\n }, [warnWhen]);\n\n const handleShow = useCallback(\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 ...modalFormProps,\n ...useFormProps.formProps,\n onValuesChange: formProps?.onValuesChange,\n onKeyUp: formProps?.onKeyUp,\n onFinish: formProps.onFinish,\n },\n modalProps: {\n ...newModalProps,\n width: \"1000px\",\n okButtonProps: saveButtonPropsSF,\n title: translate(\n `${resource?.name}.titles.${rest.action}`,\n `${userFriendlyResourceName(\n `${rest.action} ${\n resource?.meta?.label ??\n resource?.options?.label ??\n resource?.label ??\n resource?.name\n }`,\n \"singular\",\n )}`,\n ),\n okText: translate(\"buttons.save\", \"Save\"),\n cancelText: translate(\"buttons.cancel\", \"Cancel\"),\n onCancel: handleClose,\n forceRender: true,\n },\n formLoading,\n };\n};\n","import 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} 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/ui-frameworks/antd/hooks/form/useDrawerForm} for more details.\n *\n * @typeParam TData - Result data of the query extends {@link https://refine.dev/docs/api-references/interfaceReferences#baserecord `BaseRecord`}\n * @typeParam TError - Custom error object that extends {@link https://refine.dev/docs/api-references/interfaceReferences#httperror `HttpError`}\n * @typeParam TVariables - Values for params. default `{}`\n *\n *\n */\n\nexport const useDrawerForm = <\n 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 ...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 initiallySynced = React.useRef(false);\n\n const { visible, show, close } = useModal({\n defaultVisible,\n });\n\n const useFormProps = useForm<\n TQueryFnData,\n TError,\n TVariables,\n TData,\n TResponse,\n TResponseError\n >({\n ...rest,\n });\n\n const { form, formProps, formLoading, id, setId, onFinish } = useFormProps;\n\n const { resource, action: actionFromParams } = useResource(rest.resource);\n\n const parsed = useParsed();\n const go = useGo();\n\n const action = rest.action ?? actionFromParams ?? \"\";\n\n const syncingId =\n typeof syncWithLocation === \"object\" && syncWithLocation.syncId;\n\n const syncWithLocationKey =\n typeof syncWithLocation === \"object\" && \"key\" in syncWithLocation\n ? syncWithLocation.key\n : resource && action && syncWithLocation\n ? `drawer-${resource?.identifier ?? resource?.name}-${action}`\n : undefined;\n\n React.useEffect(() => {\n if (initiallySynced.current === 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 initiallySynced.current = true;\n }\n }, [syncWithLocationKey, parsed, syncingId, setId]);\n\n React.useEffect(() => {\n if (initiallySynced.current === true) {\n if (visible && syncWithLocationKey) {\n go({\n query: {\n [syncWithLocationKey]: {\n ...parsed?.params?.[syncWithLocationKey],\n open: true,\n ...(syncingId && id && { id }),\n },\n },\n options: { keepQuery: true },\n type: \"replace\",\n });\n } else if (syncWithLocationKey && !visible) {\n go({\n query: {\n [syncWithLocationKey]: undefined,\n },\n options: { keepQuery: true },\n type: \"replace\",\n });\n }\n }\n }, [id, visible, show, close, syncWithLocationKey, syncingId]);\n\n const translate = useTranslate();\n\n const { warnWhen, setWarnWhen } = useWarnAboutChange();\n\n const submit = async () => {\n await onFinish(form.getFieldsValue());\n\n if (autoSubmitClose) {\n close();\n }\n\n if (autoResetForm) {\n form.resetFields();\n }\n };\n\n const saveButtonProps = {\n disabled: formLoading,\n onClick: submit,\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 (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: formProps.onFinish,\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) => void;\n stepsProps: {\n current: number;\n onChange: (currentStep: number) => void;\n };\n formProps: FormProps<TVariables>;\n formLoading: boolean;\n defaultFormValuesLoading: boolean;\n formValues: {};\n initialValues: {};\n formResult: undefined;\n form: FormInstance<TVariables>;\n submit: (values?: TVariables) => Promise<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/ui-frameworks/antd/hooks/form/useStepsForm} for more details.\n *\n * @typeParam TData - Result data of the query extends {@link https://refine.dev/docs/api-references/interfaceReferences#baserecord `BaseRecord`}\n * @typeParam TError - Custom error object that extends {@link https://refine.dev/docs/api-references/interfaceReferences#httperror `HttpError`}\n * @typeParam TVariables - Values for params. default `{}`\n *\n *\n */\nexport const useStepsForm = <\n 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 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 } = 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 };\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/**\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 props: useEditableTableProps<\n TQueryFnData,\n TError,\n TVariables,\n TSearchVariables,\n TData\n > = {},\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 saveButtonProps,\n cancelButtonProps,\n editButtonProps,\n isEditing,\n };\n};\n","import { SelectProps } from \"antd/lib/select\";\nimport { QueryObserverResult } from \"@tanstack/react-query\";\n\nimport {\n useSelect as useSelectCore,\n BaseRecord,\n GetManyResponse,\n GetListResponse,\n HttpError,\n UseSelectProps,\n} from \"@refinedev/core\";\n\nexport type UseSelectReturnType<TData extends BaseRecord = BaseRecord> = {\n selectProps: SelectProps<{ value: string; label: string }>;\n queryResult: QueryObserverResult<GetListResponse<TData>>;\n defaultValueQueryResult: QueryObserverResult<GetManyResponse<TData>>;\n};\n\n/**\n * `useSelect` hook allows you to manage an Ant Design {@link https://ant.design/components/select/ Select} component when records in a resource needs to be used as select options.\n *\n * @see {@link https://refine.dev/docs/api-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>(\n props: UseSelectProps<TQueryFnData, TError, TData>,\n): UseSelectReturnType<TData> => {\n const { queryResult, defaultValueQueryResult, onSearch, options } =\n useSelectCore(props);\n\n return {\n selectProps: {\n options,\n onSearch,\n loading: defaultValueQueryResult.isFetching,\n showSearch: true,\n filterOption: false,\n },\n queryResult,\n defaultValueQueryResult,\n };\n};\n","import { QueryObserverResult } from \"@tanstack/react-query\";\n\nimport { CheckboxGroupProps } from \"antd/lib/checkbox\";\nimport {\n BaseRecord,\n GetListResponse,\n HttpError,\n UseSelectProps,\n useSelect,\n BaseKey,\n pickNotDeprecated,\n} from \"@refinedev/core\";\n\nexport type UseCheckboxGroupReturnType<TData extends BaseRecord = BaseRecord> =\n {\n checkboxGroupProps: CheckboxGroupProps;\n queryResult: QueryObserverResult<GetListResponse<TData>>;\n };\n\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>({\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> => {\n const { queryResult, options } = useSelect({\n resource,\n sort,\n sorters,\n filters,\n optionLabel,\n optionValue,\n queryOptions,\n fetchSize,\n pagination,\n liveMode,\n defaultValue,\n onLiveEvent,\n liveParams,\n meta: pickNotDeprecated(meta, metaData),\n metaData: pickNotDeprecated(meta, metaData),\n dataProviderName,\n });\n return {\n checkboxGroupProps: {\n options,\n defaultValue,\n },\n queryResult,\n };\n};\n","import { QueryObserverResult } from \"@tanstack/react-query\";\n\nimport { RadioGroupProps } from \"antd/lib/radio\";\nimport {\n BaseKey,\n BaseRecord,\n GetListResponse,\n HttpError,\n pickNotDeprecated,\n useSelect,\n UseSelectProps,\n} from \"@refinedev/core\";\n\nexport type UseRadioGroupReturnType<TData extends BaseRecord = BaseRecord> = {\n radioGroupProps: RadioGroupProps;\n queryResult: QueryObserverResult<GetListResponse<TData>>;\n};\n\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>({\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<\n TQueryFnData,\n TError,\n TData\n>): UseRadioGroupReturnType<TData> => {\n const { queryResult, options } = useSelect({\n resource,\n sort,\n sorters,\n filters,\n optionLabel,\n optionValue,\n queryOptions,\n fetchSize,\n pagination,\n liveMode,\n defaultValue,\n onLiveEvent,\n liveParams,\n meta: pickNotDeprecated(meta, metaData),\n metaData: pickNotDeprecated(meta, metaData),\n dataProviderName,\n });\n\n return {\n radioGroupProps: {\n options,\n defaultValue,\n },\n queryResult,\n };\n};\n","import React from \"react\";\nimport { ButtonProps, notification, UploadProps, Progress } from \"antd\";\nimport {\n useTranslate,\n useResource,\n BaseRecord,\n HttpError,\n useImport as useImportCore,\n UseImportReturnType,\n ImportOptions,\n pickNotDeprecated,\n} from \"@refinedev/core\";\n\n/**\n * `useImport` hook allows you to handle your csv import logic easily.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/hooks/import/useImport} for more details.\n *\n * @typeParam TItem - Interface of parsed csv data\n * @typeParam TData - Result data of the query extends {@link https://refine.dev/docs/api-references/interfaceReferences#baserecord `BaseRecord`}\n * @typeParam TError - Custom error object that extends {@link https://refine.dev/docs/api-references/interfaceReferences#httperror `HttpError`}\n * @typeParam TVariables - Values for mutation function\n *\n */\nexport const useImport = <\n TItem = any,\n TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = any,\n>({\n resource: resourceFromProp,\n resourceName,\n mapData = (item) => item as unknown as TVariables,\n paparseOptions,\n batchSize = Number.MAX_SAFE_INTEGER,\n onFinish,\n meta,\n metaData,\n dataProviderName,\n onProgress: onProgressFromProp,\n}: ImportOptions<TItem, TVariables, TData> = {}): Omit<\n UseImportReturnType<TData, TVariables, TError>,\n \"handleChange\" | \"inputProps\"\n> & {\n uploadProps: UploadProps;\n buttonProps: ButtonProps;\n} => {\n const t = useTranslate();\n\n const { resource } = useResource(resourceFromProp ?? resourceName);\n\n const { mutationResult, isLoading, handleChange } = useImportCore<\n TItem,\n TData,\n TError,\n TVariables\n >({\n resource: resource?.identifier ?? resource?.name,\n mapData,\n paparseOptions,\n batchSize,\n meta: pickNotDeprecated(meta, metaData),\n metaData: pickNotDeprecated(meta, metaData),\n dataProviderName,\n onFinish,\n onProgress:\n onProgressFromProp ??\n (({ totalAmount, processedAmount }) => {\n if (totalAmount > 0 && processedAmount > 0) {\n const description = (\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n marginTop: \"-7px\",\n }}\n >\n <Progress\n type=\"circle\"\n percent={Math.floor(\n (processedAmount / totalAmount) * 100,\n )}\n width={50}\n strokeColor=\"#1890ff\"\n status=\"normal\"\n />\n <span style={{ marginLeft: 8, width: \"100%\" }}>\n {t(\n \"notifications.importProgress\",\n {\n processed: processedAmount,\n total: totalAmount,\n },\n `Importing: ${processedAmount}/${totalAmount}`,\n )}\n </span>\n </div>\n );\n\n notification.open({\n description,\n message: null,\n key: `${resource}-import`,\n duration: 0,\n });\n\n if (processedAmount >= totalAmount) {\n }\n\n if (processedAmount === totalAmount) {\n setTimeout(() => {\n notification.destroy(`${resource}-import`);\n }, 4500);\n }\n }\n }),\n });\n\n return {\n uploadProps: {\n onChange: handleChange,\n beforeUpload: () => false,\n showUploadList: false,\n accept: \".csv\",\n },\n buttonProps: {\n type: \"default\",\n loading: isLoading,\n },\n mutationResult,\n isLoading,\n };\n};\n","import { Children, createElement, Fragment } from \"react\";\nimport { ListProps, FormProps, Form, Grid } from \"antd\";\n\nimport {\n BaseRecord,\n CrudFilters,\n 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/ui-frameworks/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 } = useTableCore({\n resource,\n initialSorter,\n permanentSorter,\n initialFilter,\n permanentFilter,\n filters: filtersFromProp,\n sorters: sortersFromProp,\n defaultSetFilterBehavior,\n initialCurrent,\n initialPageSize,\n queryOptions,\n successNotification,\n errorNotification,\n liveMode: liveModeFromProp,\n onLiveEvent,\n liveParams,\n meta: pickNotDeprecated(meta, metaData),\n metaData: pickNotDeprecated(meta, metaData),\n syncWithLocation,\n dataProviderName,\n pagination,\n hasPagination,\n });\n\n const hasPaginationString = hasPagination === false ? \"off\" : \"server\";\n const isPaginationEnabled =\n (pagination?.mode ?? hasPaginationString) !== \"off\";\n\n const breakpoint = Grid.useBreakpoint();\n\n const liveMode = useLiveMode(liveModeFromProp);\n\n const [form] = Form.useForm<TSearchVariables>();\n\n const { data, isFetched, isLoading } = queryResult;\n\n const onChange = (page: number, pageSize?: number): void => {\n if (isPaginationEnabled) {\n setCurrent(page);\n setPageSize(pageSize || 10);\n }\n };\n\n const onFinish = async (values: TSearchVariables) => {\n if (onSearch) {\n const searchFilters = await onSearch(values);\n if (isPaginationEnabled) {\n setCurrent?.(1);\n }\n return setFilters(searchFilters);\n }\n };\n\n const antdPagination = (): false | PaginationConfig => {\n if (isPaginationEnabled) {\n return {\n itemRender: (page, type, element) => {\n const link = createLinkForSyncWithLocation({\n pagination: {\n pageSize,\n current: page,\n },\n sorters,\n filters,\n });\n\n if (type === \"page\") {\n return createElement(PaginationLink, {\n to: link,\n element: `${page}`,\n });\n }\n if (type === \"next\" || type === \"prev\") {\n return createElement(PaginationLink, {\n to: link,\n element: element,\n });\n }\n\n if (type === \"jump-next\" || type === \"jump-prev\") {\n const elementChildren = (element as React.ReactElement)\n ?.props?.children;\n\n return createElement(PaginationLink, {\n to: link,\n element:\n Children.count(elementChildren) > 1\n ? createElement(\n Fragment,\n {},\n elementChildren,\n )\n : elementChildren,\n });\n }\n\n return element;\n },\n pageSize,\n current,\n simple: !breakpoint.sm,\n total: data?.total,\n onChange,\n };\n }\n\n return false;\n };\n\n return {\n searchFormProps: {\n form,\n onFinish,\n },\n listProps: {\n dataSource: data?.data,\n loading: liveMode === \"auto\" ? isLoading : !isFetched,\n pagination: antdPagination(),\n },\n queryResult,\n filters,\n setFilters,\n sorter,\n setSorter,\n sorters,\n setSorters,\n current,\n setCurrent,\n pageSize,\n setPageSize,\n pageCount,\n createLinkForSyncWithLocation,\n };\n};\n","import { useCallback, useMemo, useState } from \"react\";\nimport { UploadChangeParam } from \"antd/lib/upload\";\n\nexport type UseFileUploadStateType = () => {\n isLoading: boolean;\n onChange: (info: UploadChangeParam) => void;\n};\n\nexport const useFileUploadState: UseFileUploadStateType = () => {\n const [isLoading, setIsloading] = useState(false);\n\n const onChange = useCallback((info: UploadChangeParam) => {\n const fileListLoadings = mapStatusToLoading(info.fileList);\n\n if (fileListLoadings.includes(true)) {\n setIsloading(true);\n } else {\n setIsloading(false);\n }\n }, []);\n\n return useMemo(() => ({ isLoading, onChange }), [isLoading]);\n};\n\nconst mapStatusToLoading = (files: UploadChangeParam[\"fileList\"]) => {\n return files.map((file) => {\n switch (file.status) {\n case \"uploading\":\n return true;\n default:\n return false;\n }\n });\n};\n","import { ModalProps } from \"antd\";\nimport {\n useModal as useCoreModal,\n useModalReturnType as useCoreModelReturnType,\n} from \"@refinedev/core\";\n\nexport type useModalReturnType = {\n modalProps: ModalProps;\n} & Omit<useCoreModelReturnType, \"visible\">;\n\nexport type useModalProps = {\n /**\n * Default props for Ant Design {@link https://ant.design/components/modal/ `<Modal>`} component.\n */\n modalProps?: ModalProps;\n};\n\n/**\n * By using `useModal` you get props for your records from API in accordance with Ant Design {@link https://ant.design/components/modal/ `<Modal>`} component.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/hooks/ui/useModal} for more details.\n */\nexport const useModal = ({\n modalProps = {},\n}: useModalProps = {}): useModalReturnType => {\n const { show, close, visible } = useCoreModal({\n defaultVisible: modalProps.open,\n });\n\n return {\n modalProps: {\n ...modalProps,\n onCancel: (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => {\n modalProps.onCancel?.(e);\n close();\n },\n open: visible,\n visible,\n },\n show,\n close,\n };\n};\n","import { useContext } from \"react\";\n\nimport { ThemedLayoutContext } from \"@contexts\";\nimport { IThemedLayoutContext } from \"@contexts/themedLayoutContext/IThemedLayoutContext\";\n\nexport type UseSiderVisibleType = IThemedLayoutContext;\n\nexport const useSiderVisible = (): UseSiderVisibleType => {\n const {\n siderVisible,\n setSiderVisible,\n drawerSiderVisible,\n setDrawerSiderVisible,\n } = useContext(ThemedLayoutContext);\n\n return {\n siderVisible,\n setSiderVisible,\n drawerSiderVisible,\n setDrawerSiderVisible,\n };\n};\n","import React, { ReactNode, useState } from \"react\";\n\nimport { IThemedLayoutContext } from \"./IThemedLayoutContext\";\n\nexport const ThemedLayoutContext = React.createContext<IThemedLayoutContext>({\n siderVisible: false,\n drawerSiderVisible: false,\n});\n\nexport const ThemedLayoutContextProvider: React.FC<{\n children: ReactNode;\n initialSiderCollapsed?: boolean;\n}> = ({ children, initialSiderCollapsed }) => {\n const [siderVisible, setSiderVisible] = useState(false);\n const [drawerSiderVisible, setDrawerSiderVisible] = useState(\n initialSiderCollapsed ?? false,\n );\n\n return (\n <ThemedLayoutContext.Provider\n value={{\n siderVisible,\n drawerSiderVisible,\n setSiderVisible,\n setDrawerSiderVisible,\n }}\n >\n {children}\n </ThemedLayoutContext.Provider>\n );\n};\n","import React from \"react\";\nimport { NotificationProvider } from \"@refinedev/core\";\nimport { notification } from \"antd\";\n\nimport { UndoableNotification } from \"@components/undoableNotification\";\n\nexport const notificationProvider: NotificationProvider = {\n open: ({\n key,\n message,\n description,\n type,\n cancelMutation,\n undoableTimeout,\n }) => {\n if (type === \"progress\") {\n notification.open({\n key,\n description: (\n <UndoableNotification\n notificationKey={key}\n message={message}\n cancelMutation={cancelMutation}\n undoableTimeout={undoableTimeout}\n />\n ),\n message: null,\n duration: 0,\n closeIcon: <></>,\n });\n } else {\n notification.open({\n key,\n description: message,\n message: description ?? null,\n type,\n });\n }\n },\n close: (key) => notification.destroy(key),\n};\n","import React from \"react\";\nimport { Button, notification, Progress } from \"antd\";\nimport { OpenNotificationParams } from \"@refinedev/core\";\nimport { UndoOutlined } from \"@ant-design/icons\";\n\nexport type UndoableNotificationProps = {\n notificationKey: OpenNotificationParams[\"key\"];\n message: OpenNotificationParams[\"message\"];\n cancelMutation: OpenNotificationParams[\"cancelMutation\"];\n undoableTimeout: OpenNotificationParams[\"undoableTimeout\"];\n};\n\nexport const UndoableNotification: React.FC<UndoableNotificationProps> = ({\n notificationKey,\n message,\n cancelMutation,\n undoableTimeout,\n}) => (\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n marginTop: \"-7px\",\n }}\n >\n <Progress\n type=\"circle\"\n percent={(undoableTimeout ?? 0) * 20}\n format={(time) => time && time / 20}\n width={50}\n strokeColor=\"#1890ff\"\n status=\"normal\"\n />\n <span style={{ marginLeft: 8, width: \"100%\" }}>{message}</span>\n <Button\n style={{ flexShrink: 0 }}\n onClick={() => {\n cancelMutation?.();\n notification.destroy(notificationKey ?? \"\");\n }}\n disabled={undoableTimeout === 0}\n icon={<UndoOutlined />}\n ></Button>\n </div>\n);\n","import React from \"react\";\nimport { Grid, Layout as AntdLayout } from \"antd\";\n\nimport { Sider as DefaultSider } from \"./sider\";\nimport { Header as DefaultHeader } from \"./header\";\nimport { RefineLayoutLayoutProps } from \"./types\";\n\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\nconst { SubMenu } = Menu;\n\nexport const Sider: React.FC<RefineLayoutSiderProps> = ({\n Title: TitleFromProps,\n render,\n meta,\n}) => {\n const [collapsed, setCollapsed] = useState<boolean>(false);\n const [drawerOpen, setDrawerOpen] = useState<boolean>(false);\n const isExistAuthentication = useIsExistAuthentication();\n const routerType = useRouterType();\n const NewLink = useLink();\n const { 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 <SubMenu\n key={item.key}\n icon={icon ?? <UnorderedListOutlined />}\n title={label}\n >\n {renderTreeView(children, selectedKey)}\n </SubMenu>\n </CanAccess>\n );\n }\n const isSelected = key === selectedKey;\n const isRoute = !(\n pickNotDeprecated(meta?.parent, options?.parent, parentName) !==\n undefined && children.length === 0\n );\n return (\n <CanAccess\n key={item.key}\n resource={name.toLowerCase()}\n action=\"list\"\n params={{\n resource: item,\n }}\n >\n <Menu.Item\n key={item.key}\n style={{\n fontWeight: isSelected ? \"bold\" : \"normal\",\n }}\n icon={icon ?? (isRoute && <UnorderedListOutlined />)}\n >\n <Link to={route ?? \"\"}>{label}</Link>\n {!collapsed && isSelected && (\n <div className=\"ant-menu-tree-arrow\" />\n )}\n </Menu.Item>\n </CanAccess>\n );\n });\n };\n\n const 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\";\nconst { Text } = Typography;\n\nexport const Header: React.FC<RefineLayoutHeaderProps> = () => {\n const authProvider = useActiveAuthProvider();\n const { data: user } = useGetIdentity({\n v3LegacyAuthProviderCompatible: Boolean(authProvider?.isLegacy),\n });\n\n const shouldRenderHeader = user && (user.name || user.avatar);\n\n return shouldRenderHeader ? (\n <AntdLayout.Header\n style={{\n display: \"flex\",\n justifyContent: \"flex-end\",\n alignItems: \"center\",\n padding: \"0px 24px\",\n height: \"64px\",\n }}\n >\n <Space style={{ marginLeft: \"8px\" }}>\n {user?.name && (\n <Text style={{ color: \"white\" }} strong>\n {user.name}\n </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\nconst { SubMenu } = Menu;\nconst { useToken } = theme;\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 } = 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 <SubMenu\n key={item.key}\n icon={icon ?? <UnorderedListOutlined />}\n title={label}\n >\n {renderTreeView(children, selectedKey)}\n </SubMenu>\n </CanAccess>\n );\n }\n const isSelected = key === selectedKey;\n const isRoute = !(\n pickNotDeprecated(meta?.parent, options?.parent, parentName) !==\n undefined && children.length === 0\n );\n\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\nconst { Text } = Typography;\nconst { useToken } = theme;\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 } = 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 && <Text strong>{user.name}</Text>}\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 { useToken } = theme;\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 d=\"M12 9C13.6569 9 15 7.65685 15 6C15 4.34315 13.6569 3 12 3C10.3431 3 9 4.34315 9 6C9 7.65685 10.3431 9 12 9Z\"\n fill=\"currentColor\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M24 12C24 18.6274 18.6274 24 12 24C5.37258 24 0 18.6274 0 12C0 5.37258 5.37258 0 12 0C18.6274 0 24 5.37258 24 12ZM8 6C8 3.79086 9.79086 2 12 2C14.2091 2 16 3.79086 16 6V18C16 20.2091 14.2091 22 12 22C9.79086 22 8 20.2091 8 18V6Z\"\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 } = 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 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\n return (\n <ThemedLayoutContextProvider\n initialSiderCollapsed={initialSiderCollapsed}\n >\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 </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 { useSiderVisible } from \"@hooks\";\n\nconst { SubMenu } = Menu;\nconst { useToken } = theme;\n\nexport const ThemedSiderV2: React.FC<RefineThemedLayoutV2SiderProps> = ({\n Title: TitleFromProps,\n render,\n meta,\n}) => {\n const { token } = useToken();\n const {\n siderVisible,\n setSiderVisible,\n drawerSiderVisible,\n setDrawerSiderVisible,\n } = useSiderVisible();\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 <SubMenu\n key={item.key}\n icon={icon ?? <UnorderedListOutlined />}\n title={label}\n >\n {renderTreeView(children, selectedKey)}\n </SubMenu>\n </CanAccess>\n );\n }\n const isSelected = key === selectedKey;\n const isRoute = !(\n pickNotDeprecated(meta?.parent, options?.parent, parentName) !==\n undefined && children.length === 0\n );\n\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 {!drawerSiderVisible && 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 {!drawerSiderVisible && 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: drawerSiderVisible,\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 setSiderVisible?.(false);\n if (!breakpoint.lg) {\n setDrawerSiderVisible?.(true);\n }\n }}\n >\n {renderSider()}\n </Menu>\n </>\n );\n };\n\n const renderDrawerSider = () => {\n return (\n <>\n <Drawer\n open={siderVisible}\n onClose={() => setSiderVisible?.(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={() => setSiderVisible?.(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={drawerSiderVisible}\n onCollapse={(collapsed, type) => {\n if (type === \"clickTrigger\") {\n setDrawerSiderVisible?.(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 {drawerSiderVisible ? (\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: drawerSiderVisible ? \"80px\" : \"200px\",\n padding: drawerSiderVisible ? \"0\" : \"0 16px\",\n display: \"flex\",\n justifyContent: drawerSiderVisible\n ? \"center\"\n : \"flex-start\",\n alignItems: \"center\",\n height: \"64px\",\n backgroundColor: token.colorBgElevated,\n fontSize: \"14px\",\n }}\n >\n <RenderToTitle collapsed={drawerSiderVisible} />\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 { RefineThemedLayoutV2HeaderProps } from \"../types\";\n\nconst { Text } = Typography;\nconst { useToken } = theme;\n\nexport const ThemedHeaderV2: React.FC<RefineThemedLayoutV2HeaderProps> = ({\n isSticky,\n}) => {\n const { token } = 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 (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 && <Text strong>{user.name}</Text>}\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 { useToken } = theme;\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 d=\"M12 9C13.6569 9 15 7.65685 15 6C15 4.34315 13.6569 3 12 3C10.3431 3 9 4.34315 9 6C9 7.65685 10.3431 9 12 9Z\"\n fill=\"currentColor\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M24 12C24 18.6274 18.6274 24 12 24C5.37258 24 0 18.6274 0 12C0 5.37258 5.37258 0 12 0C18.6274 0 24 5.37258 24 12ZM8 6C8 3.79086 9.79086 2 12 2C14.2091 2 16 3.79086 16 6V18C16 20.2091 14.2091 22 12 22C9.79086 22 8 20.2091 8 18V6Z\"\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 } = 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 from \"react\";\nimport { Button } from \"antd\";\nimport { PlusSquareOutlined } from \"@ant-design/icons\";\nimport {\n useNavigation,\n useTranslate,\n useCan,\n useResource,\n useRouterContext,\n useRouterType,\n useLink,\n} from \"@refinedev/core\";\nimport { RefineButtonTestIds } from \"@refinedev/ui-types\";\n\nimport { CreateButtonProps } from \"../types\";\n\n/**\n * <CreateButton> uses Ant Design's {@link https://ant.design/components/button/ `<Button> component`}.\n * It uses the {@link https://refine.dev/docs/core/hooks/navigation/useNavigation#create `create`} method from {@link https://refine.dev/docs/core/hooks/navigation/useNavigation `useNavigation`} under the hood.\n * It can be useful to redirect the app to the create page route of resource}.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/buttons/create-button} for more details.\n */\nexport const CreateButton: React.FC<CreateButtonProps> = ({\n resource: resourceNameFromProps,\n resourceNameOrRouteName: propResourceNameOrRouteName,\n hideText = false,\n accessControl,\n meta,\n children,\n onClick,\n ...rest\n}) => {\n const accessControlEnabled = accessControl?.enabled ?? true;\n const hideIfUnauthorized = accessControl?.hideIfUnauthorized ?? false;\n const translate = useTranslate();\n const routerType = useRouterType();\n const Link = useLink();\n const { Link: LegacyLink } = useRouterContext();\n\n const ActiveLink = routerType === \"legacy\" ? LegacyLink : Link;\n\n const { createUrl: generateCreateUrl } = useNavigation();\n\n const { resource } = useResource(\n resourceNameFromProps ?? propResourceNameOrRouteName,\n );\n\n const { data } = useCan({\n resource: resource?.name,\n action: \"create\",\n queryOptions: {\n enabled: accessControlEnabled,\n },\n params: {\n resource,\n },\n });\n\n const createButtonDisabledTitle = () => {\n if (data?.can) return \"\";\n else if (data?.reason) return data.reason;\n else\n return translate(\n \"buttons.notAccessTitle\",\n \"You don't have permission to access\",\n );\n };\n\n const createUrl = resource ? generateCreateUrl(resource, meta) : \"\";\n\n if (accessControlEnabled && hideIfUnauthorized && !data?.can) {\n return null;\n }\n\n return (\n <ActiveLink\n to={createUrl}\n replace={false}\n onClick={(e: React.PointerEvent<HTMLButtonElement>) => {\n if (data?.can === false) {\n e.preventDefault();\n return;\n }\n if (onClick) {\n e.preventDefault();\n onClick(e);\n }\n }}\n >\n <Button\n icon={<PlusSquareOutlined />}\n disabled={data?.can === false}\n title={createButtonDisabledTitle()}\n data-testid={RefineButtonTestIds.CreateButton}\n type=\"primary\"\n {...rest}\n >\n {!hideText &&\n (children ?? translate(\"buttons.create\", \"Create\"))}\n </Button>\n </ActiveLink>\n );\n};\n","import React from \"react\";\nimport { Button } from \"antd\";\nimport { EditOutlined } from \"@ant-design/icons\";\nimport {\n useCan,\n useNavigation,\n useTranslate,\n useResource,\n useRouterContext,\n useRouterType,\n useLink,\n} from \"@refinedev/core\";\nimport { RefineButtonTestIds } from \"@refinedev/ui-types\";\n\nimport { EditButtonProps } from \"../types\";\n\n/**\n * `<EditButton>` uses Ant Design's {@link https://ant.design/components/button/ `<Button>`} component.\n * It uses the {@link https://refine.dev/docs/core/hooks/navigation/useNavigation#edit `edit`} method from {@link https://refine.dev/docs/core/hooks/navigation/useNavigation `useNavigation`} under the hood.\n * It can be useful when redirecting the app to the edit page with the record id route of resource}.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/buttons/edit-button} for more details.\n */\nexport const EditButton: React.FC<EditButtonProps> = ({\n resource: resourceNameFromProps,\n resourceNameOrRouteName: propResourceNameOrRouteName,\n recordItemId,\n hideText = false,\n accessControl,\n meta,\n children,\n onClick,\n ...rest\n}) => {\n const accessControlEnabled = accessControl?.enabled ?? true;\n const hideIfUnauthorized = accessControl?.hideIfUnauthorized ?? false;\n const translate = useTranslate();\n\n const routerType = useRouterType();\n const Link = useLink();\n const { Link: LegacyLink } = useRouterContext();\n\n const ActiveLink = routerType === \"legacy\" ? LegacyLink : Link;\n\n const { editUrl: generateEditUrl } = useNavigation();\n\n const { id, resource } = useResource(\n resourceNameFromProps ?? propResourceNameOrRouteName,\n );\n\n const { data } = useCan({\n resource: resource?.name,\n action: \"edit\",\n params: { id: recordItemId ?? id, resource },\n queryOptions: {\n enabled: accessControlEnabled,\n },\n });\n\n const createButtonDisabledTitle = () => {\n if (data?.can) return \"\";\n else if (data?.reason) return data.reason;\n else\n return translate(\n \"buttons.notAccessTitle\",\n \"You don't have permission to access\",\n );\n };\n\n const editUrl =\n resource && (recordItemId ?? id)\n ? generateEditUrl(resource, recordItemId! ?? id!, meta)\n : \"\";\n\n if (accessControlEnabled && hideIfUnauthorized && !data?.can) {\n return null;\n }\n\n return (\n <ActiveLink\n to={editUrl}\n replace={false}\n onClick={(e: React.PointerEvent<HTMLButtonElement>) => {\n if (data?.can === false) {\n e.preventDefault();\n return;\n }\n if (onClick) {\n e.preventDefault();\n onClick(e);\n }\n }}\n >\n <Button\n icon={<EditOutlined />}\n disabled={data?.can === false}\n title={createButtonDisabledTitle()}\n data-testid={RefineButtonTestIds.EditButton}\n {...rest}\n >\n {!hideText && (children ?? translate(\"buttons.edit\", \"Edit\"))}\n </Button>\n </ActiveLink>\n );\n};\n","import React from \"react\";\nimport { Button, Popconfirm } from \"antd\";\nimport { DeleteOutlined } from \"@ant-design/icons\";\nimport {\n useDelete,\n useTranslate,\n useMutationMode,\n useCan,\n useResource,\n pickNotDeprecated,\n useWarnAboutChange,\n} from \"@refinedev/core\";\nimport { RefineButtonTestIds } from \"@refinedev/ui-types\";\n\nimport { DeleteButtonProps } from \"../types\";\n\n/**\n * `<DeleteButton>` uses Ant Design's {@link https://ant.design/components/button/ `<Button>`} and {@link https://ant.design/components/button/ `<Popconfirm>`} components.\n * When you try to delete something, a pop-up shows up and asks for confirmation. When confirmed it executes the `useDelete` method provided by your `dataProvider`.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/buttons/delete-button} for more details.\n */\nexport const DeleteButton: React.FC<DeleteButtonProps> = ({\n resource: resourceNameFromProps,\n resourceNameOrRouteName: propResourceNameOrRouteName,\n recordItemId,\n onSuccess,\n mutationMode: mutationModeProp,\n children,\n successNotification,\n errorNotification,\n hideText = false,\n accessControl,\n metaData,\n meta,\n dataProviderName,\n confirmTitle,\n confirmOkText,\n confirmCancelText,\n invalidates,\n ...rest\n}) => {\n const accessControlEnabled = accessControl?.enabled ?? true;\n const hideIfUnauthorized = accessControl?.hideIfUnauthorized ?? false;\n const translate = useTranslate();\n\n const { id, resource } = useResource(\n resourceNameFromProps ?? propResourceNameOrRouteName,\n );\n\n const { mutationMode: mutationModeContext } = useMutationMode();\n\n const mutationMode = mutationModeProp ?? mutationModeContext;\n\n const { mutate, isLoading, variables } = useDelete();\n\n const { data } = useCan({\n resource: resource?.name,\n action: \"delete\",\n params: { id: recordItemId ?? id, resource },\n queryOptions: {\n enabled: accessControlEnabled,\n },\n });\n\n 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) && resource?.name) {\n setWarnWhen(false);\n mutate(\n {\n id: recordItemId ?? id ?? \"\",\n resource: resource?.name,\n mutationMode,\n successNotification,\n errorNotification,\n meta: pickNotDeprecated(meta, metaData),\n metaData: pickNotDeprecated(meta, metaData),\n dataProviderName,\n invalidates,\n },\n {\n onSuccess: (value) => {\n onSuccess && onSuccess(value);\n },\n },\n );\n }\n }}\n disabled={\n typeof rest?.disabled !== \"undefined\"\n ? rest.disabled\n : data?.can === false\n }\n >\n <Button\n danger\n loading={(recordItemId ?? id) === variables?.id && isLoading}\n icon={<DeleteOutlined />}\n disabled={data?.can === false}\n data-testid={RefineButtonTestIds.DeleteButton}\n {...rest}\n >\n {!hideText &&\n (children ?? translate(\"buttons.delete\", \"Delete\"))}\n </Button>\n </Popconfirm>\n );\n};\n","import React from \"react\";\nimport { Button } from \"antd\";\nimport { RedoOutlined } from \"@ant-design/icons\";\nimport {\n useOne,\n useTranslate,\n useResource,\n pickNotDeprecated,\n} from \"@refinedev/core\";\nimport { RefineButtonTestIds } from \"@refinedev/ui-types\";\n\nimport { RefreshButtonProps } from \"../types\";\n\n/**\n * `<RefreshButton>` uses Ant Design's {@link https://ant.design/components/button/ `<Button>`} component\n * to update the data shown on the page via the {@link https://refine.dev/docs/core/hooks/data/useOne `useOne`} method provided by your dataProvider.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/buttons/refresh-button} for more details.\n */\nexport const RefreshButton: React.FC<RefreshButtonProps> = ({\n resource: resourceNameFromProps,\n resourceNameOrRouteName: propResourceNameOrRouteName,\n recordItemId,\n hideText = false,\n meta,\n metaData,\n dataProviderName,\n children,\n onClick,\n ...rest\n}) => {\n const translate = useTranslate();\n\n const { resource, id } = useResource(\n resourceNameFromProps ?? propResourceNameOrRouteName,\n );\n\n const { refetch, isFetching } = useOne({\n resource: resource?.name,\n id: recordItemId ?? id,\n queryOptions: {\n enabled: false,\n },\n meta: pickNotDeprecated(meta, metaData),\n metaData: pickNotDeprecated(meta, metaData),\n liveMode: \"off\",\n dataProviderName,\n });\n\n return (\n <Button\n // TODO: fix any type\n onClick={(e) => (onClick ? onClick(e as any) : refetch())}\n icon={<RedoOutlined spin={isFetching} />}\n data-testid={RefineButtonTestIds.RefreshButton}\n {...rest}\n >\n {!hideText && (children ?? translate(\"buttons.refresh\", \"Refresh\"))}\n </Button>\n );\n};\n","import React from \"react\";\nimport { Button } from \"antd\";\nimport { EyeOutlined } from \"@ant-design/icons\";\nimport {\n useCan,\n useNavigation,\n useTranslate,\n useResource,\n useRouterContext,\n useRouterType,\n useLink,\n} from \"@refinedev/core\";\nimport { RefineButtonTestIds } from \"@refinedev/ui-types\";\n\nimport { ShowButtonProps } from \"../types\";\n\n/**\n * `<ShowButton>` uses Ant Design's {@link https://ant.design/components/button/ `<Button>`} component.\n * It uses the {@link https://refine.dev/docs/core/hooks/navigation/useNavigation#show `show`} method from {@link https://refine.dev/docs/core/hooks/navigation/useNavigation `useNavigation`} under the hood.\n * It can be useful when redirecting the app to the show page with the record id route of resource.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/buttons/show-button} for more details.\n */\nexport const ShowButton: React.FC<ShowButtonProps> = ({\n resource: resourceNameFromProps,\n resourceNameOrRouteName: propResourceNameOrRouteName,\n recordItemId,\n hideText = false,\n accessControl,\n meta,\n children,\n onClick,\n ...rest\n}) => {\n const accessControlEnabled = accessControl?.enabled ?? true;\n const hideIfUnauthorized = accessControl?.hideIfUnauthorized ?? false;\n const { showUrl: generateShowUrl } = useNavigation();\n const routerType = useRouterType();\n const Link = useLink();\n const { Link: LegacyLink } = useRouterContext();\n\n const ActiveLink = routerType === \"legacy\" ? LegacyLink : Link;\n\n const translate = useTranslate();\n\n const { id, resource } = useResource(\n resourceNameFromProps ?? propResourceNameOrRouteName,\n );\n\n const { data } = useCan({\n resource: resource?.name,\n action: \"show\",\n params: { id: recordItemId ?? id, resource },\n queryOptions: {\n enabled: accessControlEnabled,\n },\n });\n\n const createButtonDisabledTitle = () => {\n if (data?.can) return \"\";\n else if (data?.reason) return data.reason;\n else\n return translate(\n \"buttons.notAccessTitle\",\n \"You don't have permission to access\",\n );\n };\n\n const showUrl =\n resource && (recordItemId || id)\n ? generateShowUrl(resource, recordItemId! ?? id!, meta)\n : \"\";\n\n if (accessControlEnabled && hideIfUnauthorized && !data?.can) {\n return null;\n }\n\n return (\n <ActiveLink\n to={showUrl}\n replace={false}\n onClick={(e: React.PointerEvent<HTMLButtonElement>) => {\n if (data?.can === false) {\n e.preventDefault();\n return;\n }\n if (onClick) {\n e.preventDefault();\n onClick(e);\n }\n }}\n >\n <Button\n icon={<EyeOutlined />}\n disabled={data?.can === false}\n title={createButtonDisabledTitle()}\n data-testid={RefineButtonTestIds.ShowButton}\n {...rest}\n >\n {!hideText && (children ?? translate(\"buttons.show\", \"Show\"))}\n </Button>\n </ActiveLink>\n );\n};\n","import React from \"react\";\nimport { Button } from \"antd\";\nimport { BarsOutlined } from \"@ant-design/icons\";\nimport {\n useCan,\n useNavigation,\n useTranslate,\n userFriendlyResourceName,\n useResource,\n useRouterContext,\n useRouterType,\n useLink,\n pickNotDeprecated,\n} from \"@refinedev/core\";\nimport { RefineButtonTestIds } from \"@refinedev/ui-types\";\n\nimport { ListButtonProps } from \"../types\";\n\n/**\n * `<ListButton>` is using Ant Design's {@link https://ant.design/components/button/ `<Button>`} component.\n * It uses the {@link https://refine.dev/docs/core/hooks/navigation/useNavigation#list `list`} method from {@link https://refine.dev/docs/core/hooks/navigation/useNavigation `useNavigation`} under the hood.\n * It can be useful when redirecting the app to the list page route of resource}.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/buttons/list-button} for more details.\n */\nexport const ListButton: React.FC<ListButtonProps> = ({\n resource: resourceNameFromProps,\n resourceNameOrRouteName: propResourceNameOrRouteName,\n hideText = false,\n accessControl,\n meta,\n children,\n onClick,\n ...rest\n}) => {\n const accessControlEnabled = accessControl?.enabled ?? true;\n const hideIfUnauthorized = accessControl?.hideIfUnauthorized ?? false;\n const { listUrl: generateListUrl } = useNavigation();\n const routerType = useRouterType();\n const Link = useLink();\n const { Link: LegacyLink } = useRouterContext();\n\n const ActiveLink = routerType === \"legacy\" ? LegacyLink : Link;\n\n const translate = useTranslate();\n\n const { resource } = useResource(\n resourceNameFromProps ?? propResourceNameOrRouteName,\n );\n\n const { data } = useCan({\n resource: resource?.name,\n action: \"list\",\n queryOptions: {\n enabled: accessControlEnabled,\n },\n params: {\n resource,\n },\n });\n\n const createButtonDisabledTitle = () => {\n if (data?.can) return \"\";\n else if (data?.reason) return data.reason;\n else\n return translate(\n \"buttons.notAccessTitle\",\n \"You don't have permission to access\",\n );\n };\n\n const listUrl = resource ? generateListUrl(resource, meta) : \"\";\n\n if (accessControlEnabled && hideIfUnauthorized && !data?.can) {\n return null;\n }\n\n return (\n <ActiveLink\n to={listUrl}\n replace={false}\n onClick={(e: React.PointerEvent<HTMLButtonElement>) => {\n if (data?.can === false) {\n e.preventDefault();\n return;\n }\n if (onClick) {\n e.preventDefault();\n onClick(e);\n }\n }}\n >\n <Button\n icon={<BarsOutlined />}\n disabled={data?.can === false}\n title={createButtonDisabledTitle()}\n data-testid={RefineButtonTestIds.ListButton}\n {...rest}\n >\n {!hideText &&\n (children ??\n translate(\n `${\n resource?.name ??\n resourceNameFromProps ??\n propResourceNameOrRouteName\n }.titles.list`,\n userFriendlyResourceName(\n resource?.meta?.label ??\n resource?.label ??\n resource?.name ??\n pickNotDeprecated(\n resourceNameFromProps,\n propResourceNameOrRouteName,\n ),\n \"plural\",\n ),\n ))}\n </Button>\n </ActiveLink>\n );\n};\n","import React from \"react\";\nimport { Button } from \"antd\";\nimport { ExportOutlined } from \"@ant-design/icons\";\nimport { useTranslate } from \"@refinedev/core\";\nimport { RefineButtonTestIds } from \"@refinedev/ui-types\";\n\nimport { ExportButtonProps } from \"../types\";\n\n/**\n * `<ExportButton>` is an Ant Design {@link https://ant.design/components/button/ `<Button>`} with a default export icon and a default text with \"Export\".\n * It only has presentational value.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/buttons/export-button} for more details.\n */\nexport const ExportButton: React.FC<ExportButtonProps> = ({\n hideText = false,\n children,\n ...rest\n}) => {\n const translate = useTranslate();\n\n return (\n <Button\n type=\"default\"\n icon={<ExportOutlined />}\n data-testid={RefineButtonTestIds.ExportButton}\n {...rest}\n >\n {!hideText && (children ?? translate(\"buttons.export\", \"Export\"))}\n </Button>\n );\n};\n","import React from \"react\";\nimport { Button } from \"antd\";\nimport { SaveOutlined } from \"@ant-design/icons\";\nimport { useTranslate } from \"@refinedev/core\";\nimport { RefineButtonTestIds } from \"@refinedev/ui-types\";\n\nimport { SaveButtonProps } from \"../types\";\n\n/**\n * `<SaveButton>` uses Ant Design's {@link https://ant.design/components/button/ `<Button>`} component.\n * It uses it for presantation purposes only. Some of the hooks that refine has adds features to this button.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/buttons/save-button} for more details.\n */\nexport const SaveButton: React.FC<SaveButtonProps> = ({\n hideText = false,\n children,\n ...rest\n}) => {\n const translate = useTranslate();\n\n return (\n <Button\n type=\"primary\"\n icon={<SaveOutlined />}\n data-testid={RefineButtonTestIds.SaveButton}\n {...rest}\n >\n {!hideText && (children ?? translate(\"buttons.save\", \"Save\"))}\n </Button>\n );\n};\n","import React from \"react\";\nimport { Button } from \"antd\";\nimport { PlusSquareOutlined } from \"@ant-design/icons\";\nimport {\n useCan,\n useNavigation,\n useTranslate,\n useResource,\n useRouterContext,\n useRouterType,\n useLink,\n} from \"@refinedev/core\";\nimport { RefineButtonTestIds } from \"@refinedev/ui-types\";\n\nimport { CloneButtonProps } from \"../types\";\n\n/**\n * `<CloneButton>` uses Ant Design's {@link https://ant.design/components/button/ `<Button> component`}.\n * It uses the {@link https://refine.dev/docs/core/hooks/navigation/useNavigation#clone `clone`} method from {@link https://refine.dev/docs/core/hooks/navigation/useNavigation useNavigation} under the hood.\n * It can be useful when redirecting the app to the create page with the record id route of resource.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/buttons/clone-button} for more details.\n */\nexport const CloneButton: React.FC<CloneButtonProps> = ({\n resourceNameOrRouteName: propResourceNameOrRouteName,\n resource: resourceNameFromProps,\n recordItemId,\n hideText = false,\n accessControl,\n meta,\n children,\n onClick,\n ...rest\n}) => {\n const accessControlEnabled = accessControl?.enabled ?? true;\n const hideIfUnauthorized = accessControl?.hideIfUnauthorized ?? false;\n const { cloneUrl: generateCloneUrl } = useNavigation();\n const routerType = useRouterType();\n const Link = useLink();\n const { Link: LegacyLink } = useRouterContext();\n\n const ActiveLink = routerType === \"legacy\" ? LegacyLink : Link;\n\n const translate = useTranslate();\n\n const { id, resource } = useResource(\n resourceNameFromProps ?? propResourceNameOrRouteName,\n );\n\n const { data } = useCan({\n resource: resource?.name,\n action: \"create\",\n params: { id: recordItemId ?? id, resource },\n queryOptions: {\n enabled: accessControlEnabled,\n },\n });\n\n const createButtonDisabledTitle = () => {\n if (data?.can) return \"\";\n else if (data?.reason) return data.reason;\n else\n return translate(\n \"buttons.notAccessTitle\",\n \"You don't have permission to access\",\n );\n };\n\n const cloneUrl =\n resource && (recordItemId || id)\n ? generateCloneUrl(resource, recordItemId! ?? id!, meta)\n : \"\";\n\n if (accessControlEnabled && hideIfUnauthorized && !data?.can) {\n return null;\n }\n\n return (\n <ActiveLink\n to={cloneUrl}\n replace={false}\n onClick={(e: React.PointerEvent<HTMLButtonElement>) => {\n if (data?.can === false) {\n e.preventDefault();\n return;\n }\n if (onClick) {\n e.preventDefault();\n onClick(e);\n }\n }}\n >\n <Button\n icon={<PlusSquareOutlined />}\n disabled={data?.can === false}\n title={createButtonDisabledTitle()}\n data-testid={RefineButtonTestIds.CloneButton}\n {...rest}\n >\n {!hideText && (children ?? translate(\"buttons.clone\", \"Clone\"))}\n </Button>\n </ActiveLink>\n );\n};\n","import React from \"react\";\nimport { Button, Upload } from \"antd\";\nimport { ImportOutlined } from \"@ant-design/icons\";\nimport { useTranslate } from \"@refinedev/core\";\nimport { RefineButtonTestIds } from \"@refinedev/ui-types\";\n\nimport { ImportButtonProps } from \"../types\";\n\n/**\n * `<ImportButton>` is compatible with the {@link https://refine.dev/docs/ui-frameworks/antd/hooks/import/useImport `useImport`} hook and is meant to be used as it's upload button.\n * It uses Ant Design's {@link https://ant.design/components/button/ `<Button>`} and {@link https://ant.design/components/upload/ `<Upload>`} components.\n * It wraps a `<Button>` component with an `<Upload>` component and accepts properties for `<Button>` and `<Upload>` components separately.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/buttons/import-button} for more details.\n */\nexport const ImportButton: React.FC<ImportButtonProps> = ({\n uploadProps,\n buttonProps,\n hideText = false,\n children,\n}) => {\n const translate = useTranslate();\n\n return (\n <Upload {...uploadProps}>\n <Button\n icon={<ImportOutlined />}\n data-testid={RefineButtonTestIds.ImportButton}\n {...buttonProps}\n >\n {!hideText &&\n (children ?? translate(\"buttons.import\", \"Import\"))}\n </Button>\n </Upload>\n );\n};\n","import React from \"react\";\nimport { Space } from \"antd\";\nimport {\n useTranslate,\n userFriendlyResourceName,\n useRefineContext,\n useRouterType,\n useResource,\n} from \"@refinedev/core\";\n\nimport { Breadcrumb, CreateButton, PageHeader } from \"@components\";\nimport { ListProps } from \"../types\";\n\n/**\n * `<List>` provides us a layout for displaying the page.\n * It does not contain any logic but adds extra functionalities like a refresh button.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/basic-views/list} for more details.\n */\nexport const List: React.FC<ListProps> = ({\n canCreate,\n title,\n children,\n createButtonProps,\n resource: resourceFromProps,\n wrapperProps,\n contentProps,\n headerProps,\n breadcrumb: breadcrumbFromProps,\n headerButtonProps,\n headerButtons,\n}) => {\n const translate = useTranslate();\n const { options: { breadcrumb: globalBreadcrumb } = {} } =\n useRefineContext();\n\n const routerType = useRouterType();\n\n const { resource } = useResource(resourceFromProps);\n\n const isCreateButtonVisible =\n canCreate ??\n ((resource?.canCreate ?? !!resource?.create) || createButtonProps);\n\n const breadcrumb =\n typeof breadcrumbFromProps === \"undefined\"\n ? globalBreadcrumb\n : breadcrumbFromProps;\n\n const defaultExtra = isCreateButtonVisible ? (\n <CreateButton\n size=\"middle\"\n resource={\n routerType === \"legacy\"\n ? resource?.route\n : resource?.identifier ?? resource?.name\n }\n {...createButtonProps}\n />\n ) : null;\n\n return (\n <div {...(wrapperProps ?? {})}>\n <PageHeader\n ghost={false}\n title={\n title ??\n translate(\n `${resource?.name}.titles.list`,\n userFriendlyResourceName(\n resource?.meta?.label ??\n resource?.options?.label ??\n resource?.label ??\n resource?.name,\n \"plural\",\n ),\n )\n }\n extra={\n headerButtons ? (\n <Space wrap {...headerButtonProps}>\n {typeof headerButtons === \"function\"\n ? headerButtons({\n defaultButtons: defaultExtra,\n })\n : headerButtons}\n </Space>\n ) : (\n defaultExtra\n )\n }\n breadcrumb={\n typeof breadcrumb !== \"undefined\" ? (\n <>{breadcrumb}</> ?? undefined\n ) : (\n <Breadcrumb />\n )\n }\n {...(headerProps ?? {})}\n >\n <div {...(contentProps ?? {})}>{children}</div>\n </PageHeader>\n </div>\n );\n};\n","import React from \"react\";\nimport { Card, Space, Spin } from \"antd\";\nimport {\n useNavigation,\n useTranslate,\n userFriendlyResourceName,\n useRefineContext,\n useRouterType,\n useResource,\n useBack,\n} from \"@refinedev/core\";\n\nimport { Breadcrumb, SaveButton, PageHeader } from \"@components\";\nimport { CreateProps } from \"../types\";\n\n/**\n * `<Create>` provides us a layout to display the page.\n * It does not contain any logic but adds extra functionalities like action buttons and giving titles to the page.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/basic-views/create} for more details.\n */\nexport const Create: React.FC<CreateProps> = ({\n title,\n saveButtonProps,\n children,\n resource: resourceFromProps,\n isLoading = false,\n breadcrumb: breadcrumbFromProps,\n wrapperProps,\n headerProps,\n contentProps,\n headerButtonProps,\n headerButtons,\n footerButtonProps,\n footerButtons,\n goBack: goBackFromProps,\n}) => {\n const translate = useTranslate();\n const { options: { breadcrumb: globalBreadcrumb } = {} } =\n useRefineContext();\n\n const routerType = useRouterType();\n const back = useBack();\n const { goBack } = useNavigation();\n\n const { resource, action } = useResource(resourceFromProps);\n\n const breadcrumb =\n typeof breadcrumbFromProps === \"undefined\"\n ? globalBreadcrumb\n : breadcrumbFromProps;\n\n const defaultFooterButtons = (\n <>\n <SaveButton\n {...(isLoading ? { disabled: true } : {})}\n {...saveButtonProps}\n htmlType=\"submit\"\n />\n </>\n );\n\n return (\n <div {...(wrapperProps ?? {})}>\n <PageHeader\n ghost={false}\n backIcon={goBackFromProps}\n onBack={\n action !== \"list\" || typeof action !== \"undefined\"\n ? routerType === \"legacy\"\n ? goBack\n : back\n : undefined\n }\n title={\n title ??\n translate(\n `${resource?.name}.titles.create`,\n `Create ${userFriendlyResourceName(\n resource?.meta?.label ??\n resource?.options?.label ??\n resource?.label ??\n resource?.name,\n \"singular\",\n )}`,\n )\n }\n breadcrumb={\n typeof breadcrumb !== \"undefined\" ? (\n <>{breadcrumb}</> ?? undefined\n ) : (\n <Breadcrumb />\n )\n }\n extra={\n <Space wrap {...(headerButtonProps ?? {})}>\n {headerButtons\n ? typeof headerButtons === \"function\"\n ? headerButtons({\n defaultButtons: null,\n })\n : headerButtons\n : null}\n </Space>\n }\n {...(headerProps ?? {})}\n >\n <Spin spinning={isLoading}>\n <Card\n bordered={false}\n actions={[\n <Space\n key=\"action-buttons\"\n style={{ float: \"right\", marginRight: 24 }}\n {...(footerButtonProps ?? {})}\n >\n {footerButtons\n ? typeof footerButtons === \"function\"\n ? footerButtons({\n defaultButtons:\n defaultFooterButtons,\n })\n : footerButtons\n : defaultFooterButtons}\n </Space>,\n ]}\n {...(contentProps ?? {})}\n >\n {children}\n </Card>\n </Spin>\n </PageHeader>\n </div>\n );\n};\n","import React from \"react\";\n\nimport { Card, Space, Spin } from \"antd\";\nimport {\n useMutationMode,\n useNavigation,\n useTranslate,\n userFriendlyResourceName,\n useRefineContext,\n useRouterType,\n useBack,\n useResource,\n useGo,\n useToPath,\n} from \"@refinedev/core\";\n\nimport {\n DeleteButton,\n RefreshButton,\n ListButton,\n SaveButton,\n Breadcrumb,\n PageHeader,\n} from \"@components\";\nimport { EditProps } from \"../types\";\n\n/**\n * `<Edit>` provides us a layout for displaying the page.\n * It does not contain any logic but adds extra functionalities like a refresh button.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/basic-views/edit} for more details.\n */\nexport const Edit: React.FC<EditProps> = ({\n title,\n saveButtonProps,\n mutationMode: mutationModeProp,\n recordItemId,\n children,\n deleteButtonProps,\n canDelete,\n resource: resourceFromProps,\n isLoading = false,\n dataProviderName,\n breadcrumb: breadcrumbFromProps,\n wrapperProps,\n headerProps,\n contentProps,\n headerButtonProps,\n headerButtons,\n footerButtonProps,\n footerButtons,\n goBack: goBackFromProps,\n}) => {\n const translate = useTranslate();\n const { options: { breadcrumb: globalBreadcrumb } = {} } =\n useRefineContext();\n const { mutationMode: mutationModeContext } = useMutationMode();\n const mutationMode = mutationModeProp ?? mutationModeContext;\n\n const routerType = useRouterType();\n const back = useBack();\n const go = useGo();\n const { goBack, list: legacyGoList } = useNavigation();\n\n const {\n resource,\n action,\n id: idFromParams,\n } = useResource(resourceFromProps);\n\n const goListPath = useToPath({\n resource,\n action: \"list\",\n });\n\n const id = recordItemId ?? idFromParams;\n\n const breadcrumb =\n typeof breadcrumbFromProps === \"undefined\"\n ? globalBreadcrumb\n : breadcrumbFromProps;\n\n const isDeleteButtonVisible =\n canDelete ??\n ((resource?.meta?.canDelete ?? resource?.canDelete) ||\n deleteButtonProps);\n\n const defaultHeaderButtons = (\n <>\n {!recordItemId && (\n <ListButton\n {...(isLoading ? { disabled: true } : {})}\n resource={\n routerType === \"legacy\"\n ? resource?.route\n : resource?.identifier ?? resource?.name\n }\n />\n )}\n <RefreshButton\n {...(isLoading ? { disabled: true } : {})}\n resource={\n routerType === \"legacy\"\n ? resource?.route\n : resource?.identifier ?? resource?.name\n }\n recordItemId={id}\n dataProviderName={dataProviderName}\n />\n </>\n );\n\n const defaultFooterButtons = (\n <>\n {isDeleteButtonVisible && (\n <DeleteButton\n {...(isLoading ? { disabled: true } : {})}\n resource={\n routerType === \"legacy\"\n ? resource?.route\n : resource?.identifier ?? resource?.name\n }\n mutationMode={mutationMode}\n onSuccess={() => {\n if (routerType === \"legacy\") {\n legacyGoList(\n resource?.route ?? resource?.name ?? \"\",\n );\n } else {\n go({ to: goListPath });\n }\n }}\n recordItemId={id}\n dataProviderName={dataProviderName}\n {...deleteButtonProps}\n />\n )}\n <SaveButton\n {...(isLoading ? { disabled: true } : {})}\n {...saveButtonProps}\n />\n </>\n );\n\n return (\n <div {...(wrapperProps ?? {})}>\n <PageHeader\n ghost={false}\n backIcon={goBackFromProps}\n onBack={\n action !== \"list\" && typeof action !== \"undefined\"\n ? routerType === \"legacy\"\n ? goBack\n : back\n : undefined\n }\n title={\n title ??\n translate(\n `${resource?.name}.titles.edit`,\n `Edit ${userFriendlyResourceName(\n resource?.meta?.label ??\n resource?.options?.label ??\n resource?.label ??\n resource?.name,\n \"singular\",\n )}`,\n )\n }\n extra={\n <Space wrap {...(headerButtonProps ?? {})}>\n {headerButtons\n ? typeof headerButtons === \"function\"\n ? headerButtons({\n defaultButtons: defaultHeaderButtons,\n })\n : headerButtons\n : defaultHeaderButtons}\n </Space>\n }\n breadcrumb={\n typeof breadcrumb !== \"undefined\" ? (\n <>{breadcrumb}</> ?? undefined\n ) : (\n <Breadcrumb />\n )\n }\n {...(headerProps ?? {})}\n >\n <Spin spinning={isLoading}>\n <Card\n bordered={false}\n actions={[\n <Space\n key=\"footer-buttons\"\n wrap\n style={{\n float: \"right\",\n marginRight: 24,\n }}\n {...(footerButtonProps ?? {})}\n >\n {footerButtons\n ? typeof footerButtons === \"function\"\n ? footerButtons({\n defaultButtons:\n defaultFooterButtons,\n })\n : footerButtons\n : defaultFooterButtons}\n </Space>,\n ]}\n {...(contentProps ?? {})}\n >\n {children}\n </Card>\n </Spin>\n </PageHeader>\n </div>\n );\n};\n","import React from \"react\";\nimport { Card, Space, Spin } from \"antd\";\nimport {\n useNavigation,\n useTranslate,\n userFriendlyResourceName,\n useRefineContext,\n useResource,\n useToPath,\n useRouterType,\n useBack,\n useGo,\n} from \"@refinedev/core\";\n\nimport {\n EditButton,\n DeleteButton,\n RefreshButton,\n ListButton,\n Breadcrumb,\n PageHeader,\n} from \"@components\";\nimport { ShowProps } from \"../types\";\n\n/**\n * `<Show>` provides us a layout for displaying the page.\n * It does not contain any logic but adds extra functionalities like a refresh button.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/basic-views/show} for more details.\n */\nexport const Show: React.FC<ShowProps> = ({\n title,\n canEdit,\n canDelete,\n isLoading = false,\n children,\n resource: resourceFromProps,\n recordItemId,\n dataProviderName,\n breadcrumb: breadcrumbFromProps,\n contentProps,\n headerProps,\n wrapperProps,\n headerButtons,\n footerButtons,\n footerButtonProps,\n headerButtonProps,\n goBack: goBackFromProps,\n}) => {\n const translate = useTranslate();\n const { options: { breadcrumb: globalBreadcrumb } = {} } =\n useRefineContext();\n\n const routerType = useRouterType();\n const back = useBack();\n const go = useGo();\n const { goBack, list: legacyGoList } = useNavigation();\n\n const {\n resource,\n action,\n id: idFromParams,\n } = useResource(resourceFromProps);\n\n const goListPath = useToPath({\n resource,\n action: \"list\",\n });\n\n const id = recordItemId ?? idFromParams;\n\n const breadcrumb =\n typeof breadcrumbFromProps === \"undefined\"\n ? globalBreadcrumb\n : breadcrumbFromProps;\n\n const isDeleteButtonVisible =\n canDelete ?? resource?.meta?.canDelete ?? resource?.canDelete;\n const isEditButtonVisible =\n canEdit ?? resource?.canEdit ?? !!resource?.edit;\n\n const defaultHeaderButtons = (\n <>\n {!recordItemId && (\n <ListButton\n resource={\n routerType === \"legacy\"\n ? resource?.route\n : resource?.identifier ?? resource?.name\n }\n />\n )}\n {isEditButtonVisible && (\n <EditButton\n {...(isLoading ? { disabled: true } : {})}\n type=\"primary\"\n resource={\n routerType === \"legacy\"\n ? resource?.route\n : resource?.identifier ?? resource?.name\n }\n recordItemId={id}\n />\n )}\n {isDeleteButtonVisible && (\n <DeleteButton\n {...(isLoading ? { disabled: true } : {})}\n resource={\n routerType === \"legacy\"\n ? resource?.route\n : resource?.identifier ?? resource?.name\n }\n recordItemId={id}\n onSuccess={() => {\n if (routerType === \"legacy\") {\n legacyGoList(\n resource?.route ?? resource?.name ?? \"\",\n );\n } else {\n go({ to: goListPath });\n }\n }}\n dataProviderName={dataProviderName}\n />\n )}\n <RefreshButton\n {...(isLoading ? { disabled: true } : {})}\n resource={\n routerType === \"legacy\"\n ? resource?.route\n : resource?.identifier ?? resource?.name\n }\n recordItemId={id}\n dataProviderName={dataProviderName}\n />\n </>\n );\n\n return (\n <div {...(wrapperProps ?? {})}>\n <PageHeader\n ghost={false}\n backIcon={goBackFromProps}\n onBack={\n action !== \"list\" && typeof action !== \"undefined\"\n ? routerType === \"legacy\"\n ? goBack\n : back\n : undefined\n }\n title={\n title ??\n translate(\n `${resource?.name}.titles.show`,\n `Show ${userFriendlyResourceName(\n resource?.meta?.label ??\n resource?.options?.label ??\n resource?.label ??\n resource?.name,\n \"singular\",\n )}`,\n )\n }\n extra={\n <Space\n key=\"extra-buttons\"\n wrap\n {...(headerButtonProps ?? {})}\n >\n {headerButtons\n ? typeof headerButtons === \"function\"\n ? headerButtons({\n defaultButtons: defaultHeaderButtons,\n })\n : headerButtons\n : defaultHeaderButtons}\n </Space>\n }\n breadcrumb={\n typeof breadcrumb !== \"undefined\" ? (\n <>{breadcrumb}</> ?? undefined\n ) : (\n <Breadcrumb />\n )\n }\n {...(headerProps ?? {})}\n >\n <Spin spinning={isLoading}>\n <Card\n bordered={false}\n actions={\n footerButtons\n ? [\n <Space\n key=\"footer-buttons\"\n wrap\n {...footerButtonProps}\n >\n {typeof footerButtons === \"function\"\n ? footerButtons({\n defaultButtons: null,\n })\n : footerButtons}\n </Space>,\n ]\n : undefined\n }\n {...(contentProps ?? {})}\n >\n {children}\n </Card>\n </Spin>\n </PageHeader>\n </div>\n );\n};\n","import React from \"react\";\nimport { Typography } from \"antd\";\n\nconst { Text } = Typography;\n\nimport { TextFieldProps } from \"../types\";\n\n/**\n * This field lets you show basic text. It uses Ant Design's {@link https://ant.design/components/typography/#Typography.Text `<Typography.Text>`} component.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/fields/text} for more details.\n */\nexport const TextField: React.FC<TextFieldProps> = ({ value, ...rest }) => {\n return <Text {...rest}>{value}</Text>;\n};\n","import React from \"react\";\nimport { Tag } from \"antd\";\n\nimport { TagFieldProps } from \"../types\";\n\n/**\n * This field lets you display a value in a tag. It uses Ant Design's {@link https://ant.design/components/tag/ `<Tag>`} component.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/fields/tag} for more details.\n */\nexport const TagField: React.FC<TagFieldProps> = ({ value, ...rest }) => {\n return <Tag {...rest}>{value?.toString()}</Tag>;\n};\n","import React from \"react\";\nimport { Typography } from \"antd\";\n\nconst { Link } = Typography;\n\nimport { EmailFieldProps } from \"../types\";\n\n/**\n * This field is used to display email values. It uses the {@link https://ant.design/components/typography/#FAQ `<Link>`} component\n * of {@link https://ant.design/components/typography `<Typography>`} from Ant Design.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/fields/email} for more details.\n */\nexport const EmailField: React.FC<EmailFieldProps> = ({ value, ...rest }) => {\n return (\n <Link href={`mailto:${value}`} {...rest}>\n {value}\n </Link>\n );\n};\n","import React from \"react\";\nimport { Image } from \"antd\";\n\nimport { ImageFieldProps } from \"../types\";\n\n/**\n * This field is used to display images and uses {@link https://ant.design/components/image/#header `<Image>`} from Ant Design.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/fields/image} for more details.\n */\nexport const ImageField: React.FC<ImageFieldProps> = ({\n value,\n imageTitle,\n ...rest\n}) => {\n return <Image {...rest} src={value} title={imageTitle} />;\n};\n","import React from \"react\";\nimport { Tooltip } from \"antd\";\n\nimport { CheckOutlined, CloseOutlined } from \"@ant-design/icons\";\n\nimport { BooleanFieldProps } from \"../types\";\n\n/**\n * This field is used to display boolean values. It uses the {@link https://ant.design/components/tooltip/#header `<Tooltip>`} values from Ant Design.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/fields/boolean} for more details.\n */\nexport const BooleanField: React.FC<BooleanFieldProps> = ({\n value,\n valueLabelTrue = \"true\",\n valueLabelFalse = \"false\",\n trueIcon = <CheckOutlined />,\n falseIcon = <CloseOutlined />,\n ...rest\n}) => {\n return (\n <Tooltip title={value ? valueLabelTrue : valueLabelFalse} {...rest}>\n {value ? <span>{trueIcon}</span> : <span>{falseIcon}</span>}\n </Tooltip>\n );\n};\n","import React from \"react\";\nimport dayjs from \"dayjs\";\nimport { Typography } from \"antd\";\n\nimport LocalizedFormat from \"dayjs/plugin/localizedFormat\";\n\ndayjs.extend(LocalizedFormat);\n\nconst defaultLocale = dayjs.locale();\n\nimport { DateFieldProps } from \"../types\";\n\n/**\n * This field is used to display dates. It uses {@link https://day.js.org/docs/en/display/format `Day.js`} to display date format.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/fields/date} for more details.\n */\nexport const DateField: React.FC<DateFieldProps> = ({\n value,\n locales,\n format: dateFormat = \"L\",\n ...rest\n}) => {\n const { Text } = Typography;\n\n return (\n <Text {...rest}>\n {dayjs(value)\n .locale(locales || defaultLocale)\n .format(dateFormat)}\n </Text>\n );\n};\n","import React from \"react\";\n\nimport { UrlField } from \"@components\";\nimport { FileFieldProps } from \"../types\";\n\n/**\n * This field is used to display files and uses {@link https://ant.design/components/typography `<Typography.Link>`} from Ant Design.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/fields/file} for more details.\n */\nexport const FileField: React.FC<FileFieldProps> = ({\n title,\n src,\n ...rest\n}) => {\n return (\n <UrlField value={src} title={title} {...rest}>\n {title ?? src}\n </UrlField>\n );\n};\n","import React from \"react\";\nimport { Typography } from \"antd\";\n\nconst { Link } = Typography;\n\nimport { UrlFieldProps } from \"../types\";\n\n/**\n * This field lets you embed a link. It uses Ant Design's {@link https://ant.design/components/typography/ `<Typography.Link>`} component.\n * You can pass a URL in its `value` property and you can show a text in its place by passing any `children`.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/fields/url} for more details.\n */\nexport const UrlField: React.FC<UrlFieldProps> = ({\n children,\n value,\n ...rest\n}) => {\n return (\n <Link href={value} {...rest}>\n {children ?? value}\n </Link>\n );\n};\n","import React from \"react\";\nimport { Typography } from \"antd\";\n\nconst { Text } = Typography;\n\nfunction toLocaleStringSupportsOptions() {\n return !!(\n typeof Intl == \"object\" &&\n Intl &&\n typeof Intl.NumberFormat == \"function\"\n );\n}\n\nimport { NumberFieldProps } from \"../types\";\n\n/**\n * This field is used to display a number formatted according to the browser locale, right aligned. and uses {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl `Intl`} to display date format.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/fields/number} for more details.\n */\nexport const NumberField: React.FC<NumberFieldProps> = ({\n value,\n locale,\n options,\n ...rest\n}) => {\n const number = Number(value);\n\n return (\n <Text {...rest}>\n {toLocaleStringSupportsOptions()\n ? number.toLocaleString(locale, options)\n : number}\n </Text>\n );\n};\n","import React from \"react\";\nimport ReactMarkdown from \"react-markdown\";\nimport gfm from \"remark-gfm\";\n\nimport { RefineFieldMarkdownProps } from \"../types\";\n\n/**\n * This field lets you display markdown content. It supports {@link https://github.github.com/gfm/ GitHub Flavored Markdown}.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/fields/markdown} for more details.\n */\nexport const MarkdownField: React.FC<RefineFieldMarkdownProps> = ({\n value = \"\",\n}) => {\n return <ReactMarkdown plugins={[gfm]}>{value}</ReactMarkdown>;\n};\n","import React, { ReactNode, useState } from \"react\";\nimport { Button, Space } from \"antd\";\nimport type { FilterDropdownProps as AntdFilterDropdownProps } from \"antd/lib/table/interface\";\nimport dayjs from \"dayjs\";\nimport { FilterOutlined } from \"@ant-design/icons\";\nimport { useTranslate } from \"@refinedev/core\";\n\nexport type FilterDropdownProps = AntdFilterDropdownProps & {\n mapValue?: (selectedKeys: React.Key[]) => any;\n children: ReactNode;\n};\n\n/**\n * `<FilterDropdown>` is a helper component for {@link https://ant.design/components/table/#components-table-demo-custom-filter-panel filter dropdowns in Ant Design `<Table>` components.}\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/filter-dropdown} for more details.\n */\nexport const FilterDropdown: React.FC<FilterDropdownProps> = (props) => {\n const {\n setSelectedKeys,\n confirm,\n clearFilters,\n mapValue,\n selectedKeys,\n children,\n } = props;\n\n const [value, setValue] = useState<any[] | undefined>(selectedKeys);\n const translate = useTranslate();\n\n const clearFilter = () => {\n if (clearFilters) {\n setValue([]);\n clearFilters();\n }\n };\n\n const onFilter = () => {\n const _mappedValue = mappedValue(value);\n\n let keys;\n if (typeof _mappedValue === \"number\") {\n keys = `${_mappedValue}`;\n } else if (dayjs.isDayjs(_mappedValue)) {\n keys = [_mappedValue.toISOString()];\n } else {\n keys = _mappedValue;\n }\n\n setSelectedKeys(keys);\n\n confirm?.();\n };\n\n const mappedValue = (value: any) => (mapValue ? mapValue(value) : value);\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const onChange = (e: any) => {\n if (typeof e === \"object\") {\n if (Array.isArray(e)) {\n const _mappedValue = mappedValue(e);\n\n setValue(_mappedValue);\n return setSelectedKeys(_mappedValue);\n }\n\n const changeEvent =\n !e || !e.target || dayjs.isDayjs(e)\n ? { target: { value: e } }\n : e;\n\n const { target }: React.ChangeEvent<HTMLInputElement> = changeEvent;\n const _mappedValue = mappedValue(target.value);\n setValue(_mappedValue);\n return;\n }\n\n const _mappedValue = mappedValue(e);\n\n setValue(_mappedValue);\n };\n\n const childrenWithProps = React.Children.map(children, (child) => {\n if (React.isValidElement(child)) {\n return React.cloneElement(child, {\n onChange,\n value: mappedValue(value),\n });\n }\n return child;\n });\n return (\n <div\n style={{\n padding: 10,\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"flex-end\",\n }}\n >\n <div style={{ marginBottom: 15 }}>{childrenWithProps}</div>\n <Space>\n <Button type=\"primary\" size=\"small\" onClick={() => onFilter()}>\n <FilterOutlined /> {translate(\"buttons.filter\", \"Filter\")}\n </Button>\n <Button danger size=\"small\" onClick={() => clearFilter()}>\n {translate(\"buttons.clear\", \"Clear\")}\n </Button>\n </Space>\n </div>\n );\n};\n","import React, { useEffect, useState } from \"react\";\nimport { useGo, useResource, useRouterType } from \"@refinedev/core\";\nimport { RefineErrorPageProps } from \"@refinedev/ui-types\";\nimport { Button, Result, Typography, Space, Tooltip } from \"antd\";\nimport { InfoCircleOutlined } from \"@ant-design/icons\";\nimport { useNavigation, useTranslate } from \"@refinedev/core\";\n\nconst { Text } = Typography;\n\n/**\n * When the app is navigated to a non-existent route, refine shows a default error page.\n * A custom error component can be used for this error page.\n *\n * @see {@link https://refine.dev/docs/api-references/components/refine-config#catchall} for more details.\n */\nexport const ErrorComponent: React.FC<RefineErrorPageProps> = () => {\n const [errorMessage, setErrorMessage] = useState<string>();\n const translate = useTranslate();\n const { push } = useNavigation();\n const go = useGo();\n const routerType = useRouterType();\n\n const { resource, action } = useResource();\n\n useEffect(() => {\n if (resource) {\n if (action) {\n setErrorMessage(\n translate(\n \"pages.error.info\",\n {\n action: action,\n resource: resource?.name,\n },\n `You may have forgotten to add the \"${action}\" component to \"${resource?.name}\" resource.`,\n ),\n );\n }\n }\n }, [resource, action]);\n\n return (\n <Result\n status=\"404\"\n title=\"404\"\n extra={\n <Space direction=\"vertical\" size=\"large\">\n <Space>\n <Text>\n {translate(\n \"pages.error.404\",\n \"Sorry, the page you visited does not exist.\",\n )}\n </Text>\n {errorMessage && (\n <Tooltip title={errorMessage}>\n <InfoCircleOutlined data-testid=\"error-component-tooltip\" />\n </Tooltip>\n )}\n </Space>\n <Button\n type=\"primary\"\n onClick={() => {\n if (routerType === \"legacy\") {\n push(\"/\");\n } else {\n go({ to: \"/\" });\n }\n }}\n >\n {translate(\"pages.error.backHome\", \"Back Home\")}\n </Button>\n </Space>\n }\n />\n );\n};\n","import React from \"react\";\nimport { LoginPageProps, useActiveAuthProvider } from \"@refinedev/core\";\nimport {\n Row,\n Col,\n Layout,\n Card,\n Typography,\n Form,\n Input,\n Button,\n Checkbox,\n} from \"antd\";\nimport { useLogin, useTranslate } from \"@refinedev/core\";\n\nimport {\n layoutStyles,\n containerStyles,\n titleStyles,\n imageContainer,\n} from \"./styles\";\n\nconst { Text, Title } = Typography;\nexport interface ILoginForm {\n username: string;\n password: string;\n remember: boolean;\n}\n\n/**\n * @deprecated LoginPage is deprecated. Use AuthPage instead. @see {@link https://refine.dev/docs/api-reference/antd/components/antd-auth-page} for more details.\n * **refine** has a default login page form which is served on `/login` route when the `authProvider` configuration is provided.\n *\n * @see {@link https://refine.dev/docs/api-references/components/refine-config#loginpage} for more details.\n */\nexport const LoginPage: React.FC<LoginPageProps> = () => {\n const [form] = Form.useForm<ILoginForm>();\n const translate = useTranslate();\n\n const authProvider = useActiveAuthProvider();\n const { mutate: login, isLoading } = useLogin<ILoginForm>({\n v3LegacyAuthProviderCompatible: Boolean(authProvider?.isLegacy),\n });\n\n const CardTitle = (\n <Title level={3} style={titleStyles}>\n {translate(\"pages.login.title\", \"Sign in your account\")}\n </Title>\n );\n\n return (\n <Layout style={layoutStyles}>\n <Row\n justify=\"center\"\n align=\"middle\"\n style={{\n height: \"100vh\",\n }}\n >\n <Col xs={22}>\n <div style={containerStyles}>\n <div style={imageContainer}>\n <img\n src=\"https://refine.ams3.cdn.digitaloceanspaces.com/logo/refine.svg\"\n alt=\"Refine Logo\"\n />\n </div>\n <Card title={CardTitle} headStyle={{ borderBottom: 0 }}>\n <Form<ILoginForm>\n layout=\"vertical\"\n form={form}\n onFinish={(values) => {\n login(values);\n }}\n requiredMark={false}\n initialValues={{\n remember: false,\n }}\n >\n <Form.Item\n name=\"username\"\n label={translate(\n \"pages.login.username\",\n \"Username\",\n )}\n rules={[{ required: true }]}\n >\n <Input\n size=\"large\"\n placeholder={translate(\n \"pages.login.username\",\n \"Username\",\n )}\n />\n </Form.Item>\n <Form.Item\n name=\"password\"\n label={translate(\n \"pages.login.password\",\n \"Password\",\n )}\n rules={[{ required: true }]}\n style={{ marginBottom: \"12px\" }}\n >\n <Input\n type=\"password\"\n placeholder=\"●●●●●●●●\"\n size=\"large\"\n />\n </Form.Item>\n <div style={{ marginBottom: \"12px\" }}>\n <Form.Item\n name=\"remember\"\n valuePropName=\"checked\"\n noStyle\n >\n <Checkbox\n style={{\n fontSize: \"12px\",\n }}\n >\n {translate(\n \"pages.login.remember\",\n \"Remember me\",\n )}\n </Checkbox>\n </Form.Item>\n\n <a\n style={{\n float: \"right\",\n fontSize: \"12px\",\n }}\n href=\"#\"\n >\n {translate(\n \"pages.login.forgotPassword\",\n \"Forgot password?\",\n )}\n </a>\n </div>\n <Button\n type=\"primary\"\n size=\"large\"\n htmlType=\"submit\"\n loading={isLoading}\n block\n >\n {translate(\"pages.login.signin\", \"Sign in\")}\n </Button>\n </Form>\n <div style={{ marginTop: 8 }}>\n <Text style={{ fontSize: 12 }}>\n {translate(\n \"pages.login.noAccount\",\n \"Don’t have an account?\",\n )}{\" \"}\n <a href=\"#\" style={{ fontWeight: \"bold\" }}>\n {translate(\n \"pages.login.signup\",\n \"Sign up\",\n )}\n </a>\n </Text>\n </div>\n </Card>\n </div>\n </Col>\n </Row>\n </Layout>\n );\n};\n","import { CSSProperties } from \"react\";\n\nexport const layoutStyles: CSSProperties = {\n background: `radial-gradient(50% 50% at 50% 50%, #63386A 0%, #310438 100%)`,\n backgroundSize: \"cover\",\n};\n\nexport const containerStyles: CSSProperties = {\n maxWidth: \"408px\",\n margin: \"auto\",\n};\n\nexport const titleStyles: CSSProperties = {\n textAlign: \"center\",\n color: \"#626262\",\n fontSize: \"30px\",\n letterSpacing: \"-0.04em\",\n};\n\nexport const imageContainer: CSSProperties = {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n marginBottom: \"28px\",\n};\n","import * as React from \"react\";\nimport { RefineReadyPageProps } from \"@refinedev/ui-types\";\nimport { Row, Col, Typography, Space, Button } from \"antd\";\nimport { ReadOutlined, FolderOutlined, TeamOutlined } from \"@ant-design/icons\";\n\nconst styles: { [key: string]: React.CSSProperties } = {\n root: {\n height: \"100vh\",\n backgroundImage:\n \"url('https://refine.ams3.cdn.digitaloceanspaces.com/login-background/background.png')\",\n backgroundSize: \"cover\",\n backgroundColor: \"#331049\",\n },\n title: {\n color: \"white\",\n fontWeight: 800,\n fontSize: \"64px\",\n marginBottom: \"8px\",\n },\n p1: {\n color: \"white\",\n marginBottom: 0,\n fontSize: \"20px\",\n fontWeight: \"bold\",\n },\n p2: {\n color: \"white\",\n fontSize: \"20px\",\n },\n code: {\n backgroundColor: \"white\",\n color: \"#331049\",\n },\n};\n\nconst { Title } = Typography;\n\n/**\n * **refine** shows a default ready page on root route when no `resources` is passed to the `<Refine>` component as a property.\n *\n * @see {@link https://refine.dev/docs/api-references/components/refine-config#readypage} for more details.\n * @deprecated `ReadyPage` is deprecated and will be removed in the next major release.\n */\nexport const ReadyPage: React.FC<RefineReadyPageProps> = () => {\n return (\n <Row align=\"middle\" justify=\"center\" style={styles.root}>\n <Col style={{ textAlign: \"center\" }}>\n <img\n style={{ marginBottom: \"48px\" }}\n src=\"https://refine.ams3.cdn.digitaloceanspaces.com/logo/refine.svg\"\n alt=\"Refine Logo\"\n />\n <Title style={styles.title}>Welcome on board</Title>\n <p style={styles.p1}>Your configuration is completed.</p>\n <p style={styles.p2}>\n Now you can get started by adding your resources to the{\" \"}\n <code style={styles.code}>{`resources`}</code> property of{\" \"}\n <code style={styles.code}>{`<Refine>`}</code>\n </p>\n <Space\n size=\"large\"\n wrap\n style={{ marginTop: \"70px\", justifyContent: \"center\" }}\n >\n <a\n href=\"https://refine.dev\"\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n <Button size=\"large\" icon={<ReadOutlined />}>\n Documentation\n </Button>\n </a>\n <a\n href=\"https://refine.dev/examples\"\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n <Button size=\"large\" icon={<FolderOutlined />}>\n Examples\n </Button>\n </a>\n <a\n href=\"https://discord.gg/refine\"\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n <Button size=\"large\" icon={<TeamOutlined />}>\n Community\n </Button>\n </a>\n </Space>\n </Col>\n </Row>\n );\n};\n","import 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/ui-frameworks/antd/components/authpage/} for more details.\n */\nexport const AuthPage: React.FC<AuthProps> = (props) => {\n const { type } = props;\n const renderView = () => {\n switch (type) {\n case \"register\":\n return <RegisterPage {...props} />;\n case \"forgotPassword\":\n return <ForgotPasswordPage {...props} />;\n case \"updatePassword\":\n return <UpdatePasswordPage {...props} />;\n default:\n return <LoginPage {...props} />;\n }\n };\n\n return <>{renderView()}</>;\n};\n","import React from \"react\";\nimport {\n LoginPageProps,\n LoginFormTypes,\n useLink,\n useRouterType,\n useActiveAuthProvider,\n} from \"@refinedev/core\";\nimport {\n Row,\n Col,\n Layout,\n Card,\n Typography,\n Form,\n Input,\n Button,\n Checkbox,\n CardProps,\n LayoutProps,\n Divider,\n FormProps,\n 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 { ThemedTitle } from \"@components\";\n\nconst { Text, Title } = Typography;\nconst { useToken } = theme;\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}) => {\n const { token } = 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 ?? <ThemedTitle collapsed={false} />}\n </div>\n );\n\n const CardTitle = (\n <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 </Title>\n );\n\n const renderProviders = () => {\n if (providers && providers.length > 0) {\n return (\n <>\n {providers.map((provider) => {\n return (\n <Button\n key={provider.name}\n type=\"default\"\n block\n icon={provider.icon}\n style={{\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n width: \"100%\",\n marginBottom: \"8px\",\n }}\n onClick={() =>\n login({\n providerName: provider.name,\n })\n }\n >\n {provider.label}\n </Button>\n );\n })}\n <Divider>\n <Text\n style={{\n color: token.colorTextLabel,\n }}\n >\n {translate(\"pages.login.divider\", \"or\")}\n </Text>\n </Divider>\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 <Form<LoginFormTypes>\n layout=\"vertical\"\n form={form}\n onFinish={(values) => login(values)}\n requiredMark={false}\n initialValues={{\n remember: false,\n }}\n {...formProps}\n >\n <Form.Item\n name=\"email\"\n label={translate(\"pages.login.fields.email\", \"Email\")}\n rules={[\n { required: true },\n {\n type: \"email\",\n message: translate(\n \"pages.login.errors.validEmail\",\n \"Invalid email address\",\n ),\n },\n ]}\n >\n <Input\n size=\"large\"\n placeholder={translate(\n \"pages.login.fields.email\",\n \"Email\",\n )}\n />\n </Form.Item>\n <Form.Item\n name=\"password\"\n label={translate(\"pages.login.fields.password\", \"Password\")}\n rules={[{ required: true }]}\n >\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 {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 <Form.Item>\n <Button\n type=\"primary\"\n size=\"large\"\n htmlType=\"submit\"\n loading={isLoading}\n block\n >\n {translate(\"pages.login.signin\", \"Sign in\")}\n </Button>\n </Form.Item>\n </Form>\n <div style={{ marginTop: 8 }}>\n {registerLink ?? (\n <Text style={{ fontSize: 12 }}>\n {translate(\n \"pages.login.buttons.noAccount\",\n \"Don’t have an account?\",\n )}{\" \"}\n <ActiveLink\n to=\"/register\"\n style={{\n fontWeight: \"bold\",\n color: token.colorPrimaryTextHover,\n }}\n >\n {translate(\"pages.login.signup\", \"Sign up\")}\n </ActiveLink>\n </Text>\n )}\n </div>\n </Card>\n );\n\n return (\n <Layout style={layoutStyles} {...(wrapperProps ?? {})}>\n <Row\n justify=\"center\"\n align=\"middle\"\n style={{\n height: \"100vh\",\n }}\n >\n <Col xs={22}>\n {renderContent ? (\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 { ThemedTitle } from \"@components\";\n\nconst { Text, Title } = Typography;\nconst { useToken } = theme;\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}) => {\n const { token } = 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 ?? <ThemedTitle collapsed={false} />}\n </div>\n );\n\n const CardTitle = (\n <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 </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 <Divider>\n <Text\n style={{\n color: token.colorTextLabel,\n }}\n >\n {translate(\"pages.login.divider\", \"or\")}\n </Text>\n </Divider>\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 <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 <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 </Text>\n )}\n </div>\n\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 </Card>\n );\n\n return (\n <Layout style={layoutStyles} {...(wrapperProps ?? {})}>\n <Row\n justify=\"center\"\n align=\"middle\"\n style={{\n height: \"100vh\",\n }}\n >\n <Col xs={22}>\n {renderContent ? (\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 { ThemedTitle } from \"@components\";\n\ntype ResetPassworProps = ForgotPasswordPageProps<\n LayoutProps,\n CardProps,\n FormProps\n>;\n\nconst { Text, Title } = Typography;\nconst { useToken } = theme;\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 } = 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 ?? <ThemedTitle collapsed={false} />}\n </div>\n );\n\n const CardTitle = (\n <Title\n level={3}\n style={{\n color: token.colorPrimaryTextHover,\n ...titleStyles,\n }}\n >\n {translate(\"pages.forgotPassword.title\", \"Forgot your password?\")}\n </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 <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 </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 height: \"100vh\",\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 { ThemedTitle } from \"@components\";\n\nconst { Title } = Typography;\nconst { useToken } = theme;\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 } = 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 ?? <ThemedTitle collapsed={false} />}\n </div>\n );\n\n const CardTitle = (\n <Title\n level={3}\n style={{\n color: token.colorPrimaryTextHover,\n ...titleStyles,\n }}\n >\n {translate(\"pages.updatePassword.title\", \"Set New Password\")}\n </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 height: \"100vh\",\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 <>\n {!hideIcons && icon}\n {href ? (\n <ActiveLink to={href}>{label}</ActiveLink>\n ) : (\n <span>{label}</span>\n )}\n </>\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\";\n\nexport type PageHeaderProps = AntdPageHeaderProps;\n\nexport const PageHeader: FC<AntdPageHeaderProps> = ({ children, ...props }) => {\n const backIcon =\n typeof props.backIcon === \"undefined\" ? (\n <Button type=\"text\" icon={<ArrowLeftOutlined />} />\n ) : (\n props.backIcon\n );\n\n const title =\n typeof props.title === \"string\" ? (\n <Typography.Title level={4} style={{ marginBottom: 0 }}>\n {props.title}\n </Typography.Title>\n ) : (\n props.title\n );\n\n const subtitle =\n typeof props.title === \"string\" ? (\n <Typography.Title\n level={5}\n type=\"secondary\"\n style={{ marginBottom: 0 }}\n >\n {props.subTitle}\n </Typography.Title>\n ) : (\n props.subTitle\n );\n\n return (\n <AntdPageHeader\n {...props}\n backIcon={backIcon}\n title={title}\n subTitle={subtitle}\n style={{ padding: 0, ...props.style }}\n >\n {children}\n </AntdPageHeader>\n );\n};\n","import type { UploadFile, UploadChangeParam } from \"antd/lib/upload/interface\";\n\nexport const getValueFromEvent = (event: UploadChangeParam): UploadFile[] => {\n const { fileList } = event;\n\n return [...fileList];\n};\n\nexport function file2Base64(file: UploadFile): Promise<string> {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n\n const resultHandler = () => {\n if (reader.result) {\n reader.removeEventListener(\"load\", resultHandler, false);\n\n resolve(reader.result as string);\n }\n };\n\n reader.addEventListener(\"load\", resultHandler, false);\n\n reader.readAsDataURL(file.originFileObj as Blob);\n reader.onerror = (error) => {\n reader.removeEventListener(\"load\", resultHandler, false);\n return reject(error);\n };\n });\n}\n","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","useFormCore","useWarnAboutChange","pickNotDeprecated","useForm","action","resource","onMutationSuccessProp","onMutationError","submitOnEnter","warnWhenUnsavedChangesProp","redirect","successNotification","errorNotification","meta","metaData","liveMode","liveParams","mutationMode","dataProviderName","onLiveEvent","invalidates","undoableTimeout","queryOptions","createMutationOptions","updateMutationOptions","idFromProps","_a","_b","formAnt","formSF","form","useFormCoreResult","formLoading","onFinish","queryResult","id","warnWhenUnsavedChangesRefine","setWarnWhen","warnWhenUnsavedChanges","onKeyUp","event","onValuesChange","changeValues","saveButtonProps","values","error","React","useCallback","useModalFormSF","useTranslate","useWarnAboutChange","userFriendlyResourceName","useResource","useParsed","useGo","useModalForm","syncWithLocation","rest","_a","_b","_c","_d","_e","_f","_g","_h","initiallySynced","React","useFormProps","useForm","form","formProps","id","setId","formLoading","onFinish","resource","actionFromParams","useResource","parsed","useParsed","go","useGo","action","syncingId","syncWithLocationKey","translate","useTranslate","warnWhen","setWarnWhen","useWarnAboutChange","sunflowerUseModal","useModalFormSF","visible","show","modalFormProps","modalProps","openStatus","idFromParams","saveButtonPropsSF","handleClose","useCallback","handleShow","showId","_visible","otherModalProps","newModalProps","userFriendlyResourceName","React","useCallback","useTranslate","useWarnAboutChange","useResource","useParsed","useGo","useModal","useDrawerForm","syncWithLocation","defaultVisible","autoSubmitClose","autoResetForm","rest","_a","_b","_c","initiallySynced","React","visible","show","close","useModal","useFormProps","useForm","form","formProps","formLoading","id","setId","onFinish","resource","actionFromParams","useResource","parsed","useParsed","go","useGo","action","syncingId","syncWithLocationKey","_d","openStatus","idFromParams","translate","useTranslate","warnWhen","setWarnWhen","useWarnAboutChange","saveButtonProps","deleteButtonProps","handleClose","useCallback","handleShow","showId","useStepsFormSF","useStepsForm","props","useFormProps","useForm","form","formProps","stepsPropsSunflower","useStepsFormSF","values","_a","Children","createElement","Fragment","Grid","Form","useFormSF","useLiveMode","useTableCore","pickNotDeprecated","getDefaultFilterCore","getDefaultSortOrderCore","getDefaultSortOrder","columnName","sorter","sort","getDefaultFilter","filters","operatorType","mapAntdSorterToCrudSorting","_a","crudSorting","a","b","_b","_c","_d","item","field","mapAntdFilterToCrudFilter","tableFilters","prevFilters","initialFilters","crudFilters","mapInitialFilter","acc","value","operator","i","p","useLink","useRouterContext","useRouterType","React","PaginationLink","to","element","LegacyLink","routerType","Link","e","useTable","onSearch","initialCurrent","initialPageSize","hasPagination","pagination","initialSorter","permanentSorter","initialFilter","permanentFilter","defaultSetFilterBehavior","filtersFromProp","sortersFromProp","syncWithLocation","resource","successNotification","errorNotification","queryOptions","liveModeFromProp","onLiveEvent","liveParams","meta","metaData","dataProviderName","_a","tableQueryResult","current","setCurrent","pageSize","setPageSize","filters","setFilters","sorters","setSorters","sorter","setSorter","createLinkForSyncWithLocation","pageCount","useTableCore","pickNotDeprecated","breakpoint","Grid","form","Form","formSF","useFormSF","liveMode","useLiveMode","hasPaginationString","isPaginationEnabled","preferredInitialFilters","data","isFetched","isLoading","onChange","paginationState","tableFilters","crudFilters","mapAntdFilterToCrudFilter","crudSorting","mapAntdSorterToCrudSorting","onFinish","value","searchFilters","antdPagination","page","type","element","link","createElement","PaginationLink","elementChildren","Children","Fragment","useEditableTable","props","table","useTable","edit","useForm","editId","setId","saveButtonProps","id","useSelectCore","useSelect","props","queryResult","defaultValueQueryResult","onSearch","options","useSelect","pickNotDeprecated","useCheckboxGroup","resource","sort","sorters","filters","optionLabel","optionValue","queryOptions","fetchSize","pagination","liveMode","defaultValue","onLiveEvent","liveParams","meta","metaData","dataProviderName","queryResult","options","pickNotDeprecated","useSelect","useRadioGroup","resource","sort","sorters","filters","optionLabel","optionValue","queryOptions","fetchSize","pagination","liveMode","defaultValue","onLiveEvent","liveParams","meta","metaData","dataProviderName","queryResult","options","React","notification","Progress","useTranslate","useResource","useImportCore","pickNotDeprecated","useImport","resourceFromProp","resourceName","mapData","item","paparseOptions","batchSize","onFinish","meta","metaData","dataProviderName","onProgressFromProp","_a","t","resource","mutationResult","isLoading","handleChange","totalAmount","processedAmount","description","Children","createElement","Fragment","Form","Grid","useTableCore","pickNotDeprecated","useLiveMode","useSimpleList","resource","initialCurrent","initialPageSize","pagination","hasPagination","initialSorter","permanentSorter","initialFilter","permanentFilter","defaultSetFilterBehavior","filtersFromProp","sortersFromProp","onSearch","queryOptions","syncWithLocation","successNotification","errorNotification","liveModeFromProp","onLiveEvent","liveParams","meta","metaData","dataProviderName","_a","sorters","sorter","filters","current","pageSize","pageCount","setFilters","setCurrent","setPageSize","setSorter","setSorters","createLinkForSyncWithLocation","queryResult","useTableCore","pickNotDeprecated","hasPaginationString","isPaginationEnabled","breakpoint","Grid","liveMode","useLiveMode","form","Form","data","isFetched","isLoading","onChange","page","onFinish","values","searchFilters","antdPagination","type","element","link","createElement","PaginationLink","elementChildren","Children","Fragment","useCallback","useMemo","useState","useFileUploadState","isLoading","setIsloading","onChange","info","mapStatusToLoading","files","file","useCoreModal","useModal","modalProps","show","close","visible","e","_a","useContext","React","useState","ThemedLayoutContext","ThemedLayoutContextProvider","children","initialSiderCollapsed","siderVisible","setSiderVisible","drawerSiderVisible","setDrawerSiderVisible","useSiderVisible","siderVisible","setSiderVisible","drawerSiderVisible","setDrawerSiderVisible","useContext","ThemedLayoutContext","React","notification","React","Button","notification","Progress","UndoOutlined","UndoableNotification","notificationKey","message","cancelMutation","undoableTimeout","time","notificationProvider","key","message","description","type","cancelMutation","undoableTimeout","notification","React","UndoableNotification","React","Grid","AntdLayout","React","useState","Layout","Menu","Grid","ConfigProvider","Drawer","Button","DashboardOutlined","LogoutOutlined","UnorderedListOutlined","BarsOutlined","useTranslate","useLogout","useTitle","CanAccess","useIsExistAuthentication","useRouterContext","useMenu","useRefineContext","useLink","useRouterType","useActiveAuthProvider","pickNotDeprecated","useWarnAboutChange","drawerButtonStyles","SubMenu","Menu","Sider","TitleFromProps","render","meta","_a","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","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","Text","Header","authProvider","user","Layout","children","Header","Sider","Title","Footer","OffLayoutArea","breakpoint","Grid","SiderToRender","HeaderToRender","isSmall","React","AntdLayout","React","useRouterContext","useRouterType","useLink","Title","collapsed","routerType","Link","LegacyLink","React","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","SubMenu","Menu","useToken","theme","ThemedSider","TitleFromProps","render","meta","_a","token","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","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","Text","useToken","ThemedHeader","token","authProvider","user","ThemedLayout","children","Header","Sider","Title","Footer","OffLayoutArea","breakpoint","Grid","SiderToRender","ThemedSider","HeaderToRender","ThemedHeader","isSmall","React","AntdLayout","React","useRouterContext","useRouterType","useLink","Typography","theme","Space","useToken","defaultText","defaultIcon","ThemedTitle","collapsed","icon","text","wrapperStyles","token","routerType","Link","LegacyLink","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","SubMenu","Menu","useToken","theme","ThemedSiderV2","TitleFromProps","render","meta","_a","token","siderVisible","setSiderVisible","drawerSiderVisible","setDrawerSiderVisible","useSiderVisible","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","UnorderedListOutlined","isSelected","isRoute","pickNotDeprecated","handleLogout","logout","LogoutOutlined","dashboard","DashboardOutlined","items","renderSider","renderMenu","renderDrawerSider","Drawer","Layout","Button","drawerButtonStyles","BarsOutlined","collapsed","type","RightOutlined","LeftOutlined","React","AntdLayout","Typography","Avatar","Space","theme","useActiveAuthProvider","useGetIdentity","Text","useToken","ThemedHeaderV2","isSticky","token","authProvider","user","headerStyles","ThemedLayoutV2","children","Header","Sider","Title","Footer","OffLayoutArea","initialSiderCollapsed","breakpoint","Grid","SiderToRender","ThemedSiderV2","HeaderToRender","ThemedHeaderV2","isSmall","React","ThemedLayoutContextProvider","AntdLayout","React","useRouterContext","useRouterType","useLink","Typography","theme","Space","useToken","defaultText","defaultIcon","ThemedTitleV2","collapsed","icon","text","wrapperStyles","token","routerType","Link","LegacyLink","React","Button","PlusSquareOutlined","useNavigation","useTranslate","useCan","useResource","useRouterContext","useRouterType","useLink","RefineButtonTestIds","CreateButton","resourceNameFromProps","propResourceNameOrRouteName","hideText","accessControl","meta","children","onClick","rest","_a","_b","accessControlEnabled","hideIfUnauthorized","translate","routerType","Link","LegacyLink","ActiveLink","generateCreateUrl","resource","data","createButtonDisabledTitle","createUrl","e","React","Button","EditOutlined","useCan","useNavigation","useTranslate","useResource","useRouterContext","useRouterType","useLink","RefineButtonTestIds","EditButton","resourceNameFromProps","propResourceNameOrRouteName","recordItemId","hideText","accessControl","meta","children","onClick","rest","_a","_b","accessControlEnabled","hideIfUnauthorized","translate","routerType","Link","LegacyLink","ActiveLink","generateEditUrl","id","resource","data","createButtonDisabledTitle","editUrl","e","React","Button","Popconfirm","DeleteOutlined","useDelete","useTranslate","useMutationMode","useCan","useResource","pickNotDeprecated","useWarnAboutChange","RefineButtonTestIds","DeleteButton","resourceNameFromProps","propResourceNameOrRouteName","recordItemId","onSuccess","mutationModeProp","children","successNotification","errorNotification","hideText","accessControl","metaData","meta","dataProviderName","confirmTitle","confirmOkText","confirmCancelText","invalidates","rest","_a","_b","accessControlEnabled","hideIfUnauthorized","translate","id","resource","mutationModeContext","mutationMode","mutate","isLoading","variables","data","setWarnWhen","value","React","Button","RedoOutlined","useOne","useTranslate","useResource","pickNotDeprecated","RefineButtonTestIds","RefreshButton","resourceNameFromProps","propResourceNameOrRouteName","recordItemId","hideText","meta","metaData","dataProviderName","children","onClick","rest","translate","resource","id","refetch","isFetching","e","React","Button","EyeOutlined","useCan","useNavigation","useTranslate","useResource","useRouterContext","useRouterType","useLink","RefineButtonTestIds","ShowButton","resourceNameFromProps","propResourceNameOrRouteName","recordItemId","hideText","accessControl","meta","children","onClick","rest","_a","_b","accessControlEnabled","hideIfUnauthorized","generateShowUrl","routerType","Link","LegacyLink","ActiveLink","translate","id","resource","data","createButtonDisabledTitle","showUrl","e","React","Button","BarsOutlined","useCan","useNavigation","useTranslate","userFriendlyResourceName","useResource","useRouterContext","useRouterType","useLink","pickNotDeprecated","RefineButtonTestIds","ListButton","resourceNameFromProps","propResourceNameOrRouteName","hideText","accessControl","meta","children","onClick","rest","_a","_b","_c","_d","_e","_f","_g","_h","accessControlEnabled","hideIfUnauthorized","generateListUrl","routerType","Link","LegacyLink","ActiveLink","translate","resource","data","createButtonDisabledTitle","listUrl","e","React","Button","ExportOutlined","useTranslate","RefineButtonTestIds","ExportButton","hideText","children","rest","translate","React","Button","SaveOutlined","useTranslate","RefineButtonTestIds","SaveButton","hideText","children","rest","translate","React","Button","PlusSquareOutlined","useCan","useNavigation","useTranslate","useResource","useRouterContext","useRouterType","useLink","RefineButtonTestIds","CloneButton","propResourceNameOrRouteName","resourceNameFromProps","recordItemId","hideText","accessControl","meta","children","onClick","rest","_a","_b","accessControlEnabled","hideIfUnauthorized","generateCloneUrl","routerType","Link","LegacyLink","ActiveLink","translate","id","resource","data","createButtonDisabledTitle","cloneUrl","e","React","Button","Upload","ImportOutlined","useTranslate","RefineButtonTestIds","ImportButton","uploadProps","buttonProps","hideText","children","translate","React","Space","useTranslate","userFriendlyResourceName","useRefineContext","useRouterType","useResource","List","canCreate","title","children","createButtonProps","resourceFromProps","wrapperProps","contentProps","headerProps","breadcrumbFromProps","headerButtonProps","headerButtons","_a","_b","_c","_d","_e","_f","_g","_h","translate","useTranslate","globalBreadcrumb","useRefineContext","routerType","useRouterType","resource","useResource","isCreateButtonVisible","breadcrumb","defaultExtra","React","CreateButton","PageHeader","userFriendlyResourceName","Space","Breadcrumb","React","Card","Space","Spin","useNavigation","useTranslate","userFriendlyResourceName","useRefineContext","useRouterType","useResource","useBack","Create","title","saveButtonProps","children","resourceFromProps","isLoading","breadcrumbFromProps","wrapperProps","headerProps","contentProps","headerButtonProps","headerButtons","footerButtonProps","footerButtons","goBackFromProps","_a","_b","_c","_d","_e","_f","translate","useTranslate","globalBreadcrumb","useRefineContext","routerType","useRouterType","back","useBack","goBack","useNavigation","resource","action","useResource","breadcrumb","defaultFooterButtons","React","SaveButton","PageHeader","userFriendlyResourceName","Breadcrumb","Space","Spin","Card","React","Card","Space","Spin","useMutationMode","useNavigation","useTranslate","userFriendlyResourceName","useRefineContext","useRouterType","useBack","useResource","useGo","useToPath","Edit","title","saveButtonProps","mutationModeProp","recordItemId","children","deleteButtonProps","canDelete","resourceFromProps","isLoading","dataProviderName","breadcrumbFromProps","wrapperProps","headerProps","contentProps","headerButtonProps","headerButtons","footerButtonProps","footerButtons","goBackFromProps","_a","_b","_c","_d","_e","_f","_g","_h","_i","_j","_k","translate","useTranslate","globalBreadcrumb","useRefineContext","mutationModeContext","useMutationMode","mutationMode","routerType","useRouterType","back","useBack","go","useGo","goBack","legacyGoList","useNavigation","resource","action","idFromParams","useResource","goListPath","useToPath","id","breadcrumb","isDeleteButtonVisible","defaultHeaderButtons","React","ListButton","RefreshButton","defaultFooterButtons","DeleteButton","SaveButton","PageHeader","userFriendlyResourceName","Space","Breadcrumb","Spin","Card","React","Card","Space","Spin","useNavigation","useTranslate","userFriendlyResourceName","useRefineContext","useResource","useToPath","useRouterType","useBack","useGo","Show","title","canEdit","canDelete","isLoading","children","resourceFromProps","recordItemId","dataProviderName","breadcrumbFromProps","contentProps","headerProps","wrapperProps","headerButtons","footerButtons","footerButtonProps","headerButtonProps","goBackFromProps","_a","_b","_c","_d","_e","_f","_g","_h","_i","_j","_k","_l","_m","translate","useTranslate","globalBreadcrumb","useRefineContext","routerType","useRouterType","back","useBack","go","useGo","goBack","legacyGoList","useNavigation","resource","action","idFromParams","useResource","goListPath","useToPath","id","breadcrumb","isDeleteButtonVisible","isEditButtonVisible","defaultHeaderButtons","React","ListButton","EditButton","DeleteButton","RefreshButton","PageHeader","userFriendlyResourceName","Space","Breadcrumb","Spin","Card","React","Typography","Text","TextField","value","rest","React","Tag","TagField","value","rest","React","Typography","Link","EmailField","value","rest","React","Image","ImageField","value","imageTitle","rest","React","Tooltip","CheckOutlined","CloseOutlined","BooleanField","value","valueLabelTrue","valueLabelFalse","trueIcon","falseIcon","rest","React","dayjs","Typography","LocalizedFormat","defaultLocale","DateField","value","locales","dateFormat","rest","Text","React","FileField","title","src","rest","React","UrlField","React","Typography","Link","UrlField","children","value","rest","React","Typography","Text","toLocaleStringSupportsOptions","NumberField","value","locale","options","rest","number","React","ReactMarkdown","gfm","MarkdownField","value","React","useState","Button","Space","dayjs","FilterOutlined","useTranslate","FilterDropdown","props","setSelectedKeys","confirm","clearFilters","mapValue","selectedKeys","children","value","setValue","translate","clearFilter","onFilter","_mappedValue","mappedValue","keys","onChange","e","changeEvent","target","childrenWithProps","child","React","useEffect","useState","useGo","useResource","useRouterType","Button","Result","Typography","Space","Tooltip","InfoCircleOutlined","useNavigation","useTranslate","Text","ErrorComponent","errorMessage","setErrorMessage","translate","push","go","routerType","resource","action","React","useActiveAuthProvider","Row","Col","Layout","Card","Typography","Form","Input","Button","Checkbox","useLogin","useTranslate","layoutStyles","containerStyles","titleStyles","imageContainer","Text","Title","Typography","LoginPage","form","Form","translate","useTranslate","authProvider","useActiveAuthProvider","login","isLoading","useLogin","CardTitle","React","titleStyles","Layout","layoutStyles","Row","Col","containerStyles","imageContainer","Card","values","Input","Checkbox","Button","React","Row","Col","Typography","Space","Button","ReadOutlined","FolderOutlined","TeamOutlined","styles","Title","ReadyPage","React","WelcomePageFromCore","WelcomePage","React","React","useLink","useRouterType","useActiveAuthProvider","Row","Col","Layout","Card","Typography","Form","Input","Button","Checkbox","Divider","theme","useLogin","useTranslate","useRouterContext","layoutStyles","containerStyles","headStyles","bodyStyles","titleStyles","Text","Title","Typography","useToken","theme","LoginPage","providers","registerLink","forgotPasswordLink","rememberMe","contentProps","wrapperProps","renderContent","formProps","title","token","form","Form","translate","useTranslate","routerType","useRouterType","Link","useLink","LegacyLink","useRouterContext","ActiveLink","authProvider","useActiveAuthProvider","login","isLoading","useLogin","PageTitle","React","ThemedTitle","CardTitle","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","Text","Title","Typography","useToken","theme","RegisterPage","providers","loginLink","wrapperProps","contentProps","renderContent","formProps","title","token","form","Form","translate","useTranslate","routerType","useRouterType","Link","useLink","LegacyLink","useRouterContext","ActiveLink","authProvider","useActiveAuthProvider","register","isLoading","useRegister","PageTitle","React","ThemedTitle","CardTitle","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","Text","Title","Typography","useToken","theme","ForgotPasswordPage","loginLink","wrapperProps","contentProps","renderContent","formProps","title","token","form","Form","translate","useTranslate","routerType","useRouterType","Link","useLink","LegacyLink","useRouterContext","ActiveLink","forgotPassword","isLoading","useForgotPassword","PageTitle","React","ThemedTitle","CardTitle","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","Title","Typography","useToken","theme","UpdatePasswordPage","wrapperProps","contentProps","renderContent","formProps","title","token","form","Form","translate","useTranslate","authProvider","useActiveAuthProvider","updatePassword","isLoading","useUpdatePassword","PageTitle","React","ThemedTitle","CardTitle","titleStyles","CardContent","Card","headStyles","bodyStyles","containerStyles","values","Input","getFieldValue","_","value","Button","Layout","layoutStyles","Row","Col","AuthPage","props","type","React","RegisterPage","ForgotPasswordPage","UpdatePasswordPage","LoginPage","React","useBreadcrumb","useLink","useRefineContext","useRouterContext","useRouterType","useResource","matchResourceFromRoute","AntdBreadcrumb","HomeOutlined","Breadcrumb","breadcrumbProps","showHome","hideIcons","meta","routerType","breadcrumbs","Link","LegacyLink","hasDashboard","resources","rootRouteResource","ActiveLink","breadCrumbItems","label","icon","href","_a","_b","_c","React","AntdPageHeader","Button","Typography","ArrowLeftOutlined","PageHeader","children","props","backIcon","title","subtitle","getValueFromEvent","event","fileList","RefineThemes"]}