cnhis-design-vue 3.1.38-beta.6 → 3.1.38-beta.8

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 (69) 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 +217 -12
  8. package/es/components/form-config/src/FormConfig.vue.d.ts +217 -12
  9. package/es/components/form-config/src/components/FormConfigCreator.vue.d.ts +108 -6
  10. package/es/components/form-config/src/components/FormConfigEdit.vue.d.ts +109 -6
  11. package/es/components/form-render/index.d.ts +108 -6
  12. package/es/components/form-render/src/FormRender.vue.d.ts +108 -6
  13. package/es/components/form-render/src/FormRender.vue.js +32 -107
  14. package/es/components/form-render/src/FormRenderWrapper.vue.d.ts +108 -6
  15. package/es/components/form-render/src/components/renderer/combination.d.ts +1 -1
  16. package/es/components/form-render/src/components/renderer/combination.js +9 -5
  17. package/es/components/form-render/src/components/renderer/formItem.d.ts +11 -3
  18. package/es/components/form-render/src/components/renderer/formItem.js +28 -20
  19. package/es/components/form-render/src/components/renderer/index.js +2 -4
  20. package/es/components/form-render/src/components/renderer/radio&checkbox.d.ts +186 -0
  21. package/es/components/form-render/src/components/renderer/radio_checkbox.js +111 -0
  22. package/es/components/form-render/src/hooks/useComplexOptions.d.ts +31 -0
  23. package/es/components/form-render/src/hooks/useComplexOptions.js +225 -0
  24. package/es/components/form-render/src/hooks/useFieldListAdaptor.js +10 -13
  25. package/es/components/form-render/src/hooks/useFormEvent.d.ts +29 -0
  26. package/es/components/form-render/src/hooks/useFormEvent.js +140 -0
  27. package/es/components/form-render/src/hooks/useFormField.d.ts +3 -2
  28. package/es/components/form-render/src/hooks/useFormRenderOptions.js +4 -6
  29. package/es/components/form-render/src/types/fieldItem.d.ts +4 -3
  30. package/es/components/form-render/src/types/index.d.ts +3 -1
  31. package/es/components/form-render/src/utils/schema.d.ts +1 -60
  32. package/es/components/form-render/style/index.css +1 -1
  33. package/es/components/index.css +1 -1
  34. package/es/components/scale-view/style/index.css +1 -1
  35. package/es/components/shortcut-setter/index.d.ts +109 -6
  36. package/es/components/shortcut-setter/src/ShortcutSetter.vue.d.ts +109 -6
  37. package/es/shared/assets/img/failure.js +1 -1
  38. package/es/shared/assets/img/failure.png.js +1 -1
  39. package/es/shared/assets/img/icon-asc.js +1 -1
  40. package/es/shared/assets/img/icon-desc.js +1 -1
  41. package/es/shared/assets/img/no-permission.js +1 -1
  42. package/es/shared/assets/img/no-permission.png.js +1 -1
  43. package/es/shared/assets/img/nodata.js +1 -1
  44. package/es/shared/assets/img/nodata.png.js +1 -1
  45. package/es/shared/assets/img/notfound.js +1 -1
  46. package/es/shared/assets/img/notfound.png.js +1 -1
  47. package/es/shared/assets/img/qr.js +1 -1
  48. package/es/shared/assets/img/qr.png.js +1 -1
  49. package/es/shared/assets/img/success.js +1 -1
  50. package/es/shared/assets/img/success.png.js +1 -1
  51. package/es/shared/assets/img/video.js +1 -1
  52. package/es/shared/assets/img/video.png.js +1 -1
  53. package/es/shared/assets/img/video_default_cover.js +1 -1
  54. package/es/shared/assets/img/video_default_cover.png.js +1 -1
  55. package/es/shared/assets/img/video_hover.js +1 -1
  56. package/es/shared/assets/img/video_play_hover.js +1 -1
  57. package/es/shared/assets/img/xb_big.js +1 -1
  58. package/es/shared/assets/img/xb_big.png.js +1 -1
  59. package/es/shared/assets/img/xb_small.js +1 -1
  60. package/es/shared/assets/img/xb_small.png.js +1 -1
  61. package/es/shared/components/VueDraggable/src/vuedraggable.d.ts +86 -0
  62. package/es/shared/utils/index.d.ts +1 -0
  63. package/es/shared/utils/index.js +6 -1
  64. package/es/shared/utils/tapable/index.d.ts +139 -0
  65. package/package.json +2 -2
  66. package/es/components/form-render/src/components/renderer/checkbox.d.ts +0 -90
  67. package/es/components/form-render/src/components/renderer/checkbox.js +0 -79
  68. package/es/components/form-render/src/components/renderer/radio.d.ts +0 -94
  69. package/es/components/form-render/src/components/renderer/radio.js +0 -101
