naive-ui 2.37.0 → 2.37.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +147 -73
- package/dist/index.prod.js +1 -1
- package/es/_internal/clear/src/Clear.mjs +0 -2
- package/es/auto-complete/src/AutoComplete.d.ts +4 -0
- package/es/auto-complete/src/AutoComplete.mjs +8 -2
- package/es/collapse/src/Collapse.d.ts +13 -0
- package/es/collapse/src/Collapse.mjs +4 -0
- package/es/collapse/src/CollapseItem.d.ts +1 -0
- package/es/collapse/src/CollapseItem.mjs +18 -6
- package/es/collapse/src/styles/index.cssr.mjs +2 -3
- package/es/data-table/src/utils.mjs +3 -2
- package/es/date-picker/src/interface.d.ts +21 -2
- package/es/date-picker/src/panel/date.d.ts +1 -1
- package/es/date-picker/src/panel/date.mjs +6 -1
- package/es/date-picker/src/panel/datetime.d.ts +1 -1
- package/es/date-picker/src/panel/datetime.mjs +6 -1
- package/es/date-picker/src/panel/month.d.ts +1 -1
- package/es/date-picker/src/panel/month.mjs +12 -1
- package/es/date-picker/src/panel/panelHeader.d.ts +2 -2
- package/es/date-picker/src/panel/use-calendar.d.ts +2 -2
- package/es/date-picker/src/panel/use-calendar.mjs +19 -3
- package/es/date-picker/src/panel/use-dual-calendar.mjs +3 -1
- package/es/date-picker/src/validation-utils.mjs +3 -1
- package/es/form/src/Form.mjs +20 -12
- package/es/form/src/FormItem.mjs +4 -2
- package/es/form/src/interface.d.ts +8 -2
- package/es/tree/src/Tree.d.ts +1 -1
- package/es/tree/src/interface.d.ts +1 -1
- package/es/tree/src/keyboard.d.ts +1 -1
- package/es/tree/src/keyboard.mjs +8 -8
- package/es/tree-select/src/TreeSelect.d.ts +1 -1
- package/es/tree-select/src/TreeSelect.mjs +3 -3
- package/es/version.d.ts +1 -1
- package/es/version.mjs +1 -1
- package/lib/_internal/clear/src/Clear.js +0 -2
- package/lib/auto-complete/src/AutoComplete.d.ts +4 -0
- package/lib/auto-complete/src/AutoComplete.js +3 -3
- package/lib/collapse/src/Collapse.d.ts +13 -0
- package/lib/collapse/src/Collapse.js +3 -0
- package/lib/collapse/src/CollapseItem.d.ts +1 -0
- package/lib/collapse/src/CollapseItem.js +16 -4
- package/lib/collapse/src/styles/index.cssr.js +1 -2
- package/lib/data-table/src/utils.js +5 -2
- package/lib/date-picker/src/interface.d.ts +21 -2
- package/lib/date-picker/src/panel/date.d.ts +1 -1
- package/lib/date-picker/src/panel/date.js +6 -1
- package/lib/date-picker/src/panel/datetime.d.ts +1 -1
- package/lib/date-picker/src/panel/datetime.js +6 -1
- package/lib/date-picker/src/panel/month.d.ts +1 -1
- package/lib/date-picker/src/panel/month.js +18 -1
- package/lib/date-picker/src/panel/panelHeader.d.ts +2 -2
- package/lib/date-picker/src/panel/use-calendar.d.ts +2 -2
- package/lib/date-picker/src/panel/use-calendar.js +22 -3
- package/lib/date-picker/src/panel/use-dual-calendar.js +2 -1
- package/lib/date-picker/src/validation-utils.js +1 -1
- package/lib/form/src/Form.js +20 -12
- package/lib/form/src/FormItem.js +2 -2
- package/lib/form/src/interface.d.ts +8 -2
- package/lib/tree/src/Tree.d.ts +1 -1
- package/lib/tree/src/interface.d.ts +1 -1
- package/lib/tree/src/keyboard.d.ts +1 -1
- package/lib/tree/src/keyboard.js +8 -8
- package/lib/tree-select/src/TreeSelect.d.ts +1 -1
- package/lib/tree-select/src/TreeSelect.js +3 -3
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/package.json +1 -1
- package/web-types.json +33 -33
|
@@ -1192,7 +1192,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
1192
1192
|
} | null>;
|
|
1193
1193
|
treeInstRef: import("vue").Ref<{
|
|
1194
1194
|
handleKeydown: (e: KeyboardEvent) => {
|
|
1195
|
-
|
|
1195
|
+
enterBehavior: TreeOverrideNodeClickBehaviorReturn | null;
|
|
1196
1196
|
};
|
|
1197
1197
|
} | null>;
|
|
1198
1198
|
mergedClsPrefix: import("vue").Ref<string>;
|
|
@@ -504,17 +504,17 @@ export default defineComponent({
|
|
|
504
504
|
return treeInst.handleKeydown(e);
|
|
505
505
|
}
|
|
506
506
|
return {
|
|
507
|
-
|
|
507
|
+
enterBehavior: null
|
|
508
508
|
};
|
|
509
509
|
}
|
|
510
510
|
function handleKeydown(e) {
|
|
511
511
|
if (e.key === 'Enter') {
|
|
512
512
|
if (mergedShowRef.value) {
|
|
513
513
|
const {
|
|
514
|
-
|
|
514
|
+
enterBehavior
|
|
515
515
|
} = treeHandleKeydown(e);
|
|
516
516
|
if (!props.multiple) {
|
|
517
|
-
switch (
|
|
517
|
+
switch (enterBehavior) {
|
|
518
518
|
case 'default':
|
|
519
519
|
case 'toggleSelect':
|
|
520
520
|
closeMenu();
|
package/es/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare const _default: "2.37.
|
|
1
|
+
declare const _default: "2.37.2";
|
|
2
2
|
export default _default;
|
package/es/version.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export default '2.37.
|
|
1
|
+
export default '2.37.2';
|
|
@@ -24,9 +24,7 @@ exports.default = (0, vue_1.defineComponent)({
|
|
|
24
24
|
(0, _mixins_1.useStyle)('-base-clear', index_cssr_1.default, (0, vue_1.toRef)(props, 'clsPrefix'));
|
|
25
25
|
return {
|
|
26
26
|
handleMouseDown(e) {
|
|
27
|
-
var _a;
|
|
28
27
|
e.preventDefault();
|
|
29
|
-
(_a = props.onClear) === null || _a === void 0 ? void 0 : _a.call(props, e);
|
|
30
28
|
}
|
|
31
29
|
};
|
|
32
30
|
},
|
|
@@ -41,6 +41,7 @@ export declare const autoCompleteProps: {
|
|
|
41
41
|
readonly blurAfterSelect: BooleanConstructor;
|
|
42
42
|
readonly clearAfterSelect: BooleanConstructor;
|
|
43
43
|
readonly getShow: PropType<(inputValue: string) => boolean>;
|
|
44
|
+
readonly showEmpty: BooleanConstructor;
|
|
44
45
|
readonly inputProps: PropType<InputHTMLAttributes>;
|
|
45
46
|
readonly renderOption: PropType<RenderOption>;
|
|
46
47
|
readonly renderLabel: PropType<RenderLabel>;
|
|
@@ -448,6 +449,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
448
449
|
readonly blurAfterSelect: BooleanConstructor;
|
|
449
450
|
readonly clearAfterSelect: BooleanConstructor;
|
|
450
451
|
readonly getShow: PropType<(inputValue: string) => boolean>;
|
|
452
|
+
readonly showEmpty: BooleanConstructor;
|
|
451
453
|
readonly inputProps: PropType<InputHTMLAttributes>;
|
|
452
454
|
readonly renderOption: PropType<RenderOption>;
|
|
453
455
|
readonly renderLabel: PropType<RenderLabel>;
|
|
@@ -1157,6 +1159,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
1157
1159
|
readonly blurAfterSelect: BooleanConstructor;
|
|
1158
1160
|
readonly clearAfterSelect: BooleanConstructor;
|
|
1159
1161
|
readonly getShow: PropType<(inputValue: string) => boolean>;
|
|
1162
|
+
readonly showEmpty: BooleanConstructor;
|
|
1160
1163
|
readonly inputProps: PropType<InputHTMLAttributes>;
|
|
1161
1164
|
readonly renderOption: PropType<RenderOption>;
|
|
1162
1165
|
readonly renderLabel: PropType<RenderLabel>;
|
|
@@ -1538,5 +1541,6 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
1538
1541
|
readonly defaultValue: string | null;
|
|
1539
1542
|
readonly blurAfterSelect: boolean;
|
|
1540
1543
|
readonly clearAfterSelect: boolean;
|
|
1544
|
+
readonly showEmpty: boolean;
|
|
1541
1545
|
}, {}>;
|
|
1542
1546
|
export default _default;
|
|
@@ -36,7 +36,7 @@ exports.autoCompleteProps = Object.assign(Object.assign({}, _mixins_1.useTheme.p
|
|
|
36
36
|
}, placeholder: String, placement: {
|
|
37
37
|
type: String,
|
|
38
38
|
default: 'bottom-start'
|
|
39
|
-
}, value: String, blurAfterSelect: Boolean, clearAfterSelect: Boolean, getShow: Function, inputProps: Object, renderOption: Function, renderLabel: Function, size: String, options: {
|
|
39
|
+
}, value: String, blurAfterSelect: Boolean, clearAfterSelect: Boolean, getShow: Function, showEmpty: Boolean, inputProps: Object, renderOption: Function, renderLabel: Function, size: String, options: {
|
|
40
40
|
type: Array,
|
|
41
41
|
default: () => []
|
|
42
42
|
}, zIndex: Number, status: String, 'onUpdate:value': [Function, Array], onUpdateValue: [Function, Array], onSelect: [Function, Array], onBlur: [Function, Array], onFocus: [Function, Array],
|
|
@@ -77,7 +77,7 @@ exports.default = (0, vue_1.defineComponent)({
|
|
|
77
77
|
const activeRef = (0, vue_1.computed)(() => {
|
|
78
78
|
return (mergedShowOptionsRef.value &&
|
|
79
79
|
canBeActivatedRef.value &&
|
|
80
|
-
!!selectOptionsRef.value.length);
|
|
80
|
+
(props.showEmpty ? true : !!selectOptionsRef.value.length));
|
|
81
81
|
});
|
|
82
82
|
const treeMateRef = (0, vue_1.computed)(() => (0, treemate_1.createTreeMate)(selectOptionsRef.value, (0, utils_1.createTmOptions)('value', 'children')));
|
|
83
83
|
function doUpdateValue(value) {
|
|
@@ -282,7 +282,7 @@ exports.default = (0, vue_1.defineComponent)({
|
|
|
282
282
|
], style: [
|
|
283
283
|
menuProps === null || menuProps === void 0 ? void 0 : menuProps.style,
|
|
284
284
|
this.cssVars
|
|
285
|
-
], treeMate: this.treeMate, multiple: false, renderLabel: this.renderLabel, renderOption: this.renderOption, size: "medium", onToggle: this.handleToggle })), [
|
|
285
|
+
], treeMate: this.treeMate, multiple: false, renderLabel: this.renderLabel, renderOption: this.renderOption, size: "medium", onToggle: this.handleToggle }), { empty: () => { var _a, _b; return (_b = (_a = this.$slots).empty) === null || _b === void 0 ? void 0 : _b.call(_a); } }), [
|
|
286
286
|
[
|
|
287
287
|
vdirs_1.clickoutside,
|
|
288
288
|
this.handleClickOutsideMenu,
|
|
@@ -19,6 +19,10 @@ export declare const collapseProps: {
|
|
|
19
19
|
readonly type: PropType<"show" | "if">;
|
|
20
20
|
readonly default: "if";
|
|
21
21
|
};
|
|
22
|
+
readonly triggerAreas: {
|
|
23
|
+
readonly type: PropType<("extra" | "main" | "arrow")[]>;
|
|
24
|
+
readonly default: () => string[];
|
|
25
|
+
};
|
|
22
26
|
readonly onItemHeaderClick: PropType<MaybeArray<OnItemHeaderClick>>;
|
|
23
27
|
readonly 'onUpdate:expandedNames': PropType<MaybeArray<OnUpdateExpandedNames>>;
|
|
24
28
|
readonly onUpdateExpandedNames: PropType<MaybeArray<OnUpdateExpandedNames>>;
|
|
@@ -94,6 +98,10 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
94
98
|
readonly type: PropType<"show" | "if">;
|
|
95
99
|
readonly default: "if";
|
|
96
100
|
};
|
|
101
|
+
readonly triggerAreas: {
|
|
102
|
+
readonly type: PropType<("extra" | "main" | "arrow")[]>;
|
|
103
|
+
readonly default: () => string[];
|
|
104
|
+
};
|
|
97
105
|
readonly onItemHeaderClick: PropType<MaybeArray<OnItemHeaderClick>>;
|
|
98
106
|
readonly 'onUpdate:expandedNames': PropType<MaybeArray<OnUpdateExpandedNames>>;
|
|
99
107
|
readonly onUpdateExpandedNames: PropType<MaybeArray<OnUpdateExpandedNames>>;
|
|
@@ -302,6 +310,10 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
302
310
|
readonly type: PropType<"show" | "if">;
|
|
303
311
|
readonly default: "if";
|
|
304
312
|
};
|
|
313
|
+
readonly triggerAreas: {
|
|
314
|
+
readonly type: PropType<("extra" | "main" | "arrow")[]>;
|
|
315
|
+
readonly default: () => string[];
|
|
316
|
+
};
|
|
305
317
|
readonly onItemHeaderClick: PropType<MaybeArray<OnItemHeaderClick>>;
|
|
306
318
|
readonly 'onUpdate:expandedNames': PropType<MaybeArray<OnUpdateExpandedNames>>;
|
|
307
319
|
readonly onUpdateExpandedNames: PropType<MaybeArray<OnUpdateExpandedNames>>;
|
|
@@ -354,6 +366,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
354
366
|
readonly defaultExpandedNames: string | number | (string | number)[] | null;
|
|
355
367
|
readonly arrowPlacement: "left" | "right";
|
|
356
368
|
readonly accordion: boolean;
|
|
369
|
+
readonly triggerAreas: ("extra" | "main" | "arrow")[];
|
|
357
370
|
readonly onExpandedNamesChange: MaybeArray<OnUpdateExpandedNames> | undefined;
|
|
358
371
|
}, {}>;
|
|
359
372
|
export default _default;
|
|
@@ -23,6 +23,9 @@ exports.collapseProps = Object.assign(Object.assign({}, _mixins_1.useTheme.props
|
|
|
23
23
|
}, displayDirective: {
|
|
24
24
|
type: String,
|
|
25
25
|
default: 'if'
|
|
26
|
+
}, triggerAreas: {
|
|
27
|
+
type: Array,
|
|
28
|
+
default: () => ['main', 'extra', 'arrow']
|
|
26
29
|
}, onItemHeaderClick: [Function, Array], 'onUpdate:expandedNames': [Function, Array], onUpdateExpandedNames: [Function, Array],
|
|
27
30
|
// deprecated
|
|
28
31
|
onExpandedNamesChange: {
|
|
@@ -20,6 +20,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
20
20
|
randomName: string;
|
|
21
21
|
mergedClsPrefix: import("vue").Ref<string>;
|
|
22
22
|
collapsed: import("vue").ComputedRef<boolean>;
|
|
23
|
+
triggerAreas: import("vue").Ref<("extra" | "main" | "arrow")[]>;
|
|
23
24
|
mergedDisplayDirective: import("vue").ComputedRef<"show" | "if">;
|
|
24
25
|
arrowPlacement: import("vue").ComputedRef<"left" | "right">;
|
|
25
26
|
handleClick(e: MouseEvent): void;
|
|
@@ -54,6 +54,7 @@ exports.default = (0, vue_1.defineComponent)({
|
|
|
54
54
|
randomName,
|
|
55
55
|
mergedClsPrefix: mergedClsPrefixRef,
|
|
56
56
|
collapsed: collapsedRef,
|
|
57
|
+
triggerAreas: (0, vue_1.toRef)(collapseProps, 'triggerAreas'),
|
|
57
58
|
mergedDisplayDirective: (0, vue_1.computed)(() => {
|
|
58
59
|
const { displayDirective } = props;
|
|
59
60
|
if (displayDirective) {
|
|
@@ -67,6 +68,14 @@ exports.default = (0, vue_1.defineComponent)({
|
|
|
67
68
|
return collapseProps.arrowPlacement;
|
|
68
69
|
}),
|
|
69
70
|
handleClick(e) {
|
|
71
|
+
let happensInArea = 'main';
|
|
72
|
+
if ((0, seemly_1.happensIn)(e, 'arrow'))
|
|
73
|
+
happensInArea = 'arrow';
|
|
74
|
+
if ((0, seemly_1.happensIn)(e, 'extra'))
|
|
75
|
+
happensInArea = 'extra';
|
|
76
|
+
if (!collapseProps.triggerAreas.includes(happensInArea)) {
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
70
79
|
if (NCollapse && !props.disabled) {
|
|
71
80
|
NCollapse.toggleItem(collapsedRef.value, mergedNameRef.value, e);
|
|
72
81
|
}
|
|
@@ -74,7 +83,7 @@ exports.default = (0, vue_1.defineComponent)({
|
|
|
74
83
|
};
|
|
75
84
|
},
|
|
76
85
|
render() {
|
|
77
|
-
const { collapseSlots, $slots, arrowPlacement, collapsed, mergedDisplayDirective, mergedClsPrefix, disabled } = this;
|
|
86
|
+
const { collapseSlots, $slots, arrowPlacement, collapsed, mergedDisplayDirective, mergedClsPrefix, disabled, triggerAreas } = this;
|
|
78
87
|
const headerNode = (0, _utils_1.resolveSlotWithProps)($slots.header, { collapsed }, () => [this.title]);
|
|
79
88
|
const headerExtraSlot = $slots['header-extra'] || collapseSlots['header-extra'];
|
|
80
89
|
const arrowSlot = $slots.arrow || collapseSlots.arrow;
|
|
@@ -82,7 +91,10 @@ exports.default = (0, vue_1.defineComponent)({
|
|
|
82
91
|
`${mergedClsPrefix}-collapse-item`,
|
|
83
92
|
`${mergedClsPrefix}-collapse-item--${arrowPlacement}-arrow-placement`,
|
|
84
93
|
disabled && `${mergedClsPrefix}-collapse-item--disabled`,
|
|
85
|
-
!collapsed && `${mergedClsPrefix}-collapse-item--active
|
|
94
|
+
!collapsed && `${mergedClsPrefix}-collapse-item--active`,
|
|
95
|
+
triggerAreas.map((area) => {
|
|
96
|
+
return `${mergedClsPrefix}-collapse-item--trigger-area-${area}`;
|
|
97
|
+
})
|
|
86
98
|
] },
|
|
87
99
|
(0, vue_1.h)("div", { class: [
|
|
88
100
|
`${mergedClsPrefix}-collapse-item__header`,
|
|
@@ -90,7 +102,7 @@ exports.default = (0, vue_1.defineComponent)({
|
|
|
90
102
|
] },
|
|
91
103
|
(0, vue_1.h)("div", { class: `${mergedClsPrefix}-collapse-item__header-main`, onClick: this.handleClick },
|
|
92
104
|
arrowPlacement === 'right' && headerNode,
|
|
93
|
-
(0, vue_1.h)("div", { class: `${mergedClsPrefix}-collapse-item-arrow`, key: this.rtlEnabled ? 0 : 1 }, (0, _utils_1.resolveSlotWithProps)(arrowSlot, { collapsed }, () => {
|
|
105
|
+
(0, vue_1.h)("div", { class: `${mergedClsPrefix}-collapse-item-arrow`, key: this.rtlEnabled ? 0 : 1, "data-arrow": true }, (0, _utils_1.resolveSlotWithProps)(arrowSlot, { collapsed }, () => {
|
|
94
106
|
var _a;
|
|
95
107
|
return [
|
|
96
108
|
(0, vue_1.h)(_internal_1.NBaseIcon, { clsPrefix: mergedClsPrefix }, {
|
|
@@ -99,7 +111,7 @@ exports.default = (0, vue_1.defineComponent)({
|
|
|
99
111
|
];
|
|
100
112
|
})),
|
|
101
113
|
arrowPlacement === 'left' && headerNode),
|
|
102
|
-
(0, _utils_1.resolveWrappedSlotWithProps)(headerExtraSlot, { collapsed }, (children) => ((0, vue_1.h)("div", { class: `${mergedClsPrefix}-collapse-item__header-extra`, onClick: this.handleClick }, children)))),
|
|
114
|
+
(0, _utils_1.resolveWrappedSlotWithProps)(headerExtraSlot, { collapsed }, (children) => ((0, vue_1.h)("div", { class: `${mergedClsPrefix}-collapse-item__header-extra`, onClick: this.handleClick, "data-extra": true }, children)))),
|
|
103
115
|
(0, vue_1.h)(CollapseItemContent_1.default, { clsPrefix: mergedClsPrefix, displayDirective: mergedDisplayDirective, show: !collapsed }, $slots)));
|
|
104
116
|
}
|
|
105
117
|
});
|
|
@@ -31,7 +31,7 @@ exports.default = (0, cssr_1.cB)('collapse', 'width: 100%;', [(0, cssr_1.cB)('co
|
|
|
31
31
|
color: var(--n-arrow-color-disabled);
|
|
32
32
|
`)])]), (0, cssr_1.cB)('collapse-item', 'margin-left: 32px;'), (0, cssr_1.c)('&:first-child', 'margin-top: 0;'), (0, cssr_1.c)('&:first-child >', [(0, cssr_1.cE)('header', 'padding-top: 0;')]), (0, cssr_1.cM)('left-arrow-placement', [(0, cssr_1.cE)('header', [(0, cssr_1.cB)('collapse-item-arrow', 'margin-right: 4px;')])]), (0, cssr_1.cM)('right-arrow-placement', [(0, cssr_1.cE)('header', [(0, cssr_1.cB)('collapse-item-arrow', 'margin-left: 4px;')])]), (0, cssr_1.cE)('content-wrapper', [(0, cssr_1.cE)('content-inner', 'padding-top: 16px;'), (0, fade_in_height_expand_cssr_1.fadeInHeightExpandTransition)({
|
|
33
33
|
duration: '0.15s'
|
|
34
|
-
})]), (0, cssr_1.cM)('active', [(0, cssr_1.cE)('header', [(0, cssr_1.cM)('active', [(0, cssr_1.cB)('collapse-item-arrow', 'transform: rotate(90deg);')])])]), (0, cssr_1.c)('&:not(:first-child)', 'border-top: 1px solid var(--n-divider-color);'), (0, cssr_1.cE)('header', `
|
|
34
|
+
})]), (0, cssr_1.cM)('active', [(0, cssr_1.cE)('header', [(0, cssr_1.cM)('active', [(0, cssr_1.cB)('collapse-item-arrow', 'transform: rotate(90deg);')])])]), (0, cssr_1.c)('&:not(:first-child)', 'border-top: 1px solid var(--n-divider-color);'), (0, cssr_1.cNotM)('disabled', [(0, cssr_1.cM)('trigger-area-main', [(0, cssr_1.cE)('header', [(0, cssr_1.cE)('header-main', 'cursor: pointer;'), (0, cssr_1.cB)('collapse-item-arrow', 'cursor: default;')])]), (0, cssr_1.cM)('trigger-area-arrow', [(0, cssr_1.cE)('header', [(0, cssr_1.cB)('collapse-item-arrow', 'cursor: pointer;')])]), (0, cssr_1.cM)('trigger-area-extra', [(0, cssr_1.cE)('header', [(0, cssr_1.cE)('header-extra', 'cursor: pointer;')])])]), (0, cssr_1.cE)('header', `
|
|
35
35
|
font-size: var(--n-title-font-size);
|
|
36
36
|
display: flex;
|
|
37
37
|
flex-wrap: nowrap;
|
|
@@ -48,7 +48,6 @@ exports.default = (0, cssr_1.cB)('collapse', 'width: 100%;', [(0, cssr_1.cB)('co
|
|
|
48
48
|
transition: color .3s var(--n-bezier);
|
|
49
49
|
flex: 1;
|
|
50
50
|
color: var(--n-title-text-color);
|
|
51
|
-
cursor: pointer;
|
|
52
51
|
`), (0, cssr_1.cE)('header-extra', `
|
|
53
52
|
display: flex;
|
|
54
53
|
align-items: center;
|
|
@@ -159,9 +159,12 @@ function formatCsvCell(value) {
|
|
|
159
159
|
}
|
|
160
160
|
}
|
|
161
161
|
function generateCsv(columns, data) {
|
|
162
|
-
const
|
|
162
|
+
const exportableColumns = columns.filter((column) => column.type !== 'expand' && column.type !== 'selection');
|
|
163
|
+
const header = exportableColumns.map((col) => col.title).join(',');
|
|
163
164
|
const rows = data.map((row) => {
|
|
164
|
-
return
|
|
165
|
+
return exportableColumns
|
|
166
|
+
.map((col) => formatCsvCell(row[col.key]))
|
|
167
|
+
.join(',');
|
|
165
168
|
});
|
|
166
169
|
return [header, ...rows].join('\n');
|
|
167
170
|
}
|
|
@@ -71,8 +71,27 @@ export type DatePickerInjection = {
|
|
|
71
71
|
} & ReturnType<typeof uniCalendarValidation> & ReturnType<typeof dualCalendarValidation>;
|
|
72
72
|
export declare const datePickerInjectionKey: import("vue").InjectionKey<DatePickerInjection>;
|
|
73
73
|
export type IsDateDisabled = IsSingleDateDisabled | IsRangeDateDisabled;
|
|
74
|
-
export type
|
|
75
|
-
|
|
74
|
+
export type IsSingleDateDisabledDetail = {
|
|
75
|
+
type: 'date';
|
|
76
|
+
year: number;
|
|
77
|
+
month: number;
|
|
78
|
+
date: number;
|
|
79
|
+
} | {
|
|
80
|
+
type: 'month';
|
|
81
|
+
year: number;
|
|
82
|
+
month: number;
|
|
83
|
+
} | {
|
|
84
|
+
type: 'year';
|
|
85
|
+
year: number;
|
|
86
|
+
} | {
|
|
87
|
+
type: 'quarter';
|
|
88
|
+
year: number;
|
|
89
|
+
quarter: number;
|
|
90
|
+
} | {
|
|
91
|
+
type: 'input';
|
|
92
|
+
};
|
|
93
|
+
export type IsSingleDateDisabled = (timestamp: number, detail: IsSingleDateDisabledDetail) => boolean;
|
|
94
|
+
export type IsRangeDateDisabled = (timestamp: number, position: 'start' | 'end', value: [number, number] | null) => boolean;
|
|
76
95
|
export interface TimeValidator {
|
|
77
96
|
isHourDisabled?: IsHourDisabled;
|
|
78
97
|
isMinuteDisabled?: IsMinuteDisabled;
|
|
@@ -1170,7 +1170,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
1170
1170
|
calendarYear: import("vue").ComputedRef<string>;
|
|
1171
1171
|
calendarMonth: import("vue").ComputedRef<string>;
|
|
1172
1172
|
weekdays: import("vue").ComputedRef<string[]>;
|
|
1173
|
-
mergedIsDateDisabled: (ts: number) => boolean;
|
|
1173
|
+
mergedIsDateDisabled: (ts: number, detail: import("../interface").IsSingleDateDisabledDetail) => boolean;
|
|
1174
1174
|
nextYear: () => void;
|
|
1175
1175
|
prevYear: () => void;
|
|
1176
1176
|
nextMonth: () => void;
|
|
@@ -57,7 +57,12 @@ exports.default = (0, vue_1.defineComponent)({
|
|
|
57
57
|
[`${mergedClsPrefix}-date-panel-date--current`]: dateItem.isCurrentDate,
|
|
58
58
|
[`${mergedClsPrefix}-date-panel-date--selected`]: dateItem.selected,
|
|
59
59
|
[`${mergedClsPrefix}-date-panel-date--excluded`]: !dateItem.inCurrentMonth,
|
|
60
|
-
[`${mergedClsPrefix}-date-panel-date--disabled`]: this.mergedIsDateDisabled(dateItem.ts
|
|
60
|
+
[`${mergedClsPrefix}-date-panel-date--disabled`]: this.mergedIsDateDisabled(dateItem.ts, {
|
|
61
|
+
type: 'date',
|
|
62
|
+
year: dateItem.dateObject.year,
|
|
63
|
+
month: dateItem.dateObject.month,
|
|
64
|
+
date: dateItem.dateObject.date
|
|
65
|
+
}),
|
|
61
66
|
[`${mergedClsPrefix}-date-panel-date--week-hovered`]: this.isWeekHovered(dateItem),
|
|
62
67
|
[`${mergedClsPrefix}-date-panel-date--week-selected`]: dateItem.inSelectedWeek
|
|
63
68
|
}
|
|
@@ -1147,7 +1147,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
1147
1147
|
calendarYear: import("vue").ComputedRef<string>;
|
|
1148
1148
|
calendarMonth: import("vue").ComputedRef<string>;
|
|
1149
1149
|
weekdays: import("vue").ComputedRef<string[]>;
|
|
1150
|
-
mergedIsDateDisabled: (ts: number) => boolean;
|
|
1150
|
+
mergedIsDateDisabled: (ts: number, detail: import("../interface").IsSingleDateDisabledDetail) => boolean;
|
|
1151
1151
|
nextYear: () => void;
|
|
1152
1152
|
prevYear: () => void;
|
|
1153
1153
|
nextMonth: () => void;
|
|
@@ -51,7 +51,12 @@ exports.default = (0, vue_1.defineComponent)({
|
|
|
51
51
|
[`${mergedClsPrefix}-date-panel-date--current`]: dateItem.isCurrentDate,
|
|
52
52
|
[`${mergedClsPrefix}-date-panel-date--selected`]: dateItem.selected,
|
|
53
53
|
[`${mergedClsPrefix}-date-panel-date--excluded`]: !dateItem.inCurrentMonth,
|
|
54
|
-
[`${mergedClsPrefix}-date-panel-date--disabled`]: this.mergedIsDateDisabled(dateItem.ts
|
|
54
|
+
[`${mergedClsPrefix}-date-panel-date--disabled`]: this.mergedIsDateDisabled(dateItem.ts, {
|
|
55
|
+
type: 'date',
|
|
56
|
+
year: dateItem.dateObject.year,
|
|
57
|
+
month: dateItem.dateObject.month,
|
|
58
|
+
date: dateItem.dateObject.date
|
|
59
|
+
})
|
|
55
60
|
}
|
|
56
61
|
], onClick: () => {
|
|
57
62
|
this.handleDateClick(dateItem);
|
|
@@ -1155,7 +1155,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
1155
1155
|
calendarYear: import("vue").ComputedRef<string>;
|
|
1156
1156
|
calendarMonth: import("vue").ComputedRef<string>;
|
|
1157
1157
|
weekdays: import("vue").ComputedRef<string[]>;
|
|
1158
|
-
mergedIsDateDisabled: (ts: number) => boolean;
|
|
1158
|
+
mergedIsDateDisabled: (ts: number, detail: import("../interface").IsSingleDateDisabledDetail) => boolean;
|
|
1159
1159
|
nextYear: () => void;
|
|
1160
1160
|
prevYear: () => void;
|
|
1161
1161
|
nextMonth: () => void;
|
|
@@ -45,7 +45,24 @@ exports.default = (0, vue_1.defineComponent)({
|
|
|
45
45
|
item.selected &&
|
|
46
46
|
`${mergedClsPrefix}-date-panel-month-calendar__picker-col-item--selected`,
|
|
47
47
|
!useAsQuickJump &&
|
|
48
|
-
mergedIsDateDisabled(item.ts
|
|
48
|
+
mergedIsDateDisabled(item.ts, item.type === 'year'
|
|
49
|
+
? {
|
|
50
|
+
type: 'year',
|
|
51
|
+
year: item.dateObject.year
|
|
52
|
+
}
|
|
53
|
+
: item.type === 'month'
|
|
54
|
+
? {
|
|
55
|
+
type: 'month',
|
|
56
|
+
year: item.dateObject.year,
|
|
57
|
+
month: item.dateObject.month
|
|
58
|
+
}
|
|
59
|
+
: item.type === 'quarter'
|
|
60
|
+
? {
|
|
61
|
+
type: 'month',
|
|
62
|
+
year: item.dateObject.year,
|
|
63
|
+
month: item.dateObject.quarter
|
|
64
|
+
}
|
|
65
|
+
: null) &&
|
|
49
66
|
`${mergedClsPrefix}-date-panel-month-calendar__picker-col-item--disabled`
|
|
50
67
|
], onClick: () => {
|
|
51
68
|
useAsQuickJump
|
|
@@ -1175,7 +1175,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
1175
1175
|
calendarYear: import("vue").ComputedRef<string>;
|
|
1176
1176
|
calendarMonth: import("vue").ComputedRef<string>;
|
|
1177
1177
|
weekdays: import("vue").ComputedRef<string[]>;
|
|
1178
|
-
mergedIsDateDisabled: (ts: number) => boolean;
|
|
1178
|
+
mergedIsDateDisabled: (ts: number, detail: import("../interface").IsSingleDateDisabledDetail) => boolean;
|
|
1179
1179
|
nextYear: () => void;
|
|
1180
1180
|
prevYear: () => void;
|
|
1181
1181
|
nextMonth: () => void;
|
|
@@ -2385,7 +2385,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
2385
2385
|
calendarYear: import("vue").ComputedRef<string>;
|
|
2386
2386
|
calendarMonth: import("vue").ComputedRef<string>;
|
|
2387
2387
|
weekdays: import("vue").ComputedRef<string[]>;
|
|
2388
|
-
mergedIsDateDisabled: (ts: number) => boolean;
|
|
2388
|
+
mergedIsDateDisabled: (ts: number, detail: import("../interface").IsSingleDateDisabledDetail) => boolean;
|
|
2389
2389
|
nextYear: () => void;
|
|
2390
2390
|
prevYear: () => void;
|
|
2391
2391
|
nextMonth: () => void;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type ExtractPropTypes, type PropType } from 'vue';
|
|
2
2
|
import type { VirtualListInst } from 'vueuc';
|
|
3
3
|
import type { ScrollbarInst } from '../../../_internal';
|
|
4
|
-
import type { Shortcuts } from '../interface';
|
|
4
|
+
import type { IsSingleDateDisabledDetail, Shortcuts } from '../interface';
|
|
5
5
|
import type { DateItem, MonthItem, YearItem, QuarterItem } from '../utils';
|
|
6
6
|
declare const useCalendarProps: {
|
|
7
7
|
readonly actions: {
|
|
@@ -1147,7 +1147,7 @@ declare function useCalendar(props: ExtractPropTypes<typeof useCalendarProps>, t
|
|
|
1147
1147
|
calendarYear: import("vue").ComputedRef<string>;
|
|
1148
1148
|
calendarMonth: import("vue").ComputedRef<string>;
|
|
1149
1149
|
weekdays: import("vue").ComputedRef<string[]>;
|
|
1150
|
-
mergedIsDateDisabled: (ts: number) => boolean;
|
|
1150
|
+
mergedIsDateDisabled: (ts: number, detail: IsSingleDateDisabledDetail) => boolean;
|
|
1151
1151
|
nextYear: () => void;
|
|
1152
1152
|
prevYear: () => void;
|
|
1153
1153
|
nextMonth: () => void;
|
|
@@ -110,11 +110,11 @@ function useCalendar(props, type) {
|
|
|
110
110
|
}
|
|
111
111
|
return (0, date_fns_1.getTime)((0, date_fns_1.startOfDay)(value));
|
|
112
112
|
}
|
|
113
|
-
function mergedIsDateDisabled(ts) {
|
|
113
|
+
function mergedIsDateDisabled(ts, detail) {
|
|
114
114
|
const { isDateDisabled: { value: isDateDisabled } } = validation;
|
|
115
115
|
if (!isDateDisabled)
|
|
116
116
|
return false;
|
|
117
|
-
return isDateDisabled(ts);
|
|
117
|
+
return isDateDisabled(ts, detail);
|
|
118
118
|
}
|
|
119
119
|
function handleDateInput(value) {
|
|
120
120
|
const date = (0, utils_1.strictParse)(value, mergedDateFormatRef.value, new Date(), panelCommon.dateFnsOptions.value);
|
|
@@ -184,7 +184,26 @@ function useCalendar(props, type) {
|
|
|
184
184
|
return false;
|
|
185
185
|
}
|
|
186
186
|
function handleDateClick(dateItem) {
|
|
187
|
-
if (mergedIsDateDisabled(dateItem.ts
|
|
187
|
+
if (mergedIsDateDisabled(dateItem.ts, dateItem.type === 'date'
|
|
188
|
+
? {
|
|
189
|
+
type: 'date',
|
|
190
|
+
year: dateItem.dateObject.year,
|
|
191
|
+
month: dateItem.dateObject.month,
|
|
192
|
+
date: dateItem.dateObject.date
|
|
193
|
+
}
|
|
194
|
+
: dateItem.type === 'month'
|
|
195
|
+
? {
|
|
196
|
+
type: 'month',
|
|
197
|
+
year: dateItem.dateObject.year,
|
|
198
|
+
month: dateItem.dateObject.month
|
|
199
|
+
}
|
|
200
|
+
: dateItem.type === 'year'
|
|
201
|
+
? { type: 'year', year: dateItem.dateObject.year }
|
|
202
|
+
: {
|
|
203
|
+
type: 'quarter',
|
|
204
|
+
year: dateItem.dateObject.year,
|
|
205
|
+
quarter: dateItem.dateObject.quarter
|
|
206
|
+
})) {
|
|
188
207
|
return;
|
|
189
208
|
}
|
|
190
209
|
let newValue;
|
|
@@ -227,8 +227,9 @@ function useDualCalendar(props, type) {
|
|
|
227
227
|
const isDateDisabled = isDateDisabledRef.value;
|
|
228
228
|
if (!isDateDisabled)
|
|
229
229
|
return false;
|
|
230
|
-
if (!Array.isArray(props.value))
|
|
230
|
+
if (!Array.isArray(props.value)) {
|
|
231
231
|
return isDateDisabled(ts, 'start', null);
|
|
232
|
+
}
|
|
232
233
|
if (selectingPhaseRef.value === 'start') {
|
|
233
234
|
// before you really start to select
|
|
234
235
|
return isDateDisabled(ts, 'start', null);
|
|
@@ -34,7 +34,7 @@ function uniCalendarValidation(props, mergedValueRef) {
|
|
|
34
34
|
!isDateDisabled) {
|
|
35
35
|
return false;
|
|
36
36
|
}
|
|
37
|
-
return isDateDisabled(value);
|
|
37
|
+
return isDateDisabled(value, { type: 'input' });
|
|
38
38
|
});
|
|
39
39
|
const isTimeInvalidRef = (0, vue_1.computed)(() => {
|
|
40
40
|
const { type } = props;
|
package/lib/form/src/Form.js
CHANGED
|
@@ -59,7 +59,7 @@ exports.default = (0, vue_1.defineComponent)({
|
|
|
59
59
|
};
|
|
60
60
|
function validate(validateCallback, shouldRuleBeApplied = () => true) {
|
|
61
61
|
return __awaiter(this, void 0, void 0, function* () {
|
|
62
|
-
yield new Promise((resolve, reject) => {
|
|
62
|
+
return yield new Promise((resolve, reject) => {
|
|
63
63
|
const formItemValidationPromises = [];
|
|
64
64
|
for (const key of (0, _utils_1.keysOf)(formItems)) {
|
|
65
65
|
const formItemInstances = formItems[key];
|
|
@@ -71,21 +71,29 @@ exports.default = (0, vue_1.defineComponent)({
|
|
|
71
71
|
}
|
|
72
72
|
void Promise.all(formItemValidationPromises).then((results) => {
|
|
73
73
|
const formInvalid = results.some((result) => !result.valid);
|
|
74
|
-
const errors =
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
74
|
+
const errors = [];
|
|
75
|
+
const warnings = [];
|
|
76
|
+
results.forEach((result) => {
|
|
77
|
+
var _a, _b;
|
|
78
|
+
if ((_a = result.errors) === null || _a === void 0 ? void 0 : _a.length) {
|
|
79
|
+
errors.push(result.errors);
|
|
80
|
+
}
|
|
81
|
+
if ((_b = result.warnings) === null || _b === void 0 ? void 0 : _b.length) {
|
|
82
|
+
warnings.push(result.warnings);
|
|
83
|
+
}
|
|
84
|
+
});
|
|
80
85
|
if (validateCallback) {
|
|
81
|
-
validateCallback(
|
|
82
|
-
warnings:
|
|
83
|
-
? warnings
|
|
84
|
-
: undefined
|
|
86
|
+
validateCallback(errors.length ? errors : undefined, {
|
|
87
|
+
warnings: warnings.length ? warnings : undefined
|
|
85
88
|
});
|
|
86
89
|
}
|
|
90
|
+
if (formInvalid) {
|
|
91
|
+
reject(errors.length ? errors : undefined);
|
|
92
|
+
}
|
|
87
93
|
else {
|
|
88
|
-
|
|
94
|
+
resolve({
|
|
95
|
+
warnings: warnings.length ? warnings : undefined
|
|
96
|
+
});
|
|
89
97
|
}
|
|
90
98
|
});
|
|
91
99
|
});
|
package/lib/form/src/FormItem.js
CHANGED
|
@@ -130,13 +130,13 @@ exports.default = (0, vue_1.defineComponent)({
|
|
|
130
130
|
shouldRuleBeApplied = options.shouldRuleBeApplied;
|
|
131
131
|
asyncValidatorOptions = options.options;
|
|
132
132
|
}
|
|
133
|
-
yield new Promise((resolve, reject) => {
|
|
133
|
+
return yield new Promise((resolve, reject) => {
|
|
134
134
|
void internalValidate(trigger, shouldRuleBeApplied, asyncValidatorOptions).then(({ valid, errors, warnings }) => {
|
|
135
135
|
if (valid) {
|
|
136
136
|
if (validateCallback) {
|
|
137
137
|
validateCallback(undefined, { warnings });
|
|
138
138
|
}
|
|
139
|
-
resolve();
|
|
139
|
+
resolve({ warnings });
|
|
140
140
|
}
|
|
141
141
|
else {
|
|
142
142
|
if (validateCallback) {
|
|
@@ -28,7 +28,11 @@ export interface FormItemInternalValidateResult {
|
|
|
28
28
|
warnings: ValidateError[] | undefined;
|
|
29
29
|
}
|
|
30
30
|
export type FormItemInternalValidate = (trigger: ValidationTrigger | string | null | undefined, shouldRuleBeApplied?: ShouldRuleBeApplied, options?: ValidateOption) => Promise<FormItemInternalValidateResult>;
|
|
31
|
-
export type FormItemValidate = ((options: FormItemValidateOptions) => Promise<
|
|
31
|
+
export type FormItemValidate = ((options: FormItemValidateOptions) => Promise<{
|
|
32
|
+
warnings: ValidateError[] | undefined;
|
|
33
|
+
}>) & ((trigger?: string, callback?: ValidateCallback) => Promise<{
|
|
34
|
+
warnings: ValidateError[] | undefined;
|
|
35
|
+
}>);
|
|
32
36
|
export interface FormItemInst {
|
|
33
37
|
validate: FormItemValidate;
|
|
34
38
|
restoreValidation: () => void;
|
|
@@ -53,7 +57,9 @@ export type ValidateCallback = (errors: ValidateError[] | undefined, extra: {
|
|
|
53
57
|
export type FormValidateCallback = (errors: ValidateError[][] | undefined, extra: {
|
|
54
58
|
warnings: ValidateError[][] | undefined;
|
|
55
59
|
}) => void;
|
|
56
|
-
export type FormValidate = (callback?: FormValidateCallback, shouldRuleBeApplied?: ShouldRuleBeApplied) => Promise<
|
|
60
|
+
export type FormValidate = (callback?: FormValidateCallback, shouldRuleBeApplied?: ShouldRuleBeApplied) => Promise<{
|
|
61
|
+
warnings: ValidateError[][] | undefined;
|
|
62
|
+
}>;
|
|
57
63
|
export type FormValidationError = ValidateError[];
|
|
58
64
|
export interface FormInst {
|
|
59
65
|
validate: FormValidate;
|
package/lib/tree/src/Tree.d.ts
CHANGED
|
@@ -1224,7 +1224,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
1224
1224
|
themeClass: import("vue").Ref<string> | undefined;
|
|
1225
1225
|
onRender: (() => void) | undefined;
|
|
1226
1226
|
handleKeydown: (e: KeyboardEvent) => {
|
|
1227
|
-
|
|
1227
|
+
enterBehavior: import("./interface").TreeOverrideNodeClickBehaviorReturn | null;
|
|
1228
1228
|
};
|
|
1229
1229
|
scrollTo: import("vueuc").VirtualListScrollTo;
|
|
1230
1230
|
getCheckedData: () => {
|
|
@@ -124,7 +124,7 @@ export interface MotionData {
|
|
|
124
124
|
}
|
|
125
125
|
export interface InternalTreeInst {
|
|
126
126
|
handleKeydown: (e: KeyboardEvent) => {
|
|
127
|
-
|
|
127
|
+
enterBehavior: TreeOverrideNodeClickBehaviorReturn | null;
|
|
128
128
|
};
|
|
129
129
|
}
|
|
130
130
|
export interface TreeInst {
|
|
@@ -16,6 +16,6 @@ export declare function useKeyboard({ props, fNodesRef, mergedExpandedKeysRef, m
|
|
|
16
16
|
}): {
|
|
17
17
|
pendingNodeKeyRef: Ref<null | Key>;
|
|
18
18
|
handleKeydown: (e: KeyboardEvent) => {
|
|
19
|
-
|
|
19
|
+
enterBehavior: TreeOverrideNodeClickBehaviorReturn | null;
|
|
20
20
|
};
|
|
21
21
|
};
|