cnhis-design-vue 3.1.26-beta.2 → 3.1.26-beta.4

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.
Files changed (36) hide show
  1. package/es/components/form-config/index.d.ts +889 -872
  2. package/es/components/form-config/src/FormConfig.vue.d.ts +889 -872
  3. package/es/components/form-config/src/components/FormConfigCreator.vue.d.ts +444 -436
  4. package/es/components/form-config/src/components/FormConfigEdit.vue.d.ts +445 -436
  5. package/es/components/form-render/index.d.ts +445 -436
  6. package/es/components/form-render/index.js +5 -1
  7. package/es/components/form-render/src/FormRender.js +25 -8
  8. package/es/components/form-render/src/FormRender.vue.d.ts +1 -0
  9. package/es/components/form-render/src/FormRenderWrapper.js +46 -0
  10. package/es/components/form-render/src/FormRenderWrapper.vue.d.ts +621 -0
  11. package/es/components/form-render/src/components/renderer/jsonCombination/index.js +2 -2
  12. package/es/components/form-render/src/components/renderer/simpleComponent.js +2 -2
  13. package/es/components/form-render/src/hooks/useFormContext.js +2 -2
  14. package/es/components/form-render/src/types/fieldItem.d.ts +4 -0
  15. package/es/components/form-render/src/types/index.d.ts +3 -1
  16. package/es/components/form-render/src/utils/index.d.ts +2 -0
  17. package/es/components/form-render/src/utils/index.js +49 -3
  18. package/es/components/iho-table/src/IhoTable.js +2 -1
  19. package/es/components/iho-table/src/constants/index.d.ts +6 -4
  20. package/es/components/iho-table/src/constants/index.js +10 -2
  21. package/es/components/iho-table/src/hooks/useTableContext.d.ts +7 -0
  22. package/es/components/iho-table/src/hooks/useTableContext.js +15 -0
  23. package/es/components/iho-table/src/plugins/defaultConfigPlugin/index.js +5 -1
  24. package/es/components/iho-table/src/plugins/index.js +2 -0
  25. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/dateRendererPlugin/editDate.vue.d.ts +1 -1
  26. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/numberRendererPlugin.d.ts +1 -0
  27. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/numberRendererPlugin.js +62 -0
  28. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/selectRendererPlugin/editSelect.js +1 -1
  29. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/separateRendererPlugin/editSeparate.vue.d.ts +1 -1
  30. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/timeRendererPlugin.js +11 -11
  31. package/es/components/iho-table/src/types/index.d.ts +6 -2
  32. package/es/components/index.js +4 -0
  33. package/es/components/shortcut-setter/index.d.ts +445 -436
  34. package/es/components/shortcut-setter/src/ShortcutSetter.vue.d.ts +445 -436
  35. package/es/shared/types/index.d.ts +8 -0
  36. package/package.json +2 -2
