@blueking/bkui-form 0.0.42 → 0.0.44

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 (38) hide show
  1. package/dist/adapter/vue2/common/FieldGroupWrap.d.ts +4 -3
  2. package/dist/adapter/vue2/field/ArrayField.d.ts +3 -3
  3. package/dist/adapter/vue2/field/BooleanField.d.ts +3 -3
  4. package/dist/adapter/vue2/field/CompositionField.d.ts +3 -3
  5. package/dist/adapter/vue2/field/NumberField.d.ts +3 -3
  6. package/dist/adapter/vue2/field/ObjectField.d.ts +1 -1
  7. package/dist/adapter/vue2/field/SchemaField.d.ts +1 -1
  8. package/dist/adapter/vue2/field/StringField.d.ts +3 -3
  9. package/dist/adapter/vue2/widget/ArrayWidget.d.ts +1 -1
  10. package/dist/adapter/vue2/widget/ButtonWidget.d.ts +1 -1
  11. package/dist/adapter/vue2/widget/CheckboxWidget.d.ts +1 -1
  12. package/dist/adapter/vue2/widget/CollapseGroupWidget.d.ts +2 -1
  13. package/dist/adapter/vue2/widget/ColorPickerWidget.d.ts +1 -1
  14. package/dist/adapter/vue2/widget/InputWidget.d.ts +1 -1
  15. package/dist/adapter/vue2/widget/KeyValueArrayWidget.d.ts +3 -3
  16. package/dist/adapter/vue2/widget/RadioWidget.d.ts +1 -1
  17. package/dist/adapter/vue2/widget/SelectWidget.d.ts +1 -1
  18. package/dist/adapter/vue2/widget/SwitchWidget.d.ts +1 -1
  19. package/dist/adapter/vue2/widget/TabGroupWidget.d.ts +1 -1
  20. package/dist/adapter/vue2/widget/TableWidget.d.ts +3 -3
  21. package/dist/adapter/vue2/widget/UploadWidget.d.ts +14 -0
  22. package/dist/adapter/vue2/widget/Widget.d.ts +1 -1
  23. package/dist/bkui-form-es-min.js +3 -3
  24. package/dist/bkui-form-es.js +490 -262
  25. package/dist/bkui-form-es.js.map +1 -1
  26. package/dist/bkui-form-umd-min.js +3 -3
  27. package/dist/bkui-form-umd.js +490 -262
  28. package/dist/bkui-form-umd.js.map +1 -1
  29. package/dist/bkui-form.css +58 -3
  30. package/dist/controller/form-vue2.d.ts +9 -6
  31. package/dist/controller/props.d.ts +4 -0
  32. package/dist/core/expression.d.ts +3 -1
  33. package/dist/core/reaction.d.ts +2 -1
  34. package/dist/core/validator.d.ts +6 -5
  35. package/dist/core/widgetTree.d.ts +1 -2
  36. package/dist/types/bkui-form.d.ts +50 -8
  37. package/dist/util/index.d.ts +5 -1
  38. package/package.json +6 -6
@@ -80,8 +80,24 @@
80
80
  font-size: 14px;
81
81
  font-weight: 600;
82
82
  color: #63656E;
83
+ position: relative;
84
+ }
85
+ .bk-schema-form .bk-schema-form-group .bk-schema-form-group-title.is-required:after {
86
+ height: 8px;
87
+ line-height: 1;
88
+ content: "*";
89
+ color: #ea3636;
90
+ font-size: 12px;
91
+ position: absolute;
92
+ display: inline-block;
93
+ vertical-align: middle;
94
+ top: 50%;
95
+ transform: translate(3px, -50%);
96
+ }
97
+ .bk-schema-form .bk-schema-form-group .group-has-desc{
98
+ border-bottom: 1px dashed #979ba5;
99
+ cursor: pointer;
83
100
  }
84
-
85
101
  .bk-schema-form .bk-schema-form-group .bk-schema-form-group-title.default {
86
102
  display: inline-block;
87
103
  margin-bottom: 10px;
@@ -104,12 +120,12 @@
104
120
  margin: 0 -24px 8px -24px;
105
121
  }
106
122
 
