naive-ui 2.21.3 → 2.21.4

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 (70) hide show
  1. package/es/calendar/src/Calendar.d.ts +1 -0
  2. package/es/config-provider/src/ConfigProvider.d.ts +3 -0
  3. package/es/data-table/src/DataTable.js +2 -3
  4. package/es/data-table/src/use-table-data.js +1 -0
  5. package/es/date-picker/src/DatePicker.d.ts +1 -1
  6. package/es/date-picker/src/DatePicker.js +15 -11
  7. package/es/date-picker/src/panel/date.d.ts +1 -0
  8. package/es/date-picker/src/panel/daterange.d.ts +1 -0
  9. package/es/date-picker/src/panel/datetime.d.ts +1 -0
  10. package/es/date-picker/src/panel/datetimerange.d.ts +1 -0
  11. package/es/date-picker/src/panel/month.d.ts +1 -0
  12. package/es/date-picker/src/panel/use-calendar.d.ts +1 -0
  13. package/es/date-picker/src/panel/use-dual-calendar.d.ts +1 -0
  14. package/es/date-picker/src/panel/use-panel-common.d.ts +1 -0
  15. package/es/element/index.d.ts +1 -0
  16. package/es/element/index.js +1 -0
  17. package/es/form/src/interface.d.ts +5 -4
  18. package/es/locales/common/deDE.js +2 -0
  19. package/es/locales/common/enUS.d.ts +1 -0
  20. package/es/locales/common/enUS.js +1 -0
  21. package/es/locales/common/idID.d.ts +1 -0
  22. package/es/locales/common/idID.js +2 -0
  23. package/es/locales/common/jaJP.js +2 -0
  24. package/es/locales/common/nbNO.js +2 -0
  25. package/es/locales/common/ruRU.js +2 -0
  26. package/es/locales/common/ukUA.js +2 -0
  27. package/es/locales/common/zhCN.js +1 -0
  28. package/es/upload/src/Upload.d.ts +11 -0
  29. package/es/upload/src/Upload.js +33 -23
  30. package/es/upload/src/UploadFileList.js +4 -2
  31. package/es/upload/src/interface.d.ts +1 -0
  32. package/es/upload/src/styles/index.cssr.js +2 -3
  33. package/es/version.d.ts +1 -1
  34. package/es/version.js +1 -1
  35. package/lib/calendar/src/Calendar.d.ts +1 -0
  36. package/lib/config-provider/src/ConfigProvider.d.ts +3 -0
  37. package/lib/data-table/src/DataTable.js +2 -3
  38. package/lib/data-table/src/use-table-data.js +1 -0
  39. package/lib/date-picker/src/DatePicker.d.ts +1 -1
  40. package/lib/date-picker/src/DatePicker.js +15 -11
  41. package/lib/date-picker/src/panel/date.d.ts +1 -0
  42. package/lib/date-picker/src/panel/daterange.d.ts +1 -0
  43. package/lib/date-picker/src/panel/datetime.d.ts +1 -0
  44. package/lib/date-picker/src/panel/datetimerange.d.ts +1 -0
  45. package/lib/date-picker/src/panel/month.d.ts +1 -0
  46. package/lib/date-picker/src/panel/use-calendar.d.ts +1 -0
  47. package/lib/date-picker/src/panel/use-dual-calendar.d.ts +1 -0
  48. package/lib/date-picker/src/panel/use-panel-common.d.ts +1 -0
  49. package/lib/element/index.d.ts +1 -0
  50. package/lib/element/index.js +3 -1
  51. package/lib/form/src/interface.d.ts +5 -4
  52. package/lib/locales/common/deDE.js +2 -0
  53. package/lib/locales/common/enUS.d.ts +1 -0
  54. package/lib/locales/common/enUS.js +1 -0
  55. package/lib/locales/common/idID.d.ts +1 -0
  56. package/lib/locales/common/idID.js +2 -0
  57. package/lib/locales/common/jaJP.js +2 -0
  58. package/lib/locales/common/nbNO.js +2 -0
  59. package/lib/locales/common/ruRU.js +2 -0
  60. package/lib/locales/common/ukUA.js +2 -0
  61. package/lib/locales/common/zhCN.js +1 -0
  62. package/lib/upload/src/Upload.d.ts +11 -0
  63. package/lib/upload/src/Upload.js +33 -23
  64. package/lib/upload/src/UploadFileList.js +4 -2
  65. package/lib/upload/src/interface.d.ts +1 -0
  66. package/lib/upload/src/styles/index.cssr.js +2 -3
  67. package/lib/version.d.ts +1 -1
  68. package/lib/version.js +1 -1
  69. package/package.json +2 -2
  70. package/web-types.json +26 -1
