@topthink/components 1.0.58 → 1.0.59
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/es/{editor-widget-ebec8493.js → editor-widget-CQ3zv-Xu.js} +0 -1
- package/es/{image-zoom-912e2b3b.js → image-zoom-OrIPGqh0.js} +0 -1
- package/es/index-PGfJO0Bp.js +39 -0
- package/es/index-PvFKqXZL.js +1 -0
- package/es/{index-563b11c6.js → index-XkUorbN_.js} +13 -14
- package/es/index.js +1 -2
- package/es/{steps-afba29a7.js → steps-b_BcYIwk.js} +1 -2
- package/package.json +15 -15
- package/types/components/button.d.ts +9 -9
- package/types/components/card.d.ts +7 -7
- package/types/components/dimmer.d.ts +7 -7
- package/types/components/error.d.ts +5 -5
- package/types/components/form.d.ts +4 -4
- package/types/components/image-zoom.d.ts +4 -4
- package/types/components/lazy/form/index.d.ts +19 -19
- package/types/components/lazy/form/widgets/editor-widget.d.ts +6 -5
- package/types/components/lazy/image-zoom.d.ts +3 -3
- package/types/components/lazy/steps.d.ts +9 -9
- package/types/components/lazy/table/context.d.ts +2 -2
- package/types/components/lazy/table/index.d.ts +45 -45
- package/types/components/lazy/table/search.d.ts +23 -23
- package/types/components/lazy/table/use-selection.d.ts +3 -3
- package/types/components/loader.d.ts +9 -9
- package/types/components/loading-button.d.ts +7 -7
- package/types/components/modal/confirm.d.ts +8 -8
- package/types/components/modal/index.d.ts +32 -32
- package/types/components/modal/message.d.ts +26 -26
- package/types/components/modal/show.d.ts +3 -3
- package/types/components/modal-button.d.ts +17 -17
- package/types/components/modal-form.d.ts +10 -10
- package/types/components/number-format.d.ts +10 -10
- package/types/components/pagination.d.ts +11 -11
- package/types/components/request-button.d.ts +13 -13
- package/types/components/result.d.ts +15 -15
- package/types/components/space.d.ts +9 -9
- package/types/components/statistic.d.ts +7 -7
- package/types/components/steps.d.ts +10 -10
- package/types/components/table.d.ts +4 -4
- package/types/components/tooltip.d.ts +9 -9
- package/types/hooks/use-callback-ref.d.ts +2 -2
- package/types/hooks/use-controllable-state.d.ts +8 -8
- package/types/hooks/use-debounce.d.ts +2 -2
- package/types/hooks/use-overlay-state.d.ts +16 -16
- package/types/hooks/use-request.d.ts +21 -21
- package/types/hooks/use-safe-state.d.ts +4 -4
- package/types/hooks/use-state-with-callback.d.ts +2 -2
- package/types/hooks/use-unmounted-ref.d.ts +3 -3
- package/types/index.d.ts +33 -33
- package/types/request.d.ts +32 -32
- package/types/utils/is-record.d.ts +1 -1
- package/types/utils/message.d.ts +11 -11
- package/types/utils/toast.d.ts +11 -11
- package/types/utils/types.d.ts +7 -7
- package/types/utils/wait-pay-complete.d.ts +11 -11
- package/es/editor-widget-ebec8493.js.map +0 -1
- package/es/form-01bf45e9.js +0 -233
- package/es/form-01bf45e9.js.map +0 -1
- package/es/form-0a372a24.js +0 -2
- package/es/form-0a372a24.js.map +0 -1
- package/es/form-1791ea39.js +0 -236
- package/es/form-1791ea39.js.map +0 -1
- package/es/form-74ef0417.js +0 -2
- package/es/form-74ef0417.js.map +0 -1
- package/es/form-8925a750.js +0 -231
- package/es/form-8925a750.js.map +0 -1
- package/es/form-95db7eac.js +0 -2
- package/es/form-95db7eac.js.map +0 -1
- package/es/form-9c0e638a.js +0 -231
- package/es/form-9c0e638a.js.map +0 -1
- package/es/image-zoom-912e2b3b.js.map +0 -1
- package/es/index-1930b692.js +0 -67
- package/es/index-1930b692.js.map +0 -1
- package/es/index-1d379f3a.js +0 -562
- package/es/index-1d379f3a.js.map +0 -1
- package/es/index-2b97b70d.js +0 -2
- package/es/index-2b97b70d.js.map +0 -1
- package/es/index-303e1845.js +0 -560
- package/es/index-303e1845.js.map +0 -1
- package/es/index-4f51cece.js +0 -1352
- package/es/index-4f51cece.js.map +0 -1
- package/es/index-5142110c.js +0 -67
- package/es/index-5142110c.js.map +0 -1
- package/es/index-563b11c6.js.map +0 -1
- package/es/index-6ae8237d.js +0 -67
- package/es/index-6ae8237d.js.map +0 -1
- package/es/index-7a7c06a9.js +0 -40
- package/es/index-7a7c06a9.js.map +0 -1
- package/es/index-9869b1c6.js +0 -1350
- package/es/index-9869b1c6.js.map +0 -1
- package/es/index-a214613e.js +0 -40
- package/es/index-a214613e.js.map +0 -1
- package/es/index-a48179db.js +0 -1382
- package/es/index-a48179db.js.map +0 -1
- package/es/index-b34ecf90.js +0 -40
- package/es/index-b34ecf90.js.map +0 -1
- package/es/index-d964165a.js +0 -560
- package/es/index-d964165a.js.map +0 -1
- package/es/index-e17dc6f0.js +0 -40
- package/es/index-e17dc6f0.js.map +0 -1
- package/es/index.js.map +0 -1
- package/es/steps-afba29a7.js.map +0 -1
- package/es/steps-c27a3885.js +0 -34
- package/es/steps-c27a3885.js.map +0 -1
package/types/index.d.ts
CHANGED
|
@@ -1,33 +1,33 @@
|
|
|
1
|
-
export { default as Message } from './utils/message';
|
|
2
|
-
export { default as waitPayComplete } from './utils/wait-pay-complete';
|
|
3
|
-
export { default as Toast } from './utils/toast';
|
|
4
|
-
export { PaginationType } from './utils/types';
|
|
5
|
-
export { default as isRecord } from './utils/is-record';
|
|
6
|
-
export { default as Result } from './components/result';
|
|
7
|
-
export { default as Loader } from './components/loader';
|
|
8
|
-
export { default as Card } from './components/card';
|
|
9
|
-
export { default as Error } from './components/error';
|
|
10
|
-
export { default as Space } from './components/space';
|
|
11
|
-
export { default as Steps, Step } from './components/steps';
|
|
12
|
-
export { default as Statistic } from './components/statistic';
|
|
13
|
-
export { default as Pagination } from './components/pagination';
|
|
14
|
-
export { default as NumberFormat } from './components/number-format';
|
|
15
|
-
export { default as LoadingButton } from './components/loading-button';
|
|
16
|
-
export { default as ImageZoom } from './components/image-zoom';
|
|
17
|
-
export { default as Button, ButtonProps } from './components/button';
|
|
18
|
-
export { default as RequestButton } from './components/request-button';
|
|
19
|
-
export { default as Form, FormProps, FormType } from './components/form';
|
|
20
|
-
export { default as Table, TableProps, Columns, TableType } from './components/table';
|
|
21
|
-
export { default as ModalForm, ModalFormProps } from './components/modal-form';
|
|
22
|
-
export { default as ModalButton, ModalType, ModalButtonProps } from './components/modal-button';
|
|
23
|
-
export { default as Modal, ModalProps, MessageProps } from './components/modal';
|
|
24
|
-
export { default as Tooltip } from './components/tooltip';
|
|
25
|
-
export { default as useRequest } from './hooks/use-request';
|
|
26
|
-
export { default as useOverlayState } from './hooks/use-overlay-state';
|
|
27
|
-
export { default as useControllableState } from './hooks/use-controllable-state';
|
|
28
|
-
export { default as useDebounce } from './hooks/use-debounce';
|
|
29
|
-
export { default as useSafeState } from './hooks/use-safe-state';
|
|
30
|
-
export { default as request, RequestConfig, RequestInstance, isRequestError, showRequestError } from './request';
|
|
31
|
-
export type { UiSchema as FormUiSchema, Schema as FormSchema, WidgetProps as FormWidgetProps, Widget as FormWidget, IChangeEvent as FormChangeEvent, ISubmitEvent as FormSubmitEvent } from '@topthink/json-form';
|
|
32
|
-
export { default as styled, css, keyframes, createGlobalStyle, StyleSheetManager, ThemeProvider } from 'styled-components';
|
|
33
|
-
export { useAsync, useAsyncCallback } from 'react-async-hook';
|
|
1
|
+
export { default as Message } from './utils/message';
|
|
2
|
+
export { default as waitPayComplete } from './utils/wait-pay-complete';
|
|
3
|
+
export { default as Toast } from './utils/toast';
|
|
4
|
+
export { PaginationType } from './utils/types';
|
|
5
|
+
export { default as isRecord } from './utils/is-record';
|
|
6
|
+
export { default as Result } from './components/result';
|
|
7
|
+
export { default as Loader } from './components/loader';
|
|
8
|
+
export { default as Card } from './components/card';
|
|
9
|
+
export { default as Error } from './components/error';
|
|
10
|
+
export { default as Space } from './components/space';
|
|
11
|
+
export { default as Steps, Step } from './components/steps';
|
|
12
|
+
export { default as Statistic } from './components/statistic';
|
|
13
|
+
export { default as Pagination } from './components/pagination';
|
|
14
|
+
export { default as NumberFormat } from './components/number-format';
|
|
15
|
+
export { default as LoadingButton } from './components/loading-button';
|
|
16
|
+
export { default as ImageZoom } from './components/image-zoom';
|
|
17
|
+
export { default as Button, ButtonProps } from './components/button';
|
|
18
|
+
export { default as RequestButton } from './components/request-button';
|
|
19
|
+
export { default as Form, FormProps, FormType } from './components/form';
|
|
20
|
+
export { default as Table, TableProps, Columns, TableType } from './components/table';
|
|
21
|
+
export { default as ModalForm, ModalFormProps } from './components/modal-form';
|
|
22
|
+
export { default as ModalButton, ModalType, ModalButtonProps } from './components/modal-button';
|
|
23
|
+
export { default as Modal, ModalProps, MessageProps } from './components/modal';
|
|
24
|
+
export { default as Tooltip } from './components/tooltip';
|
|
25
|
+
export { default as useRequest } from './hooks/use-request';
|
|
26
|
+
export { default as useOverlayState } from './hooks/use-overlay-state';
|
|
27
|
+
export { default as useControllableState } from './hooks/use-controllable-state';
|
|
28
|
+
export { default as useDebounce } from './hooks/use-debounce';
|
|
29
|
+
export { default as useSafeState } from './hooks/use-safe-state';
|
|
30
|
+
export { default as request, RequestConfig, RequestInstance, isRequestError, showRequestError } from './request';
|
|
31
|
+
export type { UiSchema as FormUiSchema, Schema as FormSchema, WidgetProps as FormWidgetProps, Widget as FormWidget, IChangeEvent as FormChangeEvent, ISubmitEvent as FormSubmitEvent } from '@topthink/json-form';
|
|
32
|
+
export { default as styled, css, keyframes, createGlobalStyle, StyleSheetManager, ThemeProvider } from 'styled-components';
|
|
33
|
+
export { useAsync, useAsyncCallback } from 'react-async-hook';
|
package/types/request.d.ts
CHANGED
|
@@ -1,32 +1,32 @@
|
|
|
1
|
-
import { AxiosInstance, AxiosRequestConfig } from 'axios';
|
|
2
|
-
import { RetryConfig } from 'retry-axios';
|
|
3
|
-
export type Errors = string | {
|
|
4
|
-
[key: string]: string;
|
|
5
|
-
};
|
|
6
|
-
declare module 'retry-axios' {
|
|
7
|
-
interface RetryConfig {
|
|
8
|
-
retryDecider?: () => boolean;
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
declare module 'axios' {
|
|
12
|
-
interface AxiosError {
|
|
13
|
-
errors: Errors;
|
|
14
|
-
}
|
|
15
|
-
interface AxiosRequestConfig {
|
|
16
|
-
raxConfig?: RetryConfig;
|
|
17
|
-
authTokenName?: string;
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
export type RequestConfig = AxiosRequestConfig | string;
|
|
21
|
-
export type RequestInstance = AxiosInstance;
|
|
22
|
-
export declare const isRequestError: (payload: any) => payload is import("axios").AxiosError<unknown, any>;
|
|
23
|
-
export declare const showRequestError: (e: any) => void;
|
|
24
|
-
declare const request: {
|
|
25
|
-
<T = any>(config: RequestConfig): Promise<T>;
|
|
26
|
-
defaults: import("axios").AxiosDefaults<any>;
|
|
27
|
-
interceptors: {
|
|
28
|
-
request: import("axios").AxiosInterceptorManager<AxiosRequestConfig<any>>;
|
|
29
|
-
response: import("axios").AxiosInterceptorManager<import("axios").AxiosResponse<any, any>>;
|
|
30
|
-
};
|
|
31
|
-
};
|
|
32
|
-
export default request;
|
|
1
|
+
import { AxiosInstance, AxiosRequestConfig } from 'axios';
|
|
2
|
+
import { RetryConfig } from 'retry-axios';
|
|
3
|
+
export type Errors = string | {
|
|
4
|
+
[key: string]: string;
|
|
5
|
+
};
|
|
6
|
+
declare module 'retry-axios' {
|
|
7
|
+
interface RetryConfig {
|
|
8
|
+
retryDecider?: () => boolean;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
declare module 'axios' {
|
|
12
|
+
interface AxiosError {
|
|
13
|
+
errors: Errors;
|
|
14
|
+
}
|
|
15
|
+
interface AxiosRequestConfig {
|
|
16
|
+
raxConfig?: RetryConfig;
|
|
17
|
+
authTokenName?: string;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
export type RequestConfig = AxiosRequestConfig | string;
|
|
21
|
+
export type RequestInstance = AxiosInstance;
|
|
22
|
+
export declare const isRequestError: (payload: any) => payload is import("axios").AxiosError<unknown, any>;
|
|
23
|
+
export declare const showRequestError: (e: any) => void;
|
|
24
|
+
declare const request: {
|
|
25
|
+
<T = any>(config: RequestConfig): Promise<T>;
|
|
26
|
+
defaults: import("axios").AxiosDefaults<any>;
|
|
27
|
+
interceptors: {
|
|
28
|
+
request: import("axios").AxiosInterceptorManager<AxiosRequestConfig<any>>;
|
|
29
|
+
response: import("axios").AxiosInterceptorManager<import("axios").AxiosResponse<any, any>>;
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
export default request;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export default function isRecord(data: any): data is Record<string, string>;
|
|
1
|
+
export default function isRecord(data: any): data is Record<string, string>;
|
package/types/utils/message.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { SweetAlertOptions, SweetAlertResult } from 'sweetalert2';
|
|
2
|
-
interface MessageOptions<T = any> extends SweetAlertOptions<T> {
|
|
3
|
-
}
|
|
4
|
-
declare const Message: {
|
|
5
|
-
confirm: <T = any>(options: MessageOptions<T>) => Promise<boolean>;
|
|
6
|
-
success: (options: MessageOptions) => void;
|
|
7
|
-
error: (options: MessageOptions) => void;
|
|
8
|
-
close: (result?: SweetAlertResult) => void;
|
|
9
|
-
defaults: MessageOptions<any>;
|
|
10
|
-
};
|
|
11
|
-
export default Message;
|
|
1
|
+
import { SweetAlertOptions, SweetAlertResult } from 'sweetalert2';
|
|
2
|
+
interface MessageOptions<T = any> extends SweetAlertOptions<T> {
|
|
3
|
+
}
|
|
4
|
+
declare const Message: {
|
|
5
|
+
confirm: <T = any>(options: MessageOptions<T>) => Promise<boolean>;
|
|
6
|
+
success: (options: MessageOptions) => void;
|
|
7
|
+
error: (options: MessageOptions) => void;
|
|
8
|
+
close: (result?: SweetAlertResult) => void;
|
|
9
|
+
defaults: MessageOptions<any>;
|
|
10
|
+
};
|
|
11
|
+
export default Message;
|
package/types/utils/toast.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { NoticeContent } from 'rc-notification/lib/Notification';
|
|
2
|
-
import { NotificationProps } from 'rc-notification/es/Notification';
|
|
3
|
-
declare const defaultOptions: NotificationProps & {
|
|
4
|
-
getContainer?: () => HTMLElement;
|
|
5
|
-
};
|
|
6
|
-
declare const types: readonly ["error", "success", "info"];
|
|
7
|
-
type ToastType = Record<typeof types[number], (content: string, options?: NoticeContent) => void> & {
|
|
8
|
-
defaults: typeof defaultOptions;
|
|
9
|
-
};
|
|
10
|
-
declare const _default: ToastType;
|
|
11
|
-
export default _default;
|
|
1
|
+
import { NoticeContent } from 'rc-notification/lib/Notification';
|
|
2
|
+
import { NotificationProps } from 'rc-notification/es/Notification';
|
|
3
|
+
declare const defaultOptions: NotificationProps & {
|
|
4
|
+
getContainer?: () => HTMLElement;
|
|
5
|
+
};
|
|
6
|
+
declare const types: readonly ["error", "success", "info"];
|
|
7
|
+
type ToastType = Record<typeof types[number], (content: string, options?: NoticeContent) => void> & {
|
|
8
|
+
defaults: typeof defaultOptions;
|
|
9
|
+
};
|
|
10
|
+
declare const _default: ToastType;
|
|
11
|
+
export default _default;
|
package/types/utils/types.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export interface PaginationType<T = any> {
|
|
2
|
-
total: number;
|
|
3
|
-
current_page: number;
|
|
4
|
-
per_page: number;
|
|
5
|
-
last_page: number;
|
|
6
|
-
data: T[];
|
|
7
|
-
}
|
|
1
|
+
export interface PaginationType<T = any> {
|
|
2
|
+
total: number;
|
|
3
|
+
current_page: number;
|
|
4
|
+
per_page: number;
|
|
5
|
+
last_page: number;
|
|
6
|
+
data: T[];
|
|
7
|
+
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
interface PayResult {
|
|
2
|
-
pay_url: string;
|
|
3
|
-
order_no: string;
|
|
4
|
-
}
|
|
5
|
-
interface Options {
|
|
6
|
-
result: PayResult;
|
|
7
|
-
checkUrl: string;
|
|
8
|
-
onComplete?: () => void;
|
|
9
|
-
}
|
|
10
|
-
export default function waitPayComplete(options: Options): void;
|
|
11
|
-
export {};
|
|
1
|
+
interface PayResult {
|
|
2
|
+
pay_url: string;
|
|
3
|
+
order_no: string;
|
|
4
|
+
}
|
|
5
|
+
interface Options {
|
|
6
|
+
result: PayResult;
|
|
7
|
+
checkUrl: string;
|
|
8
|
+
onComplete?: () => void;
|
|
9
|
+
}
|
|
10
|
+
export default function waitPayComplete(options: Options): void;
|
|
11
|
+
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"editor-widget-ebec8493.js","sources":["../src/components/lazy/form/widgets/editor-widget.tsx"],"sourcesContent":["import { WidgetProps } from '@rjsf/core';\r\nimport '@toast-ui/editor/dist/toastui-editor-only.css';\r\nimport '@toast-ui/editor/dist/i18n/zh-cn';\r\nimport { Editor, EditorProps } from '@toast-ui/react-editor';\r\nimport { useRef } from 'react';\r\nimport styled from 'styled-components';\r\n\r\ninterface Options {\r\n editType?: 'wysiwyg' | 'markdown';\r\n outputType?: 'html' | 'markdown';\r\n onUpload?: (file: File | Blob) => Promise<string>;\r\n}\r\n\r\nexport default function EditorWidget(props: WidgetProps) {\r\n const { value, onChange, placeholder, autofocus, options } = props;\r\n\r\n const { editType = 'wysiwyg', outputType = 'markdown', onUpload } = options as Options;\r\n\r\n const ref = useRef<Editor>(null);\r\n\r\n const hooks: EditorProps['hooks'] = {};\r\n\r\n if (onUpload) {\r\n hooks.addImageBlobHook = async (file, callback) => {\r\n const url = await onUpload(file);\r\n callback(url);\r\n };\r\n }\r\n\r\n return <Container>\r\n <Editor\r\n ref={ref}\r\n placeholder={placeholder}\r\n usageStatistics={false}\r\n hooks={hooks}\r\n autofocus={autofocus}\r\n linkAttributes={{\r\n target: '_blank'\r\n }}\r\n onChange={() => {\r\n const instance = ref.current?.getInstance();\r\n if (instance) {\r\n if (outputType === 'markdown') {\r\n onChange(instance.getMarkdown());\r\n } else {\r\n onChange(instance.getHTML());\r\n }\r\n }\r\n }}\r\n language='zh-CN'\r\n initialValue={value}\r\n previewStyle='vertical'\r\n height='600px'\r\n initialEditType={editType}\r\n />\r\n </Container>;\r\n}\r\n\r\nconst Container = styled.div`\r\n .ProseMirror {\r\n position: relative;\r\n word-wrap: break-word;\r\n white-space: break-spaces;\r\n -webkit-font-variant-ligatures: none;\r\n font-variant-ligatures: none;\r\n font-feature-settings: \"liga\" 0;\r\n font-size: 15px;\r\n overflow-y: auto;\r\n overflow-X: hidden;\r\n height: 100%;\r\n\r\n &:focus {\r\n outline: none;\r\n }\r\n\r\n pre {\r\n white-space: pre-wrap;\r\n }\r\n\r\n li {\r\n position: relative;\r\n }\r\n\r\n .placeholder {\r\n color: #999;\r\n }\r\n }\r\n\r\n .ProseMirror-hideselection *::selection {\r\n background: transparent;\r\n }\r\n\r\n .ProseMirror-hideselection *::-moz-selection {\r\n background: transparent;\r\n }\r\n\r\n .ProseMirror-hideselection {\r\n caret-color: transparent;\r\n }\r\n\r\n .ProseMirror-selectednode {\r\n outline: 2px solid #8cf;\r\n }\r\n\r\n /* Make sure li selections wrap around markers */\r\n\r\n li.ProseMirror-selectednode {\r\n outline: none;\r\n }\r\n\r\n li.ProseMirror-selectednode:after {\r\n content: \"\";\r\n position: absolute;\r\n left: -32px;\r\n right: -2px;\r\n top: -2px;\r\n bottom: -2px;\r\n border: 2px solid #8cf;\r\n pointer-events: none;\r\n }\r\n\r\n /* Protect against generic img rules */\r\n\r\n img.ProseMirror-separator {\r\n display: inline !important;\r\n border: none !important;\r\n margin: 0 !important;\r\n }\r\n\r\n\r\n .ProseMirror-selectednode {\r\n outline: none;\r\n }\r\n\r\n table.ProseMirror-selectednode {\r\n border-radius: 2px;\r\n outline: 2px solid #00a9ff;\r\n }\r\n\r\n .html-block.ProseMirror-selectednode {\r\n border-radius: 2px;\r\n outline: 2px solid #00a9ff;\r\n }\r\n\r\n .toastui-editor-pseudo-clipboard {\r\n position: fixed;\r\n opacity: 0;\r\n width: 0;\r\n height: 0;\r\n left: -1000px;\r\n top: -1000px;\r\n z-index: -1;\r\n }\r\n\r\n .toastui-editor-defaultUI {\r\n font-family: inherit;\r\n\r\n .ProseMirror {\r\n height: 100%;\r\n padding: 14px !important;\r\n font-size: 1rem;\r\n }\r\n\r\n .toastui-editor-defaultUI-toolbar {\r\n padding: 0 5px;\r\n }\r\n\r\n .toastui-editor-md-container {\r\n .toastui-editor-md-preview {\r\n padding: 5px 10px;\r\n\r\n .toastui-editor-contents {\r\n padding-top: 0;\r\n }\r\n }\r\n }\r\n }\r\n\r\n .toastui-editor-contents {\r\n -ms-text-size-adjust: 100%;\r\n -webkit-text-size-adjust: 100%;\r\n line-height: 1.2;\r\n word-wrap: break-word;\r\n\r\n & > *:first-child {\r\n margin-top: 0 !important;\r\n }\r\n\r\n & > *:last-child {\r\n margin-bottom: 0 !important;\r\n }\r\n\r\n h1, h2, h3, h4, h5, h6, p, ul, ol, blockquote, pre, table, audio, video {\r\n margin: 1em 0;\r\n line-height: 1.2;\r\n padding: 0;\r\n\r\n &:last-child {\r\n margin-bottom: 0 !important;\r\n }\r\n\r\n &:first-child {\r\n margin-top: 0 !important;\r\n }\r\n }\r\n\r\n p {\r\n margin-bottom: 1em;\r\n line-height: 2;\r\n }\r\n\r\n h1, h2, h3, h4, h5, h6 {\r\n font-weight: normal;\r\n\r\n &.align-right {\r\n text-align: right;\r\n }\r\n\r\n &.align-center {\r\n text-align: center;\r\n }\r\n }\r\n\r\n h1 {\r\n font-size: 2em;\r\n line-height: 1.2;\r\n border-bottom: 1px solid #eeeeee;\r\n padding-bottom: .5em;\r\n }\r\n\r\n h2 {\r\n padding-bottom: .4em;\r\n font-size: 1.3em;\r\n line-height: 1.2;\r\n border-bottom: 1px solid #eeeeee\r\n }\r\n\r\n h3 {\r\n font-size: 1.2em;\r\n line-height: 1.2;\r\n }\r\n\r\n h4 {\r\n font-size: 1.1em;\r\n line-height: 1.2;\r\n }\r\n\r\n h5 {\r\n font-size: 1em;\r\n line-height: 1.2;\r\n }\r\n\r\n hr {\r\n border: 0;\r\n border-bottom: 1px solid #eeeeee;\r\n margin-bottom: 0.5em;\r\n }\r\n\r\n ul {\r\n padding-left: 2em;\r\n\r\n ul {\r\n margin: 0;\r\n }\r\n }\r\n\r\n ol {\r\n padding-left: 2em;\r\n }\r\n\r\n li {\r\n line-height: 2;\r\n\r\n &.task-list-item {\r\n list-style: none;\r\n position: relative;\r\n\r\n input[type=checkbox] {\r\n position: absolute;\r\n left: -1.5em;\r\n top: 0.5em;\r\n width: 1em;\r\n height: 1em;\r\n }\r\n }\r\n }\r\n\r\n code {\r\n display: inline-block;\r\n border-radius: 4px;\r\n padding: .2em .4em;\r\n background-color: #f7f7f7;\r\n word-break: break-all;\r\n font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;\r\n white-space: pre;\r\n line-height: 1.3;\r\n margin: -.2em .4em;\r\n }\r\n\r\n pre {\r\n padding: 1.05em;\r\n overflow: auto;\r\n line-height: 1.45;\r\n background-color: #f7f7f7;\r\n border: 0;\r\n border-radius: 3px;\r\n font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;\r\n }\r\n\r\n\r\n pre > code {\r\n display: inline;\r\n max-width: 100%;\r\n padding: 0;\r\n margin: 0;\r\n overflow: initial;\r\n line-height: inherit;\r\n background-color: rgba(0, 0, 0, 0);\r\n border: 0;\r\n tab-size: 4;\r\n }\r\n\r\n table {\r\n border-collapse: collapse;\r\n table-layout: fixed;\r\n width: 100%;\r\n line-height: 1.8;\r\n border-spacing: 0;\r\n\r\n th {\r\n text-align: left;\r\n\r\n &[align='center'] {\r\n text-align: center;\r\n }\r\n\r\n &[align='right'] {\r\n text-align: right;\r\n }\r\n }\r\n\r\n th, td {\r\n border: 1px solid #e0e0e0;\r\n padding: 3px 12px;\r\n height: 34px;\r\n }\r\n\r\n tr:hover td {\r\n background-color: #f1f1f1;\r\n }\r\n }\r\n\r\n img {\r\n max-width: 100%;\r\n display: inline-block;\r\n padding: 3px;\r\n vertical-align: middle;\r\n }\r\n\r\n a {\r\n text-decoration: none;\r\n color: var(--bs-primary);\r\n\r\n &:hover {\r\n text-decoration: underline;\r\n }\r\n }\r\n\r\n blockquote {\r\n padding: 5px 5px 5px 15px;\r\n color: #777777;\r\n border-left: 4px solid #dddddd;\r\n }\r\n\r\n video {\r\n display: block;\r\n width: 100%;\r\n }\r\n\r\n audio {\r\n display: block;\r\n width: 100%;\r\n }\r\n\r\n .task-list-item {\r\n border: 0;\r\n list-style: none;\r\n padding-left: 24px;\r\n margin-left: -24px;\r\n }\r\n\r\n .task-list-item::before {\r\n background-repeat: no-repeat;\r\n background-size: 18px 18px;\r\n background-position: center;\r\n content: '';\r\n margin-left: 0;\r\n margin-top: 0;\r\n border-radius: 2px;\r\n height: 18px;\r\n width: 18px;\r\n position: absolute;\r\n left: 0;\r\n top: 7px;\r\n cursor: pointer;\r\n background: transparent url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgdmlld0JveD0iMCAwIDE4IDE4Ij4KICAgIDxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgPGcgZmlsbD0iI0ZGRiIgc3Ryb2tlPSIjQ0NDIj4KICAgICAgICAgICAgPGc+CiAgICAgICAgICAgICAgICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTAzMCAtMjk2KSB0cmFuc2xhdGUoNzg4IDE5MikgdHJhbnNsYXRlKDI0MiAxMDQpIj4KICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD0iMTciIGhlaWdodD0iMTciIHg9Ii41IiB5PSIuNSIgcng9IjIiLz4KICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgPC9nPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+Cg==);\r\n }\r\n\r\n .task-list-item.checked::before {\r\n background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgdmlld0JveD0iMCAwIDE4IDE4Ij4KICAgIDxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgPGcgZmlsbD0iIzRCOTZFNiI+CiAgICAgICAgICAgIDxnPgogICAgICAgICAgICAgICAgPGc+CiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTE2IDBjMS4xMDUgMCAyIC44OTUgMiAydjE0YzAgMS4xMDUtLjg5NSAyLTIgMkgyYy0xLjEwNSAwLTItLjg5NS0yLTJWMkMwIC44OTUuODk1IDAgMiAwaDE0em0tMS43OTMgNS4yOTNjLS4zOS0uMzktMS4wMjQtLjM5LTEuNDE0IDBMNy41IDEwLjU4NSA1LjIwNyA4LjI5M2wtLjA5NC0uMDgzYy0uMzkyLS4zMDUtLjk2LS4yNzgtMS4zMi4wODMtLjM5LjM5LS4zOSAxLjAyNCAwIDEuNDE0bDMgMyAuMDk0LjA4M2MuMzkyLjMwNS45Ni4yNzggMS4zMi0uMDgzbDYtNiAuMDgzLS4wOTRjLjMwNS0uMzkyLjI3OC0uOTYtLjA4My0xLjMyeiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTEwNTAgLTI5NikgdHJhbnNsYXRlKDc4OCAxOTIpIHRyYW5zbGF0ZSgyNjIgMTA0KSIvPgogICAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICA8L2c+CiAgICAgICAgPC9nPgogICAgPC9nPgo8L3N2Zz4K);\r\n }\r\n }\r\n`;\r\n"],"names":["EditorWidget","props","value","onChange","placeholder","autofocus","options","editType","outputType","onUpload","ref","useRef","hooks","addImageBlobHook","async","file","callback","_jsx","Container","children","Editor","usageStatistics","linkAttributes","target","instance","current","getInstance","getMarkdown","getHTML","language","initialValue","previewStyle","height","initialEditType","styled","div"],"mappings":"uPAawB,SAAAA,EAAaC,GACjC,MAAMC,MAAEA,EAAKC,SAAEA,EAAQC,YAAEA,EAAWC,UAAEA,EAASC,QAAEA,GAAYL,GAEvDM,SAAEA,EAAW,UAASC,WAAEA,EAAa,WAAUC,SAAEA,GAAaH,EAE9DI,EAAMC,EAAe,MAErBC,EAA8B,CAAA,EASpC,OAPIH,IACAG,EAAMC,iBAAmBC,MAAOC,EAAMC,KAElCA,QADkBP,EAASM,GACd,GAIdE,EAACC,EAAS,CAAAC,SACbF,EAACG,EACG,CAAAV,IAAKA,EACLN,YAAaA,EACbiB,iBAAiB,EACjBT,MAAOA,EACPP,UAAWA,EACXiB,eAAgB,CACZC,OAAQ,UAEZpB,SAAU,KACN,MAAMqB,EAAWd,EAAIe,SAASC,cAC1BF,GAEIrB,EADe,aAAfK,EACSgB,EAASG,cAETH,EAASI,UAEzB,EAELC,SAAS,QACTC,aAAc5B,EACd6B,aAAa,WACbC,OAAO,QACPC,gBAAiB1B,KAG7B,CAEA,MAAMW,EAAYgB,EAAOC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/es/form-01bf45e9.js
DELETED
|
@@ -1,233 +0,0 @@
|
|
|
1
|
-
import { jsx } from 'react/jsx-runtime';
|
|
2
|
-
import JsonForm, { getRegistry } from '@topthink/json-form';
|
|
3
|
-
import { forwardRef, useState, useCallback } from 'react';
|
|
4
|
-
import axios from 'axios';
|
|
5
|
-
import { u as useSafeState, r as request, B as Button } from './index-a48179db.js';
|
|
6
|
-
import { mapValues } from 'lodash';
|
|
7
|
-
import 'sweetalert2/dist/sweetalert2.js';
|
|
8
|
-
import 'sweetalert2-react-content';
|
|
9
|
-
import 'react-bootstrap';
|
|
10
|
-
import 'query-string';
|
|
11
|
-
import 'retry-axios';
|
|
12
|
-
import '@babel/runtime/helpers/defineProperty';
|
|
13
|
-
import 'rc-notification';
|
|
14
|
-
import 'styled-components';
|
|
15
|
-
import 'classnames';
|
|
16
|
-
import 'rc-steps';
|
|
17
|
-
import 'rc-steps/assets/index.css';
|
|
18
|
-
import 'react-async-hook';
|
|
19
|
-
|
|
20
|
-
const localize = require('ajv-i18n/localize/zh');
|
|
21
|
-
const toExtraErrors = error => {
|
|
22
|
-
const errors = error.errors;
|
|
23
|
-
if (typeof errors === 'string') {
|
|
24
|
-
return {
|
|
25
|
-
__errors: [errors]
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
return mapValues(errors, e => {
|
|
29
|
-
return {
|
|
30
|
-
__errors: [e]
|
|
31
|
-
};
|
|
32
|
-
});
|
|
33
|
-
};
|
|
34
|
-
const widgets = {
|
|
35
|
-
upload: function (_ref) {
|
|
36
|
-
let {
|
|
37
|
-
options,
|
|
38
|
-
...props
|
|
39
|
-
} = _ref;
|
|
40
|
-
const {
|
|
41
|
-
widgets
|
|
42
|
-
} = getRegistry();
|
|
43
|
-
if (options.endpoint) {
|
|
44
|
-
options.onUpload = async file => {
|
|
45
|
-
const data = new FormData();
|
|
46
|
-
data.set('file', file);
|
|
47
|
-
const {
|
|
48
|
-
url,
|
|
49
|
-
value
|
|
50
|
-
} = await request({
|
|
51
|
-
url: options.endpoint,
|
|
52
|
-
method: 'post',
|
|
53
|
-
data
|
|
54
|
-
});
|
|
55
|
-
return {
|
|
56
|
-
url,
|
|
57
|
-
value
|
|
58
|
-
};
|
|
59
|
-
};
|
|
60
|
-
}
|
|
61
|
-
return jsx(widgets.upload, {
|
|
62
|
-
...props,
|
|
63
|
-
options: options
|
|
64
|
-
});
|
|
65
|
-
},
|
|
66
|
-
editor: function (_ref2) {
|
|
67
|
-
let {
|
|
68
|
-
options,
|
|
69
|
-
...props
|
|
70
|
-
} = _ref2;
|
|
71
|
-
const {
|
|
72
|
-
widgets
|
|
73
|
-
} = getRegistry();
|
|
74
|
-
if (options.endpoint) {
|
|
75
|
-
options.onUpload = async file => {
|
|
76
|
-
const data = new FormData();
|
|
77
|
-
data.set('file', file);
|
|
78
|
-
const {
|
|
79
|
-
url
|
|
80
|
-
} = await request({
|
|
81
|
-
url: options.endpoint,
|
|
82
|
-
method: 'post',
|
|
83
|
-
data
|
|
84
|
-
});
|
|
85
|
-
return url;
|
|
86
|
-
};
|
|
87
|
-
}
|
|
88
|
-
return jsx(widgets.editor, {
|
|
89
|
-
...props,
|
|
90
|
-
options: options
|
|
91
|
-
});
|
|
92
|
-
},
|
|
93
|
-
typeahead: function (_ref3) {
|
|
94
|
-
let {
|
|
95
|
-
options,
|
|
96
|
-
...props
|
|
97
|
-
} = _ref3;
|
|
98
|
-
const {
|
|
99
|
-
widgets
|
|
100
|
-
} = getRegistry();
|
|
101
|
-
if (options.endpoint) {
|
|
102
|
-
options.onSearch = async _ref4 => {
|
|
103
|
-
let {
|
|
104
|
-
value,
|
|
105
|
-
query
|
|
106
|
-
} = _ref4;
|
|
107
|
-
return await request({
|
|
108
|
-
url: options.endpoint,
|
|
109
|
-
params: {
|
|
110
|
-
value,
|
|
111
|
-
query
|
|
112
|
-
}
|
|
113
|
-
});
|
|
114
|
-
};
|
|
115
|
-
}
|
|
116
|
-
return jsx(widgets.typeahead, {
|
|
117
|
-
...props,
|
|
118
|
-
options: options
|
|
119
|
-
});
|
|
120
|
-
}
|
|
121
|
-
};
|
|
122
|
-
const Form = forwardRef((_ref5, ref) => {
|
|
123
|
-
let {
|
|
124
|
-
action,
|
|
125
|
-
method = 'post',
|
|
126
|
-
onSuccess,
|
|
127
|
-
formData,
|
|
128
|
-
onSubmitting,
|
|
129
|
-
onSubmit,
|
|
130
|
-
onChange,
|
|
131
|
-
submitText = '提交',
|
|
132
|
-
transformData,
|
|
133
|
-
children,
|
|
134
|
-
...props
|
|
135
|
-
} = _ref5;
|
|
136
|
-
const [extraErrors, setExtraErrors] = useState();
|
|
137
|
-
const [loading, setLoading] = useSafeState(false);
|
|
138
|
-
const [data, setData] = useState(formData);
|
|
139
|
-
const handleSubmit = useCallback(async (e, nativeEvent) => {
|
|
140
|
-
if (!loading) {
|
|
141
|
-
try {
|
|
142
|
-
setLoading(true);
|
|
143
|
-
if (onSubmitting) {
|
|
144
|
-
onSubmitting(true);
|
|
145
|
-
}
|
|
146
|
-
if (action) {
|
|
147
|
-
let {
|
|
148
|
-
formData
|
|
149
|
-
} = e;
|
|
150
|
-
if (transformData) {
|
|
151
|
-
formData = transformData(formData);
|
|
152
|
-
}
|
|
153
|
-
//todo 包含File对象需转FormData
|
|
154
|
-
try {
|
|
155
|
-
const result = await request({
|
|
156
|
-
url: action,
|
|
157
|
-
method,
|
|
158
|
-
data: formData
|
|
159
|
-
});
|
|
160
|
-
setExtraErrors(undefined);
|
|
161
|
-
if (onSuccess) {
|
|
162
|
-
await onSuccess(result);
|
|
163
|
-
}
|
|
164
|
-
return result;
|
|
165
|
-
} catch (e) {
|
|
166
|
-
if (axios.isAxiosError(e)) {
|
|
167
|
-
setExtraErrors(toExtraErrors(e));
|
|
168
|
-
} else {
|
|
169
|
-
throw e;
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
} else if (onSubmit) {
|
|
173
|
-
return await onSubmit(e, nativeEvent);
|
|
174
|
-
}
|
|
175
|
-
} finally {
|
|
176
|
-
setLoading(false);
|
|
177
|
-
if (onSubmitting) {
|
|
178
|
-
onSubmitting(false);
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
}, [action, method, onSubmit]);
|
|
183
|
-
const handleChange = useCallback(e => {
|
|
184
|
-
const {
|
|
185
|
-
formData
|
|
186
|
-
} = e;
|
|
187
|
-
setData(formData);
|
|
188
|
-
if (onChange) {
|
|
189
|
-
onChange(e);
|
|
190
|
-
}
|
|
191
|
-
}, [setData, onChange]);
|
|
192
|
-
const transformErrors = useCallback(errors => {
|
|
193
|
-
errors = errors.map(error => ({
|
|
194
|
-
keyword: error.name,
|
|
195
|
-
dataPath: error.property,
|
|
196
|
-
...error
|
|
197
|
-
}));
|
|
198
|
-
localize(errors);
|
|
199
|
-
return errors;
|
|
200
|
-
}, []);
|
|
201
|
-
const submit = jsx(Button, {
|
|
202
|
-
className: 'px-4',
|
|
203
|
-
loading: loading,
|
|
204
|
-
type: 'submit',
|
|
205
|
-
variant: 'primary',
|
|
206
|
-
children: submitText
|
|
207
|
-
});
|
|
208
|
-
if (typeof children === 'function') {
|
|
209
|
-
children = children({
|
|
210
|
-
submit,
|
|
211
|
-
loading
|
|
212
|
-
});
|
|
213
|
-
}
|
|
214
|
-
return jsx(JsonForm, {
|
|
215
|
-
ref: ref,
|
|
216
|
-
extraErrors: extraErrors,
|
|
217
|
-
onSubmit: handleSubmit,
|
|
218
|
-
transformErrors: transformErrors,
|
|
219
|
-
noHtml5Validate: true,
|
|
220
|
-
noValidate: true,
|
|
221
|
-
...props,
|
|
222
|
-
formData: data,
|
|
223
|
-
onChange: handleChange,
|
|
224
|
-
widgets: widgets,
|
|
225
|
-
children: children || jsx("div", {
|
|
226
|
-
className: 'col-12',
|
|
227
|
-
children: submit
|
|
228
|
-
})
|
|
229
|
-
});
|
|
230
|
-
});
|
|
231
|
-
|
|
232
|
-
export { Form as default };
|
|
233
|
-
//# sourceMappingURL=form-01bf45e9.js.map
|
package/es/form-01bf45e9.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"form-01bf45e9.js","sources":["../src/components/lazy/form.tsx"],"sourcesContent":["import JsonForm, { getRegistry, JsonFormProps, JsonFormType } from '@topthink/json-form';\r\nimport * as React from 'react';\r\nimport {\r\n forwardRef,\r\n ForwardRefExoticComponent,\r\n PropsWithoutRef,\r\n ReactNode,\r\n RefAttributes,\r\n useCallback,\r\n useState\r\n} from 'react';\r\nimport axios, { AxiosError, Method } from 'axios';\r\nimport request from '../../request';\r\nimport { mapValues } from 'lodash';\r\nimport type { AjvError, ISubmitEvent, WidgetProps } from '@rjsf/core';\r\nimport Button from '../button';\r\nimport useSafeState from '../../hooks/use-safe-state';\r\n\r\nconst localize = require('ajv-i18n/localize/zh');\r\n\r\nexport interface FormProps<T = any> extends JsonFormProps<T> {\r\n onSuccess?: (data: any) => void;\r\n method?: Method;\r\n children?: ReactNode | ((props: { submit: ReactNode, loading: boolean }) => ReactNode);\r\n submitText?: string;\r\n onSubmitting?: (submitting: boolean) => void;\r\n transformData?: (data: T) => T;\r\n}\r\n\r\ntype Error = {\r\n __errors: string[]\r\n}\r\n\r\ntype Errors = Error | {\r\n [key: string]: Error\r\n}\r\n\r\nconst toExtraErrors = (error: AxiosError): Errors => {\r\n const errors = error.errors;\r\n if (typeof errors === 'string') {\r\n return {\r\n __errors: [errors]\r\n };\r\n }\r\n return mapValues(errors, (e) => {\r\n return {\r\n __errors: [e]\r\n };\r\n });\r\n};\r\n\r\nconst widgets = {\r\n upload: function({ options, ...props }: WidgetProps) {\r\n const { widgets } = getRegistry();\r\n\r\n if (options.endpoint) {\r\n options.onUpload = async (file: File) => {\r\n\r\n const data = new FormData();\r\n\r\n data.set('file', file);\r\n\r\n const { url, value } = await request({\r\n url: options.endpoint as string,\r\n method: 'post',\r\n data\r\n });\r\n\r\n return { url, value };\r\n };\r\n }\r\n\r\n return <widgets.upload {...props} options={options} />;\r\n },\r\n editor: function({ options, ...props }: WidgetProps) {\r\n const { widgets } = getRegistry();\r\n\r\n if (options.endpoint) {\r\n options.onUpload = async (file: File) => {\r\n\r\n const data = new FormData();\r\n\r\n data.set('file', file);\r\n\r\n const { url } = await request({\r\n url: options.endpoint as string,\r\n method: 'post',\r\n data\r\n });\r\n\r\n return url;\r\n };\r\n }\r\n\r\n return <widgets.editor {...props} options={options} />;\r\n },\r\n typeahead: function({ options, ...props }: WidgetProps) {\r\n const { widgets } = getRegistry();\r\n\r\n if (options.endpoint) {\r\n options.onSearch = async ({ value, query }) => {\r\n return await request({\r\n url: options.endpoint as string,\r\n params: { value, query }\r\n });\r\n };\r\n }\r\n\r\n return <widgets.typeahead {...props} options={options} />;\r\n }\r\n};\r\n\r\nexport interface FormType extends JsonFormType {\r\n\r\n}\r\n\r\ntype Form<T = any> = ForwardRefExoticComponent<PropsWithoutRef<FormProps<T>> & RefAttributes<FormType>>\r\n\r\nconst Form: Form = forwardRef(({\r\n action,\r\n method = 'post',\r\n onSuccess,\r\n formData,\r\n onSubmitting,\r\n onSubmit,\r\n onChange,\r\n submitText = '提交',\r\n transformData,\r\n children,\r\n ...props\r\n}, ref) => {\r\n\r\n const [extraErrors, setExtraErrors] = useState<Errors>();\r\n const [loading, setLoading] = useSafeState(false);\r\n const [data, setData] = useState(formData);\r\n\r\n const handleSubmit = useCallback(async (e: ISubmitEvent<any>, nativeEvent: React.FormEvent<HTMLFormElement>) => {\r\n if (!loading) {\r\n try {\r\n setLoading(true);\r\n if (onSubmitting) {\r\n onSubmitting(true);\r\n }\r\n if (action) {\r\n let { formData } = e;\r\n\r\n if (transformData) {\r\n formData = transformData(formData);\r\n }\r\n\r\n //todo 包含File对象需转FormData\r\n try {\r\n const result = await request({\r\n url: action,\r\n method,\r\n data: formData\r\n });\r\n setExtraErrors(undefined);\r\n if (onSuccess) {\r\n await onSuccess(result);\r\n }\r\n return result;\r\n } catch (e) {\r\n if (axios.isAxiosError(e)) {\r\n setExtraErrors(toExtraErrors(e));\r\n } else {\r\n throw e;\r\n }\r\n }\r\n } else if (onSubmit) {\r\n return await onSubmit(e, nativeEvent);\r\n }\r\n } finally {\r\n setLoading(false);\r\n if (onSubmitting) {\r\n onSubmitting(false);\r\n }\r\n }\r\n }\r\n }, [action, method, onSubmit]);\r\n\r\n const handleChange = useCallback((e: ISubmitEvent<any>) => {\r\n const { formData } = e;\r\n setData(formData);\r\n if (onChange) {\r\n onChange(e);\r\n }\r\n }, [setData, onChange]);\r\n\r\n const transformErrors = useCallback((errors: AjvError[]) => {\r\n errors = errors.map(error => ({\r\n keyword: error.name,\r\n dataPath: error.property,\r\n ...error\r\n }));\r\n\r\n localize(errors);\r\n\r\n return errors;\r\n }, []);\r\n\r\n const submit = <Button className={'px-4'} loading={loading} type='submit' variant='primary'>{submitText}</Button>;\r\n\r\n if (typeof children === 'function') {\r\n children = children({ submit, loading });\r\n }\r\n\r\n return <JsonForm\r\n ref={ref}\r\n extraErrors={extraErrors}\r\n onSubmit={handleSubmit}\r\n transformErrors={transformErrors}\r\n noHtml5Validate\r\n noValidate\r\n {...props}\r\n formData={data}\r\n onChange={handleChange}\r\n widgets={widgets}\r\n >\r\n {children || <div className='col-12'>\r\n {submit}\r\n </div>}\r\n </JsonForm>;\r\n});\r\n\r\nexport default Form;\r\n"],"names":["localize","require","toExtraErrors","error","errors","__errors","mapValues","e","widgets","upload","options","props","getRegistry","endpoint","onUpload","file","data","FormData","set","url","value","request","method","_jsx","editor","typeahead","onSearch","query","params","Form","forwardRef","ref","action","onSuccess","formData","onSubmitting","onSubmit","onChange","submitText","transformData","children","extraErrors","setExtraErrors","useState","loading","setLoading","useSafeState","setData","handleSubmit","useCallback","nativeEvent","result","undefined","axios","isAxiosError","handleChange","transformErrors","map","keyword","name","dataPath","property","submit","Button","className","type","variant","JsonForm","noHtml5Validate","noValidate"],"mappings":"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"}
|
package/es/form-0a372a24.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{jsx as t}from"react/jsx-runtime";import o,{getRegistry as r}from"@topthink/json-form";import{forwardRef as e,useState as a,useCallback as n}from"react";import i from"axios";import{u as s,r as m,B as p}from"./index-5142110c.js";import{mapValues as l}from"lodash";import"sweetalert2/dist/sweetalert2.js";import"sweetalert2-react-content";import"react-bootstrap";import"query-string";import"retry-axios";import"@babel/runtime/helpers/defineProperty";import"rc-notification";import"styled-components";import"classnames";import"react-async-hook";const c=require("ajv-i18n/localize/zh"),d={upload:function(o){let{options:e,...a}=o;const{widgets:n}=r();return e.endpoint&&(e.onUpload=async t=>{const o=new FormData;o.set("file",t);const{url:r,value:a}=await m({url:e.endpoint,method:"post",data:o});return{url:r,value:a}}),t(n.upload,{...a,options:e})},editor:function(o){let{options:e,...a}=o;const{widgets:n}=r();return e.endpoint&&(e.onUpload=async t=>{const o=new FormData;o.set("file",t);const{url:r}=await m({url:e.endpoint,method:"post",data:o});return r}),t(n.editor,{...a,options:e})},typeahead:function(o){let{options:e,...a}=o;const{widgets:n}=r();return e.endpoint&&(e.onSearch=async t=>{let{value:o,query:r}=t;return await m({url:e.endpoint,params:{value:o,query:r}})}),t(n.typeahead,{...a,options:e})}},u=e(((r,e)=>{let{action:u,method:f="post",onSuccess:y,formData:h,onSubmitting:w,onSubmit:g,onChange:b,submitText:x="提交",transformData:v,children:D,...j}=r;const[S,q]=a(),[_,k]=s(!1),[E,z]=a(h),C=n((async(t,o)=>{if(!_)try{if(k(!0),w&&w(!0),u){let{formData:o}=t;v&&(o=v(o));try{const t=await m({url:u,method:f,data:o});return q(void 0),y&&await y(t),t}catch(t){if(!i.isAxiosError(t))throw t;q((t=>{const o=t.errors;return"string"==typeof o?{__errors:[o]}:l(o,(t=>({__errors:[t]})))})(t))}}else if(g)return await g(t,o)}finally{k(!1),w&&w(!1)}}),[u,f,g]),F=n((t=>{const{formData:o}=t;z(o),b&&b(t)}),[z,b]),N=n((t=>(t=t.map((t=>({keyword:t.name,dataPath:t.property,...t}))),c(t),t)),[]),P=t(p,{className:"px-4",loading:_,type:"submit",variant:"primary",children:x});return"function"==typeof D&&(D=D({submit:P,loading:_})),t(o,{ref:e,extraErrors:S,onSubmit:C,transformErrors:N,noHtml5Validate:!0,noValidate:!0,...j,formData:E,onChange:F,widgets:d,children:D||t("div",{className:"col-12",children:P})})}));export{u as default};
|
|
2
|
-
//# sourceMappingURL=form-0a372a24.js.map
|
package/es/form-0a372a24.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"form-0a372a24.js","sources":["../src/components/lazy/form.tsx"],"sourcesContent":["import JsonForm, { getRegistry, JsonFormProps, JsonFormType } from '@topthink/json-form';\r\nimport * as React from 'react';\r\nimport {\r\n forwardRef,\r\n ForwardRefExoticComponent,\r\n PropsWithoutRef,\r\n ReactNode,\r\n RefAttributes,\r\n useCallback,\r\n useState\r\n} from 'react';\r\nimport axios, { AxiosError, Method } from 'axios';\r\nimport request from '../../request';\r\nimport { mapValues } from 'lodash';\r\nimport type { AjvError, ISubmitEvent, WidgetProps } from '@rjsf/core';\r\nimport Button from '../button';\r\nimport useSafeState from '../../hooks/use-safe-state';\r\n\r\nconst localize = require('ajv-i18n/localize/zh');\r\n\r\nexport interface FormProps<T = any> extends JsonFormProps<T> {\r\n onSuccess?: (data: any) => void;\r\n method?: Method;\r\n children?: ReactNode | ((props: { submit: ReactNode, loading: boolean }) => ReactNode);\r\n submitText?: string;\r\n onSubmitting?: (submitting: boolean) => void;\r\n transformData?: (data: T) => T;\r\n}\r\n\r\ntype Error = {\r\n __errors: string[]\r\n}\r\n\r\ntype Errors = Error | {\r\n [key: string]: Error\r\n}\r\n\r\nconst toExtraErrors = (error: AxiosError): Errors => {\r\n const errors = error.errors;\r\n if (typeof errors === 'string') {\r\n return {\r\n __errors: [errors]\r\n };\r\n }\r\n return mapValues(errors, (e) => {\r\n return {\r\n __errors: [e]\r\n };\r\n });\r\n};\r\n\r\nconst widgets = {\r\n upload: function({ options, ...props }: WidgetProps) {\r\n const { widgets } = getRegistry();\r\n\r\n if (options.endpoint) {\r\n options.onUpload = async (file: File) => {\r\n\r\n const data = new FormData();\r\n\r\n data.set('file', file);\r\n\r\n const { url, value } = await request({\r\n url: options.endpoint as string,\r\n method: 'post',\r\n data\r\n });\r\n\r\n return { url, value };\r\n };\r\n }\r\n\r\n return <widgets.upload {...props} options={options} />;\r\n },\r\n editor: function({ options, ...props }: WidgetProps) {\r\n const { widgets } = getRegistry();\r\n\r\n if (options.endpoint) {\r\n options.onUpload = async (file: File) => {\r\n\r\n const data = new FormData();\r\n\r\n data.set('file', file);\r\n\r\n const { url } = await request({\r\n url: options.endpoint as string,\r\n method: 'post',\r\n data\r\n });\r\n\r\n return url;\r\n };\r\n }\r\n\r\n return <widgets.editor {...props} options={options} />;\r\n },\r\n typeahead: function({ options, ...props }: WidgetProps) {\r\n const { widgets } = getRegistry();\r\n\r\n if (options.endpoint) {\r\n options.onSearch = async ({ value, query }) => {\r\n return await request({\r\n url: options.endpoint as string,\r\n params: { value, query }\r\n });\r\n };\r\n }\r\n\r\n return <widgets.typeahead {...props} options={options} />;\r\n }\r\n};\r\n\r\nexport interface FormType extends JsonFormType {\r\n\r\n}\r\n\r\ntype Form<T = any> = ForwardRefExoticComponent<PropsWithoutRef<FormProps<T>> & RefAttributes<FormType>>\r\n\r\nconst Form: Form = forwardRef(({\r\n action,\r\n method = 'post',\r\n onSuccess,\r\n formData,\r\n onSubmitting,\r\n onSubmit,\r\n onChange,\r\n submitText = '提交',\r\n transformData,\r\n children,\r\n ...props\r\n}, ref) => {\r\n\r\n const [extraErrors, setExtraErrors] = useState<Errors>();\r\n const [loading, setLoading] = useSafeState(false);\r\n const [data, setData] = useState(formData);\r\n\r\n const handleSubmit = useCallback(async (e: ISubmitEvent<any>, nativeEvent: React.FormEvent<HTMLFormElement>) => {\r\n if (!loading) {\r\n try {\r\n setLoading(true);\r\n if (onSubmitting) {\r\n onSubmitting(true);\r\n }\r\n if (action) {\r\n let { formData } = e;\r\n\r\n if (transformData) {\r\n formData = transformData(formData);\r\n }\r\n\r\n //todo 包含File对象需转FormData\r\n try {\r\n const result = await request({\r\n url: action,\r\n method,\r\n data: formData\r\n });\r\n setExtraErrors(undefined);\r\n if (onSuccess) {\r\n await onSuccess(result);\r\n }\r\n return result;\r\n } catch (e) {\r\n if (axios.isAxiosError(e)) {\r\n setExtraErrors(toExtraErrors(e));\r\n } else {\r\n throw e;\r\n }\r\n }\r\n } else if (onSubmit) {\r\n return await onSubmit(e, nativeEvent);\r\n }\r\n } finally {\r\n setLoading(false);\r\n if (onSubmitting) {\r\n onSubmitting(false);\r\n }\r\n }\r\n }\r\n }, [action, method, onSubmit]);\r\n\r\n const handleChange = useCallback((e: ISubmitEvent<any>) => {\r\n const { formData } = e;\r\n setData(formData);\r\n if (onChange) {\r\n onChange(e);\r\n }\r\n }, [setData, onChange]);\r\n\r\n const transformErrors = useCallback((errors: AjvError[]) => {\r\n errors = errors.map(error => ({\r\n keyword: error.name,\r\n dataPath: error.property,\r\n ...error\r\n }));\r\n\r\n localize(errors);\r\n\r\n return errors;\r\n }, []);\r\n\r\n const submit = <Button className={'px-4'} loading={loading} type='submit' variant='primary'>{submitText}</Button>;\r\n\r\n if (typeof children === 'function') {\r\n children = children({ submit, loading });\r\n }\r\n\r\n return <JsonForm\r\n ref={ref}\r\n extraErrors={extraErrors}\r\n onSubmit={handleSubmit}\r\n transformErrors={transformErrors}\r\n noHtml5Validate\r\n noValidate\r\n {...props}\r\n formData={data}\r\n onChange={handleChange}\r\n widgets={widgets}\r\n >\r\n {children || <div className='col-12'>\r\n {submit}\r\n </div>}\r\n </JsonForm>;\r\n});\r\n\r\nexport default Form;\r\n"],"names":["localize","require","widgets","upload","_ref","options","props","getRegistry","endpoint","onUpload","async","data","FormData","set","file","url","value","request","method","_jsx","editor","_ref2","typeahead","_ref3","onSearch","query","_ref4","params","Form","forwardRef","_ref5","ref","action","onSuccess","formData","onSubmitting","onSubmit","onChange","submitText","transformData","children","extraErrors","setExtraErrors","useState","loading","setLoading","useSafeState","setData","handleSubmit","useCallback","e","nativeEvent","result","undefined","axios","isAxiosError","error","errors","__errors","mapValues","toExtraErrors","handleChange","transformErrors","map","keyword","name","dataPath","property","submit","Button","className","type","variant","JsonForm","noHtml5Validate","noValidate"],"mappings":"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"}
|