107
- .bk-schema-form .bk-collapse-item .bk-collapse-item-header {
123
+ .bk-schema-form .bk-collapse.normal .bk-collapse-item .bk-collapse-item-header {
108
124
  height: 54px;
109
125
  padding: 0;
110
126
  }
111
127
 
112
- .bk-schema-form .bk-collapse-item .bk-collapse-item-content {
128
+ .bk-schema-form .bk-collapse.normal .bk-collapse-item .bk-collapse-item-content {
113
129
  background: #f5f7fa;
114
130
  padding: 0 34px 16px 34px;
115
131
  }
@@ -120,6 +136,36 @@
120
136
  cursor: pointer;
121
137
  display: flex;
122
138
  align-items: center;
139
+ font-size: 12px;
140
+ }
141
+
142
+ .bk-schema-form .bk-schema-form-group-add.large {
143
+ display: flex;
144
+ align-items: center;
145
+ justify-content: center;
146
+ height: 32px;
147
+ flex: 1;
148
+ border: 1px dashed #3a84ff;
149
+ border-radius: 2px;
150
+ color: #3a84ff;
151
+ cursor: pointer;
152
+ text-align: center;
153
+ }
154
+ .bk-schema-form .bk-schema-form-group-add.large.error {
155
+ border: 1px dashed #f5222d;
156
+ }
157
+
158
+ .bk-schema-form .bk-schema-form-group-add.disabled {
159
+ color: #c4c6cc;
160
+ cursor: not-allowed;
161
+ }
162
+
163
+ .bk-schema-form .bk-schema-form-group-add.large.disabled {
164
+ border: 1px dashed #c4c6cc;
165
+ }
166
+
167
+ .bk-schema-form .bk-schema-form-group-add.readonly {
168
+ color: #c4c6cc;
123
169
  }
124
170
 
125
171
  .bk-schema-form .bk-schema-form-group-delete {
@@ -128,6 +174,15 @@
128
174
  color: #979bA5;
129
175
  }
130
176
 
177
+ .bk-schema-form .bk-schema-form-group-delete.disabled {
178
+ color: #c4c6cc;
179
+ cursor: not-allowed;
180
+ }
181
+
182
+ .bk-schema-form .bk-schema-form-group-delete.readonly {
183
+ color: #c4c6cc;
184
+ }
185
+
131
186
  .bk-schema-form .bk-schema-form-group-delete:hover {
132
187
  color: #3a84ff;
133
188
  }
@@ -1,15 +1,17 @@
1
1
  import { IFormOption } from '@/@types';
2
2
  import Vue from 'vue';
3
3
  import './form-vue2.css';
4
- export default function createForm<T>(opts?: Partial<IFormOption<T>>): import("vue/types/vue").ExtendedVue<Vue, {
4
+ import { WidgetTree } from '@/core/widgetTree';
5
+ export default function createForm<T>(opts?: Partial<IFormOption<T>>): import("vue/types/vue").ExtendedVue<Vue<Record<string, any>, Record<string, any>, never, never, (event: string, ...args: any[]) => Vue<Record<string, any>, Record<string, any>, never, never, any>>, {
5
6
  rootData: {};
6
7
  formKey: string;
8
+ widgetTree: WidgetTree;
7
9
  }, {
8
10
  initFormData(): void;
9
11
  emitFormValueChange(newValue: any, oldValue: any): void;
10
- validateForm: () => boolean;
11
- validateFormItem: (path: string) => import("@/@types").IValidateResult;
12
- validate: () => Promise<import("@/@types").IValidateResult[]>;
12
+ validateForm(): boolean;
13
+ validateFormItem(path: string): import("@/@types").IValidateResult;
14
+ validate(): Promise<import("@/@types").IValidateResult[]>;
13
15
  validateSchema: (schema: import("ajv").AnySchema) => Promise<unknown>;
14
16
  }, unknown, {
15
17
  value: any;
@@ -21,6 +23,7 @@ export default function createForm<T>(opts?: Partial<IFormOption<T>>): import("v
21
23
  context: any;
22
24
  httpAdapter: any;
23
25
  readonly: boolean;
24
- readonlyMode: any;
26
+ disabled: boolean;
27
+ readonlyMode: string;
25
28
  labelWidth: number;
26
- }>;
29
+ }, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin>;
@@ -38,6 +38,10 @@ declare const _default: {
38
38
  type: BooleanConstructor;
39
39
  default: boolean;
40
40
  };
41
+ disabled: {
42
+ type: BooleanConstructor;
43
+ default: boolean;
44
+ };
41
45
  readonlyMode: {
42
46
  type: StringConstructor;
43
47
  default: string;
@@ -7,7 +7,9 @@ export declare const getContext: (instance: any) => {
7
7
  $validate: any;
8
8
  $rootData: any;
9
9
  $widgetNode: any;
10
+ $getValue: any;
11
+ $getCookie: (name: string) => string | null;
10
12
  };
11
- export declare const executeExpression: (expression: string | object, instance: Vue, $dep?: Array<Vue>) => any;
13
+ export declare const executeExpression: (expression: string | object, instance: Vue, $dep?: Array<Vue>, $args?: {}) => any;
12
14
  export declare const parseStrTemplate: (expression: string) => any;
13
15
  export declare const isExpression: (expression: any) => boolean;
@@ -1,4 +1,5 @@
1
1
  import { IReaction } from '../@types';
2
- export declare const reactionRegister: (path: string, reactions?: Array<IReaction>) => void;
2
+ import { WidgetTree } from './widgetTree';
3
+ export declare const reactionRegister: (path: string, reactions: IReaction[] | undefined, widgetTree: WidgetTree) => void;
3
4
  export declare const reactionUnRegister: (path: string) => void;
4
5
  export declare const reactionDispatch: (path: string, typeName: string) => void;
@@ -1,5 +1,6 @@
1
1
  import Ajv, { AnySchema } from 'ajv';
2
2
  import { IRules, IValidateResult } from '@/@types';
3
+ import { WidgetTree } from './widgetTree';
3
4
  export declare const ajv: Ajv;
4
5
  export declare const DEFAULT_RULES: {
5
6
  required: {
@@ -12,23 +13,23 @@ export declare const DEFAULT_RULES: {
12
13
  * @param rules
13
14
  */
14
15
  export declare const registryGlobalRules: (rules: IRules) => void;
15
- export declare const setWidgetErrorTips: (path: string, isError: Boolean, errorMsg: any) => void;
16
+ export declare const setWidgetErrorTips: (path: string, isError: Boolean, errorMsg: any, widgetTree: WidgetTree) => void;
16
17
  /**
17
18
  * 校验单个表单项
18
19
  * @param path 字段路径
19
20
  */
20
- export declare const validateFormItem: (path: string) => IValidateResult;
21
+ export declare const validateFormItem: (path: string, widgetTree: WidgetTree) => IValidateResult;
21
22
  /**
22
23
  * 校验整个表单
23
24
  */
24
- export declare const validateForm: () => boolean;
25
+ export declare const validateForm: (widgetTree: WidgetTree) => boolean;
25
26
  /**
26
27
  * 校验表单(抛出具体错误信息)
27
28
  */
28
- export declare const validateFormWithResult: () => Promise<IValidateResult[]>;
29
+ export declare const validateFormWithResult: (widgetTree: WidgetTree) => Promise<IValidateResult[]>;
29
30
  export declare const validateSchema: (schema: AnySchema) => Promise<unknown>;
30
31
  /**
31
32
  * 触发校验
32
33
  * @param path 字段路径
33
34
  */
34
- export declare const dispatchValidate: (path: string) => IValidateResult;
35
+ export declare const dispatchValidate: (path: string, widgetTree: WidgetTree) => IValidateResult;
@@ -36,5 +36,4 @@ export declare class WidgetTree {
36
36
  addWidgetNode(path: string, instance: any, type: 'node' | 'group', index?: number): void;
37
37
  removeWidgetNode(path: string, instance: any): void;
38
38
  }
39
- declare const _default: WidgetTree;
40
- export default _default;
39
+ export {};
@@ -1,8 +1,9 @@
1
1
  import * as vue_types_vue from 'vue/types/vue';
2
+ import * as Vue from 'vue';
3
+ import Vue__default, { VNodeData } from 'vue';
2
4
  import * as ajv from 'ajv';
3
5
  import * as json_schema from 'json-schema';
4
6
  import { JSONSchema6TypeName, JSONSchema7 } from 'json-schema';
5
- import Vue, { VNodeData } from 'vue';
6
7
  import styleInject from '../node_modules/style-inject/dist/style-inject.es.js';
7
8
 
8
9
  type GlobalComponents = any;
@@ -31,18 +32,58 @@ interface IValidateResult {
31
32
  path: string
32
33
  }
33
34
 
34
- var css_248z = ".bk-schema-form .mr24 {\n margin-right: 24px;\n}\n\n.bk-schema-form .bk-form-item {\n margin-top: unset !important;\n}\n\n.bk-schema-form .bk-form-item .bk-form-content .group-text {\n background-color: #f2f4f8;\n height: 100%;\n}\n\n.bk-schema-form .bk-form-item .bk-select {\n background-color: #fff;\n}\n\n.bk-schema-form .bk-form-item .bk-select.is-disabled {\n background-color: #fafbfd;\n}\n\n.bk-schema-form .bk-schema-form-group.normal {\n padding: 24px;\n position: relative;\n}\n\n.bk-schema-form .bk-schema-form-group.card{\n background: #fff;\n padding: 0 24px 24px 24px;\n border-radius: 2px;\n}\n\n.bk-schema-form .bk-schema-form-group.hide-empty-row .bk-schema-form-group-content {\n row-gap: 0 !important;\n}\n\n.bk-schema-form .bk-schema-form-group.hide-empty-row .bk-schema-form-group-content .bk-form-item {\n margin-bottom: 20px;\n}\n\n.bk-schema-form-group--error{\n border-color: #f5222d !important;\n}\n\n.bk-schema-form-group__error-tips{\n position: relative;\n display: block;\n width: 10px;\n height: 10px;\n}\n\n.bk-schema-form-group__error-tips-popover {\n position: absolute;\n top: -5px;\n left: 0;\n z-index: 1;\n background: #fff;\n border: 1px solid #f5222d;\n color: #f5222d;\n font-size: 12px;\n margin-left: 10px;\n font-weight: normal;\n padding: 5px 10px;\n border-radius: 2px;\n max-height: 50px;\n overflow:hidden;\n}\n\n.bk-schema-form-group__error-tips-popover:hover {\n max-height: unset;\n}\n\n.bk-schema-form-group__error-tips-popover > p {\n padding: 0;\n margin: 0;\n white-space: nowrap;\n}\n\n.bk-schema-form .bk-schema-form-group .bk-schema-form-group-title {\n font-size: 14px;\n font-weight: 600;\n color: #63656E;\n}\n\n.bk-schema-form .bk-schema-form-group .bk-schema-form-group-title.default {\n display: inline-block;\n margin-bottom: 10px;\n}\n\n.bk-schema-form .bk-schema-form-group .bk-schema-form-group-title.normal {\n position: absolute;\n top: -1em;\n left: 10px;\n line-height: 2em;\n padding: 0 0.5em;\n background: #fff;\n}\n\n.bk-schema-form .bk-schema-form-group .bk-schema-form-group-title.card{\n display: flex;\n height: 50px;\n align-items: center;\n padding: 0 24px;\n margin: 0 -24px 8px -24px;\n}\n\n.bk-schema-form .bk-collapse-item .bk-collapse-item-header {\n height: 54px;\n padding: 0;\n}\n\n.bk-schema-form .bk-collapse-item .bk-collapse-item-content {\n background: #f5f7fa;\n padding: 0 34px 16px 34px;\n}\n\n.bk-schema-form .bk-schema-form-group-add {\n font-size: 14px;\n color: #3a84ff;\n cursor: pointer;\n display: flex;\n align-items: center;\n}\n\n.bk-schema-form .bk-schema-form-group-delete {\n position: absolute;\n cursor: pointer;\n color: #979bA5;\n}\n\n.bk-schema-form .bk-schema-form-group-delete:hover {\n color: #3a84ff;\n}\n\n.bk-schema-form-item__error-tips {\n color: #f5222d;\n font-size: 12px;\n margin-top: 5px;\n margin: 0;\n line-height: 1.5em;\n}\n\n.bk-schema-form-item--error input,\n.bk-schema-form-item--error .bk-textarea-wrapper,\n.bk-schema-form-item--error .bk-select {\n border: 1px solid #f5222d;\n}\n\n.bk-schema-form .bk-schema-form-group .bk-form-unit-input .bk-textarea-wrapper {\n min-height: 32px;\n}\n\n.bk-schema-form .bk-schema-form-group .bk-form-unit-input textarea {\n min-height: 30px;\n}\n\n.bk-schema-form .bk-schema-form-item-auto-height .bk-form-content {\n min-height: auto;\n line-height: 1;\n}\n\n.bk-schema-form .table-widget-actions .action-btn {\n margin-right: 8px;\n font-size: 14px;\n cursor: pointer;\n}\n.bk-schema-form .table-widget-actions .action-btn:hover {\n color: #3a84ff;\n}\n.bk-schema-form .is-disabled .action-btn {\n color: #dcdee5 !important;\n cursor: not-allowed;\n}\n.bk-schema-form .bk-table-fixed-right {\n height: 100% !important;\n border-bottom: 1px solid #dfe0e5;\n}";
35
+ var css_248z = ".bk-schema-form .mr24 {\n margin-right: 24px;\n}\n\n.bk-schema-form .bk-form-item {\n margin-top: unset !important;\n}\n\n.bk-schema-form .bk-form-item .bk-form-content .group-text {\n background-color: #f2f4f8;\n height: 100%;\n}\n\n.bk-schema-form .bk-form-item .bk-select {\n background-color: #fff;\n}\n\n.bk-schema-form .bk-form-item .bk-select.is-disabled {\n background-color: #fafbfd;\n}\n\n.bk-schema-form .bk-schema-form-group.normal {\n padding: 24px;\n position: relative;\n}\n\n.bk-schema-form .bk-schema-form-group.card{\n background: #fff;\n padding: 0 24px 24px 24px;\n border-radius: 2px;\n}\n\n.bk-schema-form .bk-schema-form-group.hide-empty-row .bk-schema-form-group-content {\n row-gap: 0 !important;\n}\n\n.bk-schema-form .bk-schema-form-group.hide-empty-row .bk-schema-form-group-content .bk-form-item {\n margin-bottom: 20px;\n}\n\n.bk-schema-form-group--error{\n border-color: #f5222d !important;\n}\n\n.bk-schema-form-group__error-tips{\n position: relative;\n display: block;\n width: 10px;\n height: 10px;\n}\n\n.bk-schema-form-group__error-tips-popover {\n position: absolute;\n top: -5px;\n left: 0;\n z-index: 1;\n background: #fff;\n border: 1px solid #f5222d;\n color: #f5222d;\n font-size: 12px;\n margin-left: 10px;\n font-weight: normal;\n padding: 5px 10px;\n border-radius: 2px;\n max-height: 50px;\n overflow:hidden;\n}\n\n.bk-schema-form-group__error-tips-popover:hover {\n max-height: unset;\n}\n\n.bk-schema-form-group__error-tips-popover > p {\n padding: 0;\n margin: 0;\n white-space: nowrap;\n}\n\n.bk-schema-form .bk-schema-form-group .bk-schema-form-group-title {\n font-size: 14px;\n font-weight: 600;\n color: #63656E;\n position: relative;\n}\n.bk-schema-form .bk-schema-form-group .bk-schema-form-group-title.is-required:after {\n height: 8px;\n line-height: 1;\n content: \"*\";\n color: #ea3636;\n font-size: 12px;\n position: absolute;\n display: inline-block;\n vertical-align: middle;\n top: 50%;\n transform: translate(3px, -50%);\n}\n.bk-schema-form .bk-schema-form-group .group-has-desc{\n border-bottom: 1px dashed #979ba5;\n cursor: pointer;\n}\n.bk-schema-form .bk-schema-form-group .bk-schema-form-group-title.default {\n display: inline-block;\n margin-bottom: 10px;\n}\n\n.bk-schema-form .bk-schema-form-group .bk-schema-form-group-title.normal {\n position: absolute;\n top: -1em;\n left: 10px;\n line-height: 2em;\n padding: 0 0.5em;\n background: #fff;\n}\n\n.bk-schema-form .bk-schema-form-group .bk-schema-form-group-title.card{\n display: flex;\n height: 50px;\n align-items: center;\n padding: 0 24px;\n margin: 0 -24px 8px -24px;\n}\n\n.bk-schema-form .bk-collapse.normal .bk-collapse-item .bk-collapse-item-header {\n height: 54px;\n padding: 0;\n}\n\n.bk-schema-form .bk-collapse.normal .bk-collapse-item .bk-collapse-item-content {\n background: #f5f7fa;\n padding: 0 34px 16px 34px;\n}\n\n.bk-schema-form .bk-schema-form-group-add {\n font-size: 14px;\n color: #3a84ff;\n cursor: pointer;\n display: flex;\n align-items: center;\n font-size: 12px;\n}\n\n.bk-schema-form .bk-schema-form-group-add.large {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 32px;\n flex: 1;\n border: 1px dashed #3a84ff;\n border-radius: 2px;\n color: #3a84ff;\n cursor: pointer;\n text-align: center;\n}\n.bk-schema-form .bk-schema-form-group-add.large.error {\n border: 1px dashed #f5222d;\n}\n\n.bk-schema-form .bk-schema-form-group-add.disabled {\n color: #c4c6cc;\n cursor: not-allowed;\n}\n\n.bk-schema-form .bk-schema-form-group-add.large.disabled {\n border: 1px dashed #c4c6cc;\n}\n\n.bk-schema-form .bk-schema-form-group-add.readonly {\n color: #c4c6cc;\n}\n\n.bk-schema-form .bk-schema-form-group-delete {\n position: absolute;\n cursor: pointer;\n color: #979bA5;\n}\n\n.bk-schema-form .bk-schema-form-group-delete.disabled {\n color: #c4c6cc;\n cursor: not-allowed;\n}\n\n.bk-schema-form .bk-schema-form-group-delete.readonly {\n color: #c4c6cc;\n}\n\n.bk-schema-form .bk-schema-form-group-delete:hover {\n color: #3a84ff;\n}\n\n.bk-schema-form-item__error-tips {\n color: #f5222d;\n font-size: 12px;\n margin-top: 5px;\n margin: 0;\n line-height: 1.5em;\n}\n\n.bk-schema-form-item--error input,\n.bk-schema-form-item--error .bk-textarea-wrapper,\n.bk-schema-form-item--error .bk-select {\n border: 1px solid #f5222d;\n}\n\n.bk-schema-form .bk-schema-form-group .bk-form-unit-input .bk-textarea-wrapper {\n min-height: 32px;\n}\n\n.bk-schema-form .bk-schema-form-group .bk-form-unit-input textarea {\n min-height: 30px;\n}\n\n.bk-schema-form .bk-schema-form-item-auto-height .bk-form-content {\n min-height: auto;\n line-height: 1;\n}\n\n.bk-schema-form .table-widget-actions .action-btn {\n margin-right: 8px;\n font-size: 14px;\n cursor: pointer;\n}\n.bk-schema-form .table-widget-actions .action-btn:hover {\n color: #3a84ff;\n}\n.bk-schema-form .is-disabled .action-btn {\n color: #dcdee5 !important;\n cursor: not-allowed;\n}\n.bk-schema-form .bk-table-fixed-right {\n height: 100% !important;\n border-bottom: 1px solid #dfe0e5;\n}";
35
36
  styleInject(css_248z);
36
37
 
37
- declare function createForm<T>(opts?: Partial<IFormOption<T>>): vue_types_vue.ExtendedVue<Vue, {
38
+ interface INodeConfig {
39
+ id: string;
40
+ type: 'node' | 'group';
41
+ index?: number;
42
+ instance: any;
43
+ parent: WidgetNode | null;
44
+ children: WidgetNode[];
45
+ }
46
+ declare class WidgetNode {
47
+ id: string;
48
+ instance: any;
49
+ parent: WidgetNode | null;
50
+ type: 'node' | 'group';
51
+ index?: number;
52
+ children: WidgetNode[];
53
+ constructor(config: INodeConfig);
54
+ get value(): any;
55
+ get isChildrenVisible(): any;
56
+ /**
57
+ * 获取 parents
58
+ */
59
+ get parents(): any[];
60
+ get firstChild(): WidgetNode;
61
+ get lastChild(): WidgetNode;
62
+ getSibling(lastProp: string): WidgetNode | undefined;
63
+ getSiblings(): WidgetNode[];
64
+ /**
65
+ * 是否是叶子节点
66
+ */
67
+ get isLeaf(): boolean;
68
+ appendChild(node: WidgetNode): WidgetNode[] | (WidgetNode & any[]);
69
+ removeChild(node: WidgetNode): WidgetNode[] | (WidgetNode & any[]);
70
+ }
71
+ declare class WidgetTree {
72
+ widgetMap: Record<string, WidgetNode>;
73
+ addWidgetNode(path: string, instance: any, type: 'node' | 'group', index?: number): void;
74
+ removeWidgetNode(path: string, instance: any): void;
75
+ }
76
+
77
+ declare function createForm<T>(opts?: Partial<IFormOption<T>>): vue_types_vue.ExtendedVue<Vue__default<Record<string, any>, Record<string, any>, never, never, (event: string, ...args: any[]) => Vue__default<Record<string, any>, Record<string, any>, never, never, any>>, {
38
78
  rootData: {};
39
79
  formKey: string;
80
+ widgetTree: WidgetTree;
40
81
  }, {
41
82
  initFormData(): void;
42
83
  emitFormValueChange(newValue: any, oldValue: any): void;
43
- validateForm: () => boolean;
44
- validateFormItem: (path: string) => IValidateResult;
45
- validate: () => Promise<IValidateResult[]>;
84
+ validateForm(): boolean;
85
+ validateFormItem(path: string): IValidateResult;
86
+ validate(): Promise<IValidateResult[]>;
46
87
  validateSchema: (schema: ajv.AnySchema) => Promise<unknown>;
47
88
  }, unknown, {
48
89
  value: any;
@@ -54,9 +95,10 @@ declare function createForm<T>(opts?: Partial<IFormOption<T>>): vue_types_vue.Ex
54
95
  context: any;
55
96
  httpAdapter: any;
56
97
  readonly: boolean;
57
- readonlyMode: any;
98
+ disabled: boolean;
99
+ readonlyMode: string;
58
100
  labelWidth: number;
59
- }>;
101
+ }, {}, Vue.ComponentOptionsMixin, Vue.ComponentOptionsMixin>;
60
102
 
61
103
  declare class FormEvent {
62
104
  callbacks: Record<string, Record<string, Array<Function>>>;
@@ -10,8 +10,12 @@ export declare function intersection(arr1: any, arr2: any): any;
10
10
  export declare function gcd(a: any, b: any): any;
11
11
  export declare function scm(a: any, b: any): number;
12
12
  export declare function initializationValue(type: JSONSchema6TypeName, defaultInitValue?: Partial<Record<JSONSchema6TypeName, any>>): any;
13
- export declare function mergeDeep<T>(target: any, ...sources: any[]): T;
13
+ type DeepPartial<T> = {
14
+ [P in keyof T]?: T[P] extends object ? DeepPartial<T[P]> : T[P];
15
+ };
16
+ export declare function mergeDeep<T extends object>(target: Partial<T>, ...sources: DeepPartial<T>[]): T;
14
17
  export declare function deepEquals(a: any, b: any, ca?: any[], cb?: any[]): any;
15
18
  export declare function orderProperties(properties: any, order: any): string[];
16
19
  export declare function upperFirstLetter(str: string): string;
17
20
  export declare const getCookie: (name: any) => string | null;
21
+ export {};
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.0.42",
2
+ "version": "0.0.44",
3
3
  "main": "dist/bkui-form-umd-min.js",
4
4
  "name": "@blueking/bkui-form",
5
5
  "scripts": {
@@ -59,17 +59,17 @@
59
59
  "ts-jest": "^27.1.1",
60
60
  "ts-node": "^10.4.0",
61
61
  "tslib": "^2.3.1",
62
- "typescript": "^4.4.3",
63
- "vue": "2.6.12",
64
- "vue-template-compiler": "2.6.12"
62
+ "typescript": "^4.4.3"
65
63
  },
66
64
  "dependencies": {
67
65
  "ajv": "^8.11.0",
68
66
  "ajv-formats": "^2.1.1",
69
67
  "ajv-i18n": "^4.2.0",
70
- "bk-magic-vue": "2.4.8",
68
+ "bk-magic-vue": "2.5.10-beta.3",
71
69
  "koa": "^2.7.0",
72
- "koa-static": "^5.0.0"
70
+ "koa-static": "^5.0.0",
71
+ "vue": "^2.7.14",
72
+ "vue-template-compiler": "^2.7.14"
73
73
  },
74
74
  "engines": {
75
75
  "node": ">= 12.16.3",