@@ -1397,6 +1397,7 @@ declare const _default: import("vue").DefineComponent<{
1397
1397
  datePlaceholder: string;
1398
1398
  datetimePlaceholder: string;
1399
1399
  monthPlaceholder: string;
1400
+ yearPlaceholder: string;
1400
1401
  startDatePlaceholder: string;
1401
1402
  endDatePlaceholder: string;
1402
1403
  startDatetimePlaceholder: string;
@@ -44,6 +44,7 @@ export declare const configProviderProps: {
44
44
  datePlaceholder: string;
45
45
  datetimePlaceholder: string;
46
46
  monthPlaceholder: string;
47
+ yearPlaceholder: string;
47
48
  startDatePlaceholder: string;
48
49
  endDatePlaceholder: string;
49
50
  startDatetimePlaceholder: string;
@@ -163,6 +164,7 @@ declare const _default: import("vue").DefineComponent<{
163
164
  datePlaceholder: string;
164
165
  datetimePlaceholder: string;
165
166
  monthPlaceholder: string;
167
+ yearPlaceholder: string;
166
168
  startDatePlaceholder: string;
167
169
  endDatePlaceholder: string;
168
170
  startDatetimePlaceholder: string;
@@ -306,6 +308,7 @@ declare const _default: import("vue").DefineComponent<{
306
308
  datePlaceholder: string;
307
309
  datetimePlaceholder: string;
308
310
  monthPlaceholder: string;
311
+ yearPlaceholder: string;
309
312
  startDatePlaceholder: string;
310
313
  endDatePlaceholder: string;
311
314
  startDatetimePlaceholder: string;
@@ -292,9 +292,8 @@ export default defineComponent({
292
292
  h(MainTable, { ref: "mainTableInstRef" }, {
293
293
  default: () => this.paginatedData.length === 0 ? (h("div", { class: [
294
294
  `${mergedClsPrefix}-data-table-empty`,
295
- {
296
- [`${mergedClsPrefix}-data-table-empty--hide`]: this.loading
297
- }
295
+ this.loading &&
296
+ `${mergedClsPrefix}-data-table-empty--hide`
298
297
  ] }, renderSlot(this.$slots, 'empty', undefined, () => [
299
298
  h(NEmpty, { theme: this.mergedTheme.peers.Empty, themeOverrides: this.mergedTheme.peerOverrides.Empty })
300
299
  ]))) : null
@@ -18,6 +18,7 @@ export function useTableData(props, { dataRelatedColsRef }) {
18
18
  const treeMateRef = computed(() => {
19
19
  const { childrenKey } = props;
20
20
  return createTreeMate(props.data, {
21
+ ignoreEmptyChildren: true,
21
22
  getKey: props.rowKey,
22
23
  getChildren: (rowData) => rowData[childrenKey],
23
24
  getDisabled: (rowData) => {
@@ -3821,7 +3821,7 @@ declare const _default: import("vue").DefineComponent<{
3821
3821
  localizedEndPlaceholder: import("vue").ComputedRef<string>;
3822
3822
  mergedSize: import("vue").ComputedRef<"small" | "medium" | "large">;
3823
3823
  mergedDisabled: import("vue").ComputedRef<boolean>;
3824
- localizedPlacehoder: import("vue").ComputedRef<string | undefined>;
3824
+ localizedPlacehoder: import("vue").ComputedRef<string>;
3825
3825
  isValueInvalid: import("vue").ComputedRef<boolean>;
3826
3826
  isStartValueInvalid: import("vue").ComputedRef<boolean>;
3827
3827
  isEndValueInvalid: import("vue").ComputedRef<boolean>;
@@ -89,20 +89,24 @@ export default defineComponent({
89
89
  return ['daterange', 'datetimerange'].includes(props.type);
90
90
  });
91
91
  const localizedPlacehoderRef = computed(() => {
92
- if (props.placeholder === undefined) {
93
- if (props.type === 'date') {
94
- return localeRef.value.datePlaceholder;
95
- }
96
- else if (props.type === 'datetime') {
97
- return localeRef.value.datetimePlaceholder;
98
- }
99
- else if (props.type === 'month') {
100
- return localeRef.value.monthPlaceholder;
92
+ const { placeholder } = props;
93
+ if (placeholder === undefined) {
94
+ const { type } = props;
95
+ switch (type) {
96
+ case 'date':
97
+ return localeRef.value.datePlaceholder;
98
+ case 'datetime':
99
+ return localeRef.value.datetimePlaceholder;
100
+ case 'month':
101
+ return localeRef.value.monthPlaceholder;
102
+ case 'year':
103
+ return localeRef.value.yearPlaceholder;
104
+ default:
105
+ return '';
101
106
  }
102
- return props.placeholder;
103
107
  }
104
108
  else {
105
- return props.placeholder;
109
+ return placeholder;
106
110
  }
107
111
  });
108
112
  const localizedStartPlaceholderRef = computed(() => {
@@ -1078,6 +1078,7 @@ declare const _default: import("vue").DefineComponent<{
1078
1078
  datePlaceholder: string;
1079
1079
  datetimePlaceholder: string;
1080
1080
  monthPlaceholder: string;
1081
+ yearPlaceholder: string;
1081
1082
  startDatePlaceholder: string;
1082
1083
  endDatePlaceholder: string;
1083
1084
  startDatetimePlaceholder: string;
@@ -1076,6 +1076,7 @@ declare const _default: import("vue").DefineComponent<{
1076
1076
  datePlaceholder: string;
1077
1077
  datetimePlaceholder: string;
1078
1078
  monthPlaceholder: string;
1079
+ yearPlaceholder: string;
1079
1080
  startDatePlaceholder: string;
1080
1081
  endDatePlaceholder: string;
1081
1082
  startDatetimePlaceholder: string;
@@ -1084,6 +1084,7 @@ declare const _default: import("vue").DefineComponent<{
1084
1084
  datePlaceholder: string;
1085
1085
  datetimePlaceholder: string;
1086
1086
  monthPlaceholder: string;
1087
+ yearPlaceholder: string;
1087
1088
  startDatePlaceholder: string;
1088
1089
  endDatePlaceholder: string;
1089
1090
  startDatetimePlaceholder: string;
@@ -1076,6 +1076,7 @@ declare const _default: import("vue").DefineComponent<{
1076
1076
  datePlaceholder: string;
1077
1077
  datetimePlaceholder: string;
1078
1078
  monthPlaceholder: string;
1079
+ yearPlaceholder: string;
1079
1080
  startDatePlaceholder: string;
1080
1081
  endDatePlaceholder: string;
1081
1082
  startDatetimePlaceholder: string;
@@ -1091,6 +1091,7 @@ declare const _default: import("vue").DefineComponent<{
1091
1091
  datePlaceholder: string;
1092
1092
  datetimePlaceholder: string;
1093
1093
  monthPlaceholder: string;
1094
+ yearPlaceholder: string;
1094
1095
  startDatePlaceholder: string;
1095
1096
  endDatePlaceholder: string;
1096
1097
  startDatetimePlaceholder: string;
@@ -1082,6 +1082,7 @@ declare function useCalendar(props: ExtractPropTypes<typeof useCalendarProps>, t
1082
1082
  datePlaceholder: string;
1083
1083
  datetimePlaceholder: string;
1084
1084
  monthPlaceholder: string;
1085
+ yearPlaceholder: string;
1085
1086
  startDatePlaceholder: string;
1086
1087
  endDatePlaceholder: string;
1087
1088
  startDatetimePlaceholder: string;
@@ -1080,6 +1080,7 @@ declare function useDualCalendar(props: ExtractPropTypes<typeof useDualCalendarP
1080
1080
  datePlaceholder: string;
1081
1081
  datetimePlaceholder: string;
1082
1082
  monthPlaceholder: string;
1083
+ yearPlaceholder: string;
1083
1084
  startDatePlaceholder: string;
1084
1085
  endDatePlaceholder: string;
1085
1086
  startDatetimePlaceholder: string;
@@ -1047,6 +1047,7 @@ declare function usePanelCommon(props: UsePanelCommonProps): {
1047
1047
  datePlaceholder: string;
1048
1048
  datetimePlaceholder: string;
1049
1049
  monthPlaceholder: string;
1050
+ yearPlaceholder: string;
1050
1051
  startDatePlaceholder: string;
1051
1052
  endDatePlaceholder: string;
1052
1053
  startDatetimePlaceholder: string;
@@ -1,2 +1,3 @@
1
1
  export { default as NElement } from './src/Element';
2
+ export { default as NEl } from './src/Element';
2
3
  export type { ElementProps } from './src/Element';
@@ -1 +1,2 @@
1
1
  export { default as NElement } from './src/Element';
2
+ export { default as NEl } from './src/Element';
@@ -8,6 +8,7 @@ export declare type FormItemRuleValidatorParams = Parameters<NonNullable<RuleIte
8
8
  export declare type FormItemRuleValidator = (...args: FormItemRuleValidatorParams) => boolean | Error | Error[] | Promise<void> | undefined;
9
9
  export declare type FormItemRuleAsyncValidator = (...args: FormItemRuleValidatorParams) => Promise<void> | undefined;
10
10
  export declare type FormItemRule = Omit<RuleItem, 'validator' | 'asyncValidator'> & {
11
+ key?: string;
11
12
  trigger?: ValidationTrigger | string | Array<ValidationTrigger | string>;
12
13
  validator?: FormItemRuleValidator;
13
14
  asyncValidator?: FormItemRuleAsyncValidator;
@@ -15,10 +16,10 @@ export declare type FormItemRule = Omit<RuleItem, 'validator' | 'asyncValidator'
15
16
  export interface FormItemValidateOptions {
16
17
  trigger?: ValidationTrigger | string;
17
18
  callback?: ValidateCallback;
18
- shouldRuleBeApplied?: ApplyRule;
19
+ shouldRuleBeApplied?: ShouldRuleBeApplied;
19
20
  options?: ValidateOption;
20
21
  }
21
- export declare type FormItemInternalValidate = (trigger: ValidationTrigger | string | null | undefined, shouldRuleBeApplied?: ApplyRule, options?: ValidateOption) => Promise<{
22
+ export declare type FormItemInternalValidate = (trigger: ValidationTrigger | string | null | undefined, shouldRuleBeApplied?: ShouldRuleBeApplied, options?: ValidateOption) => Promise<{
22
23
  valid: boolean;
23
24
  errors?: ValidateError[];
24
25
  }>;
@@ -38,10 +39,10 @@ export declare type LabelAlign = 'left' | 'center' | 'right';
38
39
  export declare type LabelPlacement = 'left' | 'top';
39
40
  export declare type Size = 'small' | 'medium' | 'large';
40
41
  export declare type ValidationTrigger = 'input' | 'change' | 'blur' | 'focus';
41
- export declare type ApplyRule = (rule: FormItemRule) => boolean;
42
+ export declare type ShouldRuleBeApplied = (rule: FormItemRule) => boolean;
42
43
  export declare type ValidateCallback = (errors?: ValidateError[]) => void;
43
44
  export declare type FormValidateCallback = (errors?: ValidateError[][]) => void;
44
- export declare type FormValidate = ((callback?: FormValidateCallback) => void) & (() => Promise<void>);
45
+ export declare type FormValidate = (callback?: FormValidateCallback, shouldRuleBeApplied?: ShouldRuleBeApplied) => Promise<void>;
45
46
  export declare type FormValidationError = ValidateError[];
46
47
  export interface FormInst {
47
48
  validate: FormValidate;
@@ -30,6 +30,8 @@ const deDE = {
30
30
  datePlaceholder: 'Datum auswählen',
31
31
  datetimePlaceholder: 'Datum und Uhrzeit auswählen',
32
32
  monthPlaceholder: 'Monat auswählen',
33
+ // FIXME: translation needed
34
+ yearPlaceholder: 'Select Year',
33
35
  startDatePlaceholder: 'Anfangsdatum',
34
36
  endDatePlaceholder: 'Enddatum',
35
37
  startDatetimePlaceholder: 'Anfangsdatum und Uhrzeit',
@@ -30,6 +30,7 @@ declare const enUS: {
30
30
  datePlaceholder: string;
31
31
  datetimePlaceholder: string;
32
32
  monthPlaceholder: string;
33
+ yearPlaceholder: string;
33
34
  startDatePlaceholder: string;
34
35
  endDatePlaceholder: string;
35
36
  startDatetimePlaceholder: string;
@@ -30,6 +30,7 @@ const enUS = {
30
30
  datePlaceholder: 'Select Date',
31
31
  datetimePlaceholder: 'Select Date and Time',
32
32
  monthPlaceholder: 'Select Month',
33
+ yearPlaceholder: 'Select Year',
33
34
  startDatePlaceholder: 'Start Date',
34
35
  endDatePlaceholder: 'End Date',
35
36
  startDatetimePlaceholder: 'Start Date and Time',
@@ -30,6 +30,7 @@ declare const idID: {
30
30
  datePlaceholder: string;
31
31
  datetimePlaceholder: string;
32
32
  monthPlaceholder: string;
33
+ yearPlaceholder: string;
33
34
  startDatePlaceholder: string;
34
35
  endDatePlaceholder: string;
35
36
  startDatetimePlaceholder: string;
@@ -30,6 +30,8 @@ const idID = {
30
30
  datePlaceholder: 'Pilih Tanggal',
31
31
  datetimePlaceholder: 'Pilih Tanggal dan Waktu',
32
32
  monthPlaceholder: 'Pilih Bulan',
33
+ // FIXME: translation needed
34
+ yearPlaceholder: 'Select Year',
33
35
  startDatePlaceholder: 'Tanggal Mulai',
34
36
  endDatePlaceholder: 'Tanggal Selesai',
35
37
  startDatetimePlaceholder: 'Tanggal dan Waktu Mulai',
@@ -30,6 +30,8 @@ const jaJP = {
30
30
  datePlaceholder: '日付を選択',
31
31
  datetimePlaceholder: '選択',
32
32
  monthPlaceholder: '月を選択',
33
+ // FIXME: translation needed
34
+ yearPlaceholder: 'Select Year',
33
35
  startDatePlaceholder: '開始日',
34
36
  endDatePlaceholder: '終了日',
35
37
  startDatetimePlaceholder: '開始時間',
@@ -30,6 +30,8 @@ const nbNO = {
30
30
  datePlaceholder: 'Velg dato',
31
31
  datetimePlaceholder: 'Velg dato og tid',
32
32
  monthPlaceholder: 'Velg måned',
33
+ // FIXME: translation needed
34
+ yearPlaceholder: 'Select Year',
33
35
  startDatePlaceholder: 'Startdato',
34
36
  endDatePlaceholder: 'Sluttdato',
35
37
  startDatetimePlaceholder: 'Startdato og -tid',
@@ -30,6 +30,8 @@ const ruRu = {
30
30
  datePlaceholder: 'Выбрать дату',
31
31
  datetimePlaceholder: 'Выбрать дату и время',
32
32
  monthPlaceholder: 'Выберите месяц',
33
+ // FIXME: translation needed
34
+ yearPlaceholder: 'Select Year',
33
35
  startDatePlaceholder: 'Дата начала',
34
36
  endDatePlaceholder: 'Дата окончания',
35
37
  startDatetimePlaceholder: 'Дата и время начала',
@@ -30,6 +30,8 @@ const ukUA = {
30
30
  datePlaceholder: 'Обрати дату',
31
31
  datetimePlaceholder: 'Обрати дату і час',
32
32
  monthPlaceholder: 'Виберіть місяць',
33
+ // FIXME: translation needed
34
+ yearPlaceholder: 'Select Year',
33
35
  startDatePlaceholder: 'Дата початку',
34
36
  endDatePlaceholder: 'Дата завершення',
35
37
  startDatetimePlaceholder: 'Дата і час початку',
@@ -30,6 +30,7 @@ const zhCN = {
30
30
  datePlaceholder: '选择日期',
31
31
  datetimePlaceholder: '选择日期时间',
32
32
  monthPlaceholder: '选择月份',
33
+ yearPlaceholder: '选择年份',
33
34
  startDatePlaceholder: '开始日期',
34
35
  endDatePlaceholder: '结束日期',
35
36
  startDatetimePlaceholder: '开始日期时间',
@@ -68,6 +68,10 @@ declare const uploadProps: {
68
68
  readonly createThumbnailUrl: PropType<CreateThumbnailUrl>;
69
69
  readonly abstract: BooleanConstructor;
70
70
  readonly max: NumberConstructor;
71
+ readonly showTrigger: {
72
+ readonly type: BooleanConstructor;
73
+ readonly default: true;
74
+ };
71
75
  readonly theme: PropType<import("../../_mixins").Theme<"Upload", {
72
76
  fontSize: string;
73
77
  lineHeight: string;
@@ -872,6 +876,10 @@ declare const _default: import("vue").DefineComponent<{
872
876
  readonly createThumbnailUrl: PropType<CreateThumbnailUrl>;
873
877
  readonly abstract: BooleanConstructor;
874
878
  readonly max: NumberConstructor;
879
+ readonly showTrigger: {
880
+ readonly type: BooleanConstructor;
881
+ readonly default: true;
882
+ };
875
883
  readonly theme: PropType<import("../../_mixins").Theme<"Upload", {
876
884
  fontSize: string;
877
885
  lineHeight: string;
@@ -2014,6 +2022,7 @@ declare const _default: import("vue").DefineComponent<{
2014
2022
  readonly createThumbnailUrl?: unknown;
2015
2023
  readonly abstract?: unknown;
2016
2024
  readonly max?: unknown;
2025
+ readonly showTrigger?: unknown;
2017
2026
  readonly theme?: unknown;
2018
2027
  readonly themeOverrides?: unknown;
2019
2028
  readonly builtinThemeOverrides?: unknown;
@@ -2022,6 +2031,7 @@ declare const _default: import("vue").DefineComponent<{
2022
2031
  abstract: boolean;
2023
2032
  name: string;
2024
2033
  multiple: boolean;
2034
+ showTrigger: boolean;
2025
2035
  listType: listType;
2026
2036
  showCancelButton: boolean;
2027
2037
  showRemoveButton: boolean;
@@ -2792,6 +2802,7 @@ declare const _default: import("vue").DefineComponent<{
2792
2802
  name: string;
2793
2803
  multiple: boolean;
2794
2804
  disabled: boolean | undefined;
2805
+ showTrigger: boolean;
2795
2806
  listType: listType;
2796
2807
  showCancelButton: boolean;
2797
2808
  showRemoveButton: boolean;
@@ -25,19 +25,33 @@ import NUploadFileList from './UploadFileList';
25
25
  function createXhrHandlers(inst, file, XHR) {
26
26
  const { doChange, XhrMap } = inst;
27
27
  let percentage = 0;
28
+ function handleXHRError(e) {
29
+ const fileAfterChange = Object.assign({}, file, {
30
+ status: 'error',
31
+ percentage
32
+ });
33
+ XhrMap.delete(file.id);
34
+ doChange(fileAfterChange, e);
35
+ }
36
+ function handleXHRLoad(e) {
37
+ var _a;
38
+ if (XHR.status !== 200) {
39
+ handleXHRError(e);
40
+ return;
41
+ }
42
+ let fileAfterChange = Object.assign({}, file, {
43
+ status: 'finished',
44
+ percentage,
45
+ file: null
46
+ });
47
+ XhrMap.delete(file.id);
48
+ fileAfterChange =
49
+ ((_a = inst.onFinish) === null || _a === void 0 ? void 0 : _a.call(inst, { file: fileAfterChange, event: e })) || fileAfterChange;
50
+ doChange(fileAfterChange, e);
51
+ }
28
52
  return {
29
- handleXHRLoad(e) {
30
- var _a;
31
- let fileAfterChange = Object.assign({}, file, {
32
- status: 'finished',
33
- percentage,
34
- file: null
35
- });
36
- XhrMap.delete(file.id);
37
- fileAfterChange =
38
- ((_a = inst.onFinish) === null || _a === void 0 ? void 0 : _a.call(inst, { file: fileAfterChange, event: e })) || fileAfterChange;
39
- doChange(fileAfterChange, e);
40
- },
53
+ handleXHRLoad,
54
+ handleXHRError,
41
55
  handleXHRAbort(e) {
42
56
  const fileAfterChange = Object.assign({}, file, {
43
57
  status: 'removed',
@@ -47,14 +61,6 @@ function createXhrHandlers(inst, file, XHR) {
47
61
  XhrMap.delete(file.id);
48
62
  doChange(fileAfterChange, e);
49
63
  },
50
- handleXHRError(e) {
51
- const fileAfterChange = Object.assign({}, file, {
52
- status: 'error',
53
- percentage
54
- });
55
- XhrMap.delete(file.id);
56
- doChange(fileAfterChange, e);
57
- },
58
64
  handleXHRProgress(e) {
59
65
  const fileAfterChange = Object.assign({}, file, {
60
66
  status: 'uploading'
@@ -197,7 +203,10 @@ const uploadProps = Object.assign(Object.assign({}, useTheme.props), { name: {
197
203
  }, listType: {
198
204
  type: String,
199
205
  default: 'text'
200
- }, onPreview: Function, createThumbnailUrl: Function, abstract: Boolean, max: Number });
206
+ }, onPreview: Function, createThumbnailUrl: Function, abstract: Boolean, max: Number, showTrigger: {
207
+ type: Boolean,
208
+ default: true
209
+ } });
201
210
  export default defineComponent({
202
211
  name: 'Upload',
203
212
  props: uploadProps,
@@ -416,7 +425,8 @@ export default defineComponent({
416
425
  maxReachedRef,
417
426
  fileListStyleRef: toRef(props, 'fileListStyle'),
418
427
  abstractRef: toRef(props, 'abstract'),
419
- cssVarsRef
428
+ cssVarsRef,
429
+ showTriggerRef: toRef(props, 'showTrigger')
420
430
  });
421
431
  const exposedMethods = {
422
432
  submit,
@@ -443,7 +453,7 @@ export default defineComponent({
443
453
  this.dragOver && `${mergedClsPrefix}-upload--drag-over`
444
454
  ], style: this.cssVars },
445
455
  inputNode,
446
- this.listType !== 'image-card' && (h(NUploadTrigger, null, $slots)),
456
+ this.showTrigger && this.listType !== 'image-card' && (h(NUploadTrigger, null, $slots)),
447
457
  this.showFileList && h(NUploadFileList, null, $slots)));
448
458
  }
449
459
  });
@@ -12,7 +12,7 @@ export default defineComponent({
12
12
  if (!NUpload) {
13
13
  throwError('upload-file-list', '`n-upload-file-list` must be placed inside `n-upload`.');
14
14
  }
15
- const { mergedClsPrefixRef, listTypeRef, mergedFileListRef, fileListStyleRef, cssVarsRef } = NUpload;
15
+ const { mergedClsPrefixRef, listTypeRef, mergedFileListRef, fileListStyleRef, cssVarsRef, maxReachedRef, showTriggerRef } = NUpload;
16
16
  const isImageCardTypeRef = computed(() => listTypeRef.value === 'image-card');
17
17
  const renderFileList = () => mergedFileListRef.value.map((file) => (h(NUploadFile, { clsPrefix: mergedClsPrefixRef.value, key: file.id, file: file, listType: listTypeRef.value })));
18
18
  const renderUploadFileList = () => isImageCardTypeRef.value ? (h(NImageGroup, null, { default: renderFileList })) : (h(NFadeInExpandTransition, { group: true }, {
@@ -26,7 +26,9 @@ export default defineComponent({
26
26
  `${mergedClsPrefix}-upload-file-list--grid`
27
27
  ], style: [cssVarsRef.value, fileListStyleRef.value] },
28
28
  renderUploadFileList(),
29
- isImageCardTypeRef.value && h(NUploadTrigger, null, slots)));
29
+ showTriggerRef.value &&
30
+ !maxReachedRef.value &&
31
+ isImageCardTypeRef.value && (h(NUploadTrigger, null, slots))));
30
32
  };
31
33
  }
32
34
  });
@@ -45,6 +45,7 @@ export interface UploadInjection {
45
45
  showRemoveButtonRef: Ref<boolean>;
46
46
  showDownloadButtonRef: Ref<boolean>;
47
47
  showRetryButtonRef: Ref<boolean>;
48
+ showTriggerRef: Ref<boolean>;
48
49
  mergedFileListRef: Ref<FileInfo[]>;
49
50
  onRemoveRef: Ref<OnRemove | undefined>;
50
51
  onDownloadRef: Ref<OnDownload | undefined>;
@@ -1,7 +1,7 @@
1
1
  import { c, cM, cB, cE } from '../../../_utils/cssr';
2
2
  import fadeInHeightExpand from '../../../_styles/transitions/fade-in-height-expand.cssr';
3
3
  import createIconSwitchTransition from '../../../_styles/transitions/icon-switch.cssr';
4
- export default c([cB('upload', [cM('dragger-inside', [cE('trigger', `
4
+ export default c([cB('upload', 'width: 100%;', [cM('dragger-inside', [cE('trigger', `
5
5
  display: block;
6
6
  `)]), cM('drag-over', [cB('upload-dragger', `
7
7
  border: var(--dragger-border-hover);
@@ -29,7 +29,7 @@ export default c([cB('upload', [cM('dragger-inside', [cE('trigger', `
29
29
  box-sizing: border-box;
30
30
  opacity: 1;
31
31
  transition: opacity .3s var(--bezier);
32
- `, [cM('disabled', `
32
+ `, [c('+', [cB('upload-file-list', 'margin-top: 8px;')]), cM('disabled', `
33
33
  opacity: var(--item-disabled-opacity);
34
34
  cursor: not-allowed;
35
35
  `), cM('image-card', `
@@ -45,7 +45,6 @@ export default c([cB('upload', [cM('dragger-inside', [cE('trigger', `
45
45
  align-items: center;
46
46
  justify-content: center;
47
47
  `)])]), cB('upload-file-list', `
48
- margin-top: 8px;
49
48
  line-height: var(--line-height);
50
49
  opacity: 1;
51
50
  transition: opacity .3s var(--bezier);
package/es/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- declare const _default: "2.21.3";
1
+ declare const _default: "2.21.4";
2
2
  export default _default;
package/es/version.js CHANGED
@@ -1 +1 @@
1
- export default '2.21.3';
1
+ export default '2.21.4';
@@ -1397,6 +1397,7 @@ declare const _default: import("vue").DefineComponent<{
1397
1397
  datePlaceholder: string;
1398
1398
  datetimePlaceholder: string;
1399
1399
  monthPlaceholder: string;
1400
+ yearPlaceholder: string;
1400
1401
  startDatePlaceholder: string;
1401
1402
  endDatePlaceholder: string;
1402
1403
  startDatetimePlaceholder: string;
@@ -44,6 +44,7 @@ export declare const configProviderProps: {
44
44
  datePlaceholder: string;
45
45
  datetimePlaceholder: string;
46
46
  monthPlaceholder: string;
47
+ yearPlaceholder: string;
47
48
  startDatePlaceholder: string;
48
49
  endDatePlaceholder: string;
49
50
  startDatetimePlaceholder: string;
@@ -163,6 +164,7 @@ declare const _default: import("vue").DefineComponent<{
163
164
  datePlaceholder: string;
164
165
  datetimePlaceholder: string;
165
166
  monthPlaceholder: string;
167
+ yearPlaceholder: string;
166
168
  startDatePlaceholder: string;
167
169
  endDatePlaceholder: string;
168
170
  startDatetimePlaceholder: string;
@@ -306,6 +308,7 @@ declare const _default: import("vue").DefineComponent<{
306
308
  datePlaceholder: string;
307
309
  datetimePlaceholder: string;
308
310
  monthPlaceholder: string;
311
+ yearPlaceholder: string;
309
312
  startDatePlaceholder: string;
310
313
  endDatePlaceholder: string;
311
314
  startDatetimePlaceholder: string;
@@ -298,9 +298,8 @@ exports.default = (0, vue_1.defineComponent)({
298
298
  (0, vue_1.h)(MainTable_1.default, { ref: "mainTableInstRef" }, {
299
299
  default: () => this.paginatedData.length === 0 ? ((0, vue_1.h)("div", { class: [
300
300
  `${mergedClsPrefix}-data-table-empty`,
301
- {
302
- [`${mergedClsPrefix}-data-table-empty--hide`]: this.loading
303
- }
301
+ this.loading &&
302
+ `${mergedClsPrefix}-data-table-empty--hide`
304
303
  ] }, (0, vue_1.renderSlot)(this.$slots, 'empty', undefined, () => [
305
304
  (0, vue_1.h)(empty_1.NEmpty, { theme: this.mergedTheme.peers.Empty, themeOverrides: this.mergedTheme.peerOverrides.Empty })
306
305
  ]))) : null
@@ -21,6 +21,7 @@ function useTableData(props, { dataRelatedColsRef }) {
21
21
  const treeMateRef = (0, vue_1.computed)(() => {
22
22
  const { childrenKey } = props;
23
23
  return (0, treemate_1.createTreeMate)(props.data, {
24
+ ignoreEmptyChildren: true,
24
25
  getKey: props.rowKey,
25
26
  getChildren: (rowData) => rowData[childrenKey],
26
27
  getDisabled: (rowData) => {
@@ -3821,7 +3821,7 @@ declare const _default: import("vue").DefineComponent<{
3821
3821
  localizedEndPlaceholder: import("vue").ComputedRef<string>;
3822
3822
  mergedSize: import("vue").ComputedRef<"small" | "medium" | "large">;
3823
3823
  mergedDisabled: import("vue").ComputedRef<boolean>;
3824
- localizedPlacehoder: import("vue").ComputedRef<string | undefined>;
3824
+ localizedPlacehoder: import("vue").ComputedRef<string>;
3825
3825
  isValueInvalid: import("vue").ComputedRef<boolean>;
3826
3826
  isStartValueInvalid: import("vue").ComputedRef<boolean>;
3827
3827
  isEndValueInvalid: import("vue").ComputedRef<boolean>;
@@ -94,20 +94,24 @@ exports.default = (0, vue_1.defineComponent)({
94
94
  return ['daterange', 'datetimerange'].includes(props.type);
95
95
  });
96
96
  const localizedPlacehoderRef = (0, vue_1.computed)(() => {
97
- if (props.placeholder === undefined) {
98
- if (props.type === 'date') {
99
- return localeRef.value.datePlaceholder;
100
- }
101
- else if (props.type === 'datetime') {
102
- return localeRef.value.datetimePlaceholder;
103
- }
104
- else if (props.type === 'month') {
105
- return localeRef.value.monthPlaceholder;
97
+ const { placeholder } = props;
98
+ if (placeholder === undefined) {
99
+ const { type } = props;
100
+ switch (type) {
101
+ case 'date':
102
+ return localeRef.value.datePlaceholder;
103
+ case 'datetime':
104
+ return localeRef.value.datetimePlaceholder;
105
+ case 'month':
106
+ return localeRef.value.monthPlaceholder;
107
+ case 'year':
108
+ return localeRef.value.yearPlaceholder;
109
+ default:
110
+ return '';
106
111
  }
107
- return props.placeholder;
108
112
  }
109
113
  else {
110
- return props.placeholder;
114
+ return placeholder;
111
115
  }
112
116
  });
113
117
  const localizedStartPlaceholderRef = (0, vue_1.computed)(() => {
@@ -1078,6 +1078,7 @@ declare const _default: import("vue").DefineComponent<{
1078
1078
  datePlaceholder: string;
1079
1079
  datetimePlaceholder: string;
1080
1080
  monthPlaceholder: string;
1081
+ yearPlaceholder: string;
1081
1082
  startDatePlaceholder: string;
1082
1083
  endDatePlaceholder: string;
1083
1084
  startDatetimePlaceholder: string;
@@ -1076,6 +1076,7 @@ declare const _default: import("vue").DefineComponent<{
1076
1076
  datePlaceholder: string;
1077
1077
  datetimePlaceholder: string;
1078
1078
  monthPlaceholder: string;
1079
+ yearPlaceholder: string;
1079
1080
  startDatePlaceholder: string;
1080
1081
  endDatePlaceholder: string;
1081
1082
  startDatetimePlaceholder: string;
@@ -1084,6 +1084,7 @@ declare const _default: import("vue").DefineComponent<{
1084
1084
  datePlaceholder: string;
1085
1085
  datetimePlaceholder: string;
1086
1086
  monthPlaceholder: string;
1087
+ yearPlaceholder: string;
1087
1088
  startDatePlaceholder: string;
1088
1089
  endDatePlaceholder: string;
1089
1090
  startDatetimePlaceholder: string;
@@ -1076,6 +1076,7 @@ declare const _default: import("vue").DefineComponent<{
1076
1076
  datePlaceholder: string;
1077
1077
  datetimePlaceholder: string;
1078
1078
  monthPlaceholder: string;
1079
+ yearPlaceholder: string;
1079
1080
  startDatePlaceholder: string;
1080
1081
  endDatePlaceholder: string;
1081
1082
  startDatetimePlaceholder: string;
@@ -1091,6 +1091,7 @@ declare const _default: import("vue").DefineComponent<{
1091
1091
  datePlaceholder: string;
1092
1092
  datetimePlaceholder: string;
1093
1093
  monthPlaceholder: string;
1094
+ yearPlaceholder: string;
1094
1095
  startDatePlaceholder: string;
1095
1096
  endDatePlaceholder: string;
1096
1097
  startDatetimePlaceholder: string;
@@ -1082,6 +1082,7 @@ declare function useCalendar(props: ExtractPropTypes<typeof useCalendarProps>, t
1082
1082
  datePlaceholder: string;
1083
1083
  datetimePlaceholder: string;
1084
1084
  monthPlaceholder: string;
1085
+ yearPlaceholder: string;
1085
1086
  startDatePlaceholder: string;
1086
1087
  endDatePlaceholder: string;
1087
1088
  startDatetimePlaceholder: string;
@@ -1080,6 +1080,7 @@ declare function useDualCalendar(props: ExtractPropTypes<typeof useDualCalendarP
1080
1080
  datePlaceholder: string;
1081
1081
  datetimePlaceholder: string;
1082
1082
  monthPlaceholder: string;
1083
+ yearPlaceholder: string;
1083
1084
  startDatePlaceholder: string;
1084
1085
  endDatePlaceholder: string;
1085
1086
  startDatetimePlaceholder: string;
@@ -1047,6 +1047,7 @@ declare function usePanelCommon(props: UsePanelCommonProps): {
1047
1047
  datePlaceholder: string;
1048
1048
  datetimePlaceholder: string;
1049
1049
  monthPlaceholder: string;
1050
+ yearPlaceholder: string;
1050
1051
  startDatePlaceholder: string;
1051
1052
  endDatePlaceholder: string;
1052
1053
  startDatetimePlaceholder: string;
@@ -1,2 +1,3 @@
1
1
  export { default as NElement } from './src/Element';
2
+ export { default as NEl } from './src/Element';
2
3
  export type { ElementProps } from './src/Element';
@@ -3,6 +3,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.NElement = void 0;
6
+ exports.NEl = exports.NElement = void 0;
7
7
  var Element_1 = require("./src/Element");
8
8
  Object.defineProperty(exports, "NElement", { enumerable: true, get: function () { return __importDefault(Element_1).default; } });
9
+ var Element_2 = require("./src/Element");
10
+ Object.defineProperty(exports, "NEl", { enumerable: true, get: function () { return __importDefault(Element_2).default; } });
@@ -8,6 +8,7 @@ export declare type FormItemRuleValidatorParams = Parameters<NonNullable<RuleIte
8
8
  export declare type FormItemRuleValidator = (...args: FormItemRuleValidatorParams) => boolean | Error | Error[] | Promise<void> | undefined;
9
9
  export declare type FormItemRuleAsyncValidator = (...args: FormItemRuleValidatorParams) => Promise<void> | undefined;
10
10
  export declare type FormItemRule = Omit<RuleItem, 'validator' | 'asyncValidator'> & {
11
+ key?: string;
11
12
  trigger?: ValidationTrigger | string | Array<ValidationTrigger | string>;
12
13
  validator?: FormItemRuleValidator;
13
14
  asyncValidator?: FormItemRuleAsyncValidator;
@@ -15,10 +16,10 @@ export declare type FormItemRule = Omit<RuleItem, 'validator' | 'asyncValidator'
15
16
  export interface FormItemValidateOptions {
16
17
  trigger?: ValidationTrigger | string;
17
18
  callback?: ValidateCallback;
18
- shouldRuleBeApplied?: ApplyRule;
19
+ shouldRuleBeApplied?: ShouldRuleBeApplied;
19
20
  options?: ValidateOption;
20
21
  }
21
- export declare type FormItemInternalValidate = (trigger: ValidationTrigger | string | null | undefined, shouldRuleBeApplied?: ApplyRule, options?: ValidateOption) => Promise<{
22
+ export declare type FormItemInternalValidate = (trigger: ValidationTrigger | string | null | undefined, shouldRuleBeApplied?: ShouldRuleBeApplied, options?: ValidateOption) => Promise<{
22
23
  valid: boolean;
23
24
  errors?: ValidateError[];
24
25
  }>;
@@ -38,10 +39,10 @@ export declare type LabelAlign = 'left' | 'center' | 'right';
38
39
  export declare type LabelPlacement = 'left' | 'top';
39
40
  export declare type Size = 'small' | 'medium' | 'large';
40
41
  export declare type ValidationTrigger = 'input' | 'change' | 'blur' | 'focus';
41
- export declare type ApplyRule = (rule: FormItemRule) => boolean;
42
+ export declare type ShouldRuleBeApplied = (rule: FormItemRule) => boolean;
42
43
  export declare type ValidateCallback = (errors?: ValidateError[]) => void;
43
44
  export declare type FormValidateCallback = (errors?: ValidateError[][]) => void;
44
- export declare type FormValidate = ((callback?: FormValidateCallback) => void) & (() => Promise<void>);
45
+ export declare type FormValidate = (callback?: FormValidateCallback, shouldRuleBeApplied?: ShouldRuleBeApplied) => Promise<void>;
45
46
  export declare type FormValidationError = ValidateError[];
46
47
  export interface FormInst {
47
48
  validate: FormValidate;
@@ -32,6 +32,8 @@ const deDE = {
32
32
  datePlaceholder: 'Datum auswählen',
33
33
  datetimePlaceholder: 'Datum und Uhrzeit auswählen',
34
34
  monthPlaceholder: 'Monat auswählen',
35
+ // FIXME: translation needed
36
+ yearPlaceholder: 'Select Year',
35
37
  startDatePlaceholder: 'Anfangsdatum',
36
38
  endDatePlaceholder: 'Enddatum',
37
39
  startDatetimePlaceholder: 'Anfangsdatum und Uhrzeit',
@@ -30,6 +30,7 @@ declare const enUS: {
30
30
  datePlaceholder: string;
31
31
  datetimePlaceholder: string;
32
32
  monthPlaceholder: string;
33
+ yearPlaceholder: string;
33
34
  startDatePlaceholder: string;
34
35
  endDatePlaceholder: string;
35
36
  startDatetimePlaceholder: string;
@@ -32,6 +32,7 @@ const enUS = {
32
32
  datePlaceholder: 'Select Date',
33
33
  datetimePlaceholder: 'Select Date and Time',
34
34
  monthPlaceholder: 'Select Month',
35
+ yearPlaceholder: 'Select Year',
35
36
  startDatePlaceholder: 'Start Date',
36
37
  endDatePlaceholder: 'End Date',
37
38
  startDatetimePlaceholder: 'Start Date and Time',
@@ -30,6 +30,7 @@ declare const idID: {
30
30
  datePlaceholder: string;
31
31
  datetimePlaceholder: string;
32
32
  monthPlaceholder: string;
33
+ yearPlaceholder: string;
33
34
  startDatePlaceholder: string;
34
35
  endDatePlaceholder: string;
35
36
  startDatetimePlaceholder: string;
@@ -32,6 +32,8 @@ const idID = {
32
32
  datePlaceholder: 'Pilih Tanggal',
33
33
  datetimePlaceholder: 'Pilih Tanggal dan Waktu',
34
34
  monthPlaceholder: 'Pilih Bulan',
35
+ // FIXME: translation needed
36
+ yearPlaceholder: 'Select Year',
35
37
  startDatePlaceholder: 'Tanggal Mulai',
36
38
  endDatePlaceholder: 'Tanggal Selesai',
37
39
  startDatetimePlaceholder: 'Tanggal dan Waktu Mulai',
@@ -32,6 +32,8 @@ const jaJP = {
32
32
  datePlaceholder: '日付を選択',
33
33
  datetimePlaceholder: '選択',
34
34
  monthPlaceholder: '月を選択',
35
+ // FIXME: translation needed
36
+ yearPlaceholder: 'Select Year',
35
37
  startDatePlaceholder: '開始日',
36
38
  endDatePlaceholder: '終了日',
37
39
  startDatetimePlaceholder: '開始時間',
@@ -32,6 +32,8 @@ const nbNO = {
32
32
  datePlaceholder: 'Velg dato',
33
33
  datetimePlaceholder: 'Velg dato og tid',
34
34
  monthPlaceholder: 'Velg måned',
35
+ // FIXME: translation needed
36
+ yearPlaceholder: 'Select Year',
35
37
  startDatePlaceholder: 'Startdato',
36
38
  endDatePlaceholder: 'Sluttdato',
37
39
  startDatetimePlaceholder: 'Startdato og -tid',
@@ -32,6 +32,8 @@ const ruRu = {
32
32
  datePlaceholder: 'Выбрать дату',
33
33
  datetimePlaceholder: 'Выбрать дату и время',
34
34
  monthPlaceholder: 'Выберите месяц',
35
+ // FIXME: translation needed
36
+ yearPlaceholder: 'Select Year',
35
37
  startDatePlaceholder: 'Дата начала',
36
38
  endDatePlaceholder: 'Дата окончания',
37
39
  startDatetimePlaceholder: 'Дата и время начала',
@@ -32,6 +32,8 @@ const ukUA = {
32
32
  datePlaceholder: 'Обрати дату',
33
33
  datetimePlaceholder: 'Обрати дату і час',
34
34
  monthPlaceholder: 'Виберіть місяць',
35
+ // FIXME: translation needed
36
+ yearPlaceholder: 'Select Year',
35
37
  startDatePlaceholder: 'Дата початку',
36
38
  endDatePlaceholder: 'Дата завершення',
37
39
  startDatetimePlaceholder: 'Дата і час початку',
@@ -32,6 +32,7 @@ const zhCN = {
32
32
  datePlaceholder: '选择日期',
33
33
  datetimePlaceholder: '选择日期时间',
34
34
  monthPlaceholder: '选择月份',
35
+ yearPlaceholder: '选择年份',
35
36
  startDatePlaceholder: '开始日期',
36
37
  endDatePlaceholder: '结束日期',
37
38
  startDatetimePlaceholder: '开始日期时间',
@@ -68,6 +68,10 @@ declare const uploadProps: {
68
68
  readonly createThumbnailUrl: PropType<CreateThumbnailUrl>;
69
69
  readonly abstract: BooleanConstructor;
70
70
  readonly max: NumberConstructor;
71
+ readonly showTrigger: {
72
+ readonly type: BooleanConstructor;
73
+ readonly default: true;
74
+ };
71
75
  readonly theme: PropType<import("../../_mixins").Theme<"Upload", {
72
76
  fontSize: string;
73
77
  lineHeight: string;
@@ -872,6 +876,10 @@ declare const _default: import("vue").DefineComponent<{
872
876
  readonly createThumbnailUrl: PropType<CreateThumbnailUrl>;
873
877
  readonly abstract: BooleanConstructor;
874
878
  readonly max: NumberConstructor;
879
+ readonly showTrigger: {
880
+ readonly type: BooleanConstructor;
881
+ readonly default: true;
882
+ };
875
883
  readonly theme: PropType<import("../../_mixins").Theme<"Upload", {
876
884
  fontSize: string;
877
885
  lineHeight: string;
@@ -2014,6 +2022,7 @@ declare const _default: import("vue").DefineComponent<{
2014
2022
  readonly createThumbnailUrl?: unknown;
2015
2023
  readonly abstract?: unknown;
2016
2024
  readonly max?: unknown;
2025
+ readonly showTrigger?: unknown;
2017
2026
  readonly theme?: unknown;
2018
2027
  readonly themeOverrides?: unknown;
2019
2028
  readonly builtinThemeOverrides?: unknown;
@@ -2022,6 +2031,7 @@ declare const _default: import("vue").DefineComponent<{
2022
2031
  abstract: boolean;
2023
2032
  name: string;
2024
2033
  multiple: boolean;
2034
+ showTrigger: boolean;
2025
2035
  listType: listType;
2026
2036
  showCancelButton: boolean;
2027
2037
  showRemoveButton: boolean;
@@ -2792,6 +2802,7 @@ declare const _default: import("vue").DefineComponent<{
2792
2802
  name: string;
2793
2803
  multiple: boolean;
2794
2804
  disabled: boolean | undefined;
2805
+ showTrigger: boolean;
2795
2806
  listType: listType;
2796
2807
  showCancelButton: boolean;
2797
2808
  showRemoveButton: boolean;
@@ -30,19 +30,33 @@ const UploadFileList_1 = __importDefault(require("./UploadFileList"));
30
30
  function createXhrHandlers(inst, file, XHR) {
31
31
  const { doChange, XhrMap } = inst;
32
32
  let percentage = 0;
33
+ function handleXHRError(e) {
34
+ const fileAfterChange = Object.assign({}, file, {
35
+ status: 'error',
36
+ percentage
37
+ });
38
+ XhrMap.delete(file.id);
39
+ doChange(fileAfterChange, e);
40
+ }
41
+ function handleXHRLoad(e) {
42
+ var _a;
43
+ if (XHR.status !== 200) {
44
+ handleXHRError(e);
45
+ return;
46
+ }
47
+ let fileAfterChange = Object.assign({}, file, {
48
+ status: 'finished',
49
+ percentage,
50
+ file: null
51
+ });
52
+ XhrMap.delete(file.id);
53
+ fileAfterChange =
54
+ ((_a = inst.onFinish) === null || _a === void 0 ? void 0 : _a.call(inst, { file: fileAfterChange, event: e })) || fileAfterChange;
55
+ doChange(fileAfterChange, e);
56
+ }
33
57
  return {
34
- handleXHRLoad(e) {
35
- var _a;
36
- let fileAfterChange = Object.assign({}, file, {
37
- status: 'finished',
38
- percentage,
39
- file: null
40
- });
41
- XhrMap.delete(file.id);
42
- fileAfterChange =
43
- ((_a = inst.onFinish) === null || _a === void 0 ? void 0 : _a.call(inst, { file: fileAfterChange, event: e })) || fileAfterChange;
44
- doChange(fileAfterChange, e);
45
- },
58
+ handleXHRLoad,
59
+ handleXHRError,
46
60
  handleXHRAbort(e) {
47
61
  const fileAfterChange = Object.assign({}, file, {
48
62
  status: 'removed',
@@ -52,14 +66,6 @@ function createXhrHandlers(inst, file, XHR) {
52
66
  XhrMap.delete(file.id);
53
67
  doChange(fileAfterChange, e);
54
68
  },
55
- handleXHRError(e) {
56
- const fileAfterChange = Object.assign({}, file, {
57
- status: 'error',
58
- percentage
59
- });
60
- XhrMap.delete(file.id);
61
- doChange(fileAfterChange, e);
62
- },
63
69
  handleXHRProgress(e) {
64
70
  const fileAfterChange = Object.assign({}, file, {
65
71
  status: 'uploading'
@@ -202,7 +208,10 @@ const uploadProps = Object.assign(Object.assign({}, _mixins_1.useTheme.props), {
202
208
  }, listType: {
203
209
  type: String,
204
210
  default: 'text'
205
- }, onPreview: Function, createThumbnailUrl: Function, abstract: Boolean, max: Number });
211
+ }, onPreview: Function, createThumbnailUrl: Function, abstract: Boolean, max: Number, showTrigger: {
212
+ type: Boolean,
213
+ default: true
214
+ } });
206
215
  exports.default = (0, vue_1.defineComponent)({
207
216
  name: 'Upload',
208
217
  props: uploadProps,
@@ -421,7 +430,8 @@ exports.default = (0, vue_1.defineComponent)({
421
430
  maxReachedRef,
422
431
  fileListStyleRef: (0, vue_1.toRef)(props, 'fileListStyle'),
423
432
  abstractRef: (0, vue_1.toRef)(props, 'abstract'),
424
- cssVarsRef
433
+ cssVarsRef,
434
+ showTriggerRef: (0, vue_1.toRef)(props, 'showTrigger')
425
435
  });
426
436
  const exposedMethods = {
427
437
  submit,
@@ -448,7 +458,7 @@ exports.default = (0, vue_1.defineComponent)({
448
458
  this.dragOver && `${mergedClsPrefix}-upload--drag-over`
449
459
  ], style: this.cssVars },
450
460
  inputNode,
451
- this.listType !== 'image-card' && ((0, vue_1.h)(UploadTrigger_1.default, null, $slots)),
461
+ this.showTrigger && this.listType !== 'image-card' && ((0, vue_1.h)(UploadTrigger_1.default, null, $slots)),
452
462
  this.showFileList && (0, vue_1.h)(UploadFileList_1.default, null, $slots)));
453
463
  }
454
464
  });
@@ -17,7 +17,7 @@ exports.default = (0, vue_1.defineComponent)({
17
17
  if (!NUpload) {
18
18
  (0, _utils_1.throwError)('upload-file-list', '`n-upload-file-list` must be placed inside `n-upload`.');
19
19
  }
20
- const { mergedClsPrefixRef, listTypeRef, mergedFileListRef, fileListStyleRef, cssVarsRef } = NUpload;
20
+ const { mergedClsPrefixRef, listTypeRef, mergedFileListRef, fileListStyleRef, cssVarsRef, maxReachedRef, showTriggerRef } = NUpload;
21
21
  const isImageCardTypeRef = (0, vue_1.computed)(() => listTypeRef.value === 'image-card');
22
22
  const renderFileList = () => mergedFileListRef.value.map((file) => ((0, vue_1.h)(UploadFile_1.default, { clsPrefix: mergedClsPrefixRef.value, key: file.id, file: file, listType: listTypeRef.value })));
23
23
  const renderUploadFileList = () => isImageCardTypeRef.value ? ((0, vue_1.h)(image_1.NImageGroup, null, { default: renderFileList })) : ((0, vue_1.h)(_internal_1.NFadeInExpandTransition, { group: true }, {
@@ -31,7 +31,9 @@ exports.default = (0, vue_1.defineComponent)({
31
31
  `${mergedClsPrefix}-upload-file-list--grid`
32
32
  ], style: [cssVarsRef.value, fileListStyleRef.value] },
33
33
  renderUploadFileList(),
34
- isImageCardTypeRef.value && (0, vue_1.h)(UploadTrigger_1.default, null, slots)));
34
+ showTriggerRef.value &&
35
+ !maxReachedRef.value &&
36
+ isImageCardTypeRef.value && ((0, vue_1.h)(UploadTrigger_1.default, null, slots))));
35
37
  };
36
38
  }
37
39
  });
@@ -45,6 +45,7 @@ export interface UploadInjection {
45
45
  showRemoveButtonRef: Ref<boolean>;
46
46
  showDownloadButtonRef: Ref<boolean>;
47
47
  showRetryButtonRef: Ref<boolean>;
48
+ showTriggerRef: Ref<boolean>;
48
49
  mergedFileListRef: Ref<FileInfo[]>;
49
50
  onRemoveRef: Ref<OnRemove | undefined>;
50
51
  onDownloadRef: Ref<OnDownload | undefined>;
@@ -16,7 +16,7 @@ const fade_in_height_expand_cssr_1 = __importDefault(require("../../../_styles/t
16
16
 
17
17
  const icon_switch_cssr_1 = __importDefault(require("../../../_styles/transitions/icon-switch.cssr"));
18
18
 
19
- exports.default = (0, cssr_1.c)([(0, cssr_1.cB)('upload', [(0, cssr_1.cM)('dragger-inside', [(0, cssr_1.cE)('trigger', `
19
+ exports.default = (0, cssr_1.c)([(0, cssr_1.cB)('upload', 'width: 100%;', [(0, cssr_1.cM)('dragger-inside', [(0, cssr_1.cE)('trigger', `
20
20
  display: block;
21
21
  `)]), (0, cssr_1.cM)('drag-over', [(0, cssr_1.cB)('upload-dragger', `
22
22
  border: var(--dragger-border-hover);
@@ -44,7 +44,7 @@ exports.default = (0, cssr_1.c)([(0, cssr_1.cB)('upload', [(0, cssr_1.cM)('dragg
44
44
  box-sizing: border-box;
45
45
  opacity: 1;
46
46
  transition: opacity .3s var(--bezier);
47
- `, [(0, cssr_1.cM)('disabled', `
47
+ `, [(0, cssr_1.c)('+', [(0, cssr_1.cB)('upload-file-list', 'margin-top: 8px;')]), (0, cssr_1.cM)('disabled', `
48
48
  opacity: var(--item-disabled-opacity);
49
49
  cursor: not-allowed;
50
50
  `), (0, cssr_1.cM)('image-card', `
@@ -60,7 +60,6 @@ exports.default = (0, cssr_1.c)([(0, cssr_1.cB)('upload', [(0, cssr_1.cM)('dragg
60
60
  align-items: center;
61
61
  justify-content: center;
62
62
  `)])]), (0, cssr_1.cB)('upload-file-list', `
63
- margin-top: 8px;
64
63
  line-height: var(--line-height);
65
64
  opacity: 1;
66
65
  transition: opacity .3s var(--bezier);
package/lib/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- declare const _default: "2.21.3";
1
+ declare const _default: "2.21.4";
2
2
  export default _default;
package/lib/version.js CHANGED
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.default = '2.21.3';
3
+ exports.default = '2.21.4';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "naive-ui",
3
- "version": "2.21.3",
3
+ "version": "2.21.4",
4
4
  "description": "A Vue 3 Component Library. Fairly Complete, Customizable Themes, Uses TypeScript, Not Too Slow",
5
5
  "main": "lib/index.js",
6
6
  "module": "es/index.js",
@@ -130,7 +130,7 @@
130
130
  "lodash": "^4.17.21",
131
131
  "lodash-es": "^4.17.21",
132
132
  "seemly": "^0.3.3",
133
- "treemate": "^0.3.8",
133
+ "treemate": "^0.3.9",
134
134
  "vdirs": "^0.1.4",
135
135
  "vfonts": "^0.1.0",
136
136
  "vooks": "^0.2.10",
package/web-types.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "$schema": "https://raw.githubusercontent.com/JetBrains/web-types/master/schema/web-types.json",
3
3
  "framework": "vue",
4
4
  "name": "naive-ui",
5
- "version": "2.21.3",
5
+ "version": "2.21.4",
6
6
  "contributions": {
7
7
  "html": {
8
8
  "tags": [
@@ -3842,6 +3842,22 @@
3842
3842
  ],
3843
3843
  "events": []
3844
3844
  },
3845
+ {
3846
+ "name": "n-el",
3847
+ "slots": [],
3848
+ "attributes": [
3849
+ {
3850
+ "name": "tag",
3851
+ "default": "-",
3852
+ "description": "-",
3853
+ "value": {
3854
+ "type": "string",
3855
+ "kind": "expression"
3856
+ }
3857
+ }
3858
+ ],
3859
+ "events": []
3860
+ },
3845
3861
  {
3846
3862
  "name": "n-ellipsis",
3847
3863
  "slots": [],
@@ -12574,6 +12590,15 @@
12574
12590
  "type": "number",
12575
12591
  "kind": "expression"
12576
12592
  }
12593
+ },
12594
+ {
12595
+ "name": "show-trigger",
12596
+ "default": "-",
12597
+ "description": "-",
12598
+ "value": {
12599
+ "type": "boolean",
12600
+ "kind": "expression"
12601
+ }
12577
12602
  }
12578
12603
  ],
12579
12604
  "events": [