@refinedev/antd 5.1.0 → 5.1.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.
- package/CHANGELOG.md +7 -1
- package/dist/components/layout/header/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/iife/index.js +3 -3
- package/dist/iife/index.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/src/components/layout/header/index.tsx +6 -8
package/dist/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../src/index.tsx","../src/hooks/form/useForm.ts","../src/hooks/form/useModalForm/useModalForm.ts","../src/hooks/form/useDrawerForm/useDrawerForm.ts","../src/hooks/form/useStepsForm/useStepsForm.ts","../src/hooks/table/useTable/useTable.ts","../src/definitions/table/index.ts","../src/hooks/table/useTable/paginationLink.tsx","../src/hooks/table/useEditableTable/useEditableTable.ts","../src/hooks/fields/useSelect/index.ts","../src/hooks/fields/useCheckboxGroup/index.ts","../src/hooks/fields/useRadioGroup/index.ts","../src/hooks/import/index.tsx","../src/hooks/list/useSimpleList/useSimpleList.ts","../src/hooks/useFileUploadState/index.ts","../src/hooks/modal/useModal/index.tsx","../src/providers/notificationProvider/index.tsx","../src/components/undoableNotification/index.tsx","../src/components/layout/index.tsx","../src/components/layout/sider/index.tsx","../src/components/layout/sider/styles.ts","../src/components/layout/header/index.tsx","../src/components/layout/title/index.tsx","../src/components/buttons/create/index.tsx","../src/components/buttons/edit/index.tsx","../src/components/buttons/delete/index.tsx","../src/components/buttons/refresh/index.tsx","../src/components/buttons/show/index.tsx","../src/components/buttons/list/index.tsx","../src/components/buttons/export/index.tsx","../src/components/buttons/save/index.tsx","../src/components/buttons/clone/index.tsx","../src/components/buttons/import/index.tsx","../src/components/crud/list/index.tsx","../src/components/crud/create/index.tsx","../src/components/crud/edit/index.tsx","../src/components/crud/show/index.tsx","../src/components/fields/text/index.tsx","../src/components/fields/tag/index.tsx","../src/components/fields/email/index.tsx","../src/components/fields/image/index.tsx","../src/components/fields/boolean/index.tsx","../src/components/fields/date/index.tsx","../src/components/fields/file/index.tsx","../src/components/fields/url/index.tsx","../src/components/fields/number/index.tsx","../src/components/fields/markdown/index.tsx","../src/components/table/components/filterDropdown/index.tsx","../src/components/pages/error/index.tsx","../src/components/pages/login/index.tsx","../src/components/pages/login/styles.ts","../src/components/pages/ready/index.tsx","../src/components/pages/welcome/index.tsx","../src/components/pages/auth/index.tsx","../src/components/pages/auth/components/login/index.tsx","../src/components/pages/auth/components/styles.ts","../src/components/pages/auth/components/register/index.tsx","../src/components/pages/auth/components/forgotPassword/index.tsx","../src/components/pages/auth/components/updatePassword/index.tsx","../src/components/breadcrumb/index.tsx","../src/components/pageHeader/index.tsx","../src/definitions/upload/index.ts"],"sourcesContent":["export * from \"./hooks\";\nexport * from \"./providers\";\nexport * from \"./components\";\n\nexport {\n getDefaultSortOrder,\n getDefaultFilter,\n mapAntdSorterToCrudSorting,\n mapAntdFilterToCrudFilter,\n} from \"./definitions/table\";\nexport { getValueFromEvent } from \"./definitions/upload\";\n","import React from \"react\";\nimport { FormInstance, FormProps, Form } from \"antd\";\nimport { useForm as useFormSF } from \"sunflower-antd\";\nimport { ButtonProps } from \"antd\";\n\nimport {\n HttpError,\n BaseRecord,\n useForm as useFormCore,\n UseFormReturnType as UseFormReturnTypeCore,\n useWarnAboutChange,\n UseFormProps as UseFormPropsCore,\n CreateResponse,\n UpdateResponse,\n pickNotDeprecated,\n} from \"@refinedev/core\";\n\nexport type UseFormProps<\n TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n> = UseFormPropsCore<TData, TError, TVariables> & {\n submitOnEnter?: boolean;\n /**\n * Shows notification when unsaved changes exist\n */\n warnWhenUnsavedChanges?: boolean;\n};\n\nexport type UseFormReturnType<\n TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n> = UseFormReturnTypeCore<TData, TError, TVariables> & {\n form: FormInstance<TVariables>;\n formProps: FormProps<TVariables>;\n saveButtonProps: ButtonProps & {\n onClick: () => void;\n };\n onFinish: (\n values?: TVariables,\n ) => Promise<CreateResponse<TData> | UpdateResponse<TData> | void>;\n};\n\n/**\n * `useForm` is used to manage forms. It uses Ant Design {@link https://ant.design/components/form/ Form} data scope management under the hood and returns the required props for managing the form actions.\n *\n * @see {@link https://refine.dev/docs/api-references/hooks/form/useForm} for more details.\n *\n * @typeParam TData - Result data of the query extends {@link https://refine.dev/docs/api-references/interfaceReferences#baserecord `BaseRecord`}\n * @typeParam TError - Custom error object that extends {@link https://refine.dev/docs/api-references/interfaceReferences#httperror `HttpError`}\n * @typeParam TVariables - Values for params. default `{}`\n *\n *\n */\nexport const useForm = <\n TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n>({\n action,\n resource,\n onMutationSuccess: onMutationSuccessProp,\n onMutationError,\n submitOnEnter = false,\n warnWhenUnsavedChanges: warnWhenUnsavedChangesProp,\n redirect,\n successNotification,\n errorNotification,\n meta,\n metaData,\n liveMode,\n liveParams,\n mutationMode,\n dataProviderName,\n onLiveEvent,\n invalidates,\n undoableTimeout,\n queryOptions,\n createMutationOptions,\n updateMutationOptions,\n id: idFromProps,\n}: UseFormProps<TData, TError, TVariables> = {}): UseFormReturnType<\n TData,\n TError,\n TVariables\n> => {\n const [formAnt] = Form.useForm();\n const formSF = useFormSF<TData, TVariables>({\n form: formAnt,\n });\n const { form } = formSF;\n\n const useFormCoreResult = useFormCore<TData, TError, TVariables>({\n onMutationSuccess: onMutationSuccessProp\n ? onMutationSuccessProp\n : undefined,\n onMutationError,\n redirect,\n action,\n resource,\n successNotification,\n errorNotification,\n meta: pickNotDeprecated(meta, metaData),\n metaData: pickNotDeprecated(meta, metaData),\n liveMode,\n liveParams,\n mutationMode,\n dataProviderName,\n onLiveEvent,\n invalidates,\n undoableTimeout,\n queryOptions,\n createMutationOptions,\n updateMutationOptions,\n id: idFromProps,\n });\n\n const { formLoading, onFinish, queryResult, id } = useFormCoreResult;\n\n const {\n warnWhenUnsavedChanges: warnWhenUnsavedChangesRefine,\n setWarnWhen,\n } = useWarnAboutChange();\n const warnWhenUnsavedChanges =\n warnWhenUnsavedChangesProp ?? warnWhenUnsavedChangesRefine;\n\n React.useEffect(() => {\n form.resetFields();\n }, [queryResult?.data?.data, id]);\n\n const onKeyUp = (event: React.KeyboardEvent<HTMLFormElement>) => {\n if (submitOnEnter && event.key === \"Enter\") {\n form.submit();\n }\n };\n\n const onValuesChange = (changeValues: object) => {\n if (changeValues && warnWhenUnsavedChanges) {\n setWarnWhen(true);\n }\n return changeValues;\n };\n\n const saveButtonProps = {\n disabled: formLoading,\n onClick: () => {\n form.submit();\n },\n };\n\n return {\n form: formSF.form,\n formProps: {\n ...formSF.formProps,\n onFinish: (values: TVariables) =>\n onFinish(values).catch((error) => error),\n onKeyUp,\n onValuesChange,\n initialValues: queryResult?.data?.data,\n },\n saveButtonProps,\n ...useFormCoreResult,\n onFinish: async (values?: TVariables) => {\n return await onFinish(values ?? formSF.form.getFieldsValue(true));\n },\n };\n};\n","import { useCallback, useEffect } from \"react\";\nimport { FormInstance, FormProps, ModalProps } from \"antd\";\nimport {\n useModalForm as useModalFormSF,\n UseModalFormConfig as UseModalFormConfigSF,\n} from \"sunflower-antd\";\n\nimport {\n useMutationMode,\n useTranslate,\n useWarnAboutChange,\n HttpError,\n UseFormProps as UseFormPropsCore,\n BaseRecord,\n LiveModeProps,\n BaseKey,\n userFriendlyResourceName,\n useResource,\n FormWithSyncWithLocationParams,\n useParsed,\n useGo,\n} from \"@refinedev/core\";\nimport { useForm, UseFormProps, UseFormReturnType } from \"../useForm\";\nimport React from \"react\";\n\nexport type useModalFormFromSFReturnType<TData, TVariables> = {\n open: boolean;\n form: FormInstance<TVariables>;\n show: (id?: BaseKey) => void;\n close: () => void;\n modalProps: ModalProps;\n formProps: FormProps<TVariables>;\n formLoading: boolean;\n defaultFormValuesLoading: boolean;\n formValues: {};\n initialValues: {};\n formResult: undefined;\n submit: (values?: TVariables) => Promise<TData>;\n /** @deprecated Please use `open` instead. */\n visible: boolean;\n};\n\ntype useModalFormConfig = {\n action: \"show\" | \"edit\" | \"create\" | \"clone\";\n};\n\nexport type UseModalFormReturnType<\n TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n> = Omit<\n UseFormReturnType<TData, TError, TVariables>,\n \"saveButtonProps\" | \"deleteButtonProps\"\n> &\n useModalFormFromSFReturnType<TData, TVariables>;\n\nexport type UseModalFormProps<\n TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n> = UseFormPropsCore<TData, TError, TVariables> &\n UseFormProps<TData, TError, TVariables> &\n UseModalFormConfigSF &\n useModalFormConfig &\n LiveModeProps &\n FormWithSyncWithLocationParams;\n/**\n * `useModalForm` hook allows you to manage a form within a modal. It returns Ant Design {@link https://ant.design/components/form/ Form} and {@link https://ant.design/components/modal/ Modal} components props.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/hooks/form/useModalForm} for more details.\n *\n * @typeParam TData - Result data of the query extends {@link https://refine.dev/docs/api-references/interfaceReferences#baserecord `BaseRecord`}\n * @typeParam TError - Custom error object that extends {@link https://refine.dev/docs/api-references/interfaceReferences#httperror `HttpError`}\n * @typeParam TVariables - Values for params. default `{}`\n *\n *\n */\nexport const useModalForm = <\n TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n>({\n mutationMode: mutationModeProp,\n syncWithLocation,\n ...rest\n}: UseModalFormProps<TData, TError, TVariables>): UseModalFormReturnType<\n TData,\n TError,\n TVariables\n> => {\n const initiallySynced = React.useRef(false);\n\n const useFormProps = useForm<TData, TError, TVariables>({\n ...rest,\n mutationMode: mutationModeProp,\n });\n\n const { form, formProps, id, setId, formLoading, mutationResult } =\n useFormProps;\n\n const { resource, action: actionFromParams } = useResource(rest.resource);\n\n const parsed = useParsed();\n const go = useGo();\n\n const action = rest.action ?? actionFromParams ?? \"\";\n\n const syncingId =\n typeof syncWithLocation === \"object\" && syncWithLocation.syncId;\n\n const syncWithLocationKey =\n typeof syncWithLocation === \"object\" && \"key\" in syncWithLocation\n ? syncWithLocation.key\n : resource && action && syncWithLocation\n ? `modal-${resource?.identifier ?? resource?.name}-${action}`\n : undefined;\n\n const translate = useTranslate();\n\n const { warnWhen, setWarnWhen } = useWarnAboutChange();\n\n const sunflowerUseModal = useModalFormSF<TData, TVariables>({\n ...rest,\n form: form,\n });\n\n const {\n visible,\n close,\n show,\n form: modalForm,\n formProps: modalFormProps,\n modalProps,\n } = sunflowerUseModal;\n\n React.useEffect(() => {\n if (initiallySynced.current === false && syncWithLocationKey) {\n const openStatus = parsed?.params?.[syncWithLocationKey]?.open;\n if (typeof openStatus === \"boolean\") {\n if (openStatus) {\n show();\n }\n } else if (typeof openStatus === \"string\") {\n if (openStatus === \"true\") {\n show();\n }\n }\n\n if (syncingId) {\n const idFromParams = parsed?.params?.[syncWithLocationKey]?.id;\n if (idFromParams) {\n setId?.(idFromParams);\n }\n }\n\n initiallySynced.current = true;\n }\n }, [syncWithLocationKey, parsed, syncingId, setId]);\n\n React.useEffect(() => {\n if (initiallySynced.current === true) {\n if (visible && syncWithLocationKey) {\n go({\n query: {\n [syncWithLocationKey]: {\n ...parsed?.params?.[syncWithLocationKey],\n open: true,\n ...(syncingId && id && { id }),\n },\n },\n options: { keepQuery: true },\n type: \"replace\",\n });\n } else if (syncWithLocationKey && !visible) {\n go({\n query: {\n [syncWithLocationKey]: undefined,\n },\n options: { keepQuery: true },\n type: \"replace\",\n });\n }\n }\n }, [id, visible, show, syncWithLocationKey, syncingId]);\n\n const { mutationMode: mutationModeContext } = useMutationMode();\n const mutationMode = mutationModeProp ?? mutationModeContext;\n\n const {\n isLoading: isLoadingMutation,\n isSuccess: isSuccessMutation,\n reset: resetMutation,\n } = mutationResult ?? {};\n\n useEffect(() => {\n if (visible && mutationMode === \"pessimistic\") {\n if (isSuccessMutation && !isLoadingMutation) {\n close();\n resetMutation?.();\n // Prevents resetting form values before closing modal in UI\n setTimeout(() => {\n form.resetFields();\n });\n }\n }\n }, [isSuccessMutation, isLoadingMutation]);\n\n const saveButtonPropsSF = {\n disabled: formLoading,\n onClick: () => {\n modalForm.submit();\n\n if (!(mutationMode === \"pessimistic\")) {\n close();\n // Prevents resetting form values before closing modal in UI\n setTimeout(() => {\n form.resetFields();\n });\n }\n },\n loading: formLoading,\n };\n\n const handleClose = useCallback(() => {\n if (warnWhen) {\n const warnWhenConfirm = window.confirm(\n translate(\n \"warnWhenUnsavedChanges\",\n \"Are you sure you want to leave? You have unsaved changes.\",\n ),\n );\n\n if (warnWhenConfirm) {\n setWarnWhen(false);\n } else {\n return;\n }\n }\n\n setId?.(undefined);\n sunflowerUseModal.close();\n }, [warnWhen]);\n\n const handleShow = useCallback((id?: BaseKey) => {\n setId?.(id);\n\n sunflowerUseModal.show();\n }, []);\n\n return {\n ...useFormProps,\n ...sunflowerUseModal,\n show: handleShow,\n close: handleClose,\n open: visible,\n formProps: {\n ...modalFormProps,\n ...useFormProps.formProps,\n onValuesChange: formProps?.onValuesChange,\n onKeyUp: formProps?.onKeyUp,\n onFinish: formProps.onFinish,\n },\n modalProps: {\n ...modalProps,\n width: \"1000px\",\n okButtonProps: saveButtonPropsSF,\n title: translate(\n `${resource?.name}.titles.${rest.action}`,\n `${userFriendlyResourceName(\n `${rest.action} ${\n resource?.meta?.label ??\n resource?.options?.label ??\n resource?.label ??\n resource?.name\n }`,\n \"singular\",\n )}`,\n ),\n okText: translate(\"buttons.save\", \"Save\"),\n cancelText: translate(\"buttons.cancel\", \"Cancel\"),\n onCancel: handleClose,\n forceRender: true,\n },\n formLoading,\n };\n};\n","import { useCallback, useEffect, useState } from \"react\";\nimport { UseFormConfig } from \"sunflower-antd\";\nimport { FormInstance, FormProps, DrawerProps, ButtonProps } from \"antd\";\nimport {\n useMutationMode,\n useTranslate,\n useWarnAboutChange,\n UseFormProps as UseFormPropsCore,\n HttpError,\n LiveModeProps,\n BaseRecord,\n FormWithSyncWithLocationParams,\n BaseKey,\n useResource,\n useParsed,\n useGo,\n} from \"@refinedev/core\";\n\nimport { useForm, UseFormProps, UseFormReturnType } from \"../useForm\";\nimport { DeleteButtonProps } from \"../../../components\";\nimport React from \"react\";\n\nexport interface UseDrawerFormConfig extends UseFormConfig {\n action: \"show\" | \"edit\" | \"create\" | \"clone\";\n}\n\nexport type UseDrawerFormProps<\n TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n> = UseFormPropsCore<TData, TError, TVariables> &\n UseFormProps<TData, TError, TVariables> &\n UseDrawerFormConfig &\n LiveModeProps &\n FormWithSyncWithLocationParams;\n\nexport type UseDrawerFormReturnType<\n TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n> = UseFormReturnType<TData, TError, TVariables> & {\n formProps: FormProps<TVariables> & {\n form: FormInstance<TVariables>;\n };\n show: (id?: BaseKey) => void;\n close: () => void;\n drawerProps: DrawerProps;\n saveButtonProps: ButtonProps;\n deleteButtonProps: DeleteButtonProps;\n formLoading: boolean;\n};\n\n/**\n * `useDrawerForm` hook allows you to manage a form within a drawer. It returns Ant Design {@link https://ant.design/components/form/ Form} and {@link https://ant.design/components/drawer/ Drawer} components props.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/hooks/form/useDrawerForm} for more details.\n *\n * @typeParam TData - Result data of the query extends {@link https://refine.dev/docs/api-references/interfaceReferences#baserecord `BaseRecord`}\n * @typeParam TError - Custom error object that extends {@link https://refine.dev/docs/api-references/interfaceReferences#httperror `HttpError`}\n * @typeParam TVariables - Values for params. default `{}`\n *\n *\n */\n\nexport const useDrawerForm = <\n TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n>({\n mutationMode: mutationModeProp,\n syncWithLocation,\n ...rest\n}: UseDrawerFormProps<TData, TError, TVariables>): UseDrawerFormReturnType<\n TData,\n TError,\n TVariables\n> => {\n const initiallySynced = React.useRef(false);\n\n const useFormProps = useForm<TData, TError, TVariables>({\n ...rest,\n mutationMode: mutationModeProp,\n });\n\n const { form, formProps, formLoading, mutationResult, id, setId } =\n useFormProps;\n\n const { resource, action: actionFromParams } = useResource(rest.resource);\n\n const parsed = useParsed();\n const go = useGo();\n\n const action = rest.action ?? actionFromParams ?? \"\";\n\n const syncingId =\n typeof syncWithLocation === \"object\" && syncWithLocation.syncId;\n\n const syncWithLocationKey =\n typeof syncWithLocation === \"object\" && \"key\" in syncWithLocation\n ? syncWithLocation.key\n : resource && action && syncWithLocation\n ? `drawer-${resource?.identifier ?? resource?.name}-${action}`\n : undefined;\n\n const [open, setOpen] = useState(false);\n\n React.useEffect(() => {\n if (initiallySynced.current === false && syncWithLocationKey) {\n const openStatus = parsed?.params?.[syncWithLocationKey]?.open;\n if (typeof openStatus === \"boolean\") {\n setOpen(openStatus);\n } else if (typeof openStatus === \"string\") {\n setOpen(openStatus === \"true\");\n }\n\n if (syncingId) {\n const idFromParams = parsed?.params?.[syncWithLocationKey]?.id;\n if (idFromParams) {\n setId?.(idFromParams);\n }\n }\n\n initiallySynced.current = true;\n }\n }, [syncWithLocationKey, parsed, syncingId, setId]);\n\n React.useEffect(() => {\n if (initiallySynced.current === true) {\n if (open && syncWithLocationKey) {\n go({\n query: {\n [syncWithLocationKey]: {\n ...parsed?.params?.[syncWithLocationKey],\n open: true,\n ...(syncingId && id && { id }),\n },\n },\n options: { keepQuery: true },\n type: \"replace\",\n });\n } else if (syncWithLocationKey && !open) {\n go({\n query: {\n [syncWithLocationKey]: undefined,\n },\n options: { keepQuery: true },\n type: \"replace\",\n });\n }\n }\n }, [id, open, syncWithLocationKey, syncingId]);\n\n const translate = useTranslate();\n\n const { warnWhen, setWarnWhen } = useWarnAboutChange();\n\n const { mutationMode: mutationModeContext } = useMutationMode();\n const mutationMode = mutationModeProp ?? mutationModeContext;\n\n const {\n isLoading: isLoadingMutation,\n isSuccess: isSuccessMutation,\n reset: resetMutation,\n } = mutationResult ?? {};\n\n useEffect(() => {\n if (open && mutationMode === \"pessimistic\") {\n if (isSuccessMutation && !isLoadingMutation) {\n setOpen(false);\n resetMutation?.();\n }\n }\n }, [isSuccessMutation, isLoadingMutation]);\n\n const saveButtonProps = {\n disabled: formLoading,\n onClick: () => {\n form?.submit();\n if (!(mutationMode === \"pessimistic\")) {\n setOpen(false);\n }\n },\n loading: formLoading,\n };\n\n const deleteButtonProps = {\n recordItemId: id,\n onSuccess: () => {\n setId?.(undefined);\n setOpen(false);\n },\n };\n\n const handleClose = useCallback(() => {\n if (warnWhen) {\n const warnWhenConfirm = window.confirm(\n translate(\n \"warnWhenUnsavedChanges\",\n \"Are you sure you want to leave? You have unsaved changes.\",\n ),\n );\n\n if (warnWhenConfirm) {\n setWarnWhen(false);\n } else {\n return;\n }\n }\n\n setOpen(false);\n setId?.(undefined);\n }, [warnWhen]);\n\n const handleShow = useCallback((id?: BaseKey) => {\n setId?.(id);\n\n setOpen(true);\n }, []);\n\n return {\n ...useFormProps,\n show: handleShow,\n close: handleClose,\n formProps: {\n form,\n ...useFormProps.formProps,\n onValuesChange: formProps?.onValuesChange,\n onKeyUp: formProps?.onKeyUp,\n onFinish: formProps.onFinish,\n },\n drawerProps: {\n width: \"500px\",\n onClose: handleClose,\n open,\n forceRender: true,\n },\n saveButtonProps,\n deleteButtonProps,\n formLoading,\n };\n};\n","import {\n useStepsForm as useStepsFormSF,\n UseStepsFormConfig,\n} from \"sunflower-antd\";\nimport { FormInstance, FormProps } from \"antd\";\n\nimport {\n HttpError,\n UseFormProps as UseFormPropsCore,\n BaseRecord,\n} from \"@refinedev/core\";\n\nimport { useForm, UseFormProps, UseFormReturnType } from \"../useForm\";\n\nexport type UseStepsFormFromSFReturnType<TData, TVariables> = {\n current: number;\n gotoStep: (step: number) => void;\n stepsProps: {\n current: number;\n onChange: (currentStep: number) => void;\n };\n formProps: FormProps<TVariables>;\n formLoading: boolean;\n defaultFormValuesLoading: boolean;\n formValues: {};\n initialValues: {};\n formResult: undefined;\n form: FormInstance<TVariables>;\n submit: (values?: TVariables) => Promise<TData>;\n};\n\nexport type UseStepsFormReturnType<\n TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n> = UseFormReturnType<TData, TError, TVariables> &\n UseStepsFormFromSFReturnType<TData, TVariables>;\n\nexport type UseStepsFormProps<\n TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n> = UseFormPropsCore<TData, TError, TVariables> &\n UseFormProps<TData, TError, TVariables> &\n UseStepsFormConfig;\n\n/**\n * `useStepsForm` hook allows you to split your form under an Ant Design based {@link https://ant.design/components/steps/ Steps} component and provides you with a few useful functionalities that will help you manage your form.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/hooks/form/useStepsForm} for more details.\n *\n * @typeParam TData - Result data of the query extends {@link https://refine.dev/docs/api-references/interfaceReferences#baserecord `BaseRecord`}\n * @typeParam TError - Custom error object that extends {@link https://refine.dev/docs/api-references/interfaceReferences#httperror `HttpError`}\n * @typeParam TVariables - Values for params. default `{}`\n *\n *\n */\nexport const useStepsForm = <\n TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n>(\n props: UseStepsFormProps<TData, TError, TVariables> = {},\n): UseStepsFormReturnType<TData, TError, TVariables> => {\n const useFormProps = useForm<TData, TError, TVariables>({ ...props });\n const { form, formProps } = useFormProps;\n\n const stepsPropsSunflower = useStepsFormSF<TData, TVariables>({\n isBackValidate: false,\n form: form,\n submit: (values: any) => {\n formProps?.onFinish?.(values);\n },\n ...props,\n });\n\n return {\n ...useFormProps,\n ...stepsPropsSunflower,\n formProps: {\n ...stepsPropsSunflower.formProps,\n ...useFormProps.formProps,\n onValuesChange: formProps?.onValuesChange,\n onKeyUp: formProps?.onKeyUp,\n },\n saveButtonProps: {\n ...useFormProps.saveButtonProps,\n onClick: () => stepsPropsSunflower.submit(),\n },\n };\n};\n","import React, { Children, createElement, Fragment } from \"react\";\nimport { Grid, FormProps, Form, TablePaginationConfig, TableProps } from \"antd\";\nimport { useForm as useFormSF } from \"sunflower-antd\";\n\nimport { SorterResult } from \"antd/lib/table/interface\";\n\nimport {\n useLiveMode,\n BaseRecord,\n CrudFilters,\n SuccessErrorNotification,\n HttpError,\n LiveModeProps,\n useTable as useTableCore,\n useTableProps as useTablePropsCore,\n useTableReturnType as useTableCoreReturnType,\n pickNotDeprecated,\n} from \"@refinedev/core\";\n\nimport {\n mapAntdSorterToCrudSorting,\n mapAntdFilterToCrudFilter,\n} from \"@definitions/table\";\nimport { PaginationLink } from \"./paginationLink\";\n\nexport type useTableProps<\n TData,\n TError,\n TSearchVariables = unknown,\n> = useTablePropsCore<TData, TError> &\n SuccessErrorNotification &\n LiveModeProps & {\n onSearch?: (\n data: TSearchVariables,\n ) => CrudFilters | Promise<CrudFilters>;\n };\n\nexport type useTableReturnType<\n TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TSearchVariables = unknown,\n> = useTableCoreReturnType<TData, TError> & {\n searchFormProps: FormProps<TSearchVariables>;\n tableProps: TableProps<TData>;\n};\n\n/**\n * By using useTable, you are able to get properties that are compatible with\n * Ant Design {@link https://ant.design/components/table/ `<Table>`} component.\n * All features such as sorting, filtering and pagination comes as out of box.\n *\n * @see {@link https://refine.dev/docs/api-references/hooks/table/useTable} for more details.\n */\n\nexport const useTable = <\n TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TSearchVariables = unknown,\n>({\n onSearch,\n initialCurrent,\n initialPageSize,\n hasPagination = true,\n pagination,\n initialSorter,\n permanentSorter,\n initialFilter,\n permanentFilter,\n defaultSetFilterBehavior,\n filters: filtersFromProp,\n sorters: sortersFromProp,\n syncWithLocation,\n resource,\n successNotification,\n errorNotification,\n queryOptions,\n liveMode: liveModeFromProp,\n onLiveEvent,\n liveParams,\n meta,\n metaData,\n dataProviderName,\n}: useTableProps<TData, TError, TSearchVariables> = {}): useTableReturnType<\n TData,\n TError,\n TSearchVariables\n> => {\n const {\n tableQueryResult,\n current,\n setCurrent,\n pageSize,\n setPageSize,\n filters,\n setFilters,\n sorters,\n setSorters,\n sorter,\n setSorter,\n createLinkForSyncWithLocation,\n pageCount,\n } = useTableCore<TData, TError>({\n permanentSorter,\n permanentFilter,\n initialCurrent,\n initialPageSize,\n pagination,\n hasPagination,\n filters: filtersFromProp,\n sorters: sortersFromProp,\n initialSorter,\n initialFilter,\n syncWithLocation,\n resource,\n defaultSetFilterBehavior,\n successNotification,\n errorNotification,\n queryOptions,\n liveMode: liveModeFromProp,\n onLiveEvent,\n liveParams,\n meta: pickNotDeprecated(meta, metaData),\n metaData: pickNotDeprecated(meta, metaData),\n dataProviderName,\n });\n const breakpoint = Grid.useBreakpoint();\n const [form] = Form.useForm<TSearchVariables>();\n const formSF = useFormSF<any, TSearchVariables>({\n form: form,\n });\n const liveMode = useLiveMode(liveModeFromProp);\n\n const hasPaginationString = hasPagination === false ? \"off\" : \"server\";\n const isPaginationEnabled =\n (pagination?.mode ?? hasPaginationString) !== \"off\";\n\n const preferredInitialFilters = pickNotDeprecated(\n filtersFromProp?.initial,\n initialFilter,\n );\n\n const { data, isFetched, isLoading } = tableQueryResult;\n\n const onChange = (\n paginationState: TablePaginationConfig,\n tableFilters: Record<\n string,\n (string | number | boolean) | (string | number | boolean)[] | null\n >,\n sorter: SorterResult<any> | SorterResult<any>[],\n ) => {\n if (tableFilters && Object.keys(tableFilters).length > 0) {\n // Map Antd:Filter -> refine:CrudFilter\n const crudFilters = mapAntdFilterToCrudFilter(\n tableFilters,\n filters,\n preferredInitialFilters,\n );\n setFilters(crudFilters);\n }\n\n if (sorter && Object.keys(sorter).length > 0) {\n // Map Antd:Sorter -> refine:CrudSorting\n const crudSorting = mapAntdSorterToCrudSorting(sorter);\n setSorters(crudSorting);\n }\n\n if (isPaginationEnabled) {\n setCurrent?.(paginationState.current || 1);\n setPageSize?.(paginationState.pageSize || 10);\n }\n };\n\n const onFinish = async (value: TSearchVariables) => {\n if (onSearch) {\n const searchFilters = await onSearch(value);\n setFilters(searchFilters);\n\n if (isPaginationEnabled) {\n setCurrent?.(1);\n }\n }\n };\n\n const antdPagination = (): false | TablePaginationConfig => {\n if (isPaginationEnabled) {\n return {\n itemRender: (page, type, element) => {\n const link = createLinkForSyncWithLocation({\n pagination: {\n pageSize,\n current: page,\n },\n sorters,\n filters,\n });\n\n if (type === \"page\") {\n return createElement(PaginationLink, {\n to: link,\n element: `${page}`,\n });\n }\n if (type === \"next\" || type === \"prev\") {\n return createElement(PaginationLink, {\n to: link,\n element: element,\n });\n }\n\n if (type === \"jump-next\" || type === \"jump-prev\") {\n const elementChildren = (element as React.ReactElement)\n ?.props?.children;\n\n return createElement(PaginationLink, {\n to: link,\n element:\n Children.count(elementChildren) > 1\n ? createElement(\n Fragment,\n {},\n elementChildren,\n )\n : elementChildren,\n });\n }\n\n return element;\n },\n pageSize,\n current,\n simple: !breakpoint.sm,\n position: !breakpoint.sm ? [\"bottomCenter\"] : [\"bottomRight\"],\n total: data?.total,\n };\n }\n\n return false;\n };\n\n return {\n searchFormProps: {\n ...formSF.formProps,\n onFinish,\n },\n tableProps: {\n dataSource: data?.data,\n loading: liveMode === \"auto\" ? isLoading : !isFetched,\n onChange,\n pagination: antdPagination(),\n scroll: { x: true },\n },\n tableQueryResult,\n sorters,\n sorter,\n filters,\n setSorters,\n setSorter,\n setFilters,\n current,\n setCurrent,\n pageSize,\n setPageSize,\n pageCount,\n createLinkForSyncWithLocation,\n };\n};\n","import {\n CrudFilters,\n CrudOperators,\n CrudSorting,\n CrudFilter,\n getDefaultFilter as getDefaultFilterCore,\n getDefaultSortOrder as getDefaultSortOrderCore,\n ConditionalFilter,\n LogicalFilter,\n} from \"@refinedev/core\";\nimport { SortOrder, SorterResult } from \"antd/lib/table/interface\";\n\nexport const getDefaultSortOrder = (\n columnName: string,\n sorter?: CrudSorting,\n): SortOrder | undefined => {\n const sort = getDefaultSortOrderCore(columnName, sorter);\n\n if (sort) {\n return `${sort}end`;\n }\n\n return undefined;\n};\n\n/**\n * @deprecated getDefaultFilter moved to `@refinedev/core`. Use from `@refinedev/core`\n */\nexport const getDefaultFilter = (\n columnName: string,\n filters?: CrudFilters,\n operatorType: CrudOperators = \"eq\",\n): CrudFilter[\"value\"] | undefined => {\n return getDefaultFilterCore(columnName, filters, operatorType);\n};\n\nexport const mapAntdSorterToCrudSorting = (\n sorter: SorterResult<any> | SorterResult<any>[],\n): CrudSorting => {\n const crudSorting: CrudSorting = [];\n if (Array.isArray(sorter)) {\n sorter\n .sort((a, b) => {\n return ((a.column?.sorter as { multiple?: number }).multiple ??\n 0) <\n ((b.column?.sorter as { multiple?: number }).multiple ?? 0)\n ? -1\n : 0;\n })\n .map((item) => {\n if (item.field && item.order) {\n const field = Array.isArray(item.field)\n ? item.field.join(\".\")\n : `${item.field}`;\n\n crudSorting.push({\n field: `${item.columnKey ?? field}`,\n order: item.order.replace(\"end\", \"\") as \"asc\" | \"desc\",\n });\n }\n });\n } else {\n if (sorter.field && sorter.order) {\n const field = Array.isArray(sorter.field)\n ? sorter.field.join(\".\")\n : `${sorter.field}`;\n\n crudSorting.push({\n field: `${sorter.columnKey ?? field}`,\n order: sorter.order.replace(\"end\", \"\") as \"asc\" | \"desc\",\n });\n }\n }\n\n return crudSorting;\n};\n\nexport const mapAntdFilterToCrudFilter = (\n tableFilters: Record<\n string,\n (string | number | boolean) | (string | number | boolean)[] | null\n >,\n prevFilters: CrudFilters,\n initialFilters?: CrudFilters,\n): CrudFilters => {\n const crudFilters: CrudFilters = [];\n const mapInitialFilter: Record<string, CrudFilter> = (\n initialFilters ?? []\n ).reduce((acc, item) => {\n const field =\n (item as ConditionalFilter).key || (item as LogicalFilter).field;\n return { ...acc, [field]: item };\n }, {});\n\n Object.keys(tableFilters).map((field) => {\n const value = tableFilters[field];\n const operator =\n prevFilters\n .filter((i) => i.operator !== \"or\")\n .find((p: any) => p.field === field)?.operator ||\n mapInitialFilter[field]?.operator;\n\n if (operator !== \"or\" && operator !== \"and\") {\n crudFilters.push({\n field,\n operator: operator ?? (Array.isArray(value) ? \"in\" : \"eq\"),\n value,\n });\n }\n });\n\n return crudFilters;\n};\n","import { useLink, useRouterContext, useRouterType } from \"@refinedev/core\";\nimport React, { ReactNode } from \"react\";\n\ninterface PaginationLinkProps {\n to: string;\n element: ReactNode;\n}\n\nexport const PaginationLink = ({ to, element }: PaginationLinkProps) => {\n const { Link: LegacyLink } = useRouterContext();\n const routerType = useRouterType();\n const Link = useLink();\n\n const ActiveLink = routerType === \"legacy\" ? LegacyLink : Link;\n\n return (\n <ActiveLink\n to={to}\n replace={false}\n onClick={(e: React.PointerEvent<HTMLButtonElement>) => {\n e.preventDefault();\n }}\n >\n {element}\n </ActiveLink>\n );\n};\n","import { useTable } from \"@hooks\";\nimport { BaseKey, BaseRecord, HttpError, UseFormProps } from \"@refinedev/core\";\nimport { ButtonProps } from \"antd\";\n\nimport { useTableProps, useTableReturnType } from \"../useTable\";\nimport { UseFormReturnType, useForm } from \"../../form/useForm\";\n\nexport type useEditableTableReturnType<\n TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n TSearchVariables = unknown,\n> = useTableReturnType<TData, TError, TSearchVariables> &\n UseFormReturnType<TData, TError, TVariables> & {\n saveButtonProps: ButtonProps & {\n onClick: () => void;\n };\n cancelButtonProps: ButtonProps & {\n onClick: () => void;\n };\n editButtonProps: (id: BaseKey) => ButtonProps & {\n onClick: () => void;\n };\n isEditing: (id: BaseKey) => boolean;\n };\n\ntype useEditableTableProps<\n TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n TSearchVariables = unknown,\n> = useTableProps<TData, TError, TSearchVariables> &\n UseFormProps<TData, TError, TVariables>;\n\n/**\n * `useEditeableTable` allows you to implement edit feature on the table with ease,\n * on top of all the features that {@link https://refine.dev/docs/api-references/hooks/table/useTable `useTable`} provides.\n * `useEditableTable` return properties that can be used on Ant Design's {@link https://ant.design/components/table/ `<Table>`}\n * and {@link https://ant.design/components/form/ `<Form>`} components.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/hooks/table/useEditableTable} for more details.\n */\nexport const useEditableTable = <\n TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n TSearchVariables = unknown,\n>(\n props: useEditableTableProps<\n TData,\n TError,\n TVariables,\n TSearchVariables\n > = {},\n): useEditableTableReturnType<TData, TError, TVariables, TSearchVariables> => {\n const table = useTable<TData, TError, TSearchVariables>({ ...props });\n const edit = useForm<TData, TError, TVariables>({\n ...props,\n action: \"edit\",\n redirect: false,\n });\n\n const { id: editId, setId, saveButtonProps } = edit;\n\n const cancelButtonProps = {\n onClick: () => {\n setId(undefined);\n },\n };\n\n const editButtonProps = (id: BaseKey) => {\n return {\n onClick: () => setId(id),\n };\n };\n\n const isEditing = (id: BaseKey) => id === editId;\n\n return {\n ...table,\n ...edit,\n saveButtonProps,\n cancelButtonProps,\n editButtonProps,\n isEditing,\n };\n};\n","import { SelectProps } from \"antd/lib/select\";\nimport { QueryObserverResult } from \"@tanstack/react-query\";\n\nimport {\n useSelect as useSelectCore,\n BaseRecord,\n GetManyResponse,\n GetListResponse,\n HttpError,\n UseSelectProps,\n} from \"@refinedev/core\";\n\nexport type UseSelectReturnType<TData extends BaseRecord = BaseRecord> = {\n selectProps: SelectProps<{ value: string; label: string }>;\n queryResult: QueryObserverResult<GetListResponse<TData>>;\n defaultValueQueryResult: QueryObserverResult<GetManyResponse<TData>>;\n};\n\n/**\n * `useSelect` hook allows you to manage an Ant Design {@link https://ant.design/components/select/ Select} component when records in a resource needs to be used as select options.\n *\n * @see {@link https://refine.dev/docs/api-references/hooks/field/useSelect} for more details.\n *\n * @typeParam TData - Result data of the query extends {@link https://refine.dev/docs/api-references/interfaceReferences#baserecord `BaseRecord`}\n *\n */\nexport const useSelect = <\n TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n>(\n props: UseSelectProps<TData, TError>,\n): UseSelectReturnType<TData> => {\n const { queryResult, defaultValueQueryResult, onSearch, options } =\n useSelectCore(props);\n\n return {\n selectProps: {\n options,\n onSearch,\n loading: defaultValueQueryResult.isFetching,\n showSearch: true,\n filterOption: false,\n },\n queryResult,\n defaultValueQueryResult,\n };\n};\n","import { QueryObserverResult } from \"@tanstack/react-query\";\n\nimport { CheckboxGroupProps } from \"antd/lib/checkbox\";\nimport {\n BaseRecord,\n GetListResponse,\n HttpError,\n UseSelectProps,\n useSelect,\n BaseKey,\n pickNotDeprecated,\n} from \"@refinedev/core\";\n\nexport type UseCheckboxGroupReturnType<TData extends BaseRecord = BaseRecord> =\n {\n checkboxGroupProps: CheckboxGroupProps;\n queryResult: QueryObserverResult<GetListResponse<TData>>;\n };\n\n/**\n * `useCheckboxGroup` hook allows you to manage an Ant Design {@link https://ant.design/components/checkbox/#components-checkbox-demo-group Checkbox.Group} component when records in a resource needs to be used as checkbox options.\n *\n * @see {@link https://refine.dev/docs/ui-framewors/antd/hooks/field/useCheckboxGroup} for more details.\n *\n * @typeParam TData - Result data of the query extends {@link https://refine.dev/docs/api-references/interfaceReferences#baserecord `BaseRecord`}\n *\n */\n\ntype UseCheckboxGroupProps<TData, TError> = Omit<\n UseSelectProps<TData, TError>,\n \"defaultValue\"\n> & {\n /**\n * Sets the default value\n */\n defaultValue?: BaseKey[];\n};\n\nexport const useCheckboxGroup = <\n TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n>({\n resource,\n sort,\n sorters,\n filters,\n optionLabel,\n optionValue,\n queryOptions,\n fetchSize,\n pagination,\n liveMode,\n defaultValue,\n onLiveEvent,\n liveParams,\n meta,\n metaData,\n dataProviderName,\n}: UseCheckboxGroupProps<TData, TError>): UseCheckboxGroupReturnType<TData> => {\n const { queryResult, options } = useSelect({\n resource,\n sort,\n sorters,\n filters,\n optionLabel,\n optionValue,\n queryOptions,\n fetchSize,\n pagination,\n liveMode,\n defaultValue,\n onLiveEvent,\n liveParams,\n meta: pickNotDeprecated(meta, metaData),\n metaData: pickNotDeprecated(meta, metaData),\n dataProviderName,\n });\n return {\n checkboxGroupProps: {\n options,\n defaultValue,\n },\n queryResult,\n };\n};\n","import { QueryObserverResult } from \"@tanstack/react-query\";\n\nimport { RadioGroupProps } from \"antd/lib/radio\";\nimport {\n BaseKey,\n BaseRecord,\n GetListResponse,\n HttpError,\n pickNotDeprecated,\n useSelect,\n UseSelectProps,\n} from \"@refinedev/core\";\n\nexport type UseRadioGroupReturnType<TData extends BaseRecord = BaseRecord> = {\n radioGroupProps: RadioGroupProps;\n queryResult: QueryObserverResult<GetListResponse<TData>>;\n};\n\n/**\n * `useRadioGroup` hook allows you to manage an Ant Design {@link https://ant.design/components/radio/#components-radio-demo-radiogroup-with-name Radio.Group} component when records in a resource needs to be used as radio options.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/hooks/field/useRadioGroup} for more details.\n *\n * @typeParam TData - Result data of the query extends {@link https://refine.dev/docs/core/interfaceReferences#baserecord `BaseRecord`}\n *\n */\n\ntype UseRadioGroupProps<TData, TError> = Omit<\n UseSelectProps<TData, TError>,\n \"defaultValue\"\n> & {\n /**\n * Sets the default value\n */\n defaultValue?: BaseKey;\n};\n\nexport const useRadioGroup = <\n TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n>({\n resource,\n sort,\n sorters,\n filters,\n optionLabel,\n optionValue,\n queryOptions,\n fetchSize,\n pagination,\n liveMode,\n defaultValue,\n onLiveEvent,\n liveParams,\n meta,\n metaData,\n dataProviderName,\n}: UseRadioGroupProps<TData, TError>): UseRadioGroupReturnType<TData> => {\n const { queryResult, options } = useSelect({\n resource,\n sort,\n sorters,\n filters,\n optionLabel,\n optionValue,\n queryOptions,\n fetchSize,\n pagination,\n liveMode,\n defaultValue,\n onLiveEvent,\n liveParams,\n meta: pickNotDeprecated(meta, metaData),\n metaData: pickNotDeprecated(meta, metaData),\n dataProviderName,\n });\n\n return {\n radioGroupProps: {\n options,\n defaultValue,\n },\n queryResult,\n };\n};\n","import React from \"react\";\nimport { ButtonProps, notification, UploadProps, Progress } from \"antd\";\nimport {\n useTranslate,\n useResource,\n BaseRecord,\n HttpError,\n useImport as useImportCore,\n UseImportReturnType,\n ImportOptions,\n pickNotDeprecated,\n} from \"@refinedev/core\";\n\n/**\n * `useImport` hook allows you to handle your csv import logic easily.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/hooks/import/useImport} for more details.\n *\n * @typeParam TItem - Interface of parsed csv data\n * @typeParam TData - Result data of the query extends {@link https://refine.dev/docs/api-references/interfaceReferences#baserecord `BaseRecord`}\n * @typeParam TError - Custom error object that extends {@link https://refine.dev/docs/api-references/interfaceReferences#httperror `HttpError`}\n * @typeParam TVariables - Values for mutation function\n *\n */\nexport const useImport = <\n TItem = any,\n TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = any,\n>({\n resource: resourceFromProp,\n resourceName,\n mapData = (item) => item as unknown as TVariables,\n paparseOptions,\n batchSize = Number.MAX_SAFE_INTEGER,\n onFinish,\n meta,\n metaData,\n dataProviderName,\n onProgress: onProgressFromProp,\n}: ImportOptions<TItem, TVariables, TData> = {}): Omit<\n UseImportReturnType<TData, TVariables, TError>,\n \"handleChange\" | \"inputProps\"\n> & {\n uploadProps: UploadProps;\n buttonProps: ButtonProps;\n} => {\n const t = useTranslate();\n\n const { resource } = useResource(resourceFromProp ?? resourceName);\n\n const { mutationResult, isLoading, handleChange } = useImportCore<\n TItem,\n TData,\n TError,\n TVariables\n >({\n resource: resource?.identifier ?? resource?.name,\n mapData,\n paparseOptions,\n batchSize,\n meta: pickNotDeprecated(meta, metaData),\n metaData: pickNotDeprecated(meta, metaData),\n dataProviderName,\n onFinish,\n onProgress:\n onProgressFromProp ??\n (({ totalAmount, processedAmount }) => {\n if (totalAmount > 0 && processedAmount > 0) {\n const description = (\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n marginTop: \"-7px\",\n }}\n >\n <Progress\n type=\"circle\"\n percent={Math.floor(\n (processedAmount / totalAmount) * 100,\n )}\n width={50}\n strokeColor=\"#1890ff\"\n status=\"normal\"\n />\n <span style={{ marginLeft: 8, width: \"100%\" }}>\n {t(\n \"notifications.importProgress\",\n {\n processed: processedAmount,\n total: totalAmount,\n },\n `Importing: ${processedAmount}/${totalAmount}`,\n )}\n </span>\n </div>\n );\n\n notification.open({\n description,\n message: null,\n key: `${resource}-import`,\n duration: 0,\n });\n\n if (processedAmount >= totalAmount) {\n }\n\n if (processedAmount === totalAmount) {\n setTimeout(() => {\n notification.destroy(`${resource}-import`);\n }, 4500);\n }\n }\n }),\n });\n\n return {\n uploadProps: {\n onChange: handleChange,\n beforeUpload: () => false,\n showUploadList: false,\n accept: \".csv\",\n },\n buttonProps: {\n type: \"default\",\n loading: isLoading,\n },\n mutationResult,\n isLoading,\n };\n};\n","import { Children, createElement, Fragment } from \"react\";\nimport { ListProps, FormProps, Form, Grid } from \"antd\";\n\nimport {\n BaseRecord,\n CrudFilters,\n SuccessErrorNotification,\n HttpError,\n LiveModeProps,\n useTable as useTableCore,\n useTableProps as useTablePropsCore,\n useTableReturnType,\n pickNotDeprecated,\n} from \"@refinedev/core\";\nimport { useLiveMode } from \"@refinedev/core\";\nimport { PaginationLink } from \"@hooks/table/useTable/paginationLink\";\nimport { PaginationConfig } from \"antd/lib/pagination\";\n\nexport type useSimpleListProps<TData, TError, TSearchVariables> =\n useTablePropsCore<TData, TError> & {\n onSearch?: (\n data: TSearchVariables,\n ) => CrudFilters | Promise<CrudFilters>;\n } & SuccessErrorNotification &\n LiveModeProps;\n\nexport type useSimpleListReturnType<\n TData extends BaseRecord = BaseRecord,\n TSearchVariables = unknown,\n> = Omit<useTableReturnType<TData>, \"tableQueryResult\"> & {\n listProps: ListProps<TData>;\n queryResult: useTableReturnType[\"tableQueryResult\"];\n searchFormProps: FormProps<TSearchVariables>;\n};\n\n/**\n * By using `useSimpleList` you get props for your records from API in accordance with Ant Design {@link https://ant.design/components/list/ `<List>`} component.\n * All features such as pagination, sorting come out of the box.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/hooks/list/useSimpleList} for more details.\n *\n * @typeParam TData - Result data of the query extends {@link https://refine.dev/docs/api-references/interfaceReferences#baserecord `BaseRecord`}\n * @typeParam TError - Custom error object that extends {@link https://refine.dev/docs/api-references/interfaceReferences#httperror `HttpError`}\n * @typeParam TSearchVariables - Antd form values\n *\n */\n\nexport const useSimpleList = <\n TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TSearchVariables = unknown,\n>({\n resource,\n initialCurrent,\n initialPageSize,\n pagination,\n hasPagination = true,\n initialSorter,\n permanentSorter,\n initialFilter,\n permanentFilter,\n defaultSetFilterBehavior,\n filters: filtersFromProp,\n sorters: sortersFromProp,\n onSearch,\n queryOptions,\n syncWithLocation,\n successNotification,\n errorNotification,\n liveMode: liveModeFromProp,\n onLiveEvent,\n liveParams,\n meta,\n metaData,\n dataProviderName,\n}: useSimpleListProps<\n TData,\n TError,\n TSearchVariables\n> = {}): useSimpleListReturnType<TData, TSearchVariables> => {\n const {\n sorters,\n sorter,\n filters,\n current,\n pageSize,\n pageCount,\n setFilters,\n setCurrent,\n setPageSize,\n setSorter,\n setSorters,\n createLinkForSyncWithLocation,\n tableQueryResult: queryResult,\n } = useTableCore({\n resource,\n initialSorter,\n permanentSorter,\n initialFilter,\n permanentFilter,\n filters: filtersFromProp,\n sorters: sortersFromProp,\n defaultSetFilterBehavior,\n initialCurrent,\n initialPageSize,\n queryOptions,\n successNotification,\n errorNotification,\n liveMode: liveModeFromProp,\n onLiveEvent,\n liveParams,\n meta: pickNotDeprecated(meta, metaData),\n metaData: pickNotDeprecated(meta, metaData),\n syncWithLocation,\n dataProviderName,\n pagination,\n hasPagination,\n });\n\n const hasPaginationString = hasPagination === false ? \"off\" : \"server\";\n const isPaginationEnabled =\n (pagination?.mode ?? hasPaginationString) !== \"off\";\n\n const breakpoint = Grid.useBreakpoint();\n\n const liveMode = useLiveMode(liveModeFromProp);\n\n const [form] = Form.useForm<TSearchVariables>();\n\n const { data, isFetched, isLoading } = queryResult;\n\n const onChange = (page: number, pageSize?: number): void => {\n if (isPaginationEnabled) {\n setCurrent(page);\n setPageSize(pageSize || 10);\n }\n };\n\n const onFinish = async (values: TSearchVariables) => {\n if (onSearch) {\n const searchFilters = await onSearch(values);\n if (isPaginationEnabled) {\n setCurrent?.(1);\n }\n return setFilters(searchFilters);\n }\n };\n\n const antdPagination = (): false | PaginationConfig => {\n if (isPaginationEnabled) {\n return {\n itemRender: (page, type, element) => {\n const link = createLinkForSyncWithLocation({\n pagination: {\n pageSize,\n current: page,\n },\n sorters,\n filters,\n });\n\n if (type === \"page\") {\n return createElement(PaginationLink, {\n to: link,\n element: `${page}`,\n });\n }\n if (type === \"next\" || type === \"prev\") {\n return createElement(PaginationLink, {\n to: link,\n element: element,\n });\n }\n\n if (type === \"jump-next\" || type === \"jump-prev\") {\n const elementChildren = (element as React.ReactElement)\n ?.props?.children;\n\n return createElement(PaginationLink, {\n to: link,\n element:\n Children.count(elementChildren) > 1\n ? createElement(\n Fragment,\n {},\n elementChildren,\n )\n : elementChildren,\n });\n }\n\n return element;\n },\n pageSize,\n current,\n simple: !breakpoint.sm,\n total: data?.total,\n onChange,\n };\n }\n\n return false;\n };\n\n return {\n searchFormProps: {\n form,\n onFinish,\n },\n listProps: {\n dataSource: data?.data,\n loading: liveMode === \"auto\" ? isLoading : !isFetched,\n pagination: antdPagination(),\n },\n queryResult,\n filters,\n setFilters,\n sorter,\n setSorter,\n sorters,\n setSorters,\n current,\n setCurrent,\n pageSize,\n setPageSize,\n pageCount,\n createLinkForSyncWithLocation,\n };\n};\n","import { useCallback, useMemo, useState } from \"react\";\nimport { UploadChangeParam } from \"antd/lib/upload\";\n\nexport type UseFileUploadStateType = () => {\n isLoading: boolean;\n onChange: (info: UploadChangeParam) => void;\n};\n\nexport const useFileUploadState: UseFileUploadStateType = () => {\n const [isLoading, setIsloading] = useState(false);\n\n const onChange = useCallback((info: UploadChangeParam) => {\n const fileListLoadings = mapStatusToLoading(info.fileList);\n\n if (fileListLoadings.includes(true)) {\n setIsloading(true);\n } else {\n setIsloading(false);\n }\n }, []);\n\n return useMemo(() => ({ isLoading, onChange }), [isLoading]);\n};\n\nconst mapStatusToLoading = (files: UploadChangeParam[\"fileList\"]) => {\n return files.map((file) => {\n switch (file.status) {\n case \"uploading\":\n return true;\n default:\n return false;\n }\n });\n};\n","import { ModalProps } from \"antd\";\nimport {\n useModal as useCoreModal,\n useModalReturnType as useCoreModelReturnType,\n} from \"@refinedev/core\";\n\nexport type useModalReturnType = {\n modalProps: ModalProps;\n} & Omit<useCoreModelReturnType, \"visible\">;\n\nexport type useModalProps = {\n /**\n * Default props for Ant Design {@link https://ant.design/components/modal/ `<Modal>`} component.\n */\n modalProps?: ModalProps;\n};\n\n/**\n * By using `useModal` you get props for your records from API in accordance with Ant Design {@link https://ant.design/components/modal/ `<Modal>`} component.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/hooks/ui/useModal} for more details.\n */\nexport const useModal = ({\n modalProps = {},\n}: useModalProps = {}): useModalReturnType => {\n const { show, close, visible } = useCoreModal({\n defaultVisible: modalProps.open,\n });\n\n return {\n modalProps: {\n ...modalProps,\n onCancel: (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => {\n modalProps.onCancel?.(e);\n close();\n },\n open: visible,\n visible,\n },\n show,\n close,\n };\n};\n","import React from \"react\";\nimport { NotificationProvider } from \"@refinedev/core\";\nimport { notification } from \"antd\";\n\nimport { UndoableNotification } from \"@components/undoableNotification\";\n\nexport const notificationProvider: NotificationProvider = {\n open: ({\n key,\n message,\n description,\n type,\n cancelMutation,\n undoableTimeout,\n }) => {\n if (type === \"progress\") {\n notification.open({\n key,\n description: (\n <UndoableNotification\n notificationKey={key}\n message={message}\n cancelMutation={cancelMutation}\n undoableTimeout={undoableTimeout}\n />\n ),\n message: null,\n duration: 0,\n closeIcon: <></>,\n });\n } else {\n notification.open({\n key,\n description: message,\n message: description ?? null,\n type,\n });\n }\n },\n close: (key) => notification.destroy(key),\n};\n","import React from \"react\";\nimport { Button, notification, Progress } from \"antd\";\nimport { OpenNotificationParams } from \"@refinedev/core\";\nimport { UndoOutlined } from \"@ant-design/icons\";\n\nexport type UndoableNotificationProps = {\n notificationKey: OpenNotificationParams[\"key\"];\n message: OpenNotificationParams[\"message\"];\n cancelMutation: OpenNotificationParams[\"cancelMutation\"];\n undoableTimeout: OpenNotificationParams[\"undoableTimeout\"];\n};\n\nexport const UndoableNotification: React.FC<UndoableNotificationProps> = ({\n notificationKey,\n message,\n cancelMutation,\n undoableTimeout,\n}) => (\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n marginTop: \"-7px\",\n }}\n >\n <Progress\n type=\"circle\"\n percent={(undoableTimeout ?? 0) * 20}\n format={(time) => time && time / 20}\n width={50}\n strokeColor=\"#1890ff\"\n status=\"normal\"\n />\n <span style={{ marginLeft: 8, width: \"100%\" }}>{message}</span>\n <Button\n style={{ flexShrink: 0 }}\n onClick={() => {\n cancelMutation?.();\n notification.destroy(notificationKey ?? \"\");\n }}\n disabled={undoableTimeout === 0}\n icon={<UndoOutlined />}\n ></Button>\n </div>\n);\n","import React from \"react\";\nimport { Grid, Layout as AntdLayout } from \"antd\";\n\nimport { Sider as DefaultSider } from \"./sider\";\nimport { Header as DefaultHeader } from \"./header\";\nimport { RefineLayoutLayoutProps } from \"./types\";\n\nexport const Layout: React.FC<RefineLayoutLayoutProps> = ({\n children,\n Header,\n Sider,\n Title,\n Footer,\n OffLayoutArea,\n}) => {\n const breakpoint = Grid.useBreakpoint();\n const SiderToRender = Sider ?? DefaultSider;\n const HeaderToRender = Header ?? DefaultHeader;\n const isSmall = typeof breakpoint.sm === \"undefined\" ? true : breakpoint.sm;\n\n return (\n <AntdLayout style={{ minHeight: \"100vh\" }}>\n <SiderToRender Title={Title} />\n <AntdLayout>\n <HeaderToRender />\n <AntdLayout.Content>\n <div\n style={{\n minHeight: 360,\n padding: isSmall ? 24 : 12,\n }}\n >\n {children}\n </div>\n {OffLayoutArea && <OffLayoutArea />}\n </AntdLayout.Content>\n {Footer && <Footer />}\n </AntdLayout>\n </AntdLayout>\n );\n};\n","import React, { useState } from \"react\";\nimport { Layout, Menu, Grid, ConfigProvider, Drawer, Button } from \"antd\";\nimport {\n DashboardOutlined,\n LogoutOutlined,\n UnorderedListOutlined,\n BarsOutlined,\n} from \"@ant-design/icons\";\nimport {\n useTranslate,\n useLogout,\n useTitle,\n CanAccess,\n ITreeMenu,\n useIsExistAuthentication,\n useRouterContext,\n useMenu,\n useRefineContext,\n useLink,\n useRouterType,\n useActiveAuthProvider,\n pickNotDeprecated,\n} from \"@refinedev/core\";\n\nimport { Title as DefaultTitle } from \"@components\";\n\nimport { drawerButtonStyles } from \"./styles\";\nimport { RefineLayoutSiderProps } from \"../types\";\n\nconst { SubMenu } = Menu;\n\nexport const Sider: React.FC<RefineLayoutSiderProps> = ({\n Title: TitleFromProps,\n render,\n meta,\n}) => {\n const [collapsed, setCollapsed] = useState<boolean>(false);\n const [drawerOpen, setDrawerOpen] = useState<boolean>(false);\n const isExistAuthentication = useIsExistAuthentication();\n const routerType = useRouterType();\n const NewLink = useLink();\n const { Link: LegacyLink } = useRouterContext();\n const Link = routerType === \"legacy\" ? LegacyLink : NewLink;\n const TitleFromContext = useTitle();\n const translate = useTranslate();\n const { menuItems, selectedKey, defaultOpenKeys } = useMenu({ meta });\n const breakpoint = Grid.useBreakpoint();\n const { hasDashboard } = useRefineContext();\n const authProvider = useActiveAuthProvider();\n const { mutate: mutateLogout } = useLogout({\n v3LegacyAuthProviderCompatible: Boolean(authProvider?.isLegacy),\n });\n\n const isMobile =\n typeof breakpoint.lg === \"undefined\" ? false : !breakpoint.lg;\n\n const RenderToTitle = TitleFromProps ?? TitleFromContext ?? DefaultTitle;\n\n const renderTreeView = (tree: ITreeMenu[], selectedKey?: string) => {\n return tree.map((item: ITreeMenu) => {\n const {\n icon,\n label,\n route,\n key,\n name,\n children,\n parentName,\n meta,\n options,\n } = item;\n\n if (children.length > 0) {\n return (\n <CanAccess\n key={item.key}\n resource={name.toLowerCase()}\n action=\"list\"\n params={{\n resource: item,\n }}\n >\n <SubMenu\n key={item.key}\n icon={icon ?? <UnorderedListOutlined />}\n title={label}\n >\n {renderTreeView(children, selectedKey)}\n </SubMenu>\n </CanAccess>\n );\n }\n const isSelected = key === selectedKey;\n const isRoute = !(\n pickNotDeprecated(meta?.parent, options?.parent, parentName) !==\n undefined && children.length === 0\n );\n return (\n <CanAccess\n key={item.key}\n resource={name.toLowerCase()}\n action=\"list\"\n params={{\n resource: item,\n }}\n >\n <Menu.Item\n key={item.key}\n style={{\n fontWeight: isSelected ? \"bold\" : \"normal\",\n }}\n icon={icon ?? (isRoute && <UnorderedListOutlined />)}\n >\n <Link to={route ?? \"\"}>{label}</Link>\n {!collapsed && isSelected && (\n <div className=\"ant-menu-tree-arrow\" />\n )}\n </Menu.Item>\n </CanAccess>\n );\n });\n };\n\n const logout = isExistAuthentication && (\n <Menu.Item\n key=\"logout\"\n onClick={() => mutateLogout()}\n icon={<LogoutOutlined />}\n >\n {translate(\"buttons.logout\", \"Logout\")}\n </Menu.Item>\n );\n\n const dashboard = hasDashboard ? (\n <Menu.Item\n key=\"dashboard\"\n style={{\n fontWeight: selectedKey === \"/\" ? \"bold\" : \"normal\",\n }}\n icon={<DashboardOutlined />}\n >\n <Link to=\"/\">{translate(\"dashboard.title\", \"Dashboard\")}</Link>\n {!collapsed && selectedKey === \"/\" && (\n <div className=\"ant-menu-tree-arrow\" />\n )}\n </Menu.Item>\n ) : null;\n\n const items = renderTreeView(menuItems, selectedKey);\n\n const renderSider = () => {\n if (render) {\n return render({\n dashboard,\n items,\n logout,\n collapsed,\n });\n }\n return (\n <>\n {dashboard}\n {items}\n {logout}\n </>\n );\n };\n\n const renderMenu = () => {\n return (\n <>\n <Menu\n theme=\"dark\"\n selectedKeys={selectedKey ? [selectedKey] : []}\n defaultOpenKeys={defaultOpenKeys}\n mode=\"inline\"\n onClick={() => {\n setDrawerOpen(false);\n if (!breakpoint.lg) {\n setCollapsed(true);\n }\n }}\n >\n {renderSider()}\n </Menu>\n </>\n );\n };\n\n const renderDrawerSider = () => {\n return (\n <>\n <Drawer\n open={drawerOpen}\n onClose={() => setDrawerOpen(false)}\n placement=\"left\"\n closable={false}\n width={200}\n bodyStyle={{\n padding: 0,\n }}\n maskClosable={true}\n >\n <Layout>\n <Layout.Sider\n style={{ height: \"100vh\", overflow: \"hidden\" }}\n >\n <RenderToTitle collapsed={false} />\n {renderMenu()}\n </Layout.Sider>\n </Layout>\n </Drawer>\n <Button\n style={drawerButtonStyles}\n size=\"large\"\n onClick={() => setDrawerOpen(true)}\n icon={<BarsOutlined />}\n ></Button>\n </>\n );\n };\n\n const renderContent = () => {\n if (isMobile) {\n return renderDrawerSider();\n }\n\n return (\n <Layout.Sider\n collapsible\n collapsed={collapsed}\n onCollapse={(collapsed: boolean): void =>\n setCollapsed(collapsed)\n }\n collapsedWidth={80}\n breakpoint=\"lg\"\n >\n <RenderToTitle collapsed={collapsed} />\n {renderMenu()}\n </Layout.Sider>\n );\n };\n\n return (\n <ConfigProvider\n theme={{\n components: {\n Menu: {\n colorItemBg: \"transparent\",\n colorItemText: \"#fff\",\n colorItemTextSelected: \"#fff\",\n colorItemBgSelected: \"transparent\",\n colorItemTextHover: \"#fff\",\n },\n },\n }}\n >\n {renderContent()}\n </ConfigProvider>\n );\n};\n","import { CSSProperties } from \"react\";\n\nexport const drawerButtonStyles: CSSProperties = {\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0,\n position: \"fixed\",\n top: 64,\n zIndex: 999,\n};\n","import React from \"react\";\nimport { Layout as AntdLayout, Typography, Avatar, Space } from \"antd\";\nimport { useGetIdentity, useActiveAuthProvider } from \"@refinedev/core\";\nimport { RefineLayoutHeaderProps } from \"../types\";\nconst { Text } = Typography;\n\nexport const Header: React.FC<RefineLayoutHeaderProps> = () => {\n const authProvider = useActiveAuthProvider();\n const { data: user } = useGetIdentity({\n v3LegacyAuthProviderCompatible: Boolean(authProvider?.isLegacy),\n });\n\n const shouldRenderHeader = user && (user.name || user.avatar);\n\n return shouldRenderHeader ? (\n <AntdLayout.Header\n style={{\n display: \"flex\",\n justifyContent: \"flex-end\",\n alignItems: \"center\",\n padding: \"0px 24px\",\n height: \"64px\",\n }}\n >\n <Space>\n {user.name && (\n <Text ellipsis strong>\n {user.name}\n </Text>\n )}\n {user.avatar && (\n <Avatar size=\"large\" src={user?.avatar} alt={user?.name} />\n )}\n </Space>\n </AntdLayout.Header>\n ) : null;\n};\n","import React from \"react\";\nimport {\n TitleProps,\n useRouterContext,\n useRouterType,\n useLink,\n} from \"@refinedev/core\";\n\nexport const Title: React.FC<TitleProps> = ({ collapsed }) => {\n const routerType = useRouterType();\n const Link = useLink();\n const { Link: LegacyLink } = useRouterContext();\n\n const ActiveLink = routerType === \"legacy\" ? LegacyLink : Link;\n\n return (\n <ActiveLink to=\"/\">\n {collapsed ? (\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n }}\n >\n <img\n src=\"https://refine.ams3.cdn.digitaloceanspaces.com/logo/refine-mini.svg\"\n alt=\"Refine\"\n style={{\n margin: \"0 auto\",\n padding: \"12px 0\",\n maxHeight: \"65.5px\",\n }}\n />\n </div>\n ) : (\n <img\n src=\"https://refine.ams3.cdn.digitaloceanspaces.com/logo/refine.svg\"\n alt=\"Refine\"\n style={{\n width: \"200px\",\n padding: \"12px 24px\",\n }}\n />\n )}\n </ActiveLink>\n );\n};\n","import React from \"react\";\nimport { Button } from \"antd\";\nimport { PlusSquareOutlined } from \"@ant-design/icons\";\nimport {\n useNavigation,\n useTranslate,\n useCan,\n useResource,\n useRouterContext,\n useRouterType,\n useLink,\n} from \"@refinedev/core\";\nimport { RefineButtonTestIds } from \"@refinedev/ui-types\";\n\nimport { CreateButtonProps } from \"../types\";\n\n/**\n * <CreateButton> uses Ant Design's {@link https://ant.design/components/button/ `<Button> component`}.\n * It uses the {@link https://refine.dev/docs/core/hooks/navigation/useNavigation#create `create`} method from {@link https://refine.dev/docs/core/hooks/navigation/useNavigation `useNavigation`} under the hood.\n * It can be useful to redirect the app to the create page route of resource}.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/buttons/create-button} for more details.\n */\nexport const CreateButton: React.FC<CreateButtonProps> = ({\n resource: resourceNameFromProps,\n resourceNameOrRouteName: propResourceNameOrRouteName,\n hideText = false,\n accessControl,\n meta,\n children,\n onClick,\n ...rest\n}) => {\n const accessControlEnabled = accessControl?.enabled ?? true;\n const hideIfUnauthorized = accessControl?.hideIfUnauthorized ?? false;\n const translate = useTranslate();\n const routerType = useRouterType();\n const Link = useLink();\n const { Link: LegacyLink } = useRouterContext();\n\n const ActiveLink = routerType === \"legacy\" ? LegacyLink : Link;\n\n const { createUrl: generateCreateUrl } = useNavigation();\n\n const { resource } = useResource(\n resourceNameFromProps ?? propResourceNameOrRouteName,\n );\n\n const { data } = useCan({\n resource: resource?.name,\n action: \"create\",\n queryOptions: {\n enabled: accessControlEnabled,\n },\n params: {\n resource,\n },\n });\n\n const createButtonDisabledTitle = () => {\n if (data?.can) return \"\";\n else if (data?.reason) return data.reason;\n else\n return translate(\n \"buttons.notAccessTitle\",\n \"You don't have permission to access\",\n );\n };\n\n const createUrl = resource ? generateCreateUrl(resource, meta) : \"\";\n\n if (accessControlEnabled && hideIfUnauthorized && !data?.can) {\n return null;\n }\n\n return (\n <ActiveLink\n to={createUrl}\n replace={false}\n onClick={(e: React.PointerEvent<HTMLButtonElement>) => {\n if (data?.can === false) {\n e.preventDefault();\n return;\n }\n if (onClick) {\n e.preventDefault();\n onClick(e);\n }\n }}\n >\n <Button\n icon={<PlusSquareOutlined />}\n disabled={data?.can === false}\n title={createButtonDisabledTitle()}\n data-testid={RefineButtonTestIds.CreateButton}\n {...rest}\n >\n {!hideText &&\n (children ?? translate(\"buttons.create\", \"Create\"))}\n </Button>\n </ActiveLink>\n );\n};\n","import React from \"react\";\nimport { Button } from \"antd\";\nimport { EditOutlined } from \"@ant-design/icons\";\nimport {\n useCan,\n useNavigation,\n useTranslate,\n useResource,\n useRouterContext,\n useRouterType,\n useLink,\n} from \"@refinedev/core\";\nimport { RefineButtonTestIds } from \"@refinedev/ui-types\";\n\nimport { EditButtonProps } from \"../types\";\n\n/**\n * `<EditButton>` uses Ant Design's {@link https://ant.design/components/button/ `<Button>`} component.\n * It uses the {@link https://refine.dev/docs/core/hooks/navigation/useNavigation#edit `edit`} method from {@link https://refine.dev/docs/core/hooks/navigation/useNavigation `useNavigation`} under the hood.\n * It can be useful when redirecting the app to the edit page with the record id route of resource}.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/buttons/edit-button} for more details.\n */\nexport const EditButton: React.FC<EditButtonProps> = ({\n resource: resourceNameFromProps,\n resourceNameOrRouteName: propResourceNameOrRouteName,\n recordItemId,\n hideText = false,\n accessControl,\n meta,\n children,\n onClick,\n ...rest\n}) => {\n const accessControlEnabled = accessControl?.enabled ?? true;\n const hideIfUnauthorized = accessControl?.hideIfUnauthorized ?? false;\n const translate = useTranslate();\n\n const routerType = useRouterType();\n const Link = useLink();\n const { Link: LegacyLink } = useRouterContext();\n\n const ActiveLink = routerType === \"legacy\" ? LegacyLink : Link;\n\n const { editUrl: generateEditUrl } = useNavigation();\n\n const { id, resource } = useResource(\n resourceNameFromProps ?? propResourceNameOrRouteName,\n );\n\n const { data } = useCan({\n resource: resource?.name,\n action: \"edit\",\n params: { id: recordItemId ?? id, resource },\n queryOptions: {\n enabled: accessControlEnabled,\n },\n });\n\n const createButtonDisabledTitle = () => {\n if (data?.can) return \"\";\n else if (data?.reason) return data.reason;\n else\n return translate(\n \"buttons.notAccessTitle\",\n \"You don't have permission to access\",\n );\n };\n\n const editUrl =\n resource && (recordItemId ?? id)\n ? generateEditUrl(resource, recordItemId! ?? id!, meta)\n : \"\";\n\n if (accessControlEnabled && hideIfUnauthorized && !data?.can) {\n return null;\n }\n\n return (\n <ActiveLink\n to={editUrl}\n replace={false}\n onClick={(e: React.PointerEvent<HTMLButtonElement>) => {\n if (data?.can === false) {\n e.preventDefault();\n return;\n }\n if (onClick) {\n e.preventDefault();\n onClick(e);\n }\n }}\n >\n <Button\n icon={<EditOutlined />}\n disabled={data?.can === false}\n title={createButtonDisabledTitle()}\n data-testid={RefineButtonTestIds.EditButton}\n {...rest}\n >\n {!hideText && (children ?? translate(\"buttons.edit\", \"Edit\"))}\n </Button>\n </ActiveLink>\n );\n};\n","import React from \"react\";\nimport { Button, Popconfirm } from \"antd\";\nimport { DeleteOutlined } from \"@ant-design/icons\";\nimport {\n useDelete,\n useTranslate,\n useMutationMode,\n useCan,\n useResource,\n pickNotDeprecated,\n} from \"@refinedev/core\";\nimport { RefineButtonTestIds } from \"@refinedev/ui-types\";\n\nimport { DeleteButtonProps } from \"../types\";\n\n/**\n * `<DeleteButton>` uses Ant Design's {@link https://ant.design/components/button/ `<Button>`} and {@link https://ant.design/components/button/ `<Popconfirm>`} components.\n * When you try to delete something, a pop-up shows up and asks for confirmation. When confirmed it executes the `useDelete` method provided by your `dataProvider`.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/buttons/delete-button} for more details.\n */\nexport const DeleteButton: React.FC<DeleteButtonProps> = ({\n resource: resourceNameFromProps,\n resourceNameOrRouteName: propResourceNameOrRouteName,\n recordItemId,\n onSuccess,\n mutationMode: mutationModeProp,\n children,\n successNotification,\n errorNotification,\n hideText = false,\n accessControl,\n metaData,\n meta,\n dataProviderName,\n confirmTitle,\n confirmOkText,\n confirmCancelText,\n invalidates,\n ...rest\n}) => {\n const accessControlEnabled = accessControl?.enabled ?? true;\n const hideIfUnauthorized = accessControl?.hideIfUnauthorized ?? false;\n const translate = useTranslate();\n\n const { id, resource } = useResource(\n resourceNameFromProps ?? propResourceNameOrRouteName,\n );\n\n const { mutationMode: mutationModeContext } = useMutationMode();\n\n const mutationMode = mutationModeProp ?? mutationModeContext;\n\n const { mutate, isLoading, variables } = useDelete();\n\n const { data } = useCan({\n resource: resource?.name,\n action: \"delete\",\n params: { id: recordItemId ?? id, resource },\n queryOptions: {\n enabled: accessControlEnabled,\n },\n });\n\n if (accessControlEnabled && hideIfUnauthorized && !data?.can) {\n return null;\n }\n\n return (\n <Popconfirm\n key=\"delete\"\n okText={confirmOkText ?? translate(\"buttons.delete\", \"Delete\")}\n cancelText={\n confirmCancelText ?? translate(\"buttons.cancel\", \"Cancel\")\n }\n okType=\"danger\"\n title={\n confirmTitle ?? translate(\"buttons.confirm\", \"Are you sure?\")\n }\n okButtonProps={{ disabled: isLoading }}\n onConfirm={(): void => {\n if ((recordItemId ?? id) && resource?.name) {\n mutate(\n {\n id: recordItemId ?? id ?? \"\",\n resource: resource?.name,\n mutationMode,\n successNotification,\n errorNotification,\n meta: pickNotDeprecated(meta, metaData),\n metaData: pickNotDeprecated(meta, metaData),\n dataProviderName,\n invalidates,\n },\n {\n onSuccess: (value) => {\n onSuccess && onSuccess(value);\n },\n },\n );\n }\n }}\n disabled={\n typeof rest?.disabled !== \"undefined\"\n ? rest.disabled\n : data?.can === false\n }\n >\n <Button\n danger\n loading={(recordItemId ?? id) === variables?.id && isLoading}\n icon={<DeleteOutlined />}\n disabled={data?.can === false}\n data-testid={RefineButtonTestIds.DeleteButton}\n {...rest}\n >\n {!hideText &&\n (children ?? translate(\"buttons.delete\", \"Delete\"))}\n </Button>\n </Popconfirm>\n );\n};\n","import React from \"react\";\nimport { Button } from \"antd\";\nimport { RedoOutlined } from \"@ant-design/icons\";\nimport {\n useOne,\n useTranslate,\n useResource,\n pickNotDeprecated,\n} from \"@refinedev/core\";\nimport { RefineButtonTestIds } from \"@refinedev/ui-types\";\n\nimport { RefreshButtonProps } from \"../types\";\n\n/**\n * `<RefreshButton>` uses Ant Design's {@link https://ant.design/components/button/ `<Button>`} component\n * to update the data shown on the page via the {@link https://refine.dev/docs/core/hooks/data/useOne `useOne`} method provided by your dataProvider.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/buttons/refresh-button} for more details.\n */\nexport const RefreshButton: React.FC<RefreshButtonProps> = ({\n resource: resourceNameFromProps,\n resourceNameOrRouteName: propResourceNameOrRouteName,\n recordItemId,\n hideText = false,\n meta,\n metaData,\n dataProviderName,\n children,\n onClick,\n ...rest\n}) => {\n const translate = useTranslate();\n\n const { resource, id } = useResource(\n resourceNameFromProps ?? propResourceNameOrRouteName,\n );\n\n const { refetch, isFetching } = useOne({\n resource: resource?.name,\n id: recordItemId ?? id,\n queryOptions: {\n enabled: false,\n },\n meta: pickNotDeprecated(meta, metaData),\n metaData: pickNotDeprecated(meta, metaData),\n liveMode: \"off\",\n dataProviderName,\n });\n\n return (\n <Button\n // TODO: fix any type\n onClick={(e) => (onClick ? onClick(e as any) : refetch())}\n icon={<RedoOutlined spin={isFetching} />}\n data-testid={RefineButtonTestIds.RefreshButton}\n {...rest}\n >\n {!hideText && (children ?? translate(\"buttons.refresh\", \"Refresh\"))}\n </Button>\n );\n};\n","import React from \"react\";\nimport { Button } from \"antd\";\nimport { EyeOutlined } from \"@ant-design/icons\";\nimport {\n useCan,\n useNavigation,\n useTranslate,\n useResource,\n useRouterContext,\n useRouterType,\n useLink,\n} from \"@refinedev/core\";\nimport { RefineButtonTestIds } from \"@refinedev/ui-types\";\n\nimport { ShowButtonProps } from \"../types\";\n\n/**\n * `<ShowButton>` uses Ant Design's {@link https://ant.design/components/button/ `<Button>`} component.\n * It uses the {@link https://refine.dev/docs/core/hooks/navigation/useNavigation#show `show`} method from {@link https://refine.dev/docs/core/hooks/navigation/useNavigation `useNavigation`} under the hood.\n * It can be useful when redirecting the app to the show page with the record id route of resource.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/buttons/show-button} for more details.\n */\nexport const ShowButton: React.FC<ShowButtonProps> = ({\n resource: resourceNameFromProps,\n resourceNameOrRouteName: propResourceNameOrRouteName,\n recordItemId,\n hideText = false,\n accessControl,\n meta,\n children,\n onClick,\n ...rest\n}) => {\n const accessControlEnabled = accessControl?.enabled ?? true;\n const hideIfUnauthorized = accessControl?.hideIfUnauthorized ?? false;\n const { showUrl: generateShowUrl } = useNavigation();\n const routerType = useRouterType();\n const Link = useLink();\n const { Link: LegacyLink } = useRouterContext();\n\n const ActiveLink = routerType === \"legacy\" ? LegacyLink : Link;\n\n const translate = useTranslate();\n\n const { id, resource } = useResource(\n resourceNameFromProps ?? propResourceNameOrRouteName,\n );\n\n const { data } = useCan({\n resource: resource?.name,\n action: \"show\",\n params: { id: recordItemId ?? id, resource },\n queryOptions: {\n enabled: accessControlEnabled,\n },\n });\n\n const createButtonDisabledTitle = () => {\n if (data?.can) return \"\";\n else if (data?.reason) return data.reason;\n else\n return translate(\n \"buttons.notAccessTitle\",\n \"You don't have permission to access\",\n );\n };\n\n const showUrl =\n resource && (recordItemId || id)\n ? generateShowUrl(resource, recordItemId! ?? id!, meta)\n : \"\";\n\n if (accessControlEnabled && hideIfUnauthorized && !data?.can) {\n return null;\n }\n\n return (\n <ActiveLink\n to={showUrl}\n replace={false}\n onClick={(e: React.PointerEvent<HTMLButtonElement>) => {\n if (data?.can === false) {\n e.preventDefault();\n return;\n }\n if (onClick) {\n e.preventDefault();\n onClick(e);\n }\n }}\n >\n <Button\n icon={<EyeOutlined />}\n disabled={data?.can === false}\n title={createButtonDisabledTitle()}\n data-testid={RefineButtonTestIds.ShowButton}\n {...rest}\n >\n {!hideText && (children ?? translate(\"buttons.show\", \"Show\"))}\n </Button>\n </ActiveLink>\n );\n};\n","import React from \"react\";\nimport { Button } from \"antd\";\nimport { BarsOutlined } from \"@ant-design/icons\";\nimport {\n useCan,\n useNavigation,\n useTranslate,\n userFriendlyResourceName,\n useResource,\n useRouterContext,\n useRouterType,\n useLink,\n pickNotDeprecated,\n} from \"@refinedev/core\";\nimport { RefineButtonTestIds } from \"@refinedev/ui-types\";\n\nimport { ListButtonProps } from \"../types\";\n\n/**\n * `<ListButton>` is using Ant Design's {@link https://ant.design/components/button/ `<Button>`} component.\n * It uses the {@link https://refine.dev/docs/core/hooks/navigation/useNavigation#list `list`} method from {@link https://refine.dev/docs/core/hooks/navigation/useNavigation `useNavigation`} under the hood.\n * It can be useful when redirecting the app to the list page route of resource}.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/buttons/list-button} for more details.\n */\nexport const ListButton: React.FC<ListButtonProps> = ({\n resource: resourceNameFromProps,\n resourceNameOrRouteName: propResourceNameOrRouteName,\n hideText = false,\n accessControl,\n meta,\n children,\n onClick,\n ...rest\n}) => {\n const accessControlEnabled = accessControl?.enabled ?? true;\n const hideIfUnauthorized = accessControl?.hideIfUnauthorized ?? false;\n const { listUrl: generateListUrl } = useNavigation();\n const routerType = useRouterType();\n const Link = useLink();\n const { Link: LegacyLink } = useRouterContext();\n\n const ActiveLink = routerType === \"legacy\" ? LegacyLink : Link;\n\n const translate = useTranslate();\n\n const { resource } = useResource(\n resourceNameFromProps ?? propResourceNameOrRouteName,\n );\n\n const { data } = useCan({\n resource: resource?.name,\n action: \"list\",\n queryOptions: {\n enabled: accessControlEnabled,\n },\n params: {\n resource,\n },\n });\n\n const createButtonDisabledTitle = () => {\n if (data?.can) return \"\";\n else if (data?.reason) return data.reason;\n else\n return translate(\n \"buttons.notAccessTitle\",\n \"You don't have permission to access\",\n );\n };\n\n const listUrl = resource ? generateListUrl(resource, meta) : \"\";\n\n if (accessControlEnabled && hideIfUnauthorized && !data?.can) {\n return null;\n }\n\n return (\n <ActiveLink\n to={listUrl}\n replace={false}\n onClick={(e: React.PointerEvent<HTMLButtonElement>) => {\n if (data?.can === false) {\n e.preventDefault();\n return;\n }\n if (onClick) {\n e.preventDefault();\n onClick(e);\n }\n }}\n >\n <Button\n icon={<BarsOutlined />}\n disabled={data?.can === false}\n title={createButtonDisabledTitle()}\n data-testid={RefineButtonTestIds.ListButton}\n {...rest}\n >\n {!hideText &&\n (children ??\n translate(\n `${\n resource?.name ??\n resourceNameFromProps ??\n propResourceNameOrRouteName\n }.titles.list`,\n userFriendlyResourceName(\n resource?.meta?.label ??\n resource?.label ??\n resource?.name ??\n pickNotDeprecated(\n resourceNameFromProps,\n propResourceNameOrRouteName,\n ),\n \"plural\",\n ),\n ))}\n </Button>\n </ActiveLink>\n );\n};\n","import React from \"react\";\nimport { Button } from \"antd\";\nimport { ExportOutlined } from \"@ant-design/icons\";\nimport { useTranslate } from \"@refinedev/core\";\nimport { RefineButtonTestIds } from \"@refinedev/ui-types\";\n\nimport { ExportButtonProps } from \"../types\";\n\n/**\n * `<ExportButton>` is an Ant Design {@link https://ant.design/components/button/ `<Button>`} with a default export icon and a default text with \"Export\".\n * It only has presentational value.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/buttons/export-button} for more details.\n */\nexport const ExportButton: React.FC<ExportButtonProps> = ({\n hideText = false,\n children,\n ...rest\n}) => {\n const translate = useTranslate();\n\n return (\n <Button\n type=\"default\"\n icon={<ExportOutlined />}\n data-testid={RefineButtonTestIds.ExportButton}\n {...rest}\n >\n {!hideText && (children ?? translate(\"buttons.export\", \"Export\"))}\n </Button>\n );\n};\n","import React from \"react\";\nimport { Button } from \"antd\";\nimport { SaveOutlined } from \"@ant-design/icons\";\nimport { useTranslate } from \"@refinedev/core\";\nimport { RefineButtonTestIds } from \"@refinedev/ui-types\";\n\nimport { SaveButtonProps } from \"../types\";\n\n/**\n * `<SaveButton>` uses Ant Design's {@link https://ant.design/components/button/ `<Button>`} component.\n * It uses it for presantation purposes only. Some of the hooks that refine has adds features to this button.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/buttons/save-button} for more details.\n */\nexport const SaveButton: React.FC<SaveButtonProps> = ({\n hideText = false,\n children,\n ...rest\n}) => {\n const translate = useTranslate();\n\n return (\n <Button\n type=\"primary\"\n icon={<SaveOutlined />}\n data-testid={RefineButtonTestIds.SaveButton}\n {...rest}\n >\n {!hideText && (children ?? translate(\"buttons.save\", \"Save\"))}\n </Button>\n );\n};\n","import React from \"react\";\nimport { Button } from \"antd\";\nimport { PlusSquareOutlined } from \"@ant-design/icons\";\nimport {\n useCan,\n useNavigation,\n useTranslate,\n useResource,\n useRouterContext,\n useRouterType,\n useLink,\n} from \"@refinedev/core\";\nimport { RefineButtonTestIds } from \"@refinedev/ui-types\";\n\nimport { CloneButtonProps } from \"../types\";\n\n/**\n * `<CloneButton>` uses Ant Design's {@link https://ant.design/components/button/ `<Button> component`}.\n * It uses the {@link https://refine.dev/docs/core/hooks/navigation/useNavigation#clone `clone`} method from {@link https://refine.dev/docs/core/hooks/navigation/useNavigation useNavigation} under the hood.\n * It can be useful when redirecting the app to the create page with the record id route of resource.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/buttons/clone-button} for more details.\n */\nexport const CloneButton: React.FC<CloneButtonProps> = ({\n resourceNameOrRouteName: propResourceNameOrRouteName,\n resource: resourceNameFromProps,\n recordItemId,\n hideText = false,\n accessControl,\n meta,\n children,\n onClick,\n ...rest\n}) => {\n const accessControlEnabled = accessControl?.enabled ?? true;\n const hideIfUnauthorized = accessControl?.hideIfUnauthorized ?? false;\n const { cloneUrl: generateCloneUrl } = useNavigation();\n const routerType = useRouterType();\n const Link = useLink();\n const { Link: LegacyLink } = useRouterContext();\n\n const ActiveLink = routerType === \"legacy\" ? LegacyLink : Link;\n\n const translate = useTranslate();\n\n const { id, resource } = useResource(\n resourceNameFromProps ?? propResourceNameOrRouteName,\n );\n\n const { data } = useCan({\n resource: resource?.name,\n action: \"create\",\n params: { id: recordItemId ?? id, resource },\n queryOptions: {\n enabled: accessControlEnabled,\n },\n });\n\n const createButtonDisabledTitle = () => {\n if (data?.can) return \"\";\n else if (data?.reason) return data.reason;\n else\n return translate(\n \"buttons.notAccessTitle\",\n \"You don't have permission to access\",\n );\n };\n\n const cloneUrl =\n resource && (recordItemId || id)\n ? generateCloneUrl(resource, recordItemId! ?? id!, meta)\n : \"\";\n\n if (accessControlEnabled && hideIfUnauthorized && !data?.can) {\n return null;\n }\n\n return (\n <ActiveLink\n to={cloneUrl}\n replace={false}\n onClick={(e: React.PointerEvent<HTMLButtonElement>) => {\n if (data?.can === false) {\n e.preventDefault();\n return;\n }\n if (onClick) {\n e.preventDefault();\n onClick(e);\n }\n }}\n >\n <Button\n icon={<PlusSquareOutlined />}\n disabled={data?.can === false}\n title={createButtonDisabledTitle()}\n data-testid={RefineButtonTestIds.CloneButton}\n {...rest}\n >\n {!hideText && (children ?? translate(\"buttons.clone\", \"Clone\"))}\n </Button>\n </ActiveLink>\n );\n};\n","import React from \"react\";\nimport { Button, Upload } from \"antd\";\nimport { ImportOutlined } from \"@ant-design/icons\";\nimport { useTranslate } from \"@refinedev/core\";\nimport { RefineButtonTestIds } from \"@refinedev/ui-types\";\n\nimport { ImportButtonProps } from \"../types\";\n\n/**\n * `<ImportButton>` is compatible with the {@link https://refine.dev/docs/ui-frameworks/antd/hooks/import/useImport `useImport`} hook and is meant to be used as it's upload button.\n * It uses Ant Design's {@link https://ant.design/components/button/ `<Button>`} and {@link https://ant.design/components/upload/ `<Upload>`} components.\n * It wraps a `<Button>` component with an `<Upload>` component and accepts properties for `<Button>` and `<Upload>` components separately.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/buttons/import-button} for more details.\n */\nexport const ImportButton: React.FC<ImportButtonProps> = ({\n uploadProps,\n buttonProps,\n hideText = false,\n children,\n}) => {\n const translate = useTranslate();\n\n return (\n <Upload {...uploadProps}>\n <Button\n icon={<ImportOutlined />}\n data-testid={RefineButtonTestIds.ImportButton}\n {...buttonProps}\n >\n {!hideText &&\n (children ?? translate(\"buttons.import\", \"Import\"))}\n </Button>\n </Upload>\n );\n};\n","import React from \"react\";\nimport { Space } from \"antd\";\nimport {\n useTranslate,\n userFriendlyResourceName,\n useRefineContext,\n useRouterType,\n useResource,\n} from \"@refinedev/core\";\n\nimport { Breadcrumb, CreateButton, PageHeader } from \"@components\";\nimport { ListProps } from \"../types\";\n\n/**\n * `<List>` provides us a layout for displaying the page.\n * It does not contain any logic but adds extra functionalities like a refresh button.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/basic-views/list} for more details.\n */\nexport const List: React.FC<ListProps> = ({\n canCreate,\n title,\n children,\n createButtonProps,\n resource: resourceFromProps,\n wrapperProps,\n contentProps,\n headerProps,\n breadcrumb: breadcrumbFromProps,\n headerButtonProps,\n headerButtons,\n}) => {\n const translate = useTranslate();\n const { options: { breadcrumb: globalBreadcrumb } = {} } =\n useRefineContext();\n\n const routerType = useRouterType();\n\n const { resource } = useResource(resourceFromProps);\n\n const isCreateButtonVisible =\n canCreate ??\n ((resource?.canCreate ?? !!resource?.create) || createButtonProps);\n\n const breadcrumb =\n typeof breadcrumbFromProps === \"undefined\"\n ? globalBreadcrumb\n : breadcrumbFromProps;\n\n const defaultExtra = isCreateButtonVisible ? (\n <CreateButton\n size=\"middle\"\n resource={\n routerType === \"legacy\"\n ? resource?.route\n : resource?.identifier ?? resource?.name\n }\n {...createButtonProps}\n />\n ) : null;\n\n return (\n <div {...(wrapperProps ?? {})}>\n <PageHeader\n ghost={false}\n title={\n title ??\n translate(\n `${resource?.name}.titles.list`,\n userFriendlyResourceName(\n resource?.meta?.label ??\n resource?.options?.label ??\n resource?.label ??\n resource?.name,\n \"plural\",\n ),\n )\n }\n extra={\n headerButtons ? (\n <Space wrap {...headerButtonProps}>\n {typeof headerButtons === \"function\"\n ? headerButtons({\n defaultButtons: defaultExtra,\n })\n : headerButtons}\n </Space>\n ) : (\n defaultExtra\n )\n }\n breadcrumb={\n typeof breadcrumb !== \"undefined\" ? (\n <>{breadcrumb}</> ?? undefined\n ) : (\n <Breadcrumb />\n )\n }\n {...(headerProps ?? {})}\n >\n <div {...(contentProps ?? {})}>{children}</div>\n </PageHeader>\n </div>\n );\n};\n","import React from \"react\";\nimport { Card, Space, Spin } from \"antd\";\nimport {\n useNavigation,\n useTranslate,\n userFriendlyResourceName,\n useRefineContext,\n useRouterType,\n useResource,\n useBack,\n} from \"@refinedev/core\";\n\nimport { Breadcrumb, SaveButton, PageHeader } from \"@components\";\nimport { CreateProps } from \"../types\";\n\n/**\n * `<Create>` provides us a layout to display the page.\n * It does not contain any logic but adds extra functionalities like action buttons and giving titles to the page.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/basic-views/create} for more details.\n */\nexport const Create: React.FC<CreateProps> = ({\n title,\n saveButtonProps,\n children,\n resource: resourceFromProps,\n isLoading = false,\n breadcrumb: breadcrumbFromProps,\n wrapperProps,\n headerProps,\n contentProps,\n headerButtonProps,\n headerButtons,\n footerButtonProps,\n footerButtons,\n goBack: goBackFromProps,\n}) => {\n const translate = useTranslate();\n const { options: { breadcrumb: globalBreadcrumb } = {} } =\n useRefineContext();\n\n const routerType = useRouterType();\n const back = useBack();\n const { goBack } = useNavigation();\n\n const { resource, action } = useResource(resourceFromProps);\n\n const breadcrumb =\n typeof breadcrumbFromProps === \"undefined\"\n ? globalBreadcrumb\n : breadcrumbFromProps;\n\n const defaultFooterButtons = (\n <>\n <SaveButton\n {...(isLoading ? { disabled: true } : {})}\n {...saveButtonProps}\n htmlType=\"submit\"\n />\n </>\n );\n\n return (\n <div {...(wrapperProps ?? {})}>\n <PageHeader\n ghost={false}\n backIcon={goBackFromProps}\n onBack={\n action !== \"list\" || typeof action !== \"undefined\"\n ? routerType === \"legacy\"\n ? goBack\n : back\n : undefined\n }\n title={\n title ??\n translate(\n `${resource?.name}.titles.create`,\n `Create ${userFriendlyResourceName(\n resource?.meta?.label ??\n resource?.options?.label ??\n resource?.label ??\n resource?.name,\n \"singular\",\n )}`,\n )\n }\n breadcrumb={\n typeof breadcrumb !== \"undefined\" ? (\n <>{breadcrumb}</> ?? undefined\n ) : (\n <Breadcrumb />\n )\n }\n extra={\n <Space wrap {...(headerButtonProps ?? {})}>\n {headerButtons\n ? typeof headerButtons === \"function\"\n ? headerButtons({\n defaultButtons: null,\n })\n : headerButtons\n : null}\n </Space>\n }\n {...(headerProps ?? {})}\n >\n <Spin spinning={isLoading}>\n <Card\n bordered={false}\n actions={[\n <Space\n key=\"action-buttons\"\n style={{ float: \"right\", marginRight: 24 }}\n {...(footerButtonProps ?? {})}\n >\n {footerButtons\n ? typeof footerButtons === \"function\"\n ? footerButtons({\n defaultButtons:\n defaultFooterButtons,\n })\n : footerButtons\n : defaultFooterButtons}\n </Space>,\n ]}\n {...(contentProps ?? {})}\n >\n {children}\n </Card>\n </Spin>\n </PageHeader>\n </div>\n );\n};\n","import React from \"react\";\n\nimport { Card, Space, Spin } from \"antd\";\nimport {\n useMutationMode,\n useNavigation,\n useTranslate,\n userFriendlyResourceName,\n useRefineContext,\n useRouterType,\n useBack,\n useResource,\n useGo,\n useToPath,\n} from \"@refinedev/core\";\n\nimport {\n DeleteButton,\n RefreshButton,\n ListButton,\n SaveButton,\n Breadcrumb,\n PageHeader,\n} from \"@components\";\nimport { EditProps } from \"../types\";\n\n/**\n * `<Edit>` provides us a layout for displaying the page.\n * It does not contain any logic but adds extra functionalities like a refresh button.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/basic-views/edit} for more details.\n */\nexport const Edit: React.FC<EditProps> = ({\n title,\n saveButtonProps,\n mutationMode: mutationModeProp,\n recordItemId,\n children,\n deleteButtonProps,\n canDelete,\n resource: resourceFromProps,\n isLoading = false,\n dataProviderName,\n breadcrumb: breadcrumbFromProps,\n wrapperProps,\n headerProps,\n contentProps,\n headerButtonProps,\n headerButtons,\n footerButtonProps,\n footerButtons,\n goBack: goBackFromProps,\n}) => {\n const translate = useTranslate();\n const { options: { breadcrumb: globalBreadcrumb } = {} } =\n useRefineContext();\n const { mutationMode: mutationModeContext } = useMutationMode();\n const mutationMode = mutationModeProp ?? mutationModeContext;\n\n const routerType = useRouterType();\n const back = useBack();\n const go = useGo();\n const { goBack, list: legacyGoList } = useNavigation();\n\n const {\n resource,\n action,\n id: idFromParams,\n } = useResource(resourceFromProps);\n\n const goListPath = useToPath({\n resource,\n action: \"list\",\n });\n\n const id = recordItemId ?? idFromParams;\n\n const breadcrumb =\n typeof breadcrumbFromProps === \"undefined\"\n ? globalBreadcrumb\n : breadcrumbFromProps;\n\n const isDeleteButtonVisible =\n canDelete ??\n ((resource?.meta?.canDelete ?? resource?.canDelete) ||\n deleteButtonProps);\n\n const defaultHeaderButtons = (\n <>\n {!recordItemId && (\n <ListButton\n {...(isLoading ? { disabled: true } : {})}\n resource={\n routerType === \"legacy\"\n ? resource?.route\n : resource?.identifier ?? resource?.name\n }\n />\n )}\n <RefreshButton\n {...(isLoading ? { disabled: true } : {})}\n resource={\n routerType === \"legacy\"\n ? resource?.route\n : resource?.identifier ?? resource?.name\n }\n recordItemId={id}\n dataProviderName={dataProviderName}\n />\n </>\n );\n\n const defaultFooterButtons = (\n <>\n {isDeleteButtonVisible && (\n <DeleteButton\n {...(isLoading ? { disabled: true } : {})}\n resource={\n routerType === \"legacy\"\n ? resource?.route\n : resource?.identifier ?? resource?.name\n }\n mutationMode={mutationMode}\n onSuccess={() => {\n if (routerType === \"legacy\") {\n legacyGoList(\n resource?.route ?? resource?.name ?? \"\",\n );\n } else {\n go({ to: goListPath });\n }\n }}\n recordItemId={id}\n dataProviderName={dataProviderName}\n {...deleteButtonProps}\n />\n )}\n <SaveButton\n {...(isLoading ? { disabled: true } : {})}\n {...saveButtonProps}\n />\n </>\n );\n\n return (\n <div {...(wrapperProps ?? {})}>\n <PageHeader\n ghost={false}\n backIcon={goBackFromProps}\n onBack={\n action !== \"list\" && typeof action !== \"undefined\"\n ? routerType === \"legacy\"\n ? goBack\n : back\n : undefined\n }\n title={\n title ??\n translate(\n `${resource?.name}.titles.edit`,\n `Edit ${userFriendlyResourceName(\n resource?.meta?.label ??\n resource?.options?.label ??\n resource?.label ??\n resource?.name,\n \"singular\",\n )}`,\n )\n }\n extra={\n <Space wrap {...(headerButtonProps ?? {})}>\n {headerButtons\n ? typeof headerButtons === \"function\"\n ? headerButtons({\n defaultButtons: defaultHeaderButtons,\n })\n : headerButtons\n : defaultHeaderButtons}\n </Space>\n }\n breadcrumb={\n typeof breadcrumb !== \"undefined\" ? (\n <>{breadcrumb}</> ?? undefined\n ) : (\n <Breadcrumb />\n )\n }\n {...(headerProps ?? {})}\n >\n <Spin spinning={isLoading}>\n <Card\n bordered={false}\n actions={[\n <Space\n key=\"footer-buttons\"\n wrap\n style={{\n float: \"right\",\n marginRight: 24,\n }}\n {...(footerButtonProps ?? {})}\n >\n {footerButtons\n ? typeof footerButtons === \"function\"\n ? footerButtons({\n defaultButtons:\n defaultFooterButtons,\n })\n : footerButtons\n : defaultFooterButtons}\n </Space>,\n ]}\n {...(contentProps ?? {})}\n >\n {children}\n </Card>\n </Spin>\n </PageHeader>\n </div>\n );\n};\n","import React from \"react\";\nimport { Card, Space, Spin } from \"antd\";\nimport {\n useNavigation,\n useTranslate,\n userFriendlyResourceName,\n useRefineContext,\n useResource,\n useToPath,\n useRouterType,\n useBack,\n useGo,\n} from \"@refinedev/core\";\n\nimport {\n EditButton,\n DeleteButton,\n RefreshButton,\n ListButton,\n Breadcrumb,\n PageHeader,\n} from \"@components\";\nimport { ShowProps } from \"../types\";\n\n/**\n * `<Show>` provides us a layout for displaying the page.\n * It does not contain any logic but adds extra functionalities like a refresh button.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/basic-views/show} for more details.\n */\nexport const Show: React.FC<ShowProps> = ({\n title,\n canEdit,\n canDelete,\n isLoading = false,\n children,\n resource: resourceFromProps,\n recordItemId,\n dataProviderName,\n breadcrumb: breadcrumbFromProps,\n contentProps,\n headerProps,\n wrapperProps,\n headerButtons,\n footerButtons,\n footerButtonProps,\n headerButtonProps,\n goBack: goBackFromProps,\n}) => {\n const translate = useTranslate();\n const { options: { breadcrumb: globalBreadcrumb } = {} } =\n useRefineContext();\n\n const routerType = useRouterType();\n const back = useBack();\n const go = useGo();\n const { goBack, list: legacyGoList } = useNavigation();\n\n const {\n resource,\n action,\n id: idFromParams,\n } = useResource(resourceFromProps);\n\n const goListPath = useToPath({\n resource,\n action: \"list\",\n });\n\n const id = recordItemId ?? idFromParams;\n\n const breadcrumb =\n typeof breadcrumbFromProps === \"undefined\"\n ? globalBreadcrumb\n : breadcrumbFromProps;\n\n const isDeleteButtonVisible =\n canDelete ?? resource?.meta?.canDelete ?? resource?.canDelete;\n const isEditButtonVisible =\n canEdit ?? resource?.canEdit ?? !!resource?.edit;\n\n const defaultHeaderButtons = (\n <>\n {!recordItemId && (\n <ListButton\n resource={\n routerType === \"legacy\"\n ? resource?.route\n : resource?.identifier ?? resource?.name\n }\n />\n )}\n {isEditButtonVisible && (\n <EditButton\n {...(isLoading ? { disabled: true } : {})}\n resource={\n routerType === \"legacy\"\n ? resource?.route\n : resource?.identifier ?? resource?.name\n }\n recordItemId={id}\n />\n )}\n {isDeleteButtonVisible && (\n <DeleteButton\n {...(isLoading ? { disabled: true } : {})}\n resource={\n routerType === \"legacy\"\n ? resource?.route\n : resource?.identifier ?? resource?.name\n }\n recordItemId={id}\n onSuccess={() => {\n if (routerType === \"legacy\") {\n legacyGoList(\n resource?.route ?? resource?.name ?? \"\",\n );\n } else {\n go({ to: goListPath });\n }\n }}\n dataProviderName={dataProviderName}\n />\n )}\n <RefreshButton\n {...(isLoading ? { disabled: true } : {})}\n resource={\n routerType === \"legacy\"\n ? resource?.route\n : resource?.identifier ?? resource?.name\n }\n recordItemId={id}\n dataProviderName={dataProviderName}\n />\n </>\n );\n\n return (\n <div {...(wrapperProps ?? {})}>\n <PageHeader\n ghost={false}\n backIcon={goBackFromProps}\n onBack={\n action !== \"list\" && typeof action !== \"undefined\"\n ? routerType === \"legacy\"\n ? goBack\n : back\n : undefined\n }\n title={\n title ??\n translate(\n `${resource?.name}.titles.show`,\n `Show ${userFriendlyResourceName(\n resource?.meta?.label ??\n resource?.options?.label ??\n resource?.label ??\n resource?.name,\n \"singular\",\n )}`,\n )\n }\n extra={\n <Space\n key=\"extra-buttons\"\n wrap\n {...(headerButtonProps ?? {})}\n >\n {headerButtons\n ? typeof headerButtons === \"function\"\n ? headerButtons({\n defaultButtons: defaultHeaderButtons,\n })\n : headerButtons\n : defaultHeaderButtons}\n </Space>\n }\n breadcrumb={\n typeof breadcrumb !== \"undefined\" ? (\n <>{breadcrumb}</> ?? undefined\n ) : (\n <Breadcrumb />\n )\n }\n {...(headerProps ?? {})}\n >\n <Spin spinning={isLoading}>\n <Card\n bordered={false}\n actions={\n footerButtons\n ? [\n <Space\n key=\"footer-buttons\"\n wrap\n {...footerButtonProps}\n >\n {typeof footerButtons === \"function\"\n ? footerButtons({\n defaultButtons: null,\n })\n : footerButtons}\n </Space>,\n ]\n : undefined\n }\n {...(contentProps ?? {})}\n >\n {children}\n </Card>\n </Spin>\n </PageHeader>\n </div>\n );\n};\n","import React from \"react\";\nimport { Typography } from \"antd\";\n\nconst { Text } = Typography;\n\nimport { TextFieldProps } from \"../types\";\n\n/**\n * This field lets you show basic text. It uses Ant Design's {@link https://ant.design/components/typography/#Typography.Text `<Typography.Text>`} component.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/fields/text} for more details.\n */\nexport const TextField: React.FC<TextFieldProps> = ({ value, ...rest }) => {\n return <Text {...rest}>{value}</Text>;\n};\n","import React from \"react\";\nimport { Tag } from \"antd\";\n\nimport { TagFieldProps } from \"../types\";\n\n/**\n * This field lets you display a value in a tag. It uses Ant Design's {@link https://ant.design/components/tag/ `<Tag>`} component.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/fields/tag} for more details.\n */\nexport const TagField: React.FC<TagFieldProps> = ({ value, ...rest }) => {\n return <Tag {...rest}>{value?.toString()}</Tag>;\n};\n","import React from \"react\";\nimport { Typography } from \"antd\";\n\nconst { Link } = Typography;\n\nimport { EmailFieldProps } from \"../types\";\n\n/**\n * This field is used to display email values. It uses the {@link https://ant.design/components/typography/#FAQ `<Link>`} component\n * of {@link https://ant.design/components/typography `<Typography>`} from Ant Design.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/fields/email} for more details.\n */\nexport const EmailField: React.FC<EmailFieldProps> = ({ value, ...rest }) => {\n return (\n <Link href={`mailto:${value}`} {...rest}>\n {value}\n </Link>\n );\n};\n","import React from \"react\";\nimport { Image } from \"antd\";\n\nimport { ImageFieldProps } from \"../types\";\n\n/**\n * This field is used to display images and uses {@link https://ant.design/components/image/#header `<Image>`} from Ant Design.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/fields/image} for more details.\n */\nexport const ImageField: React.FC<ImageFieldProps> = ({\n value,\n imageTitle,\n ...rest\n}) => {\n return <Image {...rest} src={value} title={imageTitle} />;\n};\n","import React from \"react\";\nimport { Tooltip } from \"antd\";\n\nimport { CheckOutlined, CloseOutlined } from \"@ant-design/icons\";\n\nimport { BooleanFieldProps } from \"../types\";\n\n/**\n * This field is used to display boolean values. It uses the {@link https://ant.design/components/tooltip/#header `<Tooltip>`} values from Ant Design.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/fields/boolean} for more details.\n */\nexport const BooleanField: React.FC<BooleanFieldProps> = ({\n value,\n valueLabelTrue = \"true\",\n valueLabelFalse = \"false\",\n trueIcon = <CheckOutlined />,\n falseIcon = <CloseOutlined />,\n ...rest\n}) => {\n return (\n <Tooltip title={value ? valueLabelTrue : valueLabelFalse} {...rest}>\n {value ? <span>{trueIcon}</span> : <span>{falseIcon}</span>}\n </Tooltip>\n );\n};\n","import React from \"react\";\nimport dayjs from \"dayjs\";\nimport { Typography } from \"antd\";\n\nimport LocalizedFormat from \"dayjs/plugin/localizedFormat\";\n\ndayjs.extend(LocalizedFormat);\n\nconst defaultLocale = dayjs.locale();\n\nimport { DateFieldProps } from \"../types\";\n\n/**\n * This field is used to display dates. It uses {@link https://day.js.org/docs/en/display/format `Day.js`} to display date format.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/fields/date} for more details.\n */\nexport const DateField: React.FC<DateFieldProps> = ({\n value,\n locales,\n format: dateFormat = \"L\",\n ...rest\n}) => {\n const { Text } = Typography;\n\n return (\n <Text {...rest}>\n {dayjs(value)\n .locale(locales || defaultLocale)\n .format(dateFormat)}\n </Text>\n );\n};\n","import React from \"react\";\n\nimport { UrlField } from \"@components\";\nimport { FileFieldProps } from \"../types\";\n\n/**\n * This field is used to display files and uses {@link https://ant.design/components/typography `<Typography.Link>`} from Ant Design.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/fields/file} for more details.\n */\nexport const FileField: React.FC<FileFieldProps> = ({\n title,\n src,\n ...rest\n}) => {\n return (\n <UrlField value={src} title={title} {...rest}>\n {title ?? src}\n </UrlField>\n );\n};\n","import React from \"react\";\nimport { Typography } from \"antd\";\n\nconst { Link } = Typography;\n\nimport { UrlFieldProps } from \"../types\";\n\n/**\n * This field lets you embed a link. It uses Ant Design's {@link https://ant.design/components/typography/ `<Typography.Link>`} component.\n * You can pass a URL in its `value` property and you can show a text in its place by passing any `children`.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/fields/url} for more details.\n */\nexport const UrlField: React.FC<UrlFieldProps> = ({\n children,\n value,\n ...rest\n}) => {\n return (\n <Link href={value} {...rest}>\n {children ?? value}\n </Link>\n );\n};\n","import React from \"react\";\nimport { Typography } from \"antd\";\n\nconst { Text } = Typography;\n\nfunction toLocaleStringSupportsOptions() {\n return !!(\n typeof Intl == \"object\" &&\n Intl &&\n typeof Intl.NumberFormat == \"function\"\n );\n}\n\nimport { NumberFieldProps } from \"../types\";\n\n/**\n * This field is used to display a number formatted according to the browser locale, right aligned. and uses {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl `Intl`} to display date format.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/fields/number} for more details.\n */\nexport const NumberField: React.FC<NumberFieldProps> = ({\n value,\n locale,\n options,\n ...rest\n}) => {\n const number = parseFloat(value.toString());\n\n return (\n <Text {...rest}>\n {toLocaleStringSupportsOptions()\n ? number.toLocaleString(locale, options)\n : number}\n </Text>\n );\n};\n","import React from \"react\";\nimport ReactMarkdown from \"react-markdown\";\nimport gfm from \"remark-gfm\";\n\nimport { RefineFieldMarkdownProps } from \"../types\";\n\n/**\n * This field lets you display markdown content. It supports {@link https://github.github.com/gfm/ GitHub Flavored Markdown}.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/fields/markdown} for more details.\n */\nexport const MarkdownField: React.FC<RefineFieldMarkdownProps> = ({\n value = \"\",\n}) => {\n return <ReactMarkdown plugins={[gfm]}>{value}</ReactMarkdown>;\n};\n","import React, { ReactNode, useState } from \"react\";\nimport { Button, Space } from \"antd\";\nimport type { FilterDropdownProps as AntdFilterDropdownProps } from \"antd/lib/table/interface\";\nimport dayjs from \"dayjs\";\nimport { FilterOutlined } from \"@ant-design/icons\";\nimport { useTranslate } from \"@refinedev/core\";\n\nexport type FilterDropdownProps = AntdFilterDropdownProps & {\n mapValue?: (selectedKeys: React.Key[]) => any;\n children: ReactNode;\n};\n\n/**\n * `<FilterDropdown>` is a helper component for {@link https://ant.design/components/table/#components-table-demo-custom-filter-panel filter dropdowns in Ant Design `<Table>` components.}\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/filter-dropdown} for more details.\n */\nexport const FilterDropdown: React.FC<FilterDropdownProps> = (props) => {\n const {\n setSelectedKeys,\n confirm,\n clearFilters,\n mapValue,\n selectedKeys,\n children,\n } = props;\n\n const [value, setValue] = useState<any[] | undefined>(selectedKeys);\n const translate = useTranslate();\n\n const clearFilter = () => {\n if (clearFilters) {\n setValue([]);\n clearFilters();\n }\n };\n\n const onFilter = () => {\n const _mappedValue = mappedValue(value);\n\n let keys;\n if (typeof _mappedValue === \"number\") {\n keys = `${_mappedValue}`;\n } else if (dayjs.isDayjs(_mappedValue)) {\n keys = [_mappedValue.toISOString()];\n } else {\n keys = _mappedValue;\n }\n\n setSelectedKeys(keys);\n\n confirm?.();\n };\n\n const mappedValue = (value: any) => (mapValue ? mapValue(value) : value);\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const onChange = (e: any) => {\n if (typeof e === \"object\") {\n if (Array.isArray(e)) {\n const _mappedValue = mappedValue(e);\n\n setValue(_mappedValue);\n return setSelectedKeys(_mappedValue);\n }\n\n const changeEvent =\n !e || !e.target || dayjs.isDayjs(e)\n ? { target: { value: e } }\n : e;\n\n const { target }: React.ChangeEvent<HTMLInputElement> = changeEvent;\n const _mappedValue = mappedValue(target.value);\n setValue(_mappedValue);\n return;\n }\n\n const _mappedValue = mappedValue(e);\n\n setValue(_mappedValue);\n };\n\n const childrenWithProps = React.Children.map(children, (child) => {\n if (React.isValidElement(child)) {\n return React.cloneElement(child, {\n onChange,\n value: mappedValue(value),\n });\n }\n return child;\n });\n return (\n <div\n style={{\n padding: 10,\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"flex-end\",\n }}\n >\n <div style={{ marginBottom: 15 }}>{childrenWithProps}</div>\n <Space>\n <Button type=\"primary\" size=\"small\" onClick={() => onFilter()}>\n <FilterOutlined /> {translate(\"buttons.filter\", \"Filter\")}\n </Button>\n <Button danger size=\"small\" onClick={() => clearFilter()}>\n {translate(\"buttons.clear\", \"Clear\")}\n </Button>\n </Space>\n </div>\n );\n};\n","import React, { useEffect, useState } from \"react\";\nimport { useGo, useResource, useRouterType } from \"@refinedev/core\";\nimport { RefineErrorPageProps } from \"@refinedev/ui-types\";\nimport { Button, Result, Typography, Space, Tooltip } from \"antd\";\nimport { InfoCircleOutlined } from \"@ant-design/icons\";\nimport { useNavigation, useTranslate } from \"@refinedev/core\";\n\nconst { Text } = Typography;\n\n/**\n * When the app is navigated to a non-existent route, refine shows a default error page.\n * A custom error component can be used for this error page.\n *\n * @see {@link https://refine.dev/docs/api-references/components/refine-config#catchall} for more details.\n */\nexport const ErrorComponent: React.FC<RefineErrorPageProps> = () => {\n const [errorMessage, setErrorMessage] = useState<string>();\n const translate = useTranslate();\n const { push } = useNavigation();\n const go = useGo();\n const routerType = useRouterType();\n\n const { resource, action } = useResource();\n\n useEffect(() => {\n if (resource) {\n if (action) {\n setErrorMessage(\n translate(\n \"pages.error.info\",\n {\n action: action,\n resource: resource?.name,\n },\n `You may have forgotten to add the \"${action}\" component to \"${resource?.name}\" resource.`,\n ),\n );\n }\n }\n }, [resource, action]);\n\n return (\n <Result\n status=\"404\"\n title=\"404\"\n extra={\n <Space direction=\"vertical\" size=\"large\">\n <Space>\n <Text>\n {translate(\n \"pages.error.404\",\n \"Sorry, the page you visited does not exist.\",\n )}\n </Text>\n {errorMessage && (\n <Tooltip title={errorMessage}>\n <InfoCircleOutlined data-testid=\"error-component-tooltip\" />\n </Tooltip>\n )}\n </Space>\n <Button\n type=\"primary\"\n onClick={() => {\n if (routerType === \"legacy\") {\n push(\"/\");\n } else {\n go({ to: \"/\" });\n }\n }}\n >\n {translate(\"pages.error.backHome\", \"Back Home\")}\n </Button>\n </Space>\n }\n />\n );\n};\n","import React from \"react\";\nimport { LoginPageProps, useActiveAuthProvider } from \"@refinedev/core\";\nimport {\n Row,\n Col,\n Layout,\n Card,\n Typography,\n Form,\n Input,\n Button,\n Checkbox,\n} from \"antd\";\nimport { useLogin, useTranslate } from \"@refinedev/core\";\n\nimport {\n layoutStyles,\n containerStyles,\n titleStyles,\n imageContainer,\n} from \"./styles\";\n\nconst { Text, Title } = Typography;\nexport interface ILoginForm {\n username: string;\n password: string;\n remember: boolean;\n}\n\n/**\n * @deprecated LoginPage is deprecated. Use AuthPage instead. @see {@link https://refine.dev/docs/api-reference/antd/components/antd-auth-page} for more details.\n * **refine** has a default login page form which is served on `/login` route when the `authProvider` configuration is provided.\n *\n * @see {@link https://refine.dev/docs/api-references/components/refine-config#loginpage} for more details.\n */\nexport const LoginPage: React.FC<LoginPageProps> = () => {\n const [form] = Form.useForm<ILoginForm>();\n const translate = useTranslate();\n\n const authProvider = useActiveAuthProvider();\n const { mutate: login, isLoading } = useLogin<ILoginForm>({\n v3LegacyAuthProviderCompatible: Boolean(authProvider?.isLegacy),\n });\n\n const CardTitle = (\n <Title level={3} style={titleStyles}>\n {translate(\"pages.login.title\", \"Sign in your account\")}\n </Title>\n );\n\n return (\n <Layout style={layoutStyles}>\n <Row\n justify=\"center\"\n align=\"middle\"\n style={{\n height: \"100vh\",\n }}\n >\n <Col xs={22}>\n <div style={containerStyles}>\n <div style={imageContainer}>\n <img\n src=\"https://refine.ams3.cdn.digitaloceanspaces.com/logo/refine.svg\"\n alt=\"Refine Logo\"\n />\n </div>\n <Card title={CardTitle} headStyle={{ borderBottom: 0 }}>\n <Form<ILoginForm>\n layout=\"vertical\"\n form={form}\n onFinish={(values) => {\n login(values);\n }}\n requiredMark={false}\n initialValues={{\n remember: false,\n }}\n >\n <Form.Item\n name=\"username\"\n label={translate(\n \"pages.login.username\",\n \"Username\",\n )}\n rules={[{ required: true }]}\n >\n <Input\n size=\"large\"\n placeholder={translate(\n \"pages.login.username\",\n \"Username\",\n )}\n />\n </Form.Item>\n <Form.Item\n name=\"password\"\n label={translate(\n \"pages.login.password\",\n \"Password\",\n )}\n rules={[{ required: true }]}\n style={{ marginBottom: \"12px\" }}\n >\n <Input\n type=\"password\"\n placeholder=\"●●●●●●●●\"\n size=\"large\"\n />\n </Form.Item>\n <div style={{ marginBottom: \"12px\" }}>\n <Form.Item\n name=\"remember\"\n valuePropName=\"checked\"\n noStyle\n >\n <Checkbox\n style={{\n fontSize: \"12px\",\n }}\n >\n {translate(\n \"pages.login.remember\",\n \"Remember me\",\n )}\n </Checkbox>\n </Form.Item>\n\n <a\n style={{\n float: \"right\",\n fontSize: \"12px\",\n }}\n href=\"#\"\n >\n {translate(\n \"pages.login.forgotPassword\",\n \"Forgot password?\",\n )}\n </a>\n </div>\n <Button\n type=\"primary\"\n size=\"large\"\n htmlType=\"submit\"\n loading={isLoading}\n block\n >\n {translate(\"pages.login.signin\", \"Sign in\")}\n </Button>\n </Form>\n <div style={{ marginTop: 8 }}>\n <Text style={{ fontSize: 12 }}>\n {translate(\n \"pages.login.noAccount\",\n \"Don’t have an account?\",\n )}{\" \"}\n <a href=\"#\" style={{ fontWeight: \"bold\" }}>\n {translate(\n \"pages.login.signup\",\n \"Sign up\",\n )}\n </a>\n </Text>\n </div>\n </Card>\n </div>\n </Col>\n </Row>\n </Layout>\n );\n};\n","import { CSSProperties } from \"react\";\n\nexport const layoutStyles: CSSProperties = {\n background: `radial-gradient(50% 50% at 50% 50%, #63386A 0%, #310438 100%)`,\n backgroundSize: \"cover\",\n};\n\nexport const containerStyles: CSSProperties = {\n maxWidth: \"408px\",\n margin: \"auto\",\n};\n\nexport const titleStyles: CSSProperties = {\n textAlign: \"center\",\n color: \"#626262\",\n fontSize: \"30px\",\n letterSpacing: \"-0.04em\",\n};\n\nexport const imageContainer: CSSProperties = {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n marginBottom: \"28px\",\n};\n","import * as React from \"react\";\nimport { RefineReadyPageProps } from \"@refinedev/ui-types\";\nimport { Row, Col, Typography, Space, Button } from \"antd\";\nimport { ReadOutlined, FolderOutlined, TeamOutlined } from \"@ant-design/icons\";\n\nconst styles: { [key: string]: React.CSSProperties } = {\n root: {\n height: \"100vh\",\n backgroundImage:\n \"url('https://refine.ams3.cdn.digitaloceanspaces.com/login-background/background.png')\",\n backgroundSize: \"cover\",\n backgroundColor: \"#331049\",\n },\n title: {\n color: \"white\",\n fontWeight: 800,\n fontSize: \"64px\",\n marginBottom: \"8px\",\n },\n p1: {\n color: \"white\",\n marginBottom: 0,\n fontSize: \"20px\",\n fontWeight: \"bold\",\n },\n p2: {\n color: \"white\",\n fontSize: \"20px\",\n },\n code: {\n backgroundColor: \"white\",\n color: \"#331049\",\n },\n};\n\nconst { Title } = Typography;\n\n/**\n * **refine** shows a default ready page on root route when no `resources` is passed to the `<Refine>` component as a property.\n *\n * @see {@link https://refine.dev/docs/api-references/components/refine-config#readypage} for more details.\n * @deprecated `ReadyPage` is deprecated and will be removed in the next major release.\n */\nexport const ReadyPage: React.FC<RefineReadyPageProps> = () => {\n return (\n <Row align=\"middle\" justify=\"center\" style={styles.root}>\n <Col style={{ textAlign: \"center\" }}>\n <img\n style={{ marginBottom: \"48px\" }}\n src=\"https://refine.ams3.cdn.digitaloceanspaces.com/logo/refine.svg\"\n alt=\"Refine Logo\"\n />\n <Title style={styles.title}>Welcome on board</Title>\n <p style={styles.p1}>Your configuration is completed.</p>\n <p style={styles.p2}>\n Now you can get started by adding your resources to the{\" \"}\n <code style={styles.code}>{`resources`}</code> property of{\" \"}\n <code style={styles.code}>{`<Refine>`}</code>\n </p>\n <Space\n size=\"large\"\n wrap\n style={{ marginTop: \"70px\", justifyContent: \"center\" }}\n >\n <a\n href=\"https://refine.dev\"\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n <Button size=\"large\" icon={<ReadOutlined />}>\n Documentation\n </Button>\n </a>\n <a\n href=\"https://refine.dev/examples\"\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n <Button size=\"large\" icon={<FolderOutlined />}>\n Examples\n </Button>\n </a>\n <a\n href=\"https://discord.gg/refine\"\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n <Button size=\"large\" icon={<TeamOutlined />}>\n Community\n </Button>\n </a>\n </Space>\n </Col>\n </Row>\n );\n};\n","import * as React from \"react\";\nimport { Row, Col, Typography, Space, Button } from \"antd\";\nimport { ReadOutlined, FolderOutlined, TeamOutlined } from \"@ant-design/icons\";\n\nconst styles: { [key: string]: React.CSSProperties } = {\n root: {\n height: \"100vh\",\n backgroundImage:\n \"url('https://refine.ams3.cdn.digitaloceanspaces.com/login-background/background.png')\",\n backgroundSize: \"cover\",\n backgroundColor: \"#331049\",\n },\n title: {\n color: \"white\",\n fontWeight: 800,\n fontSize: \"64px\",\n marginBottom: \"8px\",\n },\n p1: {\n color: \"white\",\n marginBottom: 0,\n fontSize: \"20px\",\n fontWeight: \"bold\",\n },\n p2: {\n color: \"white\",\n fontSize: \"20px\",\n },\n code: {\n backgroundColor: \"white\",\n color: \"#331049\",\n },\n};\n\nconst { Title } = Typography;\n\n/**\n * It is a page that welcomes you after the configuration is completed.\n */\nexport const WelcomePage: React.FC = () => {\n return (\n <Row align=\"middle\" justify=\"center\" style={styles.root}>\n <Col style={{ textAlign: \"center\" }}>\n <img\n style={{ marginBottom: \"48px\" }}\n src=\"https://refine.ams3.cdn.digitaloceanspaces.com/logo/refine.svg\"\n alt=\"Refine Logo\"\n />\n <Title style={styles.title}>Welcome on board</Title>\n <p style={styles.p1}>Your configuration is completed.</p>\n <Space\n size=\"large\"\n wrap\n style={{ marginTop: \"70px\", justifyContent: \"center\" }}\n >\n <a\n href=\"https://refine.dev\"\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n <Button size=\"large\" icon={<ReadOutlined />}>\n Documentation\n </Button>\n </a>\n <a\n href=\"https://refine.dev/examples\"\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n <Button size=\"large\" icon={<FolderOutlined />}>\n Examples\n </Button>\n </a>\n <a\n href=\"https://discord.gg/refine\"\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n <Button size=\"large\" icon={<TeamOutlined />}>\n Community\n </Button>\n </a>\n </Space>\n </Col>\n </Row>\n );\n};\n","import React from \"react\";\nimport { CardProps, FormProps, LayoutProps } from \"antd\";\nimport { AuthPageProps } from \"@refinedev/core\";\n\nimport {\n LoginPage,\n RegisterPage,\n ForgotPasswordPage,\n UpdatePasswordPage,\n} from \"./components\";\n\nexport type AuthProps = AuthPageProps<LayoutProps, CardProps, FormProps>;\n\n/**\n * **refine** has a default auth page form served on the `/login` route when the `authProvider` configuration is provided.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/authpage/} for more details.\n */\nexport const AuthPage: React.FC<AuthProps> = (props) => {\n const { type } = props;\n const renderView = () => {\n switch (type) {\n case \"register\":\n return <RegisterPage {...props} />;\n case \"forgotPassword\":\n return <ForgotPasswordPage {...props} />;\n case \"updatePassword\":\n return <UpdatePasswordPage {...props} />;\n default:\n return <LoginPage {...props} />;\n }\n };\n\n return <>{renderView()}</>;\n};\n","import React from \"react\";\nimport {\n LoginPageProps,\n LoginFormTypes,\n useLink,\n useRouterType,\n useActiveAuthProvider,\n} from \"@refinedev/core\";\nimport {\n Row,\n Col,\n Layout,\n Card,\n Typography,\n Form,\n Input,\n Button,\n Checkbox,\n CardProps,\n LayoutProps,\n Divider,\n FormProps,\n} from \"antd\";\nimport { useLogin, useTranslate, useRouterContext } from \"@refinedev/core\";\n\nimport { layoutStyles, containerStyles, titleStyles } from \"../styles\";\n\nconst { Text, Title } = Typography;\n\ntype LoginProps = LoginPageProps<LayoutProps, CardProps, FormProps>;\n\n/**\n * **refine** has a default login page form which is served on `/login` route when the `authProvider` configuration is provided.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/antd-auth-page/#login} for more details.\n */\nexport const LoginPage: React.FC<LoginProps> = ({\n providers,\n registerLink,\n forgotPasswordLink,\n rememberMe,\n contentProps,\n wrapperProps,\n renderContent,\n formProps,\n}) => {\n const [form] = Form.useForm<LoginFormTypes>();\n const translate = useTranslate();\n const routerType = useRouterType();\n const Link = useLink();\n const { Link: LegacyLink } = useRouterContext();\n\n const ActiveLink = routerType === \"legacy\" ? LegacyLink : Link;\n\n const authProvider = useActiveAuthProvider();\n const { mutate: login, isLoading } = useLogin<LoginFormTypes>({\n v3LegacyAuthProviderCompatible: Boolean(authProvider?.isLegacy),\n });\n\n const CardTitle = (\n <Title level={3} style={titleStyles}>\n {translate(\"pages.login.title\", \"Sign in to your account\")}\n </Title>\n );\n\n const renderProviders = () => {\n if (providers && providers.length > 0) {\n return (\n <>\n {providers.map((provider) => {\n return (\n <Button\n key={provider.name}\n type=\"default\"\n block\n icon={provider.icon}\n style={{\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n width: \"100%\",\n marginBottom: \"8px\",\n }}\n onClick={() =>\n login({\n providerName: provider.name,\n })\n }\n >\n {provider.label}\n </Button>\n );\n })}\n <Divider>{translate(\"pages.login.divider\", \"or\")}</Divider>\n </>\n );\n }\n return null;\n };\n\n const CardContent = (\n <Card\n title={CardTitle}\n headStyle={{ borderBottom: 0 }}\n style={containerStyles}\n {...(contentProps ?? {})}\n >\n {renderProviders()}\n <Form<LoginFormTypes>\n layout=\"vertical\"\n form={form}\n onFinish={(values) => login(values)}\n requiredMark={false}\n initialValues={{\n remember: false,\n }}\n {...formProps}\n >\n <Form.Item\n name=\"email\"\n label={translate(\"pages.login.fields.email\", \"Email\")}\n rules={[\n { required: true },\n {\n type: \"email\",\n message: translate(\n \"pages.login.errors.validEmail\",\n \"Invalid email address\",\n ),\n },\n ]}\n >\n <Input\n size=\"large\"\n placeholder={translate(\n \"pages.login.fields.email\",\n \"Email\",\n )}\n />\n </Form.Item>\n <Form.Item\n name=\"password\"\n label={translate(\"pages.login.fields.password\", \"Password\")}\n rules={[{ required: true }]}\n style={{ marginBottom: \"12px\" }}\n >\n <Input\n type=\"password\"\n placeholder=\"●●●●●●●●\"\n size=\"large\"\n />\n </Form.Item>\n <div\n style={{\n display: \"flex\",\n justifyContent: \"space-between\",\n marginBottom: \"12px\",\n }}\n >\n {rememberMe ?? (\n <Form.Item\n name=\"remember\"\n valuePropName=\"checked\"\n noStyle\n >\n <Checkbox\n style={{\n fontSize: \"12px\",\n }}\n >\n {translate(\n \"pages.login.buttons.rememberMe\",\n \"Remember me\",\n )}\n </Checkbox>\n </Form.Item>\n )}\n {forgotPasswordLink ?? (\n <ActiveLink\n style={{\n fontSize: \"12px\",\n marginLeft: \"auto\",\n }}\n to=\"/forgot-password\"\n >\n {translate(\n \"pages.login.buttons.forgotPassword\",\n \"Forgot password?\",\n )}\n </ActiveLink>\n )}\n </div>\n <Form.Item>\n <Button\n type=\"primary\"\n size=\"large\"\n htmlType=\"submit\"\n loading={isLoading}\n block\n >\n {translate(\"pages.login.signin\", \"Sign in\")}\n </Button>\n </Form.Item>\n </Form>\n <div style={{ marginTop: 8 }}>\n {registerLink ?? (\n <Text style={{ fontSize: 12 }}>\n {translate(\n \"pages.login.buttons.noAccount\",\n \"Don’t have an account?\",\n )}{\" \"}\n <ActiveLink\n to=\"/register\"\n style={{ fontWeight: \"bold\" }}\n >\n {translate(\"pages.login.signup\", \"Sign up\")}\n </ActiveLink>\n </Text>\n )}\n </div>\n </Card>\n );\n\n return (\n <Layout style={layoutStyles} {...(wrapperProps ?? {})}>\n <Row\n justify=\"center\"\n align=\"middle\"\n style={{\n height: \"100vh\",\n }}\n >\n <Col xs={22}>\n {renderContent ? renderContent(CardContent) : CardContent}\n </Col>\n </Row>\n </Layout>\n );\n};\n","import { CSSProperties } from \"react\";\n\nexport const layoutStyles: CSSProperties = {\n background: `radial-gradient(50% 50% at 50% 50%, #6813CB 0%, #2A2A42 100%)`,\n backgroundSize: \"cover\",\n};\n\nexport const containerStyles: CSSProperties = {\n maxWidth: \"408px\",\n margin: \"auto\",\n};\n\nexport const titleStyles: CSSProperties = {\n textAlign: \"center\",\n color: \"#626262\",\n marginBottom: 0,\n fontSize: \"24px\",\n letterSpacing: \"-0.04em\",\n overflowWrap: \"break-word\",\n hyphens: \"manual\",\n textOverflow: \"unset\",\n whiteSpace: \"pre-wrap\",\n};\n","import React from \"react\";\nimport {\n RegisterPageProps,\n RegisterFormTypes,\n useRouterType,\n useLink,\n useActiveAuthProvider,\n} from \"@refinedev/core\";\nimport {\n Row,\n Col,\n Layout,\n Card,\n Typography,\n Form,\n Input,\n Button,\n LayoutProps,\n CardProps,\n FormProps,\n Divider,\n} from \"antd\";\nimport { useTranslate, useRouterContext, useRegister } from \"@refinedev/core\";\n\nimport { layoutStyles, containerStyles, titleStyles } from \"../styles\";\n\nconst { Text, Title } = Typography;\n\ntype RegisterProps = RegisterPageProps<LayoutProps, CardProps, FormProps>;\n\n/**\n * **refine** has register page form which is served on `/register` route when the `authProvider` configuration is provided.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/antd-auth-page/#register} for more details.\n */\nexport const RegisterPage: React.FC<RegisterProps> = ({\n providers,\n loginLink,\n wrapperProps,\n contentProps,\n renderContent,\n formProps,\n}) => {\n const [form] = Form.useForm<RegisterFormTypes>();\n const translate = useTranslate();\n const routerType = useRouterType();\n const Link = useLink();\n const { Link: LegacyLink } = useRouterContext();\n\n const ActiveLink = routerType === \"legacy\" ? LegacyLink : Link;\n\n const authProvider = useActiveAuthProvider();\n const { mutate: register, isLoading } = useRegister<RegisterFormTypes>({\n v3LegacyAuthProviderCompatible: Boolean(authProvider?.isLegacy),\n });\n\n const CardTitle = (\n <Title level={3} style={titleStyles}>\n {translate(\"pages.register.title\", \"Sign up for your account\")}\n </Title>\n );\n\n const renderProviders = () => {\n if (providers && providers.length > 0) {\n return (\n <>\n {providers.map((provider) => {\n return (\n <Button\n key={provider.name}\n type=\"ghost\"\n block\n icon={provider.icon}\n style={{\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n width: \"100%\",\n marginBottom: \"8px\",\n }}\n onClick={() =>\n register({\n providerName: provider.name,\n })\n }\n >\n {provider.label}\n </Button>\n );\n })}\n <Divider>{translate(\"pages.login.divider\", \"or\")}</Divider>\n </>\n );\n }\n return null;\n };\n\n const CardContent = (\n <Card\n title={CardTitle}\n headStyle={{ borderBottom: 0 }}\n style={containerStyles}\n {...(contentProps ?? {})}\n >\n {renderProviders()}\n <Form<RegisterFormTypes>\n layout=\"vertical\"\n form={form}\n onFinish={(values) => register(values)}\n requiredMark={false}\n {...formProps}\n >\n <Form.Item\n name=\"email\"\n label={translate(\"pages.register.email\", \"Email\")}\n rules={[\n { required: true },\n {\n type: \"email\",\n message: translate(\n \"pages.register.errors.validEmail\",\n \"Invalid email address\",\n ),\n },\n ]}\n >\n <Input\n size=\"large\"\n placeholder={translate(\n \"pages.register.fields.email\",\n \"Email\",\n )}\n />\n </Form.Item>\n <Form.Item\n name=\"password\"\n label={translate(\n \"pages.register.fields.password\",\n \"Password\",\n )}\n rules={[{ required: true }]}\n style={{ marginBottom: \"12px\" }}\n >\n <Input\n type=\"password\"\n placeholder=\"●●●●●●●●\"\n size=\"large\"\n />\n </Form.Item>\n <div\n style={{\n display: \"flex\",\n justifyContent: \"space-between\",\n marginBottom: \"12px\",\n }}\n >\n {loginLink ?? (\n <Text\n style={{\n fontSize: 12,\n marginLeft: \"auto\",\n }}\n >\n {translate(\n \"pages.login.buttons.haveAccount\",\n \"Have an account?\",\n )}{\" \"}\n <ActiveLink\n style={{\n fontWeight: \"bold\",\n }}\n to=\"/login\"\n >\n {translate(\"pages.login.signin\", \"Sign in\")}\n </ActiveLink>\n </Text>\n )}\n </div>\n\n <Form.Item>\n <Button\n type=\"primary\"\n size=\"large\"\n htmlType=\"submit\"\n loading={isLoading}\n block\n >\n {translate(\"pages.register.buttons.submit\", \"Sign up\")}\n </Button>\n </Form.Item>\n </Form>\n </Card>\n );\n\n return (\n <Layout style={layoutStyles} {...(wrapperProps ?? {})}>\n <Row\n justify=\"center\"\n align=\"middle\"\n style={{\n height: \"100vh\",\n }}\n >\n <Col xs={22}>\n {renderContent ? renderContent(CardContent) : CardContent}\n </Col>\n </Row>\n </Layout>\n );\n};\n","import React from \"react\";\nimport {\n ForgotPasswordPageProps,\n ForgotPasswordFormTypes,\n useRouterType,\n useLink,\n} from \"@refinedev/core\";\nimport {\n Row,\n Col,\n Layout,\n Card,\n Typography,\n Form,\n Input,\n Button,\n LayoutProps,\n CardProps,\n FormProps,\n} from \"antd\";\nimport {\n useTranslate,\n useRouterContext,\n useForgotPassword,\n} from \"@refinedev/core\";\n\nimport { layoutStyles, containerStyles, titleStyles } from \"../styles\";\n\ntype ResetPassworProps = ForgotPasswordPageProps<\n LayoutProps,\n CardProps,\n FormProps\n>;\n\nconst { Text, Title } = Typography;\n\n/**\n * **refine** has forgot password page form which is served on `/forgot-password` route when the `authProvider` configuration is provided.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/antd-auth-page/#forgot-password} for more details.\n */\nexport const ForgotPasswordPage: React.FC<ResetPassworProps> = ({\n loginLink,\n wrapperProps,\n contentProps,\n renderContent,\n formProps,\n}) => {\n const [form] = Form.useForm<ForgotPasswordFormTypes>();\n const translate = useTranslate();\n const routerType = useRouterType();\n const Link = useLink();\n const { Link: LegacyLink } = useRouterContext();\n\n const ActiveLink = routerType === \"legacy\" ? LegacyLink : Link;\n\n const { mutate: forgotPassword, isLoading } =\n useForgotPassword<ForgotPasswordFormTypes>();\n\n const CardTitle = (\n <Title level={3} style={titleStyles}>\n {translate(\"pages.forgotPassword.title\", \"Forgot your password?\")}\n </Title>\n );\n const CardContent = (\n <Card\n title={CardTitle}\n headStyle={{ borderBottom: 0 }}\n style={containerStyles}\n {...(contentProps ?? {})}\n >\n <Form<ForgotPasswordFormTypes>\n layout=\"vertical\"\n form={form}\n onFinish={(values) => forgotPassword(values)}\n requiredMark={false}\n {...formProps}\n >\n <Form.Item\n name=\"email\"\n label={translate(\n \"pages.forgotPassword.fields.email\",\n \"Email\",\n )}\n rules={[\n { required: true },\n {\n type: \"email\",\n message: translate(\n \"pages.forgotPassword.errors.validEmail\",\n \"Invalid email address\",\n ),\n },\n ]}\n >\n <Input\n type=\"email\"\n size=\"large\"\n placeholder={translate(\n \"pages.forgotPassword.fields.email\",\n \"Email\",\n )}\n />\n </Form.Item>\n <div\n style={{\n display: \"flex\",\n justifyContent: \"space-between\",\n marginBottom: \"12px\",\n }}\n >\n {loginLink ?? (\n <Text\n style={{\n fontSize: 12,\n marginLeft: \"auto\",\n }}\n >\n {translate(\n \"pages.register.buttons.haveAccount\",\n \"Have an account? \",\n )}{\" \"}\n <ActiveLink\n style={{\n fontWeight: \"bold\",\n }}\n to=\"/login\"\n >\n {translate(\"pages.login.signin\", \"Sign in\")}\n </ActiveLink>\n </Text>\n )}\n </div>\n <Form.Item>\n <Button\n type=\"primary\"\n size=\"large\"\n htmlType=\"submit\"\n loading={isLoading}\n block\n >\n {translate(\n \"pages.forgotPassword.buttons.submit\",\n \"Send reset instructions\",\n )}\n </Button>\n </Form.Item>\n </Form>\n </Card>\n );\n\n return (\n <Layout style={layoutStyles} {...(wrapperProps ?? {})}>\n <Row\n justify=\"center\"\n align=\"middle\"\n style={{\n height: \"100vh\",\n }}\n >\n <Col xs={22}>\n {renderContent ? renderContent(CardContent) : CardContent}\n </Col>\n </Row>\n </Layout>\n );\n};\n","import React from \"react\";\nimport {\n UpdatePasswordPageProps,\n UpdatePasswordFormTypes,\n useActiveAuthProvider,\n} from \"@refinedev/core\";\nimport {\n Row,\n Col,\n Layout,\n Card,\n Typography,\n Form,\n Input,\n Button,\n LayoutProps,\n CardProps,\n FormProps,\n} from \"antd\";\nimport { useTranslate, useUpdatePassword } from \"@refinedev/core\";\n\nimport { layoutStyles, containerStyles, titleStyles } from \"../styles\";\n\nconst { Title } = Typography;\n\ntype UpdatePasswordProps = UpdatePasswordPageProps<\n LayoutProps,\n CardProps,\n FormProps\n>;\n\n/**\n * **refine** has update password page form which is served on `/update-password` route when the `authProvider` configuration is provided.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/antd-auth-page/#update-password} for more details.\n */\nexport const UpdatePasswordPage: React.FC<UpdatePasswordProps> = ({\n wrapperProps,\n contentProps,\n renderContent,\n formProps,\n}) => {\n const [form] = Form.useForm<UpdatePasswordFormTypes>();\n const translate = useTranslate();\n const authProvider = useActiveAuthProvider();\n const { mutate: updatePassword, isLoading } =\n useUpdatePassword<UpdatePasswordFormTypes>({\n v3LegacyAuthProviderCompatible: Boolean(authProvider?.isLegacy),\n });\n\n const CardTitle = (\n <Title level={3} style={titleStyles}>\n {translate(\"pages.updatePassword.title\", \"Set New Password\")}\n </Title>\n );\n\n const CardContent = (\n <Card\n title={CardTitle}\n headStyle={{ borderBottom: 0 }}\n style={containerStyles}\n {...(contentProps ?? {})}\n >\n <Form<UpdatePasswordFormTypes>\n layout=\"vertical\"\n form={form}\n onFinish={(values) => updatePassword(values)}\n requiredMark={false}\n {...formProps}\n >\n <Form.Item\n name=\"password\"\n label={translate(\n \"pages.updatePassword.fields.password\",\n \"New Password\",\n )}\n rules={[{ required: true }]}\n style={{ marginBottom: \"12px\" }}\n >\n <Input\n type=\"password\"\n placeholder=\"●●●●●●●●\"\n size=\"large\"\n />\n </Form.Item>\n <Form.Item\n name=\"confirmPassword\"\n label={translate(\n \"pages.updatePassword.fields.confirmPassword\",\n \"Confirm New Password\",\n )}\n hasFeedback\n dependencies={[\"password\"]}\n rules={[\n {\n required: true,\n },\n ({ getFieldValue }) => ({\n validator(_, value) {\n if (\n !value ||\n getFieldValue(\"password\") === value\n ) {\n return Promise.resolve();\n }\n return Promise.reject(\n new Error(\n translate(\n \"pages.updatePassword.errors.confirmPasswordNotMatch\",\n \"Passwords do not match\",\n ),\n ),\n );\n },\n }),\n ]}\n style={{ marginBottom: \"12px\" }}\n >\n <Input\n type=\"password\"\n placeholder=\"●●●●●●●●\"\n size=\"large\"\n />\n </Form.Item>\n <Form.Item>\n <Button\n type=\"primary\"\n size=\"large\"\n htmlType=\"submit\"\n loading={isLoading}\n block\n >\n {translate(\n \"pages.updatePassword.buttons.submit\",\n \"Update\",\n )}\n </Button>\n </Form.Item>\n </Form>\n </Card>\n );\n\n return (\n <Layout style={layoutStyles} {...(wrapperProps ?? {})}>\n <Row\n justify=\"center\"\n align=\"middle\"\n style={{\n height: \"100vh\",\n }}\n >\n <Col xs={22}>\n {renderContent ? renderContent(CardContent) : CardContent}\n </Col>\n </Row>\n </Layout>\n );\n};\n","import React from \"react\";\nimport {\n useBreadcrumb,\n useLink,\n useRefineContext,\n useRouterContext,\n useRouterType,\n useResource,\n matchResourceFromRoute,\n} from \"@refinedev/core\";\nimport { RefineBreadcrumbProps } from \"@refinedev/ui-types\";\n\nimport {\n Breadcrumb as AntdBreadcrumb,\n BreadcrumbProps as AntdBreadcrumbProps,\n} from \"antd\";\nimport { HomeOutlined } from \"@ant-design/icons\";\n\nexport type BreadcrumbProps = RefineBreadcrumbProps<AntdBreadcrumbProps>;\n\nexport const Breadcrumb: React.FC<BreadcrumbProps> = ({\n breadcrumbProps,\n showHome = true,\n hideIcons = false,\n meta,\n}) => {\n const routerType = useRouterType();\n const { breadcrumbs } = useBreadcrumb({\n meta,\n });\n const Link = useLink();\n const { Link: LegacyLink } = useRouterContext();\n const { hasDashboard } = useRefineContext();\n\n const { resources } = useResource();\n\n const rootRouteResource = matchResourceFromRoute(\"/\", resources);\n\n const ActiveLink = routerType === \"legacy\" ? LegacyLink : Link;\n\n if (breadcrumbs.length === 1) {\n return null;\n }\n\n return (\n <AntdBreadcrumb {...breadcrumbProps}>\n {showHome && (hasDashboard || rootRouteResource.found) && (\n <AntdBreadcrumb.Item>\n <ActiveLink to=\"/\">\n {rootRouteResource?.resource?.meta?.icon ?? (\n <HomeOutlined />\n )}\n </ActiveLink>\n </AntdBreadcrumb.Item>\n )}\n {breadcrumbs.map(({ label, icon, href }) => {\n return (\n <AntdBreadcrumb.Item key={label}>\n {!hideIcons && icon}\n {href ? (\n <ActiveLink to={href}>{label}</ActiveLink>\n ) : (\n <span>{label}</span>\n )}\n </AntdBreadcrumb.Item>\n );\n })}\n </AntdBreadcrumb>\n );\n};\n","import React, { FC } from \"react\";\nimport {\n PageHeader as AntdPageHeader,\n PageHeaderProps as AntdPageHeaderProps,\n} from \"@ant-design/pro-layout\";\nimport { Button, Typography } from \"antd\";\nimport { ArrowLeftOutlined } from \"@ant-design/icons\";\n\nexport type PageHeaderProps = AntdPageHeaderProps;\n\nexport const PageHeader: FC<AntdPageHeaderProps> = ({ children, ...props }) => {\n const backIcon =\n typeof props.backIcon === \"undefined\" ? (\n <Button type=\"text\" icon={<ArrowLeftOutlined />} />\n ) : (\n props.backIcon\n );\n\n const title =\n typeof props.title === \"string\" ? (\n <Typography.Title level={4} style={{ marginBottom: 0 }}>\n {props.title}\n </Typography.Title>\n ) : (\n props.title\n );\n\n const subtitle =\n typeof props.title === \"string\" ? (\n <Typography.Title\n level={5}\n type=\"secondary\"\n style={{ marginBottom: 0 }}\n >\n {props.subTitle}\n </Typography.Title>\n ) : (\n props.subTitle\n );\n\n return (\n <AntdPageHeader\n {...props}\n backIcon={backIcon}\n title={title}\n subTitle={subtitle}\n style={{ padding: 0, ...props.style }}\n >\n {children}\n </AntdPageHeader>\n );\n};\n","import type { UploadFile, UploadChangeParam } from \"antd/lib/upload/interface\";\n\nexport const getValueFromEvent = (event: UploadChangeParam): UploadFile[] => {\n const { fileList } = event;\n\n return [...fileList];\n};\n\nexport function file2Base64(file: UploadFile): Promise<string> {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n\n const resultHandler = () => {\n if (reader.result) {\n reader.removeEventListener(\"load\", resultHandler, false);\n\n resolve(reader.result as string);\n }\n };\n\n reader.addEventListener(\"load\", resultHandler, false);\n\n reader.readAsDataURL(file.originFileObj as Blob);\n reader.onerror = (error) => {\n reader.removeEventListener(\"load\", resultHandler, false);\n return reject(error);\n };\n });\n}\n"],"mappings":"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","names":["src_exports","__export","AuthPage","BooleanField","Breadcrumb","CloneButton","Create","CreateButton","DateField","DeleteButton","Edit","EditButton","EmailField","ErrorComponent","ExportButton","FileField","FilterDropdown","Header","ImageField","ImportButton","Layout","List","ListButton","LoginPage","MarkdownField","NumberField","PageHeader","ReadyPage","RefreshButton","SaveButton","Show","ShowButton","Sider","TagField","TextField","Title","UrlField","WelcomePage","getDefaultFilter","getDefaultSortOrder","getValueFromEvent","mapAntdFilterToCrudFilter","mapAntdSorterToCrudSorting","notificationProvider","useCheckboxGroup","useDrawerForm","useEditableTable","useFileUploadState","useForm","useImport","useModal","useModalForm","useRadioGroup","useSelect","useSimpleList","useStepsForm","useTable","__toCommonJS","import_react","import_antd","import_sunflower_antd","import_core","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","useFormSF","form","useFormCoreResult","useFormCore","formLoading","onFinish","queryResult","id","warnWhenUnsavedChangesRefine","setWarnWhen","warnWhenUnsavedChanges","React","onKeyUp","event","onValuesChange","changeValues","saveButtonProps","values","error","import_react","import_sunflower_antd","import_core","import_react","useModalForm","mutationModeProp","syncWithLocation","rest","_a","_b","_c","_d","_e","_f","_g","_h","initiallySynced","React","useFormProps","useForm","form","formProps","id","setId","formLoading","mutationResult","resource","actionFromParams","parsed","go","action","syncingId","syncWithLocationKey","translate","warnWhen","setWarnWhen","sunflowerUseModal","useModalFormSF","visible","close","show","modalForm","modalFormProps","modalProps","openStatus","idFromParams","mutationModeContext","mutationMode","isLoadingMutation","isSuccessMutation","resetMutation","saveButtonPropsSF","handleClose","handleShow","import_react","import_core","import_react","useDrawerForm","mutationModeProp","syncWithLocation","rest","_a","_b","_c","initiallySynced","React","useFormProps","useForm","form","formProps","formLoading","mutationResult","id","setId","resource","actionFromParams","parsed","go","action","syncingId","syncWithLocationKey","open","setOpen","_d","openStatus","idFromParams","translate","warnWhen","setWarnWhen","mutationModeContext","mutationMode","isLoadingMutation","isSuccessMutation","resetMutation","saveButtonProps","deleteButtonProps","handleClose","handleShow","import_sunflower_antd","useStepsForm","props","useFormProps","useForm","form","formProps","stepsPropsSunflower","useStepsFormSF","values","_a","import_react","import_antd","import_sunflower_antd","import_core","import_core","getDefaultSortOrder","columnName","sorter","sort","getDefaultSortOrderCore","getDefaultFilter","filters","operatorType","getDefaultFilterCore","mapAntdSorterToCrudSorting","_a","crudSorting","a","b","_b","_c","_d","item","field","mapAntdFilterToCrudFilter","tableFilters","prevFilters","initialFilters","crudFilters","mapInitialFilter","acc","value","operator","i","p","import_core","import_react","PaginationLink","to","element","LegacyLink","routerType","Link","React","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","breakpoint","form","formSF","useFormSF","liveMode","hasPaginationString","isPaginationEnabled","preferredInitialFilters","data","isFetched","isLoading","onChange","paginationState","tableFilters","crudFilters","mapAntdFilterToCrudFilter","crudSorting","mapAntdSorterToCrudSorting","onFinish","value","searchFilters","antdPagination","page","type","element","link","PaginationLink","elementChildren","useEditableTable","props","table","useTable","edit","useForm","editId","setId","saveButtonProps","id","import_core","useSelect","props","queryResult","defaultValueQueryResult","onSearch","options","useSelectCore","import_core","useCheckboxGroup","resource","sort","sorters","filters","optionLabel","optionValue","queryOptions","fetchSize","pagination","liveMode","defaultValue","onLiveEvent","liveParams","meta","metaData","dataProviderName","queryResult","options","import_core","useRadioGroup","resource","sort","sorters","filters","optionLabel","optionValue","queryOptions","fetchSize","pagination","liveMode","defaultValue","onLiveEvent","liveParams","meta","metaData","dataProviderName","queryResult","options","import_react","import_antd","import_core","useImport","resourceFromProp","resourceName","mapData","item","paparseOptions","batchSize","onFinish","meta","metaData","dataProviderName","onProgressFromProp","_a","t","resource","mutationResult","isLoading","handleChange","useImportCore","totalAmount","processedAmount","description","React","import_react","import_antd","import_core","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","hasPaginationString","isPaginationEnabled","breakpoint","liveMode","form","data","isFetched","isLoading","onChange","page","onFinish","values","searchFilters","antdPagination","type","element","link","PaginationLink","elementChildren","import_react","useFileUploadState","isLoading","setIsloading","onChange","info","mapStatusToLoading","files","file","import_core","useModal","modalProps","show","close","visible","useCoreModal","e","_a","import_react","import_antd","import_react","import_antd","import_icons","UndoableNotification","notificationKey","message","cancelMutation","undoableTimeout","React","time","notificationProvider","key","message","description","type","cancelMutation","undoableTimeout","React","UndoableNotification","import_react","import_antd","import_react","import_antd","import_icons","import_core","drawerButtonStyles","SubMenu","Sider","TitleFromProps","render","meta","_a","collapsed","setCollapsed","drawerOpen","setDrawerOpen","isExistAuthentication","routerType","NewLink","LegacyLink","Link","TitleFromContext","translate","menuItems","selectedKey","defaultOpenKeys","breakpoint","hasDashboard","authProvider","mutateLogout","isMobile","RenderToTitle","Title","renderTreeView","tree","item","icon","label","route","key","name","children","parentName","options","React","isSelected","isRoute","logout","dashboard","items","renderSider","renderMenu","renderDrawerSider","drawerButtonStyles","import_react","import_antd","import_core","Text","Header","authProvider","user","React","AntdLayout","Layout","children","Header","Sider","Title","Footer","OffLayoutArea","breakpoint","SiderToRender","HeaderToRender","isSmall","React","AntdLayout","import_react","import_core","Title","collapsed","routerType","Link","LegacyLink","React","import_react","import_antd","import_icons","import_core","import_ui_types","CreateButton","resourceNameFromProps","propResourceNameOrRouteName","hideText","accessControl","meta","children","onClick","rest","_a","_b","accessControlEnabled","hideIfUnauthorized","translate","routerType","Link","LegacyLink","ActiveLink","generateCreateUrl","resource","data","createButtonDisabledTitle","createUrl","React","e","import_react","import_antd","import_icons","import_core","import_ui_types","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","React","e","import_react","import_antd","import_icons","import_core","import_ui_types","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","React","value","import_react","import_antd","import_icons","import_core","import_ui_types","RefreshButton","resourceNameFromProps","propResourceNameOrRouteName","recordItemId","hideText","meta","metaData","dataProviderName","children","onClick","rest","translate","resource","id","refetch","isFetching","React","e","import_react","import_antd","import_icons","import_core","import_ui_types","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","React","e","import_react","import_antd","import_icons","import_core","import_ui_types","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","React","e","import_react","import_antd","import_icons","import_core","import_ui_types","ExportButton","hideText","children","rest","translate","React","import_react","import_antd","import_icons","import_core","import_ui_types","SaveButton","hideText","children","rest","translate","React","import_react","import_antd","import_icons","import_core","import_ui_types","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","React","e","import_react","import_antd","import_icons","import_core","import_ui_types","ImportButton","uploadProps","buttonProps","hideText","children","translate","React","import_react","import_antd","import_core","List","canCreate","title","children","createButtonProps","resourceFromProps","wrapperProps","contentProps","headerProps","breadcrumbFromProps","headerButtonProps","headerButtons","_a","_b","_c","_d","_e","_f","_g","_h","translate","globalBreadcrumb","routerType","resource","isCreateButtonVisible","breadcrumb","defaultExtra","React","CreateButton","PageHeader","Breadcrumb","import_react","import_antd","import_core","Create","title","saveButtonProps","children","resourceFromProps","isLoading","breadcrumbFromProps","wrapperProps","headerProps","contentProps","headerButtonProps","headerButtons","footerButtonProps","footerButtons","goBackFromProps","_a","_b","_c","_d","_e","_f","translate","globalBreadcrumb","routerType","back","goBack","resource","action","breadcrumb","defaultFooterButtons","React","SaveButton","PageHeader","Breadcrumb","import_react","import_antd","import_core","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","globalBreadcrumb","mutationModeContext","mutationMode","routerType","back","go","goBack","legacyGoList","resource","action","idFromParams","goListPath","id","breadcrumb","isDeleteButtonVisible","defaultHeaderButtons","React","ListButton","RefreshButton","defaultFooterButtons","DeleteButton","SaveButton","PageHeader","Breadcrumb","import_react","import_antd","import_core","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","globalBreadcrumb","routerType","back","go","goBack","legacyGoList","resource","action","idFromParams","goListPath","id","breadcrumb","isDeleteButtonVisible","isEditButtonVisible","defaultHeaderButtons","React","ListButton","EditButton","DeleteButton","RefreshButton","PageHeader","Breadcrumb","import_react","import_antd","Text","TextField","value","rest","React","import_react","import_antd","TagField","value","rest","React","import_react","import_antd","Link","EmailField","value","rest","React","import_react","import_antd","ImageField","value","imageTitle","rest","React","import_react","import_antd","import_icons","BooleanField","value","valueLabelTrue","valueLabelFalse","trueIcon","React","falseIcon","rest","import_react","import_dayjs","import_antd","import_localizedFormat","dayjs","LocalizedFormat","defaultLocale","DateField","value","locales","dateFormat","rest","Text","React","import_react","FileField","title","src","rest","React","UrlField","import_react","import_antd","Link","UrlField","children","value","rest","React","import_react","import_antd","Text","toLocaleStringSupportsOptions","NumberField","value","locale","options","rest","number","React","import_react","import_react_markdown","import_remark_gfm","MarkdownField","value","React","ReactMarkdown","gfm","import_react","import_antd","import_dayjs","import_icons","import_core","FilterDropdown","props","setSelectedKeys","confirm","clearFilters","mapValue","selectedKeys","children","value","setValue","translate","clearFilter","onFilter","_mappedValue","mappedValue","keys","dayjs","onChange","e","changeEvent","target","childrenWithProps","React","child","import_react","import_core","import_antd","import_icons","Text","ErrorComponent","errorMessage","setErrorMessage","translate","push","go","routerType","resource","action","React","import_react","import_core","import_antd","layoutStyles","containerStyles","titleStyles","imageContainer","Text","Title","LoginPage","form","translate","authProvider","login","isLoading","CardTitle","React","titleStyles","layoutStyles","containerStyles","imageContainer","values","React","import_antd","import_icons","styles","Title","ReadyPage","React","import_antd","import_icons","styles","Title","WelcomePage","import_react","import_react","import_core","import_antd","layoutStyles","containerStyles","titleStyles","Text","Title","LoginPage","providers","registerLink","forgotPasswordLink","rememberMe","contentProps","wrapperProps","renderContent","formProps","form","translate","routerType","Link","LegacyLink","ActiveLink","authProvider","login","isLoading","CardTitle","React","titleStyles","renderProviders","provider","CardContent","containerStyles","values","layoutStyles","import_react","import_core","import_antd","Text","Title","RegisterPage","providers","loginLink","wrapperProps","contentProps","renderContent","formProps","form","translate","routerType","Link","LegacyLink","ActiveLink","authProvider","register","isLoading","CardTitle","React","titleStyles","renderProviders","provider","CardContent","containerStyles","values","layoutStyles","import_react","import_core","import_antd","Text","Title","ForgotPasswordPage","loginLink","wrapperProps","contentProps","renderContent","formProps","form","translate","routerType","Link","LegacyLink","ActiveLink","forgotPassword","isLoading","CardTitle","React","titleStyles","CardContent","containerStyles","values","layoutStyles","import_react","import_core","import_antd","Title","UpdatePasswordPage","wrapperProps","contentProps","renderContent","formProps","form","translate","authProvider","updatePassword","isLoading","CardTitle","React","titleStyles","CardContent","containerStyles","values","getFieldValue","_","value","layoutStyles","AuthPage","props","type","React","RegisterPage","ForgotPasswordPage","UpdatePasswordPage","LoginPage","import_react","import_core","import_antd","import_icons","Breadcrumb","breadcrumbProps","showHome","hideIcons","meta","_a","_b","_c","routerType","breadcrumbs","Link","LegacyLink","hasDashboard","resources","rootRouteResource","ActiveLink","React","AntdBreadcrumb","label","icon","href","import_react","import_pro_layout","import_antd","import_icons","PageHeader","children","props","backIcon","React","title","subtitle","AntdPageHeader","getValueFromEvent","event","fileList"]}
|
1
|
+
{"version":3,"sources":["../src/index.tsx","../src/hooks/form/useForm.ts","../src/hooks/form/useModalForm/useModalForm.ts","../src/hooks/form/useDrawerForm/useDrawerForm.ts","../src/hooks/form/useStepsForm/useStepsForm.ts","../src/hooks/table/useTable/useTable.ts","../src/definitions/table/index.ts","../src/hooks/table/useTable/paginationLink.tsx","../src/hooks/table/useEditableTable/useEditableTable.ts","../src/hooks/fields/useSelect/index.ts","../src/hooks/fields/useCheckboxGroup/index.ts","../src/hooks/fields/useRadioGroup/index.ts","../src/hooks/import/index.tsx","../src/hooks/list/useSimpleList/useSimpleList.ts","../src/hooks/useFileUploadState/index.ts","../src/hooks/modal/useModal/index.tsx","../src/providers/notificationProvider/index.tsx","../src/components/undoableNotification/index.tsx","../src/components/layout/index.tsx","../src/components/layout/sider/index.tsx","../src/components/layout/sider/styles.ts","../src/components/layout/header/index.tsx","../src/components/layout/title/index.tsx","../src/components/buttons/create/index.tsx","../src/components/buttons/edit/index.tsx","../src/components/buttons/delete/index.tsx","../src/components/buttons/refresh/index.tsx","../src/components/buttons/show/index.tsx","../src/components/buttons/list/index.tsx","../src/components/buttons/export/index.tsx","../src/components/buttons/save/index.tsx","../src/components/buttons/clone/index.tsx","../src/components/buttons/import/index.tsx","../src/components/crud/list/index.tsx","../src/components/crud/create/index.tsx","../src/components/crud/edit/index.tsx","../src/components/crud/show/index.tsx","../src/components/fields/text/index.tsx","../src/components/fields/tag/index.tsx","../src/components/fields/email/index.tsx","../src/components/fields/image/index.tsx","../src/components/fields/boolean/index.tsx","../src/components/fields/date/index.tsx","../src/components/fields/file/index.tsx","../src/components/fields/url/index.tsx","../src/components/fields/number/index.tsx","../src/components/fields/markdown/index.tsx","../src/components/table/components/filterDropdown/index.tsx","../src/components/pages/error/index.tsx","../src/components/pages/login/index.tsx","../src/components/pages/login/styles.ts","../src/components/pages/ready/index.tsx","../src/components/pages/welcome/index.tsx","../src/components/pages/auth/index.tsx","../src/components/pages/auth/components/login/index.tsx","../src/components/pages/auth/components/styles.ts","../src/components/pages/auth/components/register/index.tsx","../src/components/pages/auth/components/forgotPassword/index.tsx","../src/components/pages/auth/components/updatePassword/index.tsx","../src/components/breadcrumb/index.tsx","../src/components/pageHeader/index.tsx","../src/definitions/upload/index.ts"],"sourcesContent":["export * from \"./hooks\";\nexport * from \"./providers\";\nexport * from \"./components\";\n\nexport {\n getDefaultSortOrder,\n getDefaultFilter,\n mapAntdSorterToCrudSorting,\n mapAntdFilterToCrudFilter,\n} from \"./definitions/table\";\nexport { getValueFromEvent } from \"./definitions/upload\";\n","import React from \"react\";\nimport { FormInstance, FormProps, Form } from \"antd\";\nimport { useForm as useFormSF } from \"sunflower-antd\";\nimport { ButtonProps } from \"antd\";\n\nimport {\n HttpError,\n BaseRecord,\n useForm as useFormCore,\n UseFormReturnType as UseFormReturnTypeCore,\n useWarnAboutChange,\n UseFormProps as UseFormPropsCore,\n CreateResponse,\n UpdateResponse,\n pickNotDeprecated,\n} from \"@refinedev/core\";\n\nexport type UseFormProps<\n TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n> = UseFormPropsCore<TData, TError, TVariables> & {\n submitOnEnter?: boolean;\n /**\n * Shows notification when unsaved changes exist\n */\n warnWhenUnsavedChanges?: boolean;\n};\n\nexport type UseFormReturnType<\n TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n> = UseFormReturnTypeCore<TData, TError, TVariables> & {\n form: FormInstance<TVariables>;\n formProps: FormProps<TVariables>;\n saveButtonProps: ButtonProps & {\n onClick: () => void;\n };\n onFinish: (\n values?: TVariables,\n ) => Promise<CreateResponse<TData> | UpdateResponse<TData> | void>;\n};\n\n/**\n * `useForm` is used to manage forms. It uses Ant Design {@link https://ant.design/components/form/ Form} data scope management under the hood and returns the required props for managing the form actions.\n *\n * @see {@link https://refine.dev/docs/api-references/hooks/form/useForm} for more details.\n *\n * @typeParam TData - Result data of the query extends {@link https://refine.dev/docs/api-references/interfaceReferences#baserecord `BaseRecord`}\n * @typeParam TError - Custom error object that extends {@link https://refine.dev/docs/api-references/interfaceReferences#httperror `HttpError`}\n * @typeParam TVariables - Values for params. default `{}`\n *\n *\n */\nexport const useForm = <\n TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n>({\n action,\n resource,\n onMutationSuccess: onMutationSuccessProp,\n onMutationError,\n submitOnEnter = false,\n warnWhenUnsavedChanges: warnWhenUnsavedChangesProp,\n redirect,\n successNotification,\n errorNotification,\n meta,\n metaData,\n liveMode,\n liveParams,\n mutationMode,\n dataProviderName,\n onLiveEvent,\n invalidates,\n undoableTimeout,\n queryOptions,\n createMutationOptions,\n updateMutationOptions,\n id: idFromProps,\n}: UseFormProps<TData, TError, TVariables> = {}): UseFormReturnType<\n TData,\n TError,\n TVariables\n> => {\n const [formAnt] = Form.useForm();\n const formSF = useFormSF<TData, TVariables>({\n form: formAnt,\n });\n const { form } = formSF;\n\n const useFormCoreResult = useFormCore<TData, TError, TVariables>({\n onMutationSuccess: onMutationSuccessProp\n ? onMutationSuccessProp\n : undefined,\n onMutationError,\n redirect,\n action,\n resource,\n successNotification,\n errorNotification,\n meta: pickNotDeprecated(meta, metaData),\n metaData: pickNotDeprecated(meta, metaData),\n liveMode,\n liveParams,\n mutationMode,\n dataProviderName,\n onLiveEvent,\n invalidates,\n undoableTimeout,\n queryOptions,\n createMutationOptions,\n updateMutationOptions,\n id: idFromProps,\n });\n\n const { formLoading, onFinish, queryResult, id } = useFormCoreResult;\n\n const {\n warnWhenUnsavedChanges: warnWhenUnsavedChangesRefine,\n setWarnWhen,\n } = useWarnAboutChange();\n const warnWhenUnsavedChanges =\n warnWhenUnsavedChangesProp ?? warnWhenUnsavedChangesRefine;\n\n React.useEffect(() => {\n form.resetFields();\n }, [queryResult?.data?.data, id]);\n\n const onKeyUp = (event: React.KeyboardEvent<HTMLFormElement>) => {\n if (submitOnEnter && event.key === \"Enter\") {\n form.submit();\n }\n };\n\n const onValuesChange = (changeValues: object) => {\n if (changeValues && warnWhenUnsavedChanges) {\n setWarnWhen(true);\n }\n return changeValues;\n };\n\n const saveButtonProps = {\n disabled: formLoading,\n onClick: () => {\n form.submit();\n },\n };\n\n return {\n form: formSF.form,\n formProps: {\n ...formSF.formProps,\n onFinish: (values: TVariables) =>\n onFinish(values).catch((error) => error),\n onKeyUp,\n onValuesChange,\n initialValues: queryResult?.data?.data,\n },\n saveButtonProps,\n ...useFormCoreResult,\n onFinish: async (values?: TVariables) => {\n return await onFinish(values ?? formSF.form.getFieldsValue(true));\n },\n };\n};\n","import { useCallback, useEffect } from \"react\";\nimport { FormInstance, FormProps, ModalProps } from \"antd\";\nimport {\n useModalForm as useModalFormSF,\n UseModalFormConfig as UseModalFormConfigSF,\n} from \"sunflower-antd\";\n\nimport {\n useMutationMode,\n useTranslate,\n useWarnAboutChange,\n HttpError,\n UseFormProps as UseFormPropsCore,\n BaseRecord,\n LiveModeProps,\n BaseKey,\n userFriendlyResourceName,\n useResource,\n FormWithSyncWithLocationParams,\n useParsed,\n useGo,\n} from \"@refinedev/core\";\nimport { useForm, UseFormProps, UseFormReturnType } from \"../useForm\";\nimport React from \"react\";\n\nexport type useModalFormFromSFReturnType<TData, TVariables> = {\n open: boolean;\n form: FormInstance<TVariables>;\n show: (id?: BaseKey) => void;\n close: () => void;\n modalProps: ModalProps;\n formProps: FormProps<TVariables>;\n formLoading: boolean;\n defaultFormValuesLoading: boolean;\n formValues: {};\n initialValues: {};\n formResult: undefined;\n submit: (values?: TVariables) => Promise<TData>;\n /** @deprecated Please use `open` instead. */\n visible: boolean;\n};\n\ntype useModalFormConfig = {\n action: \"show\" | \"edit\" | \"create\" | \"clone\";\n};\n\nexport type UseModalFormReturnType<\n TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n> = Omit<\n UseFormReturnType<TData, TError, TVariables>,\n \"saveButtonProps\" | \"deleteButtonProps\"\n> &\n useModalFormFromSFReturnType<TData, TVariables>;\n\nexport type UseModalFormProps<\n TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n> = UseFormPropsCore<TData, TError, TVariables> &\n UseFormProps<TData, TError, TVariables> &\n UseModalFormConfigSF &\n useModalFormConfig &\n LiveModeProps &\n FormWithSyncWithLocationParams;\n/**\n * `useModalForm` hook allows you to manage a form within a modal. It returns Ant Design {@link https://ant.design/components/form/ Form} and {@link https://ant.design/components/modal/ Modal} components props.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/hooks/form/useModalForm} for more details.\n *\n * @typeParam TData - Result data of the query extends {@link https://refine.dev/docs/api-references/interfaceReferences#baserecord `BaseRecord`}\n * @typeParam TError - Custom error object that extends {@link https://refine.dev/docs/api-references/interfaceReferences#httperror `HttpError`}\n * @typeParam TVariables - Values for params. default `{}`\n *\n *\n */\nexport const useModalForm = <\n TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n>({\n mutationMode: mutationModeProp,\n syncWithLocation,\n ...rest\n}: UseModalFormProps<TData, TError, TVariables>): UseModalFormReturnType<\n TData,\n TError,\n TVariables\n> => {\n const initiallySynced = React.useRef(false);\n\n const useFormProps = useForm<TData, TError, TVariables>({\n ...rest,\n mutationMode: mutationModeProp,\n });\n\n const { form, formProps, id, setId, formLoading, mutationResult } =\n useFormProps;\n\n const { resource, action: actionFromParams } = useResource(rest.resource);\n\n const parsed = useParsed();\n const go = useGo();\n\n const action = rest.action ?? actionFromParams ?? \"\";\n\n const syncingId =\n typeof syncWithLocation === \"object\" && syncWithLocation.syncId;\n\n const syncWithLocationKey =\n typeof syncWithLocation === \"object\" && \"key\" in syncWithLocation\n ? syncWithLocation.key\n : resource && action && syncWithLocation\n ? `modal-${resource?.identifier ?? resource?.name}-${action}`\n : undefined;\n\n const translate = useTranslate();\n\n const { warnWhen, setWarnWhen } = useWarnAboutChange();\n\n const sunflowerUseModal = useModalFormSF<TData, TVariables>({\n ...rest,\n form: form,\n });\n\n const {\n visible,\n close,\n show,\n form: modalForm,\n formProps: modalFormProps,\n modalProps,\n } = sunflowerUseModal;\n\n React.useEffect(() => {\n if (initiallySynced.current === false && syncWithLocationKey) {\n const openStatus = parsed?.params?.[syncWithLocationKey]?.open;\n if (typeof openStatus === \"boolean\") {\n if (openStatus) {\n show();\n }\n } else if (typeof openStatus === \"string\") {\n if (openStatus === \"true\") {\n show();\n }\n }\n\n if (syncingId) {\n const idFromParams = parsed?.params?.[syncWithLocationKey]?.id;\n if (idFromParams) {\n setId?.(idFromParams);\n }\n }\n\n initiallySynced.current = true;\n }\n }, [syncWithLocationKey, parsed, syncingId, setId]);\n\n React.useEffect(() => {\n if (initiallySynced.current === true) {\n if (visible && syncWithLocationKey) {\n go({\n query: {\n [syncWithLocationKey]: {\n ...parsed?.params?.[syncWithLocationKey],\n open: true,\n ...(syncingId && id && { id }),\n },\n },\n options: { keepQuery: true },\n type: \"replace\",\n });\n } else if (syncWithLocationKey && !visible) {\n go({\n query: {\n [syncWithLocationKey]: undefined,\n },\n options: { keepQuery: true },\n type: \"replace\",\n });\n }\n }\n }, [id, visible, show, syncWithLocationKey, syncingId]);\n\n const { mutationMode: mutationModeContext } = useMutationMode();\n const mutationMode = mutationModeProp ?? mutationModeContext;\n\n const {\n isLoading: isLoadingMutation,\n isSuccess: isSuccessMutation,\n reset: resetMutation,\n } = mutationResult ?? {};\n\n useEffect(() => {\n if (visible && mutationMode === \"pessimistic\") {\n if (isSuccessMutation && !isLoadingMutation) {\n close();\n resetMutation?.();\n // Prevents resetting form values before closing modal in UI\n setTimeout(() => {\n form.resetFields();\n });\n }\n }\n }, [isSuccessMutation, isLoadingMutation]);\n\n const saveButtonPropsSF = {\n disabled: formLoading,\n onClick: () => {\n modalForm.submit();\n\n if (!(mutationMode === \"pessimistic\")) {\n close();\n // Prevents resetting form values before closing modal in UI\n setTimeout(() => {\n form.resetFields();\n });\n }\n },\n loading: formLoading,\n };\n\n const handleClose = useCallback(() => {\n if (warnWhen) {\n const warnWhenConfirm = window.confirm(\n translate(\n \"warnWhenUnsavedChanges\",\n \"Are you sure you want to leave? You have unsaved changes.\",\n ),\n );\n\n if (warnWhenConfirm) {\n setWarnWhen(false);\n } else {\n return;\n }\n }\n\n setId?.(undefined);\n sunflowerUseModal.close();\n }, [warnWhen]);\n\n const handleShow = useCallback((id?: BaseKey) => {\n setId?.(id);\n\n sunflowerUseModal.show();\n }, []);\n\n return {\n ...useFormProps,\n ...sunflowerUseModal,\n show: handleShow,\n close: handleClose,\n open: visible,\n formProps: {\n ...modalFormProps,\n ...useFormProps.formProps,\n onValuesChange: formProps?.onValuesChange,\n onKeyUp: formProps?.onKeyUp,\n onFinish: formProps.onFinish,\n },\n modalProps: {\n ...modalProps,\n width: \"1000px\",\n okButtonProps: saveButtonPropsSF,\n title: translate(\n `${resource?.name}.titles.${rest.action}`,\n `${userFriendlyResourceName(\n `${rest.action} ${\n resource?.meta?.label ??\n resource?.options?.label ??\n resource?.label ??\n resource?.name\n }`,\n \"singular\",\n )}`,\n ),\n okText: translate(\"buttons.save\", \"Save\"),\n cancelText: translate(\"buttons.cancel\", \"Cancel\"),\n onCancel: handleClose,\n forceRender: true,\n },\n formLoading,\n };\n};\n","import { useCallback, useEffect, useState } from \"react\";\nimport { UseFormConfig } from \"sunflower-antd\";\nimport { FormInstance, FormProps, DrawerProps, ButtonProps } from \"antd\";\nimport {\n useMutationMode,\n useTranslate,\n useWarnAboutChange,\n UseFormProps as UseFormPropsCore,\n HttpError,\n LiveModeProps,\n BaseRecord,\n FormWithSyncWithLocationParams,\n BaseKey,\n useResource,\n useParsed,\n useGo,\n} from \"@refinedev/core\";\n\nimport { useForm, UseFormProps, UseFormReturnType } from \"../useForm\";\nimport { DeleteButtonProps } from \"../../../components\";\nimport React from \"react\";\n\nexport interface UseDrawerFormConfig extends UseFormConfig {\n action: \"show\" | \"edit\" | \"create\" | \"clone\";\n}\n\nexport type UseDrawerFormProps<\n TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n> = UseFormPropsCore<TData, TError, TVariables> &\n UseFormProps<TData, TError, TVariables> &\n UseDrawerFormConfig &\n LiveModeProps &\n FormWithSyncWithLocationParams;\n\nexport type UseDrawerFormReturnType<\n TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n> = UseFormReturnType<TData, TError, TVariables> & {\n formProps: FormProps<TVariables> & {\n form: FormInstance<TVariables>;\n };\n show: (id?: BaseKey) => void;\n close: () => void;\n drawerProps: DrawerProps;\n saveButtonProps: ButtonProps;\n deleteButtonProps: DeleteButtonProps;\n formLoading: boolean;\n};\n\n/**\n * `useDrawerForm` hook allows you to manage a form within a drawer. It returns Ant Design {@link https://ant.design/components/form/ Form} and {@link https://ant.design/components/drawer/ Drawer} components props.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/hooks/form/useDrawerForm} for more details.\n *\n * @typeParam TData - Result data of the query extends {@link https://refine.dev/docs/api-references/interfaceReferences#baserecord `BaseRecord`}\n * @typeParam TError - Custom error object that extends {@link https://refine.dev/docs/api-references/interfaceReferences#httperror `HttpError`}\n * @typeParam TVariables - Values for params. default `{}`\n *\n *\n */\n\nexport const useDrawerForm = <\n TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n>({\n mutationMode: mutationModeProp,\n syncWithLocation,\n ...rest\n}: UseDrawerFormProps<TData, TError, TVariables>): UseDrawerFormReturnType<\n TData,\n TError,\n TVariables\n> => {\n const initiallySynced = React.useRef(false);\n\n const useFormProps = useForm<TData, TError, TVariables>({\n ...rest,\n mutationMode: mutationModeProp,\n });\n\n const { form, formProps, formLoading, mutationResult, id, setId } =\n useFormProps;\n\n const { resource, action: actionFromParams } = useResource(rest.resource);\n\n const parsed = useParsed();\n const go = useGo();\n\n const action = rest.action ?? actionFromParams ?? \"\";\n\n const syncingId =\n typeof syncWithLocation === \"object\" && syncWithLocation.syncId;\n\n const syncWithLocationKey =\n typeof syncWithLocation === \"object\" && \"key\" in syncWithLocation\n ? syncWithLocation.key\n : resource && action && syncWithLocation\n ? `drawer-${resource?.identifier ?? resource?.name}-${action}`\n : undefined;\n\n const [open, setOpen] = useState(false);\n\n React.useEffect(() => {\n if (initiallySynced.current === false && syncWithLocationKey) {\n const openStatus = parsed?.params?.[syncWithLocationKey]?.open;\n if (typeof openStatus === \"boolean\") {\n setOpen(openStatus);\n } else if (typeof openStatus === \"string\") {\n setOpen(openStatus === \"true\");\n }\n\n if (syncingId) {\n const idFromParams = parsed?.params?.[syncWithLocationKey]?.id;\n if (idFromParams) {\n setId?.(idFromParams);\n }\n }\n\n initiallySynced.current = true;\n }\n }, [syncWithLocationKey, parsed, syncingId, setId]);\n\n React.useEffect(() => {\n if (initiallySynced.current === true) {\n if (open && syncWithLocationKey) {\n go({\n query: {\n [syncWithLocationKey]: {\n ...parsed?.params?.[syncWithLocationKey],\n open: true,\n ...(syncingId && id && { id }),\n },\n },\n options: { keepQuery: true },\n type: \"replace\",\n });\n } else if (syncWithLocationKey && !open) {\n go({\n query: {\n [syncWithLocationKey]: undefined,\n },\n options: { keepQuery: true },\n type: \"replace\",\n });\n }\n }\n }, [id, open, syncWithLocationKey, syncingId]);\n\n const translate = useTranslate();\n\n const { warnWhen, setWarnWhen } = useWarnAboutChange();\n\n const { mutationMode: mutationModeContext } = useMutationMode();\n const mutationMode = mutationModeProp ?? mutationModeContext;\n\n const {\n isLoading: isLoadingMutation,\n isSuccess: isSuccessMutation,\n reset: resetMutation,\n } = mutationResult ?? {};\n\n useEffect(() => {\n if (open && mutationMode === \"pessimistic\") {\n if (isSuccessMutation && !isLoadingMutation) {\n setOpen(false);\n resetMutation?.();\n }\n }\n }, [isSuccessMutation, isLoadingMutation]);\n\n const saveButtonProps = {\n disabled: formLoading,\n onClick: () => {\n form?.submit();\n if (!(mutationMode === \"pessimistic\")) {\n setOpen(false);\n }\n },\n loading: formLoading,\n };\n\n const deleteButtonProps = {\n recordItemId: id,\n onSuccess: () => {\n setId?.(undefined);\n setOpen(false);\n },\n };\n\n const handleClose = useCallback(() => {\n if (warnWhen) {\n const warnWhenConfirm = window.confirm(\n translate(\n \"warnWhenUnsavedChanges\",\n \"Are you sure you want to leave? You have unsaved changes.\",\n ),\n );\n\n if (warnWhenConfirm) {\n setWarnWhen(false);\n } else {\n return;\n }\n }\n\n setOpen(false);\n setId?.(undefined);\n }, [warnWhen]);\n\n const handleShow = useCallback((id?: BaseKey) => {\n setId?.(id);\n\n setOpen(true);\n }, []);\n\n return {\n ...useFormProps,\n show: handleShow,\n close: handleClose,\n formProps: {\n form,\n ...useFormProps.formProps,\n onValuesChange: formProps?.onValuesChange,\n onKeyUp: formProps?.onKeyUp,\n onFinish: formProps.onFinish,\n },\n drawerProps: {\n width: \"500px\",\n onClose: handleClose,\n open,\n forceRender: true,\n },\n saveButtonProps,\n deleteButtonProps,\n formLoading,\n };\n};\n","import {\n useStepsForm as useStepsFormSF,\n UseStepsFormConfig,\n} from \"sunflower-antd\";\nimport { FormInstance, FormProps } from \"antd\";\n\nimport {\n HttpError,\n UseFormProps as UseFormPropsCore,\n BaseRecord,\n} from \"@refinedev/core\";\n\nimport { useForm, UseFormProps, UseFormReturnType } from \"../useForm\";\n\nexport type UseStepsFormFromSFReturnType<TData, TVariables> = {\n current: number;\n gotoStep: (step: number) => void;\n stepsProps: {\n current: number;\n onChange: (currentStep: number) => void;\n };\n formProps: FormProps<TVariables>;\n formLoading: boolean;\n defaultFormValuesLoading: boolean;\n formValues: {};\n initialValues: {};\n formResult: undefined;\n form: FormInstance<TVariables>;\n submit: (values?: TVariables) => Promise<TData>;\n};\n\nexport type UseStepsFormReturnType<\n TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n> = UseFormReturnType<TData, TError, TVariables> &\n UseStepsFormFromSFReturnType<TData, TVariables>;\n\nexport type UseStepsFormProps<\n TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n> = UseFormPropsCore<TData, TError, TVariables> &\n UseFormProps<TData, TError, TVariables> &\n UseStepsFormConfig;\n\n/**\n * `useStepsForm` hook allows you to split your form under an Ant Design based {@link https://ant.design/components/steps/ Steps} component and provides you with a few useful functionalities that will help you manage your form.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/hooks/form/useStepsForm} for more details.\n *\n * @typeParam TData - Result data of the query extends {@link https://refine.dev/docs/api-references/interfaceReferences#baserecord `BaseRecord`}\n * @typeParam TError - Custom error object that extends {@link https://refine.dev/docs/api-references/interfaceReferences#httperror `HttpError`}\n * @typeParam TVariables - Values for params. default `{}`\n *\n *\n */\nexport const useStepsForm = <\n TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n>(\n props: UseStepsFormProps<TData, TError, TVariables> = {},\n): UseStepsFormReturnType<TData, TError, TVariables> => {\n const useFormProps = useForm<TData, TError, TVariables>({ ...props });\n const { form, formProps } = useFormProps;\n\n const stepsPropsSunflower = useStepsFormSF<TData, TVariables>({\n isBackValidate: false,\n form: form,\n submit: (values: any) => {\n formProps?.onFinish?.(values);\n },\n ...props,\n });\n\n return {\n ...useFormProps,\n ...stepsPropsSunflower,\n formProps: {\n ...stepsPropsSunflower.formProps,\n ...useFormProps.formProps,\n onValuesChange: formProps?.onValuesChange,\n onKeyUp: formProps?.onKeyUp,\n },\n saveButtonProps: {\n ...useFormProps.saveButtonProps,\n onClick: () => stepsPropsSunflower.submit(),\n },\n };\n};\n","import React, { Children, createElement, Fragment } from \"react\";\nimport { Grid, FormProps, Form, TablePaginationConfig, TableProps } from \"antd\";\nimport { useForm as useFormSF } from \"sunflower-antd\";\n\nimport { SorterResult } from \"antd/lib/table/interface\";\n\nimport {\n useLiveMode,\n BaseRecord,\n CrudFilters,\n SuccessErrorNotification,\n HttpError,\n LiveModeProps,\n useTable as useTableCore,\n useTableProps as useTablePropsCore,\n useTableReturnType as useTableCoreReturnType,\n pickNotDeprecated,\n} from \"@refinedev/core\";\n\nimport {\n mapAntdSorterToCrudSorting,\n mapAntdFilterToCrudFilter,\n} from \"@definitions/table\";\nimport { PaginationLink } from \"./paginationLink\";\n\nexport type useTableProps<\n TData,\n TError,\n TSearchVariables = unknown,\n> = useTablePropsCore<TData, TError> &\n SuccessErrorNotification &\n LiveModeProps & {\n onSearch?: (\n data: TSearchVariables,\n ) => CrudFilters | Promise<CrudFilters>;\n };\n\nexport type useTableReturnType<\n TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TSearchVariables = unknown,\n> = useTableCoreReturnType<TData, TError> & {\n searchFormProps: FormProps<TSearchVariables>;\n tableProps: TableProps<TData>;\n};\n\n/**\n * By using useTable, you are able to get properties that are compatible with\n * Ant Design {@link https://ant.design/components/table/ `<Table>`} component.\n * All features such as sorting, filtering and pagination comes as out of box.\n *\n * @see {@link https://refine.dev/docs/api-references/hooks/table/useTable} for more details.\n */\n\nexport const useTable = <\n TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TSearchVariables = unknown,\n>({\n onSearch,\n initialCurrent,\n initialPageSize,\n hasPagination = true,\n pagination,\n initialSorter,\n permanentSorter,\n initialFilter,\n permanentFilter,\n defaultSetFilterBehavior,\n filters: filtersFromProp,\n sorters: sortersFromProp,\n syncWithLocation,\n resource,\n successNotification,\n errorNotification,\n queryOptions,\n liveMode: liveModeFromProp,\n onLiveEvent,\n liveParams,\n meta,\n metaData,\n dataProviderName,\n}: useTableProps<TData, TError, TSearchVariables> = {}): useTableReturnType<\n TData,\n TError,\n TSearchVariables\n> => {\n const {\n tableQueryResult,\n current,\n setCurrent,\n pageSize,\n setPageSize,\n filters,\n setFilters,\n sorters,\n setSorters,\n sorter,\n setSorter,\n createLinkForSyncWithLocation,\n pageCount,\n } = useTableCore<TData, TError>({\n permanentSorter,\n permanentFilter,\n initialCurrent,\n initialPageSize,\n pagination,\n hasPagination,\n filters: filtersFromProp,\n sorters: sortersFromProp,\n initialSorter,\n initialFilter,\n syncWithLocation,\n resource,\n defaultSetFilterBehavior,\n successNotification,\n errorNotification,\n queryOptions,\n liveMode: liveModeFromProp,\n onLiveEvent,\n liveParams,\n meta: pickNotDeprecated(meta, metaData),\n metaData: pickNotDeprecated(meta, metaData),\n dataProviderName,\n });\n const breakpoint = Grid.useBreakpoint();\n const [form] = Form.useForm<TSearchVariables>();\n const formSF = useFormSF<any, TSearchVariables>({\n form: form,\n });\n const liveMode = useLiveMode(liveModeFromProp);\n\n const hasPaginationString = hasPagination === false ? \"off\" : \"server\";\n const isPaginationEnabled =\n (pagination?.mode ?? hasPaginationString) !== \"off\";\n\n const preferredInitialFilters = pickNotDeprecated(\n filtersFromProp?.initial,\n initialFilter,\n );\n\n const { data, isFetched, isLoading } = tableQueryResult;\n\n const onChange = (\n paginationState: TablePaginationConfig,\n tableFilters: Record<\n string,\n (string | number | boolean) | (string | number | boolean)[] | null\n >,\n sorter: SorterResult<any> | SorterResult<any>[],\n ) => {\n if (tableFilters && Object.keys(tableFilters).length > 0) {\n // Map Antd:Filter -> refine:CrudFilter\n const crudFilters = mapAntdFilterToCrudFilter(\n tableFilters,\n filters,\n preferredInitialFilters,\n );\n setFilters(crudFilters);\n }\n\n if (sorter && Object.keys(sorter).length > 0) {\n // Map Antd:Sorter -> refine:CrudSorting\n const crudSorting = mapAntdSorterToCrudSorting(sorter);\n setSorters(crudSorting);\n }\n\n if (isPaginationEnabled) {\n setCurrent?.(paginationState.current || 1);\n setPageSize?.(paginationState.pageSize || 10);\n }\n };\n\n const onFinish = async (value: TSearchVariables) => {\n if (onSearch) {\n const searchFilters = await onSearch(value);\n setFilters(searchFilters);\n\n if (isPaginationEnabled) {\n setCurrent?.(1);\n }\n }\n };\n\n const antdPagination = (): false | TablePaginationConfig => {\n if (isPaginationEnabled) {\n return {\n itemRender: (page, type, element) => {\n const link = createLinkForSyncWithLocation({\n pagination: {\n pageSize,\n current: page,\n },\n sorters,\n filters,\n });\n\n if (type === \"page\") {\n return createElement(PaginationLink, {\n to: link,\n element: `${page}`,\n });\n }\n if (type === \"next\" || type === \"prev\") {\n return createElement(PaginationLink, {\n to: link,\n element: element,\n });\n }\n\n if (type === \"jump-next\" || type === \"jump-prev\") {\n const elementChildren = (element as React.ReactElement)\n ?.props?.children;\n\n return createElement(PaginationLink, {\n to: link,\n element:\n Children.count(elementChildren) > 1\n ? createElement(\n Fragment,\n {},\n elementChildren,\n )\n : elementChildren,\n });\n }\n\n return element;\n },\n pageSize,\n current,\n simple: !breakpoint.sm,\n position: !breakpoint.sm ? [\"bottomCenter\"] : [\"bottomRight\"],\n total: data?.total,\n };\n }\n\n return false;\n };\n\n return {\n searchFormProps: {\n ...formSF.formProps,\n onFinish,\n },\n tableProps: {\n dataSource: data?.data,\n loading: liveMode === \"auto\" ? isLoading : !isFetched,\n onChange,\n pagination: antdPagination(),\n scroll: { x: true },\n },\n tableQueryResult,\n sorters,\n sorter,\n filters,\n setSorters,\n setSorter,\n setFilters,\n current,\n setCurrent,\n pageSize,\n setPageSize,\n pageCount,\n createLinkForSyncWithLocation,\n };\n};\n","import {\n CrudFilters,\n CrudOperators,\n CrudSorting,\n CrudFilter,\n getDefaultFilter as getDefaultFilterCore,\n getDefaultSortOrder as getDefaultSortOrderCore,\n ConditionalFilter,\n LogicalFilter,\n} from \"@refinedev/core\";\nimport { SortOrder, SorterResult } from \"antd/lib/table/interface\";\n\nexport const getDefaultSortOrder = (\n columnName: string,\n sorter?: CrudSorting,\n): SortOrder | undefined => {\n const sort = getDefaultSortOrderCore(columnName, sorter);\n\n if (sort) {\n return `${sort}end`;\n }\n\n return undefined;\n};\n\n/**\n * @deprecated getDefaultFilter moved to `@refinedev/core`. Use from `@refinedev/core`\n */\nexport const getDefaultFilter = (\n columnName: string,\n filters?: CrudFilters,\n operatorType: CrudOperators = \"eq\",\n): CrudFilter[\"value\"] | undefined => {\n return getDefaultFilterCore(columnName, filters, operatorType);\n};\n\nexport const mapAntdSorterToCrudSorting = (\n sorter: SorterResult<any> | SorterResult<any>[],\n): CrudSorting => {\n const crudSorting: CrudSorting = [];\n if (Array.isArray(sorter)) {\n sorter\n .sort((a, b) => {\n return ((a.column?.sorter as { multiple?: number }).multiple ??\n 0) <\n ((b.column?.sorter as { multiple?: number }).multiple ?? 0)\n ? -1\n : 0;\n })\n .map((item) => {\n if (item.field && item.order) {\n const field = Array.isArray(item.field)\n ? item.field.join(\".\")\n : `${item.field}`;\n\n crudSorting.push({\n field: `${item.columnKey ?? field}`,\n order: item.order.replace(\"end\", \"\") as \"asc\" | \"desc\",\n });\n }\n });\n } else {\n if (sorter.field && sorter.order) {\n const field = Array.isArray(sorter.field)\n ? sorter.field.join(\".\")\n : `${sorter.field}`;\n\n crudSorting.push({\n field: `${sorter.columnKey ?? field}`,\n order: sorter.order.replace(\"end\", \"\") as \"asc\" | \"desc\",\n });\n }\n }\n\n return crudSorting;\n};\n\nexport const mapAntdFilterToCrudFilter = (\n tableFilters: Record<\n string,\n (string | number | boolean) | (string | number | boolean)[] | null\n >,\n prevFilters: CrudFilters,\n initialFilters?: CrudFilters,\n): CrudFilters => {\n const crudFilters: CrudFilters = [];\n const mapInitialFilter: Record<string, CrudFilter> = (\n initialFilters ?? []\n ).reduce((acc, item) => {\n const field =\n (item as ConditionalFilter).key || (item as LogicalFilter).field;\n return { ...acc, [field]: item };\n }, {});\n\n Object.keys(tableFilters).map((field) => {\n const value = tableFilters[field];\n const operator =\n prevFilters\n .filter((i) => i.operator !== \"or\")\n .find((p: any) => p.field === field)?.operator ||\n mapInitialFilter[field]?.operator;\n\n if (operator !== \"or\" && operator !== \"and\") {\n crudFilters.push({\n field,\n operator: operator ?? (Array.isArray(value) ? \"in\" : \"eq\"),\n value,\n });\n }\n });\n\n return crudFilters;\n};\n","import { useLink, useRouterContext, useRouterType } from \"@refinedev/core\";\nimport React, { ReactNode } from \"react\";\n\ninterface PaginationLinkProps {\n to: string;\n element: ReactNode;\n}\n\nexport const PaginationLink = ({ to, element }: PaginationLinkProps) => {\n const { Link: LegacyLink } = useRouterContext();\n const routerType = useRouterType();\n const Link = useLink();\n\n const ActiveLink = routerType === \"legacy\" ? LegacyLink : Link;\n\n return (\n <ActiveLink\n to={to}\n replace={false}\n onClick={(e: React.PointerEvent<HTMLButtonElement>) => {\n e.preventDefault();\n }}\n >\n {element}\n </ActiveLink>\n );\n};\n","import { useTable } from \"@hooks\";\nimport { BaseKey, BaseRecord, HttpError, UseFormProps } from \"@refinedev/core\";\nimport { ButtonProps } from \"antd\";\n\nimport { useTableProps, useTableReturnType } from \"../useTable\";\nimport { UseFormReturnType, useForm } from \"../../form/useForm\";\n\nexport type useEditableTableReturnType<\n TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n TSearchVariables = unknown,\n> = useTableReturnType<TData, TError, TSearchVariables> &\n UseFormReturnType<TData, TError, TVariables> & {\n saveButtonProps: ButtonProps & {\n onClick: () => void;\n };\n cancelButtonProps: ButtonProps & {\n onClick: () => void;\n };\n editButtonProps: (id: BaseKey) => ButtonProps & {\n onClick: () => void;\n };\n isEditing: (id: BaseKey) => boolean;\n };\n\ntype useEditableTableProps<\n TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n TSearchVariables = unknown,\n> = useTableProps<TData, TError, TSearchVariables> &\n UseFormProps<TData, TError, TVariables>;\n\n/**\n * `useEditeableTable` allows you to implement edit feature on the table with ease,\n * on top of all the features that {@link https://refine.dev/docs/api-references/hooks/table/useTable `useTable`} provides.\n * `useEditableTable` return properties that can be used on Ant Design's {@link https://ant.design/components/table/ `<Table>`}\n * and {@link https://ant.design/components/form/ `<Form>`} components.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/hooks/table/useEditableTable} for more details.\n */\nexport const useEditableTable = <\n TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n TSearchVariables = unknown,\n>(\n props: useEditableTableProps<\n TData,\n TError,\n TVariables,\n TSearchVariables\n > = {},\n): useEditableTableReturnType<TData, TError, TVariables, TSearchVariables> => {\n const table = useTable<TData, TError, TSearchVariables>({ ...props });\n const edit = useForm<TData, TError, TVariables>({\n ...props,\n action: \"edit\",\n redirect: false,\n });\n\n const { id: editId, setId, saveButtonProps } = edit;\n\n const cancelButtonProps = {\n onClick: () => {\n setId(undefined);\n },\n };\n\n const editButtonProps = (id: BaseKey) => {\n return {\n onClick: () => setId(id),\n };\n };\n\n const isEditing = (id: BaseKey) => id === editId;\n\n return {\n ...table,\n ...edit,\n saveButtonProps,\n cancelButtonProps,\n editButtonProps,\n isEditing,\n };\n};\n","import { SelectProps } from \"antd/lib/select\";\nimport { QueryObserverResult } from \"@tanstack/react-query\";\n\nimport {\n useSelect as useSelectCore,\n BaseRecord,\n GetManyResponse,\n GetListResponse,\n HttpError,\n UseSelectProps,\n} from \"@refinedev/core\";\n\nexport type UseSelectReturnType<TData extends BaseRecord = BaseRecord> = {\n selectProps: SelectProps<{ value: string; label: string }>;\n queryResult: QueryObserverResult<GetListResponse<TData>>;\n defaultValueQueryResult: QueryObserverResult<GetManyResponse<TData>>;\n};\n\n/**\n * `useSelect` hook allows you to manage an Ant Design {@link https://ant.design/components/select/ Select} component when records in a resource needs to be used as select options.\n *\n * @see {@link https://refine.dev/docs/api-references/hooks/field/useSelect} for more details.\n *\n * @typeParam TData - Result data of the query extends {@link https://refine.dev/docs/api-references/interfaceReferences#baserecord `BaseRecord`}\n *\n */\nexport const useSelect = <\n TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n>(\n props: UseSelectProps<TData, TError>,\n): UseSelectReturnType<TData> => {\n const { queryResult, defaultValueQueryResult, onSearch, options } =\n useSelectCore(props);\n\n return {\n selectProps: {\n options,\n onSearch,\n loading: defaultValueQueryResult.isFetching,\n showSearch: true,\n filterOption: false,\n },\n queryResult,\n defaultValueQueryResult,\n };\n};\n","import { QueryObserverResult } from \"@tanstack/react-query\";\n\nimport { CheckboxGroupProps } from \"antd/lib/checkbox\";\nimport {\n BaseRecord,\n GetListResponse,\n HttpError,\n UseSelectProps,\n useSelect,\n BaseKey,\n pickNotDeprecated,\n} from \"@refinedev/core\";\n\nexport type UseCheckboxGroupReturnType<TData extends BaseRecord = BaseRecord> =\n {\n checkboxGroupProps: CheckboxGroupProps;\n queryResult: QueryObserverResult<GetListResponse<TData>>;\n };\n\n/**\n * `useCheckboxGroup` hook allows you to manage an Ant Design {@link https://ant.design/components/checkbox/#components-checkbox-demo-group Checkbox.Group} component when records in a resource needs to be used as checkbox options.\n *\n * @see {@link https://refine.dev/docs/ui-framewors/antd/hooks/field/useCheckboxGroup} for more details.\n *\n * @typeParam TData - Result data of the query extends {@link https://refine.dev/docs/api-references/interfaceReferences#baserecord `BaseRecord`}\n *\n */\n\ntype UseCheckboxGroupProps<TData, TError> = Omit<\n UseSelectProps<TData, TError>,\n \"defaultValue\"\n> & {\n /**\n * Sets the default value\n */\n defaultValue?: BaseKey[];\n};\n\nexport const useCheckboxGroup = <\n TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n>({\n resource,\n sort,\n sorters,\n filters,\n optionLabel,\n optionValue,\n queryOptions,\n fetchSize,\n pagination,\n liveMode,\n defaultValue,\n onLiveEvent,\n liveParams,\n meta,\n metaData,\n dataProviderName,\n}: UseCheckboxGroupProps<TData, TError>): UseCheckboxGroupReturnType<TData> => {\n const { queryResult, options } = useSelect({\n resource,\n sort,\n sorters,\n filters,\n optionLabel,\n optionValue,\n queryOptions,\n fetchSize,\n pagination,\n liveMode,\n defaultValue,\n onLiveEvent,\n liveParams,\n meta: pickNotDeprecated(meta, metaData),\n metaData: pickNotDeprecated(meta, metaData),\n dataProviderName,\n });\n return {\n checkboxGroupProps: {\n options,\n defaultValue,\n },\n queryResult,\n };\n};\n","import { QueryObserverResult } from \"@tanstack/react-query\";\n\nimport { RadioGroupProps } from \"antd/lib/radio\";\nimport {\n BaseKey,\n BaseRecord,\n GetListResponse,\n HttpError,\n pickNotDeprecated,\n useSelect,\n UseSelectProps,\n} from \"@refinedev/core\";\n\nexport type UseRadioGroupReturnType<TData extends BaseRecord = BaseRecord> = {\n radioGroupProps: RadioGroupProps;\n queryResult: QueryObserverResult<GetListResponse<TData>>;\n};\n\n/**\n * `useRadioGroup` hook allows you to manage an Ant Design {@link https://ant.design/components/radio/#components-radio-demo-radiogroup-with-name Radio.Group} component when records in a resource needs to be used as radio options.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/hooks/field/useRadioGroup} for more details.\n *\n * @typeParam TData - Result data of the query extends {@link https://refine.dev/docs/core/interfaceReferences#baserecord `BaseRecord`}\n *\n */\n\ntype UseRadioGroupProps<TData, TError> = Omit<\n UseSelectProps<TData, TError>,\n \"defaultValue\"\n> & {\n /**\n * Sets the default value\n */\n defaultValue?: BaseKey;\n};\n\nexport const useRadioGroup = <\n TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n>({\n resource,\n sort,\n sorters,\n filters,\n optionLabel,\n optionValue,\n queryOptions,\n fetchSize,\n pagination,\n liveMode,\n defaultValue,\n onLiveEvent,\n liveParams,\n meta,\n metaData,\n dataProviderName,\n}: UseRadioGroupProps<TData, TError>): UseRadioGroupReturnType<TData> => {\n const { queryResult, options } = useSelect({\n resource,\n sort,\n sorters,\n filters,\n optionLabel,\n optionValue,\n queryOptions,\n fetchSize,\n pagination,\n liveMode,\n defaultValue,\n onLiveEvent,\n liveParams,\n meta: pickNotDeprecated(meta, metaData),\n metaData: pickNotDeprecated(meta, metaData),\n dataProviderName,\n });\n\n return {\n radioGroupProps: {\n options,\n defaultValue,\n },\n queryResult,\n };\n};\n","import React from \"react\";\nimport { ButtonProps, notification, UploadProps, Progress } from \"antd\";\nimport {\n useTranslate,\n useResource,\n BaseRecord,\n HttpError,\n useImport as useImportCore,\n UseImportReturnType,\n ImportOptions,\n pickNotDeprecated,\n} from \"@refinedev/core\";\n\n/**\n * `useImport` hook allows you to handle your csv import logic easily.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/hooks/import/useImport} for more details.\n *\n * @typeParam TItem - Interface of parsed csv data\n * @typeParam TData - Result data of the query extends {@link https://refine.dev/docs/api-references/interfaceReferences#baserecord `BaseRecord`}\n * @typeParam TError - Custom error object that extends {@link https://refine.dev/docs/api-references/interfaceReferences#httperror `HttpError`}\n * @typeParam TVariables - Values for mutation function\n *\n */\nexport const useImport = <\n TItem = any,\n TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = any,\n>({\n resource: resourceFromProp,\n resourceName,\n mapData = (item) => item as unknown as TVariables,\n paparseOptions,\n batchSize = Number.MAX_SAFE_INTEGER,\n onFinish,\n meta,\n metaData,\n dataProviderName,\n onProgress: onProgressFromProp,\n}: ImportOptions<TItem, TVariables, TData> = {}): Omit<\n UseImportReturnType<TData, TVariables, TError>,\n \"handleChange\" | \"inputProps\"\n> & {\n uploadProps: UploadProps;\n buttonProps: ButtonProps;\n} => {\n const t = useTranslate();\n\n const { resource } = useResource(resourceFromProp ?? resourceName);\n\n const { mutationResult, isLoading, handleChange } = useImportCore<\n TItem,\n TData,\n TError,\n TVariables\n >({\n resource: resource?.identifier ?? resource?.name,\n mapData,\n paparseOptions,\n batchSize,\n meta: pickNotDeprecated(meta, metaData),\n metaData: pickNotDeprecated(meta, metaData),\n dataProviderName,\n onFinish,\n onProgress:\n onProgressFromProp ??\n (({ totalAmount, processedAmount }) => {\n if (totalAmount > 0 && processedAmount > 0) {\n const description = (\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n marginTop: \"-7px\",\n }}\n >\n <Progress\n type=\"circle\"\n percent={Math.floor(\n (processedAmount / totalAmount) * 100,\n )}\n width={50}\n strokeColor=\"#1890ff\"\n status=\"normal\"\n />\n <span style={{ marginLeft: 8, width: \"100%\" }}>\n {t(\n \"notifications.importProgress\",\n {\n processed: processedAmount,\n total: totalAmount,\n },\n `Importing: ${processedAmount}/${totalAmount}`,\n )}\n </span>\n </div>\n );\n\n notification.open({\n description,\n message: null,\n key: `${resource}-import`,\n duration: 0,\n });\n\n if (processedAmount >= totalAmount) {\n }\n\n if (processedAmount === totalAmount) {\n setTimeout(() => {\n notification.destroy(`${resource}-import`);\n }, 4500);\n }\n }\n }),\n });\n\n return {\n uploadProps: {\n onChange: handleChange,\n beforeUpload: () => false,\n showUploadList: false,\n accept: \".csv\",\n },\n buttonProps: {\n type: \"default\",\n loading: isLoading,\n },\n mutationResult,\n isLoading,\n };\n};\n","import { Children, createElement, Fragment } from \"react\";\nimport { ListProps, FormProps, Form, Grid } from \"antd\";\n\nimport {\n BaseRecord,\n CrudFilters,\n SuccessErrorNotification,\n HttpError,\n LiveModeProps,\n useTable as useTableCore,\n useTableProps as useTablePropsCore,\n useTableReturnType,\n pickNotDeprecated,\n} from \"@refinedev/core\";\nimport { useLiveMode } from \"@refinedev/core\";\nimport { PaginationLink } from \"@hooks/table/useTable/paginationLink\";\nimport { PaginationConfig } from \"antd/lib/pagination\";\n\nexport type useSimpleListProps<TData, TError, TSearchVariables> =\n useTablePropsCore<TData, TError> & {\n onSearch?: (\n data: TSearchVariables,\n ) => CrudFilters | Promise<CrudFilters>;\n } & SuccessErrorNotification &\n LiveModeProps;\n\nexport type useSimpleListReturnType<\n TData extends BaseRecord = BaseRecord,\n TSearchVariables = unknown,\n> = Omit<useTableReturnType<TData>, \"tableQueryResult\"> & {\n listProps: ListProps<TData>;\n queryResult: useTableReturnType[\"tableQueryResult\"];\n searchFormProps: FormProps<TSearchVariables>;\n};\n\n/**\n * By using `useSimpleList` you get props for your records from API in accordance with Ant Design {@link https://ant.design/components/list/ `<List>`} component.\n * All features such as pagination, sorting come out of the box.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/hooks/list/useSimpleList} for more details.\n *\n * @typeParam TData - Result data of the query extends {@link https://refine.dev/docs/api-references/interfaceReferences#baserecord `BaseRecord`}\n * @typeParam TError - Custom error object that extends {@link https://refine.dev/docs/api-references/interfaceReferences#httperror `HttpError`}\n * @typeParam TSearchVariables - Antd form values\n *\n */\n\nexport const useSimpleList = <\n TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TSearchVariables = unknown,\n>({\n resource,\n initialCurrent,\n initialPageSize,\n pagination,\n hasPagination = true,\n initialSorter,\n permanentSorter,\n initialFilter,\n permanentFilter,\n defaultSetFilterBehavior,\n filters: filtersFromProp,\n sorters: sortersFromProp,\n onSearch,\n queryOptions,\n syncWithLocation,\n successNotification,\n errorNotification,\n liveMode: liveModeFromProp,\n onLiveEvent,\n liveParams,\n meta,\n metaData,\n dataProviderName,\n}: useSimpleListProps<\n TData,\n TError,\n TSearchVariables\n> = {}): useSimpleListReturnType<TData, TSearchVariables> => {\n const {\n sorters,\n sorter,\n filters,\n current,\n pageSize,\n pageCount,\n setFilters,\n setCurrent,\n setPageSize,\n setSorter,\n setSorters,\n createLinkForSyncWithLocation,\n tableQueryResult: queryResult,\n } = useTableCore({\n resource,\n initialSorter,\n permanentSorter,\n initialFilter,\n permanentFilter,\n filters: filtersFromProp,\n sorters: sortersFromProp,\n defaultSetFilterBehavior,\n initialCurrent,\n initialPageSize,\n queryOptions,\n successNotification,\n errorNotification,\n liveMode: liveModeFromProp,\n onLiveEvent,\n liveParams,\n meta: pickNotDeprecated(meta, metaData),\n metaData: pickNotDeprecated(meta, metaData),\n syncWithLocation,\n dataProviderName,\n pagination,\n hasPagination,\n });\n\n const hasPaginationString = hasPagination === false ? \"off\" : \"server\";\n const isPaginationEnabled =\n (pagination?.mode ?? hasPaginationString) !== \"off\";\n\n const breakpoint = Grid.useBreakpoint();\n\n const liveMode = useLiveMode(liveModeFromProp);\n\n const [form] = Form.useForm<TSearchVariables>();\n\n const { data, isFetched, isLoading } = queryResult;\n\n const onChange = (page: number, pageSize?: number): void => {\n if (isPaginationEnabled) {\n setCurrent(page);\n setPageSize(pageSize || 10);\n }\n };\n\n const onFinish = async (values: TSearchVariables) => {\n if (onSearch) {\n const searchFilters = await onSearch(values);\n if (isPaginationEnabled) {\n setCurrent?.(1);\n }\n return setFilters(searchFilters);\n }\n };\n\n const antdPagination = (): false | PaginationConfig => {\n if (isPaginationEnabled) {\n return {\n itemRender: (page, type, element) => {\n const link = createLinkForSyncWithLocation({\n pagination: {\n pageSize,\n current: page,\n },\n sorters,\n filters,\n });\n\n if (type === \"page\") {\n return createElement(PaginationLink, {\n to: link,\n element: `${page}`,\n });\n }\n if (type === \"next\" || type === \"prev\") {\n return createElement(PaginationLink, {\n to: link,\n element: element,\n });\n }\n\n if (type === \"jump-next\" || type === \"jump-prev\") {\n const elementChildren = (element as React.ReactElement)\n ?.props?.children;\n\n return createElement(PaginationLink, {\n to: link,\n element:\n Children.count(elementChildren) > 1\n ? createElement(\n Fragment,\n {},\n elementChildren,\n )\n : elementChildren,\n });\n }\n\n return element;\n },\n pageSize,\n current,\n simple: !breakpoint.sm,\n total: data?.total,\n onChange,\n };\n }\n\n return false;\n };\n\n return {\n searchFormProps: {\n form,\n onFinish,\n },\n listProps: {\n dataSource: data?.data,\n loading: liveMode === \"auto\" ? isLoading : !isFetched,\n pagination: antdPagination(),\n },\n queryResult,\n filters,\n setFilters,\n sorter,\n setSorter,\n sorters,\n setSorters,\n current,\n setCurrent,\n pageSize,\n setPageSize,\n pageCount,\n createLinkForSyncWithLocation,\n };\n};\n","import { useCallback, useMemo, useState } from \"react\";\nimport { UploadChangeParam } from \"antd/lib/upload\";\n\nexport type UseFileUploadStateType = () => {\n isLoading: boolean;\n onChange: (info: UploadChangeParam) => void;\n};\n\nexport const useFileUploadState: UseFileUploadStateType = () => {\n const [isLoading, setIsloading] = useState(false);\n\n const onChange = useCallback((info: UploadChangeParam) => {\n const fileListLoadings = mapStatusToLoading(info.fileList);\n\n if (fileListLoadings.includes(true)) {\n setIsloading(true);\n } else {\n setIsloading(false);\n }\n }, []);\n\n return useMemo(() => ({ isLoading, onChange }), [isLoading]);\n};\n\nconst mapStatusToLoading = (files: UploadChangeParam[\"fileList\"]) => {\n return files.map((file) => {\n switch (file.status) {\n case \"uploading\":\n return true;\n default:\n return false;\n }\n });\n};\n","import { ModalProps } from \"antd\";\nimport {\n useModal as useCoreModal,\n useModalReturnType as useCoreModelReturnType,\n} from \"@refinedev/core\";\n\nexport type useModalReturnType = {\n modalProps: ModalProps;\n} & Omit<useCoreModelReturnType, \"visible\">;\n\nexport type useModalProps = {\n /**\n * Default props for Ant Design {@link https://ant.design/components/modal/ `<Modal>`} component.\n */\n modalProps?: ModalProps;\n};\n\n/**\n * By using `useModal` you get props for your records from API in accordance with Ant Design {@link https://ant.design/components/modal/ `<Modal>`} component.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/hooks/ui/useModal} for more details.\n */\nexport const useModal = ({\n modalProps = {},\n}: useModalProps = {}): useModalReturnType => {\n const { show, close, visible } = useCoreModal({\n defaultVisible: modalProps.open,\n });\n\n return {\n modalProps: {\n ...modalProps,\n onCancel: (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => {\n modalProps.onCancel?.(e);\n close();\n },\n open: visible,\n visible,\n },\n show,\n close,\n };\n};\n","import React from \"react\";\nimport { NotificationProvider } from \"@refinedev/core\";\nimport { notification } from \"antd\";\n\nimport { UndoableNotification } from \"@components/undoableNotification\";\n\nexport const notificationProvider: NotificationProvider = {\n open: ({\n key,\n message,\n description,\n type,\n cancelMutation,\n undoableTimeout,\n }) => {\n if (type === \"progress\") {\n notification.open({\n key,\n description: (\n <UndoableNotification\n notificationKey={key}\n message={message}\n cancelMutation={cancelMutation}\n undoableTimeout={undoableTimeout}\n />\n ),\n message: null,\n duration: 0,\n closeIcon: <></>,\n });\n } else {\n notification.open({\n key,\n description: message,\n message: description ?? null,\n type,\n });\n }\n },\n close: (key) => notification.destroy(key),\n};\n","import React from \"react\";\nimport { Button, notification, Progress } from \"antd\";\nimport { OpenNotificationParams } from \"@refinedev/core\";\nimport { UndoOutlined } from \"@ant-design/icons\";\n\nexport type UndoableNotificationProps = {\n notificationKey: OpenNotificationParams[\"key\"];\n message: OpenNotificationParams[\"message\"];\n cancelMutation: OpenNotificationParams[\"cancelMutation\"];\n undoableTimeout: OpenNotificationParams[\"undoableTimeout\"];\n};\n\nexport const UndoableNotification: React.FC<UndoableNotificationProps> = ({\n notificationKey,\n message,\n cancelMutation,\n undoableTimeout,\n}) => (\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n marginTop: \"-7px\",\n }}\n >\n <Progress\n type=\"circle\"\n percent={(undoableTimeout ?? 0) * 20}\n format={(time) => time && time / 20}\n width={50}\n strokeColor=\"#1890ff\"\n status=\"normal\"\n />\n <span style={{ marginLeft: 8, width: \"100%\" }}>{message}</span>\n <Button\n style={{ flexShrink: 0 }}\n onClick={() => {\n cancelMutation?.();\n notification.destroy(notificationKey ?? \"\");\n }}\n disabled={undoableTimeout === 0}\n icon={<UndoOutlined />}\n ></Button>\n </div>\n);\n","import React from \"react\";\nimport { Grid, Layout as AntdLayout } from \"antd\";\n\nimport { Sider as DefaultSider } from \"./sider\";\nimport { Header as DefaultHeader } from \"./header\";\nimport { RefineLayoutLayoutProps } from \"./types\";\n\nexport const Layout: React.FC<RefineLayoutLayoutProps> = ({\n children,\n Header,\n Sider,\n Title,\n Footer,\n OffLayoutArea,\n}) => {\n const breakpoint = Grid.useBreakpoint();\n const SiderToRender = Sider ?? DefaultSider;\n const HeaderToRender = Header ?? DefaultHeader;\n const isSmall = typeof breakpoint.sm === \"undefined\" ? true : breakpoint.sm;\n\n return (\n <AntdLayout style={{ minHeight: \"100vh\" }}>\n <SiderToRender Title={Title} />\n <AntdLayout>\n <HeaderToRender />\n <AntdLayout.Content>\n <div\n style={{\n minHeight: 360,\n padding: isSmall ? 24 : 12,\n }}\n >\n {children}\n </div>\n {OffLayoutArea && <OffLayoutArea />}\n </AntdLayout.Content>\n {Footer && <Footer />}\n </AntdLayout>\n </AntdLayout>\n );\n};\n","import React, { useState } from \"react\";\nimport { Layout, Menu, Grid, ConfigProvider, Drawer, Button } from \"antd\";\nimport {\n DashboardOutlined,\n LogoutOutlined,\n UnorderedListOutlined,\n BarsOutlined,\n} from \"@ant-design/icons\";\nimport {\n useTranslate,\n useLogout,\n useTitle,\n CanAccess,\n ITreeMenu,\n useIsExistAuthentication,\n useRouterContext,\n useMenu,\n useRefineContext,\n useLink,\n useRouterType,\n useActiveAuthProvider,\n pickNotDeprecated,\n} from \"@refinedev/core\";\n\nimport { Title as DefaultTitle } from \"@components\";\n\nimport { drawerButtonStyles } from \"./styles\";\nimport { RefineLayoutSiderProps } from \"../types\";\n\nconst { SubMenu } = Menu;\n\nexport const Sider: React.FC<RefineLayoutSiderProps> = ({\n Title: TitleFromProps,\n render,\n meta,\n}) => {\n const [collapsed, setCollapsed] = useState<boolean>(false);\n const [drawerOpen, setDrawerOpen] = useState<boolean>(false);\n const isExistAuthentication = useIsExistAuthentication();\n const routerType = useRouterType();\n const NewLink = useLink();\n const { Link: LegacyLink } = useRouterContext();\n const Link = routerType === \"legacy\" ? LegacyLink : NewLink;\n const TitleFromContext = useTitle();\n const translate = useTranslate();\n const { menuItems, selectedKey, defaultOpenKeys } = useMenu({ meta });\n const breakpoint = Grid.useBreakpoint();\n const { hasDashboard } = useRefineContext();\n const authProvider = useActiveAuthProvider();\n const { mutate: mutateLogout } = useLogout({\n v3LegacyAuthProviderCompatible: Boolean(authProvider?.isLegacy),\n });\n\n const isMobile =\n typeof breakpoint.lg === \"undefined\" ? false : !breakpoint.lg;\n\n const RenderToTitle = TitleFromProps ?? TitleFromContext ?? DefaultTitle;\n\n const renderTreeView = (tree: ITreeMenu[], selectedKey?: string) => {\n return tree.map((item: ITreeMenu) => {\n const {\n icon,\n label,\n route,\n key,\n name,\n children,\n parentName,\n meta,\n options,\n } = item;\n\n if (children.length > 0) {\n return (\n <CanAccess\n key={item.key}\n resource={name.toLowerCase()}\n action=\"list\"\n params={{\n resource: item,\n }}\n >\n <SubMenu\n key={item.key}\n icon={icon ?? <UnorderedListOutlined />}\n title={label}\n >\n {renderTreeView(children, selectedKey)}\n </SubMenu>\n </CanAccess>\n );\n }\n const isSelected = key === selectedKey;\n const isRoute = !(\n pickNotDeprecated(meta?.parent, options?.parent, parentName) !==\n undefined && children.length === 0\n );\n return (\n <CanAccess\n key={item.key}\n resource={name.toLowerCase()}\n action=\"list\"\n params={{\n resource: item,\n }}\n >\n <Menu.Item\n key={item.key}\n style={{\n fontWeight: isSelected ? \"bold\" : \"normal\",\n }}\n icon={icon ?? (isRoute && <UnorderedListOutlined />)}\n >\n <Link to={route ?? \"\"}>{label}</Link>\n {!collapsed && isSelected && (\n <div className=\"ant-menu-tree-arrow\" />\n )}\n </Menu.Item>\n </CanAccess>\n );\n });\n };\n\n const logout = isExistAuthentication && (\n <Menu.Item\n key=\"logout\"\n onClick={() => mutateLogout()}\n icon={<LogoutOutlined />}\n >\n {translate(\"buttons.logout\", \"Logout\")}\n </Menu.Item>\n );\n\n const dashboard = hasDashboard ? (\n <Menu.Item\n key=\"dashboard\"\n style={{\n fontWeight: selectedKey === \"/\" ? \"bold\" : \"normal\",\n }}\n icon={<DashboardOutlined />}\n >\n <Link to=\"/\">{translate(\"dashboard.title\", \"Dashboard\")}</Link>\n {!collapsed && selectedKey === \"/\" && (\n <div className=\"ant-menu-tree-arrow\" />\n )}\n </Menu.Item>\n ) : null;\n\n const items = renderTreeView(menuItems, selectedKey);\n\n const renderSider = () => {\n if (render) {\n return render({\n dashboard,\n items,\n logout,\n collapsed,\n });\n }\n return (\n <>\n {dashboard}\n {items}\n {logout}\n </>\n );\n };\n\n const renderMenu = () => {\n return (\n <>\n <Menu\n theme=\"dark\"\n selectedKeys={selectedKey ? [selectedKey] : []}\n defaultOpenKeys={defaultOpenKeys}\n mode=\"inline\"\n onClick={() => {\n setDrawerOpen(false);\n if (!breakpoint.lg) {\n setCollapsed(true);\n }\n }}\n >\n {renderSider()}\n </Menu>\n </>\n );\n };\n\n const renderDrawerSider = () => {\n return (\n <>\n <Drawer\n open={drawerOpen}\n onClose={() => setDrawerOpen(false)}\n placement=\"left\"\n closable={false}\n width={200}\n bodyStyle={{\n padding: 0,\n }}\n maskClosable={true}\n >\n <Layout>\n <Layout.Sider\n style={{ height: \"100vh\", overflow: \"hidden\" }}\n >\n <RenderToTitle collapsed={false} />\n {renderMenu()}\n </Layout.Sider>\n </Layout>\n </Drawer>\n <Button\n style={drawerButtonStyles}\n size=\"large\"\n onClick={() => setDrawerOpen(true)}\n icon={<BarsOutlined />}\n ></Button>\n </>\n );\n };\n\n const renderContent = () => {\n if (isMobile) {\n return renderDrawerSider();\n }\n\n return (\n <Layout.Sider\n collapsible\n collapsed={collapsed}\n onCollapse={(collapsed: boolean): void =>\n setCollapsed(collapsed)\n }\n collapsedWidth={80}\n breakpoint=\"lg\"\n >\n <RenderToTitle collapsed={collapsed} />\n {renderMenu()}\n </Layout.Sider>\n );\n };\n\n return (\n <ConfigProvider\n theme={{\n components: {\n Menu: {\n colorItemBg: \"transparent\",\n colorItemText: \"#fff\",\n colorItemTextSelected: \"#fff\",\n colorItemBgSelected: \"transparent\",\n colorItemTextHover: \"#fff\",\n },\n },\n }}\n >\n {renderContent()}\n </ConfigProvider>\n );\n};\n","import { CSSProperties } from \"react\";\n\nexport const drawerButtonStyles: CSSProperties = {\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0,\n position: \"fixed\",\n top: 64,\n zIndex: 999,\n};\n","import { 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 { Button } from \"antd\";\nimport { PlusSquareOutlined } from \"@ant-design/icons\";\nimport {\n useNavigation,\n useTranslate,\n useCan,\n useResource,\n useRouterContext,\n useRouterType,\n useLink,\n} from \"@refinedev/core\";\nimport { RefineButtonTestIds } from \"@refinedev/ui-types\";\n\nimport { CreateButtonProps } from \"../types\";\n\n/**\n * <CreateButton> uses Ant Design's {@link https://ant.design/components/button/ `<Button> component`}.\n * It uses the {@link https://refine.dev/docs/core/hooks/navigation/useNavigation#create `create`} method from {@link https://refine.dev/docs/core/hooks/navigation/useNavigation `useNavigation`} under the hood.\n * It can be useful to redirect the app to the create page route of resource}.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/buttons/create-button} for more details.\n */\nexport const CreateButton: React.FC<CreateButtonProps> = ({\n resource: resourceNameFromProps,\n resourceNameOrRouteName: propResourceNameOrRouteName,\n hideText = false,\n accessControl,\n meta,\n children,\n onClick,\n ...rest\n}) => {\n const accessControlEnabled = accessControl?.enabled ?? true;\n const hideIfUnauthorized = accessControl?.hideIfUnauthorized ?? false;\n const translate = useTranslate();\n const routerType = useRouterType();\n const Link = useLink();\n const { Link: LegacyLink } = useRouterContext();\n\n const ActiveLink = routerType === \"legacy\" ? LegacyLink : Link;\n\n const { createUrl: generateCreateUrl } = useNavigation();\n\n const { resource } = useResource(\n resourceNameFromProps ?? propResourceNameOrRouteName,\n );\n\n const { data } = useCan({\n resource: resource?.name,\n action: \"create\",\n queryOptions: {\n enabled: accessControlEnabled,\n },\n params: {\n resource,\n },\n });\n\n const createButtonDisabledTitle = () => {\n if (data?.can) return \"\";\n else if (data?.reason) return data.reason;\n else\n return translate(\n \"buttons.notAccessTitle\",\n \"You don't have permission to access\",\n );\n };\n\n const createUrl = resource ? generateCreateUrl(resource, meta) : \"\";\n\n if (accessControlEnabled && hideIfUnauthorized && !data?.can) {\n return null;\n }\n\n return (\n <ActiveLink\n to={createUrl}\n replace={false}\n onClick={(e: React.PointerEvent<HTMLButtonElement>) => {\n if (data?.can === false) {\n e.preventDefault();\n return;\n }\n if (onClick) {\n e.preventDefault();\n onClick(e);\n }\n }}\n >\n <Button\n icon={<PlusSquareOutlined />}\n disabled={data?.can === false}\n title={createButtonDisabledTitle()}\n data-testid={RefineButtonTestIds.CreateButton}\n {...rest}\n >\n {!hideText &&\n (children ?? translate(\"buttons.create\", \"Create\"))}\n </Button>\n </ActiveLink>\n );\n};\n","import React from \"react\";\nimport { Button } from \"antd\";\nimport { EditOutlined } from \"@ant-design/icons\";\nimport {\n useCan,\n useNavigation,\n useTranslate,\n useResource,\n useRouterContext,\n useRouterType,\n useLink,\n} from \"@refinedev/core\";\nimport { RefineButtonTestIds } from \"@refinedev/ui-types\";\n\nimport { EditButtonProps } from \"../types\";\n\n/**\n * `<EditButton>` uses Ant Design's {@link https://ant.design/components/button/ `<Button>`} component.\n * It uses the {@link https://refine.dev/docs/core/hooks/navigation/useNavigation#edit `edit`} method from {@link https://refine.dev/docs/core/hooks/navigation/useNavigation `useNavigation`} under the hood.\n * It can be useful when redirecting the app to the edit page with the record id route of resource}.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/buttons/edit-button} for more details.\n */\nexport const EditButton: React.FC<EditButtonProps> = ({\n resource: resourceNameFromProps,\n resourceNameOrRouteName: propResourceNameOrRouteName,\n recordItemId,\n hideText = false,\n accessControl,\n meta,\n children,\n onClick,\n ...rest\n}) => {\n const accessControlEnabled = accessControl?.enabled ?? true;\n const hideIfUnauthorized = accessControl?.hideIfUnauthorized ?? false;\n const translate = useTranslate();\n\n const routerType = useRouterType();\n const Link = useLink();\n const { Link: LegacyLink } = useRouterContext();\n\n const ActiveLink = routerType === \"legacy\" ? LegacyLink : Link;\n\n const { editUrl: generateEditUrl } = useNavigation();\n\n const { id, resource } = useResource(\n resourceNameFromProps ?? propResourceNameOrRouteName,\n );\n\n const { data } = useCan({\n resource: resource?.name,\n action: \"edit\",\n params: { id: recordItemId ?? id, resource },\n queryOptions: {\n enabled: accessControlEnabled,\n },\n });\n\n const createButtonDisabledTitle = () => {\n if (data?.can) return \"\";\n else if (data?.reason) return data.reason;\n else\n return translate(\n \"buttons.notAccessTitle\",\n \"You don't have permission to access\",\n );\n };\n\n const editUrl =\n resource && (recordItemId ?? id)\n ? generateEditUrl(resource, recordItemId! ?? id!, meta)\n : \"\";\n\n if (accessControlEnabled && hideIfUnauthorized && !data?.can) {\n return null;\n }\n\n return (\n <ActiveLink\n to={editUrl}\n replace={false}\n onClick={(e: React.PointerEvent<HTMLButtonElement>) => {\n if (data?.can === false) {\n e.preventDefault();\n return;\n }\n if (onClick) {\n e.preventDefault();\n onClick(e);\n }\n }}\n >\n <Button\n icon={<EditOutlined />}\n disabled={data?.can === false}\n title={createButtonDisabledTitle()}\n data-testid={RefineButtonTestIds.EditButton}\n {...rest}\n >\n {!hideText && (children ?? translate(\"buttons.edit\", \"Edit\"))}\n </Button>\n </ActiveLink>\n );\n};\n","import React from \"react\";\nimport { Button, Popconfirm } from \"antd\";\nimport { DeleteOutlined } from \"@ant-design/icons\";\nimport {\n useDelete,\n useTranslate,\n useMutationMode,\n useCan,\n useResource,\n pickNotDeprecated,\n} from \"@refinedev/core\";\nimport { RefineButtonTestIds } from \"@refinedev/ui-types\";\n\nimport { DeleteButtonProps } from \"../types\";\n\n/**\n * `<DeleteButton>` uses Ant Design's {@link https://ant.design/components/button/ `<Button>`} and {@link https://ant.design/components/button/ `<Popconfirm>`} components.\n * When you try to delete something, a pop-up shows up and asks for confirmation. When confirmed it executes the `useDelete` method provided by your `dataProvider`.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/buttons/delete-button} for more details.\n */\nexport const DeleteButton: React.FC<DeleteButtonProps> = ({\n resource: resourceNameFromProps,\n resourceNameOrRouteName: propResourceNameOrRouteName,\n recordItemId,\n onSuccess,\n mutationMode: mutationModeProp,\n children,\n successNotification,\n errorNotification,\n hideText = false,\n accessControl,\n metaData,\n meta,\n dataProviderName,\n confirmTitle,\n confirmOkText,\n confirmCancelText,\n invalidates,\n ...rest\n}) => {\n const accessControlEnabled = accessControl?.enabled ?? true;\n const hideIfUnauthorized = accessControl?.hideIfUnauthorized ?? false;\n const translate = useTranslate();\n\n const { id, resource } = useResource(\n resourceNameFromProps ?? propResourceNameOrRouteName,\n );\n\n const { mutationMode: mutationModeContext } = useMutationMode();\n\n const mutationMode = mutationModeProp ?? mutationModeContext;\n\n const { mutate, isLoading, variables } = useDelete();\n\n const { data } = useCan({\n resource: resource?.name,\n action: \"delete\",\n params: { id: recordItemId ?? id, resource },\n queryOptions: {\n enabled: accessControlEnabled,\n },\n });\n\n if (accessControlEnabled && hideIfUnauthorized && !data?.can) {\n return null;\n }\n\n return (\n <Popconfirm\n key=\"delete\"\n okText={confirmOkText ?? translate(\"buttons.delete\", \"Delete\")}\n cancelText={\n confirmCancelText ?? translate(\"buttons.cancel\", \"Cancel\")\n }\n okType=\"danger\"\n title={\n confirmTitle ?? translate(\"buttons.confirm\", \"Are you sure?\")\n }\n okButtonProps={{ disabled: isLoading }}\n onConfirm={(): void => {\n if ((recordItemId ?? id) && resource?.name) {\n mutate(\n {\n id: recordItemId ?? id ?? \"\",\n resource: resource?.name,\n mutationMode,\n successNotification,\n errorNotification,\n meta: pickNotDeprecated(meta, metaData),\n metaData: pickNotDeprecated(meta, metaData),\n dataProviderName,\n invalidates,\n },\n {\n onSuccess: (value) => {\n onSuccess && onSuccess(value);\n },\n },\n );\n }\n }}\n disabled={\n typeof rest?.disabled !== \"undefined\"\n ? rest.disabled\n : data?.can === false\n }\n >\n <Button\n danger\n loading={(recordItemId ?? id) === variables?.id && isLoading}\n icon={<DeleteOutlined />}\n disabled={data?.can === false}\n data-testid={RefineButtonTestIds.DeleteButton}\n {...rest}\n >\n {!hideText &&\n (children ?? translate(\"buttons.delete\", \"Delete\"))}\n </Button>\n </Popconfirm>\n );\n};\n","import React from \"react\";\nimport { Button } from \"antd\";\nimport { RedoOutlined } from \"@ant-design/icons\";\nimport {\n useOne,\n useTranslate,\n useResource,\n pickNotDeprecated,\n} from \"@refinedev/core\";\nimport { RefineButtonTestIds } from \"@refinedev/ui-types\";\n\nimport { RefreshButtonProps } from \"../types\";\n\n/**\n * `<RefreshButton>` uses Ant Design's {@link https://ant.design/components/button/ `<Button>`} component\n * to update the data shown on the page via the {@link https://refine.dev/docs/core/hooks/data/useOne `useOne`} method provided by your dataProvider.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/buttons/refresh-button} for more details.\n */\nexport const RefreshButton: React.FC<RefreshButtonProps> = ({\n resource: resourceNameFromProps,\n resourceNameOrRouteName: propResourceNameOrRouteName,\n recordItemId,\n hideText = false,\n meta,\n metaData,\n dataProviderName,\n children,\n onClick,\n ...rest\n}) => {\n const translate = useTranslate();\n\n const { resource, id } = useResource(\n resourceNameFromProps ?? propResourceNameOrRouteName,\n );\n\n const { refetch, isFetching } = useOne({\n resource: resource?.name,\n id: recordItemId ?? id,\n queryOptions: {\n enabled: false,\n },\n meta: pickNotDeprecated(meta, metaData),\n metaData: pickNotDeprecated(meta, metaData),\n liveMode: \"off\",\n dataProviderName,\n });\n\n return (\n <Button\n // TODO: fix any type\n onClick={(e) => (onClick ? onClick(e as any) : refetch())}\n icon={<RedoOutlined spin={isFetching} />}\n data-testid={RefineButtonTestIds.RefreshButton}\n {...rest}\n >\n {!hideText && (children ?? translate(\"buttons.refresh\", \"Refresh\"))}\n </Button>\n );\n};\n","import React from \"react\";\nimport { Button } from \"antd\";\nimport { EyeOutlined } from \"@ant-design/icons\";\nimport {\n useCan,\n useNavigation,\n useTranslate,\n useResource,\n useRouterContext,\n useRouterType,\n useLink,\n} from \"@refinedev/core\";\nimport { RefineButtonTestIds } from \"@refinedev/ui-types\";\n\nimport { ShowButtonProps } from \"../types\";\n\n/**\n * `<ShowButton>` uses Ant Design's {@link https://ant.design/components/button/ `<Button>`} component.\n * It uses the {@link https://refine.dev/docs/core/hooks/navigation/useNavigation#show `show`} method from {@link https://refine.dev/docs/core/hooks/navigation/useNavigation `useNavigation`} under the hood.\n * It can be useful when redirecting the app to the show page with the record id route of resource.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/buttons/show-button} for more details.\n */\nexport const ShowButton: React.FC<ShowButtonProps> = ({\n resource: resourceNameFromProps,\n resourceNameOrRouteName: propResourceNameOrRouteName,\n recordItemId,\n hideText = false,\n accessControl,\n meta,\n children,\n onClick,\n ...rest\n}) => {\n const accessControlEnabled = accessControl?.enabled ?? true;\n const hideIfUnauthorized = accessControl?.hideIfUnauthorized ?? false;\n const { showUrl: generateShowUrl } = useNavigation();\n const routerType = useRouterType();\n const Link = useLink();\n const { Link: LegacyLink } = useRouterContext();\n\n const ActiveLink = routerType === \"legacy\" ? LegacyLink : Link;\n\n const translate = useTranslate();\n\n const { id, resource } = useResource(\n resourceNameFromProps ?? propResourceNameOrRouteName,\n );\n\n const { data } = useCan({\n resource: resource?.name,\n action: \"show\",\n params: { id: recordItemId ?? id, resource },\n queryOptions: {\n enabled: accessControlEnabled,\n },\n });\n\n const createButtonDisabledTitle = () => {\n if (data?.can) return \"\";\n else if (data?.reason) return data.reason;\n else\n return translate(\n \"buttons.notAccessTitle\",\n \"You don't have permission to access\",\n );\n };\n\n const showUrl =\n resource && (recordItemId || id)\n ? generateShowUrl(resource, recordItemId! ?? id!, meta)\n : \"\";\n\n if (accessControlEnabled && hideIfUnauthorized && !data?.can) {\n return null;\n }\n\n return (\n <ActiveLink\n to={showUrl}\n replace={false}\n onClick={(e: React.PointerEvent<HTMLButtonElement>) => {\n if (data?.can === false) {\n e.preventDefault();\n return;\n }\n if (onClick) {\n e.preventDefault();\n onClick(e);\n }\n }}\n >\n <Button\n icon={<EyeOutlined />}\n disabled={data?.can === false}\n title={createButtonDisabledTitle()}\n data-testid={RefineButtonTestIds.ShowButton}\n {...rest}\n >\n {!hideText && (children ?? translate(\"buttons.show\", \"Show\"))}\n </Button>\n </ActiveLink>\n );\n};\n","import React from \"react\";\nimport { Button } from \"antd\";\nimport { BarsOutlined } from \"@ant-design/icons\";\nimport {\n useCan,\n useNavigation,\n useTranslate,\n userFriendlyResourceName,\n useResource,\n useRouterContext,\n useRouterType,\n useLink,\n pickNotDeprecated,\n} from \"@refinedev/core\";\nimport { RefineButtonTestIds } from \"@refinedev/ui-types\";\n\nimport { ListButtonProps } from \"../types\";\n\n/**\n * `<ListButton>` is using Ant Design's {@link https://ant.design/components/button/ `<Button>`} component.\n * It uses the {@link https://refine.dev/docs/core/hooks/navigation/useNavigation#list `list`} method from {@link https://refine.dev/docs/core/hooks/navigation/useNavigation `useNavigation`} under the hood.\n * It can be useful when redirecting the app to the list page route of resource}.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/buttons/list-button} for more details.\n */\nexport const ListButton: React.FC<ListButtonProps> = ({\n resource: resourceNameFromProps,\n resourceNameOrRouteName: propResourceNameOrRouteName,\n hideText = false,\n accessControl,\n meta,\n children,\n onClick,\n ...rest\n}) => {\n const accessControlEnabled = accessControl?.enabled ?? true;\n const hideIfUnauthorized = accessControl?.hideIfUnauthorized ?? false;\n const { listUrl: generateListUrl } = useNavigation();\n const routerType = useRouterType();\n const Link = useLink();\n const { Link: LegacyLink } = useRouterContext();\n\n const ActiveLink = routerType === \"legacy\" ? LegacyLink : Link;\n\n const translate = useTranslate();\n\n const { resource } = useResource(\n resourceNameFromProps ?? propResourceNameOrRouteName,\n );\n\n const { data } = useCan({\n resource: resource?.name,\n action: \"list\",\n queryOptions: {\n enabled: accessControlEnabled,\n },\n params: {\n resource,\n },\n });\n\n const createButtonDisabledTitle = () => {\n if (data?.can) return \"\";\n else if (data?.reason) return data.reason;\n else\n return translate(\n \"buttons.notAccessTitle\",\n \"You don't have permission to access\",\n );\n };\n\n const listUrl = resource ? generateListUrl(resource, meta) : \"\";\n\n if (accessControlEnabled && hideIfUnauthorized && !data?.can) {\n return null;\n }\n\n return (\n <ActiveLink\n to={listUrl}\n replace={false}\n onClick={(e: React.PointerEvent<HTMLButtonElement>) => {\n if (data?.can === false) {\n e.preventDefault();\n return;\n }\n if (onClick) {\n e.preventDefault();\n onClick(e);\n }\n }}\n >\n <Button\n icon={<BarsOutlined />}\n disabled={data?.can === false}\n title={createButtonDisabledTitle()}\n data-testid={RefineButtonTestIds.ListButton}\n {...rest}\n >\n {!hideText &&\n (children ??\n translate(\n `${\n resource?.name ??\n resourceNameFromProps ??\n propResourceNameOrRouteName\n }.titles.list`,\n userFriendlyResourceName(\n resource?.meta?.label ??\n resource?.label ??\n resource?.name ??\n pickNotDeprecated(\n resourceNameFromProps,\n propResourceNameOrRouteName,\n ),\n \"plural\",\n ),\n ))}\n </Button>\n </ActiveLink>\n );\n};\n","import React from \"react\";\nimport { Button } from \"antd\";\nimport { ExportOutlined } from \"@ant-design/icons\";\nimport { useTranslate } from \"@refinedev/core\";\nimport { RefineButtonTestIds } from \"@refinedev/ui-types\";\n\nimport { ExportButtonProps } from \"../types\";\n\n/**\n * `<ExportButton>` is an Ant Design {@link https://ant.design/components/button/ `<Button>`} with a default export icon and a default text with \"Export\".\n * It only has presentational value.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/buttons/export-button} for more details.\n */\nexport const ExportButton: React.FC<ExportButtonProps> = ({\n hideText = false,\n children,\n ...rest\n}) => {\n const translate = useTranslate();\n\n return (\n <Button\n type=\"default\"\n icon={<ExportOutlined />}\n data-testid={RefineButtonTestIds.ExportButton}\n {...rest}\n >\n {!hideText && (children ?? translate(\"buttons.export\", \"Export\"))}\n </Button>\n );\n};\n","import React from \"react\";\nimport { Button } from \"antd\";\nimport { SaveOutlined } from \"@ant-design/icons\";\nimport { useTranslate } from \"@refinedev/core\";\nimport { RefineButtonTestIds } from \"@refinedev/ui-types\";\n\nimport { SaveButtonProps } from \"../types\";\n\n/**\n * `<SaveButton>` uses Ant Design's {@link https://ant.design/components/button/ `<Button>`} component.\n * It uses it for presantation purposes only. Some of the hooks that refine has adds features to this button.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/buttons/save-button} for more details.\n */\nexport const SaveButton: React.FC<SaveButtonProps> = ({\n hideText = false,\n children,\n ...rest\n}) => {\n const translate = useTranslate();\n\n return (\n <Button\n type=\"primary\"\n icon={<SaveOutlined />}\n data-testid={RefineButtonTestIds.SaveButton}\n {...rest}\n >\n {!hideText && (children ?? translate(\"buttons.save\", \"Save\"))}\n </Button>\n );\n};\n","import React from \"react\";\nimport { Button } from \"antd\";\nimport { PlusSquareOutlined } from \"@ant-design/icons\";\nimport {\n useCan,\n useNavigation,\n useTranslate,\n useResource,\n useRouterContext,\n useRouterType,\n useLink,\n} from \"@refinedev/core\";\nimport { RefineButtonTestIds } from \"@refinedev/ui-types\";\n\nimport { CloneButtonProps } from \"../types\";\n\n/**\n * `<CloneButton>` uses Ant Design's {@link https://ant.design/components/button/ `<Button> component`}.\n * It uses the {@link https://refine.dev/docs/core/hooks/navigation/useNavigation#clone `clone`} method from {@link https://refine.dev/docs/core/hooks/navigation/useNavigation useNavigation} under the hood.\n * It can be useful when redirecting the app to the create page with the record id route of resource.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/buttons/clone-button} for more details.\n */\nexport const CloneButton: React.FC<CloneButtonProps> = ({\n resourceNameOrRouteName: propResourceNameOrRouteName,\n resource: resourceNameFromProps,\n recordItemId,\n hideText = false,\n accessControl,\n meta,\n children,\n onClick,\n ...rest\n}) => {\n const accessControlEnabled = accessControl?.enabled ?? true;\n const hideIfUnauthorized = accessControl?.hideIfUnauthorized ?? false;\n const { cloneUrl: generateCloneUrl } = useNavigation();\n const routerType = useRouterType();\n const Link = useLink();\n const { Link: LegacyLink } = useRouterContext();\n\n const ActiveLink = routerType === \"legacy\" ? LegacyLink : Link;\n\n const translate = useTranslate();\n\n const { id, resource } = useResource(\n resourceNameFromProps ?? propResourceNameOrRouteName,\n );\n\n const { data } = useCan({\n resource: resource?.name,\n action: \"create\",\n params: { id: recordItemId ?? id, resource },\n queryOptions: {\n enabled: accessControlEnabled,\n },\n });\n\n const createButtonDisabledTitle = () => {\n if (data?.can) return \"\";\n else if (data?.reason) return data.reason;\n else\n return translate(\n \"buttons.notAccessTitle\",\n \"You don't have permission to access\",\n );\n };\n\n const cloneUrl =\n resource && (recordItemId || id)\n ? generateCloneUrl(resource, recordItemId! ?? id!, meta)\n : \"\";\n\n if (accessControlEnabled && hideIfUnauthorized && !data?.can) {\n return null;\n }\n\n return (\n <ActiveLink\n to={cloneUrl}\n replace={false}\n onClick={(e: React.PointerEvent<HTMLButtonElement>) => {\n if (data?.can === false) {\n e.preventDefault();\n return;\n }\n if (onClick) {\n e.preventDefault();\n onClick(e);\n }\n }}\n >\n <Button\n icon={<PlusSquareOutlined />}\n disabled={data?.can === false}\n title={createButtonDisabledTitle()}\n data-testid={RefineButtonTestIds.CloneButton}\n {...rest}\n >\n {!hideText && (children ?? translate(\"buttons.clone\", \"Clone\"))}\n </Button>\n </ActiveLink>\n );\n};\n","import React from \"react\";\nimport { Button, Upload } from \"antd\";\nimport { ImportOutlined } from \"@ant-design/icons\";\nimport { useTranslate } from \"@refinedev/core\";\nimport { RefineButtonTestIds } from \"@refinedev/ui-types\";\n\nimport { ImportButtonProps } from \"../types\";\n\n/**\n * `<ImportButton>` is compatible with the {@link https://refine.dev/docs/ui-frameworks/antd/hooks/import/useImport `useImport`} hook and is meant to be used as it's upload button.\n * It uses Ant Design's {@link https://ant.design/components/button/ `<Button>`} and {@link https://ant.design/components/upload/ `<Upload>`} components.\n * It wraps a `<Button>` component with an `<Upload>` component and accepts properties for `<Button>` and `<Upload>` components separately.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/buttons/import-button} for more details.\n */\nexport const ImportButton: React.FC<ImportButtonProps> = ({\n uploadProps,\n buttonProps,\n hideText = false,\n children,\n}) => {\n const translate = useTranslate();\n\n return (\n <Upload {...uploadProps}>\n <Button\n icon={<ImportOutlined />}\n data-testid={RefineButtonTestIds.ImportButton}\n {...buttonProps}\n >\n {!hideText &&\n (children ?? translate(\"buttons.import\", \"Import\"))}\n </Button>\n </Upload>\n );\n};\n","import React from \"react\";\nimport { Space } from \"antd\";\nimport {\n useTranslate,\n userFriendlyResourceName,\n useRefineContext,\n useRouterType,\n useResource,\n} from \"@refinedev/core\";\n\nimport { Breadcrumb, CreateButton, PageHeader } from \"@components\";\nimport { ListProps } from \"../types\";\n\n/**\n * `<List>` provides us a layout for displaying the page.\n * It does not contain any logic but adds extra functionalities like a refresh button.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/basic-views/list} for more details.\n */\nexport const List: React.FC<ListProps> = ({\n canCreate,\n title,\n children,\n createButtonProps,\n resource: resourceFromProps,\n wrapperProps,\n contentProps,\n headerProps,\n breadcrumb: breadcrumbFromProps,\n headerButtonProps,\n headerButtons,\n}) => {\n const translate = useTranslate();\n const { options: { breadcrumb: globalBreadcrumb } = {} } =\n useRefineContext();\n\n const routerType = useRouterType();\n\n const { resource } = useResource(resourceFromProps);\n\n const isCreateButtonVisible =\n canCreate ??\n ((resource?.canCreate ?? !!resource?.create) || createButtonProps);\n\n const breadcrumb =\n typeof breadcrumbFromProps === \"undefined\"\n ? globalBreadcrumb\n : breadcrumbFromProps;\n\n const defaultExtra = isCreateButtonVisible ? (\n <CreateButton\n size=\"middle\"\n resource={\n routerType === \"legacy\"\n ? resource?.route\n : resource?.identifier ?? resource?.name\n }\n {...createButtonProps}\n />\n ) : null;\n\n return (\n <div {...(wrapperProps ?? {})}>\n <PageHeader\n ghost={false}\n title={\n title ??\n translate(\n `${resource?.name}.titles.list`,\n userFriendlyResourceName(\n resource?.meta?.label ??\n resource?.options?.label ??\n resource?.label ??\n resource?.name,\n \"plural\",\n ),\n )\n }\n extra={\n headerButtons ? (\n <Space wrap {...headerButtonProps}>\n {typeof headerButtons === \"function\"\n ? headerButtons({\n defaultButtons: defaultExtra,\n })\n : headerButtons}\n </Space>\n ) : (\n defaultExtra\n )\n }\n breadcrumb={\n typeof breadcrumb !== \"undefined\" ? (\n <>{breadcrumb}</> ?? undefined\n ) : (\n <Breadcrumb />\n )\n }\n {...(headerProps ?? {})}\n >\n <div {...(contentProps ?? {})}>{children}</div>\n </PageHeader>\n </div>\n );\n};\n","import React from \"react\";\nimport { Card, Space, Spin } from \"antd\";\nimport {\n useNavigation,\n useTranslate,\n userFriendlyResourceName,\n useRefineContext,\n useRouterType,\n useResource,\n useBack,\n} from \"@refinedev/core\";\n\nimport { Breadcrumb, SaveButton, PageHeader } from \"@components\";\nimport { CreateProps } from \"../types\";\n\n/**\n * `<Create>` provides us a layout to display the page.\n * It does not contain any logic but adds extra functionalities like action buttons and giving titles to the page.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/basic-views/create} for more details.\n */\nexport const Create: React.FC<CreateProps> = ({\n title,\n saveButtonProps,\n children,\n resource: resourceFromProps,\n isLoading = false,\n breadcrumb: breadcrumbFromProps,\n wrapperProps,\n headerProps,\n contentProps,\n headerButtonProps,\n headerButtons,\n footerButtonProps,\n footerButtons,\n goBack: goBackFromProps,\n}) => {\n const translate = useTranslate();\n const { options: { breadcrumb: globalBreadcrumb } = {} } =\n useRefineContext();\n\n const routerType = useRouterType();\n const back = useBack();\n const { goBack } = useNavigation();\n\n const { resource, action } = useResource(resourceFromProps);\n\n const breadcrumb =\n typeof breadcrumbFromProps === \"undefined\"\n ? globalBreadcrumb\n : breadcrumbFromProps;\n\n const defaultFooterButtons = (\n <>\n <SaveButton\n {...(isLoading ? { disabled: true } : {})}\n {...saveButtonProps}\n htmlType=\"submit\"\n />\n </>\n );\n\n return (\n <div {...(wrapperProps ?? {})}>\n <PageHeader\n ghost={false}\n backIcon={goBackFromProps}\n onBack={\n action !== \"list\" || typeof action !== \"undefined\"\n ? routerType === \"legacy\"\n ? goBack\n : back\n : undefined\n }\n title={\n title ??\n translate(\n `${resource?.name}.titles.create`,\n `Create ${userFriendlyResourceName(\n resource?.meta?.label ??\n resource?.options?.label ??\n resource?.label ??\n resource?.name,\n \"singular\",\n )}`,\n )\n }\n breadcrumb={\n typeof breadcrumb !== \"undefined\" ? (\n <>{breadcrumb}</> ?? undefined\n ) : (\n <Breadcrumb />\n )\n }\n extra={\n <Space wrap {...(headerButtonProps ?? {})}>\n {headerButtons\n ? typeof headerButtons === \"function\"\n ? headerButtons({\n defaultButtons: null,\n })\n : headerButtons\n : null}\n </Space>\n }\n {...(headerProps ?? {})}\n >\n <Spin spinning={isLoading}>\n <Card\n bordered={false}\n actions={[\n <Space\n key=\"action-buttons\"\n style={{ float: \"right\", marginRight: 24 }}\n {...(footerButtonProps ?? {})}\n >\n {footerButtons\n ? typeof footerButtons === \"function\"\n ? footerButtons({\n defaultButtons:\n defaultFooterButtons,\n })\n : footerButtons\n : defaultFooterButtons}\n </Space>,\n ]}\n {...(contentProps ?? {})}\n >\n {children}\n </Card>\n </Spin>\n </PageHeader>\n </div>\n );\n};\n","import React from \"react\";\n\nimport { Card, Space, Spin } from \"antd\";\nimport {\n useMutationMode,\n useNavigation,\n useTranslate,\n userFriendlyResourceName,\n useRefineContext,\n useRouterType,\n useBack,\n useResource,\n useGo,\n useToPath,\n} from \"@refinedev/core\";\n\nimport {\n DeleteButton,\n RefreshButton,\n ListButton,\n SaveButton,\n Breadcrumb,\n PageHeader,\n} from \"@components\";\nimport { EditProps } from \"../types\";\n\n/**\n * `<Edit>` provides us a layout for displaying the page.\n * It does not contain any logic but adds extra functionalities like a refresh button.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/basic-views/edit} for more details.\n */\nexport const Edit: React.FC<EditProps> = ({\n title,\n saveButtonProps,\n mutationMode: mutationModeProp,\n recordItemId,\n children,\n deleteButtonProps,\n canDelete,\n resource: resourceFromProps,\n isLoading = false,\n dataProviderName,\n breadcrumb: breadcrumbFromProps,\n wrapperProps,\n headerProps,\n contentProps,\n headerButtonProps,\n headerButtons,\n footerButtonProps,\n footerButtons,\n goBack: goBackFromProps,\n}) => {\n const translate = useTranslate();\n const { options: { breadcrumb: globalBreadcrumb } = {} } =\n useRefineContext();\n const { mutationMode: mutationModeContext } = useMutationMode();\n const mutationMode = mutationModeProp ?? mutationModeContext;\n\n const routerType = useRouterType();\n const back = useBack();\n const go = useGo();\n const { goBack, list: legacyGoList } = useNavigation();\n\n const {\n resource,\n action,\n id: idFromParams,\n } = useResource(resourceFromProps);\n\n const goListPath = useToPath({\n resource,\n action: \"list\",\n });\n\n const id = recordItemId ?? idFromParams;\n\n const breadcrumb =\n typeof breadcrumbFromProps === \"undefined\"\n ? globalBreadcrumb\n : breadcrumbFromProps;\n\n const isDeleteButtonVisible =\n canDelete ??\n ((resource?.meta?.canDelete ?? resource?.canDelete) ||\n deleteButtonProps);\n\n const defaultHeaderButtons = (\n <>\n {!recordItemId && (\n <ListButton\n {...(isLoading ? { disabled: true } : {})}\n resource={\n routerType === \"legacy\"\n ? resource?.route\n : resource?.identifier ?? resource?.name\n }\n />\n )}\n <RefreshButton\n {...(isLoading ? { disabled: true } : {})}\n resource={\n routerType === \"legacy\"\n ? resource?.route\n : resource?.identifier ?? resource?.name\n }\n recordItemId={id}\n dataProviderName={dataProviderName}\n />\n </>\n );\n\n const defaultFooterButtons = (\n <>\n {isDeleteButtonVisible && (\n <DeleteButton\n {...(isLoading ? { disabled: true } : {})}\n resource={\n routerType === \"legacy\"\n ? resource?.route\n : resource?.identifier ?? resource?.name\n }\n mutationMode={mutationMode}\n onSuccess={() => {\n if (routerType === \"legacy\") {\n legacyGoList(\n resource?.route ?? resource?.name ?? \"\",\n );\n } else {\n go({ to: goListPath });\n }\n }}\n recordItemId={id}\n dataProviderName={dataProviderName}\n {...deleteButtonProps}\n />\n )}\n <SaveButton\n {...(isLoading ? { disabled: true } : {})}\n {...saveButtonProps}\n />\n </>\n );\n\n return (\n <div {...(wrapperProps ?? {})}>\n <PageHeader\n ghost={false}\n backIcon={goBackFromProps}\n onBack={\n action !== \"list\" && typeof action !== \"undefined\"\n ? routerType === \"legacy\"\n ? goBack\n : back\n : undefined\n }\n title={\n title ??\n translate(\n `${resource?.name}.titles.edit`,\n `Edit ${userFriendlyResourceName(\n resource?.meta?.label ??\n resource?.options?.label ??\n resource?.label ??\n resource?.name,\n \"singular\",\n )}`,\n )\n }\n extra={\n <Space wrap {...(headerButtonProps ?? {})}>\n {headerButtons\n ? typeof headerButtons === \"function\"\n ? headerButtons({\n defaultButtons: defaultHeaderButtons,\n })\n : headerButtons\n : defaultHeaderButtons}\n </Space>\n }\n breadcrumb={\n typeof breadcrumb !== \"undefined\" ? (\n <>{breadcrumb}</> ?? undefined\n ) : (\n <Breadcrumb />\n )\n }\n {...(headerProps ?? {})}\n >\n <Spin spinning={isLoading}>\n <Card\n bordered={false}\n actions={[\n <Space\n key=\"footer-buttons\"\n wrap\n style={{\n float: \"right\",\n marginRight: 24,\n }}\n {...(footerButtonProps ?? {})}\n >\n {footerButtons\n ? typeof footerButtons === \"function\"\n ? footerButtons({\n defaultButtons:\n defaultFooterButtons,\n })\n : footerButtons\n : defaultFooterButtons}\n </Space>,\n ]}\n {...(contentProps ?? {})}\n >\n {children}\n </Card>\n </Spin>\n </PageHeader>\n </div>\n );\n};\n","import React from \"react\";\nimport { Card, Space, Spin } from \"antd\";\nimport {\n useNavigation,\n useTranslate,\n userFriendlyResourceName,\n useRefineContext,\n useResource,\n useToPath,\n useRouterType,\n useBack,\n useGo,\n} from \"@refinedev/core\";\n\nimport {\n EditButton,\n DeleteButton,\n RefreshButton,\n ListButton,\n Breadcrumb,\n PageHeader,\n} from \"@components\";\nimport { ShowProps } from \"../types\";\n\n/**\n * `<Show>` provides us a layout for displaying the page.\n * It does not contain any logic but adds extra functionalities like a refresh button.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/basic-views/show} for more details.\n */\nexport const Show: React.FC<ShowProps> = ({\n title,\n canEdit,\n canDelete,\n isLoading = false,\n children,\n resource: resourceFromProps,\n recordItemId,\n dataProviderName,\n breadcrumb: breadcrumbFromProps,\n contentProps,\n headerProps,\n wrapperProps,\n headerButtons,\n footerButtons,\n footerButtonProps,\n headerButtonProps,\n goBack: goBackFromProps,\n}) => {\n const translate = useTranslate();\n const { options: { breadcrumb: globalBreadcrumb } = {} } =\n useRefineContext();\n\n const routerType = useRouterType();\n const back = useBack();\n const go = useGo();\n const { goBack, list: legacyGoList } = useNavigation();\n\n const {\n resource,\n action,\n id: idFromParams,\n } = useResource(resourceFromProps);\n\n const goListPath = useToPath({\n resource,\n action: \"list\",\n });\n\n const id = recordItemId ?? idFromParams;\n\n const breadcrumb =\n typeof breadcrumbFromProps === \"undefined\"\n ? globalBreadcrumb\n : breadcrumbFromProps;\n\n const isDeleteButtonVisible =\n canDelete ?? resource?.meta?.canDelete ?? resource?.canDelete;\n const isEditButtonVisible =\n canEdit ?? resource?.canEdit ?? !!resource?.edit;\n\n const defaultHeaderButtons = (\n <>\n {!recordItemId && (\n <ListButton\n resource={\n routerType === \"legacy\"\n ? resource?.route\n : resource?.identifier ?? resource?.name\n }\n />\n )}\n {isEditButtonVisible && (\n <EditButton\n {...(isLoading ? { disabled: true } : {})}\n resource={\n routerType === \"legacy\"\n ? resource?.route\n : resource?.identifier ?? resource?.name\n }\n recordItemId={id}\n />\n )}\n {isDeleteButtonVisible && (\n <DeleteButton\n {...(isLoading ? { disabled: true } : {})}\n resource={\n routerType === \"legacy\"\n ? resource?.route\n : resource?.identifier ?? resource?.name\n }\n recordItemId={id}\n onSuccess={() => {\n if (routerType === \"legacy\") {\n legacyGoList(\n resource?.route ?? resource?.name ?? \"\",\n );\n } else {\n go({ to: goListPath });\n }\n }}\n dataProviderName={dataProviderName}\n />\n )}\n <RefreshButton\n {...(isLoading ? { disabled: true } : {})}\n resource={\n routerType === \"legacy\"\n ? resource?.route\n : resource?.identifier ?? resource?.name\n }\n recordItemId={id}\n dataProviderName={dataProviderName}\n />\n </>\n );\n\n return (\n <div {...(wrapperProps ?? {})}>\n <PageHeader\n ghost={false}\n backIcon={goBackFromProps}\n onBack={\n action !== \"list\" && typeof action !== \"undefined\"\n ? routerType === \"legacy\"\n ? goBack\n : back\n : undefined\n }\n title={\n title ??\n translate(\n `${resource?.name}.titles.show`,\n `Show ${userFriendlyResourceName(\n resource?.meta?.label ??\n resource?.options?.label ??\n resource?.label ??\n resource?.name,\n \"singular\",\n )}`,\n )\n }\n extra={\n <Space\n key=\"extra-buttons\"\n wrap\n {...(headerButtonProps ?? {})}\n >\n {headerButtons\n ? typeof headerButtons === \"function\"\n ? headerButtons({\n defaultButtons: defaultHeaderButtons,\n })\n : headerButtons\n : defaultHeaderButtons}\n </Space>\n }\n breadcrumb={\n typeof breadcrumb !== \"undefined\" ? (\n <>{breadcrumb}</> ?? undefined\n ) : (\n <Breadcrumb />\n )\n }\n {...(headerProps ?? {})}\n >\n <Spin spinning={isLoading}>\n <Card\n bordered={false}\n actions={\n footerButtons\n ? [\n <Space\n key=\"footer-buttons\"\n wrap\n {...footerButtonProps}\n >\n {typeof footerButtons === \"function\"\n ? footerButtons({\n defaultButtons: null,\n })\n : footerButtons}\n </Space>,\n ]\n : undefined\n }\n {...(contentProps ?? {})}\n >\n {children}\n </Card>\n </Spin>\n </PageHeader>\n </div>\n );\n};\n","import React from \"react\";\nimport { Typography } from \"antd\";\n\nconst { Text } = Typography;\n\nimport { TextFieldProps } from \"../types\";\n\n/**\n * This field lets you show basic text. It uses Ant Design's {@link https://ant.design/components/typography/#Typography.Text `<Typography.Text>`} component.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/fields/text} for more details.\n */\nexport const TextField: React.FC<TextFieldProps> = ({ value, ...rest }) => {\n return <Text {...rest}>{value}</Text>;\n};\n","import React from \"react\";\nimport { Tag } from \"antd\";\n\nimport { TagFieldProps } from \"../types\";\n\n/**\n * This field lets you display a value in a tag. It uses Ant Design's {@link https://ant.design/components/tag/ `<Tag>`} component.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/fields/tag} for more details.\n */\nexport const TagField: React.FC<TagFieldProps> = ({ value, ...rest }) => {\n return <Tag {...rest}>{value?.toString()}</Tag>;\n};\n","import React from \"react\";\nimport { Typography } from \"antd\";\n\nconst { Link } = Typography;\n\nimport { EmailFieldProps } from \"../types\";\n\n/**\n * This field is used to display email values. It uses the {@link https://ant.design/components/typography/#FAQ `<Link>`} component\n * of {@link https://ant.design/components/typography `<Typography>`} from Ant Design.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/fields/email} for more details.\n */\nexport const EmailField: React.FC<EmailFieldProps> = ({ value, ...rest }) => {\n return (\n <Link href={`mailto:${value}`} {...rest}>\n {value}\n </Link>\n );\n};\n","import React from \"react\";\nimport { Image } from \"antd\";\n\nimport { ImageFieldProps } from \"../types\";\n\n/**\n * This field is used to display images and uses {@link https://ant.design/components/image/#header `<Image>`} from Ant Design.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/fields/image} for more details.\n */\nexport const ImageField: React.FC<ImageFieldProps> = ({\n value,\n imageTitle,\n ...rest\n}) => {\n return <Image {...rest} src={value} title={imageTitle} />;\n};\n","import React from \"react\";\nimport { Tooltip } from \"antd\";\n\nimport { CheckOutlined, CloseOutlined } from \"@ant-design/icons\";\n\nimport { BooleanFieldProps } from \"../types\";\n\n/**\n * This field is used to display boolean values. It uses the {@link https://ant.design/components/tooltip/#header `<Tooltip>`} values from Ant Design.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/fields/boolean} for more details.\n */\nexport const BooleanField: React.FC<BooleanFieldProps> = ({\n value,\n valueLabelTrue = \"true\",\n valueLabelFalse = \"false\",\n trueIcon = <CheckOutlined />,\n falseIcon = <CloseOutlined />,\n ...rest\n}) => {\n return (\n <Tooltip title={value ? valueLabelTrue : valueLabelFalse} {...rest}>\n {value ? <span>{trueIcon}</span> : <span>{falseIcon}</span>}\n </Tooltip>\n );\n};\n","import React from \"react\";\nimport dayjs from \"dayjs\";\nimport { Typography } from \"antd\";\n\nimport LocalizedFormat from \"dayjs/plugin/localizedFormat\";\n\ndayjs.extend(LocalizedFormat);\n\nconst defaultLocale = dayjs.locale();\n\nimport { DateFieldProps } from \"../types\";\n\n/**\n * This field is used to display dates. It uses {@link https://day.js.org/docs/en/display/format `Day.js`} to display date format.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/fields/date} for more details.\n */\nexport const DateField: React.FC<DateFieldProps> = ({\n value,\n locales,\n format: dateFormat = \"L\",\n ...rest\n}) => {\n const { Text } = Typography;\n\n return (\n <Text {...rest}>\n {dayjs(value)\n .locale(locales || defaultLocale)\n .format(dateFormat)}\n </Text>\n );\n};\n","import React from \"react\";\n\nimport { UrlField } from \"@components\";\nimport { FileFieldProps } from \"../types\";\n\n/**\n * This field is used to display files and uses {@link https://ant.design/components/typography `<Typography.Link>`} from Ant Design.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/fields/file} for more details.\n */\nexport const FileField: React.FC<FileFieldProps> = ({\n title,\n src,\n ...rest\n}) => {\n return (\n <UrlField value={src} title={title} {...rest}>\n {title ?? src}\n </UrlField>\n );\n};\n","import React from \"react\";\nimport { Typography } from \"antd\";\n\nconst { Link } = Typography;\n\nimport { UrlFieldProps } from \"../types\";\n\n/**\n * This field lets you embed a link. It uses Ant Design's {@link https://ant.design/components/typography/ `<Typography.Link>`} component.\n * You can pass a URL in its `value` property and you can show a text in its place by passing any `children`.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/fields/url} for more details.\n */\nexport const UrlField: React.FC<UrlFieldProps> = ({\n children,\n value,\n ...rest\n}) => {\n return (\n <Link href={value} {...rest}>\n {children ?? value}\n </Link>\n );\n};\n","import React from \"react\";\nimport { Typography } from \"antd\";\n\nconst { Text } = Typography;\n\nfunction toLocaleStringSupportsOptions() {\n return !!(\n typeof Intl == \"object\" &&\n Intl &&\n typeof Intl.NumberFormat == \"function\"\n );\n}\n\nimport { NumberFieldProps } from \"../types\";\n\n/**\n * This field is used to display a number formatted according to the browser locale, right aligned. and uses {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl `Intl`} to display date format.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/fields/number} for more details.\n */\nexport const NumberField: React.FC<NumberFieldProps> = ({\n value,\n locale,\n options,\n ...rest\n}) => {\n const number = parseFloat(value.toString());\n\n return (\n <Text {...rest}>\n {toLocaleStringSupportsOptions()\n ? number.toLocaleString(locale, options)\n : number}\n </Text>\n );\n};\n","import React from \"react\";\nimport ReactMarkdown from \"react-markdown\";\nimport gfm from \"remark-gfm\";\n\nimport { RefineFieldMarkdownProps } from \"../types\";\n\n/**\n * This field lets you display markdown content. It supports {@link https://github.github.com/gfm/ GitHub Flavored Markdown}.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/fields/markdown} for more details.\n */\nexport const MarkdownField: React.FC<RefineFieldMarkdownProps> = ({\n value = \"\",\n}) => {\n return <ReactMarkdown plugins={[gfm]}>{value}</ReactMarkdown>;\n};\n","import React, { ReactNode, useState } from \"react\";\nimport { Button, Space } from \"antd\";\nimport type { FilterDropdownProps as AntdFilterDropdownProps } from \"antd/lib/table/interface\";\nimport dayjs from \"dayjs\";\nimport { FilterOutlined } from \"@ant-design/icons\";\nimport { useTranslate } from \"@refinedev/core\";\n\nexport type FilterDropdownProps = AntdFilterDropdownProps & {\n mapValue?: (selectedKeys: React.Key[]) => any;\n children: ReactNode;\n};\n\n/**\n * `<FilterDropdown>` is a helper component for {@link https://ant.design/components/table/#components-table-demo-custom-filter-panel filter dropdowns in Ant Design `<Table>` components.}\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/filter-dropdown} for more details.\n */\nexport const FilterDropdown: React.FC<FilterDropdownProps> = (props) => {\n const {\n setSelectedKeys,\n confirm,\n clearFilters,\n mapValue,\n selectedKeys,\n children,\n } = props;\n\n const [value, setValue] = useState<any[] | undefined>(selectedKeys);\n const translate = useTranslate();\n\n const clearFilter = () => {\n if (clearFilters) {\n setValue([]);\n clearFilters();\n }\n };\n\n const onFilter = () => {\n const _mappedValue = mappedValue(value);\n\n let keys;\n if (typeof _mappedValue === \"number\") {\n keys = `${_mappedValue}`;\n } else if (dayjs.isDayjs(_mappedValue)) {\n keys = [_mappedValue.toISOString()];\n } else {\n keys = _mappedValue;\n }\n\n setSelectedKeys(keys);\n\n confirm?.();\n };\n\n const mappedValue = (value: any) => (mapValue ? mapValue(value) : value);\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const onChange = (e: any) => {\n if (typeof e === \"object\") {\n if (Array.isArray(e)) {\n const _mappedValue = mappedValue(e);\n\n setValue(_mappedValue);\n return setSelectedKeys(_mappedValue);\n }\n\n const changeEvent =\n !e || !e.target || dayjs.isDayjs(e)\n ? { target: { value: e } }\n : e;\n\n const { target }: React.ChangeEvent<HTMLInputElement> = changeEvent;\n const _mappedValue = mappedValue(target.value);\n setValue(_mappedValue);\n return;\n }\n\n const _mappedValue = mappedValue(e);\n\n setValue(_mappedValue);\n };\n\n const childrenWithProps = React.Children.map(children, (child) => {\n if (React.isValidElement(child)) {\n return React.cloneElement(child, {\n onChange,\n value: mappedValue(value),\n });\n }\n return child;\n });\n return (\n <div\n style={{\n padding: 10,\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"flex-end\",\n }}\n >\n <div style={{ marginBottom: 15 }}>{childrenWithProps}</div>\n <Space>\n <Button type=\"primary\" size=\"small\" onClick={() => onFilter()}>\n <FilterOutlined /> {translate(\"buttons.filter\", \"Filter\")}\n </Button>\n <Button danger size=\"small\" onClick={() => clearFilter()}>\n {translate(\"buttons.clear\", \"Clear\")}\n </Button>\n </Space>\n </div>\n );\n};\n","import React, { useEffect, useState } from \"react\";\nimport { useGo, useResource, useRouterType } from \"@refinedev/core\";\nimport { RefineErrorPageProps } from \"@refinedev/ui-types\";\nimport { Button, Result, Typography, Space, Tooltip } from \"antd\";\nimport { InfoCircleOutlined } from \"@ant-design/icons\";\nimport { useNavigation, useTranslate } from \"@refinedev/core\";\n\nconst { Text } = Typography;\n\n/**\n * When the app is navigated to a non-existent route, refine shows a default error page.\n * A custom error component can be used for this error page.\n *\n * @see {@link https://refine.dev/docs/api-references/components/refine-config#catchall} for more details.\n */\nexport const ErrorComponent: React.FC<RefineErrorPageProps> = () => {\n const [errorMessage, setErrorMessage] = useState<string>();\n const translate = useTranslate();\n const { push } = useNavigation();\n const go = useGo();\n const routerType = useRouterType();\n\n const { resource, action } = useResource();\n\n useEffect(() => {\n if (resource) {\n if (action) {\n setErrorMessage(\n translate(\n \"pages.error.info\",\n {\n action: action,\n resource: resource?.name,\n },\n `You may have forgotten to add the \"${action}\" component to \"${resource?.name}\" resource.`,\n ),\n );\n }\n }\n }, [resource, action]);\n\n return (\n <Result\n status=\"404\"\n title=\"404\"\n extra={\n <Space direction=\"vertical\" size=\"large\">\n <Space>\n <Text>\n {translate(\n \"pages.error.404\",\n \"Sorry, the page you visited does not exist.\",\n )}\n </Text>\n {errorMessage && (\n <Tooltip title={errorMessage}>\n <InfoCircleOutlined data-testid=\"error-component-tooltip\" />\n </Tooltip>\n )}\n </Space>\n <Button\n type=\"primary\"\n onClick={() => {\n if (routerType === \"legacy\") {\n push(\"/\");\n } else {\n go({ to: \"/\" });\n }\n }}\n >\n {translate(\"pages.error.backHome\", \"Back Home\")}\n </Button>\n </Space>\n }\n />\n );\n};\n","import React from \"react\";\nimport { LoginPageProps, useActiveAuthProvider } from \"@refinedev/core\";\nimport {\n Row,\n Col,\n Layout,\n Card,\n Typography,\n Form,\n Input,\n Button,\n Checkbox,\n} from \"antd\";\nimport { useLogin, useTranslate } from \"@refinedev/core\";\n\nimport {\n layoutStyles,\n containerStyles,\n titleStyles,\n imageContainer,\n} from \"./styles\";\n\nconst { Text, Title } = Typography;\nexport interface ILoginForm {\n username: string;\n password: string;\n remember: boolean;\n}\n\n/**\n * @deprecated LoginPage is deprecated. Use AuthPage instead. @see {@link https://refine.dev/docs/api-reference/antd/components/antd-auth-page} for more details.\n * **refine** has a default login page form which is served on `/login` route when the `authProvider` configuration is provided.\n *\n * @see {@link https://refine.dev/docs/api-references/components/refine-config#loginpage} for more details.\n */\nexport const LoginPage: React.FC<LoginPageProps> = () => {\n const [form] = Form.useForm<ILoginForm>();\n const translate = useTranslate();\n\n const authProvider = useActiveAuthProvider();\n const { mutate: login, isLoading } = useLogin<ILoginForm>({\n v3LegacyAuthProviderCompatible: Boolean(authProvider?.isLegacy),\n });\n\n const CardTitle = (\n <Title level={3} style={titleStyles}>\n {translate(\"pages.login.title\", \"Sign in your account\")}\n </Title>\n );\n\n return (\n <Layout style={layoutStyles}>\n <Row\n justify=\"center\"\n align=\"middle\"\n style={{\n height: \"100vh\",\n }}\n >\n <Col xs={22}>\n <div style={containerStyles}>\n <div style={imageContainer}>\n <img\n src=\"https://refine.ams3.cdn.digitaloceanspaces.com/logo/refine.svg\"\n alt=\"Refine Logo\"\n />\n </div>\n <Card title={CardTitle} headStyle={{ borderBottom: 0 }}>\n <Form<ILoginForm>\n layout=\"vertical\"\n form={form}\n onFinish={(values) => {\n login(values);\n }}\n requiredMark={false}\n initialValues={{\n remember: false,\n }}\n >\n <Form.Item\n name=\"username\"\n label={translate(\n \"pages.login.username\",\n \"Username\",\n )}\n rules={[{ required: true }]}\n >\n <Input\n size=\"large\"\n placeholder={translate(\n \"pages.login.username\",\n \"Username\",\n )}\n />\n </Form.Item>\n <Form.Item\n name=\"password\"\n label={translate(\n \"pages.login.password\",\n \"Password\",\n )}\n rules={[{ required: true }]}\n style={{ marginBottom: \"12px\" }}\n >\n <Input\n type=\"password\"\n placeholder=\"●●●●●●●●\"\n size=\"large\"\n />\n </Form.Item>\n <div style={{ marginBottom: \"12px\" }}>\n <Form.Item\n name=\"remember\"\n valuePropName=\"checked\"\n noStyle\n >\n <Checkbox\n style={{\n fontSize: \"12px\",\n }}\n >\n {translate(\n \"pages.login.remember\",\n \"Remember me\",\n )}\n </Checkbox>\n </Form.Item>\n\n <a\n style={{\n float: \"right\",\n fontSize: \"12px\",\n }}\n href=\"#\"\n >\n {translate(\n \"pages.login.forgotPassword\",\n \"Forgot password?\",\n )}\n </a>\n </div>\n <Button\n type=\"primary\"\n size=\"large\"\n htmlType=\"submit\"\n loading={isLoading}\n block\n >\n {translate(\"pages.login.signin\", \"Sign in\")}\n </Button>\n </Form>\n <div style={{ marginTop: 8 }}>\n <Text style={{ fontSize: 12 }}>\n {translate(\n \"pages.login.noAccount\",\n \"Don’t have an account?\",\n )}{\" \"}\n <a href=\"#\" style={{ fontWeight: \"bold\" }}>\n {translate(\n \"pages.login.signup\",\n \"Sign up\",\n )}\n </a>\n </Text>\n </div>\n </Card>\n </div>\n </Col>\n </Row>\n </Layout>\n );\n};\n","import { CSSProperties } from \"react\";\n\nexport const layoutStyles: CSSProperties = {\n background: `radial-gradient(50% 50% at 50% 50%, #63386A 0%, #310438 100%)`,\n backgroundSize: \"cover\",\n};\n\nexport const containerStyles: CSSProperties = {\n maxWidth: \"408px\",\n margin: \"auto\",\n};\n\nexport const titleStyles: CSSProperties = {\n textAlign: \"center\",\n color: \"#626262\",\n fontSize: \"30px\",\n letterSpacing: \"-0.04em\",\n};\n\nexport const imageContainer: CSSProperties = {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n marginBottom: \"28px\",\n};\n","import * as React from \"react\";\nimport { RefineReadyPageProps } from \"@refinedev/ui-types\";\nimport { Row, Col, Typography, Space, Button } from \"antd\";\nimport { ReadOutlined, FolderOutlined, TeamOutlined } from \"@ant-design/icons\";\n\nconst styles: { [key: string]: React.CSSProperties } = {\n root: {\n height: \"100vh\",\n backgroundImage:\n \"url('https://refine.ams3.cdn.digitaloceanspaces.com/login-background/background.png')\",\n backgroundSize: \"cover\",\n backgroundColor: \"#331049\",\n },\n title: {\n color: \"white\",\n fontWeight: 800,\n fontSize: \"64px\",\n marginBottom: \"8px\",\n },\n p1: {\n color: \"white\",\n marginBottom: 0,\n fontSize: \"20px\",\n fontWeight: \"bold\",\n },\n p2: {\n color: \"white\",\n fontSize: \"20px\",\n },\n code: {\n backgroundColor: \"white\",\n color: \"#331049\",\n },\n};\n\nconst { Title } = Typography;\n\n/**\n * **refine** shows a default ready page on root route when no `resources` is passed to the `<Refine>` component as a property.\n *\n * @see {@link https://refine.dev/docs/api-references/components/refine-config#readypage} for more details.\n * @deprecated `ReadyPage` is deprecated and will be removed in the next major release.\n */\nexport const ReadyPage: React.FC<RefineReadyPageProps> = () => {\n return (\n <Row align=\"middle\" justify=\"center\" style={styles.root}>\n <Col style={{ textAlign: \"center\" }}>\n <img\n style={{ marginBottom: \"48px\" }}\n src=\"https://refine.ams3.cdn.digitaloceanspaces.com/logo/refine.svg\"\n alt=\"Refine Logo\"\n />\n <Title style={styles.title}>Welcome on board</Title>\n <p style={styles.p1}>Your configuration is completed.</p>\n <p style={styles.p2}>\n Now you can get started by adding your resources to the{\" \"}\n <code style={styles.code}>{`resources`}</code> property of{\" \"}\n <code style={styles.code}>{`<Refine>`}</code>\n </p>\n <Space\n size=\"large\"\n wrap\n style={{ marginTop: \"70px\", justifyContent: \"center\" }}\n >\n <a\n href=\"https://refine.dev\"\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n <Button size=\"large\" icon={<ReadOutlined />}>\n Documentation\n </Button>\n </a>\n <a\n href=\"https://refine.dev/examples\"\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n <Button size=\"large\" icon={<FolderOutlined />}>\n Examples\n </Button>\n </a>\n <a\n href=\"https://discord.gg/refine\"\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n <Button size=\"large\" icon={<TeamOutlined />}>\n Community\n </Button>\n </a>\n </Space>\n </Col>\n </Row>\n );\n};\n","import * as React from \"react\";\nimport { Row, Col, Typography, Space, Button } from \"antd\";\nimport { ReadOutlined, FolderOutlined, TeamOutlined } from \"@ant-design/icons\";\n\nconst styles: { [key: string]: React.CSSProperties } = {\n root: {\n height: \"100vh\",\n backgroundImage:\n \"url('https://refine.ams3.cdn.digitaloceanspaces.com/login-background/background.png')\",\n backgroundSize: \"cover\",\n backgroundColor: \"#331049\",\n },\n title: {\n color: \"white\",\n fontWeight: 800,\n fontSize: \"64px\",\n marginBottom: \"8px\",\n },\n p1: {\n color: \"white\",\n marginBottom: 0,\n fontSize: \"20px\",\n fontWeight: \"bold\",\n },\n p2: {\n color: \"white\",\n fontSize: \"20px\",\n },\n code: {\n backgroundColor: \"white\",\n color: \"#331049\",\n },\n};\n\nconst { Title } = Typography;\n\n/**\n * It is a page that welcomes you after the configuration is completed.\n */\nexport const WelcomePage: React.FC = () => {\n return (\n <Row align=\"middle\" justify=\"center\" style={styles.root}>\n <Col style={{ textAlign: \"center\" }}>\n <img\n style={{ marginBottom: \"48px\" }}\n src=\"https://refine.ams3.cdn.digitaloceanspaces.com/logo/refine.svg\"\n alt=\"Refine Logo\"\n />\n <Title style={styles.title}>Welcome on board</Title>\n <p style={styles.p1}>Your configuration is completed.</p>\n <Space\n size=\"large\"\n wrap\n style={{ marginTop: \"70px\", justifyContent: \"center\" }}\n >\n <a\n href=\"https://refine.dev\"\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n <Button size=\"large\" icon={<ReadOutlined />}>\n Documentation\n </Button>\n </a>\n <a\n href=\"https://refine.dev/examples\"\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n <Button size=\"large\" icon={<FolderOutlined />}>\n Examples\n </Button>\n </a>\n <a\n href=\"https://discord.gg/refine\"\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n <Button size=\"large\" icon={<TeamOutlined />}>\n Community\n </Button>\n </a>\n </Space>\n </Col>\n </Row>\n );\n};\n","import React from \"react\";\nimport { CardProps, FormProps, LayoutProps } from \"antd\";\nimport { AuthPageProps } from \"@refinedev/core\";\n\nimport {\n LoginPage,\n RegisterPage,\n ForgotPasswordPage,\n UpdatePasswordPage,\n} from \"./components\";\n\nexport type AuthProps = AuthPageProps<LayoutProps, CardProps, FormProps>;\n\n/**\n * **refine** has a default auth page form served on the `/login` route when the `authProvider` configuration is provided.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/authpage/} for more details.\n */\nexport const AuthPage: React.FC<AuthProps> = (props) => {\n const { type } = props;\n const renderView = () => {\n switch (type) {\n case \"register\":\n return <RegisterPage {...props} />;\n case \"forgotPassword\":\n return <ForgotPasswordPage {...props} />;\n case \"updatePassword\":\n return <UpdatePasswordPage {...props} />;\n default:\n return <LoginPage {...props} />;\n }\n };\n\n return <>{renderView()}</>;\n};\n","import React from \"react\";\nimport {\n LoginPageProps,\n LoginFormTypes,\n useLink,\n useRouterType,\n useActiveAuthProvider,\n} from \"@refinedev/core\";\nimport {\n Row,\n Col,\n Layout,\n Card,\n Typography,\n Form,\n Input,\n Button,\n Checkbox,\n CardProps,\n LayoutProps,\n Divider,\n FormProps,\n} from \"antd\";\nimport { useLogin, useTranslate, useRouterContext } from \"@refinedev/core\";\n\nimport { layoutStyles, containerStyles, titleStyles } from \"../styles\";\n\nconst { Text, Title } = Typography;\n\ntype LoginProps = LoginPageProps<LayoutProps, CardProps, FormProps>;\n\n/**\n * **refine** has a default login page form which is served on `/login` route when the `authProvider` configuration is provided.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/antd-auth-page/#login} for more details.\n */\nexport const LoginPage: React.FC<LoginProps> = ({\n providers,\n registerLink,\n forgotPasswordLink,\n rememberMe,\n contentProps,\n wrapperProps,\n renderContent,\n formProps,\n}) => {\n const [form] = Form.useForm<LoginFormTypes>();\n const translate = useTranslate();\n const routerType = useRouterType();\n const Link = useLink();\n const { Link: LegacyLink } = useRouterContext();\n\n const ActiveLink = routerType === \"legacy\" ? LegacyLink : Link;\n\n const authProvider = useActiveAuthProvider();\n const { mutate: login, isLoading } = useLogin<LoginFormTypes>({\n v3LegacyAuthProviderCompatible: Boolean(authProvider?.isLegacy),\n });\n\n const CardTitle = (\n <Title level={3} style={titleStyles}>\n {translate(\"pages.login.title\", \"Sign in to your account\")}\n </Title>\n );\n\n const renderProviders = () => {\n if (providers && providers.length > 0) {\n return (\n <>\n {providers.map((provider) => {\n return (\n <Button\n key={provider.name}\n type=\"default\"\n block\n icon={provider.icon}\n style={{\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n width: \"100%\",\n marginBottom: \"8px\",\n }}\n onClick={() =>\n login({\n providerName: provider.name,\n })\n }\n >\n {provider.label}\n </Button>\n );\n })}\n <Divider>{translate(\"pages.login.divider\", \"or\")}</Divider>\n </>\n );\n }\n return null;\n };\n\n const CardContent = (\n <Card\n title={CardTitle}\n headStyle={{ borderBottom: 0 }}\n style={containerStyles}\n {...(contentProps ?? {})}\n >\n {renderProviders()}\n <Form<LoginFormTypes>\n layout=\"vertical\"\n form={form}\n onFinish={(values) => login(values)}\n requiredMark={false}\n initialValues={{\n remember: false,\n }}\n {...formProps}\n >\n <Form.Item\n name=\"email\"\n label={translate(\"pages.login.fields.email\", \"Email\")}\n rules={[\n { required: true },\n {\n type: \"email\",\n message: translate(\n \"pages.login.errors.validEmail\",\n \"Invalid email address\",\n ),\n },\n ]}\n >\n <Input\n size=\"large\"\n placeholder={translate(\n \"pages.login.fields.email\",\n \"Email\",\n )}\n />\n </Form.Item>\n <Form.Item\n name=\"password\"\n label={translate(\"pages.login.fields.password\", \"Password\")}\n rules={[{ required: true }]}\n style={{ marginBottom: \"12px\" }}\n >\n <Input\n type=\"password\"\n placeholder=\"●●●●●●●●\"\n size=\"large\"\n />\n </Form.Item>\n <div\n style={{\n display: \"flex\",\n justifyContent: \"space-between\",\n marginBottom: \"12px\",\n }}\n >\n {rememberMe ?? (\n <Form.Item\n name=\"remember\"\n valuePropName=\"checked\"\n noStyle\n >\n <Checkbox\n style={{\n fontSize: \"12px\",\n }}\n >\n {translate(\n \"pages.login.buttons.rememberMe\",\n \"Remember me\",\n )}\n </Checkbox>\n </Form.Item>\n )}\n {forgotPasswordLink ?? (\n <ActiveLink\n style={{\n fontSize: \"12px\",\n marginLeft: \"auto\",\n }}\n to=\"/forgot-password\"\n >\n {translate(\n \"pages.login.buttons.forgotPassword\",\n \"Forgot password?\",\n )}\n </ActiveLink>\n )}\n </div>\n <Form.Item>\n <Button\n type=\"primary\"\n size=\"large\"\n htmlType=\"submit\"\n loading={isLoading}\n block\n >\n {translate(\"pages.login.signin\", \"Sign in\")}\n </Button>\n </Form.Item>\n </Form>\n <div style={{ marginTop: 8 }}>\n {registerLink ?? (\n <Text style={{ fontSize: 12 }}>\n {translate(\n \"pages.login.buttons.noAccount\",\n \"Don’t have an account?\",\n )}{\" \"}\n <ActiveLink\n to=\"/register\"\n style={{ fontWeight: \"bold\" }}\n >\n {translate(\"pages.login.signup\", \"Sign up\")}\n </ActiveLink>\n </Text>\n )}\n </div>\n </Card>\n );\n\n return (\n <Layout style={layoutStyles} {...(wrapperProps ?? {})}>\n <Row\n justify=\"center\"\n align=\"middle\"\n style={{\n height: \"100vh\",\n }}\n >\n <Col xs={22}>\n {renderContent ? renderContent(CardContent) : CardContent}\n </Col>\n </Row>\n </Layout>\n );\n};\n","import { CSSProperties } from \"react\";\n\nexport const layoutStyles: CSSProperties = {\n background: `radial-gradient(50% 50% at 50% 50%, #6813CB 0%, #2A2A42 100%)`,\n backgroundSize: \"cover\",\n};\n\nexport const containerStyles: CSSProperties = {\n maxWidth: \"408px\",\n margin: \"auto\",\n};\n\nexport const titleStyles: CSSProperties = {\n textAlign: \"center\",\n color: \"#626262\",\n marginBottom: 0,\n fontSize: \"24px\",\n letterSpacing: \"-0.04em\",\n overflowWrap: \"break-word\",\n hyphens: \"manual\",\n textOverflow: \"unset\",\n whiteSpace: \"pre-wrap\",\n};\n","import React from \"react\";\nimport {\n RegisterPageProps,\n RegisterFormTypes,\n useRouterType,\n useLink,\n useActiveAuthProvider,\n} from \"@refinedev/core\";\nimport {\n Row,\n Col,\n Layout,\n Card,\n Typography,\n Form,\n Input,\n Button,\n LayoutProps,\n CardProps,\n FormProps,\n Divider,\n} from \"antd\";\nimport { useTranslate, useRouterContext, useRegister } from \"@refinedev/core\";\n\nimport { layoutStyles, containerStyles, titleStyles } from \"../styles\";\n\nconst { Text, Title } = Typography;\n\ntype RegisterProps = RegisterPageProps<LayoutProps, CardProps, FormProps>;\n\n/**\n * **refine** has register page form which is served on `/register` route when the `authProvider` configuration is provided.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/antd-auth-page/#register} for more details.\n */\nexport const RegisterPage: React.FC<RegisterProps> = ({\n providers,\n loginLink,\n wrapperProps,\n contentProps,\n renderContent,\n formProps,\n}) => {\n const [form] = Form.useForm<RegisterFormTypes>();\n const translate = useTranslate();\n const routerType = useRouterType();\n const Link = useLink();\n const { Link: LegacyLink } = useRouterContext();\n\n const ActiveLink = routerType === \"legacy\" ? LegacyLink : Link;\n\n const authProvider = useActiveAuthProvider();\n const { mutate: register, isLoading } = useRegister<RegisterFormTypes>({\n v3LegacyAuthProviderCompatible: Boolean(authProvider?.isLegacy),\n });\n\n const CardTitle = (\n <Title level={3} style={titleStyles}>\n {translate(\"pages.register.title\", \"Sign up for your account\")}\n </Title>\n );\n\n const renderProviders = () => {\n if (providers && providers.length > 0) {\n return (\n <>\n {providers.map((provider) => {\n return (\n <Button\n key={provider.name}\n type=\"ghost\"\n block\n icon={provider.icon}\n style={{\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n width: \"100%\",\n marginBottom: \"8px\",\n }}\n onClick={() =>\n register({\n providerName: provider.name,\n })\n }\n >\n {provider.label}\n </Button>\n );\n })}\n <Divider>{translate(\"pages.login.divider\", \"or\")}</Divider>\n </>\n );\n }\n return null;\n };\n\n const CardContent = (\n <Card\n title={CardTitle}\n headStyle={{ borderBottom: 0 }}\n style={containerStyles}\n {...(contentProps ?? {})}\n >\n {renderProviders()}\n <Form<RegisterFormTypes>\n layout=\"vertical\"\n form={form}\n onFinish={(values) => register(values)}\n requiredMark={false}\n {...formProps}\n >\n <Form.Item\n name=\"email\"\n label={translate(\"pages.register.email\", \"Email\")}\n rules={[\n { required: true },\n {\n type: \"email\",\n message: translate(\n \"pages.register.errors.validEmail\",\n \"Invalid email address\",\n ),\n },\n ]}\n >\n <Input\n size=\"large\"\n placeholder={translate(\n \"pages.register.fields.email\",\n \"Email\",\n )}\n />\n </Form.Item>\n <Form.Item\n name=\"password\"\n label={translate(\n \"pages.register.fields.password\",\n \"Password\",\n )}\n rules={[{ required: true }]}\n style={{ marginBottom: \"12px\" }}\n >\n <Input\n type=\"password\"\n placeholder=\"●●●●●●●●\"\n size=\"large\"\n />\n </Form.Item>\n <div\n style={{\n display: \"flex\",\n justifyContent: \"space-between\",\n marginBottom: \"12px\",\n }}\n >\n {loginLink ?? (\n <Text\n style={{\n fontSize: 12,\n marginLeft: \"auto\",\n }}\n >\n {translate(\n \"pages.login.buttons.haveAccount\",\n \"Have an account?\",\n )}{\" \"}\n <ActiveLink\n style={{\n fontWeight: \"bold\",\n }}\n to=\"/login\"\n >\n {translate(\"pages.login.signin\", \"Sign in\")}\n </ActiveLink>\n </Text>\n )}\n </div>\n\n <Form.Item>\n <Button\n type=\"primary\"\n size=\"large\"\n htmlType=\"submit\"\n loading={isLoading}\n block\n >\n {translate(\"pages.register.buttons.submit\", \"Sign up\")}\n </Button>\n </Form.Item>\n </Form>\n </Card>\n );\n\n return (\n <Layout style={layoutStyles} {...(wrapperProps ?? {})}>\n <Row\n justify=\"center\"\n align=\"middle\"\n style={{\n height: \"100vh\",\n }}\n >\n <Col xs={22}>\n {renderContent ? renderContent(CardContent) : CardContent}\n </Col>\n </Row>\n </Layout>\n );\n};\n","import React from \"react\";\nimport {\n ForgotPasswordPageProps,\n ForgotPasswordFormTypes,\n useRouterType,\n useLink,\n} from \"@refinedev/core\";\nimport {\n Row,\n Col,\n Layout,\n Card,\n Typography,\n Form,\n Input,\n Button,\n LayoutProps,\n CardProps,\n FormProps,\n} from \"antd\";\nimport {\n useTranslate,\n useRouterContext,\n useForgotPassword,\n} from \"@refinedev/core\";\n\nimport { layoutStyles, containerStyles, titleStyles } from \"../styles\";\n\ntype ResetPassworProps = ForgotPasswordPageProps<\n LayoutProps,\n CardProps,\n FormProps\n>;\n\nconst { Text, Title } = Typography;\n\n/**\n * **refine** has forgot password page form which is served on `/forgot-password` route when the `authProvider` configuration is provided.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/antd-auth-page/#forgot-password} for more details.\n */\nexport const ForgotPasswordPage: React.FC<ResetPassworProps> = ({\n loginLink,\n wrapperProps,\n contentProps,\n renderContent,\n formProps,\n}) => {\n const [form] = Form.useForm<ForgotPasswordFormTypes>();\n const translate = useTranslate();\n const routerType = useRouterType();\n const Link = useLink();\n const { Link: LegacyLink } = useRouterContext();\n\n const ActiveLink = routerType === \"legacy\" ? LegacyLink : Link;\n\n const { mutate: forgotPassword, isLoading } =\n useForgotPassword<ForgotPasswordFormTypes>();\n\n const CardTitle = (\n <Title level={3} style={titleStyles}>\n {translate(\"pages.forgotPassword.title\", \"Forgot your password?\")}\n </Title>\n );\n const CardContent = (\n <Card\n title={CardTitle}\n headStyle={{ borderBottom: 0 }}\n style={containerStyles}\n {...(contentProps ?? {})}\n >\n <Form<ForgotPasswordFormTypes>\n layout=\"vertical\"\n form={form}\n onFinish={(values) => forgotPassword(values)}\n requiredMark={false}\n {...formProps}\n >\n <Form.Item\n name=\"email\"\n label={translate(\n \"pages.forgotPassword.fields.email\",\n \"Email\",\n )}\n rules={[\n { required: true },\n {\n type: \"email\",\n message: translate(\n \"pages.forgotPassword.errors.validEmail\",\n \"Invalid email address\",\n ),\n },\n ]}\n >\n <Input\n type=\"email\"\n size=\"large\"\n placeholder={translate(\n \"pages.forgotPassword.fields.email\",\n \"Email\",\n )}\n />\n </Form.Item>\n <div\n style={{\n display: \"flex\",\n justifyContent: \"space-between\",\n marginBottom: \"12px\",\n }}\n >\n {loginLink ?? (\n <Text\n style={{\n fontSize: 12,\n marginLeft: \"auto\",\n }}\n >\n {translate(\n \"pages.register.buttons.haveAccount\",\n \"Have an account? \",\n )}{\" \"}\n <ActiveLink\n style={{\n fontWeight: \"bold\",\n }}\n to=\"/login\"\n >\n {translate(\"pages.login.signin\", \"Sign in\")}\n </ActiveLink>\n </Text>\n )}\n </div>\n <Form.Item>\n <Button\n type=\"primary\"\n size=\"large\"\n htmlType=\"submit\"\n loading={isLoading}\n block\n >\n {translate(\n \"pages.forgotPassword.buttons.submit\",\n \"Send reset instructions\",\n )}\n </Button>\n </Form.Item>\n </Form>\n </Card>\n );\n\n return (\n <Layout style={layoutStyles} {...(wrapperProps ?? {})}>\n <Row\n justify=\"center\"\n align=\"middle\"\n style={{\n height: \"100vh\",\n }}\n >\n <Col xs={22}>\n {renderContent ? renderContent(CardContent) : CardContent}\n </Col>\n </Row>\n </Layout>\n );\n};\n","import React from \"react\";\nimport {\n UpdatePasswordPageProps,\n UpdatePasswordFormTypes,\n useActiveAuthProvider,\n} from \"@refinedev/core\";\nimport {\n Row,\n Col,\n Layout,\n Card,\n Typography,\n Form,\n Input,\n Button,\n LayoutProps,\n CardProps,\n FormProps,\n} from \"antd\";\nimport { useTranslate, useUpdatePassword } from \"@refinedev/core\";\n\nimport { layoutStyles, containerStyles, titleStyles } from \"../styles\";\n\nconst { Title } = Typography;\n\ntype UpdatePasswordProps = UpdatePasswordPageProps<\n LayoutProps,\n CardProps,\n FormProps\n>;\n\n/**\n * **refine** has update password page form which is served on `/update-password` route when the `authProvider` configuration is provided.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/antd-auth-page/#update-password} for more details.\n */\nexport const UpdatePasswordPage: React.FC<UpdatePasswordProps> = ({\n wrapperProps,\n contentProps,\n renderContent,\n formProps,\n}) => {\n const [form] = Form.useForm<UpdatePasswordFormTypes>();\n const translate = useTranslate();\n const authProvider = useActiveAuthProvider();\n const { mutate: updatePassword, isLoading } =\n useUpdatePassword<UpdatePasswordFormTypes>({\n v3LegacyAuthProviderCompatible: Boolean(authProvider?.isLegacy),\n });\n\n const CardTitle = (\n <Title level={3} style={titleStyles}>\n {translate(\"pages.updatePassword.title\", \"Set New Password\")}\n </Title>\n );\n\n const CardContent = (\n <Card\n title={CardTitle}\n headStyle={{ borderBottom: 0 }}\n style={containerStyles}\n {...(contentProps ?? {})}\n >\n <Form<UpdatePasswordFormTypes>\n layout=\"vertical\"\n form={form}\n onFinish={(values) => updatePassword(values)}\n requiredMark={false}\n {...formProps}\n >\n <Form.Item\n name=\"password\"\n label={translate(\n \"pages.updatePassword.fields.password\",\n \"New Password\",\n )}\n rules={[{ required: true }]}\n style={{ marginBottom: \"12px\" }}\n >\n <Input\n type=\"password\"\n placeholder=\"●●●●●●●●\"\n size=\"large\"\n />\n </Form.Item>\n <Form.Item\n name=\"confirmPassword\"\n label={translate(\n \"pages.updatePassword.fields.confirmPassword\",\n \"Confirm New Password\",\n )}\n hasFeedback\n dependencies={[\"password\"]}\n rules={[\n {\n required: true,\n },\n ({ getFieldValue }) => ({\n validator(_, value) {\n if (\n !value ||\n getFieldValue(\"password\") === value\n ) {\n return Promise.resolve();\n }\n return Promise.reject(\n new Error(\n translate(\n \"pages.updatePassword.errors.confirmPasswordNotMatch\",\n \"Passwords do not match\",\n ),\n ),\n );\n },\n }),\n ]}\n style={{ marginBottom: \"12px\" }}\n >\n <Input\n type=\"password\"\n placeholder=\"●●●●●●●●\"\n size=\"large\"\n />\n </Form.Item>\n <Form.Item>\n <Button\n type=\"primary\"\n size=\"large\"\n htmlType=\"submit\"\n loading={isLoading}\n block\n >\n {translate(\n \"pages.updatePassword.buttons.submit\",\n \"Update\",\n )}\n </Button>\n </Form.Item>\n </Form>\n </Card>\n );\n\n return (\n <Layout style={layoutStyles} {...(wrapperProps ?? {})}>\n <Row\n justify=\"center\"\n align=\"middle\"\n style={{\n height: \"100vh\",\n }}\n >\n <Col xs={22}>\n {renderContent ? renderContent(CardContent) : CardContent}\n </Col>\n </Row>\n </Layout>\n );\n};\n","import React from \"react\";\nimport {\n useBreadcrumb,\n useLink,\n useRefineContext,\n useRouterContext,\n useRouterType,\n useResource,\n matchResourceFromRoute,\n} from \"@refinedev/core\";\nimport { RefineBreadcrumbProps } from \"@refinedev/ui-types\";\n\nimport {\n Breadcrumb as AntdBreadcrumb,\n BreadcrumbProps as AntdBreadcrumbProps,\n} from \"antd\";\nimport { HomeOutlined } from \"@ant-design/icons\";\n\nexport type BreadcrumbProps = RefineBreadcrumbProps<AntdBreadcrumbProps>;\n\nexport const Breadcrumb: React.FC<BreadcrumbProps> = ({\n breadcrumbProps,\n showHome = true,\n hideIcons = false,\n meta,\n}) => {\n const routerType = useRouterType();\n const { breadcrumbs } = useBreadcrumb({\n meta,\n });\n const Link = useLink();\n const { Link: LegacyLink } = useRouterContext();\n const { hasDashboard } = useRefineContext();\n\n const { resources } = useResource();\n\n const rootRouteResource = matchResourceFromRoute(\"/\", resources);\n\n const ActiveLink = routerType === \"legacy\" ? LegacyLink : Link;\n\n if (breadcrumbs.length === 1) {\n return null;\n }\n\n return (\n <AntdBreadcrumb {...breadcrumbProps}>\n {showHome && (hasDashboard || rootRouteResource.found) && (\n <AntdBreadcrumb.Item>\n <ActiveLink to=\"/\">\n {rootRouteResource?.resource?.meta?.icon ?? (\n <HomeOutlined />\n )}\n </ActiveLink>\n </AntdBreadcrumb.Item>\n )}\n {breadcrumbs.map(({ label, icon, href }) => {\n return (\n <AntdBreadcrumb.Item key={label}>\n {!hideIcons && icon}\n {href ? (\n <ActiveLink to={href}>{label}</ActiveLink>\n ) : (\n <span>{label}</span>\n )}\n </AntdBreadcrumb.Item>\n );\n })}\n </AntdBreadcrumb>\n );\n};\n","import React, { FC } from \"react\";\nimport {\n PageHeader as AntdPageHeader,\n PageHeaderProps as AntdPageHeaderProps,\n} from \"@ant-design/pro-layout\";\nimport { Button, Typography } from \"antd\";\nimport { ArrowLeftOutlined } from \"@ant-design/icons\";\n\nexport type PageHeaderProps = AntdPageHeaderProps;\n\nexport const PageHeader: FC<AntdPageHeaderProps> = ({ children, ...props }) => {\n const backIcon =\n typeof props.backIcon === \"undefined\" ? (\n <Button type=\"text\" icon={<ArrowLeftOutlined />} />\n ) : (\n props.backIcon\n );\n\n const title =\n typeof props.title === \"string\" ? (\n <Typography.Title level={4} style={{ marginBottom: 0 }}>\n {props.title}\n </Typography.Title>\n ) : (\n props.title\n );\n\n const subtitle =\n typeof props.title === \"string\" ? (\n <Typography.Title\n level={5}\n type=\"secondary\"\n style={{ marginBottom: 0 }}\n >\n {props.subTitle}\n </Typography.Title>\n ) : (\n props.subTitle\n );\n\n return (\n <AntdPageHeader\n {...props}\n backIcon={backIcon}\n title={title}\n subTitle={subtitle}\n style={{ padding: 0, ...props.style }}\n >\n {children}\n </AntdPageHeader>\n );\n};\n","import type { UploadFile, UploadChangeParam } from \"antd/lib/upload/interface\";\n\nexport const getValueFromEvent = (event: UploadChangeParam): UploadFile[] => {\n const { fileList } = event;\n\n return [...fileList];\n};\n\nexport function file2Base64(file: UploadFile): Promise<string> {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n\n const resultHandler = () => {\n if (reader.result) {\n reader.removeEventListener(\"load\", resultHandler, false);\n\n resolve(reader.result as string);\n }\n };\n\n reader.addEventListener(\"load\", resultHandler, false);\n\n reader.readAsDataURL(file.originFileObj as Blob);\n reader.onerror = (error) => {\n reader.removeEventListener(\"load\", resultHandler, false);\n return reject(error);\n };\n });\n}\n"],"mappings":"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","names":["src_exports","__export","AuthPage","BooleanField","Breadcrumb","CloneButton","Create","CreateButton","DateField","DeleteButton","Edit","EditButton","EmailField","ErrorComponent","ExportButton","FileField","FilterDropdown","Header","ImageField","ImportButton","Layout","List","ListButton","LoginPage","MarkdownField","NumberField","PageHeader","ReadyPage","RefreshButton","SaveButton","Show","ShowButton","Sider","TagField","TextField","Title","UrlField","WelcomePage","getDefaultFilter","getDefaultSortOrder","getValueFromEvent","mapAntdFilterToCrudFilter","mapAntdSorterToCrudSorting","notificationProvider","useCheckboxGroup","useDrawerForm","useEditableTable","useFileUploadState","useForm","useImport","useModal","useModalForm","useRadioGroup","useSelect","useSimpleList","useStepsForm","useTable","__toCommonJS","import_react","import_antd","import_sunflower_antd","import_core","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","useFormSF","form","useFormCoreResult","useFormCore","formLoading","onFinish","queryResult","id","warnWhenUnsavedChangesRefine","setWarnWhen","warnWhenUnsavedChanges","React","onKeyUp","event","onValuesChange","changeValues","saveButtonProps","values","error","import_react","import_sunflower_antd","import_core","import_react","useModalForm","mutationModeProp","syncWithLocation","rest","_a","_b","_c","_d","_e","_f","_g","_h","initiallySynced","React","useFormProps","useForm","form","formProps","id","setId","formLoading","mutationResult","resource","actionFromParams","parsed","go","action","syncingId","syncWithLocationKey","translate","warnWhen","setWarnWhen","sunflowerUseModal","useModalFormSF","visible","close","show","modalForm","modalFormProps","modalProps","openStatus","idFromParams","mutationModeContext","mutationMode","isLoadingMutation","isSuccessMutation","resetMutation","saveButtonPropsSF","handleClose","handleShow","import_react","import_core","import_react","useDrawerForm","mutationModeProp","syncWithLocation","rest","_a","_b","_c","initiallySynced","React","useFormProps","useForm","form","formProps","formLoading","mutationResult","id","setId","resource","actionFromParams","parsed","go","action","syncingId","syncWithLocationKey","open","setOpen","_d","openStatus","idFromParams","translate","warnWhen","setWarnWhen","mutationModeContext","mutationMode","isLoadingMutation","isSuccessMutation","resetMutation","saveButtonProps","deleteButtonProps","handleClose","handleShow","import_sunflower_antd","useStepsForm","props","useFormProps","useForm","form","formProps","stepsPropsSunflower","useStepsFormSF","values","_a","import_react","import_antd","import_sunflower_antd","import_core","import_core","getDefaultSortOrder","columnName","sorter","sort","getDefaultSortOrderCore","getDefaultFilter","filters","operatorType","getDefaultFilterCore","mapAntdSorterToCrudSorting","_a","crudSorting","a","b","_b","_c","_d","item","field","mapAntdFilterToCrudFilter","tableFilters","prevFilters","initialFilters","crudFilters","mapInitialFilter","acc","value","operator","i","p","import_core","import_react","PaginationLink","to","element","LegacyLink","routerType","Link","React","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","breakpoint","form","formSF","useFormSF","liveMode","hasPaginationString","isPaginationEnabled","preferredInitialFilters","data","isFetched","isLoading","onChange","paginationState","tableFilters","crudFilters","mapAntdFilterToCrudFilter","crudSorting","mapAntdSorterToCrudSorting","onFinish","value","searchFilters","antdPagination","page","type","element","link","PaginationLink","elementChildren","useEditableTable","props","table","useTable","edit","useForm","editId","setId","saveButtonProps","id","import_core","useSelect","props","queryResult","defaultValueQueryResult","onSearch","options","useSelectCore","import_core","useCheckboxGroup","resource","sort","sorters","filters","optionLabel","optionValue","queryOptions","fetchSize","pagination","liveMode","defaultValue","onLiveEvent","liveParams","meta","metaData","dataProviderName","queryResult","options","import_core","useRadioGroup","resource","sort","sorters","filters","optionLabel","optionValue","queryOptions","fetchSize","pagination","liveMode","defaultValue","onLiveEvent","liveParams","meta","metaData","dataProviderName","queryResult","options","import_react","import_antd","import_core","useImport","resourceFromProp","resourceName","mapData","item","paparseOptions","batchSize","onFinish","meta","metaData","dataProviderName","onProgressFromProp","_a","t","resource","mutationResult","isLoading","handleChange","useImportCore","totalAmount","processedAmount","description","React","import_react","import_antd","import_core","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","hasPaginationString","isPaginationEnabled","breakpoint","liveMode","form","data","isFetched","isLoading","onChange","page","onFinish","values","searchFilters","antdPagination","type","element","link","PaginationLink","elementChildren","import_react","useFileUploadState","isLoading","setIsloading","onChange","info","mapStatusToLoading","files","file","import_core","useModal","modalProps","show","close","visible","useCoreModal","e","_a","import_react","import_antd","import_react","import_antd","import_icons","UndoableNotification","notificationKey","message","cancelMutation","undoableTimeout","React","time","notificationProvider","key","message","description","type","cancelMutation","undoableTimeout","React","UndoableNotification","import_react","import_antd","import_react","import_antd","import_icons","import_core","drawerButtonStyles","SubMenu","Sider","TitleFromProps","render","meta","_a","collapsed","setCollapsed","drawerOpen","setDrawerOpen","isExistAuthentication","routerType","NewLink","LegacyLink","Link","TitleFromContext","translate","menuItems","selectedKey","defaultOpenKeys","breakpoint","hasDashboard","authProvider","mutateLogout","isMobile","RenderToTitle","Title","renderTreeView","tree","item","icon","label","route","key","name","children","parentName","options","React","isSelected","isRoute","logout","dashboard","items","renderSider","renderMenu","renderDrawerSider","drawerButtonStyles","import_core","import_antd","import_react","Text","Header","authProvider","user","React","AntdLayout","Layout","children","Header","Sider","Title","Footer","OffLayoutArea","breakpoint","SiderToRender","HeaderToRender","isSmall","React","AntdLayout","import_react","import_core","Title","collapsed","routerType","Link","LegacyLink","React","import_react","import_antd","import_icons","import_core","import_ui_types","CreateButton","resourceNameFromProps","propResourceNameOrRouteName","hideText","accessControl","meta","children","onClick","rest","_a","_b","accessControlEnabled","hideIfUnauthorized","translate","routerType","Link","LegacyLink","ActiveLink","generateCreateUrl","resource","data","createButtonDisabledTitle","createUrl","React","e","import_react","import_antd","import_icons","import_core","import_ui_types","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","React","e","import_react","import_antd","import_icons","import_core","import_ui_types","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","React","value","import_react","import_antd","import_icons","import_core","import_ui_types","RefreshButton","resourceNameFromProps","propResourceNameOrRouteName","recordItemId","hideText","meta","metaData","dataProviderName","children","onClick","rest","translate","resource","id","refetch","isFetching","React","e","import_react","import_antd","import_icons","import_core","import_ui_types","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","React","e","import_react","import_antd","import_icons","import_core","import_ui_types","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","React","e","import_react","import_antd","import_icons","import_core","import_ui_types","ExportButton","hideText","children","rest","translate","React","import_react","import_antd","import_icons","import_core","import_ui_types","SaveButton","hideText","children","rest","translate","React","import_react","import_antd","import_icons","import_core","import_ui_types","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","React","e","import_react","import_antd","import_icons","import_core","import_ui_types","ImportButton","uploadProps","buttonProps","hideText","children","translate","React","import_react","import_antd","import_core","List","canCreate","title","children","createButtonProps","resourceFromProps","wrapperProps","contentProps","headerProps","breadcrumbFromProps","headerButtonProps","headerButtons","_a","_b","_c","_d","_e","_f","_g","_h","translate","globalBreadcrumb","routerType","resource","isCreateButtonVisible","breadcrumb","defaultExtra","React","CreateButton","PageHeader","Breadcrumb","import_react","import_antd","import_core","Create","title","saveButtonProps","children","resourceFromProps","isLoading","breadcrumbFromProps","wrapperProps","headerProps","contentProps","headerButtonProps","headerButtons","footerButtonProps","footerButtons","goBackFromProps","_a","_b","_c","_d","_e","_f","translate","globalBreadcrumb","routerType","back","goBack","resource","action","breadcrumb","defaultFooterButtons","React","SaveButton","PageHeader","Breadcrumb","import_react","import_antd","import_core","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","globalBreadcrumb","mutationModeContext","mutationMode","routerType","back","go","goBack","legacyGoList","resource","action","idFromParams","goListPath","id","breadcrumb","isDeleteButtonVisible","defaultHeaderButtons","React","ListButton","RefreshButton","defaultFooterButtons","DeleteButton","SaveButton","PageHeader","Breadcrumb","import_react","import_antd","import_core","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","globalBreadcrumb","routerType","back","go","goBack","legacyGoList","resource","action","idFromParams","goListPath","id","breadcrumb","isDeleteButtonVisible","isEditButtonVisible","defaultHeaderButtons","React","ListButton","EditButton","DeleteButton","RefreshButton","PageHeader","Breadcrumb","import_react","import_antd","Text","TextField","value","rest","React","import_react","import_antd","TagField","value","rest","React","import_react","import_antd","Link","EmailField","value","rest","React","import_react","import_antd","ImageField","value","imageTitle","rest","React","import_react","import_antd","import_icons","BooleanField","value","valueLabelTrue","valueLabelFalse","trueIcon","React","falseIcon","rest","import_react","import_dayjs","import_antd","import_localizedFormat","dayjs","LocalizedFormat","defaultLocale","DateField","value","locales","dateFormat","rest","Text","React","import_react","FileField","title","src","rest","React","UrlField","import_react","import_antd","Link","UrlField","children","value","rest","React","import_react","import_antd","Text","toLocaleStringSupportsOptions","NumberField","value","locale","options","rest","number","React","import_react","import_react_markdown","import_remark_gfm","MarkdownField","value","React","ReactMarkdown","gfm","import_react","import_antd","import_dayjs","import_icons","import_core","FilterDropdown","props","setSelectedKeys","confirm","clearFilters","mapValue","selectedKeys","children","value","setValue","translate","clearFilter","onFilter","_mappedValue","mappedValue","keys","dayjs","onChange","e","changeEvent","target","childrenWithProps","React","child","import_react","import_core","import_antd","import_icons","Text","ErrorComponent","errorMessage","setErrorMessage","translate","push","go","routerType","resource","action","React","import_react","import_core","import_antd","layoutStyles","containerStyles","titleStyles","imageContainer","Text","Title","LoginPage","form","translate","authProvider","login","isLoading","CardTitle","React","titleStyles","layoutStyles","containerStyles","imageContainer","values","React","import_antd","import_icons","styles","Title","ReadyPage","React","import_antd","import_icons","styles","Title","WelcomePage","import_react","import_react","import_core","import_antd","layoutStyles","containerStyles","titleStyles","Text","Title","LoginPage","providers","registerLink","forgotPasswordLink","rememberMe","contentProps","wrapperProps","renderContent","formProps","form","translate","routerType","Link","LegacyLink","ActiveLink","authProvider","login","isLoading","CardTitle","React","titleStyles","renderProviders","provider","CardContent","containerStyles","values","layoutStyles","import_react","import_core","import_antd","Text","Title","RegisterPage","providers","loginLink","wrapperProps","contentProps","renderContent","formProps","form","translate","routerType","Link","LegacyLink","ActiveLink","authProvider","register","isLoading","CardTitle","React","titleStyles","renderProviders","provider","CardContent","containerStyles","values","layoutStyles","import_react","import_core","import_antd","Text","Title","ForgotPasswordPage","loginLink","wrapperProps","contentProps","renderContent","formProps","form","translate","routerType","Link","LegacyLink","ActiveLink","forgotPassword","isLoading","CardTitle","React","titleStyles","CardContent","containerStyles","values","layoutStyles","import_react","import_core","import_antd","Title","UpdatePasswordPage","wrapperProps","contentProps","renderContent","formProps","form","translate","authProvider","updatePassword","isLoading","CardTitle","React","titleStyles","CardContent","containerStyles","values","getFieldValue","_","value","layoutStyles","AuthPage","props","type","React","RegisterPage","ForgotPasswordPage","UpdatePasswordPage","LoginPage","import_react","import_core","import_antd","import_icons","Breadcrumb","breadcrumbProps","showHome","hideIcons","meta","_a","_b","_c","routerType","breadcrumbs","Link","LegacyLink","hasDashboard","resources","rootRouteResource","ActiveLink","React","AntdBreadcrumb","label","icon","href","import_react","import_pro_layout","import_antd","import_icons","PageHeader","children","props","backIcon","React","title","subtitle","AntdPageHeader","getValueFromEvent","event","fileList"]}
|