@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
@@ -10,7 +10,7 @@ import useState from "../_hooks/use-state.js";
10
10
  import useMergeState from "../_hooks/use-merge-state.js";
11
11
  import Trigger from "../trigger/index.js";
12
12
  import { useI18n } from "../locale/index.js";
13
- import { dayjs, getDateValue, getNow, getSortedDayjsArray, initializeDateLocale, isValueChange } from "../_utils/date.js";
13
+ import { getDateValue, getDayjsValue, getNow, getSortedDayjsArray, initializeDateLocale, isValueChange, toLocal } from "../_utils/date.js";
14
14
  import { useConfigProviderProp } from "../_hooks/use-config-provider-prop.js";
15
15
  import IconCalendar from "../icon/icon-calendar/index.js";
16
16
  import { getFormattedValue, isValidInputValue } from "../time-picker/utils/index.js";
@@ -24,9 +24,12 @@ import useRangeHeaderValue from "./hooks/use-range-header-value.js";
24
24
  import useRangePickerState from "./hooks/use-range-picker-state.js";
25
25
  import useRangeTimePickerValue from "./hooks/use-range-time-picker-value.js";
26
26
  import range_picker_panel_default from "./range-picker-panel.js";
27
- import { computed, createBlock, createSlots, createTextVNode, createVNode, defineComponent, guardReactiveProps, inject, mergeProps, nextTick, normalizeProps, onUnmounted, openBlock, reactive, ref, renderSlot, toDisplayString, toRefs, unref, useSlots, watch, watchEffect, withCtx } from "vue";
27
+ import { computed, createBlock, createSlots, createTextVNode, createVNode, defineComponent, guardReactiveProps, inject, mergeProps, nextTick, normalizeProps, onUnmounted, openBlock, reactive, ref, renderSlot, resolveDynamicComponent, toDisplayString, toRefs, unref, useSlots, watch, watchEffect, withCtx } from "vue";
28
28
  //#region components/date-picker/range-picker.vue?vue&type=script&setup=true&lang.ts
