cnhis-design-vue 3.1.27-beta.4 → 3.1.27

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 (75) hide show
  1. package/README.md +123 -123
  2. package/es/components/bpmn-workflow/src/BpmnWorkflow.d.ts +0 -0
  3. package/es/components/bpmn-workflow/types/BpmnViewer.d.ts +1 -0
  4. package/es/components/bpmn-workflow/types/ModelingModule.d.ts +1 -0
  5. package/es/components/bpmn-workflow/types/MoveCanvasModule.d.ts +1 -0
  6. package/es/components/fabric-chart/src/utils/index.d.ts +6823 -0
  7. package/es/components/form-config/index.d.ts +34 -2
  8. package/es/components/form-config/src/FormConfig.vue.d.ts +34 -2
  9. package/es/components/form-config/src/components/FormConfigCreator.js +1 -1
  10. package/es/components/form-config/src/components/FormConfigCreator.vue.d.ts +15 -1
  11. package/es/components/form-config/src/components/FormConfigEdit.vue.d.ts +17 -1
  12. package/es/components/form-config/src/hooks/useConfigurationField.d.ts +2 -1
  13. package/es/components/form-config/src/hooks/useConfigurationField.js +28 -12
  14. package/es/components/form-config/src/types/index.d.ts +1 -0
  15. package/es/components/form-render/index.d.ts +15 -1
  16. package/es/components/form-render/index.js +2 -2
  17. package/es/components/form-render/src/FormRender.js +40 -17
  18. package/es/components/form-render/src/FormRender.vue.d.ts +15 -1
  19. package/es/components/form-render/src/FormRenderWrapper.vue.d.ts +15 -1
  20. package/es/components/form-render/src/components/renderer/formItem.d.ts +4 -0
  21. package/es/components/form-render/src/components/renderer/formItem.js +14 -9
  22. package/es/components/form-render/src/components/renderer/levelSearchCascade.js +2 -2
  23. package/es/components/form-render/src/components/renderer/searchCascade.js +2 -2
  24. package/es/components/form-render/src/components/renderer/select.js +2 -2
  25. package/es/components/form-render/src/constants/index.d.ts +2 -1
  26. package/es/components/form-render/src/constants/index.js +3 -2
  27. package/es/components/form-render/src/hooks/useAutographOptions.js +2 -2
  28. package/es/components/form-render/src/hooks/useFormContext.js +2 -2
  29. package/es/components/form-render/src/utils/dom.d.ts +2 -1
  30. package/es/components/form-render/src/utils/dom.js +18 -1
  31. package/es/components/form-render/src/utils/index.d.ts +3 -0
  32. package/es/components/form-render/src/utils/index.js +10 -3
  33. package/es/components/index.css +1 -1
  34. package/es/components/index.js +2 -2
  35. package/es/components/scale-view/src/components/formitem/standard-modal.d.ts +2 -2
  36. package/es/components/scale-view/src/hooks/use-component.d.ts +3 -3
  37. package/es/components/search-cascader/index.d.ts +1 -1
  38. package/es/components/search-cascader/src/SearchCascader.vue.d.ts +1 -1
  39. package/es/components/select-label/index.d.ts +5 -5
  40. package/es/components/select-label/src/LabelFormContent.vue.d.ts +2 -2
  41. package/es/components/select-label/src/SelectLabel.vue.d.ts +3 -3
  42. package/es/components/select-person/index.d.ts +69 -326
  43. package/es/components/select-person/src/SelectPerson.vue.d.ts +69 -328
  44. package/es/components/select-person/src/SelectPerson.vue_vue_type_script_setup_true_lang.js +185 -884
  45. package/es/components/select-person/src/utils/index.d.ts +2 -12
  46. package/es/components/select-person/src/utils/index.js +39 -79
  47. package/es/components/select-person/style/index.css +1 -1
  48. package/es/components/shortcut-provider/src/hooks/useShortcuts.js +2 -1
  49. package/es/components/shortcut-provider/src/utils/index.d.ts +0 -1
  50. package/es/components/shortcut-provider/src/utils/index.js +1 -12
  51. package/es/components/shortcut-setter/index.d.ts +15 -1
  52. package/es/components/shortcut-setter/src/ShortcutSetter.vue.d.ts +15 -1
  53. package/es/components/steps-wheel/src/StepsWheel.js +19 -20
  54. package/es/components/steps-wheel/style/index.css +1 -1
  55. package/es/shared/assets/img/failure.js +1 -1
  56. package/es/shared/assets/img/icon-asc.js +1 -1
  57. package/es/shared/assets/img/icon-desc.js +1 -1
  58. package/es/shared/assets/img/no-permission.js +1 -1
  59. package/es/shared/assets/img/nodata.js +1 -1
  60. package/es/shared/assets/img/notfound.js +1 -1
  61. package/es/shared/assets/img/qr.js +1 -1
  62. package/es/shared/assets/img/success.js +1 -1
  63. package/es/shared/assets/img/video.js +1 -1
  64. package/es/shared/assets/img/video_default_cover.js +1 -1
  65. package/es/shared/assets/img/video_hover.js +1 -1
  66. package/es/shared/assets/img/video_play_hover.js +1 -1
  67. package/es/shared/assets/img/xb_big.js +1 -1
  68. package/es/shared/assets/img/xb_small.js +1 -1
  69. package/es/shared/components/VueDraggable/src/vuedraggable.d.ts +86 -0
  70. package/es/shared/utils/index.d.ts +1 -0
  71. package/es/shared/utils/index.js +12 -1
  72. package/es/shared/utils/tapable/index.d.ts +139 -0
  73. package/package.json +65 -65
  74. package/es/components/select-person/src/SearchTree.js +0 -6
  75. package/es/components/select-person/src/SearchTree.vue_vue_type_script_setup_true_lang.js +0 -233
