@rklink/components 0.1.0 → 0.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/README.md CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  基于 Ant Design 和 ProComponents 的 React 业务组件库。
4
4
 
5
+ ## 文档
6
+
7
+ https://rk-components.vercel.app/
8
+
5
9
  ## 常用命令
6
10
 
7
11
  ```bash
package/dist/index.cjs CHANGED
@@ -471,6 +471,7 @@ function RKRemoteSelect({
471
471
 
472
472
  // src/RKSchemaForm/index.tsx
473
473
  var import_pro_components3 = require("@ant-design/pro-components");
474
+ var import_react3 = require("react");
474
475
 
475
476
  // src/RKSchemaForm/fieldRegistry.tsx
476
477
  var import_pro_components2 = require("@ant-design/pro-components");
@@ -568,13 +569,74 @@ function getColProps(columns) {
568
569
  return { lg: 6, md: 8, sm: 12 };
569
570
  }
570
571
  }
572
+ function resolveDynamicValue(value, values) {
573
+ if (typeof value === "function") {
574
+ return value(values);
575
+ }
576
+ return value;
577
+ }
578
+ function getColumnKey(column, index) {
579
+ return column.key || `${String(column.dataIndex)}-${index}`;
580
+ }
581
+ function getDependencySnapshot(values) {
582
+ return JSON.stringify(values);
583
+ }
584
+ function resolveDependencyResetValue(resetValue, values, previousValues) {
585
+ if (typeof resetValue === "function") {
586
+ return resetValue(values, previousValues);
587
+ }
588
+ return resetValue;
589
+ }
590
+ function setFieldValue(form, name, value) {
591
+ const setField = form.setFieldValue;
592
+ if (setField) {
593
+ setField(name, value);
594
+ return;
595
+ }
596
+ form.setFields([{ name, value }]);
597
+ }
598
+ function RKSchemaDependencyField({
599
+ column,
600
+ values,
601
+ form,
602
+ renderField
603
+ }) {
604
+ const isFirstRenderRef = (0, import_react3.useRef)(true);
605
+ const previousValuesRef = (0, import_react3.useRef)();
606
+ const previousSnapshotRef = (0, import_react3.useRef)();
607
+ const dependencySnapshot = getDependencySnapshot(values);
608
+ const shouldResetOnDependencyChange = column.resetOnDependencyChange !== false;
609
+ (0, import_react3.useEffect)(() => {
610
+ if (previousSnapshotRef.current === dependencySnapshot) {
611
+ return;
612
+ }
613
+ if (!shouldResetOnDependencyChange) {
614
+ previousValuesRef.current = values;
615
+ previousSnapshotRef.current = dependencySnapshot;
616
+ isFirstRenderRef.current = false;
617
+ return;
618
+ }
619
+ if (isFirstRenderRef.current) {
620
+ previousValuesRef.current = values;
621
+ previousSnapshotRef.current = dependencySnapshot;
622
+ isFirstRenderRef.current = false;
623
+ return;
624
+ }
625
+ setFieldValue(
626
+ form,
627
+ column.dataIndex,
628
+ resolveDependencyResetValue(column.dependencyResetValue, values, previousValuesRef.current)
629
+ );
630
+ previousValuesRef.current = values;
631
+ previousSnapshotRef.current = dependencySnapshot;
632
+ }, [column, dependencySnapshot, form, shouldResetOnDependencyChange, values]);
633
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_jsx_runtime4.Fragment, { children: renderField(values) });
634
+ }
571
635
  function RKSchemaForm(props) {
572
636
  const { columns, columnCount, fieldColProps, rowProps, ...formProps } = props;
573
637
  const defaultColProps = fieldColProps || getColProps(columnCount);
574
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_pro_components3.ProForm, { grid: true, rowProps: { gutter: 24, ...rowProps }, ...formProps, children: columns.map((column, index) => {
575
- if (column.hidden === true) return null;
638
+ const renderColumn = (column, index, values = {}) => {
576
639
  const {
577
- key,
578
640
  title,
579
641
  dataIndex,
580
642
  valueType = "text",
@@ -590,22 +652,43 @@ function RKSchemaForm(props) {
590
652
  } = column;
591
653
  const Component = RKSchemaFieldRegistry[valueType];
592
654
  if (!Component) return null;
655
+ const nextHidden = resolveDynamicValue(column.hidden, values);
656
+ if (nextHidden === true) return null;
657
+ const nextRequired = resolveDynamicValue(required, values);
658
+ const nextDisabled = resolveDynamicValue(disabled, values);
659
+ const nextReadonly = resolveDynamicValue(readonly, values);
660
+ const nextFieldProps = resolveDynamicValue(fieldProps, values) || void 0;
593
661
  return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
594
662
  Component,
595
663
  {
596
664
  label: title,
597
665
  name: dataIndex,
598
- disabled,
599
- readonly,
666
+ disabled: nextDisabled,
667
+ readonly: nextReadonly,
600
668
  initialValue,
601
- rules: [...required === true ? [requiredRule] : [], ...rules || []],
669
+ rules: [...nextRequired === true ? [requiredRule] : [], ...rules || []],
602
670
  tooltip,
603
671
  extra,
604
672
  colProps: colProps || defaultColProps,
605
- fieldProps
673
+ fieldProps: nextFieldProps
606
674
  },
607
- key || `${String(dataIndex)}-${index}`
675
+ getColumnKey(column, index)
608
676
  );
677
+ };
678
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_pro_components3.ProForm, { grid: true, rowProps: { gutter: 24, ...rowProps }, ...formProps, children: columns.map((column, index) => {
679
+ var _a;
680
+ if (!((_a = column.dependencies) == null ? void 0 : _a.length)) {
681
+ return renderColumn(column, index);
682
+ }
683
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_pro_components3.ProFormDependency, { name: column.dependencies, children: (values, form) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
684
+ RKSchemaDependencyField,
685
+ {
686
+ column,
687
+ values,
688
+ form,
689
+ renderField: (nextValues) => renderColumn(column, index, nextValues)
690
+ }
691
+ ) }, getColumnKey(column, index));
609
692
  }) });
610
693
  }
611
694
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/RKConfirmAction/index.tsx","../src/RKRemoteSelect/index.tsx","../src/RKRemoteSelect/optionSourceRegistry.ts","../src/RKSchemaForm/index.tsx","../src/RKSchemaForm/fieldRegistry.tsx","../src/RKTable/index.tsx"],"sourcesContent":["export { default as RKConfirmAction, useRKConfirmRequest } from './RKConfirmAction';\nexport type {\n RKConfirmActionProps,\n UseRKConfirmRequestOptions,\n} from './RKConfirmAction';\n\nexport { default as RKRemoteSelect } from './RKRemoteSelect';\nexport type {\n RKRemoteSelectOption,\n RKRemoteSelectOptionSource,\n RKRemoteSelectOptionSourceDescriptor,\n RKRemoteSelectOptionSourceType,\n RKRemoteSelectOptionValue,\n RKRemoteSelectProps,\n RKRemoteSelectRequestApi,\n} from './RKRemoteSelect';\nexport {\n enumOptionSourceOptions,\n registerRKRemoteSelectEnumOptionSource,\n registerRKRemoteSelectRemoteOptionSource,\n remoteOptionSourceOptions,\n resolveRKRemoteSelectOptions,\n} from './RKRemoteSelect';\n\nexport { default as RKSchemaForm } from './RKSchemaForm';\nexport type {\n RKSchemaBuiltinValueType,\n RKSchemaFieldProps,\n RKSchemaFormColumn,\n RKSchemaFormProps,\n RKSchemaFormValueType,\n RKSchemaOption,\n RKSchemaOptionSource,\n RKSchemaOptionSourceDescriptor,\n RKSchemaOptionSourceType,\n RKSchemaOptionValue,\n} from './RKSchemaForm';\nexport {\n registerRKSchemaEnumOptionSource,\n registerRKSchemaField,\n registerRKSchemaRemoteOptionSource,\n resolveRKSchemaOptions,\n} from './RKSchemaForm';\n\nexport { default as RKTable } from './RKTable';\nexport type {\n RKTableProps,\n RKTableRequestAdapter,\n RKTableRequestApi,\n RKTableRequestParams,\n RKTableResponse,\n} from './RKTable';\n","import { useRequest } from 'ahooks';\nimport type { ButtonProps, ModalFuncProps } from 'antd';\nimport { Button, message, Modal } from 'antd';\nimport type { Key, ReactNode } from 'react';\nimport { useCallback, useMemo, useRef, useState } from 'react';\n\ntype MaybePromise<T> = T | Promise<T>;\n\ntype RKConfirmConfig<Params extends unknown[]> =\n | ModalFuncProps\n | ((...params: Params) => ModalFuncProps | false)\n | false;\n\ntype RKSuccessMessage<Result, Params extends unknown[]> =\n | ReactNode\n | ((result: Result, ...params: Params) => ReactNode);\n\ntype RKFailureMessage<Result, Params extends unknown[]> =\n | ReactNode\n | ((result: Result, ...params: Params) => ReactNode);\n\ntype RKErrorMessage<Params extends unknown[]> =\n | ReactNode\n | ((error: unknown, ...params: Params) => ReactNode);\n\nconst DEFAULT_FETCH_KEY = 'RK_CONFIRM_DEFAULT';\n\nexport interface UseRKConfirmRequestOptions<Result, Params extends unknown[]> {\n request: (...params: Params) => Promise<Result>;\n confirm?: RKConfirmConfig<Params>;\n successMessage?: RKSuccessMessage<Result, Params>;\n failureMessage?: RKFailureMessage<Result, Params>;\n errorMessage?: RKErrorMessage<Params>;\n successCode?: number;\n isSuccess?: (result: Result) => boolean;\n getLoadingKey?: (...params: Params) => Key | undefined;\n debounceInterval?: number;\n throttleInterval?: number;\n onSuccess?: (result: Result, ...params: Params) => MaybePromise<void>;\n onFailure?: (result: Result, ...params: Params) => MaybePromise<void>;\n onError?: (error: unknown, ...params: Params) => MaybePromise<void>;\n onCancel?: (...params: Params) => MaybePromise<void>;\n}\n\nexport interface RKConfirmActionProps<Result>\n extends Omit<ButtonProps, 'loading' | 'onClick' | 'onError'>,\n Omit<UseRKConfirmRequestOptions<Result, []>, 'getLoadingKey'> {\n stopPropagation?: boolean;\n}\n\nfunction isResponseSuccess<Result>(result: Result, successCode: number) {\n if (result && typeof result === 'object' && 'code' in result) {\n return (result as { code?: unknown }).code === successCode;\n }\n\n return true;\n}\n\nfunction resolveConfirmConfig<Params extends unknown[]>(\n confirm: RKConfirmConfig<Params> | undefined,\n params: Params,\n) {\n if (typeof confirm === 'function') {\n return confirm(...params);\n }\n\n return confirm;\n}\n\nfunction resolveMessage<Result, Params extends unknown[]>(\n nextMessage:\n | RKSuccessMessage<Result, Params>\n | RKFailureMessage<Result, Params>\n | undefined,\n result: Result,\n params: Params,\n) {\n if (typeof nextMessage === 'function') {\n return nextMessage(result, ...params);\n }\n\n return nextMessage;\n}\n\nfunction resolveErrorMessage<Params extends unknown[]>(\n errorMessage: RKErrorMessage<Params> | undefined,\n error: unknown,\n params: Params,\n) {\n if (typeof errorMessage === 'function') {\n return errorMessage(error, ...params);\n }\n\n return errorMessage;\n}\n\nexport function useRKConfirmRequest<Result = unknown, Params extends unknown[] = []>(\n options: UseRKConfirmRequestOptions<Result, Params>,\n) {\n const {\n request,\n confirm,\n successMessage,\n failureMessage,\n errorMessage,\n successCode = 200,\n isSuccess,\n getLoadingKey,\n debounceInterval,\n throttleInterval,\n onSuccess,\n onFailure,\n onError,\n onCancel,\n } = options;\n const confirmOpenRef = useRef(false);\n const [loadingKeys, setLoadingKeys] = useState<Record<string, boolean>>({});\n const { runAsync: requestRun, loading } = useRequest<Result, Params>(request, {\n manual: true,\n debounceWait: debounceInterval,\n throttleWait: throttleInterval,\n });\n\n const setKeyLoading = useCallback((params: Params, nextLoading: boolean) => {\n const key = getLoadingKey?.(...params);\n const loadingKey = key === undefined ? DEFAULT_FETCH_KEY : String(key);\n\n setLoadingKeys((prev) => ({\n ...prev,\n [loadingKey]: nextLoading,\n }));\n }, [getLoadingKey]);\n\n const executeRequest = useCallback(\n async (...params: Params) => {\n setKeyLoading(params, true);\n\n try {\n const result = await requestRun(...params);\n const success = isSuccess ? isSuccess(result) : isResponseSuccess(result, successCode);\n\n if (success) {\n const nextSuccessMessage = resolveMessage(successMessage, result, params);\n\n if (nextSuccessMessage) {\n message.success(nextSuccessMessage);\n }\n\n await onSuccess?.(result, ...params);\n } else {\n const nextFailureMessage = resolveMessage(failureMessage, result, params);\n\n if (nextFailureMessage) {\n message.error(nextFailureMessage);\n }\n\n await onFailure?.(result, ...params);\n }\n\n return result;\n } catch (error) {\n const nextErrorMessage = resolveErrorMessage(errorMessage, error, params);\n\n if (nextErrorMessage) {\n message.error(nextErrorMessage);\n }\n\n await onError?.(error, ...params);\n throw error;\n } finally {\n setKeyLoading(params, false);\n }\n },\n [\n errorMessage,\n failureMessage,\n isSuccess,\n onError,\n onFailure,\n onSuccess,\n requestRun,\n setKeyLoading,\n successCode,\n successMessage,\n ],\n );\n\n const run = useCallback(\n (...params: Params) => {\n const confirmConfig = resolveConfirmConfig(confirm, params);\n\n if (!confirmConfig) {\n void executeRequest(...params);\n return;\n }\n\n if (confirmOpenRef.current) return;\n\n confirmOpenRef.current = true;\n\n const { onOk, onCancel: onModalCancel, afterClose, ...restConfirmConfig } = confirmConfig;\n\n Modal.confirm({\n okText: '确认',\n cancelText: '取消',\n ...restConfirmConfig,\n onOk: async (...args) => {\n const shouldContinue = await onOk?.(...args);\n\n if (shouldContinue === false) return false;\n\n return executeRequest(...params);\n },\n onCancel: async (...args) => {\n const shouldCancel = await onModalCancel?.(...args);\n\n await onCancel?.(...params);\n\n return shouldCancel;\n },\n afterClose: () => {\n confirmOpenRef.current = false;\n afterClose?.();\n },\n });\n },\n [confirm, executeRequest, onCancel],\n );\n\n const isLoading = useCallback(\n (key: Key | undefined) => {\n if (key === undefined) return loading || !!loadingKeys[DEFAULT_FETCH_KEY];\n\n return !!loadingKeys[String(key)];\n },\n [loading, loadingKeys],\n );\n\n return useMemo(\n () => ({\n run,\n runRequest: executeRequest,\n loading,\n loadingKeys,\n isLoading,\n }),\n [executeRequest, isLoading, loading, loadingKeys, run],\n );\n}\n\nconst RKConfirmAction = <Result = unknown,>({\n request,\n confirm,\n successMessage,\n failureMessage,\n errorMessage,\n successCode,\n isSuccess,\n debounceInterval,\n throttleInterval,\n onSuccess,\n onFailure,\n onError,\n onCancel,\n stopPropagation = true,\n children,\n ...buttonProps\n}: RKConfirmActionProps<Result>) => {\n const { run, loading } = useRKConfirmRequest<Result, []>({\n request,\n confirm,\n successMessage,\n failureMessage,\n errorMessage,\n successCode,\n isSuccess,\n debounceInterval,\n throttleInterval,\n onSuccess,\n onFailure,\n onError,\n onCancel,\n });\n\n return (\n <Button\n type=\"link\"\n {...buttonProps}\n loading={loading}\n onClick={(event) => {\n if (stopPropagation) {\n event.stopPropagation();\n }\n\n run();\n }}\n >\n {children}\n </Button>\n );\n};\n\nexport default RKConfirmAction;\n","import { ProFormSelect } from '@ant-design/pro-components';\nimport type { ProFormSelectProps } from '@ant-design/pro-components';\nimport type { SelectProps } from 'antd';\nimport { useMemo } from 'react';\nimport { resolveRKRemoteSelectOptions } from './optionSourceRegistry';\nimport type { RKRemoteSelectOption, RKRemoteSelectOptionSource } from './type';\n\ntype RKRemoteSelectRecord = Record<string, any>;\ntype RKRemoteSelectParams = Record<string, any>;\ntype RKRemoteSelectRequestResult<OptionItem extends RKRemoteSelectRecord> =\n | OptionItem[]\n | {\n data?: OptionItem[] | { records?: OptionItem[]; list?: OptionItem[] };\n records?: OptionItem[];\n list?: OptionItem[];\n [key: string]: unknown;\n };\ntype RKRemoteSelectDisabled<OptionItem extends RKRemoteSelectRecord> =\n | boolean\n | ((item: OptionItem) => boolean);\n\nexport type RKRemoteSelectRequestApi<\n OptionItem extends RKRemoteSelectRecord = RKRemoteSelectRecord,\n Params extends RKRemoteSelectParams = RKRemoteSelectParams,\n> = (params: Params) => Promise<RKRemoteSelectRequestResult<OptionItem>>;\n\nexport interface RKRemoteSelectProps<\n ValueType = unknown,\n OptionItem extends RKRemoteSelectRecord = RKRemoteSelectRecord,\n Params extends RKRemoteSelectParams = RKRemoteSelectParams,\n> extends Omit<ProFormSelectProps<ValueType>, 'disabled' | 'options' | 'request'> {\n options?: ProFormSelectProps<ValueType>['options'] | OptionItem[];\n optionSource?: RKRemoteSelectOptionSource;\n requestApi?: RKRemoteSelectRequestApi<OptionItem, Params>;\n request?: ProFormSelectProps<ValueType>['request'];\n labelField?: string;\n valueField?: string;\n childrenField?: string;\n disabled?: RKRemoteSelectDisabled<OptionItem>;\n searchKey?: string;\n}\n\nfunction isDynamicOptionSource(optionSource?: RKRemoteSelectOptionSource) {\n return optionSource?.type === 'enum' || optionSource?.type === 'remote';\n}\n\nfunction resolveParams(\n optionSource: RKRemoteSelectOptionSource | undefined,\n params: RKRemoteSelectProps['params'],\n) {\n if (!isDynamicOptionSource(optionSource)) return params;\n if (typeof params === 'function') return params;\n\n return {\n ...params,\n ...optionSource,\n };\n}\n\nfunction isRecord(value: unknown): value is RKRemoteSelectRecord {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\nfunction isOptionValue(value: unknown): value is RKRemoteSelectOption['value'] {\n return typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean';\n}\n\nfunction normalizeOptionLabel(value: unknown): RKRemoteSelectOption['label'] | undefined {\n if (typeof value === 'string' || typeof value === 'number') {\n return value;\n }\n\n if (typeof value === 'boolean') {\n return String(value);\n }\n\n return undefined;\n}\n\nfunction resolveRequestApiItems<OptionItem extends RKRemoteSelectRecord>(\n result: RKRemoteSelectRequestResult<OptionItem>,\n): OptionItem[] {\n if (Array.isArray(result)) return result;\n\n if (Array.isArray(result.data)) return result.data;\n\n if (isRecord(result.data)) {\n if (Array.isArray(result.data.records)) return result.data.records;\n if (Array.isArray(result.data.list)) return result.data.list;\n }\n\n if (Array.isArray(result.records)) return result.records;\n if (Array.isArray(result.list)) return result.list;\n\n return [];\n}\n\nfunction normalizeSearchParams<Params extends RKRemoteSelectParams>(\n params: Params,\n searchKey = 'keyWords',\n) {\n if (searchKey === 'keyWords') return params;\n\n const { keyWords, ...restParams } = params;\n\n return {\n ...restParams,\n ...(keyWords === undefined ? {} : { [searchKey]: keyWords }),\n } as Params;\n}\n\nfunction normalizeOptions<OptionItem extends RKRemoteSelectRecord>(\n items: OptionItem[],\n config: {\n labelField?: string;\n valueField?: string;\n childrenField?: string;\n disabled?: RKRemoteSelectDisabled<OptionItem>;\n },\n): RKRemoteSelectOption[] {\n const labelField = config.labelField || 'label';\n const valueField = config.valueField || 'value';\n const childrenField = config.childrenField || 'children';\n\n return items\n .map((item): RKRemoteSelectOption | undefined => {\n const label = normalizeOptionLabel(item[labelField]);\n const value = item[valueField];\n const children = item[childrenField];\n\n if (label === undefined || !isOptionValue(value)) return undefined;\n\n const optionDisabled =\n typeof config.disabled === 'function'\n ? config.disabled(item)\n : typeof item.disabled === 'boolean'\n ? item.disabled\n : undefined;\n\n return {\n ...item,\n label,\n value,\n disabled: optionDisabled,\n children: Array.isArray(children)\n ? normalizeOptions(\n children.filter(isRecord) as OptionItem[],\n config,\n )\n : undefined,\n };\n })\n .filter((item): item is RKRemoteSelectOption => item !== undefined);\n}\n\nfunction shouldNormalizeOptions<OptionItem extends RKRemoteSelectRecord>(\n options: RKRemoteSelectProps<unknown, OptionItem>['options'],\n config: {\n labelField?: string;\n valueField?: string;\n childrenField?: string;\n disabled?: RKRemoteSelectDisabled<OptionItem>;\n },\n) {\n return (\n Array.isArray(options) &&\n (options as unknown[]).every(isRecord) &&\n (!!config.labelField ||\n !!config.valueField ||\n !!config.childrenField ||\n typeof config.disabled === 'function')\n );\n}\n\nexport default function RKRemoteSelect<\n ValueType = unknown,\n OptionItem extends RKRemoteSelectRecord = RKRemoteSelectRecord,\n Params extends RKRemoteSelectParams = RKRemoteSelectParams,\n>({\n optionSource,\n options,\n requestApi,\n request,\n params,\n fieldProps,\n showSearch = true,\n labelField,\n valueField,\n childrenField,\n disabled,\n searchKey = 'keyWords',\n ...restProps\n}: RKRemoteSelectProps<ValueType, OptionItem, Params>) {\n const selectDisabled = typeof disabled === 'boolean' ? disabled : undefined;\n const optionConfig = useMemo(\n () => ({\n labelField,\n valueField,\n childrenField,\n disabled,\n }),\n [childrenField, disabled, labelField, valueField],\n );\n const selectOptions = useMemo(() => {\n if (!shouldNormalizeOptions(options, optionConfig)) {\n return options as ProFormSelectProps<ValueType>['options'];\n }\n\n return normalizeOptions(\n options as OptionItem[],\n optionConfig,\n ) as ProFormSelectProps<ValueType>['options'];\n }, [optionConfig, options]);\n\n const selectRequest = useMemo(() => {\n if (isDynamicOptionSource(optionSource)) {\n return async () => resolveRKRemoteSelectOptions(optionSource);\n }\n\n if (requestApi) {\n return async (requestParams: Params) => {\n const result = await requestApi(normalizeSearchParams(requestParams, searchKey));\n return normalizeOptions(resolveRequestApiItems(result), optionConfig);\n };\n }\n\n return request;\n }, [optionConfig, optionSource, request, requestApi, searchKey]);\n const requestParams = useMemo(() => resolveParams(optionSource, params), [optionSource, params]);\n\n return (\n <ProFormSelect\n {...restProps}\n disabled={selectDisabled}\n showSearch={showSearch}\n options={selectOptions}\n request={selectRequest}\n params={requestParams}\n fieldProps={\n {\n optionFilterProp: 'label',\n filterOption: true,\n ...fieldProps,\n } as SelectProps<ValueType>\n }\n />\n );\n}\n\nexport {\n enumOptionSourceOptions,\n registerRKRemoteSelectEnumOptionSource,\n registerRKRemoteSelectRemoteOptionSource,\n remoteOptionSourceOptions,\n resolveRKRemoteSelectOptions,\n} from './optionSourceRegistry';\nexport type { RKRemoteSelectOptionSourceDescriptor } from './optionSourceRegistry';\nexport type {\n RKRemoteSelectOption,\n RKRemoteSelectOptionSource,\n RKRemoteSelectOptionSourceType,\n RKRemoteSelectOptionValue,\n} from './type';\n","import type {\n RKRemoteSelectOption,\n RKRemoteSelectOptionSource,\n RKRemoteSelectOptionSourceType,\n RKRemoteSelectOptionValue,\n} from './type';\n\ninterface OptionFieldDefaults {\n labelField: string;\n valueField: string;\n childrenField?: string;\n}\n\nexport interface RKRemoteSelectOptionSourceDescriptor {\n label: string;\n value: string;\n description: string;\n sourceType: RKRemoteSelectOptionSourceType;\n}\n\ninterface RemoteOptionSourceResult {\n items: Array<Record<string, unknown>>;\n defaults?: OptionFieldDefaults;\n}\n\ntype RemoteOptionSourceLoader = () => Promise<RemoteOptionSourceResult>;\n\nconst enumOptionSourceRegistry: Record<string, RKRemoteSelectOption[]> = {};\nconst remoteOptionSourceRegistry: Record<string, RemoteOptionSourceLoader> = {};\n\nexport const enumOptionSourceOptions: RKRemoteSelectOptionSourceDescriptor[] = [];\nexport const remoteOptionSourceOptions: RKRemoteSelectOptionSourceDescriptor[] = [];\n\nfunction upsertOptionSourceDescriptor(\n list: RKRemoteSelectOptionSourceDescriptor[],\n descriptor: RKRemoteSelectOptionSourceDescriptor,\n) {\n const index = list.findIndex((item) => item.value === descriptor.value);\n\n if (index === -1) {\n list.push(descriptor);\n return;\n }\n\n list[index] = descriptor;\n}\n\nexport function registerRKRemoteSelectEnumOptionSource(\n key: string,\n options: RKRemoteSelectOption[],\n descriptor?: Omit<RKRemoteSelectOptionSourceDescriptor, 'value' | 'sourceType'>,\n) {\n enumOptionSourceRegistry[key] = options;\n upsertOptionSourceDescriptor(enumOptionSourceOptions, {\n label: descriptor?.label || key,\n value: key,\n description: descriptor?.description || '',\n sourceType: 'enum',\n });\n}\n\nexport function registerRKRemoteSelectRemoteOptionSource(\n key: string,\n loader: RemoteOptionSourceLoader,\n descriptor?: Omit<RKRemoteSelectOptionSourceDescriptor, 'value' | 'sourceType'>,\n) {\n remoteOptionSourceRegistry[key] = loader;\n upsertOptionSourceDescriptor(remoteOptionSourceOptions, {\n label: descriptor?.label || key,\n value: key,\n description: descriptor?.description || '',\n sourceType: 'remote',\n });\n}\n\nfunction normalizeOptionLabel(value: unknown): RKRemoteSelectOption['label'] | undefined {\n if (typeof value === 'string' || typeof value === 'number') {\n return value;\n }\n\n if (typeof value === 'boolean') {\n return String(value);\n }\n\n return undefined;\n}\n\nfunction isOptionValue(value: unknown): value is RKRemoteSelectOptionValue {\n return typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean';\n}\n\nfunction normalizeOptionItems(\n items: Array<Record<string, unknown>>,\n defaults?: OptionFieldDefaults,\n source?: RKRemoteSelectOptionSource,\n): RKRemoteSelectOption[] {\n const labelField = source?.labelField || defaults?.labelField || 'label';\n const valueField = source?.valueField || defaults?.valueField || 'value';\n const childrenField = source?.childrenField || defaults?.childrenField || 'children';\n\n return items\n .map((item): RKRemoteSelectOption | undefined => {\n const label = normalizeOptionLabel(item[labelField]);\n const value = item[valueField];\n const children = item[childrenField];\n\n if (label === undefined || !isOptionValue(value)) {\n return undefined;\n }\n\n return {\n label,\n value,\n disabled: typeof item.disabled === 'boolean' ? item.disabled : undefined,\n children: Array.isArray(children)\n ? normalizeOptionItems(\n children.filter(\n (child): child is Record<string, unknown> =>\n typeof child === 'object' && child !== null,\n ),\n defaults,\n source,\n )\n : undefined,\n };\n })\n .filter((item): item is RKRemoteSelectOption => item !== undefined);\n}\n\nexport async function resolveRKRemoteSelectOptions(\n source?: RKRemoteSelectOptionSource,\n): Promise<RKRemoteSelectOption[]> {\n if (!source?.type || !source.key) {\n return [];\n }\n\n if (source.type === 'enum') {\n return enumOptionSourceRegistry[source.key] || [];\n }\n\n if (source.type === 'remote') {\n const loader = remoteOptionSourceRegistry[source.key];\n if (!loader) return [];\n\n const result = await loader();\n\n return normalizeOptionItems(result.items, result.defaults, source);\n }\n\n return [];\n}\n","import { ProForm } from '@ant-design/pro-components';\nimport type { ColProps } from 'antd';\nimport type { Rule } from 'antd/es/form';\nimport { RKSchemaFieldRegistry } from './fieldRegistry';\nimport type { RKSchemaFormProps } from './type';\n\nconst requiredRule: Rule = {\n required: true,\n message: '此项为必填项',\n};\n\nfunction getColProps(columns?: number): ColProps {\n switch (columns) {\n case 1:\n return { span: 24 };\n case 2:\n return { lg: 12, md: 12, sm: 24 };\n case 3:\n return { lg: 8, md: 12, sm: 24 };\n case 6:\n return { lg: 4, md: 6, sm: 12 };\n case 4:\n default:\n return { lg: 6, md: 8, sm: 12 };\n }\n}\n\nexport default function RKSchemaForm<T = Record<string, unknown>>(props: RKSchemaFormProps<T>) {\n const { columns, columnCount, fieldColProps, rowProps, ...formProps } = props;\n const defaultColProps = fieldColProps || getColProps(columnCount);\n\n return (\n <ProForm grid rowProps={{ gutter: 24, ...rowProps }} {...formProps}>\n {columns.map((column, index) => {\n if (column.hidden === true) return null;\n\n const {\n key,\n title,\n dataIndex,\n valueType = 'text',\n required,\n disabled,\n readonly,\n initialValue,\n rules,\n tooltip,\n extra,\n colProps,\n fieldProps,\n } = column;\n const Component = RKSchemaFieldRegistry[valueType];\n if (!Component) return null;\n\n return (\n <Component\n key={key || `${String(dataIndex)}-${index}`}\n label={title}\n name={dataIndex}\n disabled={disabled}\n readonly={readonly}\n initialValue={initialValue}\n rules={[...(required === true ? [requiredRule] : []), ...(rules || [])]}\n tooltip={tooltip}\n extra={extra}\n colProps={colProps || defaultColProps}\n fieldProps={fieldProps}\n />\n );\n })}\n </ProForm>\n );\n}\n\nexport * from './fieldRegistry';\nexport * from './optionSourceRegistry';\nexport * from './type';\n","import {\n ProFormCascader,\n ProFormCheckbox,\n ProFormColorPicker,\n ProFormDateMonthRangePicker,\n ProFormDatePicker,\n ProFormDateQuarterRangePicker,\n ProFormDateRangePicker,\n ProFormDateTimePicker,\n ProFormDateTimeRangePicker,\n ProFormDateWeekRangePicker,\n ProFormDateYearRangePicker,\n ProFormDigit,\n ProFormDigitRange,\n ProFormMoney,\n ProFormRadio,\n ProFormRate,\n ProFormSegmented,\n ProFormSelect,\n ProFormSlider,\n ProFormSwitch,\n ProFormText,\n ProFormTextArea,\n ProFormTimePicker,\n ProFormTreeSelect,\n ProFormUploadButton,\n ProFormUploadDragger,\n type ProFormItemProps,\n} from '@ant-design/pro-components';\nimport type { ComponentType } from 'react';\nimport { resolveRKSchemaOptions } from './optionSourceRegistry';\nimport type { RKSchemaFieldProps, RKSchemaOption, RKSchemaOptionSource } from './type';\n\nexport type RKSchemaFieldRenderer = ComponentType<ProFormItemProps & Record<string, unknown>>;\n\nfunction isFieldComponentProps(value: unknown): value is RKSchemaFieldProps {\n return typeof value === 'object' && value !== null;\n}\n\nfunction isDynamicOptionSource(source?: RKSchemaOptionSource) {\n return ['enum', 'remote'].includes(source?.type || '');\n}\n\nfunction getStaticOptions(fieldProps: RKSchemaFieldProps, optionFieldName: 'options' | 'treeData') {\n if (optionFieldName === 'treeData') {\n return fieldProps.treeData || fieldProps.options;\n }\n\n return fieldProps.options;\n}\n\nfunction asField(component: unknown): RKSchemaFieldRenderer {\n return component as RKSchemaFieldRenderer;\n}\n\nfunction createOptionField(\n Component: RKSchemaFieldRenderer,\n options: { optionFieldName?: 'options' | 'treeData' } = {},\n): RKSchemaFieldRenderer {\n const { optionFieldName = 'options' } = options;\n\n return function RKSchemaOptionsField(props: ProFormItemProps & Record<string, unknown>) {\n const fieldProps = isFieldComponentProps(props.fieldProps) ? props.fieldProps : {};\n const { options: staticOptions, treeData, optionSource, ...restFieldProps } = fieldProps;\n const shouldLoadDynamic = isDynamicOptionSource(optionSource);\n const resolvedStaticOptions =\n getStaticOptions({ ...fieldProps, options: staticOptions, treeData }, optionFieldName) || [];\n const request = shouldLoadDynamic\n ? async (): Promise<RKSchemaOption[]> => resolveRKSchemaOptions(optionSource)\n : undefined;\n\n return (\n <Component\n {...props}\n request={request || props.request}\n params={shouldLoadDynamic ? optionSource : props.params}\n fieldProps={{\n ...restFieldProps,\n [optionFieldName]: shouldLoadDynamic ? undefined : resolvedStaticOptions,\n }}\n />\n );\n };\n}\n\nexport const RKSchemaFieldRegistry: Record<string, RKSchemaFieldRenderer> = {\n text: asField(ProFormText),\n password: asField(ProFormText.Password),\n textarea: asField(ProFormTextArea),\n digit: asField(ProFormDigit),\n digitRange: asField(ProFormDigitRange),\n select: createOptionField(asField(ProFormSelect)),\n treeSelect: createOptionField(asField(ProFormTreeSelect), { optionFieldName: 'treeData' }),\n cascader: createOptionField(asField(ProFormCascader)),\n radio: createOptionField(asField(ProFormRadio.Group)),\n checkbox: asField(ProFormCheckbox),\n checkboxGroup: createOptionField(asField(ProFormCheckbox.Group)),\n switch: asField(ProFormSwitch),\n slider: asField(ProFormSlider),\n rate: asField(ProFormRate),\n segmented: createOptionField(asField(ProFormSegmented)),\n color: asField(ProFormColorPicker),\n date: asField(ProFormDatePicker),\n dateRange: asField(ProFormDateRangePicker),\n dateTime: asField(ProFormDateTimePicker),\n dateTimeRange: asField(ProFormDateTimeRangePicker),\n dateWeekRange: asField(ProFormDateWeekRangePicker),\n dateMonthRange: asField(ProFormDateMonthRangePicker),\n dateQuarterRange: asField(ProFormDateQuarterRangePicker),\n dateYearRange: asField(ProFormDateYearRangePicker),\n time: asField(ProFormTimePicker),\n timeRange: asField(ProFormTimePicker.RangePicker),\n money: asField(ProFormMoney),\n uploadButton: asField(ProFormUploadButton),\n uploadDragger: asField(ProFormUploadDragger),\n};\n\nexport function registerRKSchemaField(valueType: string, renderer: RKSchemaFieldRenderer) {\n RKSchemaFieldRegistry[valueType] = renderer;\n}\n","import { ProTable } from '@ant-design/pro-components';\nimport type { ProTableProps } from '@ant-design/pro-components';\nimport type { SortOrder } from 'antd/es/table/interface';\n\nexport type RKTableRequestParams = {\n current?: number;\n pageSize?: number;\n [key: string]: any;\n};\n\nexport type RKTableResponse<DataSource extends Record<string, any>> = {\n code?: number;\n success?: boolean;\n data?:\n | DataSource[]\n | {\n records?: DataSource[];\n list?: DataSource[];\n total?: number;\n [key: string]: unknown;\n };\n records?: DataSource[];\n list?: DataSource[];\n total?: number;\n [key: string]: unknown;\n};\n\nexport type RKTableRequestApi<\n DataSource extends Record<string, any>,\n RequestParams,\n> = (data: RequestParams) => Promise<RKTableResponse<DataSource>>;\n\nexport type RKTableRequestAdapter<DataSource extends Record<string, any>> = (\n response: RKTableResponse<DataSource>,\n) => {\n data: DataSource[];\n success: boolean;\n total?: number;\n};\n\nexport type RKTableProps<\n DataSource extends Record<string, any>,\n Params extends Record<string, any> = Record<string, any>,\n ValueType = 'text',\n RequestParams = RKTableRequestParams,\n> = ProTableProps<DataSource, Params, ValueType> & {\n requestApi?: RKTableRequestApi<DataSource, RequestParams>;\n requestAdapter?: RKTableRequestAdapter<DataSource>;\n requestParamsFormatter?: (\n params: Params & RKTableRequestParams,\n sort: Record<string, SortOrder>,\n filter: Record<string, (string | number)[] | null>,\n ) => RequestParams;\n};\n\nfunction resolveRecords<DataSource extends Record<string, any>>(\n response: RKTableResponse<DataSource>,\n) {\n if (Array.isArray(response.data)) return response.data;\n\n if (response.data && typeof response.data === 'object') {\n if (Array.isArray(response.data.records)) return response.data.records;\n if (Array.isArray(response.data.list)) return response.data.list;\n }\n\n if (Array.isArray(response.records)) return response.records;\n if (Array.isArray(response.list)) return response.list;\n\n return [];\n}\n\nfunction resolveTotal<DataSource extends Record<string, any>>(\n response: RKTableResponse<DataSource>,\n) {\n if (typeof response.total === 'number') return response.total;\n\n if (response.data && !Array.isArray(response.data) && typeof response.data.total === 'number') {\n return response.data.total;\n }\n\n return resolveRecords(response).length;\n}\n\nfunction defaultRequestAdapter<DataSource extends Record<string, any>>(\n response: RKTableResponse<DataSource>,\n) {\n const success =\n typeof response.success === 'boolean'\n ? response.success\n : response.code === undefined || response.code === 200;\n\n return {\n data: resolveRecords(response),\n success,\n total: resolveTotal(response),\n };\n}\n\nconst RKTable = <\n DataSource extends Record<string, any>,\n Params extends Record<string, any> = Record<string, any>,\n ValueType = 'text',\n RequestParams = RKTableRequestParams,\n>({\n request,\n requestApi,\n requestAdapter = defaultRequestAdapter,\n requestParamsFormatter,\n search,\n options,\n pagination,\n scroll,\n form,\n rowKey,\n tableAlertRender,\n ...restProps\n}: RKTableProps<DataSource, Params, ValueType, RequestParams>) => {\n const tableSearch =\n search === false\n ? false\n : {\n filterType: 'query' as const,\n defaultCollapsed: false,\n ...(typeof search === 'object' ? search : {}),\n };\n const tableOptions =\n options === false\n ? false\n : {\n reload: true,\n density: false,\n setting: false,\n ...(typeof options === 'object' ? options : {}),\n };\n const tablePagination =\n pagination === false\n ? false\n : {\n defaultPageSize: 20,\n showSizeChanger: true,\n disabled: false,\n ...(typeof pagination === 'object' ? pagination : {}),\n };\n const tableForm = {\n syncToUrl: true,\n syncToInitialValues: false,\n ...(typeof form === 'object' ? form : {}),\n };\n const tableScroll = {\n x: 'max-content',\n ...(typeof scroll === 'object' ? scroll : {}),\n };\n const tableRequest = requestApi\n ? async (\n params: Params & RKTableRequestParams,\n sort: Record<string, SortOrder>,\n filter: Record<string, (string | number)[] | null>,\n ) => {\n const nextParams = requestParamsFormatter\n ? requestParamsFormatter(params, sort, filter)\n : (params as unknown as RequestParams);\n const response = await requestApi(nextParams);\n\n return requestAdapter(response);\n }\n : request;\n\n return (\n <ProTable<DataSource, Params, ValueType>\n rowKey={rowKey || 'id'}\n tableAlertRender={tableAlertRender ?? false}\n options={tableOptions}\n pagination={tablePagination}\n scroll={tableScroll}\n form={tableForm}\n {...restProps}\n search={tableSearch}\n request={tableRequest}\n />\n );\n};\n\nexport default RKTable;\n"],"mappings":"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","names":["import_react","import_jsx_runtime","isOptionValue","normalizeOptionLabel","requestParams","import_pro_components","import_pro_components","import_jsx_runtime","isDynamicOptionSource","import_jsx_runtime","import_pro_components","import_jsx_runtime"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/RKConfirmAction/index.tsx","../src/RKRemoteSelect/index.tsx","../src/RKRemoteSelect/optionSourceRegistry.ts","../src/RKSchemaForm/index.tsx","../src/RKSchemaForm/fieldRegistry.tsx","../src/RKTable/index.tsx"],"sourcesContent":["export { default as RKConfirmAction, useRKConfirmRequest } from './RKConfirmAction';\nexport type {\n RKConfirmActionProps,\n UseRKConfirmRequestOptions,\n} from './RKConfirmAction';\n\nexport { default as RKRemoteSelect } from './RKRemoteSelect';\nexport type {\n RKRemoteSelectOption,\n RKRemoteSelectOptionSource,\n RKRemoteSelectOptionSourceDescriptor,\n RKRemoteSelectOptionSourceType,\n RKRemoteSelectOptionValue,\n RKRemoteSelectProps,\n RKRemoteSelectRequestApi,\n} from './RKRemoteSelect';\nexport {\n enumOptionSourceOptions,\n registerRKRemoteSelectEnumOptionSource,\n registerRKRemoteSelectRemoteOptionSource,\n remoteOptionSourceOptions,\n resolveRKRemoteSelectOptions,\n} from './RKRemoteSelect';\n\nexport { default as RKSchemaForm } from './RKSchemaForm';\nexport type {\n RKSchemaBuiltinValueType,\n RKSchemaFieldProps,\n RKSchemaFormColumn,\n RKSchemaFormProps,\n RKSchemaFormValueType,\n RKSchemaOption,\n RKSchemaOptionSource,\n RKSchemaOptionSourceDescriptor,\n RKSchemaOptionSourceType,\n RKSchemaOptionValue,\n} from './RKSchemaForm';\nexport {\n registerRKSchemaEnumOptionSource,\n registerRKSchemaField,\n registerRKSchemaRemoteOptionSource,\n resolveRKSchemaOptions,\n} from './RKSchemaForm';\n\nexport { default as RKTable } from './RKTable';\nexport type {\n RKTableProps,\n RKTableRequestAdapter,\n RKTableRequestApi,\n RKTableRequestParams,\n RKTableResponse,\n} from './RKTable';\n","import { useRequest } from 'ahooks';\nimport type { ButtonProps, ModalFuncProps } from 'antd';\nimport { Button, message, Modal } from 'antd';\nimport type { Key, ReactNode } from 'react';\nimport { useCallback, useMemo, useRef, useState } from 'react';\n\ntype MaybePromise<T> = T | Promise<T>;\n\ntype RKConfirmConfig<Params extends unknown[]> =\n | ModalFuncProps\n | ((...params: Params) => ModalFuncProps | false)\n | false;\n\ntype RKSuccessMessage<Result, Params extends unknown[]> =\n | ReactNode\n | ((result: Result, ...params: Params) => ReactNode);\n\ntype RKFailureMessage<Result, Params extends unknown[]> =\n | ReactNode\n | ((result: Result, ...params: Params) => ReactNode);\n\ntype RKErrorMessage<Params extends unknown[]> =\n | ReactNode\n | ((error: unknown, ...params: Params) => ReactNode);\n\nconst DEFAULT_FETCH_KEY = 'RK_CONFIRM_DEFAULT';\n\nexport interface UseRKConfirmRequestOptions<Result, Params extends unknown[]> {\n request: (...params: Params) => Promise<Result>;\n confirm?: RKConfirmConfig<Params>;\n successMessage?: RKSuccessMessage<Result, Params>;\n failureMessage?: RKFailureMessage<Result, Params>;\n errorMessage?: RKErrorMessage<Params>;\n successCode?: number;\n isSuccess?: (result: Result) => boolean;\n getLoadingKey?: (...params: Params) => Key | undefined;\n debounceInterval?: number;\n throttleInterval?: number;\n onSuccess?: (result: Result, ...params: Params) => MaybePromise<void>;\n onFailure?: (result: Result, ...params: Params) => MaybePromise<void>;\n onError?: (error: unknown, ...params: Params) => MaybePromise<void>;\n onCancel?: (...params: Params) => MaybePromise<void>;\n}\n\nexport interface RKConfirmActionProps<Result>\n extends Omit<ButtonProps, 'loading' | 'onClick' | 'onError'>,\n Omit<UseRKConfirmRequestOptions<Result, []>, 'getLoadingKey'> {\n stopPropagation?: boolean;\n}\n\nfunction isResponseSuccess<Result>(result: Result, successCode: number) {\n if (result && typeof result === 'object' && 'code' in result) {\n return (result as { code?: unknown }).code === successCode;\n }\n\n return true;\n}\n\nfunction resolveConfirmConfig<Params extends unknown[]>(\n confirm: RKConfirmConfig<Params> | undefined,\n params: Params,\n) {\n if (typeof confirm === 'function') {\n return confirm(...params);\n }\n\n return confirm;\n}\n\nfunction resolveMessage<Result, Params extends unknown[]>(\n nextMessage:\n | RKSuccessMessage<Result, Params>\n | RKFailureMessage<Result, Params>\n | undefined,\n result: Result,\n params: Params,\n) {\n if (typeof nextMessage === 'function') {\n return nextMessage(result, ...params);\n }\n\n return nextMessage;\n}\n\nfunction resolveErrorMessage<Params extends unknown[]>(\n errorMessage: RKErrorMessage<Params> | undefined,\n error: unknown,\n params: Params,\n) {\n if (typeof errorMessage === 'function') {\n return errorMessage(error, ...params);\n }\n\n return errorMessage;\n}\n\nexport function useRKConfirmRequest<Result = unknown, Params extends unknown[] = []>(\n options: UseRKConfirmRequestOptions<Result, Params>,\n) {\n const {\n request,\n confirm,\n successMessage,\n failureMessage,\n errorMessage,\n successCode = 200,\n isSuccess,\n getLoadingKey,\n debounceInterval,\n throttleInterval,\n onSuccess,\n onFailure,\n onError,\n onCancel,\n } = options;\n const confirmOpenRef = useRef(false);\n const [loadingKeys, setLoadingKeys] = useState<Record<string, boolean>>({});\n const { runAsync: requestRun, loading } = useRequest<Result, Params>(request, {\n manual: true,\n debounceWait: debounceInterval,\n throttleWait: throttleInterval,\n });\n\n const setKeyLoading = useCallback((params: Params, nextLoading: boolean) => {\n const key = getLoadingKey?.(...params);\n const loadingKey = key === undefined ? DEFAULT_FETCH_KEY : String(key);\n\n setLoadingKeys((prev) => ({\n ...prev,\n [loadingKey]: nextLoading,\n }));\n }, [getLoadingKey]);\n\n const executeRequest = useCallback(\n async (...params: Params) => {\n setKeyLoading(params, true);\n\n try {\n const result = await requestRun(...params);\n const success = isSuccess ? isSuccess(result) : isResponseSuccess(result, successCode);\n\n if (success) {\n const nextSuccessMessage = resolveMessage(successMessage, result, params);\n\n if (nextSuccessMessage) {\n message.success(nextSuccessMessage);\n }\n\n await onSuccess?.(result, ...params);\n } else {\n const nextFailureMessage = resolveMessage(failureMessage, result, params);\n\n if (nextFailureMessage) {\n message.error(nextFailureMessage);\n }\n\n await onFailure?.(result, ...params);\n }\n\n return result;\n } catch (error) {\n const nextErrorMessage = resolveErrorMessage(errorMessage, error, params);\n\n if (nextErrorMessage) {\n message.error(nextErrorMessage);\n }\n\n await onError?.(error, ...params);\n throw error;\n } finally {\n setKeyLoading(params, false);\n }\n },\n [\n errorMessage,\n failureMessage,\n isSuccess,\n onError,\n onFailure,\n onSuccess,\n requestRun,\n setKeyLoading,\n successCode,\n successMessage,\n ],\n );\n\n const run = useCallback(\n (...params: Params) => {\n const confirmConfig = resolveConfirmConfig(confirm, params);\n\n if (!confirmConfig) {\n void executeRequest(...params);\n return;\n }\n\n if (confirmOpenRef.current) return;\n\n confirmOpenRef.current = true;\n\n const { onOk, onCancel: onModalCancel, afterClose, ...restConfirmConfig } = confirmConfig;\n\n Modal.confirm({\n okText: '确认',\n cancelText: '取消',\n ...restConfirmConfig,\n onOk: async (...args) => {\n const shouldContinue = await onOk?.(...args);\n\n if (shouldContinue === false) return false;\n\n return executeRequest(...params);\n },\n onCancel: async (...args) => {\n const shouldCancel = await onModalCancel?.(...args);\n\n await onCancel?.(...params);\n\n return shouldCancel;\n },\n afterClose: () => {\n confirmOpenRef.current = false;\n afterClose?.();\n },\n });\n },\n [confirm, executeRequest, onCancel],\n );\n\n const isLoading = useCallback(\n (key: Key | undefined) => {\n if (key === undefined) return loading || !!loadingKeys[DEFAULT_FETCH_KEY];\n\n return !!loadingKeys[String(key)];\n },\n [loading, loadingKeys],\n );\n\n return useMemo(\n () => ({\n run,\n runRequest: executeRequest,\n loading,\n loadingKeys,\n isLoading,\n }),\n [executeRequest, isLoading, loading, loadingKeys, run],\n );\n}\n\nconst RKConfirmAction = <Result = unknown,>({\n request,\n confirm,\n successMessage,\n failureMessage,\n errorMessage,\n successCode,\n isSuccess,\n debounceInterval,\n throttleInterval,\n onSuccess,\n onFailure,\n onError,\n onCancel,\n stopPropagation = true,\n children,\n ...buttonProps\n}: RKConfirmActionProps<Result>) => {\n const { run, loading } = useRKConfirmRequest<Result, []>({\n request,\n confirm,\n successMessage,\n failureMessage,\n errorMessage,\n successCode,\n isSuccess,\n debounceInterval,\n throttleInterval,\n onSuccess,\n onFailure,\n onError,\n onCancel,\n });\n\n return (\n <Button\n type=\"link\"\n {...buttonProps}\n loading={loading}\n onClick={(event) => {\n if (stopPropagation) {\n event.stopPropagation();\n }\n\n run();\n }}\n >\n {children}\n </Button>\n );\n};\n\nexport default RKConfirmAction;\n","import { ProFormSelect } from '@ant-design/pro-components';\nimport type { ProFormSelectProps } from '@ant-design/pro-components';\nimport type { SelectProps } from 'antd';\nimport { useMemo } from 'react';\nimport { resolveRKRemoteSelectOptions } from './optionSourceRegistry';\nimport type { RKRemoteSelectOption, RKRemoteSelectOptionSource } from './type';\n\ntype RKRemoteSelectRecord = Record<string, any>;\ntype RKRemoteSelectParams = Record<string, any>;\ntype RKRemoteSelectRequestResult<OptionItem extends RKRemoteSelectRecord> =\n | OptionItem[]\n | {\n data?: OptionItem[] | { records?: OptionItem[]; list?: OptionItem[] };\n records?: OptionItem[];\n list?: OptionItem[];\n [key: string]: unknown;\n };\ntype RKRemoteSelectDisabled<OptionItem extends RKRemoteSelectRecord> =\n | boolean\n | ((item: OptionItem) => boolean);\n\nexport type RKRemoteSelectRequestApi<\n OptionItem extends RKRemoteSelectRecord = RKRemoteSelectRecord,\n Params extends RKRemoteSelectParams = RKRemoteSelectParams,\n> = (params: Params) => Promise<RKRemoteSelectRequestResult<OptionItem>>;\n\nexport interface RKRemoteSelectProps<\n ValueType = unknown,\n OptionItem extends RKRemoteSelectRecord = RKRemoteSelectRecord,\n Params extends RKRemoteSelectParams = RKRemoteSelectParams,\n> extends Omit<ProFormSelectProps<ValueType>, 'disabled' | 'options' | 'request'> {\n options?: ProFormSelectProps<ValueType>['options'] | OptionItem[];\n optionSource?: RKRemoteSelectOptionSource;\n requestApi?: RKRemoteSelectRequestApi<OptionItem, Params>;\n request?: ProFormSelectProps<ValueType>['request'];\n labelField?: string;\n valueField?: string;\n childrenField?: string;\n disabled?: RKRemoteSelectDisabled<OptionItem>;\n searchKey?: string;\n}\n\nfunction isDynamicOptionSource(optionSource?: RKRemoteSelectOptionSource) {\n return optionSource?.type === 'enum' || optionSource?.type === 'remote';\n}\n\nfunction resolveParams(\n optionSource: RKRemoteSelectOptionSource | undefined,\n params: RKRemoteSelectProps['params'],\n) {\n if (!isDynamicOptionSource(optionSource)) return params;\n if (typeof params === 'function') return params;\n\n return {\n ...params,\n ...optionSource,\n };\n}\n\nfunction isRecord(value: unknown): value is RKRemoteSelectRecord {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\nfunction isOptionValue(value: unknown): value is RKRemoteSelectOption['value'] {\n return typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean';\n}\n\nfunction normalizeOptionLabel(value: unknown): RKRemoteSelectOption['label'] | undefined {\n if (typeof value === 'string' || typeof value === 'number') {\n return value;\n }\n\n if (typeof value === 'boolean') {\n return String(value);\n }\n\n return undefined;\n}\n\nfunction resolveRequestApiItems<OptionItem extends RKRemoteSelectRecord>(\n result: RKRemoteSelectRequestResult<OptionItem>,\n): OptionItem[] {\n if (Array.isArray(result)) return result;\n\n if (Array.isArray(result.data)) return result.data;\n\n if (isRecord(result.data)) {\n if (Array.isArray(result.data.records)) return result.data.records;\n if (Array.isArray(result.data.list)) return result.data.list;\n }\n\n if (Array.isArray(result.records)) return result.records;\n if (Array.isArray(result.list)) return result.list;\n\n return [];\n}\n\nfunction normalizeSearchParams<Params extends RKRemoteSelectParams>(\n params: Params,\n searchKey = 'keyWords',\n) {\n if (searchKey === 'keyWords') return params;\n\n const { keyWords, ...restParams } = params;\n\n return {\n ...restParams,\n ...(keyWords === undefined ? {} : { [searchKey]: keyWords }),\n } as Params;\n}\n\nfunction normalizeOptions<OptionItem extends RKRemoteSelectRecord>(\n items: OptionItem[],\n config: {\n labelField?: string;\n valueField?: string;\n childrenField?: string;\n disabled?: RKRemoteSelectDisabled<OptionItem>;\n },\n): RKRemoteSelectOption[] {\n const labelField = config.labelField || 'label';\n const valueField = config.valueField || 'value';\n const childrenField = config.childrenField || 'children';\n\n return items\n .map((item): RKRemoteSelectOption | undefined => {\n const label = normalizeOptionLabel(item[labelField]);\n const value = item[valueField];\n const children = item[childrenField];\n\n if (label === undefined || !isOptionValue(value)) return undefined;\n\n const optionDisabled =\n typeof config.disabled === 'function'\n ? config.disabled(item)\n : typeof item.disabled === 'boolean'\n ? item.disabled\n : undefined;\n\n return {\n ...item,\n label,\n value,\n disabled: optionDisabled,\n children: Array.isArray(children)\n ? normalizeOptions(\n children.filter(isRecord) as OptionItem[],\n config,\n )\n : undefined,\n };\n })\n .filter((item): item is RKRemoteSelectOption => item !== undefined);\n}\n\nfunction shouldNormalizeOptions<OptionItem extends RKRemoteSelectRecord>(\n options: RKRemoteSelectProps<unknown, OptionItem>['options'],\n config: {\n labelField?: string;\n valueField?: string;\n childrenField?: string;\n disabled?: RKRemoteSelectDisabled<OptionItem>;\n },\n) {\n return (\n Array.isArray(options) &&\n (options as unknown[]).every(isRecord) &&\n (!!config.labelField ||\n !!config.valueField ||\n !!config.childrenField ||\n typeof config.disabled === 'function')\n );\n}\n\nexport default function RKRemoteSelect<\n ValueType = unknown,\n OptionItem extends RKRemoteSelectRecord = RKRemoteSelectRecord,\n Params extends RKRemoteSelectParams = RKRemoteSelectParams,\n>({\n optionSource,\n options,\n requestApi,\n request,\n params,\n fieldProps,\n showSearch = true,\n labelField,\n valueField,\n childrenField,\n disabled,\n searchKey = 'keyWords',\n ...restProps\n}: RKRemoteSelectProps<ValueType, OptionItem, Params>) {\n const selectDisabled = typeof disabled === 'boolean' ? disabled : undefined;\n const optionConfig = useMemo(\n () => ({\n labelField,\n valueField,\n childrenField,\n disabled,\n }),\n [childrenField, disabled, labelField, valueField],\n );\n const selectOptions = useMemo(() => {\n if (!shouldNormalizeOptions(options, optionConfig)) {\n return options as ProFormSelectProps<ValueType>['options'];\n }\n\n return normalizeOptions(\n options as OptionItem[],\n optionConfig,\n ) as ProFormSelectProps<ValueType>['options'];\n }, [optionConfig, options]);\n\n const selectRequest = useMemo(() => {\n if (isDynamicOptionSource(optionSource)) {\n return async () => resolveRKRemoteSelectOptions(optionSource);\n }\n\n if (requestApi) {\n return async (requestParams: Params) => {\n const result = await requestApi(normalizeSearchParams(requestParams, searchKey));\n return normalizeOptions(resolveRequestApiItems(result), optionConfig);\n };\n }\n\n return request;\n }, [optionConfig, optionSource, request, requestApi, searchKey]);\n const requestParams = useMemo(() => resolveParams(optionSource, params), [optionSource, params]);\n\n return (\n <ProFormSelect\n {...restProps}\n disabled={selectDisabled}\n showSearch={showSearch}\n options={selectOptions}\n request={selectRequest}\n params={requestParams}\n fieldProps={\n {\n optionFilterProp: 'label',\n filterOption: true,\n ...fieldProps,\n } as SelectProps<ValueType>\n }\n />\n );\n}\n\nexport {\n enumOptionSourceOptions,\n registerRKRemoteSelectEnumOptionSource,\n registerRKRemoteSelectRemoteOptionSource,\n remoteOptionSourceOptions,\n resolveRKRemoteSelectOptions,\n} from './optionSourceRegistry';\nexport type { RKRemoteSelectOptionSourceDescriptor } from './optionSourceRegistry';\nexport type {\n RKRemoteSelectOption,\n RKRemoteSelectOptionSource,\n RKRemoteSelectOptionSourceType,\n RKRemoteSelectOptionValue,\n} from './type';\n","import type {\n RKRemoteSelectOption,\n RKRemoteSelectOptionSource,\n RKRemoteSelectOptionSourceType,\n RKRemoteSelectOptionValue,\n} from './type';\n\ninterface OptionFieldDefaults {\n labelField: string;\n valueField: string;\n childrenField?: string;\n}\n\nexport interface RKRemoteSelectOptionSourceDescriptor {\n label: string;\n value: string;\n description: string;\n sourceType: RKRemoteSelectOptionSourceType;\n}\n\ninterface RemoteOptionSourceResult {\n items: Array<Record<string, unknown>>;\n defaults?: OptionFieldDefaults;\n}\n\ntype RemoteOptionSourceLoader = () => Promise<RemoteOptionSourceResult>;\n\nconst enumOptionSourceRegistry: Record<string, RKRemoteSelectOption[]> = {};\nconst remoteOptionSourceRegistry: Record<string, RemoteOptionSourceLoader> = {};\n\nexport const enumOptionSourceOptions: RKRemoteSelectOptionSourceDescriptor[] = [];\nexport const remoteOptionSourceOptions: RKRemoteSelectOptionSourceDescriptor[] = [];\n\nfunction upsertOptionSourceDescriptor(\n list: RKRemoteSelectOptionSourceDescriptor[],\n descriptor: RKRemoteSelectOptionSourceDescriptor,\n) {\n const index = list.findIndex((item) => item.value === descriptor.value);\n\n if (index === -1) {\n list.push(descriptor);\n return;\n }\n\n list[index] = descriptor;\n}\n\nexport function registerRKRemoteSelectEnumOptionSource(\n key: string,\n options: RKRemoteSelectOption[],\n descriptor?: Omit<RKRemoteSelectOptionSourceDescriptor, 'value' | 'sourceType'>,\n) {\n enumOptionSourceRegistry[key] = options;\n upsertOptionSourceDescriptor(enumOptionSourceOptions, {\n label: descriptor?.label || key,\n value: key,\n description: descriptor?.description || '',\n sourceType: 'enum',\n });\n}\n\nexport function registerRKRemoteSelectRemoteOptionSource(\n key: string,\n loader: RemoteOptionSourceLoader,\n descriptor?: Omit<RKRemoteSelectOptionSourceDescriptor, 'value' | 'sourceType'>,\n) {\n remoteOptionSourceRegistry[key] = loader;\n upsertOptionSourceDescriptor(remoteOptionSourceOptions, {\n label: descriptor?.label || key,\n value: key,\n description: descriptor?.description || '',\n sourceType: 'remote',\n });\n}\n\nfunction normalizeOptionLabel(value: unknown): RKRemoteSelectOption['label'] | undefined {\n if (typeof value === 'string' || typeof value === 'number') {\n return value;\n }\n\n if (typeof value === 'boolean') {\n return String(value);\n }\n\n return undefined;\n}\n\nfunction isOptionValue(value: unknown): value is RKRemoteSelectOptionValue {\n return typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean';\n}\n\nfunction normalizeOptionItems(\n items: Array<Record<string, unknown>>,\n defaults?: OptionFieldDefaults,\n source?: RKRemoteSelectOptionSource,\n): RKRemoteSelectOption[] {\n const labelField = source?.labelField || defaults?.labelField || 'label';\n const valueField = source?.valueField || defaults?.valueField || 'value';\n const childrenField = source?.childrenField || defaults?.childrenField || 'children';\n\n return items\n .map((item): RKRemoteSelectOption | undefined => {\n const label = normalizeOptionLabel(item[labelField]);\n const value = item[valueField];\n const children = item[childrenField];\n\n if (label === undefined || !isOptionValue(value)) {\n return undefined;\n }\n\n return {\n label,\n value,\n disabled: typeof item.disabled === 'boolean' ? item.disabled : undefined,\n children: Array.isArray(children)\n ? normalizeOptionItems(\n children.filter(\n (child): child is Record<string, unknown> =>\n typeof child === 'object' && child !== null,\n ),\n defaults,\n source,\n )\n : undefined,\n };\n })\n .filter((item): item is RKRemoteSelectOption => item !== undefined);\n}\n\nexport async function resolveRKRemoteSelectOptions(\n source?: RKRemoteSelectOptionSource,\n): Promise<RKRemoteSelectOption[]> {\n if (!source?.type || !source.key) {\n return [];\n }\n\n if (source.type === 'enum') {\n return enumOptionSourceRegistry[source.key] || [];\n }\n\n if (source.type === 'remote') {\n const loader = remoteOptionSourceRegistry[source.key];\n if (!loader) return [];\n\n const result = await loader();\n\n return normalizeOptionItems(result.items, result.defaults, source);\n }\n\n return [];\n}\n","import { ProForm, ProFormDependency } from '@ant-design/pro-components';\nimport type { ProFormInstance } from '@ant-design/pro-components';\nimport type { ColProps } from 'antd';\nimport type { Rule } from 'antd/es/form';\nimport type { NamePath } from 'antd/es/form/interface';\nimport { useEffect, useRef } from 'react';\nimport { RKSchemaFieldRegistry } from './fieldRegistry';\nimport type {\n RKSchemaDependencyResetValue,\n RKSchemaDynamicValue,\n RKSchemaFieldProps,\n RKSchemaFormColumn,\n RKSchemaFormProps,\n RKSchemaFormValues,\n} from './type';\n\nconst requiredRule: Rule = {\n required: true,\n message: '此项为必填项',\n};\n\ninterface RKSchemaDependencyFieldProps {\n column: RKSchemaFormColumn;\n values: RKSchemaFormValues;\n form: ProFormInstance;\n renderField: (values: RKSchemaFormValues) => React.ReactNode;\n}\n\nfunction getColProps(columns?: number): ColProps {\n switch (columns) {\n case 1:\n return { span: 24 };\n case 2:\n return { lg: 12, md: 12, sm: 24 };\n case 3:\n return { lg: 8, md: 12, sm: 24 };\n case 6:\n return { lg: 4, md: 6, sm: 12 };\n case 4:\n default:\n return { lg: 6, md: 8, sm: 12 };\n }\n}\n\nfunction resolveDynamicValue<T>(\n value: RKSchemaDynamicValue<T> | undefined,\n values: RKSchemaFormValues,\n) {\n if (typeof value === 'function') {\n return (value as (values: RKSchemaFormValues) => T)(values);\n }\n\n return value;\n}\n\nfunction getColumnKey(column: RKSchemaFormColumn, index: number) {\n return column.key || `${String(column.dataIndex)}-${index}`;\n}\n\nfunction getDependencySnapshot(values: RKSchemaFormValues) {\n return JSON.stringify(values);\n}\n\nfunction resolveDependencyResetValue(\n resetValue: RKSchemaDependencyResetValue | undefined,\n values: RKSchemaFormValues,\n previousValues?: RKSchemaFormValues,\n) {\n if (typeof resetValue === 'function') {\n return resetValue(values, previousValues);\n }\n\n return resetValue;\n}\n\nfunction setFieldValue(form: ProFormInstance, name: NamePath, value: unknown) {\n const setField = form.setFieldValue;\n\n if (setField) {\n setField(name, value);\n return;\n }\n\n form.setFields([{ name, value }]);\n}\n\nfunction RKSchemaDependencyField({\n column,\n values,\n form,\n renderField,\n}: RKSchemaDependencyFieldProps) {\n const isFirstRenderRef = useRef(true);\n const previousValuesRef = useRef<RKSchemaFormValues>();\n const previousSnapshotRef = useRef<string>();\n const dependencySnapshot = getDependencySnapshot(values);\n const shouldResetOnDependencyChange = column.resetOnDependencyChange !== false;\n\n useEffect(() => {\n if (previousSnapshotRef.current === dependencySnapshot) {\n return;\n }\n\n if (!shouldResetOnDependencyChange) {\n previousValuesRef.current = values;\n previousSnapshotRef.current = dependencySnapshot;\n isFirstRenderRef.current = false;\n return;\n }\n\n if (isFirstRenderRef.current) {\n previousValuesRef.current = values;\n previousSnapshotRef.current = dependencySnapshot;\n isFirstRenderRef.current = false;\n return;\n }\n\n setFieldValue(\n form,\n column.dataIndex,\n resolveDependencyResetValue(column.dependencyResetValue, values, previousValuesRef.current),\n );\n previousValuesRef.current = values;\n previousSnapshotRef.current = dependencySnapshot;\n }, [column, dependencySnapshot, form, shouldResetOnDependencyChange, values]);\n\n return <>{renderField(values)}</>;\n}\n\nexport default function RKSchemaForm<T = Record<string, unknown>>(props: RKSchemaFormProps<T>) {\n const { columns, columnCount, fieldColProps, rowProps, ...formProps } = props;\n const defaultColProps = fieldColProps || getColProps(columnCount);\n\n const renderColumn = (\n column: RKSchemaFormColumn,\n index: number,\n values: RKSchemaFormValues = {},\n ) => {\n const {\n title,\n dataIndex,\n valueType = 'text',\n required,\n disabled,\n readonly,\n initialValue,\n rules,\n tooltip,\n extra,\n colProps,\n fieldProps,\n } = column;\n const Component = RKSchemaFieldRegistry[valueType];\n if (!Component) return null;\n\n const nextHidden = resolveDynamicValue(column.hidden, values);\n if (nextHidden === true) return null;\n\n const nextRequired = resolveDynamicValue(required, values);\n const nextDisabled = resolveDynamicValue(disabled, values);\n const nextReadonly = resolveDynamicValue(readonly, values);\n const nextFieldProps =\n resolveDynamicValue<RKSchemaFieldProps>(fieldProps, values) || undefined;\n\n return (\n <Component\n key={getColumnKey(column, index)}\n label={title}\n name={dataIndex}\n disabled={nextDisabled}\n readonly={nextReadonly}\n initialValue={initialValue}\n rules={[...(nextRequired === true ? [requiredRule] : []), ...(rules || [])]}\n tooltip={tooltip}\n extra={extra}\n colProps={colProps || defaultColProps}\n fieldProps={nextFieldProps}\n />\n );\n };\n\n return (\n <ProForm grid rowProps={{ gutter: 24, ...rowProps }} {...formProps}>\n {columns.map((column, index) => {\n if (!column.dependencies?.length) {\n return renderColumn(column, index);\n }\n\n return (\n <ProFormDependency key={getColumnKey(column, index)} name={column.dependencies}>\n {(values, form) => (\n <RKSchemaDependencyField\n column={column}\n values={values}\n form={form}\n renderField={(nextValues) => renderColumn(column, index, nextValues)}\n />\n )}\n </ProFormDependency>\n );\n })}\n </ProForm>\n );\n}\n\nexport * from './fieldRegistry';\nexport * from './optionSourceRegistry';\nexport * from './type';\n","import {\n ProFormCascader,\n ProFormCheckbox,\n ProFormColorPicker,\n ProFormDateMonthRangePicker,\n ProFormDatePicker,\n ProFormDateQuarterRangePicker,\n ProFormDateRangePicker,\n ProFormDateTimePicker,\n ProFormDateTimeRangePicker,\n ProFormDateWeekRangePicker,\n ProFormDateYearRangePicker,\n ProFormDigit,\n ProFormDigitRange,\n ProFormMoney,\n ProFormRadio,\n ProFormRate,\n ProFormSegmented,\n ProFormSelect,\n ProFormSlider,\n ProFormSwitch,\n ProFormText,\n ProFormTextArea,\n ProFormTimePicker,\n ProFormTreeSelect,\n ProFormUploadButton,\n ProFormUploadDragger,\n type ProFormItemProps,\n} from '@ant-design/pro-components';\nimport type { ComponentType } from 'react';\nimport { resolveRKSchemaOptions } from './optionSourceRegistry';\nimport type { RKSchemaFieldProps, RKSchemaOption, RKSchemaOptionSource } from './type';\n\nexport type RKSchemaFieldRenderer = ComponentType<ProFormItemProps & Record<string, unknown>>;\n\nfunction isFieldComponentProps(value: unknown): value is RKSchemaFieldProps {\n return typeof value === 'object' && value !== null;\n}\n\nfunction isDynamicOptionSource(source?: RKSchemaOptionSource) {\n return ['enum', 'remote'].includes(source?.type || '');\n}\n\nfunction getStaticOptions(fieldProps: RKSchemaFieldProps, optionFieldName: 'options' | 'treeData') {\n if (optionFieldName === 'treeData') {\n return fieldProps.treeData || fieldProps.options;\n }\n\n return fieldProps.options;\n}\n\nfunction asField(component: unknown): RKSchemaFieldRenderer {\n return component as RKSchemaFieldRenderer;\n}\n\nfunction createOptionField(\n Component: RKSchemaFieldRenderer,\n options: { optionFieldName?: 'options' | 'treeData' } = {},\n): RKSchemaFieldRenderer {\n const { optionFieldName = 'options' } = options;\n\n return function RKSchemaOptionsField(props: ProFormItemProps & Record<string, unknown>) {\n const fieldProps = isFieldComponentProps(props.fieldProps) ? props.fieldProps : {};\n const { options: staticOptions, treeData, optionSource, ...restFieldProps } = fieldProps;\n const shouldLoadDynamic = isDynamicOptionSource(optionSource);\n const resolvedStaticOptions =\n getStaticOptions({ ...fieldProps, options: staticOptions, treeData }, optionFieldName) || [];\n const request = shouldLoadDynamic\n ? async (): Promise<RKSchemaOption[]> => resolveRKSchemaOptions(optionSource)\n : undefined;\n\n return (\n <Component\n {...props}\n request={request || props.request}\n params={shouldLoadDynamic ? optionSource : props.params}\n fieldProps={{\n ...restFieldProps,\n [optionFieldName]: shouldLoadDynamic ? undefined : resolvedStaticOptions,\n }}\n />\n );\n };\n}\n\nexport const RKSchemaFieldRegistry: Record<string, RKSchemaFieldRenderer> = {\n text: asField(ProFormText),\n password: asField(ProFormText.Password),\n textarea: asField(ProFormTextArea),\n digit: asField(ProFormDigit),\n digitRange: asField(ProFormDigitRange),\n select: createOptionField(asField(ProFormSelect)),\n treeSelect: createOptionField(asField(ProFormTreeSelect), { optionFieldName: 'treeData' }),\n cascader: createOptionField(asField(ProFormCascader)),\n radio: createOptionField(asField(ProFormRadio.Group)),\n checkbox: asField(ProFormCheckbox),\n checkboxGroup: createOptionField(asField(ProFormCheckbox.Group)),\n switch: asField(ProFormSwitch),\n slider: asField(ProFormSlider),\n rate: asField(ProFormRate),\n segmented: createOptionField(asField(ProFormSegmented)),\n color: asField(ProFormColorPicker),\n date: asField(ProFormDatePicker),\n dateRange: asField(ProFormDateRangePicker),\n dateTime: asField(ProFormDateTimePicker),\n dateTimeRange: asField(ProFormDateTimeRangePicker),\n dateWeekRange: asField(ProFormDateWeekRangePicker),\n dateMonthRange: asField(ProFormDateMonthRangePicker),\n dateQuarterRange: asField(ProFormDateQuarterRangePicker),\n dateYearRange: asField(ProFormDateYearRangePicker),\n time: asField(ProFormTimePicker),\n timeRange: asField(ProFormTimePicker.RangePicker),\n money: asField(ProFormMoney),\n uploadButton: asField(ProFormUploadButton),\n uploadDragger: asField(ProFormUploadDragger),\n};\n\nexport function registerRKSchemaField(valueType: string, renderer: RKSchemaFieldRenderer) {\n RKSchemaFieldRegistry[valueType] = renderer;\n}\n","import { ProTable } from '@ant-design/pro-components';\nimport type { ProTableProps } from '@ant-design/pro-components';\nimport type { SortOrder } from 'antd/es/table/interface';\n\nexport type RKTableRequestParams = {\n current?: number;\n pageSize?: number;\n [key: string]: any;\n};\n\nexport type RKTableResponse<DataSource extends Record<string, any>> = {\n code?: number;\n success?: boolean;\n data?:\n | DataSource[]\n | {\n records?: DataSource[];\n list?: DataSource[];\n total?: number;\n [key: string]: unknown;\n };\n records?: DataSource[];\n list?: DataSource[];\n total?: number;\n [key: string]: unknown;\n};\n\nexport type RKTableRequestApi<\n DataSource extends Record<string, any>,\n RequestParams,\n> = (data: RequestParams) => Promise<RKTableResponse<DataSource>>;\n\nexport type RKTableRequestAdapter<DataSource extends Record<string, any>> = (\n response: RKTableResponse<DataSource>,\n) => {\n data: DataSource[];\n success: boolean;\n total?: number;\n};\n\nexport type RKTableProps<\n DataSource extends Record<string, any>,\n Params extends Record<string, any> = Record<string, any>,\n ValueType = 'text',\n RequestParams = RKTableRequestParams,\n> = ProTableProps<DataSource, Params, ValueType> & {\n requestApi?: RKTableRequestApi<DataSource, RequestParams>;\n requestAdapter?: RKTableRequestAdapter<DataSource>;\n requestParamsFormatter?: (\n params: Params & RKTableRequestParams,\n sort: Record<string, SortOrder>,\n filter: Record<string, (string | number)[] | null>,\n ) => RequestParams;\n};\n\nfunction resolveRecords<DataSource extends Record<string, any>>(\n response: RKTableResponse<DataSource>,\n) {\n if (Array.isArray(response.data)) return response.data;\n\n if (response.data && typeof response.data === 'object') {\n if (Array.isArray(response.data.records)) return response.data.records;\n if (Array.isArray(response.data.list)) return response.data.list;\n }\n\n if (Array.isArray(response.records)) return response.records;\n if (Array.isArray(response.list)) return response.list;\n\n return [];\n}\n\nfunction resolveTotal<DataSource extends Record<string, any>>(\n response: RKTableResponse<DataSource>,\n) {\n if (typeof response.total === 'number') return response.total;\n\n if (response.data && !Array.isArray(response.data) && typeof response.data.total === 'number') {\n return response.data.total;\n }\n\n return resolveRecords(response).length;\n}\n\nfunction defaultRequestAdapter<DataSource extends Record<string, any>>(\n response: RKTableResponse<DataSource>,\n) {\n const success =\n typeof response.success === 'boolean'\n ? response.success\n : response.code === undefined || response.code === 200;\n\n return {\n data: resolveRecords(response),\n success,\n total: resolveTotal(response),\n };\n}\n\nconst RKTable = <\n DataSource extends Record<string, any>,\n Params extends Record<string, any> = Record<string, any>,\n ValueType = 'text',\n RequestParams = RKTableRequestParams,\n>({\n request,\n requestApi,\n requestAdapter = defaultRequestAdapter,\n requestParamsFormatter,\n search,\n options,\n pagination,\n scroll,\n form,\n rowKey,\n tableAlertRender,\n ...restProps\n}: RKTableProps<DataSource, Params, ValueType, RequestParams>) => {\n const tableSearch =\n search === false\n ? false\n : {\n filterType: 'query' as const,\n defaultCollapsed: false,\n ...(typeof search === 'object' ? search : {}),\n };\n const tableOptions =\n options === false\n ? false\n : {\n reload: true,\n density: false,\n setting: false,\n ...(typeof options === 'object' ? options : {}),\n };\n const tablePagination =\n pagination === false\n ? false\n : {\n defaultPageSize: 20,\n showSizeChanger: true,\n disabled: false,\n ...(typeof pagination === 'object' ? pagination : {}),\n };\n const tableForm = {\n syncToUrl: true,\n syncToInitialValues: false,\n ...(typeof form === 'object' ? form : {}),\n };\n const tableScroll = {\n x: 'max-content',\n ...(typeof scroll === 'object' ? scroll : {}),\n };\n const tableRequest = requestApi\n ? async (\n params: Params & RKTableRequestParams,\n sort: Record<string, SortOrder>,\n filter: Record<string, (string | number)[] | null>,\n ) => {\n const nextParams = requestParamsFormatter\n ? requestParamsFormatter(params, sort, filter)\n : (params as unknown as RequestParams);\n const response = await requestApi(nextParams);\n\n return requestAdapter(response);\n }\n : request;\n\n return (\n <ProTable<DataSource, Params, ValueType>\n rowKey={rowKey || 'id'}\n tableAlertRender={tableAlertRender ?? false}\n options={tableOptions}\n pagination={tablePagination}\n scroll={tableScroll}\n form={tableForm}\n {...restProps}\n search={tableSearch}\n request={tableRequest}\n />\n );\n};\n\nexport default RKTable;\n"],"mappings":"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","names":["import_react","import_jsx_runtime","isOptionValue","normalizeOptionLabel","requestParams","import_pro_components","import_react","import_pro_components","import_jsx_runtime","isDynamicOptionSource","import_jsx_runtime","import_pro_components","import_jsx_runtime"]}
package/dist/index.d.cts CHANGED
@@ -108,6 +108,9 @@ type RKSchemaOption = RKRemoteSelectOption;
108
108
  type RKSchemaOptionSourceType = RKRemoteSelectOptionSourceType;
109
109
  type RKSchemaOptionSource = RKRemoteSelectOptionSource;
110
110
  type RKSchemaFieldInitialValue = unknown;
111
+ type RKSchemaFormValues = Record<string, any>;
112
+ type RKSchemaDynamicValue<T> = T | ((values: RKSchemaFormValues) => T);
113
+ type RKSchemaDependencyResetValue = unknown | ((values: RKSchemaFormValues, previousValues?: RKSchemaFormValues) => unknown);
111
114
  interface RKSchemaTextAreaAutoSize {
112
115
  minRows?: number;
113
116
  maxRows?: number;
@@ -132,16 +135,19 @@ interface RKSchemaFormColumn {
132
135
  title?: ReactNode;
133
136
  dataIndex: NamePath;
134
137
  valueType?: RKSchemaFormValueType;
135
- required?: boolean;
136
- hidden?: boolean;
137
- disabled?: boolean;
138
- readonly?: boolean;
138
+ dependencies?: NamePath[];
139
+ resetOnDependencyChange?: boolean;
140
+ dependencyResetValue?: RKSchemaDependencyResetValue;
141
+ required?: RKSchemaDynamicValue<boolean>;
142
+ hidden?: RKSchemaDynamicValue<boolean>;
143
+ disabled?: RKSchemaDynamicValue<boolean>;
144
+ readonly?: RKSchemaDynamicValue<boolean>;
139
145
  initialValue?: RKSchemaFieldInitialValue;
140
146
  rules?: Rule[];
141
147
  tooltip?: ReactNode;
142
148
  extra?: ReactNode;
143
149
  colProps?: ColProps;
144
- fieldProps?: RKSchemaFieldProps;
150
+ fieldProps?: RKSchemaDynamicValue<RKSchemaFieldProps>;
145
151
  }
146
152
  interface RKSchemaFormProps<T = Record<string, unknown>> extends Omit<ProFormProps<T>, 'children'> {
147
153
  columns: RKSchemaFormColumn[];
package/dist/index.d.ts CHANGED
@@ -108,6 +108,9 @@ type RKSchemaOption = RKRemoteSelectOption;
108
108
  type RKSchemaOptionSourceType = RKRemoteSelectOptionSourceType;
109
109
  type RKSchemaOptionSource = RKRemoteSelectOptionSource;
110
110
  type RKSchemaFieldInitialValue = unknown;
111
+ type RKSchemaFormValues = Record<string, any>;
112
+ type RKSchemaDynamicValue<T> = T | ((values: RKSchemaFormValues) => T);
113
+ type RKSchemaDependencyResetValue = unknown | ((values: RKSchemaFormValues, previousValues?: RKSchemaFormValues) => unknown);
111
114
  interface RKSchemaTextAreaAutoSize {
112
115
  minRows?: number;
113
116
  maxRows?: number;
@@ -132,16 +135,19 @@ interface RKSchemaFormColumn {
132
135
  title?: ReactNode;
133
136
  dataIndex: NamePath;
134
137
  valueType?: RKSchemaFormValueType;
135
- required?: boolean;
136
- hidden?: boolean;
137
- disabled?: boolean;
138
- readonly?: boolean;
138
+ dependencies?: NamePath[];
139
+ resetOnDependencyChange?: boolean;
140
+ dependencyResetValue?: RKSchemaDependencyResetValue;
141
+ required?: RKSchemaDynamicValue<boolean>;
142
+ hidden?: RKSchemaDynamicValue<boolean>;
143
+ disabled?: RKSchemaDynamicValue<boolean>;
144
+ readonly?: RKSchemaDynamicValue<boolean>;
139
145
  initialValue?: RKSchemaFieldInitialValue;
140
146
  rules?: Rule[];
141
147
  tooltip?: ReactNode;
142
148
  extra?: ReactNode;
143
149
  colProps?: ColProps;
144
- fieldProps?: RKSchemaFieldProps;
150
+ fieldProps?: RKSchemaDynamicValue<RKSchemaFieldProps>;
145
151
  }
146
152
  interface RKSchemaFormProps<T = Record<string, unknown>> extends Omit<ProFormProps<T>, 'children'> {
147
153
  columns: RKSchemaFormColumn[];
package/dist/index.js CHANGED
@@ -431,7 +431,8 @@ function RKRemoteSelect({
431
431
  }
432
432
 
433
433
  // src/RKSchemaForm/index.tsx
434
- import { ProForm } from "@ant-design/pro-components";
434
+ import { ProForm, ProFormDependency } from "@ant-design/pro-components";
435
+ import { useEffect, useRef as useRef2 } from "react";
435
436
 
436
437
  // src/RKSchemaForm/fieldRegistry.tsx
437
438
  import {
@@ -536,7 +537,7 @@ function registerRKSchemaField(valueType, renderer) {
536
537
  }
537
538
 
538
539
  // src/RKSchemaForm/index.tsx
539
- import { jsx as jsx4 } from "react/jsx-runtime";
540
+ import { Fragment, jsx as jsx4 } from "react/jsx-runtime";
540
541
  var requiredRule = {
541
542
  required: true,
542
543
  message: "\u6B64\u9879\u4E3A\u5FC5\u586B\u9879"
@@ -556,13 +557,74 @@ function getColProps(columns) {
556
557
  return { lg: 6, md: 8, sm: 12 };
557
558
  }
558
559
  }
560
+ function resolveDynamicValue(value, values) {
561
+ if (typeof value === "function") {
562
+ return value(values);
563
+ }
564
+ return value;
565
+ }
566
+ function getColumnKey(column, index) {
567
+ return column.key || `${String(column.dataIndex)}-${index}`;
568
+ }
569
+ function getDependencySnapshot(values) {
570
+ return JSON.stringify(values);
571
+ }
572
+ function resolveDependencyResetValue(resetValue, values, previousValues) {
573
+ if (typeof resetValue === "function") {
574
+ return resetValue(values, previousValues);
575
+ }
576
+ return resetValue;
577
+ }
578
+ function setFieldValue(form, name, value) {
579
+ const setField = form.setFieldValue;
580
+ if (setField) {
581
+ setField(name, value);
582
+ return;
583
+ }
584
+ form.setFields([{ name, value }]);
585
+ }
586
+ function RKSchemaDependencyField({
587
+ column,
588
+ values,
589
+ form,
590
+ renderField
591
+ }) {
592
+ const isFirstRenderRef = useRef2(true);
593
+ const previousValuesRef = useRef2();
594
+ const previousSnapshotRef = useRef2();
595
+ const dependencySnapshot = getDependencySnapshot(values);
596
+ const shouldResetOnDependencyChange = column.resetOnDependencyChange !== false;
597
+ useEffect(() => {
598
+ if (previousSnapshotRef.current === dependencySnapshot) {
599
+ return;
600
+ }
601
+ if (!shouldResetOnDependencyChange) {
602
+ previousValuesRef.current = values;
603
+ previousSnapshotRef.current = dependencySnapshot;
604
+ isFirstRenderRef.current = false;
605
+ return;
606
+ }
607
+ if (isFirstRenderRef.current) {
608
+ previousValuesRef.current = values;
609
+ previousSnapshotRef.current = dependencySnapshot;
610
+ isFirstRenderRef.current = false;
611
+ return;
612
+ }
613
+ setFieldValue(
614
+ form,
615
+ column.dataIndex,
616
+ resolveDependencyResetValue(column.dependencyResetValue, values, previousValuesRef.current)
617
+ );
618
+ previousValuesRef.current = values;
619
+ previousSnapshotRef.current = dependencySnapshot;
620
+ }, [column, dependencySnapshot, form, shouldResetOnDependencyChange, values]);
621
+ return /* @__PURE__ */ jsx4(Fragment, { children: renderField(values) });
622
+ }
559
623
  function RKSchemaForm(props) {
560
624
  const { columns, columnCount, fieldColProps, rowProps, ...formProps } = props;
561
625
  const defaultColProps = fieldColProps || getColProps(columnCount);
562
- return /* @__PURE__ */ jsx4(ProForm, { grid: true, rowProps: { gutter: 24, ...rowProps }, ...formProps, children: columns.map((column, index) => {
563
- if (column.hidden === true) return null;
626
+ const renderColumn = (column, index, values = {}) => {
564
627
  const {
565
- key,
566
628
  title,
567
629
  dataIndex,
568
630
  valueType = "text",
@@ -578,22 +640,43 @@ function RKSchemaForm(props) {
578
640
  } = column;
579
641
  const Component = RKSchemaFieldRegistry[valueType];
580
642
  if (!Component) return null;
643
+ const nextHidden = resolveDynamicValue(column.hidden, values);
644
+ if (nextHidden === true) return null;
645
+ const nextRequired = resolveDynamicValue(required, values);
646
+ const nextDisabled = resolveDynamicValue(disabled, values);
647
+ const nextReadonly = resolveDynamicValue(readonly, values);
648
+ const nextFieldProps = resolveDynamicValue(fieldProps, values) || void 0;
581
649
  return /* @__PURE__ */ jsx4(
582
650
  Component,
583
651
  {
584
652
  label: title,
585
653
  name: dataIndex,
586
- disabled,
587
- readonly,
654
+ disabled: nextDisabled,
655
+ readonly: nextReadonly,
588
656
  initialValue,
589
- rules: [...required === true ? [requiredRule] : [], ...rules || []],
657
+ rules: [...nextRequired === true ? [requiredRule] : [], ...rules || []],
590
658
  tooltip,
591
659
  extra,
592
660
  colProps: colProps || defaultColProps,
593
- fieldProps
661
+ fieldProps: nextFieldProps
594
662
  },
595
- key || `${String(dataIndex)}-${index}`
663
+ getColumnKey(column, index)
596
664
  );
665
+ };
666
+ return /* @__PURE__ */ jsx4(ProForm, { grid: true, rowProps: { gutter: 24, ...rowProps }, ...formProps, children: columns.map((column, index) => {
667
+ var _a;
668
+ if (!((_a = column.dependencies) == null ? void 0 : _a.length)) {
669
+ return renderColumn(column, index);
670
+ }
671
+ return /* @__PURE__ */ jsx4(ProFormDependency, { name: column.dependencies, children: (values, form) => /* @__PURE__ */ jsx4(
672
+ RKSchemaDependencyField,
673
+ {
674
+ column,
675
+ values,
676
+ form,
677
+ renderField: (nextValues) => renderColumn(column, index, nextValues)
678
+ }
679
+ ) }, getColumnKey(column, index));
597
680
  }) });
598
681
  }
599
682
 
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/RKConfirmAction/index.tsx","../src/RKRemoteSelect/index.tsx","../src/RKRemoteSelect/optionSourceRegistry.ts","../src/RKSchemaForm/index.tsx","../src/RKSchemaForm/fieldRegistry.tsx","../src/RKTable/index.tsx"],"sourcesContent":["import { useRequest } from 'ahooks';\nimport type { ButtonProps, ModalFuncProps } from 'antd';\nimport { Button, message, Modal } from 'antd';\nimport type { Key, ReactNode } from 'react';\nimport { useCallback, useMemo, useRef, useState } from 'react';\n\ntype MaybePromise<T> = T | Promise<T>;\n\ntype RKConfirmConfig<Params extends unknown[]> =\n | ModalFuncProps\n | ((...params: Params) => ModalFuncProps | false)\n | false;\n\ntype RKSuccessMessage<Result, Params extends unknown[]> =\n | ReactNode\n | ((result: Result, ...params: Params) => ReactNode);\n\ntype RKFailureMessage<Result, Params extends unknown[]> =\n | ReactNode\n | ((result: Result, ...params: Params) => ReactNode);\n\ntype RKErrorMessage<Params extends unknown[]> =\n | ReactNode\n | ((error: unknown, ...params: Params) => ReactNode);\n\nconst DEFAULT_FETCH_KEY = 'RK_CONFIRM_DEFAULT';\n\nexport interface UseRKConfirmRequestOptions<Result, Params extends unknown[]> {\n request: (...params: Params) => Promise<Result>;\n confirm?: RKConfirmConfig<Params>;\n successMessage?: RKSuccessMessage<Result, Params>;\n failureMessage?: RKFailureMessage<Result, Params>;\n errorMessage?: RKErrorMessage<Params>;\n successCode?: number;\n isSuccess?: (result: Result) => boolean;\n getLoadingKey?: (...params: Params) => Key | undefined;\n debounceInterval?: number;\n throttleInterval?: number;\n onSuccess?: (result: Result, ...params: Params) => MaybePromise<void>;\n onFailure?: (result: Result, ...params: Params) => MaybePromise<void>;\n onError?: (error: unknown, ...params: Params) => MaybePromise<void>;\n onCancel?: (...params: Params) => MaybePromise<void>;\n}\n\nexport interface RKConfirmActionProps<Result>\n extends Omit<ButtonProps, 'loading' | 'onClick' | 'onError'>,\n Omit<UseRKConfirmRequestOptions<Result, []>, 'getLoadingKey'> {\n stopPropagation?: boolean;\n}\n\nfunction isResponseSuccess<Result>(result: Result, successCode: number) {\n if (result && typeof result === 'object' && 'code' in result) {\n return (result as { code?: unknown }).code === successCode;\n }\n\n return true;\n}\n\nfunction resolveConfirmConfig<Params extends unknown[]>(\n confirm: RKConfirmConfig<Params> | undefined,\n params: Params,\n) {\n if (typeof confirm === 'function') {\n return confirm(...params);\n }\n\n return confirm;\n}\n\nfunction resolveMessage<Result, Params extends unknown[]>(\n nextMessage:\n | RKSuccessMessage<Result, Params>\n | RKFailureMessage<Result, Params>\n | undefined,\n result: Result,\n params: Params,\n) {\n if (typeof nextMessage === 'function') {\n return nextMessage(result, ...params);\n }\n\n return nextMessage;\n}\n\nfunction resolveErrorMessage<Params extends unknown[]>(\n errorMessage: RKErrorMessage<Params> | undefined,\n error: unknown,\n params: Params,\n) {\n if (typeof errorMessage === 'function') {\n return errorMessage(error, ...params);\n }\n\n return errorMessage;\n}\n\nexport function useRKConfirmRequest<Result = unknown, Params extends unknown[] = []>(\n options: UseRKConfirmRequestOptions<Result, Params>,\n) {\n const {\n request,\n confirm,\n successMessage,\n failureMessage,\n errorMessage,\n successCode = 200,\n isSuccess,\n getLoadingKey,\n debounceInterval,\n throttleInterval,\n onSuccess,\n onFailure,\n onError,\n onCancel,\n } = options;\n const confirmOpenRef = useRef(false);\n const [loadingKeys, setLoadingKeys] = useState<Record<string, boolean>>({});\n const { runAsync: requestRun, loading } = useRequest<Result, Params>(request, {\n manual: true,\n debounceWait: debounceInterval,\n throttleWait: throttleInterval,\n });\n\n const setKeyLoading = useCallback((params: Params, nextLoading: boolean) => {\n const key = getLoadingKey?.(...params);\n const loadingKey = key === undefined ? DEFAULT_FETCH_KEY : String(key);\n\n setLoadingKeys((prev) => ({\n ...prev,\n [loadingKey]: nextLoading,\n }));\n }, [getLoadingKey]);\n\n const executeRequest = useCallback(\n async (...params: Params) => {\n setKeyLoading(params, true);\n\n try {\n const result = await requestRun(...params);\n const success = isSuccess ? isSuccess(result) : isResponseSuccess(result, successCode);\n\n if (success) {\n const nextSuccessMessage = resolveMessage(successMessage, result, params);\n\n if (nextSuccessMessage) {\n message.success(nextSuccessMessage);\n }\n\n await onSuccess?.(result, ...params);\n } else {\n const nextFailureMessage = resolveMessage(failureMessage, result, params);\n\n if (nextFailureMessage) {\n message.error(nextFailureMessage);\n }\n\n await onFailure?.(result, ...params);\n }\n\n return result;\n } catch (error) {\n const nextErrorMessage = resolveErrorMessage(errorMessage, error, params);\n\n if (nextErrorMessage) {\n message.error(nextErrorMessage);\n }\n\n await onError?.(error, ...params);\n throw error;\n } finally {\n setKeyLoading(params, false);\n }\n },\n [\n errorMessage,\n failureMessage,\n isSuccess,\n onError,\n onFailure,\n onSuccess,\n requestRun,\n setKeyLoading,\n successCode,\n successMessage,\n ],\n );\n\n const run = useCallback(\n (...params: Params) => {\n const confirmConfig = resolveConfirmConfig(confirm, params);\n\n if (!confirmConfig) {\n void executeRequest(...params);\n return;\n }\n\n if (confirmOpenRef.current) return;\n\n confirmOpenRef.current = true;\n\n const { onOk, onCancel: onModalCancel, afterClose, ...restConfirmConfig } = confirmConfig;\n\n Modal.confirm({\n okText: '确认',\n cancelText: '取消',\n ...restConfirmConfig,\n onOk: async (...args) => {\n const shouldContinue = await onOk?.(...args);\n\n if (shouldContinue === false) return false;\n\n return executeRequest(...params);\n },\n onCancel: async (...args) => {\n const shouldCancel = await onModalCancel?.(...args);\n\n await onCancel?.(...params);\n\n return shouldCancel;\n },\n afterClose: () => {\n confirmOpenRef.current = false;\n afterClose?.();\n },\n });\n },\n [confirm, executeRequest, onCancel],\n );\n\n const isLoading = useCallback(\n (key: Key | undefined) => {\n if (key === undefined) return loading || !!loadingKeys[DEFAULT_FETCH_KEY];\n\n return !!loadingKeys[String(key)];\n },\n [loading, loadingKeys],\n );\n\n return useMemo(\n () => ({\n run,\n runRequest: executeRequest,\n loading,\n loadingKeys,\n isLoading,\n }),\n [executeRequest, isLoading, loading, loadingKeys, run],\n );\n}\n\nconst RKConfirmAction = <Result = unknown,>({\n request,\n confirm,\n successMessage,\n failureMessage,\n errorMessage,\n successCode,\n isSuccess,\n debounceInterval,\n throttleInterval,\n onSuccess,\n onFailure,\n onError,\n onCancel,\n stopPropagation = true,\n children,\n ...buttonProps\n}: RKConfirmActionProps<Result>) => {\n const { run, loading } = useRKConfirmRequest<Result, []>({\n request,\n confirm,\n successMessage,\n failureMessage,\n errorMessage,\n successCode,\n isSuccess,\n debounceInterval,\n throttleInterval,\n onSuccess,\n onFailure,\n onError,\n onCancel,\n });\n\n return (\n <Button\n type=\"link\"\n {...buttonProps}\n loading={loading}\n onClick={(event) => {\n if (stopPropagation) {\n event.stopPropagation();\n }\n\n run();\n }}\n >\n {children}\n </Button>\n );\n};\n\nexport default RKConfirmAction;\n","import { ProFormSelect } from '@ant-design/pro-components';\nimport type { ProFormSelectProps } from '@ant-design/pro-components';\nimport type { SelectProps } from 'antd';\nimport { useMemo } from 'react';\nimport { resolveRKRemoteSelectOptions } from './optionSourceRegistry';\nimport type { RKRemoteSelectOption, RKRemoteSelectOptionSource } from './type';\n\ntype RKRemoteSelectRecord = Record<string, any>;\ntype RKRemoteSelectParams = Record<string, any>;\ntype RKRemoteSelectRequestResult<OptionItem extends RKRemoteSelectRecord> =\n | OptionItem[]\n | {\n data?: OptionItem[] | { records?: OptionItem[]; list?: OptionItem[] };\n records?: OptionItem[];\n list?: OptionItem[];\n [key: string]: unknown;\n };\ntype RKRemoteSelectDisabled<OptionItem extends RKRemoteSelectRecord> =\n | boolean\n | ((item: OptionItem) => boolean);\n\nexport type RKRemoteSelectRequestApi<\n OptionItem extends RKRemoteSelectRecord = RKRemoteSelectRecord,\n Params extends RKRemoteSelectParams = RKRemoteSelectParams,\n> = (params: Params) => Promise<RKRemoteSelectRequestResult<OptionItem>>;\n\nexport interface RKRemoteSelectProps<\n ValueType = unknown,\n OptionItem extends RKRemoteSelectRecord = RKRemoteSelectRecord,\n Params extends RKRemoteSelectParams = RKRemoteSelectParams,\n> extends Omit<ProFormSelectProps<ValueType>, 'disabled' | 'options' | 'request'> {\n options?: ProFormSelectProps<ValueType>['options'] | OptionItem[];\n optionSource?: RKRemoteSelectOptionSource;\n requestApi?: RKRemoteSelectRequestApi<OptionItem, Params>;\n request?: ProFormSelectProps<ValueType>['request'];\n labelField?: string;\n valueField?: string;\n childrenField?: string;\n disabled?: RKRemoteSelectDisabled<OptionItem>;\n searchKey?: string;\n}\n\nfunction isDynamicOptionSource(optionSource?: RKRemoteSelectOptionSource) {\n return optionSource?.type === 'enum' || optionSource?.type === 'remote';\n}\n\nfunction resolveParams(\n optionSource: RKRemoteSelectOptionSource | undefined,\n params: RKRemoteSelectProps['params'],\n) {\n if (!isDynamicOptionSource(optionSource)) return params;\n if (typeof params === 'function') return params;\n\n return {\n ...params,\n ...optionSource,\n };\n}\n\nfunction isRecord(value: unknown): value is RKRemoteSelectRecord {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\nfunction isOptionValue(value: unknown): value is RKRemoteSelectOption['value'] {\n return typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean';\n}\n\nfunction normalizeOptionLabel(value: unknown): RKRemoteSelectOption['label'] | undefined {\n if (typeof value === 'string' || typeof value === 'number') {\n return value;\n }\n\n if (typeof value === 'boolean') {\n return String(value);\n }\n\n return undefined;\n}\n\nfunction resolveRequestApiItems<OptionItem extends RKRemoteSelectRecord>(\n result: RKRemoteSelectRequestResult<OptionItem>,\n): OptionItem[] {\n if (Array.isArray(result)) return result;\n\n if (Array.isArray(result.data)) return result.data;\n\n if (isRecord(result.data)) {\n if (Array.isArray(result.data.records)) return result.data.records;\n if (Array.isArray(result.data.list)) return result.data.list;\n }\n\n if (Array.isArray(result.records)) return result.records;\n if (Array.isArray(result.list)) return result.list;\n\n return [];\n}\n\nfunction normalizeSearchParams<Params extends RKRemoteSelectParams>(\n params: Params,\n searchKey = 'keyWords',\n) {\n if (searchKey === 'keyWords') return params;\n\n const { keyWords, ...restParams } = params;\n\n return {\n ...restParams,\n ...(keyWords === undefined ? {} : { [searchKey]: keyWords }),\n } as Params;\n}\n\nfunction normalizeOptions<OptionItem extends RKRemoteSelectRecord>(\n items: OptionItem[],\n config: {\n labelField?: string;\n valueField?: string;\n childrenField?: string;\n disabled?: RKRemoteSelectDisabled<OptionItem>;\n },\n): RKRemoteSelectOption[] {\n const labelField = config.labelField || 'label';\n const valueField = config.valueField || 'value';\n const childrenField = config.childrenField || 'children';\n\n return items\n .map((item): RKRemoteSelectOption | undefined => {\n const label = normalizeOptionLabel(item[labelField]);\n const value = item[valueField];\n const children = item[childrenField];\n\n if (label === undefined || !isOptionValue(value)) return undefined;\n\n const optionDisabled =\n typeof config.disabled === 'function'\n ? config.disabled(item)\n : typeof item.disabled === 'boolean'\n ? item.disabled\n : undefined;\n\n return {\n ...item,\n label,\n value,\n disabled: optionDisabled,\n children: Array.isArray(children)\n ? normalizeOptions(\n children.filter(isRecord) as OptionItem[],\n config,\n )\n : undefined,\n };\n })\n .filter((item): item is RKRemoteSelectOption => item !== undefined);\n}\n\nfunction shouldNormalizeOptions<OptionItem extends RKRemoteSelectRecord>(\n options: RKRemoteSelectProps<unknown, OptionItem>['options'],\n config: {\n labelField?: string;\n valueField?: string;\n childrenField?: string;\n disabled?: RKRemoteSelectDisabled<OptionItem>;\n },\n) {\n return (\n Array.isArray(options) &&\n (options as unknown[]).every(isRecord) &&\n (!!config.labelField ||\n !!config.valueField ||\n !!config.childrenField ||\n typeof config.disabled === 'function')\n );\n}\n\nexport default function RKRemoteSelect<\n ValueType = unknown,\n OptionItem extends RKRemoteSelectRecord = RKRemoteSelectRecord,\n Params extends RKRemoteSelectParams = RKRemoteSelectParams,\n>({\n optionSource,\n options,\n requestApi,\n request,\n params,\n fieldProps,\n showSearch = true,\n labelField,\n valueField,\n childrenField,\n disabled,\n searchKey = 'keyWords',\n ...restProps\n}: RKRemoteSelectProps<ValueType, OptionItem, Params>) {\n const selectDisabled = typeof disabled === 'boolean' ? disabled : undefined;\n const optionConfig = useMemo(\n () => ({\n labelField,\n valueField,\n childrenField,\n disabled,\n }),\n [childrenField, disabled, labelField, valueField],\n );\n const selectOptions = useMemo(() => {\n if (!shouldNormalizeOptions(options, optionConfig)) {\n return options as ProFormSelectProps<ValueType>['options'];\n }\n\n return normalizeOptions(\n options as OptionItem[],\n optionConfig,\n ) as ProFormSelectProps<ValueType>['options'];\n }, [optionConfig, options]);\n\n const selectRequest = useMemo(() => {\n if (isDynamicOptionSource(optionSource)) {\n return async () => resolveRKRemoteSelectOptions(optionSource);\n }\n\n if (requestApi) {\n return async (requestParams: Params) => {\n const result = await requestApi(normalizeSearchParams(requestParams, searchKey));\n return normalizeOptions(resolveRequestApiItems(result), optionConfig);\n };\n }\n\n return request;\n }, [optionConfig, optionSource, request, requestApi, searchKey]);\n const requestParams = useMemo(() => resolveParams(optionSource, params), [optionSource, params]);\n\n return (\n <ProFormSelect\n {...restProps}\n disabled={selectDisabled}\n showSearch={showSearch}\n options={selectOptions}\n request={selectRequest}\n params={requestParams}\n fieldProps={\n {\n optionFilterProp: 'label',\n filterOption: true,\n ...fieldProps,\n } as SelectProps<ValueType>\n }\n />\n );\n}\n\nexport {\n enumOptionSourceOptions,\n registerRKRemoteSelectEnumOptionSource,\n registerRKRemoteSelectRemoteOptionSource,\n remoteOptionSourceOptions,\n resolveRKRemoteSelectOptions,\n} from './optionSourceRegistry';\nexport type { RKRemoteSelectOptionSourceDescriptor } from './optionSourceRegistry';\nexport type {\n RKRemoteSelectOption,\n RKRemoteSelectOptionSource,\n RKRemoteSelectOptionSourceType,\n RKRemoteSelectOptionValue,\n} from './type';\n","import type {\n RKRemoteSelectOption,\n RKRemoteSelectOptionSource,\n RKRemoteSelectOptionSourceType,\n RKRemoteSelectOptionValue,\n} from './type';\n\ninterface OptionFieldDefaults {\n labelField: string;\n valueField: string;\n childrenField?: string;\n}\n\nexport interface RKRemoteSelectOptionSourceDescriptor {\n label: string;\n value: string;\n description: string;\n sourceType: RKRemoteSelectOptionSourceType;\n}\n\ninterface RemoteOptionSourceResult {\n items: Array<Record<string, unknown>>;\n defaults?: OptionFieldDefaults;\n}\n\ntype RemoteOptionSourceLoader = () => Promise<RemoteOptionSourceResult>;\n\nconst enumOptionSourceRegistry: Record<string, RKRemoteSelectOption[]> = {};\nconst remoteOptionSourceRegistry: Record<string, RemoteOptionSourceLoader> = {};\n\nexport const enumOptionSourceOptions: RKRemoteSelectOptionSourceDescriptor[] = [];\nexport const remoteOptionSourceOptions: RKRemoteSelectOptionSourceDescriptor[] = [];\n\nfunction upsertOptionSourceDescriptor(\n list: RKRemoteSelectOptionSourceDescriptor[],\n descriptor: RKRemoteSelectOptionSourceDescriptor,\n) {\n const index = list.findIndex((item) => item.value === descriptor.value);\n\n if (index === -1) {\n list.push(descriptor);\n return;\n }\n\n list[index] = descriptor;\n}\n\nexport function registerRKRemoteSelectEnumOptionSource(\n key: string,\n options: RKRemoteSelectOption[],\n descriptor?: Omit<RKRemoteSelectOptionSourceDescriptor, 'value' | 'sourceType'>,\n) {\n enumOptionSourceRegistry[key] = options;\n upsertOptionSourceDescriptor(enumOptionSourceOptions, {\n label: descriptor?.label || key,\n value: key,\n description: descriptor?.description || '',\n sourceType: 'enum',\n });\n}\n\nexport function registerRKRemoteSelectRemoteOptionSource(\n key: string,\n loader: RemoteOptionSourceLoader,\n descriptor?: Omit<RKRemoteSelectOptionSourceDescriptor, 'value' | 'sourceType'>,\n) {\n remoteOptionSourceRegistry[key] = loader;\n upsertOptionSourceDescriptor(remoteOptionSourceOptions, {\n label: descriptor?.label || key,\n value: key,\n description: descriptor?.description || '',\n sourceType: 'remote',\n });\n}\n\nfunction normalizeOptionLabel(value: unknown): RKRemoteSelectOption['label'] | undefined {\n if (typeof value === 'string' || typeof value === 'number') {\n return value;\n }\n\n if (typeof value === 'boolean') {\n return String(value);\n }\n\n return undefined;\n}\n\nfunction isOptionValue(value: unknown): value is RKRemoteSelectOptionValue {\n return typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean';\n}\n\nfunction normalizeOptionItems(\n items: Array<Record<string, unknown>>,\n defaults?: OptionFieldDefaults,\n source?: RKRemoteSelectOptionSource,\n): RKRemoteSelectOption[] {\n const labelField = source?.labelField || defaults?.labelField || 'label';\n const valueField = source?.valueField || defaults?.valueField || 'value';\n const childrenField = source?.childrenField || defaults?.childrenField || 'children';\n\n return items\n .map((item): RKRemoteSelectOption | undefined => {\n const label = normalizeOptionLabel(item[labelField]);\n const value = item[valueField];\n const children = item[childrenField];\n\n if (label === undefined || !isOptionValue(value)) {\n return undefined;\n }\n\n return {\n label,\n value,\n disabled: typeof item.disabled === 'boolean' ? item.disabled : undefined,\n children: Array.isArray(children)\n ? normalizeOptionItems(\n children.filter(\n (child): child is Record<string, unknown> =>\n typeof child === 'object' && child !== null,\n ),\n defaults,\n source,\n )\n : undefined,\n };\n })\n .filter((item): item is RKRemoteSelectOption => item !== undefined);\n}\n\nexport async function resolveRKRemoteSelectOptions(\n source?: RKRemoteSelectOptionSource,\n): Promise<RKRemoteSelectOption[]> {\n if (!source?.type || !source.key) {\n return [];\n }\n\n if (source.type === 'enum') {\n return enumOptionSourceRegistry[source.key] || [];\n }\n\n if (source.type === 'remote') {\n const loader = remoteOptionSourceRegistry[source.key];\n if (!loader) return [];\n\n const result = await loader();\n\n return normalizeOptionItems(result.items, result.defaults, source);\n }\n\n return [];\n}\n","import { ProForm } from '@ant-design/pro-components';\nimport type { ColProps } from 'antd';\nimport type { Rule } from 'antd/es/form';\nimport { RKSchemaFieldRegistry } from './fieldRegistry';\nimport type { RKSchemaFormProps } from './type';\n\nconst requiredRule: Rule = {\n required: true,\n message: '此项为必填项',\n};\n\nfunction getColProps(columns?: number): ColProps {\n switch (columns) {\n case 1:\n return { span: 24 };\n case 2:\n return { lg: 12, md: 12, sm: 24 };\n case 3:\n return { lg: 8, md: 12, sm: 24 };\n case 6:\n return { lg: 4, md: 6, sm: 12 };\n case 4:\n default:\n return { lg: 6, md: 8, sm: 12 };\n }\n}\n\nexport default function RKSchemaForm<T = Record<string, unknown>>(props: RKSchemaFormProps<T>) {\n const { columns, columnCount, fieldColProps, rowProps, ...formProps } = props;\n const defaultColProps = fieldColProps || getColProps(columnCount);\n\n return (\n <ProForm grid rowProps={{ gutter: 24, ...rowProps }} {...formProps}>\n {columns.map((column, index) => {\n if (column.hidden === true) return null;\n\n const {\n key,\n title,\n dataIndex,\n valueType = 'text',\n required,\n disabled,\n readonly,\n initialValue,\n rules,\n tooltip,\n extra,\n colProps,\n fieldProps,\n } = column;\n const Component = RKSchemaFieldRegistry[valueType];\n if (!Component) return null;\n\n return (\n <Component\n key={key || `${String(dataIndex)}-${index}`}\n label={title}\n name={dataIndex}\n disabled={disabled}\n readonly={readonly}\n initialValue={initialValue}\n rules={[...(required === true ? [requiredRule] : []), ...(rules || [])]}\n tooltip={tooltip}\n extra={extra}\n colProps={colProps || defaultColProps}\n fieldProps={fieldProps}\n />\n );\n })}\n </ProForm>\n );\n}\n\nexport * from './fieldRegistry';\nexport * from './optionSourceRegistry';\nexport * from './type';\n","import {\n ProFormCascader,\n ProFormCheckbox,\n ProFormColorPicker,\n ProFormDateMonthRangePicker,\n ProFormDatePicker,\n ProFormDateQuarterRangePicker,\n ProFormDateRangePicker,\n ProFormDateTimePicker,\n ProFormDateTimeRangePicker,\n ProFormDateWeekRangePicker,\n ProFormDateYearRangePicker,\n ProFormDigit,\n ProFormDigitRange,\n ProFormMoney,\n ProFormRadio,\n ProFormRate,\n ProFormSegmented,\n ProFormSelect,\n ProFormSlider,\n ProFormSwitch,\n ProFormText,\n ProFormTextArea,\n ProFormTimePicker,\n ProFormTreeSelect,\n ProFormUploadButton,\n ProFormUploadDragger,\n type ProFormItemProps,\n} from '@ant-design/pro-components';\nimport type { ComponentType } from 'react';\nimport { resolveRKSchemaOptions } from './optionSourceRegistry';\nimport type { RKSchemaFieldProps, RKSchemaOption, RKSchemaOptionSource } from './type';\n\nexport type RKSchemaFieldRenderer = ComponentType<ProFormItemProps & Record<string, unknown>>;\n\nfunction isFieldComponentProps(value: unknown): value is RKSchemaFieldProps {\n return typeof value === 'object' && value !== null;\n}\n\nfunction isDynamicOptionSource(source?: RKSchemaOptionSource) {\n return ['enum', 'remote'].includes(source?.type || '');\n}\n\nfunction getStaticOptions(fieldProps: RKSchemaFieldProps, optionFieldName: 'options' | 'treeData') {\n if (optionFieldName === 'treeData') {\n return fieldProps.treeData || fieldProps.options;\n }\n\n return fieldProps.options;\n}\n\nfunction asField(component: unknown): RKSchemaFieldRenderer {\n return component as RKSchemaFieldRenderer;\n}\n\nfunction createOptionField(\n Component: RKSchemaFieldRenderer,\n options: { optionFieldName?: 'options' | 'treeData' } = {},\n): RKSchemaFieldRenderer {\n const { optionFieldName = 'options' } = options;\n\n return function RKSchemaOptionsField(props: ProFormItemProps & Record<string, unknown>) {\n const fieldProps = isFieldComponentProps(props.fieldProps) ? props.fieldProps : {};\n const { options: staticOptions, treeData, optionSource, ...restFieldProps } = fieldProps;\n const shouldLoadDynamic = isDynamicOptionSource(optionSource);\n const resolvedStaticOptions =\n getStaticOptions({ ...fieldProps, options: staticOptions, treeData }, optionFieldName) || [];\n const request = shouldLoadDynamic\n ? async (): Promise<RKSchemaOption[]> => resolveRKSchemaOptions(optionSource)\n : undefined;\n\n return (\n <Component\n {...props}\n request={request || props.request}\n params={shouldLoadDynamic ? optionSource : props.params}\n fieldProps={{\n ...restFieldProps,\n [optionFieldName]: shouldLoadDynamic ? undefined : resolvedStaticOptions,\n }}\n />\n );\n };\n}\n\nexport const RKSchemaFieldRegistry: Record<string, RKSchemaFieldRenderer> = {\n text: asField(ProFormText),\n password: asField(ProFormText.Password),\n textarea: asField(ProFormTextArea),\n digit: asField(ProFormDigit),\n digitRange: asField(ProFormDigitRange),\n select: createOptionField(asField(ProFormSelect)),\n treeSelect: createOptionField(asField(ProFormTreeSelect), { optionFieldName: 'treeData' }),\n cascader: createOptionField(asField(ProFormCascader)),\n radio: createOptionField(asField(ProFormRadio.Group)),\n checkbox: asField(ProFormCheckbox),\n checkboxGroup: createOptionField(asField(ProFormCheckbox.Group)),\n switch: asField(ProFormSwitch),\n slider: asField(ProFormSlider),\n rate: asField(ProFormRate),\n segmented: createOptionField(asField(ProFormSegmented)),\n color: asField(ProFormColorPicker),\n date: asField(ProFormDatePicker),\n dateRange: asField(ProFormDateRangePicker),\n dateTime: asField(ProFormDateTimePicker),\n dateTimeRange: asField(ProFormDateTimeRangePicker),\n dateWeekRange: asField(ProFormDateWeekRangePicker),\n dateMonthRange: asField(ProFormDateMonthRangePicker),\n dateQuarterRange: asField(ProFormDateQuarterRangePicker),\n dateYearRange: asField(ProFormDateYearRangePicker),\n time: asField(ProFormTimePicker),\n timeRange: asField(ProFormTimePicker.RangePicker),\n money: asField(ProFormMoney),\n uploadButton: asField(ProFormUploadButton),\n uploadDragger: asField(ProFormUploadDragger),\n};\n\nexport function registerRKSchemaField(valueType: string, renderer: RKSchemaFieldRenderer) {\n RKSchemaFieldRegistry[valueType] = renderer;\n}\n","import { ProTable } from '@ant-design/pro-components';\nimport type { ProTableProps } from '@ant-design/pro-components';\nimport type { SortOrder } from 'antd/es/table/interface';\n\nexport type RKTableRequestParams = {\n current?: number;\n pageSize?: number;\n [key: string]: any;\n};\n\nexport type RKTableResponse<DataSource extends Record<string, any>> = {\n code?: number;\n success?: boolean;\n data?:\n | DataSource[]\n | {\n records?: DataSource[];\n list?: DataSource[];\n total?: number;\n [key: string]: unknown;\n };\n records?: DataSource[];\n list?: DataSource[];\n total?: number;\n [key: string]: unknown;\n};\n\nexport type RKTableRequestApi<\n DataSource extends Record<string, any>,\n RequestParams,\n> = (data: RequestParams) => Promise<RKTableResponse<DataSource>>;\n\nexport type RKTableRequestAdapter<DataSource extends Record<string, any>> = (\n response: RKTableResponse<DataSource>,\n) => {\n data: DataSource[];\n success: boolean;\n total?: number;\n};\n\nexport type RKTableProps<\n DataSource extends Record<string, any>,\n Params extends Record<string, any> = Record<string, any>,\n ValueType = 'text',\n RequestParams = RKTableRequestParams,\n> = ProTableProps<DataSource, Params, ValueType> & {\n requestApi?: RKTableRequestApi<DataSource, RequestParams>;\n requestAdapter?: RKTableRequestAdapter<DataSource>;\n requestParamsFormatter?: (\n params: Params & RKTableRequestParams,\n sort: Record<string, SortOrder>,\n filter: Record<string, (string | number)[] | null>,\n ) => RequestParams;\n};\n\nfunction resolveRecords<DataSource extends Record<string, any>>(\n response: RKTableResponse<DataSource>,\n) {\n if (Array.isArray(response.data)) return response.data;\n\n if (response.data && typeof response.data === 'object') {\n if (Array.isArray(response.data.records)) return response.data.records;\n if (Array.isArray(response.data.list)) return response.data.list;\n }\n\n if (Array.isArray(response.records)) return response.records;\n if (Array.isArray(response.list)) return response.list;\n\n return [];\n}\n\nfunction resolveTotal<DataSource extends Record<string, any>>(\n response: RKTableResponse<DataSource>,\n) {\n if (typeof response.total === 'number') return response.total;\n\n if (response.data && !Array.isArray(response.data) && typeof response.data.total === 'number') {\n return response.data.total;\n }\n\n return resolveRecords(response).length;\n}\n\nfunction defaultRequestAdapter<DataSource extends Record<string, any>>(\n response: RKTableResponse<DataSource>,\n) {\n const success =\n typeof response.success === 'boolean'\n ? response.success\n : response.code === undefined || response.code === 200;\n\n return {\n data: resolveRecords(response),\n success,\n total: resolveTotal(response),\n };\n}\n\nconst RKTable = <\n DataSource extends Record<string, any>,\n Params extends Record<string, any> = Record<string, any>,\n ValueType = 'text',\n RequestParams = RKTableRequestParams,\n>({\n request,\n requestApi,\n requestAdapter = defaultRequestAdapter,\n requestParamsFormatter,\n search,\n options,\n pagination,\n scroll,\n form,\n rowKey,\n tableAlertRender,\n ...restProps\n}: RKTableProps<DataSource, Params, ValueType, RequestParams>) => {\n const tableSearch =\n search === false\n ? false\n : {\n filterType: 'query' as const,\n defaultCollapsed: false,\n ...(typeof search === 'object' ? search : {}),\n };\n const tableOptions =\n options === false\n ? false\n : {\n reload: true,\n density: false,\n setting: false,\n ...(typeof options === 'object' ? options : {}),\n };\n const tablePagination =\n pagination === false\n ? false\n : {\n defaultPageSize: 20,\n showSizeChanger: true,\n disabled: false,\n ...(typeof pagination === 'object' ? pagination : {}),\n };\n const tableForm = {\n syncToUrl: true,\n syncToInitialValues: false,\n ...(typeof form === 'object' ? form : {}),\n };\n const tableScroll = {\n x: 'max-content',\n ...(typeof scroll === 'object' ? scroll : {}),\n };\n const tableRequest = requestApi\n ? async (\n params: Params & RKTableRequestParams,\n sort: Record<string, SortOrder>,\n filter: Record<string, (string | number)[] | null>,\n ) => {\n const nextParams = requestParamsFormatter\n ? requestParamsFormatter(params, sort, filter)\n : (params as unknown as RequestParams);\n const response = await requestApi(nextParams);\n\n return requestAdapter(response);\n }\n : request;\n\n return (\n <ProTable<DataSource, Params, ValueType>\n rowKey={rowKey || 'id'}\n tableAlertRender={tableAlertRender ?? false}\n options={tableOptions}\n pagination={tablePagination}\n scroll={tableScroll}\n form={tableForm}\n {...restProps}\n search={tableSearch}\n request={tableRequest}\n />\n );\n};\n\nexport default RKTable;\n"],"mappings":"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","names":["useMemo","jsx","isOptionValue","normalizeOptionLabel","useMemo","requestParams","ProFormSelect","jsx","isDynamicOptionSource","ProFormSelect","jsx","jsx"]}
1
+ {"version":3,"sources":["../src/RKConfirmAction/index.tsx","../src/RKRemoteSelect/index.tsx","../src/RKRemoteSelect/optionSourceRegistry.ts","../src/RKSchemaForm/index.tsx","../src/RKSchemaForm/fieldRegistry.tsx","../src/RKTable/index.tsx"],"sourcesContent":["import { useRequest } from 'ahooks';\nimport type { ButtonProps, ModalFuncProps } from 'antd';\nimport { Button, message, Modal } from 'antd';\nimport type { Key, ReactNode } from 'react';\nimport { useCallback, useMemo, useRef, useState } from 'react';\n\ntype MaybePromise<T> = T | Promise<T>;\n\ntype RKConfirmConfig<Params extends unknown[]> =\n | ModalFuncProps\n | ((...params: Params) => ModalFuncProps | false)\n | false;\n\ntype RKSuccessMessage<Result, Params extends unknown[]> =\n | ReactNode\n | ((result: Result, ...params: Params) => ReactNode);\n\ntype RKFailureMessage<Result, Params extends unknown[]> =\n | ReactNode\n | ((result: Result, ...params: Params) => ReactNode);\n\ntype RKErrorMessage<Params extends unknown[]> =\n | ReactNode\n | ((error: unknown, ...params: Params) => ReactNode);\n\nconst DEFAULT_FETCH_KEY = 'RK_CONFIRM_DEFAULT';\n\nexport interface UseRKConfirmRequestOptions<Result, Params extends unknown[]> {\n request: (...params: Params) => Promise<Result>;\n confirm?: RKConfirmConfig<Params>;\n successMessage?: RKSuccessMessage<Result, Params>;\n failureMessage?: RKFailureMessage<Result, Params>;\n errorMessage?: RKErrorMessage<Params>;\n successCode?: number;\n isSuccess?: (result: Result) => boolean;\n getLoadingKey?: (...params: Params) => Key | undefined;\n debounceInterval?: number;\n throttleInterval?: number;\n onSuccess?: (result: Result, ...params: Params) => MaybePromise<void>;\n onFailure?: (result: Result, ...params: Params) => MaybePromise<void>;\n onError?: (error: unknown, ...params: Params) => MaybePromise<void>;\n onCancel?: (...params: Params) => MaybePromise<void>;\n}\n\nexport interface RKConfirmActionProps<Result>\n extends Omit<ButtonProps, 'loading' | 'onClick' | 'onError'>,\n Omit<UseRKConfirmRequestOptions<Result, []>, 'getLoadingKey'> {\n stopPropagation?: boolean;\n}\n\nfunction isResponseSuccess<Result>(result: Result, successCode: number) {\n if (result && typeof result === 'object' && 'code' in result) {\n return (result as { code?: unknown }).code === successCode;\n }\n\n return true;\n}\n\nfunction resolveConfirmConfig<Params extends unknown[]>(\n confirm: RKConfirmConfig<Params> | undefined,\n params: Params,\n) {\n if (typeof confirm === 'function') {\n return confirm(...params);\n }\n\n return confirm;\n}\n\nfunction resolveMessage<Result, Params extends unknown[]>(\n nextMessage:\n | RKSuccessMessage<Result, Params>\n | RKFailureMessage<Result, Params>\n | undefined,\n result: Result,\n params: Params,\n) {\n if (typeof nextMessage === 'function') {\n return nextMessage(result, ...params);\n }\n\n return nextMessage;\n}\n\nfunction resolveErrorMessage<Params extends unknown[]>(\n errorMessage: RKErrorMessage<Params> | undefined,\n error: unknown,\n params: Params,\n) {\n if (typeof errorMessage === 'function') {\n return errorMessage(error, ...params);\n }\n\n return errorMessage;\n}\n\nexport function useRKConfirmRequest<Result = unknown, Params extends unknown[] = []>(\n options: UseRKConfirmRequestOptions<Result, Params>,\n) {\n const {\n request,\n confirm,\n successMessage,\n failureMessage,\n errorMessage,\n successCode = 200,\n isSuccess,\n getLoadingKey,\n debounceInterval,\n throttleInterval,\n onSuccess,\n onFailure,\n onError,\n onCancel,\n } = options;\n const confirmOpenRef = useRef(false);\n const [loadingKeys, setLoadingKeys] = useState<Record<string, boolean>>({});\n const { runAsync: requestRun, loading } = useRequest<Result, Params>(request, {\n manual: true,\n debounceWait: debounceInterval,\n throttleWait: throttleInterval,\n });\n\n const setKeyLoading = useCallback((params: Params, nextLoading: boolean) => {\n const key = getLoadingKey?.(...params);\n const loadingKey = key === undefined ? DEFAULT_FETCH_KEY : String(key);\n\n setLoadingKeys((prev) => ({\n ...prev,\n [loadingKey]: nextLoading,\n }));\n }, [getLoadingKey]);\n\n const executeRequest = useCallback(\n async (...params: Params) => {\n setKeyLoading(params, true);\n\n try {\n const result = await requestRun(...params);\n const success = isSuccess ? isSuccess(result) : isResponseSuccess(result, successCode);\n\n if (success) {\n const nextSuccessMessage = resolveMessage(successMessage, result, params);\n\n if (nextSuccessMessage) {\n message.success(nextSuccessMessage);\n }\n\n await onSuccess?.(result, ...params);\n } else {\n const nextFailureMessage = resolveMessage(failureMessage, result, params);\n\n if (nextFailureMessage) {\n message.error(nextFailureMessage);\n }\n\n await onFailure?.(result, ...params);\n }\n\n return result;\n } catch (error) {\n const nextErrorMessage = resolveErrorMessage(errorMessage, error, params);\n\n if (nextErrorMessage) {\n message.error(nextErrorMessage);\n }\n\n await onError?.(error, ...params);\n throw error;\n } finally {\n setKeyLoading(params, false);\n }\n },\n [\n errorMessage,\n failureMessage,\n isSuccess,\n onError,\n onFailure,\n onSuccess,\n requestRun,\n setKeyLoading,\n successCode,\n successMessage,\n ],\n );\n\n const run = useCallback(\n (...params: Params) => {\n const confirmConfig = resolveConfirmConfig(confirm, params);\n\n if (!confirmConfig) {\n void executeRequest(...params);\n return;\n }\n\n if (confirmOpenRef.current) return;\n\n confirmOpenRef.current = true;\n\n const { onOk, onCancel: onModalCancel, afterClose, ...restConfirmConfig } = confirmConfig;\n\n Modal.confirm({\n okText: '确认',\n cancelText: '取消',\n ...restConfirmConfig,\n onOk: async (...args) => {\n const shouldContinue = await onOk?.(...args);\n\n if (shouldContinue === false) return false;\n\n return executeRequest(...params);\n },\n onCancel: async (...args) => {\n const shouldCancel = await onModalCancel?.(...args);\n\n await onCancel?.(...params);\n\n return shouldCancel;\n },\n afterClose: () => {\n confirmOpenRef.current = false;\n afterClose?.();\n },\n });\n },\n [confirm, executeRequest, onCancel],\n );\n\n const isLoading = useCallback(\n (key: Key | undefined) => {\n if (key === undefined) return loading || !!loadingKeys[DEFAULT_FETCH_KEY];\n\n return !!loadingKeys[String(key)];\n },\n [loading, loadingKeys],\n );\n\n return useMemo(\n () => ({\n run,\n runRequest: executeRequest,\n loading,\n loadingKeys,\n isLoading,\n }),\n [executeRequest, isLoading, loading, loadingKeys, run],\n );\n}\n\nconst RKConfirmAction = <Result = unknown,>({\n request,\n confirm,\n successMessage,\n failureMessage,\n errorMessage,\n successCode,\n isSuccess,\n debounceInterval,\n throttleInterval,\n onSuccess,\n onFailure,\n onError,\n onCancel,\n stopPropagation = true,\n children,\n ...buttonProps\n}: RKConfirmActionProps<Result>) => {\n const { run, loading } = useRKConfirmRequest<Result, []>({\n request,\n confirm,\n successMessage,\n failureMessage,\n errorMessage,\n successCode,\n isSuccess,\n debounceInterval,\n throttleInterval,\n onSuccess,\n onFailure,\n onError,\n onCancel,\n });\n\n return (\n <Button\n type=\"link\"\n {...buttonProps}\n loading={loading}\n onClick={(event) => {\n if (stopPropagation) {\n event.stopPropagation();\n }\n\n run();\n }}\n >\n {children}\n </Button>\n );\n};\n\nexport default RKConfirmAction;\n","import { ProFormSelect } from '@ant-design/pro-components';\nimport type { ProFormSelectProps } from '@ant-design/pro-components';\nimport type { SelectProps } from 'antd';\nimport { useMemo } from 'react';\nimport { resolveRKRemoteSelectOptions } from './optionSourceRegistry';\nimport type { RKRemoteSelectOption, RKRemoteSelectOptionSource } from './type';\n\ntype RKRemoteSelectRecord = Record<string, any>;\ntype RKRemoteSelectParams = Record<string, any>;\ntype RKRemoteSelectRequestResult<OptionItem extends RKRemoteSelectRecord> =\n | OptionItem[]\n | {\n data?: OptionItem[] | { records?: OptionItem[]; list?: OptionItem[] };\n records?: OptionItem[];\n list?: OptionItem[];\n [key: string]: unknown;\n };\ntype RKRemoteSelectDisabled<OptionItem extends RKRemoteSelectRecord> =\n | boolean\n | ((item: OptionItem) => boolean);\n\nexport type RKRemoteSelectRequestApi<\n OptionItem extends RKRemoteSelectRecord = RKRemoteSelectRecord,\n Params extends RKRemoteSelectParams = RKRemoteSelectParams,\n> = (params: Params) => Promise<RKRemoteSelectRequestResult<OptionItem>>;\n\nexport interface RKRemoteSelectProps<\n ValueType = unknown,\n OptionItem extends RKRemoteSelectRecord = RKRemoteSelectRecord,\n Params extends RKRemoteSelectParams = RKRemoteSelectParams,\n> extends Omit<ProFormSelectProps<ValueType>, 'disabled' | 'options' | 'request'> {\n options?: ProFormSelectProps<ValueType>['options'] | OptionItem[];\n optionSource?: RKRemoteSelectOptionSource;\n requestApi?: RKRemoteSelectRequestApi<OptionItem, Params>;\n request?: ProFormSelectProps<ValueType>['request'];\n labelField?: string;\n valueField?: string;\n childrenField?: string;\n disabled?: RKRemoteSelectDisabled<OptionItem>;\n searchKey?: string;\n}\n\nfunction isDynamicOptionSource(optionSource?: RKRemoteSelectOptionSource) {\n return optionSource?.type === 'enum' || optionSource?.type === 'remote';\n}\n\nfunction resolveParams(\n optionSource: RKRemoteSelectOptionSource | undefined,\n params: RKRemoteSelectProps['params'],\n) {\n if (!isDynamicOptionSource(optionSource)) return params;\n if (typeof params === 'function') return params;\n\n return {\n ...params,\n ...optionSource,\n };\n}\n\nfunction isRecord(value: unknown): value is RKRemoteSelectRecord {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\nfunction isOptionValue(value: unknown): value is RKRemoteSelectOption['value'] {\n return typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean';\n}\n\nfunction normalizeOptionLabel(value: unknown): RKRemoteSelectOption['label'] | undefined {\n if (typeof value === 'string' || typeof value === 'number') {\n return value;\n }\n\n if (typeof value === 'boolean') {\n return String(value);\n }\n\n return undefined;\n}\n\nfunction resolveRequestApiItems<OptionItem extends RKRemoteSelectRecord>(\n result: RKRemoteSelectRequestResult<OptionItem>,\n): OptionItem[] {\n if (Array.isArray(result)) return result;\n\n if (Array.isArray(result.data)) return result.data;\n\n if (isRecord(result.data)) {\n if (Array.isArray(result.data.records)) return result.data.records;\n if (Array.isArray(result.data.list)) return result.data.list;\n }\n\n if (Array.isArray(result.records)) return result.records;\n if (Array.isArray(result.list)) return result.list;\n\n return [];\n}\n\nfunction normalizeSearchParams<Params extends RKRemoteSelectParams>(\n params: Params,\n searchKey = 'keyWords',\n) {\n if (searchKey === 'keyWords') return params;\n\n const { keyWords, ...restParams } = params;\n\n return {\n ...restParams,\n ...(keyWords === undefined ? {} : { [searchKey]: keyWords }),\n } as Params;\n}\n\nfunction normalizeOptions<OptionItem extends RKRemoteSelectRecord>(\n items: OptionItem[],\n config: {\n labelField?: string;\n valueField?: string;\n childrenField?: string;\n disabled?: RKRemoteSelectDisabled<OptionItem>;\n },\n): RKRemoteSelectOption[] {\n const labelField = config.labelField || 'label';\n const valueField = config.valueField || 'value';\n const childrenField = config.childrenField || 'children';\n\n return items\n .map((item): RKRemoteSelectOption | undefined => {\n const label = normalizeOptionLabel(item[labelField]);\n const value = item[valueField];\n const children = item[childrenField];\n\n if (label === undefined || !isOptionValue(value)) return undefined;\n\n const optionDisabled =\n typeof config.disabled === 'function'\n ? config.disabled(item)\n : typeof item.disabled === 'boolean'\n ? item.disabled\n : undefined;\n\n return {\n ...item,\n label,\n value,\n disabled: optionDisabled,\n children: Array.isArray(children)\n ? normalizeOptions(\n children.filter(isRecord) as OptionItem[],\n config,\n )\n : undefined,\n };\n })\n .filter((item): item is RKRemoteSelectOption => item !== undefined);\n}\n\nfunction shouldNormalizeOptions<OptionItem extends RKRemoteSelectRecord>(\n options: RKRemoteSelectProps<unknown, OptionItem>['options'],\n config: {\n labelField?: string;\n valueField?: string;\n childrenField?: string;\n disabled?: RKRemoteSelectDisabled<OptionItem>;\n },\n) {\n return (\n Array.isArray(options) &&\n (options as unknown[]).every(isRecord) &&\n (!!config.labelField ||\n !!config.valueField ||\n !!config.childrenField ||\n typeof config.disabled === 'function')\n );\n}\n\nexport default function RKRemoteSelect<\n ValueType = unknown,\n OptionItem extends RKRemoteSelectRecord = RKRemoteSelectRecord,\n Params extends RKRemoteSelectParams = RKRemoteSelectParams,\n>({\n optionSource,\n options,\n requestApi,\n request,\n params,\n fieldProps,\n showSearch = true,\n labelField,\n valueField,\n childrenField,\n disabled,\n searchKey = 'keyWords',\n ...restProps\n}: RKRemoteSelectProps<ValueType, OptionItem, Params>) {\n const selectDisabled = typeof disabled === 'boolean' ? disabled : undefined;\n const optionConfig = useMemo(\n () => ({\n labelField,\n valueField,\n childrenField,\n disabled,\n }),\n [childrenField, disabled, labelField, valueField],\n );\n const selectOptions = useMemo(() => {\n if (!shouldNormalizeOptions(options, optionConfig)) {\n return options as ProFormSelectProps<ValueType>['options'];\n }\n\n return normalizeOptions(\n options as OptionItem[],\n optionConfig,\n ) as ProFormSelectProps<ValueType>['options'];\n }, [optionConfig, options]);\n\n const selectRequest = useMemo(() => {\n if (isDynamicOptionSource(optionSource)) {\n return async () => resolveRKRemoteSelectOptions(optionSource);\n }\n\n if (requestApi) {\n return async (requestParams: Params) => {\n const result = await requestApi(normalizeSearchParams(requestParams, searchKey));\n return normalizeOptions(resolveRequestApiItems(result), optionConfig);\n };\n }\n\n return request;\n }, [optionConfig, optionSource, request, requestApi, searchKey]);\n const requestParams = useMemo(() => resolveParams(optionSource, params), [optionSource, params]);\n\n return (\n <ProFormSelect\n {...restProps}\n disabled={selectDisabled}\n showSearch={showSearch}\n options={selectOptions}\n request={selectRequest}\n params={requestParams}\n fieldProps={\n {\n optionFilterProp: 'label',\n filterOption: true,\n ...fieldProps,\n } as SelectProps<ValueType>\n }\n />\n );\n}\n\nexport {\n enumOptionSourceOptions,\n registerRKRemoteSelectEnumOptionSource,\n registerRKRemoteSelectRemoteOptionSource,\n remoteOptionSourceOptions,\n resolveRKRemoteSelectOptions,\n} from './optionSourceRegistry';\nexport type { RKRemoteSelectOptionSourceDescriptor } from './optionSourceRegistry';\nexport type {\n RKRemoteSelectOption,\n RKRemoteSelectOptionSource,\n RKRemoteSelectOptionSourceType,\n RKRemoteSelectOptionValue,\n} from './type';\n","import type {\n RKRemoteSelectOption,\n RKRemoteSelectOptionSource,\n RKRemoteSelectOptionSourceType,\n RKRemoteSelectOptionValue,\n} from './type';\n\ninterface OptionFieldDefaults {\n labelField: string;\n valueField: string;\n childrenField?: string;\n}\n\nexport interface RKRemoteSelectOptionSourceDescriptor {\n label: string;\n value: string;\n description: string;\n sourceType: RKRemoteSelectOptionSourceType;\n}\n\ninterface RemoteOptionSourceResult {\n items: Array<Record<string, unknown>>;\n defaults?: OptionFieldDefaults;\n}\n\ntype RemoteOptionSourceLoader = () => Promise<RemoteOptionSourceResult>;\n\nconst enumOptionSourceRegistry: Record<string, RKRemoteSelectOption[]> = {};\nconst remoteOptionSourceRegistry: Record<string, RemoteOptionSourceLoader> = {};\n\nexport const enumOptionSourceOptions: RKRemoteSelectOptionSourceDescriptor[] = [];\nexport const remoteOptionSourceOptions: RKRemoteSelectOptionSourceDescriptor[] = [];\n\nfunction upsertOptionSourceDescriptor(\n list: RKRemoteSelectOptionSourceDescriptor[],\n descriptor: RKRemoteSelectOptionSourceDescriptor,\n) {\n const index = list.findIndex((item) => item.value === descriptor.value);\n\n if (index === -1) {\n list.push(descriptor);\n return;\n }\n\n list[index] = descriptor;\n}\n\nexport function registerRKRemoteSelectEnumOptionSource(\n key: string,\n options: RKRemoteSelectOption[],\n descriptor?: Omit<RKRemoteSelectOptionSourceDescriptor, 'value' | 'sourceType'>,\n) {\n enumOptionSourceRegistry[key] = options;\n upsertOptionSourceDescriptor(enumOptionSourceOptions, {\n label: descriptor?.label || key,\n value: key,\n description: descriptor?.description || '',\n sourceType: 'enum',\n });\n}\n\nexport function registerRKRemoteSelectRemoteOptionSource(\n key: string,\n loader: RemoteOptionSourceLoader,\n descriptor?: Omit<RKRemoteSelectOptionSourceDescriptor, 'value' | 'sourceType'>,\n) {\n remoteOptionSourceRegistry[key] = loader;\n upsertOptionSourceDescriptor(remoteOptionSourceOptions, {\n label: descriptor?.label || key,\n value: key,\n description: descriptor?.description || '',\n sourceType: 'remote',\n });\n}\n\nfunction normalizeOptionLabel(value: unknown): RKRemoteSelectOption['label'] | undefined {\n if (typeof value === 'string' || typeof value === 'number') {\n return value;\n }\n\n if (typeof value === 'boolean') {\n return String(value);\n }\n\n return undefined;\n}\n\nfunction isOptionValue(value: unknown): value is RKRemoteSelectOptionValue {\n return typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean';\n}\n\nfunction normalizeOptionItems(\n items: Array<Record<string, unknown>>,\n defaults?: OptionFieldDefaults,\n source?: RKRemoteSelectOptionSource,\n): RKRemoteSelectOption[] {\n const labelField = source?.labelField || defaults?.labelField || 'label';\n const valueField = source?.valueField || defaults?.valueField || 'value';\n const childrenField = source?.childrenField || defaults?.childrenField || 'children';\n\n return items\n .map((item): RKRemoteSelectOption | undefined => {\n const label = normalizeOptionLabel(item[labelField]);\n const value = item[valueField];\n const children = item[childrenField];\n\n if (label === undefined || !isOptionValue(value)) {\n return undefined;\n }\n\n return {\n label,\n value,\n disabled: typeof item.disabled === 'boolean' ? item.disabled : undefined,\n children: Array.isArray(children)\n ? normalizeOptionItems(\n children.filter(\n (child): child is Record<string, unknown> =>\n typeof child === 'object' && child !== null,\n ),\n defaults,\n source,\n )\n : undefined,\n };\n })\n .filter((item): item is RKRemoteSelectOption => item !== undefined);\n}\n\nexport async function resolveRKRemoteSelectOptions(\n source?: RKRemoteSelectOptionSource,\n): Promise<RKRemoteSelectOption[]> {\n if (!source?.type || !source.key) {\n return [];\n }\n\n if (source.type === 'enum') {\n return enumOptionSourceRegistry[source.key] || [];\n }\n\n if (source.type === 'remote') {\n const loader = remoteOptionSourceRegistry[source.key];\n if (!loader) return [];\n\n const result = await loader();\n\n return normalizeOptionItems(result.items, result.defaults, source);\n }\n\n return [];\n}\n","import { ProForm, ProFormDependency } from '@ant-design/pro-components';\nimport type { ProFormInstance } from '@ant-design/pro-components';\nimport type { ColProps } from 'antd';\nimport type { Rule } from 'antd/es/form';\nimport type { NamePath } from 'antd/es/form/interface';\nimport { useEffect, useRef } from 'react';\nimport { RKSchemaFieldRegistry } from './fieldRegistry';\nimport type {\n RKSchemaDependencyResetValue,\n RKSchemaDynamicValue,\n RKSchemaFieldProps,\n RKSchemaFormColumn,\n RKSchemaFormProps,\n RKSchemaFormValues,\n} from './type';\n\nconst requiredRule: Rule = {\n required: true,\n message: '此项为必填项',\n};\n\ninterface RKSchemaDependencyFieldProps {\n column: RKSchemaFormColumn;\n values: RKSchemaFormValues;\n form: ProFormInstance;\n renderField: (values: RKSchemaFormValues) => React.ReactNode;\n}\n\nfunction getColProps(columns?: number): ColProps {\n switch (columns) {\n case 1:\n return { span: 24 };\n case 2:\n return { lg: 12, md: 12, sm: 24 };\n case 3:\n return { lg: 8, md: 12, sm: 24 };\n case 6:\n return { lg: 4, md: 6, sm: 12 };\n case 4:\n default:\n return { lg: 6, md: 8, sm: 12 };\n }\n}\n\nfunction resolveDynamicValue<T>(\n value: RKSchemaDynamicValue<T> | undefined,\n values: RKSchemaFormValues,\n) {\n if (typeof value === 'function') {\n return (value as (values: RKSchemaFormValues) => T)(values);\n }\n\n return value;\n}\n\nfunction getColumnKey(column: RKSchemaFormColumn, index: number) {\n return column.key || `${String(column.dataIndex)}-${index}`;\n}\n\nfunction getDependencySnapshot(values: RKSchemaFormValues) {\n return JSON.stringify(values);\n}\n\nfunction resolveDependencyResetValue(\n resetValue: RKSchemaDependencyResetValue | undefined,\n values: RKSchemaFormValues,\n previousValues?: RKSchemaFormValues,\n) {\n if (typeof resetValue === 'function') {\n return resetValue(values, previousValues);\n }\n\n return resetValue;\n}\n\nfunction setFieldValue(form: ProFormInstance, name: NamePath, value: unknown) {\n const setField = form.setFieldValue;\n\n if (setField) {\n setField(name, value);\n return;\n }\n\n form.setFields([{ name, value }]);\n}\n\nfunction RKSchemaDependencyField({\n column,\n values,\n form,\n renderField,\n}: RKSchemaDependencyFieldProps) {\n const isFirstRenderRef = useRef(true);\n const previousValuesRef = useRef<RKSchemaFormValues>();\n const previousSnapshotRef = useRef<string>();\n const dependencySnapshot = getDependencySnapshot(values);\n const shouldResetOnDependencyChange = column.resetOnDependencyChange !== false;\n\n useEffect(() => {\n if (previousSnapshotRef.current === dependencySnapshot) {\n return;\n }\n\n if (!shouldResetOnDependencyChange) {\n previousValuesRef.current = values;\n previousSnapshotRef.current = dependencySnapshot;\n isFirstRenderRef.current = false;\n return;\n }\n\n if (isFirstRenderRef.current) {\n previousValuesRef.current = values;\n previousSnapshotRef.current = dependencySnapshot;\n isFirstRenderRef.current = false;\n return;\n }\n\n setFieldValue(\n form,\n column.dataIndex,\n resolveDependencyResetValue(column.dependencyResetValue, values, previousValuesRef.current),\n );\n previousValuesRef.current = values;\n previousSnapshotRef.current = dependencySnapshot;\n }, [column, dependencySnapshot, form, shouldResetOnDependencyChange, values]);\n\n return <>{renderField(values)}</>;\n}\n\nexport default function RKSchemaForm<T = Record<string, unknown>>(props: RKSchemaFormProps<T>) {\n const { columns, columnCount, fieldColProps, rowProps, ...formProps } = props;\n const defaultColProps = fieldColProps || getColProps(columnCount);\n\n const renderColumn = (\n column: RKSchemaFormColumn,\n index: number,\n values: RKSchemaFormValues = {},\n ) => {\n const {\n title,\n dataIndex,\n valueType = 'text',\n required,\n disabled,\n readonly,\n initialValue,\n rules,\n tooltip,\n extra,\n colProps,\n fieldProps,\n } = column;\n const Component = RKSchemaFieldRegistry[valueType];\n if (!Component) return null;\n\n const nextHidden = resolveDynamicValue(column.hidden, values);\n if (nextHidden === true) return null;\n\n const nextRequired = resolveDynamicValue(required, values);\n const nextDisabled = resolveDynamicValue(disabled, values);\n const nextReadonly = resolveDynamicValue(readonly, values);\n const nextFieldProps =\n resolveDynamicValue<RKSchemaFieldProps>(fieldProps, values) || undefined;\n\n return (\n <Component\n key={getColumnKey(column, index)}\n label={title}\n name={dataIndex}\n disabled={nextDisabled}\n readonly={nextReadonly}\n initialValue={initialValue}\n rules={[...(nextRequired === true ? [requiredRule] : []), ...(rules || [])]}\n tooltip={tooltip}\n extra={extra}\n colProps={colProps || defaultColProps}\n fieldProps={nextFieldProps}\n />\n );\n };\n\n return (\n <ProForm grid rowProps={{ gutter: 24, ...rowProps }} {...formProps}>\n {columns.map((column, index) => {\n if (!column.dependencies?.length) {\n return renderColumn(column, index);\n }\n\n return (\n <ProFormDependency key={getColumnKey(column, index)} name={column.dependencies}>\n {(values, form) => (\n <RKSchemaDependencyField\n column={column}\n values={values}\n form={form}\n renderField={(nextValues) => renderColumn(column, index, nextValues)}\n />\n )}\n </ProFormDependency>\n );\n })}\n </ProForm>\n );\n}\n\nexport * from './fieldRegistry';\nexport * from './optionSourceRegistry';\nexport * from './type';\n","import {\n ProFormCascader,\n ProFormCheckbox,\n ProFormColorPicker,\n ProFormDateMonthRangePicker,\n ProFormDatePicker,\n ProFormDateQuarterRangePicker,\n ProFormDateRangePicker,\n ProFormDateTimePicker,\n ProFormDateTimeRangePicker,\n ProFormDateWeekRangePicker,\n ProFormDateYearRangePicker,\n ProFormDigit,\n ProFormDigitRange,\n ProFormMoney,\n ProFormRadio,\n ProFormRate,\n ProFormSegmented,\n ProFormSelect,\n ProFormSlider,\n ProFormSwitch,\n ProFormText,\n ProFormTextArea,\n ProFormTimePicker,\n ProFormTreeSelect,\n ProFormUploadButton,\n ProFormUploadDragger,\n type ProFormItemProps,\n} from '@ant-design/pro-components';\nimport type { ComponentType } from 'react';\nimport { resolveRKSchemaOptions } from './optionSourceRegistry';\nimport type { RKSchemaFieldProps, RKSchemaOption, RKSchemaOptionSource } from './type';\n\nexport type RKSchemaFieldRenderer = ComponentType<ProFormItemProps & Record<string, unknown>>;\n\nfunction isFieldComponentProps(value: unknown): value is RKSchemaFieldProps {\n return typeof value === 'object' && value !== null;\n}\n\nfunction isDynamicOptionSource(source?: RKSchemaOptionSource) {\n return ['enum', 'remote'].includes(source?.type || '');\n}\n\nfunction getStaticOptions(fieldProps: RKSchemaFieldProps, optionFieldName: 'options' | 'treeData') {\n if (optionFieldName === 'treeData') {\n return fieldProps.treeData || fieldProps.options;\n }\n\n return fieldProps.options;\n}\n\nfunction asField(component: unknown): RKSchemaFieldRenderer {\n return component as RKSchemaFieldRenderer;\n}\n\nfunction createOptionField(\n Component: RKSchemaFieldRenderer,\n options: { optionFieldName?: 'options' | 'treeData' } = {},\n): RKSchemaFieldRenderer {\n const { optionFieldName = 'options' } = options;\n\n return function RKSchemaOptionsField(props: ProFormItemProps & Record<string, unknown>) {\n const fieldProps = isFieldComponentProps(props.fieldProps) ? props.fieldProps : {};\n const { options: staticOptions, treeData, optionSource, ...restFieldProps } = fieldProps;\n const shouldLoadDynamic = isDynamicOptionSource(optionSource);\n const resolvedStaticOptions =\n getStaticOptions({ ...fieldProps, options: staticOptions, treeData }, optionFieldName) || [];\n const request = shouldLoadDynamic\n ? async (): Promise<RKSchemaOption[]> => resolveRKSchemaOptions(optionSource)\n : undefined;\n\n return (\n <Component\n {...props}\n request={request || props.request}\n params={shouldLoadDynamic ? optionSource : props.params}\n fieldProps={{\n ...restFieldProps,\n [optionFieldName]: shouldLoadDynamic ? undefined : resolvedStaticOptions,\n }}\n />\n );\n };\n}\n\nexport const RKSchemaFieldRegistry: Record<string, RKSchemaFieldRenderer> = {\n text: asField(ProFormText),\n password: asField(ProFormText.Password),\n textarea: asField(ProFormTextArea),\n digit: asField(ProFormDigit),\n digitRange: asField(ProFormDigitRange),\n select: createOptionField(asField(ProFormSelect)),\n treeSelect: createOptionField(asField(ProFormTreeSelect), { optionFieldName: 'treeData' }),\n cascader: createOptionField(asField(ProFormCascader)),\n radio: createOptionField(asField(ProFormRadio.Group)),\n checkbox: asField(ProFormCheckbox),\n checkboxGroup: createOptionField(asField(ProFormCheckbox.Group)),\n switch: asField(ProFormSwitch),\n slider: asField(ProFormSlider),\n rate: asField(ProFormRate),\n segmented: createOptionField(asField(ProFormSegmented)),\n color: asField(ProFormColorPicker),\n date: asField(ProFormDatePicker),\n dateRange: asField(ProFormDateRangePicker),\n dateTime: asField(ProFormDateTimePicker),\n dateTimeRange: asField(ProFormDateTimeRangePicker),\n dateWeekRange: asField(ProFormDateWeekRangePicker),\n dateMonthRange: asField(ProFormDateMonthRangePicker),\n dateQuarterRange: asField(ProFormDateQuarterRangePicker),\n dateYearRange: asField(ProFormDateYearRangePicker),\n time: asField(ProFormTimePicker),\n timeRange: asField(ProFormTimePicker.RangePicker),\n money: asField(ProFormMoney),\n uploadButton: asField(ProFormUploadButton),\n uploadDragger: asField(ProFormUploadDragger),\n};\n\nexport function registerRKSchemaField(valueType: string, renderer: RKSchemaFieldRenderer) {\n RKSchemaFieldRegistry[valueType] = renderer;\n}\n","import { ProTable } from '@ant-design/pro-components';\nimport type { ProTableProps } from '@ant-design/pro-components';\nimport type { SortOrder } from 'antd/es/table/interface';\n\nexport type RKTableRequestParams = {\n current?: number;\n pageSize?: number;\n [key: string]: any;\n};\n\nexport type RKTableResponse<DataSource extends Record<string, any>> = {\n code?: number;\n success?: boolean;\n data?:\n | DataSource[]\n | {\n records?: DataSource[];\n list?: DataSource[];\n total?: number;\n [key: string]: unknown;\n };\n records?: DataSource[];\n list?: DataSource[];\n total?: number;\n [key: string]: unknown;\n};\n\nexport type RKTableRequestApi<\n DataSource extends Record<string, any>,\n RequestParams,\n> = (data: RequestParams) => Promise<RKTableResponse<DataSource>>;\n\nexport type RKTableRequestAdapter<DataSource extends Record<string, any>> = (\n response: RKTableResponse<DataSource>,\n) => {\n data: DataSource[];\n success: boolean;\n total?: number;\n};\n\nexport type RKTableProps<\n DataSource extends Record<string, any>,\n Params extends Record<string, any> = Record<string, any>,\n ValueType = 'text',\n RequestParams = RKTableRequestParams,\n> = ProTableProps<DataSource, Params, ValueType> & {\n requestApi?: RKTableRequestApi<DataSource, RequestParams>;\n requestAdapter?: RKTableRequestAdapter<DataSource>;\n requestParamsFormatter?: (\n params: Params & RKTableRequestParams,\n sort: Record<string, SortOrder>,\n filter: Record<string, (string | number)[] | null>,\n ) => RequestParams;\n};\n\nfunction resolveRecords<DataSource extends Record<string, any>>(\n response: RKTableResponse<DataSource>,\n) {\n if (Array.isArray(response.data)) return response.data;\n\n if (response.data && typeof response.data === 'object') {\n if (Array.isArray(response.data.records)) return response.data.records;\n if (Array.isArray(response.data.list)) return response.data.list;\n }\n\n if (Array.isArray(response.records)) return response.records;\n if (Array.isArray(response.list)) return response.list;\n\n return [];\n}\n\nfunction resolveTotal<DataSource extends Record<string, any>>(\n response: RKTableResponse<DataSource>,\n) {\n if (typeof response.total === 'number') return response.total;\n\n if (response.data && !Array.isArray(response.data) && typeof response.data.total === 'number') {\n return response.data.total;\n }\n\n return resolveRecords(response).length;\n}\n\nfunction defaultRequestAdapter<DataSource extends Record<string, any>>(\n response: RKTableResponse<DataSource>,\n) {\n const success =\n typeof response.success === 'boolean'\n ? response.success\n : response.code === undefined || response.code === 200;\n\n return {\n data: resolveRecords(response),\n success,\n total: resolveTotal(response),\n };\n}\n\nconst RKTable = <\n DataSource extends Record<string, any>,\n Params extends Record<string, any> = Record<string, any>,\n ValueType = 'text',\n RequestParams = RKTableRequestParams,\n>({\n request,\n requestApi,\n requestAdapter = defaultRequestAdapter,\n requestParamsFormatter,\n search,\n options,\n pagination,\n scroll,\n form,\n rowKey,\n tableAlertRender,\n ...restProps\n}: RKTableProps<DataSource, Params, ValueType, RequestParams>) => {\n const tableSearch =\n search === false\n ? false\n : {\n filterType: 'query' as const,\n defaultCollapsed: false,\n ...(typeof search === 'object' ? search : {}),\n };\n const tableOptions =\n options === false\n ? false\n : {\n reload: true,\n density: false,\n setting: false,\n ...(typeof options === 'object' ? options : {}),\n };\n const tablePagination =\n pagination === false\n ? false\n : {\n defaultPageSize: 20,\n showSizeChanger: true,\n disabled: false,\n ...(typeof pagination === 'object' ? pagination : {}),\n };\n const tableForm = {\n syncToUrl: true,\n syncToInitialValues: false,\n ...(typeof form === 'object' ? form : {}),\n };\n const tableScroll = {\n x: 'max-content',\n ...(typeof scroll === 'object' ? scroll : {}),\n };\n const tableRequest = requestApi\n ? async (\n params: Params & RKTableRequestParams,\n sort: Record<string, SortOrder>,\n filter: Record<string, (string | number)[] | null>,\n ) => {\n const nextParams = requestParamsFormatter\n ? requestParamsFormatter(params, sort, filter)\n : (params as unknown as RequestParams);\n const response = await requestApi(nextParams);\n\n return requestAdapter(response);\n }\n : request;\n\n return (\n <ProTable<DataSource, Params, ValueType>\n rowKey={rowKey || 'id'}\n tableAlertRender={tableAlertRender ?? false}\n options={tableOptions}\n pagination={tablePagination}\n scroll={tableScroll}\n form={tableForm}\n {...restProps}\n search={tableSearch}\n request={tableRequest}\n />\n );\n};\n\nexport default RKTable;\n"],"mappings":"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","names":["useMemo","jsx","isOptionValue","normalizeOptionLabel","useMemo","requestParams","useRef","ProFormSelect","jsx","isDynamicOptionSource","ProFormSelect","jsx","useRef","jsx"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rklink/components",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "RK React components based on Ant Design and ProComponents.",
5
5
  "type": "module",
6
6
  "main": "dist/index.cjs",