29
- var range_picker_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent(_objectSpread2(_objectSpread2({}, { name: "RangePicker" }), {}, {
29
+ var range_picker_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent(_objectSpread2(_objectSpread2({}, {
30
+ name: "RangePicker",
31
+ inheritAttrs: false
32
+ }), {}, {
30
33
  __name: "range-picker",
31
34
  props: {
32
35
  /**
@@ -97,6 +100,14 @@ var range_picker_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ def
97
100
  * */
98
101
  timePickerProps: { type: Object },
99
102
  /**
103
+ * @zh 原生输入框属性
104
+ * @en Native input attributes
105
+ */
106
+ inputProps: {
107
+ type: Array,
108
+ default: () => []
109
+ },
110
+ /**
100
111
  * @zh 提示文案
101
112
  * @en Prompt copy
102
113
  * */
@@ -125,6 +136,22 @@ var range_picker_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ def
125
136
  type: Boolean,
126
137
  default: true
127
138
  },
139
+ /**
140
+ * @zh 是否固定时间
141
+ * @en Is it a fixed time?
142
+ */
143
+ fixedTime: {
144
+ type: Boolean,
145
+ default: false
146
+ },
147
+ /**
148
+ * @zh 当重新选择范围的时候,会清空之前的范围重新进行选择
149
+ * @en When reselecting the range, the previous range will be cleared for next selection
150
+ */
151
+ clearRangeOnReselect: {
152
+ type: Boolean,
153
+ default: false
154
+ },
128
155
  popupContainer: { type: [String, Object] },
129
156
  locale: { type: Object },
130
157
  hideTrigger: { type: Boolean },
@@ -154,12 +181,27 @@ var range_picker_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ def
154
181
  defaultPopupVisible: { type: Boolean },
155
182
  triggerProps: { type: Object },
156
183
  unmountOnClose: { type: Boolean },
184
+ /**
185
+ * @zh 面板隐藏不在当前时间范围的灰色日期
186
+ * @en Hide gray dates that are not in the current time range in the panel
187
+ */
188
+ hideNotInViewDates: { type: Boolean },
157
189
  previewShortcut: {
158
190
  type: Boolean,
159
191
  default: true
160
192
  },
161
193
  showConfirmBtn: { type: Boolean },
162
194
  /**
195
+ * @zh 设置时区偏移,如果需要 utc 时间则设置为 0。
196
+ * @en Set the timezone offset. Set to 0 for UTC time.
197
+ */
198
+ utcOffset: { type: Number },
199
+ /**
200
+ * @zh 设置时区,如果设置了 `utcOffset`,则以 `utcOffset` 为准。
201
+ * @en Set timezone. If `utcOffset` is set, `utcOffset` takes precedence.
202
+ */
203
+ timezone: { type: String },
204
+ /**
163
205
  * @zh 是否禁止键盘输入日期
164
206
  * @en Whether input is disabled with the keyboard.
165
207
  * @version 2.43.0
@@ -192,8 +234,15 @@ var range_picker_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ def
192
234
  setup(__props, { emit: __emit }) {
193
235
  const props = __props;
194
236
  const emit = __emit;
237
+ /**
238
+ * @zh 自定义渲染面板
239
+ * @en Customize panel rendering
240
+ * @slot panelRender
241
+ * @binding {Component} component
242
+ * @binding {object} props
243
+ */
195
244
  const slots = useSlots();
196
- const { mode, showTime, format, modelValue, defaultValue, popupVisible, defaultPopupVisible, placeholder, timePickerProps, disabled, disabledDate, disabledTime, locale, pickerValue, defaultPickerValue, valueFormat, size, error, dayStartOfWeek, shortcuts, shortcutsPosition, exchangeTime, previewShortcut, showConfirmBtn, allowClear, abbreviation } = toRefs(props);
245
+ const { mode, showTime, format, modelValue, defaultValue, popupVisible, defaultPopupVisible, placeholder, timePickerProps, disabled, disabledDate, disabledTime, locale, pickerValue, defaultPickerValue, valueFormat, size, error, dayStartOfWeek, shortcuts, shortcutsPosition, exchangeTime, fixedTime, previewShortcut, showConfirmBtn, allowClear, abbreviation, utcOffset, timezone, clearRangeOnReselect } = toRefs(props);
197
246
  const { mergedValue: mergedDayStartOfWeek } = useConfigProviderProp(dayStartOfWeek, {
198
247
  propNames: ["dayStartOfWeek", "day-start-of-week"],
199
248
  getGlobalValue: (configProviderCtx) => {
@@ -289,7 +338,9 @@ var range_picker_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ def
289
338
  const { value: selectedValue, setValue: setSelectedValue } = useRangePickerState(reactive({
290
339
  modelValue,
291
340
  defaultValue,
292
- format: parseValueFormat
341
+ format: parseValueFormat,
342
+ utcOffset,
343
+ timezone
293
344
  }));
294
345
  const [processValue, setProcessValue] = useState();
295
346
  const [previewValue, setPreviewValue] = useState();
@@ -302,10 +353,6 @@ var range_picker_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ def
302
353
  return (_ref = (_previewValue$value = previewValue.value) !== null && _previewValue$value !== void 0 ? _previewValue$value : processValue.value) !== null && _ref !== void 0 ? _ref : selectedValue.value;
303
354
  });
304
355
  const [inputValue, setInputValue] = useState();
305
- const displayInputValue = computed(() => {
306
- var _inputValue$value;
307
- return (_inputValue$value = inputValue.value) === null || _inputValue$value === void 0 ? void 0 : _inputValue$value.map((item) => item !== null && item !== void 0 ? item : "");
308
- });
309
356
  const startHeaderMode = ref();
310
357
  const endHeaderMode = ref();
311
358
  const [panelVisible, setLocalPanelVisible] = useMergeState(defaultPopupVisible.value, reactive({ value: popupVisible }));
@@ -324,10 +371,13 @@ var range_picker_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ def
324
371
  defaultValue: defaultPickerValue,
325
372
  selectedValue: panelValue,
326
373
  format: parseValueFormat,
374
+ utcOffset,
375
+ timezone,
327
376
  onChange: (newVal) => {
328
- const returnValue = getReturnRangeValue(newVal, returnValueFormat.value);
329
- const formattedValue = getFormattedValue(newVal, parseValueFormat.value);
330
- emit("picker-value-change", returnValue, getDateValue(newVal), formattedValue);
377
+ const returnValue = getReturnRangeValue(newVal, returnValueFormat.value, utcOffset === null || utcOffset === void 0 ? void 0 : utcOffset.value, timezone === null || timezone === void 0 ? void 0 : timezone.value);
378
+ const localValue = newVal.map((item) => toLocal(item, utcOffset === null || utcOffset === void 0 ? void 0 : utcOffset.value, timezone === null || timezone === void 0 ? void 0 : timezone.value));
379
+ const formattedValue = getFormattedValue(localValue, parseValueFormat.value);
380
+ emit("picker-value-change", returnValue, getDateValue(localValue), formattedValue);
331
381
  emit("update:pickerValue", returnValue);
332
382
  }
333
383
  }));
@@ -351,7 +401,7 @@ var range_picker_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ def
351
401
  setHeaderValue([startHeaderValue.value, newEndValue]);
352
402
  endHeaderMode.value = void 0;
353
403
  }
354
- const footerValue = ref([panelValue.value[0] || getNow(), panelValue.value[1] || getNow()]);
404
+ const footerValue = ref([panelValue.value[0] || getNow(utcOffset === null || utcOffset === void 0 ? void 0 : utcOffset.value, timezone === null || timezone === void 0 ? void 0 : timezone.value), panelValue.value[1] || getNow(utcOffset === null || utcOffset === void 0 ? void 0 : utcOffset.value, timezone === null || timezone === void 0 ? void 0 : timezone.value)]);
355
405
  watch(panelValue, () => {
356
406
  const [value0, value1] = panelValue.value;
357
407
  footerValue.value[0] = value0 || footerValue.value[0];
@@ -392,9 +442,10 @@ var range_picker_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ def
392
442
  }
393
443
  });
394
444
  function emitChange(value, emitOk) {
395
- const returnValue = value ? getReturnRangeValue(value, returnValueFormat.value) : void 0;
396
- const formattedValue = getFormattedValue(value, parseValueFormat.value);
397
- const dateValue = getDateValue(value);
445
+ const localValue = value === null || value === void 0 ? void 0 : value.map((item) => item ? toLocal(item, utcOffset === null || utcOffset === void 0 ? void 0 : utcOffset.value, timezone === null || timezone === void 0 ? void 0 : timezone.value) : void 0);
446
+ const returnValue = value ? getReturnRangeValue(value, returnValueFormat.value, utcOffset === null || utcOffset === void 0 ? void 0 : utcOffset.value, timezone === null || timezone === void 0 ? void 0 : timezone.value) : void 0;
447
+ const formattedValue = getFormattedValue(localValue, parseValueFormat.value);
448
+ const dateValue = getDateValue(localValue);
398
449
  if (isValueChange(value, selectedValue.value)) {
399
450
  var _eventHandlers$value, _eventHandlers$value$;
400
451
  emit("update:modelValue", returnValue);
@@ -406,8 +457,8 @@ var range_picker_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ def
406
457
  }
407
458
  }
408
459
  function getSortedDayjsArrayByExchangeTimeOrNot(newValue) {
409
- let sortedValue = getSortedDayjsArray(newValue);
410
- if (hasTime.value && !mergedExchangeTime.value) sortedValue = [getMergedOpValue(sortedValue[0], newValue[0]), getMergedOpValue(sortedValue[1], newValue[1])];
460
+ let sortedValue = getSortedDayjsArray(newValue, fixedTime.value);
461
+ if (hasTime.value && !mergedExchangeTime.value && !fixedTime.value) sortedValue = [getMergedOpValue(sortedValue[0], newValue[0]), getMergedOpValue(sortedValue[1], newValue[1])];
411
462
  return sortedValue;
412
463
  }
413
464
  function confirm(value, showPanel, emitOk) {
@@ -424,9 +475,10 @@ var range_picker_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ def
424
475
  if (isBoolean(showPanel)) setPanelVisible(showPanel);
425
476
  }
426
477
  function emitSelectEvent(value) {
427
- const returnValue = getReturnRangeValue(value, returnValueFormat.value);
428
- const formattedValue = getFormattedValue(value, parseValueFormat.value);
429
- const dateValue = getDateValue(value);
478
+ const localValue = value.map((item) => item ? toLocal(item, utcOffset === null || utcOffset === void 0 ? void 0 : utcOffset.value, timezone === null || timezone === void 0 ? void 0 : timezone.value) : void 0);
479
+ const returnValue = getReturnRangeValue(value, returnValueFormat.value, utcOffset === null || utcOffset === void 0 ? void 0 : utcOffset.value, timezone === null || timezone === void 0 ? void 0 : timezone.value);
480
+ const formattedValue = getFormattedValue(localValue, parseValueFormat.value);
481
+ const dateValue = getDateValue(localValue);
430
482
  emitRangeEvent("select", returnValue !== null && returnValue !== void 0 ? returnValue : [], dateValue !== null && dateValue !== void 0 ? dateValue : [], formattedValue !== null && formattedValue !== void 0 ? formattedValue : []);
431
483
  }
432
484
  function select(value, options) {
@@ -452,7 +504,7 @@ var range_picker_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ def
452
504
  }
453
505
  function getMergedOpValue(date, time) {
454
506
  if (!hasTime.value) return date;
455
- return mergeValueWithTime(getNow(), date, time);
507
+ return mergeValueWithTime(getNow(utcOffset === null || utcOffset === void 0 ? void 0 : utcOffset.value, timezone === null || timezone === void 0 ? void 0 : timezone.value), date, time);
456
508
  }
457
509
  function onPanelVisibleChange(visible) {
458
510
  setPanelVisible(visible);
@@ -467,7 +519,8 @@ var range_picker_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ def
467
519
  }
468
520
  function getValueToModify(isTime = false) {
469
521
  if (isNextDisabled.value) return [...selectedValue.value];
470
- if (processValue.value) return isTime || !isCompleteRangeValue(processValue.value) ? [...processValue.value] : [];
522
+ if (processValue.value) return isTime || !isCompleteRangeValue(processValue.value) || !clearRangeOnReselect.value ? [...processValue.value] : [];
523
+ if (!isTime && !clearRangeOnReselect.value) return [...selectedValue.value];
471
524
  return isTime ? [...selectedValue.value] : [];
472
525
  }
473
526
  function onPanelCellClick(date) {
@@ -534,7 +587,7 @@ var range_picker_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ def
534
587
  newInputValue[focusedIndex.value] = targetValue;
535
588
  setInputValue(newInputValue);
536
589
  if (!isValidInputValue(targetValue, computedFormat.value)) return;
537
- const targetValueDayjs = dayjs(targetValue, computedFormat.value);
590
+ const targetValueDayjs = getDayjsValue(targetValue, computedFormat.value, utcOffset === null || utcOffset === void 0 ? void 0 : utcOffset.value, timezone === null || timezone === void 0 ? void 0 : timezone.value);
538
591
  if (isDisabledDate(targetValueDayjs, focusedIndex.value === 0 ? "start" : "end")) return;
539
592
  const newValue = isArray(panelValue.value) ? [...panelValue.value] : [];
540
593
  newValue[focusedIndex.value] = targetValueDayjs;
@@ -563,24 +616,26 @@ var range_picker_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ def
563
616
  });
564
617
  const rangePanelProps = computed(() => _objectSpread2(_objectSpread2({}, pick(props, [
565
618
  "mode",
619
+ "showTime",
620
+ "shortcuts",
621
+ "shortcutsPosition",
622
+ "dayStartOfWeek",
566
623
  "disabledDate",
567
624
  "disabledTime",
568
625
  "hideTrigger",
569
- "showTime"
626
+ "abbreviation",
627
+ "hideNotInViewDates",
628
+ "utcOffset",
629
+ "timezone"
570
630
  ])), {}, {
571
- shortcuts: mergedShortcuts.value,
572
- shortcutsPosition: mergedShortcutsPosition.value,
573
- dayStartOfWeek: mergedDayStartOfWeek.value,
574
- abbreviation: mergedAbbreviation.value,
575
631
  prefixCls,
632
+ now: getNow(utcOffset === null || utcOffset === void 0 ? void 0 : utcOffset.value, timezone === null || timezone === void 0 ? void 0 : timezone.value),
576
633
  format: parseValueFormat.value,
577
634
  value: panelValue.value,
578
635
  showConfirmBtn: needConfirm.value,
579
636
  confirmBtnDisabled: confirmBtnDisabled.value,
580
637
  timePickerValue: timePickerValue.value,
581
638
  timePickerProps: computedTimePickerProps.value,
582
- extra: slots.extra,
583
- dateRender: slots.cell,
584
639
  startHeaderProps,
585
640
  endHeaderProps,
586
641
  footerValue: footerValue.value,
@@ -616,7 +671,18 @@ var range_picker_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ def
616
671
  "popup-container": __props.popupContainer,
617
672
  onPopupVisibleChange: onPanelVisibleChange
618
673
  }), {
619
- content: withCtx(() => [createVNode(range_picker_panel_default, normalizeProps(guardReactiveProps(rangePanelProps.value)), null, 16)]),
674
+ content: withCtx(() => [renderSlot(_ctx.$slots, "panelRender", {
675
+ component: range_picker_panel_default,
676
+ props: rangePanelProps.value
677
+ }, () => [(openBlock(), createBlock(resolveDynamicComponent(range_picker_panel_default), normalizeProps(guardReactiveProps(rangePanelProps.value)), createSlots({ _: 2 }, [_ctx.$slots.extra ? {
678
+ name: "extra",
679
+ fn: withCtx(() => [renderSlot(_ctx.$slots, "extra")]),
680
+ key: "0"
681
+ } : void 0, _ctx.$slots.cell ? {
682
+ name: "cell",
683
+ fn: withCtx((scope) => [renderSlot(_ctx.$slots, "cell", normalizeProps(guardReactiveProps(scope)))]),
684
+ key: "1"
685
+ } : void 0]), 1040))])]),
620
686
  default: withCtx(() => [renderSlot(_ctx.$slots, "default", {}, () => [createVNode(input_range_default, mergeProps({
621
687
  ref_key: "refInput",
622
688
  ref: refInput
@@ -631,7 +697,8 @@ var range_picker_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ def
631
697
  readonly: __props.readonly || __props.disabledInput,
632
698
  "allow-clear": unref(mergedAllowClear) && !__props.readonly,
633
699
  placeholder: computedPlaceholder.value,
634
- "input-value": displayInputValue.value,
700
+ "input-props": __props.inputProps,
701
+ "input-value": unref(inputValue),
635
702
  value: panelValue.value,
636
703
  format: unref(computedFormat),
637
704
  onClear: onInputClear,
@@ -655,6 +722,7 @@ var range_picker_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ def
655
722
  "readonly",
656
723
  "allow-clear",
657
724
  "placeholder",
725
+ "input-props",
658
726
  "input-value",
659
727
  "value",
660
728
  "format"
@@ -666,7 +734,19 @@ var range_picker_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ def
666
734
  "disabled",
667
735
  "popup-visible",
668
736
  "popup-container"
669
- ])) : (openBlock(), createBlock(range_picker_panel_default, normalizeProps(mergeProps({ key: 1 }, _objectSpread2(_objectSpread2({}, _ctx.$attrs), rangePanelProps.value))), null, 16));
737
+ ])) : renderSlot(_ctx.$slots, "panelRender", {
738
+ key: 1,
739
+ component: range_picker_panel_default,
740
+ props: rangePanelProps.value
741
+ }, () => [(openBlock(), createBlock(resolveDynamicComponent(range_picker_panel_default), normalizeProps(guardReactiveProps(_objectSpread2(_objectSpread2({}, rangePanelProps.value), _ctx.$attrs))), createSlots({ _: 2 }, [_ctx.$slots.extra ? {
742
+ name: "extra",
743
+ fn: withCtx(() => [renderSlot(_ctx.$slots, "extra")]),
744
+ key: "0"
745
+ } : void 0, _ctx.$slots.cell ? {
746
+ name: "cell",
747
+ fn: withCtx((scope) => [renderSlot(_ctx.$slots, "cell", normalizeProps(guardReactiveProps(scope)))]),
748
+ key: "1"
749
+ } : void 0]), 1040))]);
670
750
  };
671
751
  }
672
752
  }));
