@sdata/web-vue 2.2.1 → 2.3.1

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 (83) hide show
  1. package/es/_components/picker/input-range.vue.d.ts +2 -2
  2. package/es/_utils/date.d.ts +10 -9
  3. package/es/_utils/date.js +23 -7
  4. package/es/anchor/anchor.vue.d.ts +52 -2
  5. package/es/anchor/anchor.vue_vue_type_script_setup_true_lang.js +75 -15
  6. package/es/anchor/index.d.ts +75 -0
  7. package/es/button/button.vue.d.ts +16 -3
  8. package/es/button/button.vue_vue_type_script_setup_true_lang.js +39 -9
  9. package/es/button/index.d.ts +19 -0
  10. package/es/button/interface.d.ts +1 -0
  11. package/es/config-provider/config-provider.vue.d.ts +9 -0
  12. package/es/config-provider/config-provider.vue_vue_type_script_setup_true_lang.js +10 -1
  13. package/es/config-provider/context.d.ts +1 -0
  14. package/es/config-provider/index.d.ts +15 -0
  15. package/es/copy/copy.vue_vue_type_script_setup_true_lang.js +1 -0
  16. package/es/date-picker/hooks/use-cell-class-name.d.ts +1 -0
  17. package/es/date-picker/hooks/use-cell-class-name.js +3 -2
  18. package/es/date-picker/hooks/use-header-value.d.ts +2 -0
  19. package/es/date-picker/hooks/use-header-value.js +23 -19
  20. package/es/date-picker/hooks/use-picker-state.d.ts +2 -0
  21. package/es/date-picker/hooks/use-picker-state.js +3 -3
  22. package/es/date-picker/hooks/use-range-header-value.d.ts +2 -0
  23. package/es/date-picker/hooks/use-range-header-value.js +5 -1
  24. package/es/date-picker/hooks/use-range-picker-state.d.ts +2 -0
  25. package/es/date-picker/hooks/use-range-picker-state.js +3 -3
  26. package/es/date-picker/hooks/use-value-format.d.ts +5 -3
  27. package/es/date-picker/hooks/use-value-format.js +10 -8
  28. package/es/date-picker/index.d.ts +1361 -0
  29. package/es/date-picker/interface.d.ts +7 -0
  30. package/es/date-picker/panels/body.vue.d.ts +24 -6
  31. package/es/date-picker/panels/body.vue_vue_type_script_setup_true_lang.js +13 -12
  32. package/es/date-picker/panels/date/index.vue.d.ts +26 -8
  33. package/es/date-picker/panels/date/index.vue_vue_type_script_setup_true_lang.js +18 -9
  34. package/es/date-picker/panels/header.vue_vue_type_script_setup_true_lang.js +13 -20
  35. package/es/date-picker/panels/month/index.vue.d.ts +13 -8
  36. package/es/date-picker/panels/month/index.vue_vue_type_script_setup_true_lang.js +6 -6
  37. package/es/date-picker/panels/quarter/index.vue.d.ts +13 -8
  38. package/es/date-picker/panels/quarter/index.vue_vue_type_script_setup_true_lang.js +6 -6
  39. package/es/date-picker/panels/shortcuts.vue_vue_type_script_setup_true_lang.js +2 -6
  40. package/es/date-picker/panels/week/index.vue.d.ts +13 -1
  41. package/es/date-picker/panels/week/index.vue_vue_type_script_setup_true_lang.js +5 -2
  42. package/es/date-picker/panels/year/index.vue.d.ts +13 -8
  43. package/es/date-picker/panels/year/index.vue_vue_type_script_setup_true_lang.js +25 -15
  44. package/es/date-picker/picker-panel.vue.d.ts +56 -14
  45. package/es/date-picker/picker-panel.vue_vue_type_script_setup_true_lang.js +36 -19
  46. package/es/date-picker/picker.vue.d.ts +949 -1
  47. package/es/date-picker/picker.vue_vue_type_script_setup_true_lang.js +91 -29
  48. package/es/date-picker/range-picker-panel.vue.d.ts +77 -15
  49. package/es/date-picker/range-picker-panel.vue_vue_type_script_setup_true_lang.js +52 -28
  50. package/es/date-picker/range-picker.vue.d.ts +1345 -1
  51. package/es/date-picker/range-picker.vue_vue_type_script_setup_true_lang.js +114 -34
  52. package/es/image/preview-toolbar.vue.d.ts +2 -3
  53. package/es/image/preview-toolbar.vue_vue_type_script_setup_true_lang.js +2 -3
  54. package/es/locale/interface.d.ts +2 -0
  55. package/es/locale/lang/ar-eg.js +46 -0
  56. package/es/locale/lang/de-de.js +46 -0
  57. package/es/locale/lang/es-es.js +46 -0
  58. package/es/locale/lang/fr-fr.js +46 -0
  59. package/es/locale/lang/id-id.js +46 -0
  60. package/es/locale/lang/it-it.js +46 -0
  61. package/es/locale/lang/km-kh.js +46 -0
  62. package/es/locale/lang/ko-kr.js +46 -0
  63. package/es/locale/lang/ms-my.js +46 -0
  64. package/es/locale/lang/pt-pt.js +46 -0
  65. package/es/locale/lang/th-th.js +46 -0
  66. package/es/locale/lang/vi-vn.js +46 -0
  67. package/es/mention/mention.js +2 -0
  68. package/es/menu/sub-menu-pop.vue_vue_type_script_setup_true_lang.js +3 -4
  69. package/es/modal/index.d.ts +7 -5
  70. package/es/modal/index.js +47 -11
  71. package/es/modal/interface.d.ts +5 -0
  72. package/es/textarea/textarea.vue_vue_type_script_setup_true_lang.js +2 -2
  73. package/es/tree/base-node.vue_vue_type_script_setup_true_lang.js +6 -21
  74. package/es/tree/node-switcher.vue.d.ts +0 -11
  75. package/es/tree/node-switcher.vue_vue_type_script_lang.js +1 -5
  76. package/es/trigger/trigger.js +2 -1
  77. package/es/verification-code/verification-code.js +17 -7
  78. package/json/vetur-attributes.json +53 -0
  79. package/json/vetur-tags.json +14 -0
  80. package/json/web-types.json +113 -1
  81. package/package.json +1 -1
  82. package/es/_components/render-function.d.ts +0 -14
  83. package/es/_components/render-function.js +0 -14
