@robot-admin/naive-ui-components 0.14.2 → 0.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +30 -0
- package/README.md +130 -721
- package/README_EN.md +137 -658
- package/dist/C_ActionBar.css +57 -58
- package/dist/C_ActionBar2.cjs +1 -1
- package/dist/C_ActionBar2.js +1 -1
- package/dist/C_AntV.css +215 -222
- package/dist/C_AntV2.cjs +2 -2
- package/dist/C_AntV2.js +2 -2
- package/dist/C_AudioPlayer.css +11 -12
- package/dist/C_AvatarGroup.css +5 -6
- package/dist/C_Barcode.css +1 -1
- package/dist/C_Breadcrumb.css +15 -17
- package/dist/C_Breadcrumb2.cjs +1 -1
- package/dist/C_Breadcrumb2.js +1 -1
- package/dist/C_Captcha.css +45 -47
- package/dist/C_Captcha2.cjs +1 -1
- package/dist/C_Captcha2.js +1 -1
- package/dist/C_Cascade.css +2 -2
- package/dist/C_Chat.css +8 -8
- package/dist/C_City.css +6 -7
- package/dist/C_Code.css +14 -15
- package/dist/C_CollapsePanel.css +12 -13
- package/dist/C_ContextMenu.css +31 -31
- package/dist/C_Cron.css +272 -275
- package/dist/C_Date.css +1 -1
- package/dist/C_Draggable.css +10 -11
- package/dist/C_Editor.css +2 -2
- package/dist/C_FilePreview.css +193 -193
- package/dist/C_Form.base.css +607 -601
- package/dist/C_Form.cjs +1 -1
- package/dist/C_Form.css +609 -603
- package/dist/C_Form.d.cts +2 -2
- package/dist/C_Form.d.ts +2 -2
- package/dist/C_Form.js +1 -1
- package/dist/C_FormModal.cjs +1 -1
- package/dist/C_FormModal.css +14 -20
- package/dist/C_FormModal.js +1 -1
- package/dist/C_FormModal2.cjs +1 -1
- package/dist/C_FormModal2.js +1 -1
- package/dist/C_FormSearch.css +53 -55
- package/dist/C_FormSearch2.cjs +1 -1
- package/dist/C_FormSearch2.js +1 -1
- package/dist/C_FormulaEditor.css +314 -315
- package/dist/C_FullCalendar.css +14 -16
- package/dist/C_FullCalendar2.cjs +1 -1
- package/dist/C_FullCalendar2.js +1 -1
- package/dist/C_GlobalSearch.css +2 -2
- package/dist/C_Guide.css +14 -15
- package/dist/C_Icon.css +7 -8
- package/dist/C_ImageCropper.css +69 -69
- package/dist/C_Language.css +8 -8
- package/dist/C_Loading.css +20 -22
- package/dist/C_Loading2.cjs +1 -1
- package/dist/C_Loading2.js +1 -1
- package/dist/C_Login.css +130 -135
- package/dist/C_Login2.cjs +1 -1
- package/dist/C_Login2.js +1 -1
- package/dist/C_Map.css +22 -23
- package/dist/C_Markdown.css +2 -2
- package/dist/C_Menu.css +2 -5
- package/dist/C_Menu2.cjs +1 -1
- package/dist/C_Menu2.js +1 -1
- package/dist/C_NotificationCenter.css +300 -301
- package/dist/C_OrgChart.css +3 -3
- package/dist/C_PageLoading.css +35 -39
- package/dist/C_QRCode.css +5 -6
- package/dist/C_Signature.css +5 -6
- package/dist/C_Skeleton.css +6 -7
- package/dist/C_SplitPane.css +2 -2
- package/dist/C_Steps.css +2 -2
- package/dist/C_Table.base.css +1097 -870
- package/dist/C_Table.cjs +1 -1
- package/dist/C_Table.css +1101 -874
- package/dist/C_Table.d.cts +1 -1
- package/dist/C_Table.d.ts +1 -1
- package/dist/C_Table.js +1 -1
- package/dist/C_Tabs.css +2 -2
- package/dist/C_TagsView.css +72 -76
- package/dist/C_TagsView2.cjs +1 -1
- package/dist/C_TagsView2.js +1 -1
- package/dist/C_Theme.css +7 -8
- package/dist/C_Time.css +1 -1
- package/dist/C_Timeline.css +8 -8
- package/dist/C_Transfer.css +10 -11
- package/dist/C_Tree.css +16 -17
- package/dist/C_Upload.css +147 -148
- package/dist/C_VideoPlayer.css +280 -281
- package/dist/C_VtableGantt.css +2 -2
- package/dist/C_WaterFall.css +17 -18
- package/dist/C_WorkFlow.css +453 -457
- package/dist/C_WorkFlow2.cjs +1 -1
- package/dist/C_WorkFlow2.js +1 -1
- package/dist/Card.cjs +1 -0
- package/dist/Card.js +1 -0
- package/dist/Custom.cjs +1 -0
- package/dist/Custom.js +1 -0
- package/dist/Dynamic.cjs +1 -0
- package/dist/Dynamic.js +1 -0
- package/dist/Steps.cjs +1 -0
- package/dist/Steps.js +1 -0
- package/dist/Tabs.cjs +1 -0
- package/dist/Tabs.js +1 -0
- package/dist/cascader.cjs +1 -0
- package/dist/cascader.js +1 -0
- package/dist/color-picker.cjs +1 -0
- package/dist/color-picker.js +1 -0
- package/dist/constants.d.cts +1 -1
- package/dist/constants.d.ts +1 -1
- package/dist/constants3.d.cts +5 -5
- package/dist/constants3.d.ts +5 -5
- package/dist/constants4.d.cts +4 -4
- package/dist/constants4.d.ts +4 -4
- package/dist/constants5.d.cts +2 -2
- package/dist/constants5.d.ts +2 -2
- package/dist/context.cjs +1 -0
- package/dist/context.js +1 -0
- package/dist/contracts.d.cts +24 -0
- package/dist/contracts.d.ts +24 -0
- package/dist/createPageLoading.cjs +1 -1
- package/dist/createPageLoading.js +1 -1
- package/dist/data.cjs +1 -1
- package/dist/data.d.cts +9 -9
- package/dist/data.d.ts +9 -9
- package/dist/data.js +1 -1
- package/dist/date-picker.cjs +1 -0
- package/dist/date-picker.js +1 -0
- package/dist/feedback.cjs +1 -0
- package/dist/feedback.js +1 -0
- package/dist/helpers.cjs +1 -1
- package/dist/helpers.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +6 -4
- package/dist/index.d.ts +6 -4
- package/dist/index.js +1 -1
- package/dist/index.vue.d.cts +4 -4
- package/dist/index.vue.d.ts +4 -4
- package/dist/index10.vue.d.cts +3 -3
- package/dist/index11.vue.d.ts +2 -2
- package/dist/index12.vue.d.cts +2 -2
- package/dist/index12.vue.d.ts +1 -1
- package/dist/index13.vue.d.cts +1 -1
- package/dist/index13.vue.d.ts +3 -3
- package/dist/index14.vue.d.cts +3 -3
- package/dist/index14.vue.d.ts +7 -7
- package/dist/index15.vue.d.cts +7 -7
- package/dist/index16.vue.d.ts +1 -1
- package/dist/index17.vue.d.cts +1 -1
- package/dist/index17.vue.d.ts +1 -1
- package/dist/index18.vue.d.cts +1 -1
- package/dist/index18.vue.d.ts +1 -1
- package/dist/index19.vue.d.cts +1 -1
- package/dist/index19.vue.d.ts +2 -9
- package/dist/index2.vue.d.cts +2 -2
- package/dist/index2.vue.d.ts +2 -2
- package/dist/index20.vue.d.cts +1 -1
- package/dist/index20.vue.d.ts +1 -1
- package/dist/index21.vue.d.cts +1 -1
- package/dist/index21.vue.d.ts +1 -1
- package/dist/index22.vue.d.cts +2 -2
- package/dist/index22.vue.d.ts +2 -2
- package/dist/index23.vue.d.cts +1 -1
- package/dist/index23.vue.d.ts +1 -1
- package/dist/index25.vue.d.cts +4 -4
- package/dist/index25.vue.d.ts +4 -4
- package/dist/index26.vue.d.cts +1 -1
- package/dist/index26.vue.d.ts +1 -1
- package/dist/index27.vue.d.cts +4 -4
- package/dist/index27.vue.d.ts +4 -4
- package/dist/index28.vue.d.cts +1 -1
- package/dist/index28.vue.d.ts +1 -1
- package/dist/index3.vue.d.cts +4 -4
- package/dist/index3.vue.d.ts +4 -4
- package/dist/index4.vue.d.cts +2 -9
- package/dist/index6.vue.d.ts +3 -3
- package/dist/index7.vue.d.cts +3 -3
- package/dist/index8.vue.d.ts +2 -2
- package/dist/index9.vue.d.cts +2 -2
- package/dist/index9.vue.d.ts +3 -3
- package/dist/mapUtils.d.cts +2 -2
- package/dist/mapUtils.d.ts +2 -2
- package/dist/presets.d.cts +8 -2
- package/dist/presets.d.ts +8 -2
- package/dist/rate.cjs +1 -0
- package/dist/rate.js +1 -0
- package/dist/slider.cjs +1 -0
- package/dist/slider.js +1 -0
- package/dist/style.css +10898 -10915
- package/dist/time-picker.cjs +1 -0
- package/dist/time-picker.js +1 -0
- package/dist/upload.cjs +1 -0
- package/dist/upload.js +1 -0
- package/dist/useActionTask.cjs +1 -0
- package/dist/useActionTask.js +1 -0
- package/dist/useCalendarEvents.d.cts +1 -1
- package/dist/useCalendarEvents.d.ts +1 -1
- package/dist/useCollapsePanel.d.cts +4 -4
- package/dist/useCollapsePanel.d.ts +4 -4
- package/dist/useComponentLocale.cjs +1 -0
- package/dist/useComponentLocale.js +1 -0
- package/dist/useCropperCore.d.cts +6 -6
- package/dist/useCropperCore.d.ts +6 -6
- package/dist/useDraggableLayout.d.cts +1 -1
- package/dist/useDraggableLayout.d.ts +1 -1
- package/dist/useDynamicFormState.cjs +1 -0
- package/dist/useDynamicFormState.d.cts +64 -40
- package/dist/useDynamicFormState.d.ts +64 -40
- package/dist/useDynamicFormState.js +1 -0
- package/dist/useEdgeInteraction.d.cts +3 -3
- package/dist/useEdgeInteraction.d.ts +3 -3
- package/dist/useGlobalSearch.d.cts +1 -1
- package/dist/useGlobalSearch.d.ts +1 -1
- package/dist/useQRCode.d.cts +2 -2
- package/dist/useQRCode.d.ts +2 -2
- package/dist/useSearchState.d.cts +15 -725
- package/dist/useSearchState.d.ts +15 -834
- package/dist/useSignatureHistory.d.cts +4 -4
- package/dist/useSignatureHistory.d.ts +4 -4
- package/dist/useSplitResize.d.cts +3 -3
- package/dist/useSplitResize.d.ts +3 -3
- package/dist/useTableQuery.cjs +3 -3
- package/dist/useTableQuery.d.cts +73 -34
- package/dist/useTableQuery.d.ts +73 -34
- package/dist/useTableQuery.js +3 -3
- package/dist/useTimeSelection.d.cts +1 -1
- package/dist/useTimeSelection.d.ts +1 -1
- package/dist/useTreeOperations.d.cts +5 -5
- package/dist/useTreeOperations.d.ts +5 -5
- package/dist/useWorkflowValidation.d.cts +3 -3
- package/dist/useWorkflowValidation.d.ts +3 -3
- package/dist/verification.d.cts +4 -4
- package/dist/verification.d.ts +4 -4
- package/docs/architecture.en.md +83 -0
- package/docs/architecture.md +83 -0
- package/docs/assets/README.md +47 -0
- package/docs/assets/naive-ui-components-banner.png +0 -0
- package/docs/assets/naive-ui-components-banner.svg +69 -0
- package/docs/assets/naive-ui-components-logo.png +0 -0
- package/docs/assets/naive-ui-components-logo.svg +22 -0
- package/docs/components.en.md +118 -0
- package/docs/components.md +118 -0
- package/docs/engineering.en.md +132 -0
- package/docs/engineering.md +133 -0
- package/docs/guides/usage.en.md +638 -0
- package/docs/guides/usage.md +699 -0
- package/docs/performance-0.15.0.md +20 -0
- package/docs/security-scan-2026-10-06.md +11 -0
- package/docs/security-scan-2026-10-18.md +16 -0
- package/package.json +35 -12
- package/dist/C_Form2.cjs +0 -1
- package/dist/C_Form2.js +0 -1
- package/dist/config.cjs +0 -1
- package/dist/config.d.cts +0 -33
- package/dist/config.d.ts +0 -33
- package/dist/config.js +0 -1
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { n as ComponentLocale, t as ComponentFeedback } from "./contracts.js";
|
|
2
2
|
import * as vue from "vue";
|
|
3
|
-
import { CSSProperties, Component, ComputedRef, DeepReadonly, InjectionKey, MaybeRefOrGetter, Ref, Slots, VNode } from "vue";
|
|
3
|
+
import { CSSProperties, Component, ComputedRef, DeepReadonly, InjectionKey, MaybeRefOrGetter, Ref, ShallowRef, Slots, VNode } from "vue";
|
|
4
4
|
import { FormInst, FormItemInst, FormItemRule, FormRules } from "naive-ui";
|
|
5
5
|
import { NAIVE_COMBOS, NaiveRule, PRESET_RULES, RuleSpec, RuleSpec as RuleSpec$1, SPEC_RULES } from "@robot-admin/form-validate";
|
|
6
|
-
import * as naive_ui_es_form_src_interface0 from "naive-ui/es/form/src/interface";
|
|
7
|
-
import * as _vue_shared0 from "@vue/shared";
|
|
8
6
|
|
|
9
7
|
//#region src/components/C_Form/utils/formValidation.d.ts
|
|
10
8
|
/** 原生规则、验证库规则和框架无关规则均可直接作为字段配置。 */
|
|
@@ -139,6 +137,13 @@ interface ItemLayoutConfig {
|
|
|
139
137
|
class?: string;
|
|
140
138
|
style?: CSSProperties | Record<string, unknown>;
|
|
141
139
|
hidden?: boolean;
|
|
140
|
+
suffix?: boolean;
|
|
141
|
+
/** Legacy nested grid attributes; top-level layout values take precedence. */
|
|
142
|
+
grid?: {
|
|
143
|
+
span?: number;
|
|
144
|
+
offset?: number;
|
|
145
|
+
suffix?: boolean;
|
|
146
|
+
};
|
|
142
147
|
}
|
|
143
148
|
/**
|
|
144
149
|
* 网格布局配置
|
|
@@ -150,6 +155,9 @@ interface GridLayoutConfig {
|
|
|
150
155
|
yGutter?: number;
|
|
151
156
|
xGap?: number;
|
|
152
157
|
yGap?: number;
|
|
158
|
+
responsive?: boolean;
|
|
159
|
+
showConfigPanel?: boolean;
|
|
160
|
+
showStats?: boolean;
|
|
153
161
|
}
|
|
154
162
|
/**
|
|
155
163
|
* 内联布局配置
|
|
@@ -157,6 +165,8 @@ interface GridLayoutConfig {
|
|
|
157
165
|
*/
|
|
158
166
|
interface InlineLayoutConfig {
|
|
159
167
|
gap?: number;
|
|
168
|
+
rowGap?: number;
|
|
169
|
+
itemWidth?: number;
|
|
160
170
|
align?: 'start' | 'center' | 'end' | 'baseline' | 'stretch';
|
|
161
171
|
wrap?: 'nowrap' | 'wrap' | 'wrap-reverse';
|
|
162
172
|
}
|
|
@@ -168,6 +178,10 @@ interface CardLayoutConfig {
|
|
|
168
178
|
groups?: GroupConfig[];
|
|
169
179
|
spacing?: number;
|
|
170
180
|
bordered?: boolean;
|
|
181
|
+
direction?: 'vertical' | 'horizontal';
|
|
182
|
+
showLayoutConfig?: boolean;
|
|
183
|
+
showActionPanel?: boolean;
|
|
184
|
+
showProgress?: boolean;
|
|
171
185
|
}
|
|
172
186
|
/**
|
|
173
187
|
* 标签页布局配置
|
|
@@ -301,7 +315,7 @@ interface SubmitEventPayload<T extends object = FormRecord> {
|
|
|
301
315
|
interface FormInstance<T extends object = FormRecord> {
|
|
302
316
|
validate(): Promise<void>;
|
|
303
317
|
validateField(field: FieldPath<T> | FieldPath<T>[]): Promise<void>;
|
|
304
|
-
validateStep(
|
|
318
|
+
validateStep(step: number | string): Promise<boolean>;
|
|
305
319
|
validateTab(tabKey: string): Promise<boolean>;
|
|
306
320
|
validateDynamicFields(): Promise<boolean>;
|
|
307
321
|
validateCustomGroup(groupKey: string): Promise<boolean>;
|
|
@@ -315,10 +329,10 @@ interface FormInstance<T extends object = FormRecord> {
|
|
|
315
329
|
formRef: FormInst | null;
|
|
316
330
|
formModel: FormModel<T>;
|
|
317
331
|
initialize(): void;
|
|
318
|
-
layoutType:
|
|
319
|
-
shouldShowDefaultActions:
|
|
332
|
+
layoutType: LayoutType;
|
|
333
|
+
shouldShowDefaultActions: boolean;
|
|
320
334
|
/** 表单是否被修改过 */
|
|
321
|
-
isDirty:
|
|
335
|
+
isDirty: boolean;
|
|
322
336
|
/** 获取被修改的字段列表 */
|
|
323
337
|
getChangedFields(): FieldPath<T>[];
|
|
324
338
|
/** 检查某字段是否被修改 */
|
|
@@ -326,13 +340,13 @@ interface FormInstance<T extends object = FormRecord> {
|
|
|
326
340
|
/** 将当前值设为初始快照(常用于编辑模式加载数据后) */
|
|
327
341
|
markAsClean(): void;
|
|
328
342
|
/** 字段异步选项的 loading 状态 */
|
|
329
|
-
asyncLoadingMap:
|
|
343
|
+
asyncLoadingMap: Record<string, boolean>;
|
|
330
344
|
/** 字段异步选项加载错误 */
|
|
331
|
-
asyncErrorMap:
|
|
345
|
+
asyncErrorMap: Record<string, unknown>;
|
|
332
346
|
/** 重新加载全部或指定字段的异步选项 */
|
|
333
347
|
reloadOptions(field?: FieldPath<T>): Promise<void>;
|
|
334
348
|
/** 是否正在提交 */
|
|
335
|
-
isSubmitting:
|
|
349
|
+
isSubmitting: boolean;
|
|
336
350
|
/** 验证并提交,成功返回 true */
|
|
337
351
|
submit(): Promise<boolean>;
|
|
338
352
|
}
|
|
@@ -561,6 +575,15 @@ interface FormRendererContext {
|
|
|
561
575
|
components: ComponentMap;
|
|
562
576
|
}
|
|
563
577
|
type FormRenderer = (baseProps: RendererProps, item: FormOption, config: ResolvedFormConfig, context: FormRendererContext) => VNode | null;
|
|
578
|
+
/** A renderer collection owned by one application or explicitly shared scope. */
|
|
579
|
+
interface FormRendererRegistry {
|
|
580
|
+
get(type: string): FormRenderer | undefined;
|
|
581
|
+
register(type: string, renderer: FormRenderer): () => boolean;
|
|
582
|
+
unregister(type: string, renderer?: FormRenderer): boolean;
|
|
583
|
+
}
|
|
584
|
+
declare const FORM_RENDERER_REGISTRY_KEY: InjectionKey<FormRendererRegistry>;
|
|
585
|
+
/** Create an isolated, reactive registry without copying legacy registrations. */
|
|
586
|
+
declare function createFormRendererRegistry(initial?: Readonly<Record<string, FormRenderer>>): FormRendererRegistry;
|
|
564
587
|
interface UseFormRendererOptions {
|
|
565
588
|
formModel: FormModel;
|
|
566
589
|
visibleOptions: ComputedRef<FormOption[]>;
|
|
@@ -571,14 +594,20 @@ interface UseFormRendererOptions {
|
|
|
571
594
|
asyncOptionsCache: Ref<Record<string, OptionItem[]>>;
|
|
572
595
|
asyncLoadingMap: Ref<Record<string, boolean>>;
|
|
573
596
|
renderers?: ComputedRef<Record<string, FormRenderer> | undefined>;
|
|
597
|
+
/** Overrides application injection. An isolated registry never reads legacy globals. */
|
|
598
|
+
registry?: FormRendererRegistry;
|
|
574
599
|
setFormItemRef?: (field: string, instance: FormItemInst | null) => void;
|
|
575
600
|
onError?: (error: unknown, field: string) => void;
|
|
576
601
|
}
|
|
577
602
|
/**
|
|
578
|
-
*
|
|
603
|
+
* Register a legacy process-wide renderer, used only without an isolated registry.
|
|
604
|
+
* @deprecated Prefer createFormRendererRegistry and application injection.
|
|
579
605
|
*/
|
|
580
606
|
declare function registerRenderer(type: string, renderer: FormRenderer): () => boolean;
|
|
581
|
-
/**
|
|
607
|
+
/**
|
|
608
|
+
* Remove a legacy process-wide renderer, optionally checking its function identity.
|
|
609
|
+
* @deprecated Prefer an application-owned FormRendererRegistry.
|
|
610
|
+
*/
|
|
582
611
|
declare function unregisterRenderer(type: string, renderer?: FormRenderer): boolean;
|
|
583
612
|
/**
|
|
584
613
|
* 渲染引擎 Composable — 生成 formItems VNode 数组
|
|
@@ -607,15 +636,15 @@ declare const __VLS_export: <T extends object = FormRecord>(__VLS_props: NonNull
|
|
|
607
636
|
} & {
|
|
608
637
|
"onUpdate:modelValue"?: ((model: T) => any) | undefined;
|
|
609
638
|
onSubmit?: ((payload: SubmitEventPayload<T>) => any) | undefined;
|
|
610
|
-
"onValidate-success"?: ((model: T) => any) | undefined;
|
|
611
639
|
"onValidate-error"?: ((errors: unknown) => any) | undefined;
|
|
640
|
+
"onValidate-success"?: ((model: T) => any) | undefined;
|
|
612
641
|
}> & (typeof globalThis extends {
|
|
613
642
|
__VLS_PROPS_FALLBACK: infer P;
|
|
614
643
|
} ? P : {});
|
|
615
644
|
expose: (exposed: vue.ShallowUnwrapRef<{
|
|
616
645
|
validate: () => Promise<void>;
|
|
617
646
|
validateField: (field: string | string[]) => Promise<void>;
|
|
618
|
-
validateStep: (
|
|
647
|
+
validateStep: (step: number | string) => Promise<boolean>;
|
|
619
648
|
validateTab: (tabKey: string) => Promise<boolean>;
|
|
620
649
|
validateDynamicFields: () => Promise<boolean>;
|
|
621
650
|
validateCustomGroup: (groupKey: string) => Promise<boolean>;
|
|
@@ -626,32 +655,24 @@ declare const __VLS_export: <T extends object = FormRecord>(__VLS_props: NonNull
|
|
|
626
655
|
setFieldValue: (field: string, value: unknown, shouldValidate?: boolean) => Promise<void>;
|
|
627
656
|
getFieldValue: (field: string) => unknown;
|
|
628
657
|
setFieldsValue: (fields: FormModel, shouldValidate?: boolean) => Promise<void>;
|
|
629
|
-
formRef:
|
|
630
|
-
validate: naive_ui_es_form_src_interface0.FormValidate;
|
|
631
|
-
restoreValidation: () => void;
|
|
632
|
-
invalidateLabelWidth: () => void;
|
|
633
|
-
} | null, FormInst | {
|
|
634
|
-
validate: naive_ui_es_form_src_interface0.FormValidate;
|
|
635
|
-
restoreValidation: () => void;
|
|
636
|
-
invalidateLabelWidth: () => void;
|
|
637
|
-
} | null>;
|
|
658
|
+
formRef: Ref<FormInst | null, FormInst | null>;
|
|
638
659
|
formModel: FormRecord;
|
|
639
660
|
initialize: () => void;
|
|
640
661
|
layoutType: ComputedRef<LayoutType>;
|
|
641
662
|
shouldShowDefaultActions: ComputedRef<boolean>;
|
|
642
|
-
isDirty:
|
|
663
|
+
isDirty: Ref<boolean, boolean>;
|
|
643
664
|
getChangedFields: () => string[];
|
|
644
665
|
isFieldDirty: (field: string) => boolean;
|
|
645
666
|
markAsClean: () => void;
|
|
646
|
-
asyncLoadingMap:
|
|
647
|
-
asyncErrorMap:
|
|
667
|
+
asyncLoadingMap: Ref<Record<string, boolean>, Record<string, boolean>>;
|
|
668
|
+
asyncErrorMap: Ref<Record<string, unknown>, Record<string, unknown>>;
|
|
648
669
|
reloadOptions: (field?: string) => Promise<void>;
|
|
649
|
-
isSubmitting:
|
|
670
|
+
isSubmitting: Ref<boolean, boolean>;
|
|
650
671
|
submit: () => Promise<boolean>;
|
|
651
672
|
}>) => void;
|
|
652
673
|
attrs: any;
|
|
653
674
|
slots: FormSlots<T>;
|
|
654
|
-
emit: ((evt: "update:modelValue", model: T) => void) & ((evt: "submit", payload: SubmitEventPayload<T>) => void) & ((evt: "validate-
|
|
675
|
+
emit: ((evt: "update:modelValue", model: T) => void) & ((evt: "submit", payload: SubmitEventPayload<T>) => void) & ((evt: "validate-error", errors: unknown) => void) & ((evt: "validate-success", model: T) => void);
|
|
655
676
|
}>) => vue.VNode & {
|
|
656
677
|
__ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
|
|
657
678
|
};
|
|
@@ -668,20 +689,23 @@ interface UseCFormOptions<T extends object> {
|
|
|
668
689
|
options: MaybeRefOrGetter<FormOption<T>[]>;
|
|
669
690
|
config?: MaybeRefOrGetter<FormConfig<T> | undefined>;
|
|
670
691
|
}
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
modelValue: any;
|
|
692
|
+
interface UseCFormReturn<T extends object> {
|
|
693
|
+
model: ShallowRef<FormModel<T>>;
|
|
694
|
+
formRef: ShallowRef<FormInstance<T> | null>;
|
|
695
|
+
bindings: ComputedRef<{
|
|
696
|
+
modelValue: FormModel<T>;
|
|
677
697
|
options: FormOption<T>[];
|
|
678
698
|
config: FormConfig<T> | undefined;
|
|
679
699
|
'onUpdate:modelValue': (value: FormModel<T>) => void;
|
|
680
700
|
}>;
|
|
681
701
|
validate: () => Promise<void>;
|
|
682
702
|
submit: () => Promise<boolean>;
|
|
683
|
-
reset: () => void
|
|
684
|
-
|
|
703
|
+
reset: () => void;
|
|
704
|
+
getValues: () => FormModel<T>;
|
|
705
|
+
setValues: (values: Partial<FormModel<T>>, shouldValidate?: boolean) => Promise<void>;
|
|
706
|
+
}
|
|
707
|
+
/** Small binding helper for the common controlled C_Form setup. */
|
|
708
|
+
declare function useCForm<T extends object>(setup: UseCFormOptions<T>): UseCFormReturn<T>;
|
|
685
709
|
//#endregion
|
|
686
710
|
//#region src/components/C_Form/composables/useFormState.d.ts
|
|
687
711
|
type FormEmit = {
|
|
@@ -691,7 +715,7 @@ type FormEmit = {
|
|
|
691
715
|
(event: 'submit', payload: SubmitEventPayload): void;
|
|
692
716
|
};
|
|
693
717
|
/** C_Form state, validation, async options and model synchronization engine. */
|
|
694
|
-
declare function useFormState(options: ComputedRef<FormOption[]>, config: ComputedRef<ResolvedFormConfig>, formRef: Ref<FormInst | null>, emit: FormEmit, externalModel?: ComputedRef<FormModel | undefined>): {
|
|
718
|
+
declare function useFormState(options: ComputedRef<FormOption[]>, config: ComputedRef<ResolvedFormConfig>, formRef: Ref<FormInst | null>, emit: FormEmit, externalModel?: ComputedRef<FormModel | undefined>, validationReady?: ComputedRef<boolean>): {
|
|
695
719
|
formModel: FormRecord;
|
|
696
720
|
formRules: FormRules;
|
|
697
721
|
visibleOptions: ComputedRef<FormOption<FormRecord>[]>;
|
|
@@ -700,7 +724,7 @@ declare function useFormState(options: ComputedRef<FormOption[]>, config: Comput
|
|
|
700
724
|
setFormItemRef: (field: string, instance: FormItemInst | null) => void;
|
|
701
725
|
validate: () => Promise<void>;
|
|
702
726
|
validateField: (field: string | string[]) => Promise<void>;
|
|
703
|
-
validateStep: (
|
|
727
|
+
validateStep: (step: number | string) => Promise<boolean>;
|
|
704
728
|
validateTab: (tabKey: string) => Promise<boolean>;
|
|
705
729
|
validateDynamicFields: () => Promise<boolean>;
|
|
706
730
|
validateCustomGroup: (groupKey: string) => Promise<boolean>;
|
|
@@ -781,4 +805,4 @@ type DynamicFormStateType = DynamicFormController;
|
|
|
781
805
|
*/
|
|
782
806
|
declare const DYNAMIC_FORM_STATE_KEY: unique symbol;
|
|
783
807
|
//#endregion
|
|
784
|
-
export {
|
|
808
|
+
export { FormStepActionsSlotProps as $, ResolvedFormConfig as A, DynamicFormConfig as B, unregisterRenderer as C, FormConfig as D, FORM_GLOBAL_CONFIG_KEY as E, AsyncOptionsContext as F, FormActionSlotProps as G, DynamicFormState as H, CardLayoutConfig as I, FormMode as J, FormErrorContext as K, ComponentType as L, resolveFormConfig as M, shouldShowActions as N, LAYOUTS_WITH_OWN_CONTROLS as O, useFormGlobalConfig as P, FormSlots as Q, CustomLayoutConfig as R, registerRenderer as S, FORM_DEFAULTS as T, FieldPath as U, DynamicFormController as V, FieldPathValue as W, FormOption as X, FormModel as Y, FormRecord as Z, FormRendererContext as _, UseFormDirtyReturn as a, LayoutConfig as at, UseFormRendererOptions as b, UseCFormOptions as c, OptionItem as ct, defineFormOptions as d, TabsLayoutConfig as dt, FormSubmitContext as et, useCForm as f, FormValidationRule as ft, FormRenderer as g, SPEC_RULES as gt, FORM_RENDERER_REGISTRY_KEY as h, RuleSpec$1 as ht, useDynamicFormState as i, LabelPlacement as it, mergeFormConfig as j, LayoutCallbacks as k, UseCFormReturn as l, StepsLayoutConfig as lt, ComponentMap as m, PRESET_RULES$1 as mt, DynamicFormStateType as n, GridLayoutConfig as nt, useFormDirty as o, LayoutType as ot, _default as p, NAIVE_COMBOS$1 as pt, FormInstance as q, FIELD_TYPE_OPTIONS as r, InlineLayoutConfig as rt, useFormState as s, MaybePromise as st, DYNAMIC_FORM_STATE_KEY as t, FormTabActionsSlotProps as tt, defineFormConfig as u, SubmitEventPayload as ut, FormRendererRegistry as v, useFormRenderer as w, createFormRendererRegistry as x, RendererProps as y, DynamicFieldConfig as z };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{computed as e,reactive as t,readonly as n}from"vue";const r={maxFields:20,autoSave:!1,enableSort:!0,showControls:!0,showItemControls:!0},i=[{label:`文本输入`,value:`input`},{label:`数字输入`,value:`inputNumber`},{label:`多行文本`,value:`textarea`},{label:`下拉选择`,value:`select`},{label:`开关切换`,value:`switch`},{label:`评分组件`,value:`rate`}];function a(e,t){let n=t.label||`动态字段 ${e}`;return{...t,id:t.id?.trim()||`dynamic_field_${e}`,type:t.type||i[0].value,prop:t.prop?.trim()||`dynamic_${e}`,label:n,placeholder:t.placeholder||`请输入${n||`内容`}`,visible:t.visible??!0,removable:t.removable??!0,created:t.created??Date.now(),layout:t.layout||{span:12}}}const o=()=>{let o=t({config:{...r},baseFields:[],dynamicFields:[],hiddenFieldIds:new Set,fieldCounter:0,isInitialized:!1}),s=e(()=>[...o.baseFields,...o.dynamicFields.map(e=>({...e,show:!o.hiddenFieldIds.has(e.prop)}))]),c=e(()=>s.value.filter(e=>e.show!==!1)),l=e(()=>o.dynamicFields.length),u=e(()=>o.hiddenFieldIds.size),d=e(()=>o.dynamicFields.length<o.config.maxFields),f=e(()=>o.hiddenFieldIds.size===0),p=(e={})=>{if(!d.value)return null;o.fieldCounter++;let t=a(o.fieldCounter,e);return s.value.some(e=>e.prop===t.prop)?null:(o.dynamicFields.push(t),t)},m=e=>{if(o.dynamicFields.length===0)return null;let t=e??o.dynamicFields.length-1;if(t<0||t>=o.dynamicFields.length||o.dynamicFields[t]?.removable===!1)return null;let n=o.dynamicFields.splice(t,1)[0];return n&&o.hiddenFieldIds.delete(n.prop),n??null},h=()=>{let e=o.dynamicFields.length;return o.dynamicFields.forEach(e=>o.hiddenFieldIds.delete(e.prop)),o.dynamicFields.length=0,o.fieldCounter=0,e},g=e=>s.value.some(t=>t.prop===e)?(o.hiddenFieldIds.has(e)?o.hiddenFieldIds.delete(e):o.hiddenFieldIds.add(e),!o.hiddenFieldIds.has(e)):!1,_=()=>(f.value?o.dynamicFields.forEach(e=>{o.hiddenFieldIds.add(e.prop)}):o.hiddenFieldIds.clear(),f.value),v=e=>{let t={...e};t.maxFields!==void 0&&(t.maxFields=Math.max(0,Math.trunc(t.maxFields))),Object.assign(o.config,t)};return{state:n(o),allFields:s,visibleFields:c,dynamicFieldsCount:l,hiddenFieldsCount:u,canAddMoreFields:d,allVisible:f,FIELD_TYPE_OPTIONS:i,addField:p,removeField:m,clearDynamicFields:h,toggleFieldVisibility:g,toggleAllVisibility:_,updateConfig:v,exportConfig:()=>{let e={baseFields:o.baseFields,dynamicFields:o.dynamicFields,config:o.config,hiddenFields:Array.from(o.hiddenFieldIds),timestamp:Date.now()};return JSON.stringify(e,null,2)},initialize:(e,t={})=>{o.baseFields=[...e],o.dynamicFields.length=0,o.hiddenFieldIds.clear(),o.fieldCounter=0,Object.assign(o.config,r),v(t),o.isInitialized=!0}}},s=Symbol(`dynamicFormState`);export{i as n,o as r,s as t};
|
|
@@ -259,11 +259,11 @@ declare const __VLS_export: vue.DefineComponent<Props, {
|
|
|
259
259
|
onReady?: ((graph: Graph) => any) | undefined;
|
|
260
260
|
"onData-change"?: ((data: DiagramData) => any) | undefined;
|
|
261
261
|
}>, {
|
|
262
|
-
theme: "light" | "dark";
|
|
263
|
-
width: string | number;
|
|
264
262
|
height: string | number;
|
|
265
|
-
|
|
263
|
+
width: string | number;
|
|
266
264
|
readonly: boolean;
|
|
265
|
+
showToolbar: boolean;
|
|
266
|
+
theme: "light" | "dark";
|
|
267
267
|
}, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
|
|
268
268
|
declare const _default: typeof __VLS_export;
|
|
269
269
|
//#endregion
|
|
@@ -259,11 +259,11 @@ declare const __VLS_export: vue.DefineComponent<Props, {
|
|
|
259
259
|
onReady?: ((graph: Graph) => any) | undefined;
|
|
260
260
|
"onData-change"?: ((data: DiagramData) => any) | undefined;
|
|
261
261
|
}>, {
|
|
262
|
-
theme: "light" | "dark";
|
|
263
|
-
width: string | number;
|
|
264
262
|
height: string | number;
|
|
265
|
-
|
|
263
|
+
width: string | number;
|
|
266
264
|
readonly: boolean;
|
|
265
|
+
showToolbar: boolean;
|
|
266
|
+
theme: "light" | "dark";
|
|
267
267
|
}, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
|
|
268
268
|
declare const _default: typeof __VLS_export;
|
|
269
269
|
//#endregion
|
|
@@ -51,8 +51,8 @@ declare const __VLS_export: vue.DefineComponent<Props, {
|
|
|
51
51
|
openDialog: () => Promise<void>;
|
|
52
52
|
closeDialog: () => void;
|
|
53
53
|
}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<Props> & Readonly<{}>, {
|
|
54
|
-
emptyText: string;
|
|
55
54
|
placeholder: string;
|
|
55
|
+
emptyText: string;
|
|
56
56
|
resultGroupTitle: string;
|
|
57
57
|
}, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
|
|
58
58
|
declare const _default: typeof __VLS_export;
|
|
@@ -51,8 +51,8 @@ declare const __VLS_export: vue.DefineComponent<Props, {
|
|
|
51
51
|
openDialog: () => Promise<void>;
|
|
52
52
|
closeDialog: () => void;
|
|
53
53
|
}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<Props> & Readonly<{}>, {
|
|
54
|
-
emptyText: string;
|
|
55
54
|
placeholder: string;
|
|
55
|
+
emptyText: string;
|
|
56
56
|
resultGroupTitle: string;
|
|
57
57
|
}, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
|
|
58
58
|
declare const _default: typeof __VLS_export;
|
package/dist/useQRCode.d.cts
CHANGED
|
@@ -50,13 +50,13 @@ declare const __VLS_export: vue.DefineComponent<Props, QRCodeExpose, {}, {}, {},
|
|
|
50
50
|
}, string, vue.PublicProps, Readonly<Props> & Readonly<{
|
|
51
51
|
onError?: ((error: Error) => any) | undefined;
|
|
52
52
|
}>, {
|
|
53
|
-
size: number;
|
|
54
53
|
label: string;
|
|
55
54
|
color: string;
|
|
56
55
|
mode: RenderMode;
|
|
57
|
-
|
|
56
|
+
size: number;
|
|
58
57
|
bgColor: string;
|
|
59
58
|
errorCorrectionLevel: ErrorCorrectionLevel;
|
|
59
|
+
margin: number;
|
|
60
60
|
logo: LogoOptions;
|
|
61
61
|
showBorder: boolean;
|
|
62
62
|
showLabel: boolean;
|
package/dist/useQRCode.d.ts
CHANGED
|
@@ -50,13 +50,13 @@ declare const __VLS_export: vue.DefineComponent<Props, QRCodeExpose, {}, {}, {},
|
|
|
50
50
|
}, string, vue.PublicProps, Readonly<Props> & Readonly<{
|
|
51
51
|
onError?: ((error: Error) => any) | undefined;
|
|
52
52
|
}>, {
|
|
53
|
-
size: number;
|
|
54
53
|
label: string;
|
|
55
54
|
color: string;
|
|
56
55
|
mode: RenderMode;
|
|
57
|
-
|
|
56
|
+
size: number;
|
|
58
57
|
bgColor: string;
|
|
59
58
|
errorCorrectionLevel: ErrorCorrectionLevel;
|
|
59
|
+
margin: number;
|
|
60
60
|
logo: LogoOptions;
|
|
61
61
|
showBorder: boolean;
|
|
62
62
|
showLabel: boolean;
|