@@ -1,9 +1,8 @@
1
- import { PropType } from 'vue';
2
- import { RenderFunc } from '../_components/render-function';
1
+ import { PropType, VNodeTypes } from 'vue';
3
2
  export interface ActionType {
4
3
  key: string;
5
4
  name: string;
6
- content: RenderFunc;
5
+ content: () => VNodeTypes;
7
6
  onClick: () => void;
8
7
  disabled?: boolean;
9
8
  }
@@ -1,8 +1,7 @@
1
1
  import { _objectSpread2 } from "../_virtual/_@oxc-project_runtime@0.133.0/helpers/esm/objectSpread2.js";
2
2
  import { getPrefixCls } from "../_utils/global-config.js";
3
- import render_function_default from "../_components/render-function.js";
4
3
  import preview_action_default from "./preview-action.js";
5
- import { Fragment, computed, createBlock, createElementBlock, createVNode, defineComponent, normalizeClass, openBlock, renderList, renderSlot, toRefs, unref, withCtx } from "vue";
4
+ import { Fragment, computed, createBlock, createElementBlock, defineComponent, normalizeClass, openBlock, renderList, renderSlot, resolveDynamicComponent, toRefs, unref, withCtx } from "vue";
6
5
  //#region components/image/preview-toolbar.vue?vue&type=script&setup=true&lang.tsx