@@ -146,6 +146,52 @@ var lang = {
146
146
  collapse: "Piega",
147
147
  expand: "Espandi"
148
148
  },
149
+ form: { validateMessages: {
150
+ required: "#{field} è obbligatorio",
151
+ type: {
152
+ string: "#{field} non è un testo valido",
153
+ number: "#{field} non è un numero valido",
154
+ boolean: "#{field} non è un valore booleano valido",
155
+ array: "#{field} non è un array valido",
156
+ object: "#{field} non è un oggetto valido",
157
+ url: "#{field} non è un URL valido",
158
+ email: "#{field} non è un indirizzo email valido",
159
+ ip: "#{field} non è un indirizzo IP valido"
160
+ },
161
+ number: {
162
+ min: "`#{value}` è inferiore al valore minimo `#{min}`",
163
+ max: "`#{value}` è superiore al valore massimo `#{max}`",
164
+ equal: "`#{value}` non è uguale a `#{equal}`",
165
+ range: "`#{value}` non rientra nell'intervallo `#{min} ~ #{max}`",
166
+ positive: "`#{value}` non è un numero positivo",
167
+ negative: "`#{value}` non è un numero negativo"
168
+ },
169
+ array: {
170
+ length: "Il numero di `#{field}` non è uguale a #{length}",
171
+ minLength: "Il numero di `#{field}` deve essere almeno #{minLength}",
172
+ maxLength: "Il numero di `#{field}` deve essere al massimo #{maxLength}",
173
+ includes: "#{field} non contiene #{includes}",
174
+ deepEqual: "#{field} non è uguale a #{deepEqual}",
175
+ empty: "`#{field}` non è un array vuoto"
176
+ },
177
+ string: {
178
+ minLength: "Il numero di caratteri deve essere almeno #{minLength}",
179
+ maxLength: "Il numero di caratteri deve essere al massimo #{maxLength}",
180
+ length: "Il numero di caratteri deve essere #{length}",
181
+ match: "`#{value}` non corrisponde al pattern #{pattern}",
182
+ uppercase: "`#{value}` deve essere tutto in maiuscolo",
183
+ lowercase: "`#{value}` deve essere tutto in minuscolo"
184
+ },
185
+ object: {
186
+ deepEqual: "`#{field}` non è uguale al valore previsto",
187
+ hasKeys: "`#{field}` non contiene i campi obbligatori",
188
+ empty: "`#{field}` non è un oggetto"
189
+ },
190
+ boolean: {
191
+ true: "Il valore atteso è `true`",
192
+ false: "Il valore atteso è `false`"
193
+ }
194
+ } },
149
195
  colorPicker: {
150
196
  history: "Colori storici",
151
197
  preset: "Colori preimpostati dal sistema",
@@ -146,6 +146,52 @@ var lang = {
146
146
  collapse: "បង្រួម",
147
147
  edit: "កែសម្រួល"
148
148
  },
149
+ form: { validateMessages: {
150
+ required: "ត្រូវបំពេញ #{field}",
151
+ type: {
152
+ string: "#{field} មិនមែនជាអត្ថបទត្រឹមត្រូវ",
153
+ number: "#{field} មិនមែនជាលេខត្រឹមត្រូវ",
154
+ boolean: "#{field} មិនមែនជាតម្លៃប៊ូលីនត្រឹមត្រូវ",
155
+ array: "#{field} មិនមែនជាបញ្ជីទិន្នន័យត្រឹមត្រូវ",
156
+ object: "#{field} មិនមែនជាវត្ថុទិន្នន័យត្រឹមត្រូវ",
157
+ url: "#{field} មិនមែនជា URL ត្រឹមត្រូវ",
158
+ email: "#{field} មិនមែនជា​អ៊ីមែល​ត្រឹមត្រូវ",
159
+ ip: "#{field} មិនមែនជា​អាសយដ្ឋាន IP ត្រឹមត្រូវ"
160
+ },
161
+ number: {
162
+ min: "`#{value}` តូចជាងតម្លៃអប្បបរមា `#{min}`",
163
+ max: "`#{value}` ធំជាងតម្លៃអតិបរមា `#{max}`",
164
+ equal: "`#{value}` មិនស្មើ `#{equal}`",
165
+ range: "`#{value}` មិនស្ថិតក្នុងចន្លោះ `#{min} ~ #{max}`",
166
+ positive: "`#{value}` មិនមែនជាលេខវិជ្ជមាន",
167
+ negative: "`#{value}` មិនមែនជាលេខអវិជ្ជមាន"
168
+ },
169
+ array: {
170
+ length: "ចំនួន `#{field}` មិនស្មើ #{length}",
171
+ minLength: "ចំនួន `#{field}` តិចបំផុតត្រូវជា #{minLength}",
172
+ maxLength: "ចំនួន `#{field}` អតិបរមាត្រូវជា #{maxLength}",
173
+ includes: "#{field} មិនមាន #{includes}",
174
+ deepEqual: "#{field} មិនស្មើ #{deepEqual}",
175
+ empty: "`#{field}` មិនមែនជា array ទទេ"
176
+ },
177
+ string: {
178
+ minLength: "ចំនួនតួអក្សរតិចបំផុតត្រូវជា #{minLength}",
179
+ maxLength: "ចំនួនតួអក្សរអតិបរមាត្រូវជា #{maxLength}",
180
+ length: "ចំនួនតួអក្សរត្រូវជា #{length}",
181
+ match: "`#{value}` មិនត្រូវនឹងលំនាំ #{pattern}",
182
+ uppercase: "`#{value}` ត្រូវជាអក្សរធំទាំងអស់",
183
+ lowercase: "`#{value}` ត្រូវជាអក្សរតូចទាំងអស់"
184
+ },
185
+ object: {
186
+ deepEqual: "`#{field}` មិនស្មើតម្លៃដែលរំពឹងទុក",
187
+ hasKeys: "`#{field}` មិនមានវាលដែលត្រូវការ",
188
+ empty: "`#{field}` មិនមែនជាវត្ថុទិន្នន័យ"
189
+ },
190
+ boolean: {
191
+ true: "តម្លៃដែលរំពឹងទុកគឺ `true`",
192
+ false: "តម្លៃដែលរំពឹងទុកគឺ `false`"
193
+ }
194
+ } },
149
195
  colorPicker: {
150
196
  history: "ប្រវត្តិពណ៌",
151
197
  preset: "ពណ៌កំណត់ជាមុន",
@@ -146,6 +146,52 @@ var lang = {
146
146
  collapse: "겹",
147
147
  expand: "전개 하 다"
148
148
  },
149
+ form: { validateMessages: {
150
+ required: "#{field} 필드는 필수 입력 항목입니다",
151
+ type: {
152
+ string: "#{field}의 값은 유효한 문자열이 아닙니다",
153
+ number: "#{field}의 값은 유효한 숫자가 아닙니다",
154
+ boolean: "#{field}의 값은 유효한 불리언 값이 아닙니다",
155
+ array: "#{field}의 값은 유효한 배열이 아닙니다",
156
+ object: "#{field}의 값은 유효한 객체가 아닙니다",
157
+ url: "#{field}의 값은 유효한 URL이 아닙니다",
158
+ email: "#{field}의 값은 유효한 이메일 주소가 아닙니다",
159
+ ip: "#{field}의 값은 유효한 IP 주소가 아닙니다"
160
+ },
161
+ number: {
162
+ min: "`#{value}`는 최소값 `#{min}`보다 작습니다",
163
+ max: "`#{value}`는 최대값 `#{max}`보다 큽니다",
164
+ equal: "`#{value}`는 `#{equal}`과 같지 않습니다",
165
+ range: "`#{value}`는 `#{min} ~ #{max}` 범위에 있지 않습니다",
166
+ positive: "`#{value}`는 양수가 아닙니다",
167
+ negative: "`#{value}`는 음수가 아닙니다"
168
+ },
169
+ array: {
170
+ length: "`#{field}`의 개수가 #{length}와 같지 않습니다",
171
+ minLength: "`#{field}`의 개수는 최소 #{minLength}개여야 합니다",
172
+ maxLength: "`#{field}`의 개수는 최대 #{maxLength}개여야 합니다",
173
+ includes: "#{field}에 #{includes}가 포함되어 있지 않습니다",
174
+ deepEqual: "#{field}은(는) #{deepEqual}과 같지 않습니다",
175
+ empty: "`#{field}`는 빈 배열이 아닙니다"
176
+ },
177
+ string: {
178
+ minLength: "문자 수는 최소 #{minLength}자여야 합니다",
179
+ maxLength: "문자 수는 최대 #{maxLength}자여야 합니다",
180
+ length: "문자 수는 #{length}자여야 합니다",
181
+ match: "`#{value}`는 패턴 #{pattern}과 일치하지 않습니다",
182
+ uppercase: "`#{value}`는 모두 대문자여야 합니다",
183
+ lowercase: "`#{value}`는 모두 소문자여야 합니다"
184
+ },
185
+ object: {
186
+ deepEqual: "`#{field}`는 기대값과 같지 않습니다",
187
+ hasKeys: "`#{field}`에 필수 필드가 포함되어 있지 않습니다",
188
+ empty: "`#{field}`는 객체가 아닙니다"
189
+ },
190
+ boolean: {
191
+ true: "기대값은 `true`입니다",
192
+ false: "기대값은 `false`입니다"
193
+ }
194
+ } },
149
195
  colorPicker: {
150
196
  history: "최근 색상 사용",
151
197
  preset: "시스템 기본 색상",
@@ -146,6 +146,52 @@ var lang = {
146
146
  expand: "lipat",
147
147
  collapse: "mengembang"
148
148
  },
149
+ form: { validateMessages: {
150
+ required: "#{field} wajib diisi",
151
+ type: {
152
+ string: "#{field} bukan teks yang sah",
153
+ number: "#{field} bukan nombor yang sah",
154
+ boolean: "#{field} bukan nilai boolean yang sah",
155
+ array: "#{field} bukan tatasusunan yang sah",
156
+ object: "#{field} bukan objek yang sah",
157
+ url: "#{field} bukan URL yang sah",
158
+ email: "#{field} bukan alamat e-mel yang sah",
159
+ ip: "#{field} bukan alamat IP yang sah"
160
+ },
161
+ number: {
162
+ min: "`#{value}` lebih kecil daripada nilai minimum `#{min}`",
163
+ max: "`#{value}` lebih besar daripada nilai maksimum `#{max}`",
164
+ equal: "`#{value}` tidak sama dengan `#{equal}`",
165
+ range: "`#{value}` tidak berada dalam julat `#{min} ~ #{max}`",
166
+ positive: "`#{value}` bukan nombor positif",
167
+ negative: "`#{value}` bukan nombor negatif"
168
+ },
169
+ array: {
170
+ length: "Bilangan `#{field}` tidak sama dengan #{length}",
171
+ minLength: "Bilangan `#{field}` mestilah sekurang-kurangnya #{minLength}",
172
+ maxLength: "Bilangan `#{field}` mestilah tidak melebihi #{maxLength}",
173
+ includes: "#{field} tidak mengandungi #{includes}",
174
+ deepEqual: "#{field} tidak sama dengan #{deepEqual}",
175
+ empty: "`#{field}` bukan tatasusunan kosong"
176
+ },
177
+ string: {
178
+ minLength: "Bilangan aksara mestilah sekurang-kurangnya #{minLength}",
179
+ maxLength: "Bilangan aksara mestilah tidak melebihi #{maxLength}",
180
+ length: "Bilangan aksara mestilah #{length}",
181
+ match: "`#{value}` tidak sepadan dengan corak #{pattern}",
182
+ uppercase: "`#{value}` mesti dalam huruf besar sepenuhnya",
183
+ lowercase: "`#{value}` mesti dalam huruf kecil sepenuhnya"
184
+ },
185
+ object: {
186
+ deepEqual: "`#{field}` tidak sama dengan nilai yang dijangka",
187
+ hasKeys: "`#{field}` tidak mengandungi medan yang diperlukan",
188
+ empty: "`#{field}` bukan objek"
189
+ },
190
+ boolean: {
191
+ true: "Nilai yang dijangka ialah `true`",
192
+ false: "Nilai yang dijangka ialah `false`"
193
+ }
194
+ } },
149
195
  colorPicker: {
150
196
  history: "Warna yang digunakan baru-baru ini",
151
197
  preset: "Warna lalai sistem",
@@ -146,6 +146,52 @@ var lang = {
146
146
  collapse: "dobrar",
147
147
  edit: "Editar"
148
148
  },
149
+ form: { validateMessages: {
150
+ required: "#{field} é obrigatório",
151
+ type: {
152
+ string: "#{field} não é um texto válido",
153
+ number: "#{field} não é um número válido",
154
+ boolean: "#{field} não é um valor booleano válido",
155
+ array: "#{field} não é um array válido",
156
+ object: "#{field} não é um objeto válido",
157
+ url: "#{field} não é um URL válido",
158
+ email: "#{field} não é um endereço de e-mail válido",
159
+ ip: "#{field} não é um endereço IP válido"
160
+ },
161
+ number: {
162
+ min: "`#{value}` é inferior ao valor mínimo `#{min}`",
163
+ max: "`#{value}` é superior ao valor máximo `#{max}`",
164
+ equal: "`#{value}` não é igual a `#{equal}`",
165
+ range: "`#{value}` não está no intervalo `#{min} ~ #{max}`",
166
+ positive: "`#{value}` não é um número positivo",
167
+ negative: "`#{value}` não é um número negativo"
168
+ },
169
+ array: {
170
+ length: "A quantidade de `#{field}` não é igual a #{length}",
171
+ minLength: "A quantidade de `#{field}` deve ser no mínimo #{minLength}",
172
+ maxLength: "A quantidade de `#{field}` deve ser no máximo #{maxLength}",
173
+ includes: "#{field} não inclui #{includes}",
174
+ deepEqual: "#{field} não é igual a #{deepEqual}",
175
+ empty: "`#{field}` não é um array vazio"
176
+ },
177
+ string: {
178
+ minLength: "A quantidade de caracteres deve ser no mínimo #{minLength}",
179
+ maxLength: "A quantidade de caracteres deve ser no máximo #{maxLength}",
180
+ length: "A quantidade de caracteres deve ser #{length}",
181
+ match: "`#{value}` não corresponde ao padrão #{pattern}",
182
+ uppercase: "`#{value}` deve estar totalmente em maiúsculas",
183
+ lowercase: "`#{value}` deve estar totalmente em minúsculas"
184
+ },
185
+ object: {
186
+ deepEqual: "`#{field}` não é igual ao valor esperado",
187
+ hasKeys: "`#{field}` não inclui os campos obrigatórios",
188
+ empty: "`#{field}` não é um objeto"
189
+ },
190
+ boolean: {
191
+ true: "O valor esperado é `true`",
192
+ false: "O valor esperado é `false`"
193
+ }
194
+ } },
149
195
  colorPicker: {
150
196
  history: "Cores usadas recentemente",
151
197
  preset: "Cor padrão do sistema",
@@ -146,6 +146,52 @@ var lang = {
146
146
  collapse: "พับ",
147
147
  expand: "แฉ"
148
148
  },
149
+ form: { validateMessages: {
150
+ required: "ต้องระบุ #{field}",
151
+ type: {
152
+ string: "#{field} ไม่ใช่ข้อความที่ถูกต้อง",
153
+ number: "#{field} ไม่ใช่ตัวเลขที่ถูกต้อง",
154
+ boolean: "#{field} ไม่ใช่ค่าบูลีนที่ถูกต้อง",
155
+ array: "#{field} ไม่ใช่อาร์เรย์ที่ถูกต้อง",
156
+ object: "#{field} ไม่ใช่ออบเจ็กต์ที่ถูกต้อง",
157
+ url: "#{field} ไม่ใช่ URL ที่ถูกต้อง",
158
+ email: "#{field} ไม่ใช่อีเมลที่ถูกต้อง",
159
+ ip: "#{field} ไม่ใช่ที่อยู่ IP ที่ถูกต้อง"
160
+ },
161
+ number: {
162
+ min: "`#{value}` น้อยกว่าค่าต่ำสุด `#{min}`",
163
+ max: "`#{value}` มากกว่าค่าสูงสุด `#{max}`",
164
+ equal: "`#{value}` ไม่เท่ากับ `#{equal}`",
165
+ range: "`#{value}` ไม่อยู่ในช่วง `#{min} ~ #{max}`",
166
+ positive: "`#{value}` ไม่ใช่จำนวนบวก",
167
+ negative: "`#{value}` ไม่ใช่จำนวนลบ"
168
+ },
169
+ array: {
170
+ length: "จำนวนของ `#{field}` ไม่เท่ากับ #{length}",
171
+ minLength: "จำนวนของ `#{field}` ต้องไม่น้อยกว่า #{minLength}",
172
+ maxLength: "จำนวนของ `#{field}` ต้องไม่เกิน #{maxLength}",
173
+ includes: "#{field} ไม่มี #{includes}",
174
+ deepEqual: "#{field} ไม่เท่ากับ #{deepEqual}",
175
+ empty: "`#{field}` ไม่ใช่อาร์เรย์ว่าง"
176
+ },
177
+ string: {
178
+ minLength: "จำนวนอักขระต้องไม่น้อยกว่า #{minLength}",
179
+ maxLength: "จำนวนอักขระต้องไม่เกิน #{maxLength}",
180
+ length: "จำนวนอักขระต้องเท่ากับ #{length}",
181
+ match: "`#{value}` ไม่ตรงกับรูปแบบ #{pattern}",
182
+ uppercase: "`#{value}` ต้องเป็นตัวพิมพ์ใหญ่ทั้งหมด",
183
+ lowercase: "`#{value}` ต้องเป็นตัวพิมพ์เล็กทั้งหมด"
184
+ },
185
+ object: {
186
+ deepEqual: "`#{field}` ไม่เท่ากับค่าที่คาดไว้",
187
+ hasKeys: "`#{field}` ไม่มีฟิลด์ที่จำเป็น",
188
+ empty: "`#{field}` ไม่ใช่ออบเจ็กต์"
189
+ },
190
+ boolean: {
191
+ true: "ค่าที่คาดหวังคือ `true`",
192
+ false: "ค่าที่คาดหวังคือ `false`"
193
+ }
194
+ } },
149
195
  colorPicker: {
150
196
  history: "สีที่ใช้ล่าสุด",
151
197
  preset: "สี ที่ตั้งไว้สำหรับระบบ",
@@ -146,6 +146,52 @@ var lang = {
146
146
  collapse: "Thu gọn",
147
147
  edit: "Chỉnh sửa"
148
148
  },
149
+ form: { validateMessages: {
150
+ required: "#{field} là trường bắt buộc",
151
+ type: {
152
+ string: "#{field} không phải văn bản hợp lệ",
153
+ number: "#{field} không phải số hợp lệ",
154
+ boolean: "#{field} không phải giá trị boolean hợp lệ",
155
+ array: "#{field} không phải mảng hợp lệ",
156
+ object: "#{field} không phải đối tượng hợp lệ",
157
+ url: "#{field} không phải URL hợp lệ",
158
+ email: "#{field} không phải địa chỉ email hợp lệ",
159
+ ip: "#{field} không phải địa chỉ IP hợp lệ"
160
+ },
161
+ number: {
162
+ min: "`#{value}` nhỏ hơn giá trị tối thiểu `#{min}`",
163
+ max: "`#{value}` lớn hơn giá trị tối đa `#{max}`",
164
+ equal: "`#{value}` không bằng `#{equal}`",
165
+ range: "`#{value}` không nằm trong phạm vi `#{min} ~ #{max}`",
166
+ positive: "`#{value}` không phải số dương",
167
+ negative: "`#{value}` không phải số âm"
168
+ },
169
+ array: {
170
+ length: "Số lượng `#{field}` không bằng #{length}",
171
+ minLength: "Số lượng `#{field}` tối thiểu là #{minLength}",
172
+ maxLength: "Số lượng `#{field}` tối đa là #{maxLength}",
173
+ includes: "#{field} không chứa #{includes}",
174
+ deepEqual: "#{field} không bằng #{deepEqual}",
175
+ empty: "`#{field}` không phải mảng rỗng"
176
+ },
177
+ string: {
178
+ minLength: "Số ký tự tối thiểu là #{minLength}",
179
+ maxLength: "Số ký tự tối đa là #{maxLength}",
180
+ length: "Số ký tự phải là #{length}",
181
+ match: "`#{value}` không khớp với mẫu #{pattern}",
182
+ uppercase: "`#{value}` phải là chữ in hoa toàn bộ",
183
+ lowercase: "`#{value}` phải là chữ thường toàn bộ"
184
+ },
185
+ object: {
186
+ deepEqual: "`#{field}` không bằng giá trị mong đợi",
187
+ hasKeys: "`#{field}` không chứa các trường bắt buộc",
188
+ empty: "`#{field}` không phải đối tượng"
189
+ },
190
+ boolean: {
191
+ true: "Giá trị mong đợi là `true`",
192
+ false: "Giá trị mong đợi là `false`"
193
+ }
194
+ } },
149
195
  colorPicker: {
150
196
  history: "Màu sắc được sử dụng gần đây",
151
197
  preset: "Màu mặc định của hệ thống",
@@ -191,6 +191,8 @@ var mention_default = /* @__PURE__ */ defineComponent({
191
191
  const handleClear = (ev) => {
192
192
  var _eventHandlers$value2, _eventHandlers$value3;
193
193
  _value.value = "";
194
+ resetMeasureInfo();
195
+ _popupVisible.value = false;
194
196
  emit("update:modelValue", "");
195
197
  emit("change", "");
196
198
  (_eventHandlers$value2 = eventHandlers.value) === null || _eventHandlers$value2 === void 0 || (_eventHandlers$value3 = _eventHandlers$value2.onChange) === null || _eventHandlers$value3 === void 0 || _eventHandlers$value3.call(_eventHandlers$value2);
@@ -4,13 +4,12 @@ import { isNumber } from "../_utils/is.js";
4
4
  import { omit } from "../_utils/omit.js";
5
5
  import Trigger from "../trigger/index.js";
6
6
  import Ellipsis from "../ellipsis/index.js";
7
- import render_function_default from "../_components/render-function.js";
8
7
  import useLevel from "./hooks/use-level.js";
9
8
  import useMenu from "./hooks/use-menu.js";
10
9
  import useMenuContext from "./hooks/use-menu-context.js";
11
10
  import indent_default from "./indent.js";
12
11
  import base_menu_default from "./base-menu.js";
13
- import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createSlots, createTextVNode, createVNode, defineComponent, mergeProps, normalizeClass, normalizeStyle, openBlock, ref, renderSlot, toDisplayString, toRefs, unref, withCtx } from "vue";
12
+ import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createSlots, createTextVNode, createVNode, defineComponent, mergeProps, normalizeClass, normalizeStyle, openBlock, ref, renderSlot, resolveDynamicComponent, toDisplayString, toRefs, unref, withCtx } from "vue";
14
13
  //#region components/menu/sub-menu-pop.vue?vue&type=script&setup=true&lang.ts
15
14
  var sub_menu_pop_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent(_objectSpread2(_objectSpread2({}, {
16
15
  name: "SubMenuPop",
@@ -107,11 +106,11 @@ var sub_menu_pop_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ def
107
106
  _: 2
108
107
  }, [unref(menuContext).expandIconDown ? {
109
108
  name: "expand-icon-down",
110
- fn: withCtx(() => [createVNode(unref(render_function_default), { "render-func": unref(menuContext).expandIconDown }, null, 8, ["render-func"])]),
109
+ fn: withCtx(() => [(openBlock(), createBlock(resolveDynamicComponent(unref(menuContext).expandIconDown)))]),
111
110
  key: "0"
112
111
  } : void 0, unref(menuContext).expandIconRight ? {
113
112
  name: "expand-icon-right",
114
- fn: withCtx(() => [createVNode(unref(render_function_default), { "render-func": unref(menuContext).expandIconRight }, null, 8, ["render-func"])]),
113
+ fn: withCtx(() => [(openBlock(), createBlock(resolveDynamicComponent(unref(menuContext).expandIconRight)))]),
115
114
  key: "1"
116
115
  } : void 0]), 1032, [
117
116
  "prefix-cls",
@@ -1,6 +1,6 @@
1
1
  import type { App, AppContext } from 'vue';
2
2
  import type { SDOptions } from '../_utils/types';
3
- import type { ModalConfig } from './interface';
3
+ import type { ModalConfig, ModalGlobalConfig } from './interface';
4
4
  declare const Modal: {
5
5
  new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<Readonly<import("vue").ExtractPropTypes<{
6
6
  visible: {
@@ -497,14 +497,16 @@ declare const Modal: {
497
497
  footer?: (props: {}) => any;
498
498
  };
499
499
  }) & {
500
+ config: (config: ModalGlobalConfig) => void;
501
+ destroyAll: () => void;
500
502
  install: (app: App, options?: SDOptions) => void;
501
503
  _context: AppContext | null;
502
- open: (config: ModalConfig, appContext?: AppContext) => import("./interface").ModalReturn;
503
- confirm: (config: ModalConfig, appContext?: AppContext) => import("./interface").ModalReturn;
504
- info: (config: ModalConfig, appContext?: AppContext) => import("./interface").ModalReturn;
505
504
  success: (config: ModalConfig, appContext?: AppContext) => import("./interface").ModalReturn;
506
505
  warning: (config: ModalConfig, appContext?: AppContext) => import("./interface").ModalReturn;
506
+ info: (config: ModalConfig, appContext?: AppContext) => import("./interface").ModalReturn;
507
507
  error: (config: ModalConfig, appContext?: AppContext) => import("./interface").ModalReturn;
508
+ open: (config: ModalConfig, appContext?: AppContext) => import("./interface").ModalReturn;
509
+ confirm: (config: ModalConfig, appContext?: AppContext) => import("./interface").ModalReturn;
508
510
  };
509
- export type { ModalMethod, ModalConfig, ModalReturn } from './interface';
511
+ export type { ModalMethod, ModalConfig, ModalGlobalConfig, ModalReturn } from './interface';
510
512
  export default Modal;
package/es/modal/index.js CHANGED
@@ -9,32 +9,52 @@ import { omit } from "../_utils/omit.js";
9
9
  import modal_default from "./modal.js";
10
10
  import { createVNode, nextTick, render } from "vue";
11
11
  //#region components/modal/index.tsx
12
+ var modalGlobalConfig = _objectSpread2({}, { simple: true });
13
+ var modalDestroyList = [];
14
+ var setModalGlobalConfig = (config) => {
15
+ modalGlobalConfig = _objectSpread2(_objectSpread2({}, modalGlobalConfig), config);
16
+ };
17
+ var getModalGlobalConfig = () => modalGlobalConfig;
18
+ var removeModalDestroyFn = (destroyFn) => {
19
+ const index = modalDestroyList.findIndex((item) => item === destroyFn);
20
+ if (index > -1) modalDestroyList.splice(index, 1);
21
+ };
12
22
  var open = (config, appContext) => {
13
23
  let container = getOverlay("modal");
14
- const handleOk = () => {
24
+ let closed = false;
25
+ const destroyModal = () => {
26
+ if (closed) return;
27
+ closed = true;
28
+ if (container) {
29
+ render(null, container);
30
+ if (container.parentNode) container.parentNode.removeChild(container);
31
+ }
32
+ container = null;
33
+ removeModalDestroyFn(destroyModal);
34
+ if (isFunction(config.onClose)) config.onClose();
35
+ };
36
+ const closeModal = () => {
15
37
  if (vm.component) vm.component.props.visible = false;
38
+ };
39
+ const handleOk = () => {
40
+ closeModal();
16
41
  if (isFunction(config.onOk)) config.onOk();
17
42
  };
18
43
  const handleCancel = () => {
19
- if (vm.component) vm.component.props.visible = false;
44
+ closeModal();
20
45
  if (isFunction(config.onCancel)) config.onCancel();
21
46
  };
22
47
  const handleClose = function() {
23
48
  var _ref = _asyncToGenerator(function* () {
24
49
  yield nextTick();
25
- if (container) {
26
- render(null, container);
27
- document.body.removeChild(container);
28
- }
29
- container = null;
30
- if (isFunction(config.onClose)) config.onClose();
50
+ destroyModal();
31
51
  });
32
52
  return function handleClose() {
33
53
  return _ref.apply(this, arguments);
34
54
  };
35
55
  }();
36
56
  const handleReturnClose = () => {
37
- if (vm.component) vm.component.props.visible = false;
57
+ closeModal();
38
58
  };
39
59
  const handleUpdateConfig = (config) => {
40
60
  if (vm.component) Object.entries(config).forEach(([key, value]) => {
@@ -65,6 +85,7 @@ var open = (config, appContext) => {
65
85
  if (appContext !== null && appContext !== void 0 ? appContext : Modal._context) vm.appContext = appContext !== null && appContext !== void 0 ? appContext : Modal._context;
66
86
  render(vm, container);
67
87
  document.body.appendChild(container);
88
+ modalDestroyList.push(destroyModal);
68
89
  return {
69
90
  close: handleReturnClose,
70
91
  update: handleUpdateConfig
@@ -73,28 +94,43 @@ var open = (config, appContext) => {
73
94
  var modal = _objectSpread2({
74
95
  open,
75
96
  confirm: (config, appContext) => {
97
+ const { simple } = getModalGlobalConfig();
76
98
  return open(_objectSpread2({
77
- simple: true,
99
+ simple,
78
100
  messageType: "warning"
79
101
  }, config), appContext);
80
102
  }
81
103
  }, MESSAGE_TYPES.reduce((pre, value) => {
82
104
  pre[value] = (config, appContext) => {
105
+ const { simple } = getModalGlobalConfig();
83
106
  return open(_objectSpread2({
84
- simple: true,
107
+ simple,
85
108
  hideCancel: true,
86
109
  messageType: value
87
110
  }, config), appContext);
88
111
  };
89
112
  return pre;
90
113
  }, {}));
114
+ var config = (config) => {
115
+ setModalGlobalConfig(config);
116
+ };
117
+ var destroyAll = () => {
118
+ while (modalDestroyList.length) {
119
+ const close = modalDestroyList.pop();
120
+ close === null || close === void 0 || close();
121
+ }
122
+ };
91
123
  var Modal = Object.assign(modal_default, _objectSpread2(_objectSpread2({}, modal), {}, {
124
+ config,
125
+ destroyAll,
92
126
  install: (app, options) => {
93
127
  setGlobalConfig(app, options);
94
128
  const componentPrefix = getComponentPrefix(options);
95
129
  app.component(componentPrefix + modal_default.name, modal_default);
96
130
  const modalWithContext = {};
97
131
  for (const key of Object.keys(modal)) modalWithContext[key] = (config, appContext = app._context) => modal[key](config, appContext);
132
+ modalWithContext.config = config;
133
+ modalWithContext.destroyAll = destroyAll;
98
134
  app.config.globalProperties.$modal = modalWithContext;
99
135
  },
100
136
  _context: null
@@ -46,6 +46,9 @@ export interface ModalReturn {
46
46
  close: () => void;
47
47
  update: (config: ModalUpdateConfig) => void;
48
48
  }
49
+ export interface ModalGlobalConfig {
50
+ simple?: boolean;
51
+ }
49
52
  export interface ModalMethod {
50
53
  open: (config: ModalConfig, appContext?: AppContext) => ModalReturn;
51
54
  confirm: (config: ModalConfig, appContext?: AppContext) => ModalReturn;
@@ -53,4 +56,6 @@ export interface ModalMethod {
53
56
  success: (config: ModalConfig, appContext?: AppContext) => ModalReturn;
54
57
  warning: (config: ModalConfig, appContext?: AppContext) => ModalReturn;
55
58
  error: (config: ModalConfig, appContext?: AppContext) => ModalReturn;
59
+ config: (config: ModalGlobalConfig) => void;
60
+ destroyAll: () => void;
56
61
  }
@@ -210,8 +210,8 @@ var textarea_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineC
210
210
  keepControl();
211
211
  return;
212
212
  }
213
- emit("input", value, e);
214
213
  updateValue(value);
214
+ emit("input", value, e);
215
215
  (_eventHandlers$value6 = eventHandlers.value) === null || _eventHandlers$value6 === void 0 || (_eventHandlers$value7 = _eventHandlers$value6.onInput) === null || _eventHandlers$value7 === void 0 || _eventHandlers$value7.call(_eventHandlers$value6, e);
216
216
  } else isComposition.value = true;
217
217
  };
@@ -223,8 +223,8 @@ var textarea_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineC
223
223
  keepControl();
224
224
  return;
225
225
  }
226
- emit("input", value, e);
227
226
  updateValue(value);
227
+ emit("input", value, e);
228
228
  (_eventHandlers$value8 = eventHandlers.value) === null || _eventHandlers$value8 === void 0 || (_eventHandlers$value9 = _eventHandlers$value8.onInput) === null || _eventHandlers$value9 === void 0 || _eventHandlers$value9.call(_eventHandlers$value8, e);
229
229
  } else compositionValue.value = value;
230
230
  };
@@ -2,14 +2,13 @@ import { _objectSpread2 } from "../_virtual/_@oxc-project_runtime@0.133.0/helper
2
2
  import { getPrefixCls } from "../_utils/global-config.js";
3
3
  import { isFunction } from "../_utils/is.js";
4
4
  import Checkbox from "../checkbox/index.js";
5
- import render_function_default from "../_components/render-function.js";
6
5
  import { toArray } from "../_utils/to-array.js";
7
6
  import IconDragDotVertical from "../icon/icon-drag-dot-vertical/index.js";
8
7
  import useTreeContext from "./hooks/use-tree-context.js";
9
8
  import useDraggable from "./hooks/use-draggable.js";
10
9
  import useNodeKey from "./hooks/use-node-key.js";
11
10
  import node_switcher_default from "./node-switcher.js";
12
- import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createSlots, createTextVNode, createVNode, defineComponent, mergeProps, normalizeClass, normalizeProps, openBlock, reactive, ref, renderList, renderSlot, toDisplayString, toRefs, unref, withCtx } from "vue";
11
+ import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createSlots, createTextVNode, createVNode, defineComponent, mergeProps, normalizeClass, normalizeProps, openBlock, reactive, ref, renderList, renderSlot, resolveDynamicComponent, toDisplayString, toRefs, unref, withCtx } from "vue";
13
12
  //#region components/tree/base-node.vue?vue&type=script&setup=true&lang.ts
14
13
  var _hoisted_1 = ["data-level", "data-key"];
15
14
  var _hoisted_2 = ["draggable"];
@@ -251,34 +250,20 @@ var base_node_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ define
251
250
  }, [_ctx.$slots.icon || __props.icon || treeNodeIcon.value ? (openBlock(), createElementBlock("span", {
252
251
  key: 0,
253
252
  class: normalizeClass([`${unref(prefixCls)}-icon`, `${unref(prefixCls)}-custom-icon`])
254
- }, [_ctx.$slots.icon ? renderSlot(_ctx.$slots, "icon", normalizeProps(mergeProps({ key: 0 }, nodeStatus))) : __props.icon ? (openBlock(), createBlock(unref(render_function_default), mergeProps({
255
- key: 1,
256
- "render-func": __props.icon
257
- }, nodeStatus), null, 16, ["render-func"])) : treeNodeIcon.value ? (openBlock(), createBlock(unref(render_function_default), mergeProps({
253
+ }, [_ctx.$slots.icon ? renderSlot(_ctx.$slots, "icon", normalizeProps(mergeProps({ key: 0 }, nodeStatus))) : __props.icon ? (openBlock(), createBlock(resolveDynamicComponent(__props.icon), normalizeProps(mergeProps({ key: 1 }, nodeStatus)), null, 16)) : treeNodeIcon.value ? (openBlock(), createBlock(resolveDynamicComponent(treeNodeIcon.value), mergeProps({
258
254
  key: 2,
259
- "render-func": treeNodeIcon.value,
260
255
  node: treeNodeData.value
261
- }, nodeStatus), null, 16, ["render-func", "node"])) : createCommentVNode("", true)], 2)) : createCommentVNode("", true), createElementVNode("span", { class: normalizeClass(`${unref(prefixCls)}-title-text`) }, [treeTitle.value ? (openBlock(), createBlock(unref(render_function_default), {
262
- key: 0,
263
- "render-func": treeTitle.value
264
- }, null, 8, ["render-func"])) : renderSlot(_ctx.$slots, "title", {
256
+ }, nodeStatus), null, 16, ["node"])) : createCommentVNode("", true)], 2)) : createCommentVNode("", true), createElementVNode("span", { class: normalizeClass(`${unref(prefixCls)}-title-text`) }, [treeTitle.value ? (openBlock(), createBlock(resolveDynamicComponent(treeTitle.value), { key: 0 })) : renderSlot(_ctx.$slots, "title", {
265
257
  key: 1,
266
258
  title: __props.title
267
259
  }, () => [createTextVNode(toDisplayString(__props.title), 1)]), unref(draggable) ? (openBlock(), createElementBlock("span", {
268
260
  key: 2,
269
261
  class: normalizeClass([`${unref(prefixCls)}-icon`, `${unref(prefixCls)}-drag-icon`])
270
- }, [_ctx.$slots["drag-icon"] ? renderSlot(_ctx.$slots, "drag-icon", normalizeProps(mergeProps({ key: 0 }, nodeStatus))) : __props.dragIcon ? (openBlock(), createBlock(unref(render_function_default), mergeProps({
271
- key: 1,
272
- "render-func": __props.dragIcon
273
- }, nodeStatus), null, 16, ["render-func"])) : treeDragIcon.value ? (openBlock(), createBlock(unref(render_function_default), mergeProps({
262
+ }, [_ctx.$slots["drag-icon"] ? renderSlot(_ctx.$slots, "drag-icon", normalizeProps(mergeProps({ key: 0 }, nodeStatus))) : __props.dragIcon ? (openBlock(), createBlock(resolveDynamicComponent(__props.dragIcon), normalizeProps(mergeProps({ key: 1 }, nodeStatus)), null, 16)) : treeDragIcon.value ? (openBlock(), createBlock(resolveDynamicComponent(treeDragIcon.value), mergeProps({
274
263
  key: 2,
275
- "render-func": treeDragIcon.value,
276
264
  node: treeNodeData.value
277
- }, nodeStatus), null, 16, ["render-func", "node"])) : (openBlock(), createBlock(unref(IconDragDotVertical), { key: 3 }))], 2)) : createCommentVNode("", true)], 2)], 42, _hoisted_2),
278
- extra.value ? (openBlock(), createBlock(unref(render_function_default), {
279
- key: 1,
280
- "render-func": extra.value
281
- }, null, 8, ["render-func"])) : createCommentVNode("", true)
265
+ }, nodeStatus), null, 16, ["node"])) : (openBlock(), createBlock(unref(IconDragDotVertical), { key: 3 }))], 2)) : createCommentVNode("", true)], 2)], 42, _hoisted_2),
266
+ extra.value ? (openBlock(), createBlock(resolveDynamicComponent(extra.value), { key: 1 })) : createCommentVNode("", true)
282
267
  ], 10, _hoisted_1);
283
268
  };
284
269
  }