naive-ui 2.19.7 → 2.19.11

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 (208) hide show
  1. package/es/_internal/icons/Add.js +2 -3
  2. package/es/_internal/selection/src/Selection.d.ts +4 -1
  3. package/es/_internal/selection/src/Selection.js +3 -3
  4. package/es/anchor/src/AnchorAdapter.d.ts +5 -0
  5. package/es/anchor/src/BaseAnchor.d.ts +6 -1
  6. package/es/anchor/src/BaseAnchor.js +8 -3
  7. package/es/auto-complete/src/AutoComplete.d.ts +4 -0
  8. package/es/auto-complete/src/AutoComplete.js +9 -2
  9. package/es/calendar/src/Calendar.d.ts +1 -0
  10. package/es/cascader/src/Cascader.js +1 -1
  11. package/es/cascader/src/CascaderSelectMenu.d.ts +16 -7
  12. package/es/cascader/src/CascaderSelectMenu.js +23 -10
  13. package/es/cascader/src/utils.d.ts +2 -1
  14. package/es/cascader/src/utils.js +5 -2
  15. package/es/collapse/src/Collapse.d.ts +0 -1
  16. package/es/collapse/src/Collapse.js +2 -5
  17. package/es/collapse/src/CollapseItem.js +0 -2
  18. package/es/color-picker/src/ColorPicker.d.ts +4 -0
  19. package/es/color-picker/src/ColorPicker.js +5 -2
  20. package/es/color-picker/src/ColorPickerSwatches.d.ts +39 -0
  21. package/es/color-picker/src/ColorPickerSwatches.js +142 -0
  22. package/es/color-picker/src/styles/index.cssr.js +20 -0
  23. package/es/config-provider/src/ConfigProvider.d.ts +8 -1
  24. package/es/config-provider/src/ConfigProvider.js +8 -2
  25. package/es/config-provider/src/config.d.ts +8 -0
  26. package/es/config-provider/src/config.js +8 -0
  27. package/es/config-provider/src/internal-interface.d.ts +4 -0
  28. package/es/data-table/src/TableParts/Body.d.ts +8 -2
  29. package/es/data-table/src/TableParts/Body.js +4 -4
  30. package/es/data-table/src/TableParts/Header.d.ts +8 -2
  31. package/es/data-table/src/TableParts/Header.js +7 -4
  32. package/es/data-table/src/interface.d.ts +8 -2
  33. package/es/data-table/src/use-group-header.js +12 -8
  34. package/es/data-table/src/use-scroll.d.ts +11 -5
  35. package/es/data-table/src/use-scroll.js +37 -10
  36. package/es/date-picker/src/DatePicker.js +3 -0
  37. package/es/date-picker/src/panel/date.d.ts +1 -0
  38. package/es/date-picker/src/panel/daterange.d.ts +1 -0
  39. package/es/date-picker/src/panel/datetime.d.ts +1 -0
  40. package/es/date-picker/src/panel/datetimerange.d.ts +1 -0
  41. package/es/date-picker/src/panel/month.d.ts +1 -0
  42. package/es/date-picker/src/panel/use-calendar.d.ts +1 -0
  43. package/es/date-picker/src/panel/use-dual-calendar.d.ts +1 -0
  44. package/es/date-picker/src/panel/use-panel-common.d.ts +1 -0
  45. package/es/dialog/src/styles/index.cssr.js +1 -0
  46. package/es/ellipsis/src/Ellipsis.js +3 -1
  47. package/es/grid/src/Grid.d.ts +1 -1
  48. package/es/grid/src/Grid.js +4 -3
  49. package/es/input/src/Input.d.ts +1 -1
  50. package/es/input/src/Input.js +3 -8
  51. package/es/input/src/WordCount.js +22 -7
  52. package/es/input/src/interface.d.ts +1 -1
  53. package/es/input-number/index.d.ts +1 -0
  54. package/es/input-number/src/InputNumber.d.ts +2 -0
  55. package/es/input-number/src/InputNumber.js +10 -22
  56. package/es/input-number/src/interface.d.ts +4 -0
  57. package/es/locales/common/enUS.d.ts +1 -0
  58. package/es/locales/common/enUS.js +1 -0
  59. package/es/locales/common/jaJP.d.ts +3 -0
  60. package/es/locales/common/jaJP.js +93 -0
  61. package/es/locales/common/ruRU.js +1 -0
  62. package/es/locales/common/ukUA.js +1 -0
  63. package/es/locales/common/zhCN.js +1 -0
  64. package/es/locales/date/jaJP.d.ts +3 -0
  65. package/es/locales/date/jaJP.js +6 -0
  66. package/es/locales/index.d.ts +2 -0
  67. package/es/locales/index.js +2 -0
  68. package/es/menu/src/Menu.d.ts +8 -1
  69. package/es/menu/src/Menu.js +4 -2
  70. package/es/menu/src/MenuOption.d.ts +2 -0
  71. package/es/menu/src/MenuOptionContent.d.ts +2 -0
  72. package/es/menu/src/Submenu.d.ts +2 -0
  73. package/es/menu/src/Submenu.js +3 -2
  74. package/es/rate/src/Rate.d.ts +2 -2
  75. package/es/scrollbar/src/ScrollBar.d.ts +14 -4
  76. package/es/scrollbar/src/ScrollBar.js +13 -3
  77. package/es/select/src/Select.d.ts +5 -1
  78. package/es/select/src/Select.js +2 -2
  79. package/es/table/src/Table.d.ts +2 -8
  80. package/es/table/src/Table.js +1 -4
  81. package/es/tabs/src/Tab.js +18 -2
  82. package/es/tabs/src/Tabs.d.ts +5 -1
  83. package/es/tabs/src/Tabs.js +4 -1
  84. package/es/tabs/src/interface.d.ts +6 -0
  85. package/es/time-picker/src/Panel.d.ts +30 -8
  86. package/es/time-picker/src/Panel.js +101 -33
  87. package/es/time-picker/src/PanelCol.d.ts +6 -9
  88. package/es/time-picker/src/PanelCol.js +7 -9
  89. package/es/time-picker/src/TimePicker.d.ts +21 -16
  90. package/es/time-picker/src/TimePicker.js +63 -36
  91. package/es/time-picker/src/interface.d.ts +7 -0
  92. package/es/time-picker/src/utils.d.ts +4 -1
  93. package/es/time-picker/src/utils.js +67 -4
  94. package/es/tree/src/Tree.d.ts +2 -2
  95. package/es/upload/src/Upload.d.ts +15 -11
  96. package/es/upload/src/Upload.js +16 -7
  97. package/es/upload/src/UploadFile.js +1 -1
  98. package/es/upload/src/UploadFileList.js +1 -3
  99. package/es/upload/src/UploadTrigger.js +13 -5
  100. package/es/upload/src/interface.d.ts +1 -1
  101. package/es/upload/src/styles/index.cssr.js +3 -1
  102. package/es/version.d.ts +1 -1
  103. package/es/version.js +1 -1
  104. package/lib/_internal/icons/Add.js +2 -3
  105. package/lib/_internal/selection/src/Selection.d.ts +4 -1
  106. package/lib/_internal/selection/src/Selection.js +3 -3
  107. package/lib/anchor/src/AnchorAdapter.d.ts +5 -0
  108. package/lib/anchor/src/BaseAnchor.d.ts +6 -1
  109. package/lib/anchor/src/BaseAnchor.js +7 -2
  110. package/lib/auto-complete/src/AutoComplete.d.ts +4 -0
  111. package/lib/auto-complete/src/AutoComplete.js +9 -2
  112. package/lib/calendar/src/Calendar.d.ts +1 -0
  113. package/lib/cascader/src/Cascader.js +1 -1
  114. package/lib/cascader/src/CascaderSelectMenu.d.ts +16 -7
  115. package/lib/cascader/src/CascaderSelectMenu.js +23 -10
  116. package/lib/cascader/src/utils.d.ts +2 -1
  117. package/lib/cascader/src/utils.js +5 -2
  118. package/lib/collapse/src/Collapse.d.ts +0 -1
  119. package/lib/collapse/src/Collapse.js +2 -5
  120. package/lib/collapse/src/CollapseItem.js +0 -2
  121. package/lib/color-picker/src/ColorPicker.d.ts +4 -0
  122. package/lib/color-picker/src/ColorPicker.js +5 -2
  123. package/lib/color-picker/src/ColorPickerSwatches.d.ts +39 -0
  124. package/lib/color-picker/src/ColorPickerSwatches.js +144 -0
  125. package/lib/color-picker/src/styles/index.cssr.js +20 -0
  126. package/lib/config-provider/src/ConfigProvider.d.ts +8 -1
  127. package/lib/config-provider/src/ConfigProvider.js +8 -2
  128. package/lib/config-provider/src/config.d.ts +8 -0
  129. package/lib/config-provider/src/config.js +11 -0
  130. package/lib/config-provider/src/internal-interface.d.ts +4 -0
  131. package/lib/data-table/src/TableParts/Body.d.ts +8 -2
  132. package/lib/data-table/src/TableParts/Body.js +4 -4
  133. package/lib/data-table/src/TableParts/Header.d.ts +8 -2
  134. package/lib/data-table/src/TableParts/Header.js +7 -4
  135. package/lib/data-table/src/interface.d.ts +8 -2
  136. package/lib/data-table/src/use-group-header.js +12 -8
  137. package/lib/data-table/src/use-scroll.d.ts +11 -5
  138. package/lib/data-table/src/use-scroll.js +37 -10
  139. package/lib/date-picker/src/DatePicker.js +3 -0
  140. package/lib/date-picker/src/panel/date.d.ts +1 -0
  141. package/lib/date-picker/src/panel/daterange.d.ts +1 -0
  142. package/lib/date-picker/src/panel/datetime.d.ts +1 -0
  143. package/lib/date-picker/src/panel/datetimerange.d.ts +1 -0
  144. package/lib/date-picker/src/panel/month.d.ts +1 -0
  145. package/lib/date-picker/src/panel/use-calendar.d.ts +1 -0
  146. package/lib/date-picker/src/panel/use-dual-calendar.d.ts +1 -0
  147. package/lib/date-picker/src/panel/use-panel-common.d.ts +1 -0
  148. package/lib/dialog/src/styles/index.cssr.js +1 -0
  149. package/lib/ellipsis/src/Ellipsis.js +3 -1
  150. package/lib/grid/src/Grid.d.ts +1 -1
  151. package/lib/grid/src/Grid.js +4 -3
  152. package/lib/input/src/Input.d.ts +1 -1
  153. package/lib/input/src/Input.js +2 -7
  154. package/lib/input/src/WordCount.js +21 -6
  155. package/lib/input/src/interface.d.ts +1 -1
  156. package/lib/input-number/index.d.ts +1 -0
  157. package/lib/input-number/src/InputNumber.d.ts +2 -0
  158. package/lib/input-number/src/InputNumber.js +10 -22
  159. package/lib/input-number/src/interface.d.ts +4 -0
  160. package/lib/locales/common/enUS.d.ts +1 -0
  161. package/lib/locales/common/enUS.js +1 -0
  162. package/lib/locales/common/jaJP.d.ts +3 -0
  163. package/lib/locales/common/jaJP.js +95 -0
  164. package/lib/locales/common/ruRU.js +1 -0
  165. package/lib/locales/common/ukUA.js +1 -0
  166. package/lib/locales/common/zhCN.js +1 -0
  167. package/lib/locales/date/jaJP.d.ts +3 -0
  168. package/lib/locales/date/jaJP.js +8 -0
  169. package/lib/locales/index.d.ts +2 -0
  170. package/lib/locales/index.js +5 -1
  171. package/lib/menu/src/Menu.d.ts +8 -1
  172. package/lib/menu/src/Menu.js +4 -2
  173. package/lib/menu/src/MenuOption.d.ts +2 -0
  174. package/lib/menu/src/MenuOptionContent.d.ts +2 -0
  175. package/lib/menu/src/Submenu.d.ts +2 -0
  176. package/lib/menu/src/Submenu.js +3 -2
  177. package/lib/rate/src/Rate.d.ts +2 -2
  178. package/lib/scrollbar/src/ScrollBar.d.ts +14 -4
  179. package/lib/scrollbar/src/ScrollBar.js +12 -2
  180. package/lib/select/src/Select.d.ts +5 -1
  181. package/lib/select/src/Select.js +2 -2
  182. package/lib/table/src/Table.d.ts +2 -8
  183. package/lib/table/src/Table.js +1 -4
  184. package/lib/tabs/src/Tab.js +18 -2
  185. package/lib/tabs/src/Tabs.d.ts +5 -1
  186. package/lib/tabs/src/Tabs.js +4 -1
  187. package/lib/tabs/src/interface.d.ts +6 -0
  188. package/lib/time-picker/src/Panel.d.ts +30 -8
  189. package/lib/time-picker/src/Panel.js +100 -32
  190. package/lib/time-picker/src/PanelCol.d.ts +6 -9
  191. package/lib/time-picker/src/PanelCol.js +7 -9
  192. package/lib/time-picker/src/TimePicker.d.ts +21 -16
  193. package/lib/time-picker/src/TimePicker.js +61 -34
  194. package/lib/time-picker/src/interface.d.ts +7 -0
  195. package/lib/time-picker/src/utils.d.ts +4 -1
  196. package/lib/time-picker/src/utils.js +69 -5
  197. package/lib/tree/src/Tree.d.ts +2 -2
  198. package/lib/upload/src/Upload.d.ts +15 -11
  199. package/lib/upload/src/Upload.js +16 -7
  200. package/lib/upload/src/UploadFile.js +1 -1
  201. package/lib/upload/src/UploadFileList.js +1 -3
  202. package/lib/upload/src/UploadTrigger.js +13 -5
  203. package/lib/upload/src/interface.d.ts +1 -1
  204. package/lib/upload/src/styles/index.cssr.js +3 -1
  205. package/lib/version.d.ts +1 -1
  206. package/lib/version.js +1 -1
  207. package/package.json +7 -4
  208. package/web-types.json +68 -1