7
6
  var preview_toolbar_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent(_objectSpread2(_objectSpread2({}, { name: "ImagePreviewToolbar" }), {}, {
8
7
  __name: "preview-toolbar",
@@ -35,7 +34,7 @@ var preview_toolbar_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/
35
34
  disabled: action.disabled,
36
35
  onClick: action.onClick
37
36
  }, {
38
- default: withCtx(() => [createVNode(unref(render_function_default), { "render-func": action.content }, null, 8, ["render-func"])]),
37
+ default: withCtx(() => [(openBlock(), createBlock(resolveDynamicComponent(action.content)))]),
39
38
  _: 2
40
39
  }, 1032, [
41
40
  "name",
@@ -157,6 +157,8 @@ export interface SDLang {
157
157
  view: SDCalendarLang['view'];
158
158
  month: SDCalendarLang['month'];
159
159
  week: SDCalendarLang['week'];
160
+ yearFormat?: string;
161
+ monthFormat?: string;
160
162
  placeholder: {
161
163
  date: string;
162
164
  week: string;
@@ -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: "Falten",
147
147
  expand: "Erweitern"
148
148
  },
149
+ form: { validateMessages: {
150
+ required: "#{field} ist ein Pflichtfeld",
151
+ type: {
152
+ string: "#{field} ist kein gültiger Text",
153
+ number: "#{field} ist keine gültige Zahl",
154
+ boolean: "#{field} ist kein gültiger boolescher Wert",
155
+ array: "#{field} ist kein gültiges Array",
156
+ object: "#{field} ist kein gültiges Objekt",
157
+ url: "#{field} ist keine gültige URL",
158
+ email: "#{field} ist keine gültige E-Mail-Adresse",
159
+ ip: "#{field} ist keine gültige IP-Adresse"
160
+ },
161
+ number: {
162
+ min: "`#{value}` ist kleiner als der Mindestwert `#{min}`",
163
+ max: "`#{value}` ist größer als der Höchstwert `#{max}`",
164
+ equal: "`#{value}` ist nicht gleich `#{equal}`",
165
+ range: "`#{value}` liegt nicht im Bereich `#{min} ~ #{max}`",
166
+ positive: "`#{value}` ist keine positive Zahl",
167
+ negative: "`#{value}` ist keine negative Zahl"
168
+ },
169
+ array: {
170
+ length: "Die Anzahl von `#{field}` ist nicht gleich #{length}",
171
+ minLength: "Die Anzahl von `#{field}` muss mindestens #{minLength} sein",
172
+ maxLength: "Die Anzahl von `#{field}` darf höchstens #{maxLength} sein",
173
+ includes: "#{field} enthält #{includes} nicht",
174
+ deepEqual: "#{field} ist nicht gleich #{deepEqual}",
175
+ empty: "`#{field}` ist kein leeres Array"
176
+ },
177
+ string: {
178
+ minLength: "Die Zeichenanzahl muss mindestens #{minLength} sein",
179
+ maxLength: "Die Zeichenanzahl darf höchstens #{maxLength} sein",
180
+ length: "Die Zeichenanzahl muss #{length} sein",
181
+ match: "`#{value}` entspricht nicht dem Muster #{pattern}",
182
+ uppercase: "`#{value}` muss vollständig in Großbuchstaben sein",
183
+ lowercase: "`#{value}` muss vollständig in Kleinbuchstaben sein"
184
+ },
185
+ object: {
186
+ deepEqual: "`#{field}` entspricht nicht dem erwarteten Wert",
187
+ hasKeys: "`#{field}` enthält nicht die erforderlichen Felder",
188
+ empty: "`#{field}` ist kein Objekt"
189
+ },
190
+ boolean: {
191
+ true: "Der erwartete Wert ist `true`",
192
+ false: "Der erwartete Wert ist `false`"
193
+ }
194
+ } },
149
195
  colorPicker: {
150
196
  history: "Historische Farben",
151
197
  preset: "Standardfarbe des Systems",
@@ -146,6 +146,52 @@ var lang = {
146
146
  expand: "Expandir",
147
147
  collapse: "Pliegue"
148
148
  },
149
+ form: { validateMessages: {
150
+ required: "El campo #{field} es obligatorio",
151
+ type: {
152
+ string: "#{field} no es un texto válido",
153
+ number: "#{field} no es un número válido",
154
+ boolean: "#{field} no es un valor booleano válido",
155
+ array: "#{field} no es un arreglo válido",
156
+ object: "#{field} no es un objeto válido",
157
+ url: "#{field} no es una URL válida",
158
+ email: "#{field} no es un correo electrónico válido",
159
+ ip: "#{field} no es una dirección IP válida"
160
+ },
161
+ number: {
162
+ min: "`#{value}` es menor que el valor mínimo `#{min}`",
163
+ max: "`#{value}` es mayor que el valor máximo `#{max}`",
164
+ equal: "`#{value}` no es igual a `#{equal}`",
165
+ range: "`#{value}` no está dentro del rango `#{min} ~ #{max}`",
166
+ positive: "`#{value}` no es un número positivo",
167
+ negative: "`#{value}` no es un número negativo"
168
+ },
169
+ array: {
170
+ length: "La cantidad de `#{field}` no es igual a #{length}",
171
+ minLength: "La cantidad de `#{field}` debe ser al menos #{minLength}",
172
+ maxLength: "La cantidad de `#{field}` debe ser como máximo #{maxLength}",
173
+ includes: "#{field} no incluye #{includes}",
174
+ deepEqual: "#{field} no es igual a #{deepEqual}",
175
+ empty: "`#{field}` no es un arreglo vacío"
176
+ },
177
+ string: {
178
+ minLength: "La cantidad de caracteres debe ser al menos #{minLength}",
179
+ maxLength: "La cantidad de caracteres debe ser como máximo #{maxLength}",
180
+ length: "La cantidad de caracteres debe ser #{length}",
181
+ match: "`#{value}` no coincide con el patrón #{pattern}",
182
+ uppercase: "`#{value}` debe estar completamente en mayúsculas",
183
+ lowercase: "`#{value}` debe estar completamente en minúsculas"
184
+ },
185
+ object: {
186
+ deepEqual: "`#{field}` no es igual al valor esperado",
187
+ hasKeys: "`#{field}` no incluye los campos obligatorios",
188
+ empty: "`#{field}` no es un objeto"
189
+ },
190
+ boolean: {
191
+ true: "El valor esperado es `true`",
192
+ false: "El valor esperado es `false`"
193
+ }
194
+ } },
149
195
  colorPicker: {
150
196
  history: "Colores históricos",
151
197
  preset: "Colores predefinidos del sistema",
@@ -146,6 +146,52 @@ var lang = {
146
146
  collapse: "Plier",
147
147
  expand: "Étendre"
148
148
  },
149
+ form: { validateMessages: {
150
+ required: "#{field} est obligatoire",
151
+ type: {
152
+ string: "#{field} n'est pas un texte valide",
153
+ number: "#{field} n'est pas un nombre valide",
154
+ boolean: "#{field} n'est pas une valeur booléenne valide",
155
+ array: "#{field} n'est pas un tableau valide",
156
+ object: "#{field} n'est pas un objet valide",
157
+ url: "#{field} n'est pas une URL valide",
158
+ email: "#{field} n'est pas une adresse e-mail valide",
159
+ ip: "#{field} n'est pas une adresse IP valide"
160
+ },
161
+ number: {
162
+ min: "`#{value}` est inférieur à la valeur minimale `#{min}`",
163
+ max: "`#{value}` est supérieur à la valeur maximale `#{max}`",
164
+ equal: "`#{value}` n'est pas égal à `#{equal}`",
165
+ range: "`#{value}` n'est pas dans la plage `#{min} ~ #{max}`",
166
+ positive: "`#{value}` n'est pas un nombre positif",
167
+ negative: "`#{value}` n'est pas un nombre négatif"
168
+ },
169
+ array: {
170
+ length: "Le nombre de `#{field}` n'est pas égal à #{length}",
171
+ minLength: "Le nombre de `#{field}` doit être au moins #{minLength}",
172
+ maxLength: "Le nombre de `#{field}` doit être au plus #{maxLength}",
173
+ includes: "#{field} ne contient pas #{includes}",
174
+ deepEqual: "#{field} n'est pas égal à #{deepEqual}",
175
+ empty: "`#{field}` n'est pas un tableau vide"
176
+ },
177
+ string: {
178
+ minLength: "Le nombre de caractères doit être au moins #{minLength}",
179
+ maxLength: "Le nombre de caractères doit être au plus #{maxLength}",
180
+ length: "Le nombre de caractères doit être #{length}",
181
+ match: "`#{value}` ne correspond pas au motif #{pattern}",
182
+ uppercase: "`#{value}` doit être entièrement en majuscules",
183
+ lowercase: "`#{value}` doit être entièrement en minuscules"
184
+ },
185
+ object: {
186
+ deepEqual: "`#{field}` n'est pas égal à la valeur attendue",
187
+ hasKeys: "`#{field}` ne contient pas les champs requis",
188
+ empty: "`#{field}` n'est pas un objet"
189
+ },
190
+ boolean: {
191
+ true: "La valeur attendue est `true`",
192
+ false: "La valeur attendue est `false`"
193
+ }
194
+ } },
149
195
  colorPicker: {
150
196
  history: "Couleurs historiques",
151
197
  preset: "Couleurs prédéfinies par le système",
@@ -146,6 +146,52 @@ var lang = {
146
146
  collapse: "Melipat",
147
147
  expand: "Membuka"
148
148
  },
149
+ form: { validateMessages: {
150
+ required: "#{field} wajib diisi",
151
+ type: {
152
+ string: "#{field} bukan teks yang valid",
153
+ number: "#{field} bukan angka yang valid",
154
+ boolean: "#{field} bukan nilai boolean yang valid",
155
+ array: "#{field} bukan array yang valid",
156
+ object: "#{field} bukan objek yang valid",
157
+ url: "#{field} bukan URL yang valid",
158
+ email: "#{field} bukan alamat email yang valid",
159
+ ip: "#{field} bukan alamat IP yang valid"
160
+ },
161
+ number: {
162
+ min: "`#{value}` lebih kecil dari nilai minimum `#{min}`",
163
+ max: "`#{value}` lebih besar dari nilai maksimum `#{max}`",
164
+ equal: "`#{value}` tidak sama dengan `#{equal}`",
165
+ range: "`#{value}` tidak berada dalam rentang `#{min} ~ #{max}`",
166
+ positive: "`#{value}` bukan angka positif",
167
+ negative: "`#{value}` bukan angka negatif"
168
+ },
169
+ array: {
170
+ length: "Jumlah `#{field}` tidak sama dengan #{length}",
171
+ minLength: "Jumlah `#{field}` minimal #{minLength}",
172
+ maxLength: "Jumlah `#{field}` maksimal #{maxLength}",
173
+ includes: "#{field} tidak mengandung #{includes}",
174
+ deepEqual: "#{field} tidak sama dengan #{deepEqual}",
175
+ empty: "`#{field}` bukan array kosong"
176
+ },
177
+ string: {
178
+ minLength: "Jumlah karakter minimal #{minLength}",
179
+ maxLength: "Jumlah karakter maksimal #{maxLength}",
180
+ length: "Jumlah karakter harus #{length}",
181
+ match: "`#{value}` tidak sesuai pola #{pattern}",
182
+ uppercase: "`#{value}` harus seluruhnya huruf kapital",
183
+ lowercase: "`#{value}` harus seluruhnya huruf kecil"
184
+ },
185
+ object: {
186
+ deepEqual: "`#{field}` tidak sama dengan nilai yang diharapkan",
187
+ hasKeys: "`#{field}` tidak mengandung field yang wajib",
188
+ empty: "`#{field}` bukan objek"
189
+ },
190
+ boolean: {
191
+ true: "Nilai yang diharapkan adalah `true`",
192
+ false: "Nilai yang diharapkan adalah `false`"
193
+ }
194
+ } },
149
195
  colorPicker: {
150
196
  history: "Warna sejarah",
151
197
  preset: "Sistem preset warna",