naive-ui 2.32.2 → 2.33.0
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 +40930 -2060
- package/dist/index.prod.js +2 -2
- package/es/_internal/select-menu/src/SelectOption.js +1 -2
- package/es/_utils/cssr/index.js +1 -1
- package/es/card/src/Card.d.ts +24 -1
- package/es/card/src/Card.js +8 -4
- package/es/card/src/styles/index.cssr.js +17 -8
- package/es/card/styles/dark.js +3 -1
- package/es/card/styles/light.d.ts +2 -0
- package/es/card/styles/light.js +1 -1
- package/es/countdown/src/Countdown.js +0 -5
- package/es/data-table/src/use-sorter.js +1 -1
- package/es/dialog/index.d.ts +1 -1
- package/es/dialog/index.js +1 -1
- package/es/dialog/src/DialogEnvironment.d.ts +3 -0
- package/es/dialog/src/DialogEnvironment.js +2 -2
- package/es/dialog/src/DialogProvider.d.ts +4 -0
- package/es/dialog/src/DialogProvider.js +2 -1
- package/es/dialog/src/composables.d.ts +4 -0
- package/es/dialog/src/composables.js +17 -0
- package/es/dialog/src/context.d.ts +2 -1
- package/es/dialog/src/context.js +1 -0
- package/es/form/src/FormItem.d.ts +1 -0
- package/es/form/src/FormItem.js +28 -18
- package/es/form/src/styles/form-item.cssr.js +31 -19
- package/es/form/src/utils.d.ts +1 -0
- package/es/form/src/utils.js +15 -10
- package/es/input/src/utils.js +1 -1
- package/es/locales/common/frFR.js +8 -11
- package/es/menu/src/Menu.d.ts +13 -0
- package/es/menu/src/Menu.js +7 -1
- package/es/modal/src/BodyWrapper.d.ts +2 -0
- package/es/modal/src/Modal.d.ts +18 -0
- package/es/modal/src/presetProps.d.ts +1 -1
- package/es/modal/styles/light.d.ts +2 -0
- package/es/pagination/src/Pagination.js +5 -1
- package/es/radio/src/Radio.d.ts +6 -32
- package/es/radio/src/Radio.js +5 -5
- package/es/radio/src/RadioButton.d.ts +6 -9
- package/es/radio/src/RadioButton.js +7 -11
- package/es/radio/src/RadioGroup.d.ts +8 -8
- package/es/radio/src/RadioGroup.js +2 -2
- package/es/radio/src/interface.d.ts +2 -2
- package/es/radio/src/use-radio.d.ts +4 -32
- package/es/radio/src/use-radio.js +12 -10
- package/es/rate/src/Rate.d.ts +23 -14
- package/es/rate/src/Rate.js +32 -12
- package/es/rate/src/interface.d.ts +2 -0
- package/es/rate/src/interface.js +1 -0
- package/es/rate/src/styles/index.cssr.js +13 -13
- package/es/slider/src/Slider.d.ts +13 -0
- package/es/slider/src/Slider.js +6 -3
- package/es/theme-editor/src/ThemeEditor.d.ts +4 -0
- package/es/theme-editor/src/ThemeEditor.js +25 -10
- package/es/tree/src/styles/index.cssr.js +4 -3
- package/es/version.d.ts +1 -1
- package/es/version.js +1 -1
- package/lib/_internal/select-menu/src/SelectOption.js +1 -2
- package/lib/_utils/cssr/index.js +2 -5
- package/lib/card/src/Card.d.ts +24 -1
- package/lib/card/src/Card.js +8 -4
- package/lib/card/src/styles/index.cssr.js +17 -8
- package/lib/card/styles/dark.js +3 -1
- package/lib/card/styles/light.d.ts +2 -0
- package/lib/card/styles/light.js +1 -1
- package/lib/countdown/src/Countdown.js +0 -5
- package/lib/data-table/src/use-sorter.js +1 -1
- package/lib/dialog/index.d.ts +1 -1
- package/lib/dialog/index.js +4 -3
- package/lib/dialog/src/DialogEnvironment.d.ts +3 -0
- package/lib/dialog/src/DialogEnvironment.js +2 -2
- package/lib/dialog/src/DialogProvider.d.ts +4 -0
- package/lib/dialog/src/DialogProvider.js +1 -0
- package/lib/dialog/src/composables.d.ts +4 -0
- package/lib/dialog/src/{use-dialog.js → composables.js} +9 -1
- package/lib/dialog/src/context.d.ts +2 -1
- package/lib/dialog/src/context.js +2 -1
- package/lib/form/src/FormItem.d.ts +1 -0
- package/lib/form/src/FormItem.js +28 -18
- package/lib/form/src/styles/form-item.cssr.js +31 -19
- package/lib/form/src/utils.d.ts +1 -0
- package/lib/form/src/utils.js +15 -10
- package/lib/input/src/utils.js +1 -1
- package/lib/locales/common/frFR.js +8 -11
- package/lib/menu/src/Menu.d.ts +13 -0
- package/lib/menu/src/Menu.js +7 -1
- package/lib/modal/src/BodyWrapper.d.ts +2 -0
- package/lib/modal/src/Modal.d.ts +18 -0
- package/lib/modal/src/presetProps.d.ts +1 -1
- package/lib/modal/styles/light.d.ts +2 -0
- package/lib/pagination/src/Pagination.js +5 -1
- package/lib/radio/src/Radio.d.ts +6 -32
- package/lib/radio/src/Radio.js +5 -5
- package/lib/radio/src/RadioButton.d.ts +6 -9
- package/lib/radio/src/RadioButton.js +7 -14
- package/lib/radio/src/RadioGroup.d.ts +8 -8
- package/lib/radio/src/RadioGroup.js +2 -2
- package/lib/radio/src/interface.d.ts +2 -2
- package/lib/radio/src/use-radio.d.ts +4 -32
- package/lib/radio/src/use-radio.js +11 -9
- package/lib/rate/src/Rate.d.ts +23 -14
- package/lib/rate/src/Rate.js +32 -12
- package/lib/rate/src/interface.d.ts +2 -0
- package/lib/rate/src/interface.js +2 -0
- package/lib/rate/src/styles/index.cssr.js +13 -13
- package/lib/slider/src/Slider.d.ts +13 -0
- package/lib/slider/src/Slider.js +6 -3
- package/lib/theme-editor/src/ThemeEditor.d.ts +4 -0
- package/lib/theme-editor/src/ThemeEditor.js +25 -10
- package/lib/tree/src/styles/index.cssr.js +4 -3
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/package.json +4 -4
- package/web-types.json +36 -5
- package/es/countdown/src/utils.d.ts +0 -0
- package/es/countdown/src/utils.js +0 -1
- package/es/dialog/src/use-dialog.d.ts +0 -2
- package/es/dialog/src/use-dialog.js +0 -10
- package/lib/countdown/src/utils.d.ts +0 -0
- package/lib/countdown/src/utils.js +0 -1
- package/lib/dialog/src/use-dialog.d.ts +0 -2
|
@@ -4,11 +4,10 @@ import { render, mergeEventHandlers } from '../../../_utils';
|
|
|
4
4
|
import { CheckmarkIcon } from '../../icons';
|
|
5
5
|
import { NBaseIcon } from '../../icon';
|
|
6
6
|
import { internalSelectionMenuInjectionKey } from './interface';
|
|
7
|
-
const checkMarkIcon = h(CheckmarkIcon);
|
|
8
7
|
function renderCheckMark(show, clsPrefix) {
|
|
9
8
|
return (h(Transition, { name: "fade-in-scale-up-transition" }, {
|
|
10
9
|
default: () => show ? (h(NBaseIcon, { clsPrefix: clsPrefix, class: `${clsPrefix}-base-select-option__check` }, {
|
|
11
|
-
default: () =>
|
|
10
|
+
default: () => h(CheckmarkIcon)
|
|
12
11
|
})) : null
|
|
13
12
|
}));
|
|
14
13
|
}
|
package/es/_utils/cssr/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/restrict-template-expressions */
|
|
2
2
|
import { CssRender } from 'css-render';
|
|
3
|
-
import BemPlugin from '@css-render/plugin-bem';
|
|
3
|
+
import { plugin as BemPlugin } from '@css-render/plugin-bem';
|
|
4
4
|
const namespace = 'n';
|
|
5
5
|
const prefix = `.${namespace}-`;
|
|
6
6
|
const elementPrefix = '__';
|
package/es/card/src/Card.d.ts
CHANGED
|
@@ -32,7 +32,7 @@ export declare const cardBaseProps: {
|
|
|
32
32
|
readonly role: StringConstructor;
|
|
33
33
|
readonly onClose: PropType<MaybeArray<() => void>>;
|
|
34
34
|
};
|
|
35
|
-
export declare const cardBasePropKeys: ("size" | "title" | "role" | "bordered" | "closable" | "contentStyle" | "onClose" | "headerStyle" | "footerStyle" | "hoverable" | "
|
|
35
|
+
export declare const cardBasePropKeys: ("size" | "title" | "role" | "bordered" | "closable" | "contentStyle" | "onClose" | "headerStyle" | "footerStyle" | "hoverable" | "embedded" | "headerExtraStyle" | "segmented")[];
|
|
36
36
|
export declare const cardProps: {
|
|
37
37
|
title: StringConstructor;
|
|
38
38
|
contentStyle: PropType<string | CSSProperties>;
|
|
@@ -66,6 +66,8 @@ export declare const cardProps: {
|
|
|
66
66
|
colorPopover: string;
|
|
67
67
|
colorTarget: string;
|
|
68
68
|
colorEmbedded: string;
|
|
69
|
+
colorEmbeddedModal: string;
|
|
70
|
+
colorEmbeddedPopover: string;
|
|
69
71
|
textColor: string;
|
|
70
72
|
titleTextColor: string;
|
|
71
73
|
borderColor: string;
|
|
@@ -101,6 +103,8 @@ export declare const cardProps: {
|
|
|
101
103
|
colorPopover: string;
|
|
102
104
|
colorTarget: string;
|
|
103
105
|
colorEmbedded: string;
|
|
106
|
+
colorEmbeddedModal: string;
|
|
107
|
+
colorEmbeddedPopover: string;
|
|
104
108
|
textColor: string;
|
|
105
109
|
titleTextColor: string;
|
|
106
110
|
borderColor: string;
|
|
@@ -136,6 +140,8 @@ export declare const cardProps: {
|
|
|
136
140
|
colorPopover: string;
|
|
137
141
|
colorTarget: string;
|
|
138
142
|
colorEmbedded: string;
|
|
143
|
+
colorEmbeddedModal: string;
|
|
144
|
+
colorEmbeddedPopover: string;
|
|
139
145
|
textColor: string;
|
|
140
146
|
titleTextColor: string;
|
|
141
147
|
borderColor: string;
|
|
@@ -199,6 +205,8 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
199
205
|
colorPopover: string;
|
|
200
206
|
colorTarget: string;
|
|
201
207
|
colorEmbedded: string;
|
|
208
|
+
colorEmbeddedModal: string;
|
|
209
|
+
colorEmbeddedPopover: string;
|
|
202
210
|
textColor: string;
|
|
203
211
|
titleTextColor: string;
|
|
204
212
|
borderColor: string;
|
|
@@ -234,6 +242,8 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
234
242
|
colorPopover: string;
|
|
235
243
|
colorTarget: string;
|
|
236
244
|
colorEmbedded: string;
|
|
245
|
+
colorEmbeddedModal: string;
|
|
246
|
+
colorEmbeddedPopover: string;
|
|
237
247
|
textColor: string;
|
|
238
248
|
titleTextColor: string;
|
|
239
249
|
borderColor: string;
|
|
@@ -269,6 +279,8 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
269
279
|
colorPopover: string;
|
|
270
280
|
colorTarget: string;
|
|
271
281
|
colorEmbedded: string;
|
|
282
|
+
colorEmbeddedModal: string;
|
|
283
|
+
colorEmbeddedPopover: string;
|
|
272
284
|
textColor: string;
|
|
273
285
|
titleTextColor: string;
|
|
274
286
|
borderColor: string;
|
|
@@ -413,6 +425,8 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
413
425
|
colorPopover: string;
|
|
414
426
|
colorTarget: string;
|
|
415
427
|
colorEmbedded: string;
|
|
428
|
+
colorEmbeddedModal: string;
|
|
429
|
+
colorEmbeddedPopover: string;
|
|
416
430
|
textColor: string;
|
|
417
431
|
titleTextColor: string;
|
|
418
432
|
borderColor: string;
|
|
@@ -453,6 +467,9 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
453
467
|
'--n-color': string;
|
|
454
468
|
'--n-color-modal': string;
|
|
455
469
|
'--n-color-popover': string;
|
|
470
|
+
'--n-color-embedded': string;
|
|
471
|
+
'--n-color-embedded-modal': string;
|
|
472
|
+
'--n-color-embedded-popover': string;
|
|
456
473
|
'--n-color-target': string;
|
|
457
474
|
'--n-text-color': string;
|
|
458
475
|
'--n-line-height': string;
|
|
@@ -510,6 +527,8 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
510
527
|
colorPopover: string;
|
|
511
528
|
colorTarget: string;
|
|
512
529
|
colorEmbedded: string;
|
|
530
|
+
colorEmbeddedModal: string;
|
|
531
|
+
colorEmbeddedPopover: string;
|
|
513
532
|
textColor: string;
|
|
514
533
|
titleTextColor: string;
|
|
515
534
|
borderColor: string;
|
|
@@ -545,6 +564,8 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
545
564
|
colorPopover: string;
|
|
546
565
|
colorTarget: string;
|
|
547
566
|
colorEmbedded: string;
|
|
567
|
+
colorEmbeddedModal: string;
|
|
568
|
+
colorEmbeddedPopover: string;
|
|
548
569
|
textColor: string;
|
|
549
570
|
titleTextColor: string;
|
|
550
571
|
borderColor: string;
|
|
@@ -580,6 +601,8 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
580
601
|
colorPopover: string;
|
|
581
602
|
colorTarget: string;
|
|
582
603
|
colorEmbedded: string;
|
|
604
|
+
colorEmbeddedModal: string;
|
|
605
|
+
colorEmbeddedPopover: string;
|
|
583
606
|
textColor: string;
|
|
584
607
|
titleTextColor: string;
|
|
585
608
|
borderColor: string;
|
package/es/card/src/Card.js
CHANGED
|
@@ -49,14 +49,17 @@ export default defineComponent({
|
|
|
49
49
|
const rtlEnabledRef = useRtl('Card', mergedRtlRef, mergedClsPrefixRef);
|
|
50
50
|
const cssVarsRef = computed(() => {
|
|
51
51
|
const { size } = props;
|
|
52
|
-
const { self: { color, colorModal, colorTarget, textColor, titleTextColor, titleFontWeight, borderColor, actionColor, borderRadius, lineHeight, closeIconColor, closeIconColorHover, closeIconColorPressed, closeColorHover, closeColorPressed, closeBorderRadius, closeIconSize, closeSize, boxShadow, colorPopover, colorEmbedded, [createKey('padding', size)]: padding, [createKey('fontSize', size)]: fontSize, [createKey('titleFontSize', size)]: titleFontSize }, common: { cubicBezierEaseInOut } } = themeRef.value;
|
|
52
|
+
const { self: { color, colorModal, colorTarget, textColor, titleTextColor, titleFontWeight, borderColor, actionColor, borderRadius, lineHeight, closeIconColor, closeIconColorHover, closeIconColorPressed, closeColorHover, closeColorPressed, closeBorderRadius, closeIconSize, closeSize, boxShadow, colorPopover, colorEmbedded, colorEmbeddedModal, colorEmbeddedPopover, [createKey('padding', size)]: padding, [createKey('fontSize', size)]: fontSize, [createKey('titleFontSize', size)]: titleFontSize }, common: { cubicBezierEaseInOut } } = themeRef.value;
|
|
53
53
|
const { top: paddingTop, left: paddingLeft, bottom: paddingBottom } = getPadding(padding);
|
|
54
54
|
return {
|
|
55
55
|
'--n-bezier': cubicBezierEaseInOut,
|
|
56
56
|
'--n-border-radius': borderRadius,
|
|
57
|
-
'--n-color':
|
|
57
|
+
'--n-color': color,
|
|
58
58
|
'--n-color-modal': colorModal,
|
|
59
59
|
'--n-color-popover': colorPopover,
|
|
60
|
+
'--n-color-embedded': colorEmbedded,
|
|
61
|
+
'--n-color-embedded-modal': colorEmbeddedModal,
|
|
62
|
+
'--n-color-embedded-popover': colorEmbeddedPopover,
|
|
60
63
|
'--n-color-target': colorTarget,
|
|
61
64
|
'--n-text-color': textColor,
|
|
62
65
|
'--n-line-height': lineHeight,
|
|
@@ -97,11 +100,12 @@ export default defineComponent({
|
|
|
97
100
|
};
|
|
98
101
|
},
|
|
99
102
|
render() {
|
|
100
|
-
const { segmented, bordered, hoverable, mergedClsPrefix, rtlEnabled, onRender, $slots } = this;
|
|
103
|
+
const { segmented, bordered, hoverable, mergedClsPrefix, rtlEnabled, onRender, embedded, $slots } = this;
|
|
101
104
|
onRender === null || onRender === void 0 ? void 0 : onRender();
|
|
102
105
|
return (h("div", { class: [
|
|
103
106
|
`${mergedClsPrefix}-card`,
|
|
104
107
|
this.themeClass,
|
|
108
|
+
embedded && `${mergedClsPrefix}-card--embedded`,
|
|
105
109
|
{
|
|
106
110
|
[`${mergedClsPrefix}-card--rtl`]: rtlEnabled,
|
|
107
111
|
[`${mergedClsPrefix}-card--content${typeof segmented !== 'boolean' && segmented.content === 'soft'
|
|
@@ -118,7 +122,7 @@ export default defineComponent({
|
|
|
118
122
|
resolveWrappedSlot($slots.cover, (children) => children && (h("div", { class: `${mergedClsPrefix}-card-cover`, role: "none" }, children))),
|
|
119
123
|
resolveWrappedSlot($slots.header, (children) => {
|
|
120
124
|
return children || this.title || this.closable ? (h("div", { class: `${mergedClsPrefix}-card-header`, style: this.headerStyle },
|
|
121
|
-
h("div", { class: `${mergedClsPrefix}-card-header__main`, role: "heading" }, children ||
|
|
125
|
+
h("div", { class: `${mergedClsPrefix}-card-header__main`, role: "heading" }, children || this.title),
|
|
122
126
|
resolveWrappedSlot($slots['header-extra'], (children) => children && (h("div", { class: `${mergedClsPrefix}-card-header__extra`, style: this.headerExtraStyle }, children))),
|
|
123
127
|
this.closable ? (h(NBaseClose, { clsPrefix: mergedClsPrefix, class: `${mergedClsPrefix}-card-header__close`, onClick: this.handleCloseClick, absolute: true })) : null)) : null;
|
|
124
128
|
}),
|
|
@@ -23,6 +23,9 @@ import { asModal, c, cB, cE, cM, insideModal, insidePopover } from '../../../_ut
|
|
|
23
23
|
// --n-close-icon-color-pressed
|
|
24
24
|
// --n-border-color
|
|
25
25
|
// --n-box-shadow
|
|
26
|
+
// --n-color-embedded
|
|
27
|
+
// --n-color-embedded-modal
|
|
28
|
+
// --n-color-embedded-popover
|
|
26
29
|
|
|
27
30
|
export default c([cB('card', `
|
|
28
31
|
font-size: var(--n-font-size);
|
|
@@ -41,7 +44,9 @@ export default c([cB('card', `
|
|
|
41
44
|
background-color .3s var(--n-bezier),
|
|
42
45
|
box-shadow .3s var(--n-bezier),
|
|
43
46
|
border-color .3s var(--n-bezier);
|
|
44
|
-
`, [
|
|
47
|
+
`, [asModal({
|
|
48
|
+
background: 'var(--n-color-modal)'
|
|
49
|
+
}), cM('hoverable', [c('&:hover', 'box-shadow: var(--n-box-shadow);')]), cM('content-segmented', [c('>', [cE('content', {
|
|
45
50
|
paddingTop: 'var(--n-padding-bottom)'
|
|
46
51
|
})])]), cM('content-soft-segmented', [c('>', [cE('content', `
|
|
47
52
|
margin: 0 var(--n-padding-left);
|
|
@@ -115,10 +120,14 @@ export default c([cB('card', `
|
|
|
115
120
|
transition: 'border-color 0.3s var(--n-bezier)'
|
|
116
121
|
}, [c('&:not(:first-child)', {
|
|
117
122
|
borderTop: '1px solid var(--n-border-color)'
|
|
118
|
-
})])])])
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
123
|
+
})])])]), cM('embedded', `
|
|
124
|
+
background-color: var(--n-color-embedded);
|
|
125
|
+
`)]), insideModal(cB('card', `
|
|
126
|
+
background: var(--n-color-modal);
|
|
127
|
+
`, [cM('embedded', `
|
|
128
|
+
background-color: var(--n-color-embedded-modal);
|
|
129
|
+
`)])), insidePopover(cB('card', `
|
|
130
|
+
background: var(--n-color-popover);
|
|
131
|
+
`, [cM('embedded', `
|
|
132
|
+
background-color: var(--n-color-embedded-popover);
|
|
133
|
+
`)]))]);
|
package/es/card/styles/dark.js
CHANGED
|
@@ -5,8 +5,10 @@ const cardDark = {
|
|
|
5
5
|
common: commonDark,
|
|
6
6
|
self(vars) {
|
|
7
7
|
const commonSelf = self(vars);
|
|
8
|
-
const { cardColor } = vars;
|
|
8
|
+
const { cardColor, modalColor, popoverColor } = vars;
|
|
9
9
|
commonSelf.colorEmbedded = cardColor;
|
|
10
|
+
commonSelf.colorEmbeddedModal = modalColor;
|
|
11
|
+
commonSelf.colorEmbeddedPopover = popoverColor;
|
|
10
12
|
return commonSelf;
|
|
11
13
|
}
|
|
12
14
|
};
|
package/es/card/styles/light.js
CHANGED
|
@@ -2,7 +2,7 @@ import { commonLight } from '../../_styles/common';
|
|
|
2
2
|
import commonVariables from './_common';
|
|
3
3
|
export const self = (vars) => {
|
|
4
4
|
const { primaryColor, borderRadius, lineHeight, fontSize, cardColor, textColor2, textColor1, dividerColor, fontWeightStrong, closeIconColor, closeIconColorHover, closeIconColorPressed, closeColorHover, closeColorPressed, modalColor, boxShadow1, popoverColor, actionColor } = vars;
|
|
5
|
-
return Object.assign(Object.assign({}, commonVariables), { lineHeight, color: cardColor, colorModal: modalColor, colorPopover: popoverColor, colorTarget: primaryColor, colorEmbedded: actionColor, textColor: textColor2, titleTextColor: textColor1, borderColor: dividerColor, actionColor, titleFontWeight: fontWeightStrong, closeColorHover,
|
|
5
|
+
return Object.assign(Object.assign({}, commonVariables), { lineHeight, color: cardColor, colorModal: modalColor, colorPopover: popoverColor, colorTarget: primaryColor, colorEmbedded: actionColor, colorEmbeddedModal: actionColor, colorEmbeddedPopover: actionColor, textColor: textColor2, titleTextColor: textColor1, borderColor: dividerColor, actionColor, titleFontWeight: fontWeightStrong, closeColorHover,
|
|
6
6
|
closeColorPressed, closeBorderRadius: borderRadius, closeIconColor,
|
|
7
7
|
closeIconColorHover,
|
|
8
8
|
closeIconColorPressed, fontSizeSmall: fontSize, fontSizeMedium: fontSize, fontSizeLarge: fontSize, fontSizeHuge: fontSize, boxShadow: boxShadow1, borderRadius });
|
|
@@ -20,7 +20,6 @@ export default defineComponent({
|
|
|
20
20
|
props: countdownProps,
|
|
21
21
|
setup(props) {
|
|
22
22
|
let timerId = null;
|
|
23
|
-
let rafId = null;
|
|
24
23
|
let elapsed = 0;
|
|
25
24
|
let finished = false;
|
|
26
25
|
// in ms
|
|
@@ -89,10 +88,6 @@ export default defineComponent({
|
|
|
89
88
|
window.clearTimeout(timerId);
|
|
90
89
|
timerId = null;
|
|
91
90
|
}
|
|
92
|
-
if (rafId !== null) {
|
|
93
|
-
window.cancelAnimationFrame(rafId);
|
|
94
|
-
rafId = null;
|
|
95
|
-
}
|
|
96
91
|
};
|
|
97
92
|
onMounted(() => {
|
|
98
93
|
watchEffect(() => {
|
|
@@ -159,7 +159,7 @@ export function useSorter(props, { dataRelatedColsRef, filteredDataRef }) {
|
|
|
159
159
|
const columnToSort = dataRelatedColsRef.value.find((column) => column.type !== 'selection' &&
|
|
160
160
|
column.type !== 'expand' &&
|
|
161
161
|
column.key === columnKey);
|
|
162
|
-
if (!columnToSort ||
|
|
162
|
+
if (!(columnToSort === null || columnToSort === void 0 ? void 0 : columnToSort.sorter))
|
|
163
163
|
return;
|
|
164
164
|
const sorter = columnToSort.sorter;
|
|
165
165
|
deriveNextSorter({
|
package/es/dialog/index.d.ts
CHANGED
|
@@ -3,4 +3,4 @@ export { dialogProps } from './src/dialogProps';
|
|
|
3
3
|
export type { DialogProps } from './src/dialogProps';
|
|
4
4
|
export { NDialogProvider, dialogProviderProps } from './src/DialogProvider';
|
|
5
5
|
export type { DialogProviderProps, DialogProviderInst, DialogOptions, DialogReactive, DialogApiInjection as DialogApi } from './src/DialogProvider';
|
|
6
|
-
export { useDialog } from './src/
|
|
6
|
+
export { useDialog, useDialogReactiveList } from './src/composables';
|
package/es/dialog/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { NDialog } from './src/Dialog';
|
|
2
2
|
export { dialogProps } from './src/dialogProps';
|
|
3
3
|
export { NDialogProvider, dialogProviderProps } from './src/DialogProvider';
|
|
4
|
-
export { useDialog } from './src/
|
|
4
|
+
export { useDialog, useDialogReactiveList } from './src/composables';
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { PropType, CSSProperties } from 'vue';
|
|
2
2
|
export declare const exposedDialogEnvProps: {
|
|
3
|
+
readonly onAfterEnter: PropType<() => void>;
|
|
3
4
|
readonly blockScroll: {
|
|
4
5
|
readonly type: BooleanConstructor;
|
|
5
6
|
readonly default: true;
|
|
@@ -56,6 +57,7 @@ export declare const NDialogEnvironment: import("vue").DefineComponent<{
|
|
|
56
57
|
type: PropType<(key: string) => void>;
|
|
57
58
|
required: true;
|
|
58
59
|
};
|
|
60
|
+
onAfterEnter: PropType<() => void>;
|
|
59
61
|
blockScroll: {
|
|
60
62
|
readonly type: BooleanConstructor;
|
|
61
63
|
readonly default: true;
|
|
@@ -121,6 +123,7 @@ export declare const NDialogEnvironment: import("vue").DefineComponent<{
|
|
|
121
123
|
type: PropType<(key: string) => void>;
|
|
122
124
|
required: true;
|
|
123
125
|
};
|
|
126
|
+
onAfterEnter: PropType<() => void>;
|
|
124
127
|
blockScroll: {
|
|
125
128
|
readonly type: BooleanConstructor;
|
|
126
129
|
readonly default: true;
|
|
@@ -5,7 +5,7 @@ import NModal from '../../modal/src/Modal';
|
|
|
5
5
|
import { keep } from '../../_utils';
|
|
6
6
|
import { NDialog } from './Dialog';
|
|
7
7
|
import { dialogProps, dialogPropKeys } from './dialogProps';
|
|
8
|
-
export const exposedDialogEnvProps = Object.assign(Object.assign({}, dialogProps), { blockScroll: { type: Boolean, default: true }, closeOnEsc: { type: Boolean, default: true }, onEsc: Function, autoFocus: {
|
|
8
|
+
export const exposedDialogEnvProps = Object.assign(Object.assign({}, dialogProps), { onAfterEnter: Function, blockScroll: { type: Boolean, default: true }, closeOnEsc: { type: Boolean, default: true }, onEsc: Function, autoFocus: {
|
|
9
9
|
type: Boolean,
|
|
10
10
|
default: true
|
|
11
11
|
}, internalStyle: [String, Object], maskClosable: {
|
|
@@ -100,7 +100,7 @@ export const NDialogEnvironment = defineComponent({
|
|
|
100
100
|
},
|
|
101
101
|
render() {
|
|
102
102
|
const { handlePositiveClick, handleUpdateShow, handleNegativeClick, handleCloseClick, handleAfterLeave, handleMaskClick, handleEsc, to, maskClosable, show } = this;
|
|
103
|
-
return (h(NModal, { show: show, onUpdateShow: handleUpdateShow, onMaskClick: handleMaskClick, onEsc: handleEsc, to: to, maskClosable: maskClosable, onAfterLeave: handleAfterLeave, closeOnEsc: this.closeOnEsc, blockScroll: this.blockScroll, autoFocus: this.autoFocus, internalAppear: true, internalDialog: true }, {
|
|
103
|
+
return (h(NModal, { show: show, onUpdateShow: handleUpdateShow, onMaskClick: handleMaskClick, onEsc: handleEsc, to: to, maskClosable: maskClosable, onAfterEnter: this.onAfterEnter, onAfterLeave: handleAfterLeave, closeOnEsc: this.closeOnEsc, blockScroll: this.blockScroll, autoFocus: this.autoFocus, internalAppear: true, internalDialog: true }, {
|
|
104
104
|
default: () => (h(NDialog, Object.assign({}, keep(this.$props, dialogPropKeys), { style: this.internalStyle, onClose: handleCloseClick, onNegativeClick: handleNegativeClick, onPositiveClick: handlePositiveClick })))
|
|
105
105
|
}));
|
|
106
106
|
}
|
|
@@ -2,6 +2,7 @@ import { ExtractPropTypes, PropType, Ref, CSSProperties } from 'vue';
|
|
|
2
2
|
import type { ExtractPublicPropTypes, Mutable } from '../../_utils';
|
|
3
3
|
import { exposedDialogEnvProps } from './DialogEnvironment';
|
|
4
4
|
export declare type DialogOptions = Mutable<Omit<Partial<ExtractPropTypes<typeof exposedDialogEnvProps>>, 'internalStyle'> & {
|
|
5
|
+
class?: any;
|
|
5
6
|
style?: string | CSSProperties;
|
|
6
7
|
}>;
|
|
7
8
|
export declare type DialogReactive = {
|
|
@@ -23,6 +24,7 @@ export interface DialogProviderInjection {
|
|
|
23
24
|
y: number;
|
|
24
25
|
} | null>;
|
|
25
26
|
}
|
|
27
|
+
export declare type DialogReactiveListInjection = Ref<DialogReactive[]>;
|
|
26
28
|
interface DialogInst {
|
|
27
29
|
hide: () => void;
|
|
28
30
|
}
|
|
@@ -42,6 +44,7 @@ export declare const NDialogProvider: import("vue").DefineComponent<{
|
|
|
42
44
|
type?: "default" | "error" | "info" | "success" | "warning" | undefined;
|
|
43
45
|
content?: string | (() => import("vue").VNodeChild) | undefined;
|
|
44
46
|
icon?: (() => import("vue").VNodeChild) | undefined;
|
|
47
|
+
onAfterEnter?: (() => void) | undefined;
|
|
45
48
|
title?: string | (() => import("vue").VNodeChild) | undefined;
|
|
46
49
|
action?: (() => import("vue").VNodeChild) | undefined;
|
|
47
50
|
autoFocus?: boolean | undefined;
|
|
@@ -736,6 +739,7 @@ export declare const NDialogProvider: import("vue").DefineComponent<{
|
|
|
736
739
|
onMaskClick?: ((e: MouseEvent) => void) | undefined;
|
|
737
740
|
maskClosable?: boolean | undefined;
|
|
738
741
|
closeOnEsc?: boolean | undefined;
|
|
742
|
+
class?: any;
|
|
739
743
|
style?: any;
|
|
740
744
|
}[]>;
|
|
741
745
|
dialogInstRefs: Record<string, DialogInst>;
|
|
@@ -3,7 +3,7 @@ import { createId } from 'seemly';
|
|
|
3
3
|
import { useClicked, useClickPosition } from 'vooks';
|
|
4
4
|
import { omit } from '../../_utils';
|
|
5
5
|
import { NDialogEnvironment } from './DialogEnvironment';
|
|
6
|
-
import { dialogApiInjectionKey, dialogProviderInjectionKey } from './context';
|
|
6
|
+
import { dialogApiInjectionKey, dialogProviderInjectionKey, dialogReactiveListInjectionKey } from './context';
|
|
7
7
|
export const dialogProviderProps = {
|
|
8
8
|
injectionKey: String,
|
|
9
9
|
to: [String, Object]
|
|
@@ -45,6 +45,7 @@ export const NDialogProvider = defineComponent({
|
|
|
45
45
|
clickedRef: useClicked(64),
|
|
46
46
|
clickPositionRef: useClickPosition()
|
|
47
47
|
});
|
|
48
|
+
provide(dialogReactiveListInjectionKey, dialogListRef);
|
|
48
49
|
return Object.assign(Object.assign({}, api), { dialogList: dialogListRef, dialogInstRefs,
|
|
49
50
|
handleAfterLeave });
|
|
50
51
|
},
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { inject } from 'vue';
|
|
2
|
+
import { dialogApiInjectionKey, dialogReactiveListInjectionKey } from './context';
|
|
3
|
+
import { throwError } from '../../_utils';
|
|
4
|
+
export function useDialog() {
|
|
5
|
+
const dialog = inject(dialogApiInjectionKey, null);
|
|
6
|
+
if (dialog === null) {
|
|
7
|
+
throwError('use-dialog', 'No outer <n-dialog-provider /> founded.');
|
|
8
|
+
}
|
|
9
|
+
return dialog;
|
|
10
|
+
}
|
|
11
|
+
export function useDialogReactiveList() {
|
|
12
|
+
const dialogReactiveList = inject(dialogReactiveListInjectionKey, null);
|
|
13
|
+
if (dialogReactiveList === null) {
|
|
14
|
+
throwError('use-dialog-reactive-list', 'No outer <n-dialog-provider /> founded.');
|
|
15
|
+
}
|
|
16
|
+
return dialogReactiveList;
|
|
17
|
+
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
import type { DialogApiInjection, DialogProviderInjection } from './DialogProvider';
|
|
1
|
+
import type { DialogApiInjection, DialogProviderInjection, DialogReactiveListInjection } from './DialogProvider';
|
|
2
2
|
export declare const dialogProviderInjectionKey: import("vue").InjectionKey<DialogProviderInjection>;
|
|
3
3
|
export declare const dialogApiInjectionKey: import("vue").InjectionKey<DialogApiInjection>;
|
|
4
|
+
export declare const dialogReactiveListInjectionKey: import("vue").InjectionKey<DialogReactiveListInjection>;
|
package/es/dialog/src/context.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import { createInjectionKey } from '../../_utils';
|
|
2
2
|
export const dialogProviderInjectionKey = createInjectionKey('n-dialog-provider');
|
|
3
3
|
export const dialogApiInjectionKey = createInjectionKey('n-dialog-api');
|
|
4
|
+
export const dialogReactiveListInjectionKey = createInjectionKey('n-dialog-reactive-list');
|
|
@@ -283,6 +283,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
283
283
|
mergedValidationStatus: import("vue").ComputedRef<"error" | "success" | "warning" | undefined>;
|
|
284
284
|
mergedShowFeedback: import("vue").ComputedRef<boolean>;
|
|
285
285
|
mergedShowLabel: import("vue").ComputedRef<boolean>;
|
|
286
|
+
isAutoLabelWidth: import("vue").ComputedRef<boolean>;
|
|
286
287
|
labelElementRef: import("vue").Ref<HTMLLabelElement | null>;
|
|
287
288
|
mergedClsPrefix: import("vue").ComputedRef<string>;
|
|
288
289
|
mergedRequired: import("vue").ComputedRef<boolean>;
|
package/es/form/src/FormItem.js
CHANGED
|
@@ -249,8 +249,15 @@ export default defineComponent({
|
|
|
249
249
|
};
|
|
250
250
|
const labelElementRef = ref(null);
|
|
251
251
|
onMounted(() => {
|
|
252
|
-
if (
|
|
253
|
-
|
|
252
|
+
if (!formItemMiscRefs.isAutoLabelWidth.value)
|
|
253
|
+
return;
|
|
254
|
+
const labelElement = labelElementRef.value;
|
|
255
|
+
if (labelElement !== null) {
|
|
256
|
+
const memoizedWhitespace = labelElement.style.whiteSpace;
|
|
257
|
+
labelElement.style.whiteSpace = 'nowrap';
|
|
258
|
+
labelElement.style.width = '';
|
|
259
|
+
NForm === null || NForm === void 0 ? void 0 : NForm.deriveMaxChildLabelWidth(Number(getComputedStyle(labelElement).width.slice(0, -2)));
|
|
260
|
+
labelElement.style.whiteSpace = memoizedWhitespace;
|
|
254
261
|
}
|
|
255
262
|
});
|
|
256
263
|
const cssVarsRef = computed(() => {
|
|
@@ -290,34 +297,37 @@ export default defineComponent({
|
|
|
290
297
|
return Object.assign(Object.assign(Object.assign(Object.assign({ labelElementRef, mergedClsPrefix: mergedClsPrefixRef, mergedRequired: mergedRequiredRef, feedbackId: feedbackIdRef, renderExplains: renderExplainsRef }, formItemMiscRefs), formItemSizeRefs), exposedRef), { cssVars: inlineThemeDisabled ? undefined : cssVarsRef, themeClass: themeClassHandle === null || themeClassHandle === void 0 ? void 0 : themeClassHandle.themeClass, onRender: themeClassHandle === null || themeClassHandle === void 0 ? void 0 : themeClassHandle.onRender });
|
|
291
298
|
},
|
|
292
299
|
render() {
|
|
293
|
-
var _a;
|
|
294
300
|
const { $slots, mergedClsPrefix, mergedShowLabel, mergedShowRequireMark, mergedRequireMarkPlacement, onRender } = this;
|
|
295
301
|
const renderedShowRequireMark = mergedShowRequireMark !== undefined
|
|
296
302
|
? mergedShowRequireMark
|
|
297
303
|
: this.mergedRequired;
|
|
298
304
|
onRender === null || onRender === void 0 ? void 0 : onRender();
|
|
305
|
+
const renderLabel = () => {
|
|
306
|
+
const labelText = this.$slots.label ? this.$slots.label() : this.label;
|
|
307
|
+
if (!labelText)
|
|
308
|
+
return null;
|
|
309
|
+
const textNode = (h("span", { class: `${mergedClsPrefix}-form-item-label__text` }, labelText));
|
|
310
|
+
const markNode = renderedShowRequireMark ? (h("span", { class: `${mergedClsPrefix}-form-item-label__asterisk` }, mergedRequireMarkPlacement !== 'left' ? '\u00A0*' : '*\u00A0')) : (mergedRequireMarkPlacement === 'right-hanging' && (h("span", { class: `${mergedClsPrefix}-form-item-label__asterisk-placeholder` }, '\u00A0*')));
|
|
311
|
+
let labelContent;
|
|
312
|
+
if (mergedRequireMarkPlacement === 'left') {
|
|
313
|
+
labelContent = [markNode, textNode];
|
|
314
|
+
}
|
|
315
|
+
else {
|
|
316
|
+
labelContent = [textNode, markNode];
|
|
317
|
+
}
|
|
318
|
+
const { labelProps } = this;
|
|
319
|
+
return (h("label", Object.assign({}, labelProps, { class: [labelProps === null || labelProps === void 0 ? void 0 : labelProps.class, `${mergedClsPrefix}-form-item-label`], style: this.mergedLabelStyle, ref: "labelElementRef" }), labelContent));
|
|
320
|
+
};
|
|
299
321
|
return (h("div", { class: [
|
|
300
322
|
`${mergedClsPrefix}-form-item`,
|
|
301
323
|
this.themeClass,
|
|
302
324
|
`${mergedClsPrefix}-form-item--${this.mergedSize}-size`,
|
|
303
325
|
`${mergedClsPrefix}-form-item--${this.mergedLabelPlacement}-labelled`,
|
|
326
|
+
this.isAutoLabelWidth &&
|
|
327
|
+
`${mergedClsPrefix}-form-item--auto-label-width`,
|
|
304
328
|
!mergedShowLabel && `${mergedClsPrefix}-form-item--no-label`
|
|
305
329
|
], style: this.cssVars },
|
|
306
|
-
mergedShowLabel && (
|
|
307
|
-
(_a = this.labelProps) === null || _a === void 0 ? void 0 : _a.class,
|
|
308
|
-
`${mergedClsPrefix}-form-item-label`
|
|
309
|
-
], style: this.mergedLabelStyle, ref: "labelElementRef" }),
|
|
310
|
-
mergedRequireMarkPlacement !== 'left'
|
|
311
|
-
? $slots.label
|
|
312
|
-
? $slots.label()
|
|
313
|
-
: this.label
|
|
314
|
-
: null,
|
|
315
|
-
renderedShowRequireMark ? (h("span", { class: `${mergedClsPrefix}-form-item-label__asterisk` }, mergedRequireMarkPlacement !== 'left' ? '\u00A0*' : '*\u00A0')) : (mergedRequireMarkPlacement === 'right-hanging' && (h("span", { class: `${mergedClsPrefix}-form-item-label__asterisk-placeholder` }, '\u00A0*'))),
|
|
316
|
-
mergedRequireMarkPlacement === 'left'
|
|
317
|
-
? $slots.label
|
|
318
|
-
? $slots.label()
|
|
319
|
-
: this.label
|
|
320
|
-
: null)) : null,
|
|
330
|
+
mergedShowLabel && renderLabel(),
|
|
321
331
|
h("div", { class: [
|
|
322
332
|
`${mergedClsPrefix}-form-item-blank`,
|
|
323
333
|
this.mergedValidationStatus &&
|
|
@@ -17,21 +17,22 @@ import { fadeDownTransition } from '../../../_styles/transitions/fade-down.cssr'
|
|
|
17
17
|
// --n-label-text-align
|
|
18
18
|
// --n-label-padding
|
|
19
19
|
|
|
20
|
-
export default cB('form-item',
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
20
|
+
export default cB('form-item', `
|
|
21
|
+
display: grid;
|
|
22
|
+
line-height: var(--n-line-height);
|
|
23
|
+
`, [cB('form-item-label', `
|
|
24
24
|
grid-area: label;
|
|
25
25
|
align-items: center;
|
|
26
26
|
line-height: 1.25;
|
|
27
27
|
text-align: var(--n-label-text-align);
|
|
28
28
|
font-size: var(--n-label-font-size);
|
|
29
|
-
height: var(--n-label-height);
|
|
29
|
+
min-height: var(--n-label-height);
|
|
30
30
|
padding: var(--n-label-padding);
|
|
31
31
|
color: var(--n-label-text-color);
|
|
32
32
|
transition: color .3s var(--n-bezier);
|
|
33
33
|
box-sizing: border-box;
|
|
34
34
|
`, [cE('asterisk', `
|
|
35
|
+
white-space: nowrap;
|
|
35
36
|
user-select: none;
|
|
36
37
|
-webkit-user-select: none;
|
|
37
38
|
color: var(--n-asterisk-color);
|
|
@@ -40,38 +41,49 @@ export default cB('form-item', {
|
|
|
40
41
|
user-select: none;
|
|
41
42
|
-webkit-user-select: none;
|
|
42
43
|
visibility: hidden;
|
|
43
|
-
`)]), cB('form-item-blank',
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
44
|
+
`)]), cB('form-item-blank', `
|
|
45
|
+
grid-area: blank;
|
|
46
|
+
min-height: var(--n-blank-height);
|
|
47
|
+
`), cM('auto-label-width', [cB('form-item-label', 'white-space: nowrap;')]), cM('left-labelled', `
|
|
47
48
|
grid-template-areas:
|
|
48
49
|
"label blank"
|
|
49
50
|
"label feedback";
|
|
50
51
|
grid-template-columns: auto minmax(0, 1fr);
|
|
52
|
+
grid-template-rows: auto 1fr;
|
|
53
|
+
align-items: start;
|
|
51
54
|
`, [cB('form-item-label', `
|
|
52
|
-
|
|
53
|
-
|
|
55
|
+
display: grid;
|
|
56
|
+
grid-template-areas:
|
|
57
|
+
"text star"
|
|
58
|
+
"text .";
|
|
59
|
+
grid-template-columns: 1fr auto;
|
|
60
|
+
min-height: var(--n-blank-height);
|
|
61
|
+
height: auto;
|
|
54
62
|
box-sizing: border-box;
|
|
55
|
-
white-space: nowrap;
|
|
56
63
|
flex-shrink: 0;
|
|
57
64
|
flex-grow: 0;
|
|
58
|
-
|
|
65
|
+
`, [cE('text', `
|
|
66
|
+
grid-area: text;
|
|
67
|
+
`), cE('asterisk', `
|
|
68
|
+
grid-area: star;
|
|
69
|
+
align-self: end;
|
|
70
|
+
`)])]), cM('top-labelled', `
|
|
59
71
|
grid-template-areas:
|
|
60
72
|
"label"
|
|
61
73
|
"blank"
|
|
62
74
|
"feedback";
|
|
63
|
-
grid-template-rows: var(--n-label-height) 1fr;
|
|
75
|
+
grid-template-rows: minmax(var(--n-label-height), auto) 1fr;
|
|
64
76
|
grid-template-columns: minmax(0, 100%);
|
|
65
77
|
`, [cM('no-label', `
|
|
66
78
|
grid-template-areas:
|
|
67
79
|
"blank"
|
|
68
80
|
"feedback";
|
|
69
81
|
grid-template-rows: 1fr;
|
|
70
|
-
`), cB('form-item-label',
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
82
|
+
`), cB('form-item-label', `
|
|
83
|
+
display: flex;
|
|
84
|
+
align-items: flex-start;
|
|
85
|
+
justify-content: var(--n-label-text-align);
|
|
86
|
+
`)]), cB('form-item-blank', `
|
|
75
87
|
box-sizing: border-box;
|
|
76
88
|
display: flex;
|
|
77
89
|
align-items: center;
|
package/es/form/src/utils.d.ts
CHANGED
|
@@ -14,6 +14,7 @@ export declare function formItemMisc(props: FormItemSetupProps): {
|
|
|
14
14
|
mergedValidationStatus: ComputedRef<"error" | "success" | "warning" | undefined>;
|
|
15
15
|
mergedShowFeedback: ComputedRef<boolean>;
|
|
16
16
|
mergedShowLabel: ComputedRef<boolean>;
|
|
17
|
+
isAutoLabelWidth: ComputedRef<boolean>;
|
|
17
18
|
};
|
|
18
19
|
export declare function formItemRule(props: FormItemSetupProps): {
|
|
19
20
|
mergedRules: ComputedRef<FormItemRule[]>;
|