@@ -0,0 +1,142 @@
1
+ import { defineComponent, h, computed } from 'vue';
2
+ import { hsl2hsv, hsl2rgb, hsla, hsv2hsl, hsv2rgb, hsva, rgb2hsl, rgb2hsv, rgba, toHexaString, toHslaString, toHsvaString, toRgbaString } from 'seemly';
3
+ import { getModeFromValue } from './utils';
4
+ import { warn } from '../../_utils';
5
+ // Try to normalize the color values to ensure that they are valid CSS colors
6
+ function normalizeColor(color, mode) {
7
+ if (mode === 'hsv') {
8
+ const [h, s, v, a] = hsva(color);
9
+ return toRgbaString([...hsv2rgb(h, s, v), a]);
10
+ }
11
+ // For the mode that is not in preset, we keep the original value.
12
+ // For color names, they are legal to CSS, so we don’t deal with them,
13
+ // and only standardize them when outputting.
14
+ return color;
15
+ }
16
+ function getHexFromName(color) {
17
+ const ctx = document
18
+ .createElement('canvas')
19
+ .getContext('2d');
20
+ ctx.fillStyle = color;
21
+ return ctx.fillStyle;
22
+ }
23
+ const covert = {
24
+ rgb: {
25
+ hex(swatchValue) {
26
+ return toHexaString(rgba(swatchValue));
27
+ },
28
+ hsl(swatchValue) {
29
+ const [r, g, b, a] = rgba(swatchValue);
30
+ return toHslaString([...rgb2hsl(r, g, b), a]);
31
+ },
32
+ hsv(swatchValue) {
33
+ const [r, g, b, a] = rgba(swatchValue);
34
+ return toHsvaString([...rgb2hsv(r, g, b), a]);
35
+ }
36
+ },
37
+ hex: {
38
+ rgb(swatchValue) {
39
+ return toRgbaString(rgba(swatchValue));
40
+ },
41
+ hsl(swatchValue) {
42
+ const [r, g, b, a] = rgba(swatchValue);
43
+ return toHslaString([...rgb2hsl(r, g, b), a]);
44
+ },
45
+ hsv(swatchValue) {
46
+ const [r, g, b, a] = rgba(swatchValue);
47
+ return toHsvaString([...rgb2hsv(r, g, b), a]);
48
+ }
49
+ },
50
+ hsl: {
51
+ hex(swatchValue) {
52
+ const [h, s, l, a] = hsla(swatchValue);
53
+ return toHexaString([...hsl2rgb(h, s, l), a]);
54
+ },
55
+ rgb(swatchValue) {
56
+ const [h, s, l, a] = hsla(swatchValue);
57
+ return toRgbaString([...hsl2rgb(h, s, l), a]);
58
+ },
59
+ hsv(swatchValue) {
60
+ const [h, s, l, a] = hsla(swatchValue);
61
+ return toHsvaString([...hsl2hsv(h, s, l), a]);
62
+ }
63
+ },
64
+ hsv: {
65
+ hex(swatchValue) {
66
+ const [h, s, v, a] = hsva(swatchValue);
67
+ return toHexaString([...hsv2rgb(h, s, v), a]);
68
+ },
69
+ rgb(swatchValue) {
70
+ const [h, s, v, a] = hsva(swatchValue);
71
+ return toRgbaString([...hsv2rgb(h, s, v), a]);
72
+ },
73
+ hsl(swatchValue) {
74
+ const [h, s, v, a] = hsva(swatchValue);
75
+ return toHslaString([...hsv2hsl(h, s, v), a]);
76
+ }
77
+ }
78
+ };
79
+ export default defineComponent({
80
+ name: 'ColorPickerSwatches',
81
+ props: {
82
+ clsPrefix: {
83
+ type: String,
84
+ required: true
85
+ },
86
+ mode: {
87
+ type: String,
88
+ required: true
89
+ },
90
+ swatches: {
91
+ type: Array,
92
+ required: true
93
+ },
94
+ onUpdateColor: {
95
+ type: Function,
96
+ required: true
97
+ }
98
+ },
99
+ setup(props) {
100
+ const parsedSwatchesRef = computed(() => props.swatches.map((value) => {
101
+ const mode = getModeFromValue(value);
102
+ return {
103
+ value,
104
+ mode,
105
+ legalValue: normalizeColor(value, mode)
106
+ };
107
+ }));
108
+ function normalizeOutput(parsed) {
109
+ const { mode: modeProp } = props;
110
+ let { value, mode: swatchColorMode } = parsed;
111
+ // color name is converted to hex
112
+ if (!swatchColorMode) {
113
+ swatchColorMode = 'hex';
114
+ if (/^[a-zA-Z]+$/.test(value)) {
115
+ value = getHexFromName(value);
116
+ }
117
+ else {
118
+ // for invalid color, we make it black
119
+ warn('color-picker', `color ${value} in swatches is invalid.`);
120
+ value = '#000000';
121
+ }
122
+ }
123
+ if (swatchColorMode === modeProp)
124
+ return value;
125
+ // swatch value to current mode value
126
+ const conversions = covert[swatchColorMode];
127
+ return conversions[modeProp](value);
128
+ }
129
+ function handleSwatchSelect(parsed) {
130
+ props.onUpdateColor(normalizeOutput(parsed));
131
+ }
132
+ return {
133
+ parsedSwatchesRef,
134
+ handleSwatchSelect
135
+ };
136
+ },
137
+ render() {
138
+ const { clsPrefix } = this;
139
+ return (h("div", { class: `${clsPrefix}-color-picker-swatches` }, this.parsedSwatchesRef.map((swatch) => (h("div", { class: `${clsPrefix}-color-picker-swatch`, onClick: () => this.handleSwatchSelect(swatch) },
140
+ h("div", { class: `${clsPrefix}-color-picker-swatch__fill`, style: { background: swatch.legalValue } }))))));
141
+ }
142
+ });
@@ -132,4 +132,24 @@ export default c([cB('color-picker', `
132
132
  --block-size: calc((var(--height) - 8px) / 3);
133
133
  background-size: calc(var(--block-size) * 2) calc(var(--block-size) * 2);
134
134
  background-position: 0 0, 0 var(--block-size), var(--block-size) calc(-1 * var(--block-size)), calc(-1 * var(--block-size)) 0px;
135
+ `)])]), cB('color-picker-swatches', `
136
+ display: grid;
137
+ grid-gap: 8px;
138
+ flex-wrap: wrap;
139
+ position: relative;
140
+ grid-template-columns: repeat(auto-fill, 18px);
141
+ margin-top: 10px;
142
+ `, [cB('color-picker-swatch', `
143
+ width: 18px;
144
+ height: 18px;
145
+ background-image: linear-gradient(45deg, #DDD 25%, #0000 25%), linear-gradient(-45deg, #DDD 25%, #0000 25%), linear-gradient(45deg, #0000 75%, #DDD 75%), linear-gradient(-45deg, #0000 75%, #DDD 75%);
146
+ background-size: 8px 8px;
147
+ background-position: 0px 0, 0px 4px, 4px -4px, -4px 0px;
148
+ background-repeat: repeat;
149
+ `, [cE('fill', `
150
+ width: 100%;
151
+ height: 100%;
152
+ border-radius: 3px;
153
+ box-shadow: rgba(0, 0, 0, .15) 0px 0px 0px 1px inset;
154
+ cursor: pointer;
135
155
  `)])])]);