@@ -0,0 +1,140 @@
1
+ import { arrayed, findAncestor } from '../../../../shared/utils/index.js';
2
+ import { isField } from '@formily/core';
3
+ import { Path } from '@formily/path';
4
+ import { isObject } from '@vue/shared';
5
+ import { isArray, isFunction } from 'lodash-es';
6
+ import { nextTick } from 'vue';
7
+ import '../../index.js';
8
+ import { FormItemLineBarDepKeyPrepend, NESTED_FORM_ITEM_TYPE } from '../constants/index.js';
9
+ import { useComplexOptionsKey } from './useComplexOptions.js';
10
+ import { queryDecorator, queryInput, findNextWidget } from '../utils/dom.js';
11
+ import { validateMessageParser, combineExtendKey, splitExtendKey } from '../utils/index.js';
12
+ import { getParentLinebar } from '../utils/schema.js';
13
+
14
+ function useFormExposeEvent({
15
+ formModel,
16
+ formRenderRef,
17
+ formUUID,
18
+ getFieldList,
19
+ formItemDepsCollector
20
+ }) {
21
+ async function queryWidget(key, wrapperElement, fieldList) {
22
+ if (!formRenderRef.value)
23
+ return createResult();
24
+ const decoratorElement = queryDecorator(key, wrapperElement, formUUID);
25
+ if (decoratorElement)
26
+ return createResult(decoratorElement);
27
+ const parentLinebarKey = getParentLinebar(key, fieldList);
28
+ if (!parentLinebarKey)
29
+ return createResult();
30
+ formItemDepsCollector.trigger(FormItemLineBarDepKeyPrepend + parentLinebarKey, true);
31
+ await nextTick();
32
+ return createResult(queryDecorator(key, wrapperElement, formUUID));
33
+ function createResult(decoratorElement2) {
34
+ return { decoratorElement: decoratorElement2, ...queryInput(decoratorElement2) };
35
+ }
36
+ }
37
+ const { combineComplexOptionKey } = useComplexOptionsKey();
38
+ return {
39
+ validate(path = "*") {
40
+ return formModel.validate(path).catch((err) => {
41
+ return Promise.reject(Array.isArray(err) ? err.reduce(errInfoNormalize, []) : err);
42
+ });
43
+ function errInfoNormalize(result, error) {
44
+ if (!isObject(error))
45
+ return result;
46
+ let hasChildMessage = false;
47
+ if (isArray(error.messages)) {
48
+ error.messages.forEach((message) => {
49
+ if (!isObject(message))
50
+ return;
51
+ result.push(...arrayed(message).map(bindEleInfo));
52
+ hasChildMessage = true;
53
+ });
54
+ }
55
+ !hasChildMessage && result.push(bindEleInfo(error));
56
+ return result;
57
+ }
58
+ function bindEleInfo(info) {
59
+ if (info.decoratorElement)
60
+ return info;
61
+ const pattern = formModel.query(info.path);
62
+ const title = pattern.get("title");
63
+ const messages = info.messages.map(
64
+ (message) => errMessageNormalize(message, pattern.get("decoratorProps"))
65
+ );
66
+ const decoratorElement = queryDecorator(info.path, formRenderRef.value, formUUID);
67
+ return { ...info, messages, title, decoratorElement, ...queryInput(info.decoratorElement) };
68
+ }
69
+ function errMessageNormalize(message, decoratorProps) {
70
+ if (!decoratorProps || !decoratorProps.fieldItem)
71
+ return message;
72
+ return validateMessageParser(message, decoratorProps.fieldItem);
73
+ }
74
+ },
75
+ getFormValues(needCombineExtendKey = true, needCombineOptionKey = true) {
76
+ let result = formModel.getFormState().values;
77
+ if (needCombineExtendKey)
78
+ result = combineExtendKey(getFieldList(), result);
79
+ if (needCombineOptionKey)
80
+ result = combineComplexOptionKey(getFieldList(), result);
81
+ return result;
82
+ },
83
+ setFormValues(values, needSplitExtendKey = true) {
84
+ if (needSplitExtendKey) {
85
+ values = splitExtendKey(getFieldList(), values);
86
+ }
87
+ formModel.setFieldState("*", (state) => {
88
+ if (!isField(state))
89
+ return;
90
+ state.value = Path.getIn(values, state.path);
91
+ });
92
+ },
93
+ setFieldState(path, handler) {
94
+ formModel.setFieldState(path, handler);
95
+ },
96
+ resetFields(path = "*") {
97
+ return formModel.reset(path);
98
+ },
99
+ async queryWidget(key) {
100
+ return formRenderRef.value ? await queryWidget(key, formRenderRef.value, getFieldList()) : null;
101
+ }
102
+ };
103
+ }
104
+ function useFormDomEvent({
105
+ props,
106
+ formRenderRef,
107
+ formModel
108
+ }) {
109
+ function onKeydown(event) {
110
+ var _a;
111
+ if (!props.enterToNextWidget || !formRenderRef.value)
112
+ return;
113
+ const ancestorFormItem = findAncestor(
114
+ event.target,
115
+ (ele) => ele.classList.contains("form-render__formItem")
116
+ );
117
+ if (!ancestorFormItem)
118
+ return;
119
+ const selector = `.form-render__formItem${NESTED_FORM_ITEM_TYPE.map((type) => `:not([widget-type=${type}])`).join(
120
+ ""
121
+ )}`;
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 { widget, field } = findNextWidget(formItemElements, formItemIndex, event.target);
127
+ if (!widget)
128
+ return;
129
+ const formItemInstance = field && formModel.query(field).take();
130
+ if (formItemInstance && isFunction(props.enterToNextWidget)) {
131
+ props.enterToNextWidget((_a = formItemInstance.decoratorProps) == null ? void 0 : _a.fieldItem) ? focus() : onKeydown({ target: widget });
132
+ }
133
+ function focus() {
134
+ widget == null ? void 0 : widget.focus();
135
+ }
136
+ }
137
+ return { onKeydown };
138
+ }
139
+
140
+ export { useFormDomEvent, useFormExposeEvent };
@@ -1,5 +1,6 @@
1
- export declare function useFormField(): {
2
- field: import("vue").Ref<import("@formily/core").GeneralField>;
1
+ import { GeneralField } from '@formily/core';
2
+ export declare function useFormField<T extends GeneralField>(): {
3
+ field: import("vue").Ref<T>;
3
4
  title: import("vue").ComputedRef<any>;
4
5
  fieldKey: import("vue").ComputedRef<string>;
5
6
  };
@@ -1,7 +1,7 @@
1
- import { jsonParse } from '../../../../shared/utils/index.js';
1
+ import { checkInSetupEnv, jsonParse } from '../../../../shared/utils/index.js';
2
2
  import { useDebounceFn } from '@vueuse/core';
3
3
  import { isString, isEqual, omit, isFunction } from 'lodash-es';
4
- import { computed, inject, getCurrentInstance, ref, watch } from 'vue';
4
+ import { computed, inject, ref, watch } from 'vue';
5
5
  import '../../index.js';
6
6
  import { InjectionAsyncQueue, InjectionFormItemDepsCollector } from '../constants/index.js';
7
7
  import { createUrlConfigParams, formRenderLog, optionMatcherWithKeyword } from '../utils/index.js';
@@ -115,8 +115,7 @@ function useRecommendOptions(props, options, emit, valueKey) {
115
115
  };
116
116
  }