@@ -1,11 +1,12 @@
1
- import { defineComponent, ref, computed, watch, openBlock, createBlock, unref, withCtx, createElementBlock, createVNode, isRef, Fragment, renderList, createCommentVNode, createElementVNode, normalizeStyle, toDisplayString, nextTick } from 'vue';
2
- import { arrayed } from '../../../shared/utils/index.js';
1
+ import { defineComponent, ref, computed, watch, openBlock, createBlock, unref, withCtx, createElementBlock, createVNode, isRef, Fragment, renderList, createCommentVNode, createElementVNode, normalizeStyle, withKeys, withModifiers, toDisplayString, nextTick } from 'vue';
2
+ import { arrayed, findAncestor } from '../../../shared/utils/index.js';
3
3
  import { createForm, onFieldValueChange, isField } from '@formily/core';
4
+ import { Path } from '@formily/path';
4
5
  import { FormProvider, FormConsumer } from '@formily/vue';
5
6
  import { isObject } from '@vue/shared';
6
7
  import { cloneDeep, isArray } from 'lodash-es';
7
8
  import { NForm, NTabs, NTabPane, NConfigProvider } from 'naive-ui';
8
- import { FormItemLineBarDepKeyPrepend } from './constants/index.js';
9
+ import { NESTED_FORM_ITEM_TYPE, FormItemLineBarDepKeyPrepend } from './constants/index.js';
9
10
  import { useFormRenderLifeCycle } from './hooks/useFormRenderLifeCycle.js';
10
11
  import { useNuiThemeOverrides } from './hooks/useNuiThemeOverrides.js';
11
12
  import { validateMessageParser, combineExtendKey, splitExtendKey } from './utils/index.js';
@@ -27,14 +28,15 @@ import '@vueuse/core';
27
28
  import { useAnchor } from './hooks/useAnchor.js';
28
29
  import { useFormContext } from './hooks/useFormContext.js';
29
30
  import _export_sfc from '../../../_virtual/plugin-vue_export-helper.js';
30
- import { queryDecorator, queryInput } from './utils/dom.js';
31
+ import { queryDecorator, queryInput, findNextWidget } from './utils/dom.js';
31
32
  import { createObjSchema, getParentLinebar } from './utils/schema.js';
32
33
 
33
34
  const _hoisted_1 = {
34
35
  key: 0,
35
36
  style: { "height": "54px" }
36
37
  };