@@ -2,7 +2,7 @@ import { PropType, InjectionKey, ComputedRef } from 'vue';
2
2
  import { ExtractPublicPropTypes } from '../../_utils';
3
3
  import { Hljs } from '../../_mixins';
4
4
  import type { GlobalTheme, GlobalThemeOverrides, GlobalComponentConfig, GlobalIconConfig } from './interface';
5
- import type { ConfigProviderInjection, RtlProp } from './internal-interface';
5
+ import type { ConfigProviderInjection, RtlProp, Breakpoints } from './internal-interface';
6
6
  import { NDateLocale } from '../../locales';
7
7
  export declare const configProviderInjectionKey: InjectionKey<ConfigProviderInjection>;
8
8
  export declare const configProviderProps: {
@@ -43,6 +43,7 @@ export declare const configProviderProps: {
43
43
  selectDate: string;
44
44
  datePlaceholder: string;
45
45
  datetimePlaceholder: string;
46
+ monthPlaceholder: string;
46
47
  startDatePlaceholder: string;
47
48
  endDatePlaceholder: string;
48
49
  startDatetimePlaceholder: string;
@@ -115,6 +116,7 @@ export declare const configProviderProps: {
115
116
  readonly themeOverrides: PropType<GlobalThemeOverrides | null>;
116
117
  readonly componentOptions: PropType<GlobalComponentConfig>;
117
118
  readonly icons: PropType<GlobalIconConfig>;
119
+ readonly breakpoints: PropType<Breakpoints>;
118
120
  readonly as: {
119
121
  readonly type: PropType<string | undefined>;
120
122
  readonly validator: () => boolean;
@@ -160,6 +162,7 @@ declare const _default: import("vue").DefineComponent<{
160
162
  selectDate: string;
161
163
  datePlaceholder: string;
162
164
  datetimePlaceholder: string;
165
+ monthPlaceholder: string;
163
166
  startDatePlaceholder: string;
164
167
  endDatePlaceholder: string;
165
168
  startDatetimePlaceholder: string;
@@ -232,6 +235,7 @@ declare const _default: import("vue").DefineComponent<{
232
235
  readonly themeOverrides: PropType<GlobalThemeOverrides | null>;
233
236
  readonly componentOptions: PropType<GlobalComponentConfig>;
234
237
  readonly icons: PropType<GlobalIconConfig>;
238
+ readonly breakpoints: PropType<Breakpoints>;
235
239
  readonly as: {
236
240
  readonly type: PropType<string | undefined>;
237
241
  readonly validator: () => boolean;
@@ -257,6 +261,7 @@ declare const _default: import("vue").DefineComponent<{
257
261
  readonly themeOverrides?: unknown;
258
262
  readonly componentOptions?: unknown;
259
263
  readonly icons?: unknown;
264
+ readonly breakpoints?: unknown;
260
265
  readonly as?: unknown;
261
266
  } & {
262
267
  abstract: boolean;
@@ -300,6 +305,7 @@ declare const _default: import("vue").DefineComponent<{
300
305
  selectDate: string;
301
306
  datePlaceholder: string;
302
307
  datetimePlaceholder: string;
308
+ monthPlaceholder: string;
303
309
  startDatePlaceholder: string;
304
310
  endDatePlaceholder: string;
305
311
  startDatetimePlaceholder: string;
@@ -364,6 +370,7 @@ declare const _default: import("vue").DefineComponent<{
364
370
  hljs?: Hljs | undefined;
365
371
  componentOptions?: GlobalComponentConfig | undefined;
366
372
  icons?: GlobalIconConfig | undefined;
373
+ breakpoints?: Breakpoints;
367
374
  }>, {
368
375
  abstract: boolean;
369
376
  tag: string;
@@ -24,6 +24,7 @@ export const configProviderProps = {
24
24
  themeOverrides: Object,
25
25
  componentOptions: Object,
26
26
  icons: Object,
27
+ breakpoints: Object,
27
28
  // deprecated
28
29
  as: {
29
30
  type: String,
@@ -95,9 +96,10 @@ export default defineComponent({
95
96
  return NConfigProvider === null || NConfigProvider === void 0 ? void 0 : NConfigProvider.mergedComponentPropsRef.value;
96
97
  });
97
98
  const mergedClsPrefixRef = computed(() => {
98
- var _a;
99
99
  const { clsPrefix } = props;
100
- return (_a = NConfigProvider === null || NConfigProvider === void 0 ? void 0 : NConfigProvider.mergedClsPrefixRef.value) !== null && _a !== void 0 ? _a : clsPrefix;
100
+ if (clsPrefix !== undefined)
101
+ return clsPrefix;
102
+ return NConfigProvider === null || NConfigProvider === void 0 ? void 0 : NConfigProvider.mergedClsPrefixRef.value;
101
103
  });
102
104
  const mergedRtlRef = computed(() => {
103
105
  const { rtl } = props;
@@ -110,7 +112,11 @@ export default defineComponent({
110
112
  }
111
113
  return rtlEnabledState;
112
114
  });
115
+ const mergedBreakpointsRef = computed(() => {
116
+ return props.breakpoints || (NConfigProvider === null || NConfigProvider === void 0 ? void 0 : NConfigProvider.mergedBreakpointsRef.value);
117
+ });
113
118
  provide(configProviderInjectionKey, {
119
+ mergedBreakpointsRef,
114
120
  mergedRtlRef,
115
121
  mergedIconsRef,
116
122
  mergedComponentPropsRef,
@@ -0,0 +1,8 @@
1
+ export declare const defaultBreakpoints: {
2
+ readonly xs: 0;
3
+ readonly s: 640;
4
+ readonly m: 1024;
5
+ readonly l: 1280;
6
+ readonly xl: 1536;
7
+ readonly xxl: 1920;
8
+ };
@@ -0,0 +1,8 @@
1
+ export const defaultBreakpoints = {
2
+ xs: 0,
3
+ s: 640,
4
+ m: 1024,
5
+ l: 1280,
6
+ xl: 1536,
7
+ xxl: 1920 // normal desktop display
8
+ };
@@ -210,7 +210,11 @@ export interface RtlItem {
210
210
  }
211
211
  export declare type RtlProp = RtlItem[];
212
212
  export declare type RtlEnabledState = Partial<Record<keyof GlobalThemeWithoutCommon, RtlItem>>;
213
+ export declare type Breakpoints = {
214
+ [k: string]: number;
215
+ } | undefined;
213
216
  export interface ConfigProviderInjection {
217
+ mergedBreakpointsRef: Ref<Breakpoints | undefined>;
214
218
  mergedClsPrefixRef: Ref<string | undefined>;
215
219
  mergedBorderedRef: Ref<boolean | undefined>;
216
220
  mergedNamespaceRef: Ref<string | undefined>;
@@ -962,8 +962,14 @@ declare const _default: import("vue").DefineComponent<{
962
962
  cols: import("vue").Ref<ColItem[]>;
963
963
  paginatedData: import("vue").Ref<TmNode[]>;
964
964
  rawPaginatedData: import("vue").Ref<import("../interface").InternalRowData[]>;
965
- fixedColumnLeftMap: import("vue").Ref<Record<import("../interface").ColumnKey, number | undefined>>;
966
- fixedColumnRightMap: import("vue").Ref<Record<import("../interface").ColumnKey, number | undefined>>;
965
+ fixedColumnLeftMap: import("vue").Ref<Record<import("../interface").ColumnKey, {
966
+ start: number;
967
+ end: number;
968
+ } | undefined>>;
969
+ fixedColumnRightMap: import("vue").Ref<Record<import("../interface").ColumnKey, {
970
+ start: number;
971
+ end: number;
972
+ } | undefined>>;
967
973
  currentPage: import("vue").Ref<number>;
968
974
  rowClassName: import("vue").Ref<string | import("../interface").CreateRowClassName<import("../interface").InternalRowData> | undefined>;
969
975
  renderExpand: import("vue").Ref<import("../interface").RenderExpand<import("../interface").InternalRowData> | undefined>;
@@ -268,7 +268,7 @@ export default defineComponent({
268
268
  const expanded = mergedExpandedRowKeys.includes(rowKey);
269
269
  const showExpandContent = renderExpand && expanded;
270
270
  const colNodes = cols.map((col, colIndex) => {
271
- var _a, _b, _c;
271
+ var _a, _b, _c, _d, _e;
272
272
  if (rowIndex in cordToPass) {
273
273
  const cordOfRowToPass = cordToPass[rowIndex];
274
274
  const indexInCordOfRowToPass = cordOfRowToPass.indexOf(colIndex);
@@ -321,8 +321,8 @@ export default defineComponent({
321
321
  const { ellipsis } = column;
322
322
  return (h("td", { key: colKey, style: {
323
323
  textAlign: column.align || undefined,
324
- left: pxfy(fixedColumnLeftMap[colKey]),
325
- right: pxfy(fixedColumnRightMap[colKey])
324
+ left: pxfy((_c = fixedColumnLeftMap[colKey]) === null || _c === void 0 ? void 0 : _c.start),
325
+ right: pxfy((_d = fixedColumnRightMap[colKey]) === null || _d === void 0 ? void 0 : _d.start)
326
326
  }, colspan: mergedColSpan, rowspan: mergedRowSpan, "data-col-key": colKey, class: [
327
327
  `${mergedClsPrefix}-data-table-td`,
328
328
  column.className,
@@ -354,7 +354,7 @@ export default defineComponent({
354
354
  ]
355
355
  : null,
356
356
  column.type === 'selection' ? (!isSummary ? (h(RenderSafeCheckbox, { key: currentPage, rowKey: rowKey, disabled: rowInfo.disabled, onUpdateChecked: (checked, e) => handleCheckboxUpdateChecked(rowInfo, checked, e.shiftKey) })) : null) : column.type === 'expand' ? (!isSummary ? (!column.expandable ||
357
- ((_c = column.expandable) === null || _c === void 0 ? void 0 : _c.call(column, rowData, rowIndex)) ? (h(ExpandTrigger, { clsPrefix: mergedClsPrefix, expanded: expanded, onClick: () => handleUpdateExpanded(rowKey) })) : null) : null) : (h(Cell, { index: rowIndex, row: rowData, column: column, isSummary: isSummary, mergedTheme: mergedTheme }))));
357
+ ((_e = column.expandable) === null || _e === void 0 ? void 0 : _e.call(column, rowData, rowIndex)) ? (h(ExpandTrigger, { clsPrefix: mergedClsPrefix, expanded: expanded, onClick: () => handleUpdateExpanded(rowKey) })) : null) : null) : (h(Cell, { index: rowIndex, row: rowData, column: column, isSummary: isSummary, mergedTheme: mergedTheme }))));
358
358
  });
359
359
  const props = rowProps ? rowProps(rowData, rowIndex) : undefined;
360
360
  const mergedRowClassName = typeof rowClassName === 'string'
@@ -9,8 +9,14 @@ declare const _default: import("vue").DefineComponent<{
9
9
  mergedSortState: import("vue").Ref<import("../interface").SortState[]>;
10
10
  mergedClsPrefix: import("vue").Ref<string>;
11
11
  scrollX: import("vue").Ref<string | number | undefined>;
12
- fixedColumnLeftMap: import("vue").Ref<Record<import("../interface").ColumnKey, number | undefined>>;
13
- fixedColumnRightMap: import("vue").Ref<Record<import("../interface").ColumnKey, number | undefined>>;
12
+ fixedColumnLeftMap: import("vue").Ref<Record<import("../interface").ColumnKey, {
13
+ start: number;
14
+ end: number;
15
+ } | undefined>>;
16
+ fixedColumnRightMap: import("vue").Ref<Record<import("../interface").ColumnKey, {
17
+ start: number;
18
+ end: number;
19
+ } | undefined>>;
14
20
  currentPage: import("vue").Ref<number>;
15
21
  allRowsChecked: import("vue").Ref<boolean>;
16
22
  someRowsChecked: import("vue").Ref<boolean>;
@@ -72,18 +72,21 @@ export default defineComponent({
72
72
  let hasEllipsis = false;
73
73
  const theadVNode = (h("thead", { class: `${mergedClsPrefix}-data-table-thead`, "data-n-id": componentId }, rows.map((row) => {
74
74
  return (h("tr", { class: `${mergedClsPrefix}-data-table-tr` }, row.map(({ column, colSpan, rowSpan, isLast }) => {
75
+ var _a, _b;
75
76
  const key = getColKey(column);
76
77
  const { ellipsis } = column;
77
78
  if (!hasEllipsis && ellipsis)
78
79
  hasEllipsis = true;
80
+ const leftFixed = key in fixedColumnLeftMap;
81
+ const rightFixed = key in fixedColumnRightMap;
79
82
  return (h("th", { key: key, style: {
80
83
  textAlign: column.align,
81
- left: pxfy(fixedColumnLeftMap[key]),
82
- right: pxfy(fixedColumnRightMap[key])
84
+ left: pxfy((_a = fixedColumnLeftMap[key]) === null || _a === void 0 ? void 0 : _a.start),
85
+ right: pxfy((_b = fixedColumnRightMap[key]) === null || _b === void 0 ? void 0 : _b.start)
83
86
  }, colspan: colSpan, rowspan: rowSpan, "data-col-key": key, class: [
84
87
  `${mergedClsPrefix}-data-table-th`,
85
- column.fixed &&
86
- `${mergedClsPrefix}-data-table-th--fixed-${column.fixed}`,
88
+ (leftFixed || rightFixed) &&
89
+ `${mergedClsPrefix}-data-table-th--fixed-${leftFixed ? 'left' : 'right'}`,
87
90
  {
88
91
  [`${mergedClsPrefix}-data-table-th--hover`]: isColumnSorting(column, mergedSortState),
89
92
  [`${mergedClsPrefix}-data-table-th--filterable`]: isColumnFilterable(column),
@@ -116,8 +116,14 @@ export interface DataTableInjection {
116
116
  rightFixedColumnsRef: Ref<TableColumns>;
117
117
  leftActiveFixedColKeyRef: Ref<ColumnKey | null>;
118
118
  rightActiveFixedColKeyRef: Ref<ColumnKey | null>;
119
- fixedColumnLeftMapRef: Ref<Record<ColumnKey, number | undefined>>;
120
- fixedColumnRightMapRef: Ref<Record<ColumnKey, number | undefined>>;
119
+ fixedColumnLeftMapRef: Ref<Record<ColumnKey, {
120
+ start: number;
121
+ end: number;
122
+ } | undefined>>;
123
+ fixedColumnRightMapRef: Ref<Record<ColumnKey, {
124
+ start: number;
125
+ end: number;
126
+ } | undefined>>;
121
127
  mergedCurrentPageRef: Ref<number>;
122
128
  someRowsCheckedRef: Ref<boolean>;
123
129
  allRowsCheckedRef: Ref<boolean>;
@@ -32,32 +32,35 @@ function getRowsAndCols(columns) {
32
32
  }
33
33
  }
34
34
  ensureMaxDepth(columns, 0);
35
- function ensureColLayout(columns, currentDepth, parentIsLast) {
36
- let currentLeafIndex = -1;
35
+ let currentLeafIndex = 0;
36
+ function ensureColLayout(columns, currentDepth) {
37
37
  let hideUntilIndex = 0;
38
- const lastIndex = columns.length - 1;
39
38
  columns.forEach((column, index) => {
40
39
  var _a;
41
40
  if ('children' in column) {
42
41
  // do not allow colSpan > 1 for non-leaf th
43
- const isLast = parentIsLast && index === lastIndex;
42
+ // we will execute the calculation logic
43
+ const cachedCurrentLeafIndex = currentLeafIndex;
44
44
  const rowItem = {
45
45
  column,
46
46
  colSpan: 0,
47
47
  rowSpan: 1,
48
- isLast
48
+ isLast: false
49
49
  };
50
- ensureColLayout(column.children, currentDepth + 1, isLast);
50
+ ensureColLayout(column.children, currentDepth + 1);
51
51
  column.children.forEach((childColumn) => {
52
52
  var _a, _b;
53
53
  rowItem.colSpan += (_b = (_a = rowItemMap.get(childColumn)) === null || _a === void 0 ? void 0 : _a.colSpan) !== null && _b !== void 0 ? _b : 0;
54
54
  });
55
+ if (cachedCurrentLeafIndex + rowItem.colSpan === totalRowSpan) {
56
+ rowItem.isLast = true;
57
+ }
55
58
  rowItemMap.set(column, rowItem);
56
59
  rows[currentDepth].push(rowItem);
57
60
  }
58
61
  else {
59
- currentLeafIndex += 1;
60
62
  if (currentLeafIndex < hideUntilIndex) {
63
+ currentLeafIndex += 1;
61
64
  return;
62
65
  }
63
66
  let colSpan = 1;
@@ -76,10 +79,11 @@ function getRowsAndCols(columns) {
76
79
  };
77
80
  rowItemMap.set(column, rowItem);
78
81
  rows[currentDepth].push(rowItem);
82
+ currentLeafIndex += 1;
79
83
  }
80
84
  });
81
85
  }
82
- ensureColLayout(columns, 0, true);
86
+ ensureColLayout(columns, 0);
83
87
  return {
84
88
  hasEllipsis,
85
89
  rows,
@@ -1,6 +1,6 @@
1
1
  import { ComputedRef, Ref } from 'vue';
2
2
  import { DataTableSetupProps } from './DataTable';
3
- import type { ColumnKey, MainTableRef } from './interface';
3
+ import type { ColumnKey, MainTableRef, TableColumn } from './interface';
4
4
  export declare function useScroll(props: DataTableSetupProps, { mainTableInstRef, mergedCurrentPageRef, bodyWidthRef, scrollPartRef }: {
5
5
  scrollPartRef: Ref<'head' | 'body'>;
6
6
  bodyWidthRef: Ref<null | number>;
@@ -8,10 +8,16 @@ export declare function useScroll(props: DataTableSetupProps, { mainTableInstRef
8
8
  mergedCurrentPageRef: ComputedRef<number>;
9
9
  }): {
10
10
  styleScrollXRef: ComputedRef<string | undefined>;
11
- fixedColumnLeftMapRef: ComputedRef<Record<ColumnKey, number | undefined>>;
12
- fixedColumnRightMapRef: ComputedRef<Record<ColumnKey, number | undefined>>;
13
- leftFixedColumnsRef: ComputedRef<import("./interface").TableColumn<any>[]>;
14
- rightFixedColumnsRef: ComputedRef<import("./interface").TableColumn<any>[]>;
11
+ fixedColumnLeftMapRef: ComputedRef<Record<ColumnKey, {
12
+ start: number;
13
+ end: number;
14
+ } | undefined>>;
15
+ fixedColumnRightMapRef: ComputedRef<Record<ColumnKey, {
16
+ start: number;
17
+ end: number;
18
+ } | undefined>>;
19
+ leftFixedColumnsRef: ComputedRef<TableColumn<any>[]>;
20
+ rightFixedColumnsRef: ComputedRef<TableColumn<any>[]>;
15
21
  leftActiveFixedColKeyRef: Ref<ColumnKey | null>;
16
22
  rightActiveFixedColKeyRef: Ref<ColumnKey | null>;
17
23
  syncScrollState: () => void;
@@ -19,22 +19,45 @@ export function useScroll(props, { mainTableInstRef, mergedCurrentPageRef, bodyW
19
19
  const fixedColumnLeftMapRef = computed(() => {
20
20
  const columns = {};
21
21
  let left = 0;
22
- for (const column of leftFixedColumnsRef.value) {
23
- columns[getColKey(column)] = left;
24
- left += getColWidth(column) || 0;
22
+ function traverse(cols) {
23
+ cols.forEach((col) => {
24
+ const positionInfo = { start: left, end: 0 };
25
+ columns[getColKey(col)] = positionInfo;
26
+ if ('children' in col) {
27
+ traverse(col.children);
28
+ positionInfo.end = left;
29
+ }
30
+ else {
31
+ left += getColWidth(col) || 0;
32
+ positionInfo.end = left;
33
+ }
34
+ });
25
35
  }
36
+ traverse(leftFixedColumnsRef.value);
26
37
  return columns;
27
38
  });
28
39
  const fixedColumnRightMapRef = computed(() => {
29
40
  const columns = {};
30
41
  let right = 0;
31
- for (const column of rightFixedColumnsRef.value.reverse()) {
32
- columns[getColKey(column)] = right;
33
- right += column.width || 0;
42
+ function traverse(cols) {
43
+ cols.forEach((col) => {
44
+ const positionInfo = { start: right, end: 0 };
45
+ columns[getColKey(col)] = positionInfo;
46
+ if ('children' in col) {
47
+ traverse(col.children);
48
+ positionInfo.end = right;
49
+ }
50
+ else {
51
+ right += getColWidth(col) || 0;
52
+ positionInfo.end = right;
53
+ }
54
+ });
34
55
  }
56
+ traverse(rightFixedColumnsRef.value.reverse());
35
57
  return columns;
36
58
  });
37
59
  function deriveActiveLeftFixedColumn() {
60
+ var _a, _b;
38
61
  // target is header element
39
62
  const { value: leftFixedColumns } = leftFixedColumnsRef;
40
63
  let leftWidth = 0;
@@ -42,9 +65,9 @@ export function useScroll(props, { mainTableInstRef, mergedCurrentPageRef, bodyW
42
65
  let leftActiveFixedColKey = null;
43
66
  for (let i = 0; i < leftFixedColumns.length; ++i) {
44
67
  const key = getColKey(leftFixedColumns[i]);
45
- if (scrollLeft > (fixedColumnLeftMap[key] || 0) - leftWidth) {
68
+ if (scrollLeft > (((_a = fixedColumnLeftMap[key]) === null || _a === void 0 ? void 0 : _a.start) || 0) - leftWidth) {
46
69
  leftActiveFixedColKey = key;
47
- leftWidth += getColWidth(leftFixedColumns[i]) || 0;
70
+ leftWidth = ((_b = fixedColumnLeftMap[key]) === null || _b === void 0 ? void 0 : _b.end) || 0;
48
71
  }
49
72
  else {
50
73
  break;
@@ -53,6 +76,7 @@ export function useScroll(props, { mainTableInstRef, mergedCurrentPageRef, bodyW
53
76
  leftActiveFixedColKeyRef.value = leftActiveFixedColKey;
54
77
  }
55
78
  function deriveActiveRightFixedColumn() {
79
+ var _a, _b;
56
80
  // target is header element
57
81
  const { value: rightFixedColumns } = rightFixedColumnsRef;
58
82
  const scrollWidth = Number(props.scrollX);
@@ -64,9 +88,12 @@ export function useScroll(props, { mainTableInstRef, mergedCurrentPageRef, bodyW
64
88
  const { value: fixedColumnRightMap } = fixedColumnRightMapRef;
65
89
  for (let i = 0; i < rightFixedColumns.length; ++i) {
66
90
  const key = getColKey(rightFixedColumns[i]);
67
- if (Math.round(scrollLeft + (fixedColumnRightMap[key] || 0) + tableWidth - rightWidth) < scrollWidth) {
91
+ if (Math.round(scrollLeft +
92
+ (((_a = fixedColumnRightMap[key]) === null || _a === void 0 ? void 0 : _a.start) || 0) +
93
+ tableWidth -
94
+ rightWidth) < scrollWidth) {
68
95
  rightActiveFixedColKey = key;
69
- rightWidth += getColWidth(rightFixedColumns[i]) || 0;
96
+ rightWidth = ((_b = fixedColumnRightMap[key]) === null || _b === void 0 ? void 0 : _b.end) || 0;
70
97
  }
71
98
  else {
72
99
  break;
@@ -109,6 +109,9 @@ export default defineComponent({
109
109
  else if (props.type === 'datetime') {
110
110
  return localeRef.value.datetimePlaceholder;
111
111
  }
112
+ else if (props.type === 'month') {
113
+ return localeRef.value.monthPlaceholder;
114
+ }
112
115
  return props.placeholder;
113
116
  }
114
117
  else {
@@ -1044,6 +1044,7 @@ declare const _default: import("vue").DefineComponent<{
1044
1044
  selectDate: string;
1045
1045
  datePlaceholder: string;
1046
1046
  datetimePlaceholder: string;
1047
+ monthPlaceholder: string;
1047
1048
  startDatePlaceholder: string;
1048
1049
  endDatePlaceholder: string;
1049
1050
  startDatetimePlaceholder: string;
@@ -1042,6 +1042,7 @@ declare const _default: import("vue").DefineComponent<{
1042
1042
  selectDate: string;
1043
1043
  datePlaceholder: string;
1044
1044
  datetimePlaceholder: string;
1045
+ monthPlaceholder: string;
1045
1046
  startDatePlaceholder: string;
1046
1047
  endDatePlaceholder: string;
1047
1048
  startDatetimePlaceholder: string;
@@ -1050,6 +1050,7 @@ declare const _default: import("vue").DefineComponent<{
1050
1050
  selectDate: string;
1051
1051
  datePlaceholder: string;
1052
1052
  datetimePlaceholder: string;
1053
+ monthPlaceholder: string;
1053
1054
  startDatePlaceholder: string;
1054
1055
  endDatePlaceholder: string;
1055
1056
  startDatetimePlaceholder: string;
@@ -1042,6 +1042,7 @@ declare const _default: import("vue").DefineComponent<{
1042
1042
  selectDate: string;
1043
1043
  datePlaceholder: string;
1044
1044
  datetimePlaceholder: string;
1045
+ monthPlaceholder: string;
1045
1046
  startDatePlaceholder: string;
1046
1047
  endDatePlaceholder: string;
1047
1048
  startDatetimePlaceholder: string;
@@ -1065,6 +1065,7 @@ declare const _default: import("vue").DefineComponent<{
1065
1065
  selectDate: string;
1066
1066
  datePlaceholder: string;
1067
1067
  datetimePlaceholder: string;
1068
+ monthPlaceholder: string;
1068
1069
  startDatePlaceholder: string;
1069
1070
  endDatePlaceholder: string;
1070
1071
  startDatetimePlaceholder: string;
@@ -1047,6 +1047,7 @@ declare function useCalendar(props: ExtractPropTypes<typeof useCalendarProps>, t
1047
1047
  selectDate: string;
1048
1048
  datePlaceholder: string;
1049
1049
  datetimePlaceholder: string;
1050
+ monthPlaceholder: string;
1050
1051
  startDatePlaceholder: string;
1051
1052
  endDatePlaceholder: string;
1052
1053
  startDatetimePlaceholder: string;
@@ -1045,6 +1045,7 @@ declare function useDualCalendar(props: ExtractPropTypes<typeof useDualCalendarP
1045
1045
  selectDate: string;
1046
1046
  datePlaceholder: string;
1047
1047
  datetimePlaceholder: string;
1048
+ monthPlaceholder: string;
1048
1049
  startDatePlaceholder: string;
1049
1050
  endDatePlaceholder: string;
1050
1051
  startDatetimePlaceholder: string;