117
117
  function useUrlConfigOptions(props, valueRef) {
118
- if (!getCurrentInstance())
119
- throw new Error("can't use this hook out of setup environment");
118
+ checkInSetupEnv();
120
119
  const asyncQueue = inject(InjectionAsyncQueue);
121
120
  const labelKey = computed(() => {
122
121
  var _a, _b;
@@ -174,8 +173,7 @@ function useUrlConfigOptions(props, valueRef) {
174
173
  return { labelKey, valueKey, options, fetchData };
175
174
  }
176
175
  function useAutographOptions(props, valueRef) {
177
- if (!getCurrentInstance())
178
- throw new Error("can't use this hook out of setup environment");
176
+ checkInSetupEnv();
179
177
  const asyncQueue = inject(InjectionAsyncQueue);
180
178
  const labelKey = computed(() => {
181
179
  var _a, _b, _c;
@@ -22,12 +22,13 @@ export declare type ValidateItem = Partial<{
22
22
  regular_error_tip: string;
23
23
  [key: string]: any;
24
24
  }>;
25
- interface OptionItem {
25
+ export interface FormOptionItem {
26
26
  text: string;
27
27
  value: any;
28
28
  keyword?: string;
29
29
  disabled?: boolean;
30
- children?: OptionItem[];
30
+ children?: FormOptionItem[];
31
+ childrenFields?: FieldItem[];
31
32
  }
32
33
  interface FormRendererPayload {
33
34
  clearable: boolean;
@@ -139,7 +140,7 @@ export declare type FieldItem = {
139
140
  hide_title: FormCommonState;
140
141
  placeholder: string;
141
142
  validate: ValidateItem;
142
- option: OptionItem[];
143
+ option: FormOptionItem[];
143
144
  /**
144
145
  * 是否开启多选('0'表示开启, 值是反的)
145
146
  */
@@ -28,7 +28,7 @@ export declare type IdCardParseInfo = Record<'sex' | 'birthday', string> & AgeCo
28
28
  export declare type FormRenderExpose = {
29
29
  formModel: Form;
30
30
  validate(path?: string): Promise<unknown>;
31
- getFormValues(needCombineExtendKey?: boolean): AnyObject;
31
+ getFormValues(needCombineExtendKey?: boolean, needCombineOptionKey?: boolean): AnyObject;
32
32
  setFormValues(values: AnyObject, needSplitExtendKey?: boolean): AnyObject;
33
33
  setFieldState(path: string, setter: (field: Field) => void): void;
34
34
  resetFields(path?: string): void;
@@ -76,6 +76,8 @@ export declare type FormRenderProps = Partial<{
76
76
  lifeCycle: FormRenderLifeCycle;
77
77
  businessFormatter: FormBusinessFormatter;
78
78
  requestInstance: RequestInstance;
79
+ enterToNextWidget: boolean | ((fieldItem: FieldItem) => boolean | void);
80
+ lowCodeReactions: FormLowCodeReactions.Config[];
79
81
  }>;
80
82
  export declare type FormBusinessFormatter = (payload: {
81
83
  fieldKey: string;
@@ -20,64 +20,5 @@ export declare function assignValueBindKey(props: AnyObject, field: GeneralField
20
20
  export declare function assignClearBindVisited(props: AnyObject, field: GeneralField): {
21
21
  [x: string]: any;
22
22
  };
23
- export declare function createObjSchema(properties: Record<string, ISchema>): {
24
- type: string;
25
- properties: Record<string, import("@formily/json-schema/esm/types").Stringify<{
26
- [key: symbol]: any;
27
- [key: `x-${string}`]: any;
28
- [key: `x-${number}`]: any;
29
- version?: string | undefined;
30
- name?: import("@formily/json-schema/esm/types").SchemaKey | undefined;
31
- title?: any;
32
- description?: any;
33
- default?: any;
34
- readOnly?: boolean | undefined;
35
- writeOnly?: boolean | undefined;
36
- type?: import("@formily/json-schema/esm/types").SchemaTypes | undefined;
37
- enum?: import("@formily/json-schema/esm/types").SchemaEnum<any> | undefined;
38
- const?: any;
39
- multipleOf?: number | undefined;
40
- maximum?: number | undefined;
41
- exclusiveMaximum?: number | undefined;
42
- minimum?: number | undefined;
43
- exclusiveMinimum?: number | undefined;
44
- maxLength?: number | undefined;
45
- minLength?: number | undefined;
46
- pattern?: string | RegExp | undefined;
47
- maxItems?: number | undefined;
48
- minItems?: number | undefined;
49
- uniqueItems?: boolean | undefined;
50
- maxProperties?: number | undefined;
51
- minProperties?: number | undefined;
52
- required?: string | boolean | string[] | undefined;
53
- format?: string | undefined;
54
- $ref?: string | undefined;
55
- $namespace?: string | undefined;
56
- definitions?: import("@formily/json-schema/esm/types").SchemaProperties<any, any, any, any, any, any, any, any> | undefined;
57
- properties?: import("@formily/json-schema/esm/types").SchemaProperties<any, any, any, any, any, any, any, any> | undefined;
58
- items?: import("@formily/json-schema/esm/types").SchemaItems<any, any, any, any, any, any, any, any> | undefined;
59
- additionalItems?: import("@formily/json-schema/esm/types").Stringify<any> | undefined;
60
- patternProperties?: import("@formily/json-schema/esm/types").SchemaProperties<any, any, any, any, any, any, any, any> | undefined;
61
- additionalProperties?: import("@formily/json-schema/esm/types").Stringify<any> | undefined;
62
- "x-value"?: any;
63
- "x-index"?: number | undefined;
64
- "x-pattern"?: any;
65
- "x-display"?: any;
66
- "x-validator"?: any;
67
- "x-decorator"?: any;
68
- "x-decorator-props"?: any;
69
- "x-component"?: any;
70
- "x-component-props"?: any;
71
- "x-reactions"?: import("@formily/json-schema/esm/types").SchemaReactions<any> | undefined;
72
- "x-content"?: any;
73
- "x-data"?: any;
74
- "x-visible"?: boolean | undefined;
75
- "x-hidden"?: boolean | undefined;
76
- "x-disabled"?: boolean | undefined;
77
- "x-editable"?: boolean | undefined;
78
- "x-read-only"?: boolean | undefined;
79
- "x-read-pretty"?: boolean | undefined;
80
- "x-compile-omitted"?: string[] | undefined;
81
- }>>;
82
- };
23
+ export declare function createObjSchema(properties: Record<string, ISchema>): ISchema;
83
24
  export declare function createVisitedSetter(field: Ref<GeneralField>, callback?: Func): (...args: unknown[]) => any;
@@ -1 +1 @@
1
- .annotation-edit{align-items:center;color:#0067ee;cursor:pointer;display:inline-flex;font-size:16px;user-select:none}.annotation-edit.is-active{color:#ff9828}.annotation-edit__icon{align-items:center;display:inline-flex}.annotation-edit__textarea{min-width:200px}.annotation-edit__footer{align-items:center;display:flex;flex-wrap:nowrap;gap:8px;justify-content:space-between;opacity:.5}.annotation-edit__footer>div{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.annotation-edit__footer>div:first-of-type{min-width:30%}.recommend-search__menu{min-height:100px}.recommend-search__menuRecommendList{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.recommend-search__menuRecommendList .n-tag{cursor:pointer}.recommend-search__recentRecommend{margin-bottom:8px}.recommend-search__recentRecommend>header{align-items:center;color:rgba(0,0,0,.4);display:flex;justify-content:space-between}.recommend-search__recentRecommend>header .n-icon:hover{color:rgba(0,0,0,.6);cursor:pointer}.recommend-search__commonRecommend{margin-bottom:8px}.recommend-search__commonRecommend>header{align-items:center;color:rgba(0,0,0,.4);display:flex;justify-content:space-between}.recommend-search__commonRecommend>header .n-icon:hover{color:rgba(0,0,0,.6);cursor:pointer}.recommend-search__option{align-items:center;border-radius:4px;cursor:pointer;display:flex;height:32px;justify-content:space-between;padding:0 8px}.recommend-search__optionText{max-width:calc(100% - 24px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recommend-search__option.is-active{color:var(--n-color)!important}.recommend-search__option.is-active .n-icon{font-size:20px}.recommend-search__option:hover{background:rgba(0,0,0,.03)}.recommend-search__optionContainer{margin:-8px -10px}.recommend-search__empty{align-items:center;color:rgba(0,0,0,.3);display:flex;height:100px;justify-content:center}.search-cascader__menuWrapper{display:flex;flex-wrap:nowrap;margin:-8px -14px}.search-cascader__input input{cursor:pointer!important}.search-cascader__option{align-items:center;border-radius:4px;box-sizing:border-box;display:flex;height:32px;justify-content:space-between;padding:0 8px 0 16px;width:100%}.search-cascader__option--active{background:#f8f8f8}.search-cascader__option:hover{background:#f5f5f5;cursor:pointer}.search-cascader__optionWrapper{background:#fff;height:256px;overflow-x:auto;width:calc(var(--menu-width)*1px)}.search-cascader__optionWrapper:not(:last-of-type){border:solid #e5e5e5;border-width:0 1px 0 0}.search-cascader__optionText{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:calc(100% - 20px)}.search-cascader__option svg{color:#bfbfbf;flex-shrink:0;font-size:12px;width:20px}.search-cascader__option svg.rotate{animation:rotate 1s linear infinite}.search-cascader__emptyWrapper{align-items:center;background:#fff;box-sizing:border-box;display:flex;height:300px;justify-content:center;padding:16px;width:100%}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.form-render__wrapper{align-items:start;display:grid!important;gap:0 16px;grid-template-columns:repeat(var(--column),minmax(0,1fr));max-height:var(--form-height);overflow-y:auto;position:relative}.form-render__formItem{grid-column:span min(var(--column),var(--form-item-column)) /span min(var(--column),var(--form-item-column))}.form-render__formItem .n-date-picker,.form-render__formItem .n-input-number{width:100%}.form-render__formItemLabel{align-items:center;display:inline-flex;justify-content:space-between;position:relative}.form-render__formItemLabel--operation{align-items:center;display:flex;gap:2px;position:absolute;right:0;top:50%;transform:translateY(-50%)}.form-render__formItemLabel--tooltip{font-size:0;line-height:1;width:16px}.form-render__formItemLabel--text{white-space:nowrap}.form-render__formItem .n-form-item-label{display:inline-flex}.form-render__formItem .n-form-item-label [annotation-hover-show=true]{visibility:hidden}.form-render__formItem .n-form-item-label:hover [annotation-hover-show=true]{visibility:visible}.form-render__linebar{grid-column:span min(var(--column),var(--column)) /span min(var(--column),var(--column))}.form-render__linebarHeader{align-items:center;background:#f2f2f2;border-radius:4px;cursor:pointer;display:flex;font-size:14px;font-weight:500;height:32px;justify-content:space-between;margin-bottom:8px;padding:0 16px}.form-render__linebarHeader>svg{color:rgba(33,33,33,.4);width:14px}.form-render__linebarHeaderTitle{align-items:center;display:flex;gap:4px;vertical-align:middle}.form-render__linebarHeaderTitle svg{height:16px;transform:translateY(-1px)}.form-render__linebarItem{align-items:start;display:grid!important;gap:0 16px;grid-template-columns:repeat(var(--column),minmax(0,1fr))}.form-render__linebreaks{grid-column:span min(var(--column),var(--form-item-column)) /span min(var(--column),var(--form-item-column))}.form-render__inputGroup{align-items:flex-start;display:flex;grid-column:span min(var(--column),var(--column)) /span min(var(--column),var(--column))}.form-render__inputGroup>div{flex:1}.form-render__inputGroup>div:not(:last-of-type) .n-base-selection__border,.form-render__inputGroup>div:not(:last-of-type) .n-input__border{border-bottom-right-radius:0;border-right:0;border-top-right-radius:0}.form-render__inputGroup>div:last-of-type .n-base-selection__border,.form-render__inputGroup>div:last-of-type .n-input__border{border-bottom-left-radius:0;border-top-left-radius:0}.form-render__inputGroup .n-form-item--left-labelled:not(:first-of-type)>label{display:none}.form-render__combination{width:100%}.form-render__combinationHeader{display:flex;gap:12px}.form-render__combinationHeader>h3{font-size:16px;font-weight:700;margin:0;padding:0}.form-render__combinationHeader .n-button__icon{font-size:14px;margin:0 2px 0 0}.form-render__combinationHeaderText{font-size:16px;font-weight:500}.form-render__combinationClose{font-size:16px;height:14px;position:absolute;right:5px;top:5px;width:14px}.form-render__combinationContentJson{position:relative}.form-render__combinationContent{align-items:start;display:grid!important;gap:0 16px;grid-template-columns:repeat(var(--column),minmax(0,1fr));position:relative}.form-render__complex{width:100%}.form-render__complexContent--grid{align-items:start;display:grid!important;gap:0 16px;grid-template-columns:repeat(var(--column),minmax(0,1fr))}.form-render__complexContent--flex{display:flex!important;gap:0 8px}.form-render__selectMenu .n-scrollbar-rail__scrollbar{display:none!important}.form-render__selectMenu .n-virtual-list::-webkit-scrollbar,.form-render__selectMenu .n-virtual-list::-webkit-scrollbar-thumb{display:unset!important;height:6px;width:6px}.form-render__selectMenu .n-virtual-list::-webkit-scrollbar-thumb{background:#bfbfbf;border-radius:4px}.form-render__selectMenu .v-vl-items{min-width:100%;width:max-content}.form-render__selectOption .n-base-select-option__content{overflow:visible!important;text-overflow:unset!important;word-break:keep-all!important}
1
+ .annotation-edit{align-items:center;color:#0067ee;cursor:pointer;display:inline-flex;font-size:16px;user-select:none}.annotation-edit.is-active{color:#ff9828}.annotation-edit__icon{align-items:center;display:inline-flex}.annotation-edit__textarea{min-width:200px}.annotation-edit__footer{align-items:center;display:flex;flex-wrap:nowrap;gap:8px;justify-content:space-between;opacity:.5}.annotation-edit__footer>div{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.annotation-edit__footer>div:first-of-type{min-width:30%}.recommend-search__menu{min-height:100px}.recommend-search__menuRecommendList{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.recommend-search__menuRecommendList .n-tag{cursor:pointer}.recommend-search__recentRecommend{margin-bottom:8px}.recommend-search__recentRecommend>header{align-items:center;color:rgba(0,0,0,.4);display:flex;justify-content:space-between}.recommend-search__recentRecommend>header .n-icon:hover{color:rgba(0,0,0,.6);cursor:pointer}.recommend-search__commonRecommend{margin-bottom:8px}.recommend-search__commonRecommend>header{align-items:center;color:rgba(0,0,0,.4);display:flex;justify-content:space-between}.recommend-search__commonRecommend>header .n-icon:hover{color:rgba(0,0,0,.6);cursor:pointer}.recommend-search__option{align-items:center;border-radius:4px;cursor:pointer;display:flex;height:32px;justify-content:space-between;padding:0 8px}.recommend-search__optionText{max-width:calc(100% - 24px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recommend-search__option.is-active{color:var(--n-color)!important}.recommend-search__option.is-active .n-icon{font-size:20px}.recommend-search__option:hover{background:rgba(0,0,0,.03)}.recommend-search__optionContainer{margin:-8px -10px}.recommend-search__empty{align-items:center;color:rgba(0,0,0,.3);display:flex;height:100px;justify-content:center}.search-cascader__menuWrapper{display:flex;flex-wrap:nowrap;margin:-8px -14px}.search-cascader__input input{cursor:pointer!important}.search-cascader__option{align-items:center;border-radius:4px;box-sizing:border-box;display:flex;height:32px;justify-content:space-between;padding:0 8px 0 16px;width:100%}.search-cascader__option--active{background:#f8f8f8}.search-cascader__option:hover{background:#f5f5f5;cursor:pointer}.search-cascader__optionWrapper{background:#fff;height:256px;overflow-x:auto;width:calc(var(--menu-width)*1px)}.search-cascader__optionWrapper:not(:last-of-type){border:solid #e5e5e5;border-width:0 1px 0 0}.search-cascader__optionText{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:calc(100% - 20px)}.search-cascader__option svg{color:#bfbfbf;flex-shrink:0;font-size:12px;width:20px}.search-cascader__option svg.rotate{animation:rotate 1s linear infinite}.search-cascader__emptyWrapper{align-items:center;background:#fff;box-sizing:border-box;display:flex;height:300px;justify-content:center;padding:16px;width:100%}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.form-render__wrapper{align-items:start;display:grid!important;gap:0 16px;grid-template-columns:repeat(var(--column),minmax(0,1fr));max-height:var(--form-height);overflow-y:auto;position:relative}.form-render__formItem{grid-column:span min(var(--column),var(--form-item-column)) /span min(var(--column),var(--form-item-column))}.form-render__formItem .n-date-picker,.form-render__formItem .n-input-number{width:100%}.form-render__formItemLabel{align-items:center;display:inline-flex;justify-content:space-between;position:relative}.form-render__formItemLabel--operation{align-items:center;display:flex;gap:2px;position:absolute;right:0;top:50%;transform:translateY(-50%)}.form-render__formItemLabel--tooltip{font-size:0;line-height:1;width:16px}.form-render__formItemLabel--text{white-space:nowrap}.form-render__formItem .n-form-item-label{display:inline-flex}.form-render__formItem .n-form-item-label [annotation-hover-show=true]{visibility:hidden}.form-render__formItem .n-form-item-label:hover [annotation-hover-show=true]{visibility:visible}.form-render__linebar{grid-column:span min(var(--column),var(--column)) /span min(var(--column),var(--column))}.form-render__linebarHeader{align-items:center;background:#f2f2f2;border-radius:4px;cursor:pointer;display:flex;font-size:14px;font-weight:500;height:32px;justify-content:space-between;margin-bottom:8px;padding:0 16px}.form-render__linebarHeader>svg{color:rgba(33,33,33,.4);width:14px}.form-render__linebarHeaderTitle{align-items:center;display:flex;gap:4px;vertical-align:middle}.form-render__linebarHeaderTitle svg{height:16px;transform:translateY(-1px)}.form-render__linebarItem{align-items:start;display:grid!important;gap:0 16px;grid-template-columns:repeat(var(--column),minmax(0,1fr))}.form-render__linebreaks{grid-column:span min(var(--column),var(--form-item-column)) /span min(var(--column),var(--form-item-column))}.form-render__inputGroup{align-items:flex-start;display:flex;grid-column:span min(var(--column),var(--column)) /span min(var(--column),var(--column))}.form-render__inputGroup>div{flex:1}.form-render__inputGroup>div:not(:last-of-type) .n-base-selection__border,.form-render__inputGroup>div:not(:last-of-type) .n-input__border{border-bottom-right-radius:0;border-right:0;border-top-right-radius:0}.form-render__inputGroup>div:last-of-type .n-base-selection__border,.form-render__inputGroup>div:last-of-type .n-input__border{border-bottom-left-radius:0;border-top-left-radius:0}.form-render__inputGroup .n-form-item--left-labelled:not(:first-of-type)>label{display:none}.form-render__combination{width:100%}.form-render__combinationHeader{display:flex;gap:12px}.form-render__combinationHeader>h3{font-size:16px;font-weight:700;margin:0;padding:0}.form-render__combinationHeader .n-button__icon{font-size:14px;margin:0 2px 0 0}.form-render__combinationHeaderText{font-size:16px;font-weight:500}.form-render__combinationClose{font-size:16px;height:14px;position:absolute;right:5px;top:5px;width:14px}.form-render__combinationContentJson{position:relative}.form-render__combinationContent{align-items:start;display:grid!important;gap:0 16px;grid-template-columns:repeat(var(--column),minmax(0,1fr));position:relative}.form-render__complex{width:100%}.form-render__complexContent--grid{align-items:start;display:grid!important;gap:0 16px;grid-template-columns:repeat(var(--column),minmax(0,1fr))}.form-render__complexContent--flex{display:flex!important;gap:0 8px}.form-render__selectMenu .n-scrollbar-rail__scrollbar{display:none!important}.form-render__selectMenu .n-virtual-list::-webkit-scrollbar,.form-render__selectMenu .n-virtual-list::-webkit-scrollbar-thumb{display:unset!important;height:6px;width:6px}.form-render__selectMenu .n-virtual-list::-webkit-scrollbar-thumb{background:#bfbfbf;border-radius:4px}.form-render__selectMenu .v-vl-items{min-width:100%;width:max-content}.form-render__selectOption .n-base-select-option__content{overflow:visible!important;text-overflow:unset!important;word-break:keep-all!important}.form-render__labelField{align-items:start;display:grid!important;display:inline-grid!important;gap:0 16px;grid-template-columns:repeat(var(--column),minmax(0,1fr));grid-template-columns:repeat(var(--column),auto)!important;margin-left:16px}.form-render__labelField .n-form-item{display:inline-grid}.form-render__labelField label.n-form-item-label.n-form-item-label--left-mark{align-items:center}.form-render__labelField .n-checkbox[aria-checked=false] .n-checkbox-box{background-color:transparent}.form-render__labelField .n-checkbox[aria-checked=false] .n-checkbox-icon .check-icon{opacity:0}.form-render__labelField .n-checkbox[aria-checked=false] .n-checkbox-box__border{border:var(--n-border)}.form-render .form-render__formItem .n-checkbox,.form-render .form-render__formItem .n-radio{align-items:center}.form-render .form-render__formItem .n-radio-input{left:auto;right:auto}.form-render .form-render__formItem .n-checkbox-group>.n-space:not([vertical-space=true]),.form-render .form-render__formItem .n-radio-group>.n-space:not([vertical-space=true]){align-items:center!important}.form-render .form-render__formItem .n-checkbox__label{align-items:center;display:inline-flex}