37
- const _hoisted_2 = { style: { "white-space": "pre" } };
38
+ const _hoisted_2 = ["onKeydownCapture"];
39
+ const _hoisted_3 = { style: { "white-space": "pre" } };
38
40
  const _sfc_main = /* @__PURE__ */ defineComponent({
39
41
  __name: "FormRender",
40
42
  props: {
@@ -56,7 +58,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
56
58
  consumer: { type: Boolean, default: false },
57
59
  uuid: { type: String },
58
60
  lifeCycle: { type: Object },
59
- requestInstance: { type: Object }
61
+ requestInstance: { type: Object },
62
+ enterToNextWidget: { type: Boolean, default: true }
60
63
  },
61
64
  emits: [
62
65
  "formChange"
@@ -87,7 +90,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
87
90
  props,
88
91
  formModel
89
92
  );
90
- const scrollbarRef = ref();
93
+ const formRenderRef = ref();
91
94
  const { schemaAdaptor } = useFieldListAdaptor(businessCollector);
92
95
  let _fieldList = props.fieldList || [];
93
96
  const parsedSchema = computed(() => {
@@ -102,12 +105,31 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
102
105
  });
103
106
  const { currentAnchor, generateAnchorList, anchorIdList, formHeight, onScroll } = useAnchor(
104
107
  props,
105
- scrollbarRef,
108
+ formRenderRef,
106
109
  formItemDepsCollector
107
110
  );
108
111
  watch(parsedSchema, generateAnchorList, { immediate: true });
112
+ function onKeydown(event) {
113
+ if (!props.enterToNextWidget || !formRenderRef.value)
114
+ return;
115
+ const ancestorFormItem = findAncestor(
116
+ event.target,
117
+ (ele) => ele.classList.contains("form-render__formItem")
118
+ );
119
+ if (!ancestorFormItem)
120
+ return;
121
+ const selector = `.form-render__formItem${NESTED_FORM_ITEM_TYPE.map((type) => `:not([widget-type=${type}])`).join("")}`;
122
+ const formItemElements = Array.from(formRenderRef.value.querySelectorAll(selector));
123
+ const formItemIndex = formItemElements.findIndex((ele) => ele.id === ancestorFormItem.id);
124
+ if (!~formItemIndex)
125
+ return;
126
+ const nextWidget = findNextWidget(formItemElements, formItemIndex, event.target);
127
+ if (!nextWidget)
128
+ return;
129
+ setTimeout(() => nextWidget.focus());
130
+ }
109
131
  async function queryWidget(key, wrapperElement, fieldList) {
110
- if (!scrollbarRef.value)
132
+ if (!formRenderRef.value)
111
133
  return createResult();
112
134
  const decoratorElement = queryDecorator(key, wrapperElement, formUUID);
113
135
  if (decoratorElement)
@@ -150,7 +172,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
150
172
  const messages = info.messages.map(
151
173
  (message) => errMessageNormalize(message, pattern.get("decoratorProps"))
152
174
  );
153
- const decoratorElement = queryDecorator(info.path, scrollbarRef.value, formUUID);
175
+ const decoratorElement = queryDecorator(info.path, formRenderRef.value, formUUID);
154
176
  return { ...info, messages, title, decoratorElement, ...queryInput(info.decoratorElement) };
155
177
  }
156
178
  function errMessageNormalize(message, decoratorProps) {
@@ -172,7 +194,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
172
194
  formModel.setFieldState("*", (state) => {
173
195
  if (!isField(state))
174
196
  return;
175
- state.value = values[state.path.toString()];
197
+ state.value = Path.getIn(values, state.path);
176
198
  });
177
199
  },
178
200
  setFieldState(path, handler) {
@@ -182,7 +204,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
182
204
  formModel.reset(path);
183
205
  },
184
206
  async queryWidget(key) {
185
- return scrollbarRef.value ? await queryWidget(key, scrollbarRef.value, _fieldList) : null;
207
+ return formRenderRef.value ? await queryWidget(key, formRenderRef.value, _fieldList) : null;
186
208
  },
187
209
  async reload() {
188
210
  console.error("reload function is abstract,it should be overwrite!");
@@ -217,23 +239,24 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
217
239
  createElementVNode("section", {
218
240
  class: "form-render__wrapper",
219
241
  style: normalizeStyle({ "--column": __props.column, "--form-height": unref(formHeight) }),
220
- ref_key: "scrollbarRef",
221
- ref: scrollbarRef,
222
- onScroll: _cache[1] || (_cache[1] = (...args) => unref(onScroll) && unref(onScroll)(...args))
242
+ ref_key: "formRenderRef",
243
+ ref: formRenderRef,
244
+ onScroll: _cache[1] || (_cache[1] = (...args) => unref(onScroll) && unref(onScroll)(...args)),
245
+ onKeydownCapture: withKeys(withModifiers(onKeydown, ["prevent"]), ["enter"])
223
246
  }, [
224
247
  createVNode(unref(FormProvider), { form: unref(formModel) }, {
225
248
  default: withCtx(() => [
226
249
  createVNode(unref(SchemaField), { schema: unref(parsedSchema) }, null, 8, ["schema"]),
227
250
  __props.consumer ? (openBlock(), createBlock(unref(FormConsumer), { key: 0 }, {
228
251
  default: withCtx(({ form }) => [
229
- createElementVNode("div", _hoisted_2, toDisplayString(JSON.stringify(form.values, null, 2)), 1)
252
+ createElementVNode("div", _hoisted_3, toDisplayString(JSON.stringify(form.values, null, 2)), 1)
230
253
  ]),
231
254
  _: 1
232
255
  })) : createCommentVNode("v-if", true)
233
256
  ]),
234
257
  _: 1
235
258
  }, 8, ["form"])
236
- ], 36)
259
+ ], 44, _hoisted_2)
237
260
  ]),