@@ -181,6 +181,10 @@ export declare type FieldItem = {
181
181
  * 合并错误信息
182
182
  */
183
183
  defined_error_msg: string;
184
+ /**
185
+ * 是否使用json格式对该字段值进行合并
186
+ */
187
+ extendKey: string;
184
188
  /**
185
189
  * 数据类型
186
190
  */
@@ -27,7 +27,8 @@ export declare type AgeContext = Record<'age' | 'day' | 'month' | 'year', number
27
27
  export declare type IdCardParseInfo = Record<'sex' | 'birthday', string> & AgeContext;
28
28
  export declare type FormRenderExpose = {
29
29
  validate(path?: string): Promise<unknown>;
30
- getFormValues(): AnyObject;
30
+ getFormValues(needCombineExtendKey?: boolean): AnyObject;
31
+ setFormValues(values: AnyObject, needSplitExtendKey?: boolean): AnyObject;
31
32
  setFieldState(path: string, setter: (field: Field) => void): void;
32
33
  resetFields(path?: string): void;
33
34
  queryWidget(key: string): Promise<{
@@ -35,6 +36,7 @@ export declare type FormRenderExpose = {
35
36
  widgetElementList: HTMLInputElement[];
36
37
  decoratorElement: HTMLElement | null;
37
38
  }>;
39
+ reload(): Promise<any>;
38
40
  };
39
41
  export declare type FormChangeContext = Partial<{
40
42
  currentOption: AnyObject;
@@ -17,3 +17,5 @@ export declare function optionMatcher(options: AnyObject[], input: Nullable<stri
17
17
  keyword?: string;
18
18
  }): AnyObject[];
19
19
  export declare function validateMessageParser(message: string, fieldItem: Omit<FieldItem, 'reactions'>): string;
20
+ export declare function combineExtendKey(fieldList: FieldItem[], values: AnyObject): AnyObject;
21
+ export declare function splitExtendKey(fieldList: FieldItem[], values: AnyObject): AnyObject;
@@ -1,9 +1,9 @@
1
- import { computed, createVNode, Fragment, inject, provide } from 'vue';
1
+ import { inject, provide, computed, createVNode, Fragment } from 'vue';
2
2
  import { arrayed } from '../../../../shared/utils/index.js';
3
3
  import { Path } from '@formily/path';
4
4
  import { isObject } from '@vue/shared';
5
5
  import { useMemoize } from '@vueuse/core';
6
- import { isString, isFunction } from 'lodash-es';
6
+ import { isString, isFunction, omit } from 'lodash-es';
7
7
  import 'date-fns';
8
8
  import '@formily/core';
9
9
 
@@ -133,5 +133,51 @@ function validateMessageParser(message, fieldItem) {
133
133
  return (_a = fieldItem[property.trim()]) != null ? _a : "";
134
134
  }
135
135
  }
136
+ function combineExtendKey(fieldList, values) {
137
+ const fieldListWithExtendKey = fieldList.filter((field) => isString(field.extendKey) && field.extendKey);
138
+ if (!fieldListWithExtendKey.length)
139
+ return values;
140
+ const result = {};
141
+ const extendKeyMap = /* @__PURE__ */ new Map();
142
+ Object.entries(values).forEach(([k, v]) => {
143
+ const field = fieldListWithExtendKey.find((field2) => field2.val_key === k);
144
+ if (!field) {
145
+ return result[k] = v;
146
+ }
147
+ const {
148
+ val_key,
149
+ extendKey
150
+ } = field;
151
+ const extendKeyObject = extendKeyMap.get(extendKey) || {};
152
+ extendKeyMap.set(extendKey, extendKeyObject);
153
+ extendKeyObject[val_key] = values[val_key];
154
+ });
155
+ [...extendKeyMap.entries()].forEach(([k, v]) => {
156
+ result[k] = JSON.stringify(v);
157
+ });
158
+ return result;
159
+ }
160
+ function splitExtendKey(fieldList, values) {
161
+ const fieldListWithExtendKey = fieldList.filter((field) => isString(field.extendKey) && field.extendKey);
162
+ if (!fieldListWithExtendKey.length)
163
+ return values;
164
+ const queryFieldValue = useMemoize((extendKey) => {
165
+ try {
166
+ return JSON.parse(values[extendKey]);
167
+ } catch (e) {
168
+ return {};
169
+ }
170
+ });
171
+ const result = omit(values, fieldListWithExtendKey.map((field) => field.extendKey));
172
+ fieldListWithExtendKey.forEach(({
173
+ val_key,
174
+ extendKey
175
+ }) => {
176
+ if (Reflect.has(result, val_key))
177
+ return;
178
+ result[val_key] = queryFieldValue(extendKey)[val_key];
179
+ });
180
+ return result;
181
+ }
136
182
 
137
- export { createInputSlot, createSlot, formRenderLog, injectOrProvide, mergeDeepProperties, optionMatcher, parseNumberFromMaybeString, presetRequestHandler, validateMessageParser };
183
+ export { combineExtendKey, createInputSlot, createSlot, formRenderLog, injectOrProvide, mergeDeepProperties, optionMatcher, parseNumberFromMaybeString, presetRequestHandler, splitExtendKey, validateMessageParser };
@@ -1,7 +1,7 @@
1
1
  import { defineComponent, provide, ref, computed, watch, resolveComponent, openBlock, createElementBlock, createVNode, mergeProps, unref, withCtx, Fragment, renderList, createBlock } from 'vue';
2
2
  import { uuidGenerator } from '../../../shared/utils/index.js';
3
3
  import { useDebounceFn } from '@vueuse/core';
4
- import { VxeEventListenerNameList, InjectionIhoTableEmits, InjectionIhoTableUUID, InjectionIhoTableConfig, InjectionIhoTableHandler } from './constants/index.js';
4
+ import { VxeEventListenerNameList, InjectionIhoTableEmits, InjectionIhoTableUUID, InjectionIhoTableConfig, InjectionIhoTableFieldList, InjectionIhoTableHandler } from './constants/index.js';
5
5
  import { createTableHooks, applyTableConfigHooks, applyTableFieldHooks, createTableEventHandlers, createDataTransfer } from './hooks/tapHooks/index.js';
6
6
  import 'lodash-es';
7
7
  import { getEventName } from './utils/index.js';
@@ -37,6 +37,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
37
37
  configRef.value.uuid = uuidRef.value;
38
38
  }, 10);