238
261
  _: 1
239
262
  }, 8, ["theme-overrides"])
@@ -119,6 +119,10 @@ declare const _default: import("vue").DefineComponent<{
119
119
  requestInstance: {
120
120
  type: PropType<RequestInstance>;
121
121
  };
122
+ enterToNextWidget: {
123
+ type: BooleanConstructor;
124
+ default: boolean;
125
+ };
122
126
  }, {
123
127
  props: Readonly<import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
124
128
  fieldList: {
@@ -237,6 +241,10 @@ declare const _default: import("vue").DefineComponent<{
237
241
  requestInstance: {
238
242
  type: PropType<RequestInstance>;
239
243
  };
244
+ enterToNextWidget: {
245
+ type: BooleanConstructor;
246
+ default: boolean;
247
+ };
240
248
  }>> & {
241
249
  onFormChange?: ((...args: any[]) => any) | undefined;
242
250
  }>>;
@@ -250,7 +258,7 @@ declare const _default: import("vue").DefineComponent<{
250
258
  formItemDepsCollector: import("./hooks").FormItemDepsCollector;
251
259
  changeContextCollector: import("./hooks").ContextCollector;
252
260
  formUUID: string;
253
- scrollbarRef: import("vue").Ref<HTMLElement | undefined>;
261
+ formRenderRef: import("vue").Ref<HTMLElement | undefined>;
254
262
  schemaAdaptor: (fieldList: FieldItem[]) => Record<string, import("@formily/vue").Stringify<{
255
263
  [key: symbol]: any;
256
264
  [key: `x-${string}`]: any;
@@ -430,6 +438,7 @@ declare const _default: import("vue").DefineComponent<{
430
438
  }[]>;
431
439
  formHeight: import("vue").ComputedRef<string | undefined>;
432
440
  onScroll: () => void;
441
+ onKeydown: (event: KeyboardEvent) => void;
433
442
  queryWidget: (key: string, wrapperElement: HTMLElement, fieldList: FieldItem[]) => Promise<{
434
443
  widgetElement: HTMLInputElement | null | undefined;
435
444
  widgetElementList: HTMLInputElement[];
@@ -610,6 +619,10 @@ declare const _default: import("vue").DefineComponent<{
610
619
  requestInstance: {
611
620
  type: PropType<RequestInstance>;
612
621
  };
622
+ enterToNextWidget: {
623
+ type: BooleanConstructor;
624
+ default: boolean;
625
+ };
613
626
  }>> & {
614
627
  onFormChange?: ((...args: any[]) => any) | undefined;
615
628
  }, {
@@ -621,5 +634,6 @@ declare const _default: import("vue").DefineComponent<{
621
634
  parallelism: number;
622
635
  scope: AnyObject;
623
636
  consumer: boolean;
637
+ enterToNextWidget: boolean;
624
638
  }>;
625
639
  export default _default;
@@ -122,6 +122,10 @@ declare const _default: import("vue").DefineComponent<{}, {
122
122
  requestInstance: {
123
123
  type: import("vue").PropType<import("../../../../es/components/form-render").RequestInstance>;
124
124
  };
125
+ enterToNextWidget: {
126
+ type: BooleanConstructor;
127
+ default: boolean;
128
+ };
125
129
  }, {
126
130
  props: Readonly<import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
127
131
  fieldList: {
@@ -240,6 +244,10 @@ declare const _default: import("vue").DefineComponent<{}, {
240
244
  requestInstance: {
241
245
  type: import("vue").PropType<import("../../../../es/components/form-render").RequestInstance>;
242
246
  };
247
+ enterToNextWidget: {
248
+ type: BooleanConstructor;
249
+ default: boolean;
250
+ };
243
251
  }>> & {
244
252
  onFormChange?: ((...args: any[]) => any) | undefined;
245
253
  }>>;
@@ -253,7 +261,7 @@ declare const _default: import("vue").DefineComponent<{}, {
253
261
  formItemDepsCollector: import("../../../../es/components/form-render").FormItemDepsCollector;
254
262
  changeContextCollector: import("../../../../es/components/form-render").ContextCollector;
255
263
  formUUID: string;
256
- scrollbarRef: import("vue").Ref<HTMLElement | undefined>;
264
+ formRenderRef: import("vue").Ref<HTMLElement | undefined>;
257
265
  schemaAdaptor: (fieldList: import("../../../../es/components/form-render").FieldItem[]) => Record<string, import("@formily/json-schema").Stringify<{
258
266
  [key: symbol]: any;
259
267
  [key: `x-${string}`]: any;
@@ -433,6 +441,7 @@ declare const _default: import("vue").DefineComponent<{}, {
433
441
  }[]>;
434
442
  formHeight: import("vue").ComputedRef<string | undefined>;
435
443
  onScroll: () => void;
444
+ onKeydown: (event: KeyboardEvent) => void;
436
445
  queryWidget: (key: string, wrapperElement: HTMLElement, fieldList: import("../../../../es/components/form-render").FieldItem[]) => Promise<{
437
446
  widgetElement: HTMLInputElement | null | undefined;
438
447
  widgetElementList: HTMLInputElement[];
@@ -613,6 +622,10 @@ declare const _default: import("vue").DefineComponent<{}, {
613
622
  requestInstance: {
614
623
  type: import("vue").PropType<import("../../../../es/components/form-render").RequestInstance>;
615
624
  };
625
+ enterToNextWidget: {
626
+ type: BooleanConstructor;
627
+ default: boolean;
628
+ };
616
629
  }>> & {
617
630
  onFormChange?: ((...args: any[]) => any) | undefined;
618
631
  }, {
@@ -624,6 +637,7 @@ declare const _default: import("vue").DefineComponent<{}, {
624
637
  parallelism: number;
625
638
  scope: import("../../../shared/types").AnyObject;
626
639
  consumer: boolean;
640
+ enterToNextWidget: boolean;
627
641
  }>;
628
642
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
629
643
  export default _default;
@@ -1,9 +1,13 @@
1
1
  export declare const FORM_ITEM: import("vue").DefineComponent<{
2
2
  label: StringConstructor;
3
3
  propertyKey: StringConstructor;
4
+ span: NumberConstructor;
4
5
  annotation: {};
6
+ fieldItem: {};
5
7
  }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
6
8
  label: StringConstructor;
7
9
  propertyKey: StringConstructor;
10
+ span: NumberConstructor;
8
11
  annotation: {};
12
+ fieldItem: {};
9
13
  }>>, {}>;
@@ -1,18 +1,21 @@
1
- import { defineComponent, inject, computed, createVNode } from 'vue';
1
+ import { defineComponent, inject, computed, createVNode, mergeProps } from 'vue';
2
2
  import { isVoidField } from '@formily/core';
3
3
  import { useField, connect, mapProps } from '@formily/vue';
4
4
  import { isString } from 'lodash-es';
5
5
  import { NFormItem } from 'naive-ui';
6
6
  import Annotation from '../../../../annotation-edit/index.js';
7
+ import '../../../index.js';
7
8
  import { InjectionAnnotation, InjectionFormUUID } from '../../constants/index.js';
8
- import { validateMessageParser } from '../../utils/index.js';
9
9
  import { dotEscape } from '../../utils/schema.js';
10
+ import { validateMessageParser } from '../../utils/index.js';
10
11
 
11
12
  const script = defineComponent({
12
13
  props: {
13
14
  label: String,
14
15
  propertyKey: String,
15
- annotation: {}
16
+ span: Number,
17
+ annotation: {},
18
+ fieldItem: {}
16
19
  },
17
20
  setup(props, {
18
21
  slots
@@ -55,9 +58,15 @@ const script = defineComponent({
55
58
  }]
56
59
  }, [props.label]), showAnnotation.value ? renderAnnotation() : null]) : null;
57
60
  }
58
- return () => createVNode(NFormItem, {
59
- id: id.value
61
+ return () => createVNode(NFormItem, mergeProps({
62
+ "class": "form-render__formItem",
63
+ "style": {
64
+ "--form-item-column": props.span
65
+ }
60
66
  }, {
67
+ id: id.value,
68
+ "widget-type": field.value.componentType
69
+ }), {
61
70
  ...slots,
62
71
  label: renderLabel
63
72
  });
@@ -71,10 +80,6 @@ const FORM_ITEM = connect(script, mapProps({
71
80
  ...props,
72
81
  fieldItem: void 0,
73
82
  required: isVoidField(field) ? void 0 : field.required,
74
- class: "form-render__formItem",
75
- style: {
76
- "--form-item-column": props.span
77
- },
78
83
  feedback,
79
84
  "validation-status": feedback ? "error" : void 0
80
85
  };
@@ -1,7 +1,7 @@
1
1
  import { defineComponent, computed, ref, inject, watch, createVNode } from 'vue';
2
2
  import { isEqual, isString, isEmpty, isFunction, omit } from 'lodash-es';
3
3
  import '../../../index.js';
4
- import { InjectAsyncQueue } from '../../constants/index.js';
4
+ import { InjectionAsyncQueue } from '../../constants/index.js';
5
5
  import { useCommonInjection } from '../../hooks/useCommonInjection.js';
6
6
  import { formRenderLog } from '../../utils/index.js';
7
7
  import { connect, mapProps } from '@formily/vue';
@@ -68,7 +68,7 @@ const script = defineComponent({
68
68
  var _a;
69
69
  return ((_a = props.wordbook) == null ? void 0 : _a.level_num) || Infinity;
70
70
  });
71
- const asyncQueue = inject(InjectAsyncQueue);
71
+ const asyncQueue = inject(InjectionAsyncQueue);
72
72
  const {
73
73
  getSearchRequestInfo
74
74
  } = useFormRequest();
@@ -2,7 +2,7 @@ import { defineComponent, ref, computed, inject, watch, createVNode, nextTick }
2
2
  import { isField } from '@formily/core';
3
3
  import { isEqual, isArray } from 'lodash-es';
4
4
  import { useCommonInjection } from '../../hooks/useCommonInjection.js';
5
- import { InjectAsyncQueue, InjectionFormUUID } from '../../constants/index.js';
5
+ import { InjectionAsyncQueue, InjectionFormUUID } from '../../constants/index.js';
6
6
  import '../../../../../shared/utils/index.js';
7
7
  import '../../../index.js';
8
8
  import '../../utils/index.js';
@@ -91,7 +91,7 @@ const script = defineComponent({
91
91
  };
92
92
  }
93
93
  }
94
- const asyncQueue = inject(InjectAsyncQueue);
94
+ const asyncQueue = inject(InjectionAsyncQueue);
95
95
  async function fetchData(option) {
96
96
  props.filterable ? await fetchFullData() : await fetchGradeData(option);
97
97
  await syncPosition();
@@ -3,7 +3,7 @@ import { isField } from '@formily/core';
3
3
  import { useDebounceFn } from '@vueuse/core';
4
4
  import { isString, cloneDeep, isEqual } from 'lodash-es';
5
5
  import { useCommonInjection, useSelectOptionProps } from '../../hooks/useCommonInjection.js';
6
- import { InjectAsyncQueue, InjectionChangeContextCollector, InjectionFormItemDepsCollector } from '../../constants/index.js';
6
+ import { InjectionAsyncQueue, InjectionChangeContextCollector, InjectionFormItemDepsCollector } from '../../constants/index.js';
7
7
  import '../../../../../shared/utils/index.js';
8
8
  import '../../../index.js';
9
9
  import { formRenderLog, optionMatcher } from '../../utils/index.js';
@@ -74,7 +74,7 @@ const script = defineComponent({
74
74
  field,
75
75
  fieldKey
76
76
  } = useFormField();
77
- const asyncQueue = inject(InjectAsyncQueue);
77
+ const asyncQueue = inject(InjectionAsyncQueue);
78
78
  const fetchData = useDebounceFn(async function(content) {
79
79
  lastSearch.value = content || "";
80
80
  if (!configFor(props)) {
@@ -3,7 +3,7 @@ import { ContextCollector } from '../../../../../es/components/form-render/src/h
3
3
  import { BusinessCollector, FormItemDepsCollector } from '../hooks';
4
4
  import { FormAsyncQueue } from '../types';
5
5
  import { Component, InjectionKey, WritableComputedRef } from 'vue';
6
- export declare const InjectAsyncQueue: InjectionKey<FormAsyncQueue>;
6
+ export declare const InjectionAsyncQueue: InjectionKey<FormAsyncQueue>;
7
7
  export declare const InjectionSchemaField: InjectionKey<Component>;
8
8
  export declare const InjectionBusinessCollector: InjectionKey<BusinessCollector>;
9
9
  export declare const InjectionChangeContextCollector: InjectionKey<ContextCollector>;
@@ -39,3 +39,4 @@ export declare enum FIELD_AGE_UNIT {
39
39
  WEEK = "W",
40
40
  MINUTE = "N"
41
41
  }
42
+ export declare const NESTED_FORM_ITEM_TYPE: string[];
@@ -1,4 +1,4 @@
1
- const InjectAsyncQueue = Symbol("InjectAsyncQueue");
1
+ const InjectionAsyncQueue = Symbol("InjectionAsyncQueue");
2
2
  const InjectionSchemaField = Symbol("InjectionSchemaField");
3
3
  const InjectionBusinessCollector = Symbol("InjectionBusinessCollector");
4
4
  const InjectionChangeContextCollector = Symbol(
@@ -41,5 +41,6 @@ var FIELD_AGE_UNIT = /* @__PURE__ */ ((FIELD_AGE_UNIT2) => {
41
41
  FIELD_AGE_UNIT2["MINUTE"] = "N";
42
42
  return FIELD_AGE_UNIT2;
43
43
  })(FIELD_AGE_UNIT || {});
44
+ const NESTED_FORM_ITEM_TYPE = ["COMPLEX", "COMBINATION"];
44
45
 
45
- export { FIELD_AGE_UNIT, FIELD_BUSINESS_TYPE, FIELD_SEX_VALUE, FormItemLineBarDepKeyPrepend, InjectAsyncQueue, InjectionAnnotation, InjectionBusinessCollector, InjectionChangeContextCollector, InjectionFormItemDepsCollector, InjectionFormUUID, InjectionSchemaField };
46
+ export { FIELD_AGE_UNIT, FIELD_BUSINESS_TYPE, FIELD_SEX_VALUE, FormItemLineBarDepKeyPrepend, InjectionAnnotation, InjectionAsyncQueue, InjectionBusinessCollector, InjectionChangeContextCollector, InjectionFormItemDepsCollector, InjectionFormUUID, InjectionSchemaField, NESTED_FORM_ITEM_TYPE };
@@ -2,7 +2,7 @@ import { useDebounceFn } from '@vueuse/core';
2
2
  import { isString, isEqual } from 'lodash-es';
3
3
  import { getCurrentInstance, inject, computed, ref, watch } from 'vue';
4
4
  import '../../index.js';
5
- import { InjectAsyncQueue } from '../constants/index.js';
5
+ import { InjectionAsyncQueue } from '../constants/index.js';
6
6
  import { formRenderLog, optionMatcher } from '../utils/index.js';
7
7
  import { useFormField } from './useFormField.js';
8
8
  import { useFormRequest } from './useFormRequest.js';
@@ -10,7 +10,7 @@ import { useFormRequest } from './useFormRequest.js';
10
10
  function useAutographOptions(props, valueRef) {
11
11
  if (!getCurrentInstance())
12
12
  throw new Error("can't use this hook out of setup environment");
13
- const asyncQueue = inject(InjectAsyncQueue);
13
+ const asyncQueue = inject(InjectionAsyncQueue);
14
14
  const labelKey = computed(() => {
15
15
  var _a, _b, _c;
16
16
  return (_c = (_b = (_a = props.wordbook) == null ? void 0 : _a.render_key) == null ? void 0 : _b[0]) != null ? _c : "text";
@@ -8,7 +8,7 @@ import components from '../components/renderer/index.js';
8
8
  import { useFormRenderLifeCycle } from './useFormRenderLifeCycle.js';
9
9
  import { usePresetScope } from './usePresetScope.js';
10
10
  import { injectOrProvide, presetRequestHandler } from '../utils/index.js';
11
- import { InjectAsyncQueue, InjectionSchemaField, InjectionBusinessCollector, InjectionChangeContextCollector, InjectionFormItemDepsCollector, InjectionFormUUID, InjectionAnnotation } from '../constants/index.js';
11
+ import { InjectionAsyncQueue, InjectionSchemaField, InjectionBusinessCollector, InjectionChangeContextCollector, InjectionFormItemDepsCollector, InjectionFormUUID, InjectionAnnotation } from '../constants/index.js';
12
12
  import { useAsyncQueue } from './useAsyncQueue.js';
13
13
  import { useBusinessBinding } from './useBusinessBinding.js';
14
14
  import { useChangeContext } from './useChangeContext.js';
@@ -17,7 +17,7 @@ import { useFormItemDeps } from './useFormItemDeps.js';
17
17
  function useFormContext(props, formModel) {
18
18
  const { callLifeCycle } = useFormRenderLifeCycle(props);
19
19
  const asyncQueue = injectOrProvide(
20
- InjectAsyncQueue,
20
+ InjectionAsyncQueue,
21
21
  () => useAsyncQueue(computed(() => props.requestInstance)).create(props.parallelism, {
22
22
  beforeRequest(...args) {
23
23
  return callLifeCycle("beforeRequest", cloneDeep(args)) || args[1];
@@ -1,6 +1,7 @@
1
- import { Nullable } from '../../../../../es/shared/types';
1
+ import { Nullable, UndefinedAble } from '../../../../../es/shared/types';
2
2
  export declare function queryDecorator(key: string, wrapperElement: HTMLElement, formUUID: string): HTMLElement | null;
3
3
  export declare function queryInput(decoratorElement?: Nullable<HTMLElement>): {
4
4
  widgetElement: HTMLInputElement | null | undefined;
5
5
  widgetElementList: HTMLInputElement[];
6
6
  };
7
+ export declare function findNextWidget(containers: HTMLElement[], currentContainerIndex: number, currentWidget: HTMLElement): UndefinedAble<HTMLElement>;
@@ -10,5 +10,22 @@ function queryInput(decoratorElement) {
10
10
  widgetElementList: Array.from((_a = decoratorElement == null ? void 0 : decoratorElement.querySelectorAll("input")) != null ? _a : [])
11
11
  };
12
12
  }
13
+ function findNextWidget(containers, currentContainerIndex, currentWidget) {
14
+ const nextWidget = findInnerNextWidget(containers[currentContainerIndex], currentWidget);
15
+ if (nextWidget)
16
+ return nextWidget;
17
+ let result;
18
+ containers.slice(currentContainerIndex + 1).some((container) => {
19
+ return result = findInnerNextWidget(container);
20
+ });
21
+ return result;
22
+ function findInnerNextWidget(container, currentWidget2) {
23
+ const widgets = Array.from(container.querySelectorAll("textarea,input,[tabindex]"));
24
+ const widgetIndex = currentWidget2 ? widgets.findIndex((widget) => widget === currentWidget2) : -1;
25
+ return widgets.slice(widgetIndex + 1).find(
26
+ (widget) => !Reflect.get(widget, "disabled") && !Array.from(widget.classList).some((className) => className.endsWith("--disabled"))
27
+ );
28
+ }
29
+ }
13
30
 
14
- export { queryDecorator, queryInput };
31
+ export { findNextWidget, queryDecorator, queryInput };
@@ -1,4 +1,5 @@
1
1
  import { AnyObject, ArrayAble, Nullable } from '../../../../../es/shared/types';
2
+ import { GeneralField } from '@formily/core';
2
3
  import { FunctionalComponent, InjectionKey, VNode } from 'vue';
3
4
  import { FieldItem } from '../types';
4
5
  export * from './business';
@@ -19,3 +20,5 @@ export declare function optionMatcher(options: AnyObject[], input: Nullable<stri
19
20
  export declare function validateMessageParser(message: string, fieldItem: Omit<FieldItem, 'reactions'>): string;
20
21
  export declare function combineExtendKey(fieldList: FieldItem[], values: AnyObject): AnyObject;
21
22
  export declare function splitExtendKey(fieldList: FieldItem[], values: AnyObject): AnyObject;
23
+ export declare function isNestedType(type?: string): boolean | "" | undefined;
24
+ export declare function isNestedFieldType(field: FieldItem | GeneralField): boolean | "" | undefined;
@@ -1,11 +1,12 @@
1
1
  import { inject, provide, computed, createVNode, Fragment } from 'vue';
2
2
  import { arrayed } from '../../../../shared/utils/index.js';
3
+ import { isGeneralField } from '@formily/core';
3
4
  import { Path } from '@formily/path';
4
5
  import { isObject } from '@vue/shared';
5
6
  import { useMemoize } from '@vueuse/core';
6
7
  import { isString, isFunction, omit } from 'lodash-es';
8
+ import { NESTED_FORM_ITEM_TYPE } from '../constants/index.js';
7
9
  import 'date-fns';
8
- import '@formily/core';
9
10
 
10
11
  function formRenderLog(message) {
11
12
  console.warn(`[FormRender]: ${message}`);
@@ -136,7 +137,7 @@ function validateMessageParser(message, fieldItem) {
136
137
  function findExtendKeyField(fieldList) {
137
138
  return fieldList.reduce((result, field) => {
138
139
  isString(field.extendKey) && field.extendKey && result.push(field);
139
- if (field.html_type === "COMPLEX") {
140
+ if (isNestedFieldType(field)) {
140
141
  result.push(...findExtendKeyField(field.children || []));
141
142
  }
142
143
  return result;
@@ -190,5 +191,11 @@ function splitExtendKey(fieldList, values) {
190
191
  });
191
192
  return result;
192
193
  }
194
+ function isNestedType(type) {
195
+ return type && NESTED_FORM_ITEM_TYPE.includes(type);
196
+ }
197
+ function isNestedFieldType(field) {
198
+ return isNestedType(isGeneralField(field) ? field.componentType : field.html_type);
199
+ }
193
200
 
194
- export { combineExtendKey, createInputSlot, createSlot, formRenderLog, injectOrProvide, mergeDeepProperties, optionMatcher, parseNumberFromMaybeString, presetRequestHandler, splitExtendKey, validateMessageParser };
201
+ export { combineExtendKey, createInputSlot, createSlot, formRenderLog, injectOrProvide, isNestedFieldType, isNestedType, mergeDeepProperties, optionMatcher, parseNumberFromMaybeString, presetRequestHandler, splitExtendKey, validateMessageParser };