39
39
  const fieldListRef = ref([]);
40
+ provide(InjectionIhoTableFieldList, fieldListRef);
40
41
  const updateFieldListRef = useDebounceFn(() => {
41
42
  fieldListRef.value = applyTableFieldHooks(hooks, props.fieldList, configRef.value);
42
43
  }, 10);
@@ -1,7 +1,7 @@
1
1
  import { Nullable } from '../../../../../es/shared/types';
2
2
  import { InjectionKey, Ref } from 'vue';
3
3
  import { VxeTableEventProps } from 'vxe-table/types/table';
4
- import { IhoTableConfig, IhoTableHandler, UnionToTuple } from '../../../../../es/components/iho-table';
4
+ import { IhoTableConfig, IhoTableEmitPayload, IhoTableFieldItem, IhoTableHandler, UnionToTuple } from '../../../../../es/components/iho-table';
5
5
  export declare enum WIDGET_TYPE {
6
6
  DEFAULT = "DEFAULT",
7
7
  PICTURE = "PICTURE",
@@ -24,7 +24,6 @@ export declare enum WIDGET_TYPE {
24
24
  TASKDATE = "TASKDATE",
25
25
  AGE = "AGE",
26
26
  STATUS = "STATUS",
27
- NUMBER = "NUMBER",
28
27
  WEBSITE = "WEBSITE",
29
28
  IDCARD = "IDCARD",
30
29
  COUNTDOWN = "COUNTDOWN",
@@ -44,9 +43,12 @@ export declare enum EDITABLE_WIDGET_TYPE {
44
43
  SEPARATE = "SEPARATE",
45
44
  SELECT = "SELECT",
46
45
  DATE = "DATE",
47
- TIME = "TIME"
46
+ TIME = "TIME",
47
+ NUMBER = "NUMBER"
48
48
  }
49
+ export declare const IhoTableEventNameTuple: readonly ["formChange", "settingClick", ...("toggleRowExpand" | "toggleTreeExpand" | "copy" | "scroll" | "cut" | "paste" | "keydown" | "keydownStart" | "keydownEnd" | "currentChange" | "radioChange" | "checkboxChange" | "checkboxAll" | "checkboxRangeStart" | "checkboxRangeChange" | "checkboxRangeEnd" | "cellClick" | "cellDblclick" | "cellMenu" | "cellMouseenter" | "cellMouseleave" | "headerCellClick" | "headerCellDblclick" | "headerCellMenu" | "footerCellClick" | "footerCellDblclick" | "footerCellMenu" | "sortChange" | "filterChange" | "filterVisible" | "resizableChange" | "menuClick" | "editClosed" | "editActived" | "editDisabled" | "validError" | "custom" | "openFnr" | "fnrChange" | "fnrFind" | "fnrFindAll" | "fnrReplace" | "fnrReplaceAll" | "cellAreaCopy" | "cellAreaCut" | "cellAreaPaste" | "cellAreaMerge" | "clearCellAreaMerge" | "headerCellAreaSelection" | "cellAreaSelectionStart" | "cellAreaSelectionDrag" | "cellAreaSelectionEnd" | "cellAreaExtensionStart" | "cellAreaExtensionDrag" | "cellAreaExtensionEnd" | "cellAreaArrowsStart" | "cellAreaArrowsEnd" | "activeCellChangeStart" | "activeCellChangeEnd")[]];
49
50
  export declare const InjectionIhoTableConfig: InjectionKey<Ref<Nullable<IhoTableConfig>>>;
50
- export declare const InjectionIhoTableEmits: InjectionKey<(event: string, ...args: unknown[]) => void>;
51
+ export declare const InjectionIhoTableFieldList: InjectionKey<Ref<Nullable<IhoTableFieldItem[]>>>;
52
+ export declare const InjectionIhoTableEmits: InjectionKey<(<T extends typeof IhoTableEventNameTuple[number]>(event: T, ...args: IhoTableEmitPayload<T>) => void)>;
51
53
  export declare const InjectionIhoTableUUID: InjectionKey<Ref<string>>;
52
54
  export declare const InjectionIhoTableHandler: InjectionKey<IhoTableHandler>;
@@ -1,3 +1,5 @@
1
+ import { getEventName } from '../utils/index.js';
2
+
1
3
  var WIDGET_TYPE = /* @__PURE__ */ ((WIDGET_TYPE2) => {
2
4
  WIDGET_TYPE2["DEFAULT"] = "DEFAULT";
3
5
  WIDGET_TYPE2["PICTURE"] = "PICTURE";
@@ -20,7 +22,6 @@ var WIDGET_TYPE = /* @__PURE__ */ ((WIDGET_TYPE2) => {
20
22
  WIDGET_TYPE2["TASKDATE"] = "TASKDATE";
21
23
  WIDGET_TYPE2["AGE"] = "AGE";
22
24
  WIDGET_TYPE2["STATUS"] = "STATUS";
23
- WIDGET_TYPE2["NUMBER"] = "NUMBER";
24
25
  WIDGET_TYPE2["WEBSITE"] = "WEBSITE";
25
26
  WIDGET_TYPE2["IDCARD"] = "IDCARD";
26
27
  WIDGET_TYPE2["COUNTDOWN"] = "COUNTDOWN";
@@ -113,11 +114,18 @@ var EDITABLE_WIDGET_TYPE = /* @__PURE__ */ ((EDITABLE_WIDGET_TYPE2) => {
113
114
  EDITABLE_WIDGET_TYPE2["SELECT"] = "SELECT";
114
115
  EDITABLE_WIDGET_TYPE2["DATE"] = "DATE";
115
116
  EDITABLE_WIDGET_TYPE2["TIME"] = "TIME";
117
+ EDITABLE_WIDGET_TYPE2["NUMBER"] = "NUMBER";
116
118
  return EDITABLE_WIDGET_TYPE2;
117
119
  })(EDITABLE_WIDGET_TYPE || {});
120
+ const IhoTableEventNameTuple = [
121
+ "formChange",
122
+ "settingClick",
123
+ ...VxeEventListenerNameList.map(getEventName)
124
+ ];
118
125
  const InjectionIhoTableConfig = Symbol("injectionIhoTableConfig");
126
+ const InjectionIhoTableFieldList = Symbol("injectionIhoTableFieldList");
119
127
  const InjectionIhoTableEmits = Symbol("InjectionIhoTableEmits");
120
128
  const InjectionIhoTableUUID = Symbol("InjectionIhoTableUUID");
121
129
  const InjectionIhoTableHandler = Symbol("InjectionIhoTableHandler");
122
130
 
123
- export { EDITABLE_WIDGET_TYPE, HIGHEST_PRIORITY, IhoTableRowGroupSequence, InjectionIhoTableConfig, InjectionIhoTableEmits, InjectionIhoTableHandler, InjectionIhoTableUUID, VxeEventListenerNameList, WIDGET_TYPE };
131
+ export { EDITABLE_WIDGET_TYPE, HIGHEST_PRIORITY, IhoTableEventNameTuple, IhoTableRowGroupSequence, InjectionIhoTableConfig, InjectionIhoTableEmits, InjectionIhoTableFieldList, InjectionIhoTableHandler, InjectionIhoTableUUID, VxeEventListenerNameList, WIDGET_TYPE };
@@ -0,0 +1,7 @@
1
+ export declare function useTableContext(): {
2
+ configRef: import("vue").Ref<import("../../../../shared/types").Nullable<import("../types").IhoTableConfig>> | undefined;
3
+ fieldListRef: import("vue").Ref<import("../../../../shared/types").Nullable<import("../types").IhoTableFieldItem[]>> | undefined;
4
+ tableHandler: import("../types").IhoTableHandler | undefined;
5
+ tableEmit: (<T extends "toggleRowExpand" | "toggleTreeExpand" | "copy" | "scroll" | "formChange" | "settingClick" | "cut" | "paste" | "keydown" | "keydownStart" | "keydownEnd" | "currentChange" | "radioChange" | "checkboxChange" | "checkboxAll" | "checkboxRangeStart" | "checkboxRangeChange" | "checkboxRangeEnd" | "cellClick" | "cellDblclick" | "cellMenu" | "cellMouseenter" | "cellMouseleave" | "headerCellClick" | "headerCellDblclick" | "headerCellMenu" | "footerCellClick" | "footerCellDblclick" | "footerCellMenu" | "sortChange" | "filterChange" | "filterVisible" | "resizableChange" | "menuClick" | "editClosed" | "editActived" | "editDisabled" | "validError" | "custom" | "openFnr" | "fnrChange" | "fnrFind" | "fnrFindAll" | "fnrReplace" | "fnrReplaceAll" | "cellAreaCopy" | "cellAreaCut" | "cellAreaPaste" | "cellAreaMerge" | "clearCellAreaMerge" | "headerCellAreaSelection" | "cellAreaSelectionStart" | "cellAreaSelectionDrag" | "cellAreaSelectionEnd" | "cellAreaExtensionStart" | "cellAreaExtensionDrag" | "cellAreaExtensionEnd" | "cellAreaArrowsStart" | "cellAreaArrowsEnd" | "activeCellChangeStart" | "activeCellChangeEnd">(event: T, ...args: import("../types").IhoTableEmitPayload<T>) => void) | undefined;
6
+ uuid: import("vue").Ref<string> | undefined;
7
+ };
@@ -0,0 +1,15 @@
1
+ import { getCurrentInstance, inject } from 'vue';
2
+ import { InjectionIhoTableConfig, InjectionIhoTableFieldList, InjectionIhoTableHandler, InjectionIhoTableUUID, InjectionIhoTableEmits } from '../constants/index.js';
3
+
4
+ function useTableContext() {
5
+ if (!getCurrentInstance())
6
+ throw new Error("useTableContext can only be used in setup environment");
7
+ const configRef = inject(InjectionIhoTableConfig);
8
+ const fieldListRef = inject(InjectionIhoTableFieldList);
9
+ const tableHandler = inject(InjectionIhoTableHandler);
10
+ const uuid = inject(InjectionIhoTableUUID);
11
+ const tableEmit = inject(InjectionIhoTableEmits);
12
+ return { configRef, fieldListRef, tableHandler, tableEmit, uuid };
13
+ }
14
+
15
+ export { useTableContext };
@@ -19,7 +19,11 @@ function defaultConfigPlugin() {
19
19
  mouseConfig: { selected: true },
20
20
  editConfig: {
21
21
  trigger: "click",
22
- mode: "cell"
22
+ mode: "cell",
23
+ autoClear: false,
24
+ activeMethod({ row }) {
25
+ return !row.$__SEPARATE;
26
+ }
23
27
  },
24
28
  keyboardConfig: { isArrow: true, isDel: true, isEnter: true, isTab: true, isEdit: true, isChecked: true }
25
29
  },
@@ -2,6 +2,7 @@ import * as index from './defaultConfigPlugin/index.js';
2
2
  import * as index$1 from './lowCodeFieldAdaptorPlugin/index.js';
3
3
  import * as index$2 from './rendererPlugins/editableWidgets/dateRendererPlugin/index.js';
4
4
  import * as inputRendererPlugin from './rendererPlugins/editableWidgets/inputRendererPlugin.js';
5
+ import * as numberRendererPlugin from './rendererPlugins/editableWidgets/numberRendererPlugin.js';
5
6
  import * as index$3 from './rendererPlugins/editableWidgets/selectRendererPlugin/index.js';
6
7
  import * as index$4 from './rendererPlugins/editableWidgets/separateRendererPlugin/index.js';
7
8
  import * as timeRendererPlugin from './rendererPlugins/editableWidgets/timeRendererPlugin.js';
@@ -20,6 +21,7 @@ const modules = Object.assign({
20
21
  "./lowCodeFieldAdaptorPlugin/index.ts": index$1,
21
22
  "./rendererPlugins/editableWidgets/dateRendererPlugin/index.tsx": index$2,
22
23
  "./rendererPlugins/editableWidgets/inputRendererPlugin.tsx": inputRendererPlugin,
24
+ "./rendererPlugins/editableWidgets/numberRendererPlugin.tsx": numberRendererPlugin,
23
25
  "./rendererPlugins/editableWidgets/selectRendererPlugin/index.tsx": index$3,
24
26
  "./rendererPlugins/editableWidgets/separateRendererPlugin/index.tsx": index$4,
25
27
  "./rendererPlugins/editableWidgets/timeRendererPlugin.tsx": timeRendererPlugin,
@@ -42,7 +42,7 @@ declare const _default: import("vue").DefineComponent<{
42
42
  "onUpdate:value"?: ((...args: any[]) => any) | undefined;
43
43
  }>>;
44
44
  emit: (event: "update:value", ...args: any[]) => void;
45
- globEmit: (event: string, ...args: unknown[]) => void;
45
+ globEmit: <T extends "toggleRowExpand" | "toggleTreeExpand" | "copy" | "scroll" | "formChange" | "settingClick" | "cut" | "paste" | "keydown" | "keydownStart" | "keydownEnd" | "currentChange" | "radioChange" | "checkboxChange" | "checkboxAll" | "checkboxRangeStart" | "checkboxRangeChange" | "checkboxRangeEnd" | "cellClick" | "cellDblclick" | "cellMenu" | "cellMouseenter" | "cellMouseleave" | "headerCellClick" | "headerCellDblclick" | "headerCellMenu" | "footerCellClick" | "footerCellDblclick" | "footerCellMenu" | "sortChange" | "filterChange" | "filterVisible" | "resizableChange" | "menuClick" | "editClosed" | "editActived" | "editDisabled" | "validError" | "custom" | "openFnr" | "fnrChange" | "fnrFind" | "fnrFindAll" | "fnrReplace" | "fnrReplaceAll" | "cellAreaCopy" | "cellAreaCut" | "cellAreaPaste" | "cellAreaMerge" | "clearCellAreaMerge" | "headerCellAreaSelection" | "cellAreaSelectionStart" | "cellAreaSelectionDrag" | "cellAreaSelectionEnd" | "cellAreaExtensionStart" | "cellAreaExtensionDrag" | "cellAreaExtensionEnd" | "cellAreaArrowsStart" | "cellAreaArrowsEnd" | "activeCellChangeStart" | "activeCellChangeEnd">(event: T, ...args: import("../../../../../../../../es/components/iho-table").IhoTableEmitPayload<T>) => void;
46
46
  formRef: import("vue").Ref<HTMLElement | null>;
47
47
  isShow: import("vue").Ref<boolean>;
48
48
  formattedValue: import("vue").Ref<string | undefined>;
@@ -0,0 +1 @@
1
+ export declare function numberRendererPlugin(): import("../../../../../../../es/components/iho-table").TablePlugin;
@@ -0,0 +1,62 @@
1
+ import { createVNode, inject, mergeProps } from 'vue';
2
+ import { NInputNumber } from 'naive-ui';
3
+ import '../../../../index.js';
4
+ import { EDITABLE_WIDGET_TYPE, InjectionIhoTableEmits } from '../../../constants/index.js';
5
+ import { defineTablePlugin } from '../../../hooks/useTablePlugin.js';
6
+
7
+ function numberRendererPlugin() {
8
+ const pluginName = "numberRendererPlugin";
9
+ return defineTablePlugin({
10
+ name: pluginName,
11
+ vxe(instance) {
12
+ instance.renderer.add(EDITABLE_WIDGET_TYPE.NUMBER, {
13
+ renderCell(renderOpts, {
14
+ row,
15
+ column
16
+ }) {
17
+ return [createVNode("span", null, [row[column.field]])];
18
+ },
19
+ renderEdit({
20
+ props
21
+ }, {
22
+ row,
23
+ column,
24
+ $rowIndex
25
+ }) {
26
+ const emit = inject(InjectionIhoTableEmits);
27
+ const {
28
+ placeholder = "\u8BF7\u8F93\u5165"
29
+ } = (props == null ? void 0 : props.componentProps) || {};
30
+ const config = {
31
+ ...(props == null ? void 0 : props.componentProps) || {},
32
+ clearable: true,
33
+ placeholder,
34
+ onBlur,
35
+ onUpdateValue
36
+ };
37
+ const common = {
38
+ value: row[column.field],
39
+ row,
40
+ column,
41
+ index: $rowIndex
42
+ };
43
+ function onBlur() {
44
+ emit("formChange", {
45
+ ...common,
46
+ type: "blur"
47
+ });
48
+ }
49
+ function onUpdateValue() {
50
+ emit("formChange", common);
51
+ }
52
+ return [createVNode(NInputNumber, mergeProps({
53
+ "value": row[column.field],
54
+ "onUpdate:value": ($event) => row[column.field] = $event
55
+ }, config), null)];
56
+ }
57
+ });
58
+ }
59
+ });
60
+ }
61
+
62
+ export { numberRendererPlugin };
@@ -42,7 +42,7 @@ var EditSelect = defineComponent({
42
42
  });
43
43
  }
44
44
  return () => createVNode(NSelect, mergeProps({
45
- "ref": formRef,
45
+ "ref": "formRef",
46
46
  "show": isShow.value,
47
47
  "onUpdate:show": ($event) => isShow.value = $event
48
48
  }, attrs, {
@@ -49,7 +49,7 @@ declare const _default: import("vue").DefineComponent<{
49
49
  }>> & {
50
50
  "onUpdate:value"?: ((...args: any[]) => any) | undefined;
51
51
  }>>;
52
- globEmit: (event: string, ...args: unknown[]) => void;
52
+ globEmit: <T extends "toggleRowExpand" | "toggleTreeExpand" | "copy" | "scroll" | "formChange" | "settingClick" | "cut" | "paste" | "keydown" | "keydownStart" | "keydownEnd" | "currentChange" | "radioChange" | "checkboxChange" | "checkboxAll" | "checkboxRangeStart" | "checkboxRangeChange" | "checkboxRangeEnd" | "cellClick" | "cellDblclick" | "cellMenu" | "cellMouseenter" | "cellMouseleave" | "headerCellClick" | "headerCellDblclick" | "headerCellMenu" | "footerCellClick" | "footerCellDblclick" | "footerCellMenu" | "sortChange" | "filterChange" | "filterVisible" | "resizableChange" | "menuClick" | "editClosed" | "editActived" | "editDisabled" | "validError" | "custom" | "openFnr" | "fnrChange" | "fnrFind" | "fnrFindAll" | "fnrReplace" | "fnrReplaceAll" | "cellAreaCopy" | "cellAreaCut" | "cellAreaPaste" | "cellAreaMerge" | "clearCellAreaMerge" | "headerCellAreaSelection" | "cellAreaSelectionStart" | "cellAreaSelectionDrag" | "cellAreaSelectionEnd" | "cellAreaExtensionStart" | "cellAreaExtensionDrag" | "cellAreaExtensionEnd" | "cellAreaArrowsStart" | "cellAreaArrowsEnd" | "activeCellChangeStart" | "activeCellChangeEnd">(event: T, ...args: import("../../../../../../../../es/components/iho-table").IhoTableEmitPayload<T>) => void;
53
53
  tableHandler: import("../../../../../../../../es/components/iho-table").IhoTableHandler;
54
54
  popoverRef: import("vue").Ref<any>;
55
55
  editContent: import("vue").Ref<any>;
@@ -24,29 +24,29 @@ function timeRendererPlugin() {
24
24
  $rowIndex
25
25
  }) {
26
26
  const emit = inject(InjectionIhoTableEmits);
27
- function onUpdateValue() {
28
- emit("formChange", {
29
- value: row[column.field],
30
- row,
31
- column,
32
- index: $rowIndex
33
- });
34
- }
35
27
  const {
36
28
  placeholder = "\u8BF7\u9009\u62E9",
37
29
  valueFormat = "HH:mm"
38
30
  } = (props == null ? void 0 : props.componentProps) || {};
39
- const timeConfig = {
31
+ const config = {
32
+ ...(props == null ? void 0 : props.componentProps) || {},
40
33
  placeholder,
41
34
  valueFormat,
42
35
  format: valueFormat || "yyyy-MM-dd HH:mm:ss",
43
- ...(props == null ? void 0 : props.componentProps) || {},
44
36
  onUpdateFormattedValue: onUpdateValue
45
37
  };
38
+ function onUpdateValue() {
39
+ emit("formChange", {
40
+ value: row[column.field],
41
+ row,
42
+ column,
43
+ index: $rowIndex
44
+ });
45
+ }
46
46
  return [createVNode(NTimePicker, mergeProps({
47
47
  "formattedValue": row[column.field],
48
48
  "onUpdate:formattedValue": ($event) => row[column.field] = $event
49
- }, timeConfig), null)];
49
+ }, config), null)];
50
50
  }
51
51
  });
52
52
  }
@@ -1,6 +1,7 @@
1
1
  import { AnyObject } from '../../../../../es/shared/types';
2
2
  import { VxeTableProps, VxeTableDefines } from 'vxe-table';
3
- import { IhoTableRowGroupSequence } from '../../../../../es/components/iho-table/src/constants';
3
+ import { VxeTableEventProps } from 'vxe-table/types/table';
4
+ import { IhoTableEventNameTuple, IhoTableRowGroupSequence } from '../../../../../es/components/iho-table/src/constants';
4
5
  export * from './pluginType';
5
6
  export interface IhoTableRowGroupItem {
6
7
  groupName: string;
@@ -40,10 +41,13 @@ export declare type LowCodeTableFieldItem = {
40
41
  treeNode: boolean;
41
42
  }>;
42
43
  export declare type IhoFormChangePayload = {
43
- column: VxeTableDefines.ColumnInfo;
44
+ column: IhoTableFieldItem;
44
45
  row: AnyObject;
45
46
  value: unknown;
46
47
  index: number;
48
+ type?: string;
47
49
  };
48
50
  export declare type EventListenerToEventName<T extends string> = T extends `on${infer R}` ? R extends `${infer F}${infer L}` ? `${Lowercase<F>}${L}` : never : never;
51
+ export declare type EventNameToEventListener<T extends string> = T extends `${infer L}${infer R}` ? `on${Uppercase<L>}${R}` : never;
49
52
  export declare type IhoTableHandler = Record<'updateConfigRef' | 'updateFieldListRef' | 'updateTableDataRef', () => void>;
53
+ export declare type IhoTableEmitPayload<T extends typeof IhoTableEventNameTuple[number]> = T extends 'formChange' ? [IhoFormChangePayload] : T extends 'settingClick' ? [] : Parameters<NonNullable<VxeTableEventProps[EventNameToEventListener<Exclude<T, 'formChange' | 'settingClick'>>]>>;
@@ -55,6 +55,10 @@ export { useAnchor } from './form-render/src/hooks/useAnchor.js';
55
55
  export { useAutographOptions } from './form-render/src/hooks/useAutographOptions.js';
56
56
  export { useFormContext } from './form-render/src/hooks/useFormContext.js';
57
57
  export { useCommonInjection, useSelectOptionProps } from './form-render/src/hooks/useCommonInjection.js';
58
+ export { businessDateParser, isIdCard, isMobile, parseAge2Birthday, parseAge2FromContext, parseBirthday, parseIdCard, transformDateFormat } from './form-render/src/utils/business.js';
59
+ export { queryDecorator, queryInput } from './form-render/src/utils/dom.js';
60
+ export { assignClearBindVisited, assignUpdateValue, assignValueBindKey, createLinebarId, createObjSchema, dotEscape, fieldKeyEscape, getParentLinebar, traverseDependKey, traverseSchema, visitedDecorator } from './form-render/src/utils/schema.js';
61
+ export { combineExtendKey, createInputSlot, createSlot, formRenderLog, injectOrProvide, mergeDeepProperties, optionMatcher, parseNumberFromMaybeString, presetRequestHandler, splitExtendKey, validateMessageParser } from './form-render/src/utils/index.js';
58
62
  export * from '@formily/core';
59
63
  export { GlobalShortcutProvider, ShortcutManager, useShortcuts } from './shortcut-provider/src/hooks/useShortcuts.js';
60
64
  export { useShortcutSignature } from './shortcut-provider/src/hooks/useShortcutSignature.js';