@koi-design/uxd-ui 14.0.6 → 14.0.7

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 (143) hide show
  1. package/es/components/Card/Card.d.ts +9 -9
  2. package/es/components/Card/Card.mjs +19 -26
  3. package/es/components/Card/Card.mjs.map +1 -1
  4. package/es/components/Card/Card.type.d.ts +4 -4
  5. package/es/components/Card/Card.type.mjs +4 -4
  6. package/es/components/Card/Card.type.mjs.map +1 -1
  7. package/es/components/Card/index.d.ts +15 -15
  8. package/es/components/DatePicker/DatePicker.mjs +2 -4
  9. package/es/components/DatePicker/DatePicker.mjs.map +1 -1
  10. package/es/components/DatePicker/Panel/DatePickerPanel.mjs +1 -0
  11. package/es/components/DatePicker/Panel/DatePickerPanel.mjs.map +1 -1
  12. package/es/components/Layout/Layout.type.d.ts +2 -7
  13. package/es/components/Layout/Layout.type.mjs +2 -7
  14. package/es/components/Layout/Layout.type.mjs.map +1 -1
  15. package/es/components/Layout/Sider.mjs +20 -16
  16. package/es/components/Layout/Sider.mjs.map +1 -1
  17. package/es/components/Layout/Sider.vue.d.ts +9 -17
  18. package/es/components/Layout/index.d.ts +9 -17
  19. package/es/components/Menu/Menu.d.ts +0 -11
  20. package/es/components/Menu/Menu.mjs +1 -3
  21. package/es/components/Menu/Menu.mjs.map +1 -1
  22. package/es/components/Menu/Menu.type.d.ts +0 -6
  23. package/es/components/Menu/Menu.type.mjs +0 -5
  24. package/es/components/Menu/Menu.type.mjs.map +1 -1
  25. package/es/components/Menu/SubMenu.mjs +1 -3
  26. package/es/components/Menu/SubMenu.mjs.map +1 -1
  27. package/es/components/Menu/SubMenu.vue.d.ts +0 -1
  28. package/es/components/Menu/index.d.ts +0 -19
  29. package/es/components/Table/BaseTable.vue.d.ts +0 -19
  30. package/es/components/Table/BodyTable.vue.d.ts +0 -19
  31. package/es/components/Table/HeadTable.vue.d.ts +0 -19
  32. package/es/components/Table/Table.vue.d.ts +0 -38
  33. package/es/components/Table/TableBox.vue.d.ts +0 -38
  34. package/es/components/Table/tableUnits/FilterDropdown.vue.d.ts +0 -19
  35. package/es/components/Table/tableUnits/SelectionCheckAll.vue.d.ts +0 -19
  36. package/es/components/Table/tableUnits/TableHeader.vue.d.ts +0 -19
  37. package/es/components/Table/tableUnits/TableHeaderRow.vue.d.ts +0 -19
  38. package/es/components/base/CollapseTransition.mjs +0 -16
  39. package/es/components/base/CollapseTransition.mjs.map +1 -1
  40. package/es/components/base/hooks/useGlobalConfig.d.ts +1 -0
  41. package/es/components/locale/default.d.ts +1 -0
  42. package/es/components/locale/default.mjs.map +1 -1
  43. package/lib/components/Card/Card.d.ts +9 -9
  44. package/lib/components/Card/Card.js +22 -29
  45. package/lib/components/Card/Card.js.map +1 -1
  46. package/lib/components/Card/Card.type.d.ts +4 -4
  47. package/lib/components/Card/Card.type.js +4 -4
  48. package/lib/components/Card/Card.type.js.map +1 -1
  49. package/lib/components/Card/index.d.ts +15 -15
  50. package/lib/components/DatePicker/DatePicker.js +2 -4
  51. package/lib/components/DatePicker/DatePicker.js.map +1 -1
  52. package/lib/components/DatePicker/Panel/DatePickerPanel.js +1 -0
  53. package/lib/components/DatePicker/Panel/DatePickerPanel.js.map +1 -1
  54. package/lib/components/Layout/Layout.type.d.ts +2 -7
  55. package/lib/components/Layout/Layout.type.js +2 -7
  56. package/lib/components/Layout/Layout.type.js.map +1 -1
  57. package/lib/components/Layout/Sider.js +19 -15
  58. package/lib/components/Layout/Sider.js.map +1 -1
  59. package/lib/components/Layout/Sider.vue.d.ts +9 -17
  60. package/lib/components/Layout/index.d.ts +9 -17
  61. package/lib/components/Menu/Menu.d.ts +0 -11
  62. package/lib/components/Menu/Menu.js +1 -3
  63. package/lib/components/Menu/Menu.js.map +1 -1
  64. package/lib/components/Menu/Menu.type.d.ts +0 -6
  65. package/lib/components/Menu/Menu.type.js +0 -5
  66. package/lib/components/Menu/Menu.type.js.map +1 -1
  67. package/lib/components/Menu/SubMenu.js +1 -3
  68. package/lib/components/Menu/SubMenu.js.map +1 -1
  69. package/lib/components/Menu/SubMenu.vue.d.ts +0 -1
  70. package/lib/components/Menu/index.d.ts +0 -19
  71. package/lib/components/Table/BaseTable.vue.d.ts +0 -19
  72. package/lib/components/Table/BodyTable.vue.d.ts +0 -19
  73. package/lib/components/Table/HeadTable.vue.d.ts +0 -19
  74. package/lib/components/Table/Table.vue.d.ts +0 -38
  75. package/lib/components/Table/TableBox.vue.d.ts +0 -38
  76. package/lib/components/Table/tableUnits/FilterDropdown.vue.d.ts +0 -19
  77. package/lib/components/Table/tableUnits/SelectionCheckAll.vue.d.ts +0 -19
  78. package/lib/components/Table/tableUnits/TableHeader.vue.d.ts +0 -19
  79. package/lib/components/Table/tableUnits/TableHeaderRow.vue.d.ts +0 -19
  80. package/lib/components/base/CollapseTransition.js +0 -16
  81. package/lib/components/base/CollapseTransition.js.map +1 -1
  82. package/lib/components/base/hooks/useGlobalConfig.d.ts +1 -0
  83. package/lib/components/locale/default.d.ts +1 -0
  84. package/lib/components/locale/default.js.map +1 -1
  85. package/package.json +1 -1
  86. package/styles/components/alert/index.css +1 -1
  87. package/styles/components/autoComplete/index.css +1 -1
  88. package/styles/components/avatar/index.css +1 -1
  89. package/styles/components/breadcrumb/index.css +1 -1
  90. package/styles/components/breadcrumb/index.less +5 -6
  91. package/styles/components/breadcrumb/var.less +4 -6
  92. package/styles/components/button/index.css +1 -1
  93. package/styles/components/card/index.css +1 -1
  94. package/styles/components/card/index.less +64 -70
  95. package/styles/components/card/var.less +4 -13
  96. package/styles/components/carousel/index.css +1 -1
  97. package/styles/components/cascader/index.css +1 -1
  98. package/styles/components/datePicker/index.css +1 -1
  99. package/styles/components/form/index.css +1 -1
  100. package/styles/components/icon/index.css +1 -1
  101. package/styles/components/input/index.css +1 -1
  102. package/styles/components/inputNumber/index.css +1 -1
  103. package/styles/components/layout/index.css +1 -1
  104. package/styles/components/layout/index.less +40 -55
  105. package/styles/components/layout/var.less +9 -41
  106. package/styles/components/link/index.css +1 -1
  107. package/styles/components/mentions/index.css +1 -1
  108. package/styles/components/menu/index.css +1 -1
  109. package/styles/components/menu/index.less +63 -207
  110. package/styles/components/menu/var.less +39 -69
  111. package/styles/components/modal/index.css +1 -1
  112. package/styles/components/select/index.css +1 -1
  113. package/styles/components/spin/index.css +1 -1
  114. package/styles/components/timePicker/index.css +1 -1
  115. package/styles/cssVariable.css +1 -1
  116. package/styles/cssVariable.less +8 -7
  117. package/styles/index.css +1 -1
  118. package/types/components/Card/Card.d.ts +9 -9
  119. package/types/components/Card/Card.type.d.ts +4 -4
  120. package/types/components/Card/index.d.ts +15 -15
  121. package/types/components/Layout/Layout.type.d.ts +2 -7
  122. package/types/components/Layout/Sider.vue.d.ts +9 -17
  123. package/types/components/Layout/index.d.ts +9 -17
  124. package/types/components/Menu/Menu.d.ts +0 -11
  125. package/types/components/Menu/Menu.type.d.ts +0 -6
  126. package/types/components/Menu/SubMenu.vue.d.ts +0 -1
  127. package/types/components/Menu/index.d.ts +0 -19
  128. package/types/components/Table/BaseTable.vue.d.ts +0 -19
  129. package/types/components/Table/BodyTable.vue.d.ts +0 -19
  130. package/types/components/Table/HeadTable.vue.d.ts +0 -19
  131. package/types/components/Table/Table.vue.d.ts +0 -38
  132. package/types/components/Table/TableBox.vue.d.ts +0 -38
  133. package/types/components/Table/tableUnits/FilterDropdown.vue.d.ts +0 -19
  134. package/types/components/Table/tableUnits/SelectionCheckAll.vue.d.ts +0 -19
  135. package/types/components/Table/tableUnits/TableHeader.vue.d.ts +0 -19
  136. package/types/components/Table/tableUnits/TableHeaderRow.vue.d.ts +0 -19
  137. package/types/components/base/hooks/useGlobalConfig.d.ts +1 -0
  138. package/types/components/locale/default.d.ts +1 -0
  139. package/uxd-ui.css +1 -1
  140. package/uxd-ui.esm.min.mjs +6 -6
  141. package/uxd-ui.esm.mjs +373 -406
  142. package/uxd-ui.umd.js +372 -405
  143. package/uxd-ui.umd.min.js +6 -6
@@ -14,14 +14,14 @@ export declare const UCard: {
14
14
  type: BooleanConstructor;
15
15
  default: boolean;
16
16
  };
17
- padding: {
18
- type: NumberConstructor;
19
- default: number;
20
- };
21
17
  title: {
22
18
  type: StringConstructor;
23
19
  default: string;
24
20
  };
21
+ description: {
22
+ type: StringConstructor;
23
+ default: string;
24
+ };
25
25
  icon: {
26
26
  type: import("vue").PropType<import("../..").IconPropType>;
27
27
  };
@@ -30,12 +30,12 @@ export declare const UCard: {
30
30
  default: number;
31
31
  };
32
32
  }>> & Readonly<{}>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, import("vue").PublicProps, {
33
+ description: string;
33
34
  grid: number;
34
35
  title: string;
35
36
  bordered: boolean;
36
37
  disHover: boolean;
37
38
  shadow: boolean;
38
- padding: number;
39
39
  }, true, {}, {}, {
40
40
  URender: {
41
41
  (props: import("../base/Render").RenderProps): import("vue").VNodeChild | import("vue/jsx-runtime").JSX.Element;
@@ -196,14 +196,14 @@ export declare const UCard: {
196
196
  type: BooleanConstructor;
197
197
  default: boolean;
198
198
  };
199
- padding: {
200
- type: NumberConstructor;
201
- default: number;
202
- };
203
199
  title: {
204
200
  type: StringConstructor;
205
201
  default: string;
206
202
  };
203
+ description: {
204
+ type: StringConstructor;
205
+ default: string;
206
+ };
207
207
  icon: {
208
208
  type: import("vue").PropType<import("../..").IconPropType>;
209
209
  };
@@ -212,12 +212,12 @@ export declare const UCard: {
212
212
  default: number;
213
213
  };
214
214
  }>> & Readonly<{}>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, {
215
+ description: string;
215
216
  grid: number;
216
217
  title: string;
217
218
  bordered: boolean;
218
219
  disHover: boolean;
219
220
  shadow: boolean;
220
- padding: number;
221
221
  }>;
222
222
  __isFragment?: never;
223
223
  __isTeleport?: never;
@@ -235,14 +235,14 @@ export declare const UCard: {
235
235
  type: BooleanConstructor;
236
236
  default: boolean;
237
237
  };
238
- padding: {
239
- type: NumberConstructor;
240
- default: number;
241
- };
242
238
  title: {
243
239
  type: StringConstructor;
244
240
  default: string;
245
241
  };
242
+ description: {
243
+ type: StringConstructor;
244
+ default: string;
245
+ };
246
246
  icon: {
247
247
  type: import("vue").PropType<import("../..").IconPropType>;
248
248
  };
@@ -251,12 +251,12 @@ export declare const UCard: {
251
251
  default: number;
252
252
  };
253
253
  }>> & Readonly<{}>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, {
254
+ description: string;
254
255
  grid: number;
255
256
  title: string;
256
257
  bordered: boolean;
257
258
  disHover: boolean;
258
259
  shadow: boolean;
259
- padding: number;
260
260
  }, {}, string, {}, {
261
261
  URender: {
262
262
  (props: import("../base/Render").RenderProps): import("vue").VNodeChild | import("vue/jsx-runtime").JSX.Element;
@@ -224,13 +224,12 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
224
224
  "disabled-date": _ctx.disabledDate,
225
225
  "disabled-time": _ctx.disabledTime,
226
226
  "time-options": _ctx.timeOptions,
227
- "show-confirm": _ctx.showConfirm,
228
227
  shortcuts: _ctx.shortcuts,
229
228
  "show-time-clear": _ctx.showTimeClear,
230
229
  direction: _ctx.computedDirection,
231
230
  onSelect: _ctx.onSelected,
232
231
  onPanelChange: _ctx.onPanelChange
233
- }, null, 8, ["prefix-cls", "locale", "value", "open", "mode", "disabled-date", "disabled-time", "time-options", "show-confirm", "shortcuts", "show-time-clear", "direction", "onSelect", "onPanelChange"])) : (vue.openBlock(), vue.createBlock(_component_DateRangePanel, {
232
+ }, null, 8, ["prefix-cls", "locale", "value", "open", "mode", "disabled-date", "disabled-time", "time-options", "shortcuts", "show-time-clear", "direction", "onSelect", "onPanelChange"])) : (vue.openBlock(), vue.createBlock(_component_DateRangePanel, {
234
233
  key: 1,
235
234
  ref: "panelRef",
236
235
  "prefix-cls": _ctx.prefixCls,
@@ -241,7 +240,6 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
241
240
  "disabled-time": _ctx.disabledTime,
242
241
  "time-options": _ctx.timeOptions,
243
242
  "default-time": _ctx.defaultTime,
244
- "show-confirm": _ctx.showConfirm,
245
243
  mode: _ctx.singeType,
246
244
  shortcuts: _ctx.shortcuts,
247
245
  "limit-duration": _ctx.limitDuration,
@@ -249,7 +247,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
249
247
  direction: _ctx.computedDirection,
250
248
  onSelect: _ctx.onSelected,
251
249
  onPanelChange: _ctx.onPanelChange
252
- }, null, 8, ["prefix-cls", "locale", "value", "open", "disabled-date", "disabled-time", "time-options", "default-time", "show-confirm", "mode", "shortcuts", "limit-duration", "show-time-clear", "direction", "onSelect", "onPanelChange"]))
250
+ }, null, 8, ["prefix-cls", "locale", "value", "open", "disabled-date", "disabled-time", "time-options", "default-time", "mode", "shortcuts", "limit-duration", "show-time-clear", "direction", "onSelect", "onPanelChange"]))
253
251
  ]),
254
252
  default: vue.withCtx(() => [
255
253
  vue.createElementVNode("div", vue.mergeProps({
@@ -1 +1 @@
1
- {"version":3,"file":"DatePicker.js","sources":["../../../../src/components/DatePicker/DatePicker.vue"],"sourcesContent":["<template>\n <Popup\n :visible=\"stateOpen\"\n :prefix-cls=\"`${prefixCls}-dropdown`\"\n :placement=\"computedPlacement\"\n transition-name=\"slide-up\"\n :popup-class=\"`${dropdownMenuClass || ''}`\"\n :click-outside=\"onClickOutside\"\n :get-popup-container=\"getPopupContainer\"\n :modifiers=\"modifiers\"\n >\n <div\n :class=\"{\n [`${prefixCls}-picker`]: true,\n [`${prefixCls}-picker-variant-${variant}`]: true,\n [`${prefixCls}-picker-disabled`]: disabled,\n [`${prefixCls}-picker-${size}`]: size,\n [`${prefixCls}-picker-open`]: stateOpen,\n [`${prefixCls}-picker-range`]: isRange,\n [`${prefixCls}-picker-clearable`]: showClear,\n [`${prefixCls}-picker-rlt`]: computedDirection === 'rtl'\n }\"\n v-bind=\"$attrs\"\n @click=\"onInputContainerClick\"\n >\n <label\n v-if=\"label\"\n :class=\"{\n [`${prefixCls}-picker-label`]: true,\n [`${prefixCls}-picker-label-colon`]: labelColon,\n [`${prefixCls}-picker-label-required`]: required\n }\"\n >\n {{ label }}\n </label>\n\n <slot :size=\"size\" :mode=\"singeType\" :value=\"(stateValue as any)\" :change=\"onInputChange\" :clear=\"onClear\">\n <DateRangeInput\n v-if=\"isRange\"\n ref=\"inputRef\"\n :prefix-cls=\"prefixCls\"\n :format=\"format\"\n :separator=\"$slots.separator ? $slots.separator : separator\"\n :disabled=\"disabled\"\n :disabled-date=\"disabledDate\"\n :disabled-time=\"disabledTime\"\n :size=\"size\"\n :mode=\"singeType\"\n :locale=\"computedLocale\"\n :placeholder=\"Array.isArray(placeholder) ? placeholder : undefined\"\n :value=\"(stateValue as any)\"\n :limit-duration=\"limitDuration\"\n @change=\"onInputChange\"\n />\n\n <DatePickerInput\n v-else\n ref=\"inputRef\"\n :prefix-cls=\"prefixCls\"\n :format=\"format\"\n :disabled=\"disabled\"\n :disabled-date=\"disabledDate\"\n :disabled-time=\"disabledTime\"\n :size=\"size\"\n :mode=\"singeType\"\n :open=\"stateOpen\"\n :locale=\"computedLocale\"\n :placeholder=\"!Array.isArray(placeholder) ? placeholder : undefined\"\n :value=\"(stateValue as any)\"\n :panel=\"statePanel\"\n @change=\"onInputChange\"\n @focus=\"onInputFocus\"\n @blur=\"onInputBlur\"\n />\n </slot>\n <template v-if=\"!$slots.default\">\n <span v-if=\"showClear\" :class=\"`${prefixCls}-picker-clear`\" @mousedown.prevent @click=\"onClear\">\n <UIcon>\n <component :is=\"clearIcon\" v-if=\"clearIcon\" />\n <CircleX v-else />\n </UIcon>\n </span>\n <span :class=\"`${prefixCls}-picker-icon`\">\n <UIcon>\n <component :is=\"suffixIcon\" v-if=\"suffixIcon\" />\n <Calendar v-else />\n </UIcon>\n </span>\n </template>\n </div>\n <template #popup>\n <DatePickerPanel\n v-if=\"!isRange\"\n ref=\"panelRef\"\n :prefix-cls=\"prefixCls\"\n :locale=\"computedLocale\"\n :value=\"(stateValue as any)\"\n :open=\"stateOpen\"\n :mode=\"singeType\"\n :disabled-date=\"disabledDate\"\n :disabled-time=\"disabledTime\"\n :time-options=\"timeOptions\"\n :show-confirm=\"showConfirm\"\n :shortcuts=\"shortcuts\"\n :show-time-clear=\"showTimeClear\"\n :direction=\"computedDirection\"\n @select=\"onSelected\"\n @panel-change=\"onPanelChange\"\n />\n <DateRangePanel\n v-else\n ref=\"panelRef\"\n :prefix-cls=\"prefixCls\"\n :locale=\"computedLocale\"\n :value=\"(stateValue as any)\"\n :open=\"stateOpen\"\n :disabled-date=\"disabledDate\"\n :disabled-time=\"disabledTime\"\n :time-options=\"timeOptions\"\n :default-time=\"defaultTime\"\n :show-confirm=\"showConfirm\"\n :mode=\"singeType\"\n :shortcuts=\"shortcuts\"\n :limit-duration=\"limitDuration\"\n :show-time-clear=\"showTimeClear\"\n :direction=\"computedDirection\"\n @select=\"onSelected\"\n @panel-change=\"onPanelChange\"\n />\n </template>\n </Popup>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, ref, watch, computed, onMounted, provide, inject, watchEffect } from 'vue';\nimport { CircleX, Calendar } from 'lucide-vue-next';\n\nimport Popup from '@uxd-ui/components/Popup';\nimport UIcon from '@uxd-ui/components/Icon';\n\nimport warning from '../../utils/warn';\nimport useGlobalConfig from '../base/hooks/useGlobalConfig';\nimport DatePickerInput from './Trigger/DatePickerInput.vue';\nimport DateRangeInput from './Trigger/DateRangeInput.vue';\nimport DatePickerPanel from './Panel/DatePickerPanel.vue';\nimport DateRangePanel from './Panel/DateRangePanel.vue';\nimport { FormItemKey } from '../Form';\nimport { datePickerProps, datePickerEmits } from './DatePicker.type';\nimport type { DatePickerSingleValueType, DatePickerValueType, DatePickerSingleType } from './DatePicker.type';\nimport type { FormItemContext } from '../Form/Form.type';\nimport { formatDate } from './hooks/useFormat';\n\nexport default defineComponent({\n name: 'UDatePicker',\n components: {\n Popup,\n UIcon,\n DatePickerInput,\n DateRangeInput,\n DatePickerPanel,\n DateRangePanel,\n CircleX,\n Calendar\n },\n inheritAttrs: false,\n props: datePickerProps,\n emits: datePickerEmits,\n setup(props, { emit }) {\n const { prefixCls, config: globalConfig } = useGlobalConfig('date-picker');\n const inputRef = ref<any | null>(null);\n const panelRef = ref(null);\n\n // ========== computed ==============\n // #region\n const computedLocale = computed(() => {\n return props.locale || globalConfig.locale.datePicker;\n });\n\n const isRange = computed(() => {\n return props.type.indexOf('Range') > 0;\n });\n\n const singeType = computed(() => {\n return (isRange.value ? props.type.replace('Range', '') : props.type) as DatePickerSingleType;\n });\n\n const stateValue = ref<DatePickerValueType>();\n\n const showClear = computed(() => {\n if (props.disabled) {\n return false;\n }\n if (!isRange.value) {\n return props.clearable && stateValue.value !== null;\n }\n return props.clearable && (stateValue.value as DatePickerSingleValueType[]).every((x) => !!x);\n });\n\n const computedDirection = computed<'ltr' | 'rtl'>(() => {\n return props.direction || globalConfig.direction || 'ltr';\n });\n\n const computedPlacement = computed(() => {\n if (props.placement) {\n return props.placement;\n }\n return computedDirection.value === 'rtl' ? 'bottom-end' : 'bottom-start';\n });\n\n // #endregion\n\n // ============ open =================\n // #region\n const stateOpen = ref(props.open);\n const setOpened = (val: boolean, isConfirm = false) => {\n if (props.open === undefined) {\n stateOpen.value = val;\n }\n emit('update:open', val);\n emit('open-change', val);\n if (isConfirm) {\n emit('confirm');\n }\n };\n\n onMounted(() => {\n watch(\n () => props.open,\n (val) => {\n stateOpen.value = val;\n if (val && inputRef.value) {\n (inputRef.value as any).focus();\n }\n }\n );\n });\n\n const onClickOutside = () => {\n setOpened(false);\n };\n\n const onInputContainerClick = () => {\n if (props.disabled) {\n return;\n }\n if (!stateOpen.value) {\n setOpened(true);\n }\n };\n // #endregion\n\n // ========== value ==============\n // #region\n // watch(\n // () => props.modelValue,\n // (val) => {\n // if (val) {\n // if (isRange.value && !Array.isArray(val)) {\n // warning(' modeValue must be array when type is Range');\n // stateValue.value = [null, null];\n // return;\n // }\n // stateValue.value = val;\n // } else {\n // stateValue.value = isRange.value ? [null, null] : null;\n // }\n // },\n // { immediate: true }\n // )\n // FIX 2021-09-22\n watchEffect(() => {\n const val = props.modelValue;\n if (val) {\n if (isRange.value && !Array.isArray(val)) {\n warning(' modeValue must be array when type is Range');\n stateValue.value = [null, null];\n return;\n }\n stateValue.value = val;\n } else {\n stateValue.value = isRange.value ? [null, null] : null;\n }\n });\n\n const { onFieldChange } = inject<FormItemContext>(FormItemKey, {} as FormItemContext);\n const setValue = (val: Date | null | (Date | null)[]) => {\n let rst: DatePickerValueType = val;\n if (props.valueFormat) {\n if (Array.isArray(val)) {\n rst = val.map((x) => formatDate(x, props.valueFormat));\n } else {\n rst = formatDate(val, props.valueFormat);\n }\n }\n\n if (props.modelValue === undefined) {\n stateValue.value = rst;\n }\n\n emit('update:modelValue', rst);\n emit('change', rst);\n if (onFieldChange) {\n onFieldChange(val);\n }\n };\n\n const onSelected = (val: Date | null | (Date | null)[]) => {\n setValue(val);\n if (props.autoClose && !props.type.includes('dateTime')) {\n setOpened(false);\n }\n };\n\n const onClear = () => {\n setValue(isRange.value ? [null, null] : null);\n setOpened(false);\n emit('clear');\n };\n\n // #endregion\n\n // ======= input event ==========\n // #region\n const onInputChange = (value: Date | null | (Date | null)[]) => {\n setValue(value);\n };\n\n const onInputFocus = (e: Event) => {\n // setOpened(true);\n emit('focus', e);\n };\n\n const onInputBlur = (e: Event) => {\n emit('blur', e);\n };\n\n // #endregion\n\n // ======== panel ============\n // #region\n const statePanel = ref();\n const initPanel = props.type.replace('Range', '');\n if (isRange.value) {\n statePanel.value = [initPanel, initPanel];\n } else {\n statePanel.value = initPanel;\n }\n const onPanelChange = (panel: string, side?: string) => {\n if (!side) {\n statePanel.value = panel;\n } else {\n const index = side === 'left' ? 0 : 1;\n statePanel.value = statePanel.value.splice(index, 1, panel);\n }\n };\n // #endregion\n\n provide('datePickerContext', {\n setOpened\n });\n\n return {\n prefixCls,\n panelRef,\n inputRef,\n computedLocale,\n stateOpen,\n computedPlacement,\n computedDirection,\n stateValue,\n statePanel,\n showClear,\n isRange,\n singeType,\n onClear,\n onInputContainerClick,\n onClickOutside,\n onInputChange,\n onInputFocus,\n onInputBlur,\n onSelected,\n onPanelChange\n };\n }\n});\n</script>\n"],"names":["defineComponent","Popup","UIcon","DatePickerInput","DateRangeInput","DatePickerPanel","DateRangePanel","CircleX","Calendar","datePickerProps","datePickerEmits","useGlobalConfig","ref","computed","inject","FormItemKey","formatDate","_createBlock","_withCtx","_createElementVNode","_mergeProps","_createElementBlock","_normalizeClass","_renderSlot","_Fragment","_createVNode","_resolveDynamicComponent"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAwJA,MAAK,YAAaA,oBAAa;AAAA,EAC7B,MAAM;AAAA,EACN,YAAY;AAAA,WACVC;AAAA,WACAC;AAAA,qBACAC;AAAA,oBACAC;AAAA,qBACAC;AAAA,oBACAC;AAAA,aACAC;AAAA,cACAC;AAAA;AACF,EACA,cAAc;AAAA,EACd,OAAOC;AAAA,EACP,OAAOC;AAAA,EACP,MAAM,OAAO,EAAE,QAAQ;UACf,EAAE,WAAW,QAAQ,iBAAiBC,2BAAgB,aAAa;UACnE,WAAWC,QAAgB,IAAI;UAC/B,WAAWA,QAAI,IAAI;UAInB,iBAAiBC,aAAS,MAAM;aAC7B,MAAM,UAAU,aAAa,OAAO;AAAA,KAC5C;UAEK,UAAUA,aAAS,MAAM;aACtB,MAAM,KAAK,QAAQ,OAAO,IAAI;AAAA,KACtC;UAEK,YAAYA,aAAS,MAAM;aACvB,QAAQ,QAAQ,MAAM,KAAK,QAAQ,SAAS,EAAE,IAAI,MAAM;AAAA,KACjE;UAEK,aAAaD;UAEb,YAAYC,aAAS,MAAM;UAC3B,MAAM,UAAU;eACX;AAAA;UAEL,CAAC,QAAQ,OAAO;eACX,MAAM,aAAa,WAAW,UAAU;AAAA;aAE1C,MAAM,aAAc,WAAW,MAAsC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;AAAA,KAC7F;UAEK,oBAAoBA,aAAwB,MAAM;aAC/C,MAAM,aAAa,aAAa,aAAa;AAAA,KACrD;UAEK,oBAAoBA,aAAS,MAAM;UACnC,MAAM,WAAW;eACZ,MAAM;AAAA;aAER,kBAAkB,UAAU,QAAQ,eAAe;AAAA,KAC3D;UAMK,YAAYD,QAAI,MAAM,IAAI;UAC1B,YAAY,CAAC,KAAc,YAAY,UAAU;UACjD,MAAM,SAAS,QAAW;kBAClB,QAAQ;AAAA;WAEf,eAAe,GAAG;WAClB,eAAe,GAAG;UACnB,WAAW;aACR,SAAS;AAAA;AAChB;kBAGQ,MAAM;;QAEZ,MAAM,MAAM;AAAA,QACZ,CAAC,QAAQ;oBACG,QAAQ;cACd,OAAO,SAAS,OAAO;AACxB,qBAAS,MAAc;AAAM;AAChC;AACF;AACF,KACD;UAEK,iBAAiB,MAAM;gBACjB,KAAK;AAAA;UAGX,wBAAwB,MAAM;UAC9B,MAAM,UAAU;;;UAGhB,CAAC,UAAU,OAAO;kBACV,IAAI;AAAA;AAChB;oBAuBU,MAAM;YACV,MAAM,MAAM;UACd,KAAK;YACH,QAAQ,SAAS,CAAC,MAAM,QAAQ,GAAG,GAAG;0BAChC,6CAA6C;qBAC1C,QAAQ,CAAC,MAAM,IAAI;;;mBAGrB,QAAQ;AAAA,aACd;mBACM,QAAQ,QAAQ,QAAQ,CAAC,MAAM,IAAI,IAAI;AAAA;AACpD,KACD;UAEK,EAAE,kBAAkBE,WAAwBC,mBAAa,EAAqB;UAC9E,WAAW,CAAC,QAAuC;UACnD,MAA2B;UAC3B,MAAM,aAAa;YACjB,MAAM,QAAQ,GAAG,GAAG;gBAChB,IAAI,IAAI,CAAC,MAAMC,qBAAW,GAAG,MAAM,WAAW,CAAC;AAAA,eAChD;gBACCA,qBAAW,KAAK,MAAM,WAAW;AAAA;AACzC;UAGE,MAAM,eAAe,QAAW;mBACvB,QAAQ;AAAA;WAGhB,qBAAqB,GAAG;WACxB,UAAU,GAAG;UACd,eAAe;sBACH,GAAG;AAAA;AACnB;UAGI,aAAa,CAAC,QAAuC;eAChD,GAAG;UACR,MAAM,aAAa,CAAC,MAAM,KAAK,SAAS,UAAU,GAAG;kBAC7C,KAAK;AAAA;AACjB;UAGI,UAAU,MAAM;eACX,QAAQ,QAAQ,CAAC,MAAM,IAAI,IAAI,IAAI;gBAClC,KAAK;WACV,OAAO;AAAA;UAOR,gBAAgB,CAAC,UAAyC;eACrD,KAAK;AAAA;UAGV,eAAe,CAAC,MAAa;WAE5B,SAAS,CAAC;AAAA;UAGX,cAAc,CAAC,MAAa;WAC3B,QAAQ,CAAC;AAAA;UAOV,aAAaJ;UACb,YAAY,MAAM,KAAK,QAAQ,SAAS,EAAE;QAC5C,QAAQ,OAAO;iBACN,QAAQ,CAAC,WAAW,SAAS;AAAA,WACnC;iBACM,QAAQ;AAAA;UAEf,gBAAgB,CAAC,OAAe,SAAkB;UAClD,CAAC,MAAM;mBACE,QAAQ;AAAA,aACd;cACC,QAAQ,SAAS,SAAS,IAAI;mBACzB,QAAQ,WAAW,MAAM,OAAO,OAAO,GAAG,KAAK;AAAA;AAC5D;gBAIM,qBAAqB;AAAA,MAC3B;AAAA,KACD;WAEM;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AACF;AAEJ,CAAC;;;;;;;;;;0BA/XCK,gBAiIQ;IAhIL,SAAS;IACT,cAAU,GAAK;IACf,WAAW;IACZ,mBAAgB;AAAA,IACf,eAAW,GAAK,0BAAiB;AAAA,IACjC,iBAAe;IACf,uBAAqB;IACrB,WAAW;;IAiFD,OAAKC,YACd,MAiBE;AAAA,OAhBO,iCADTD,gBAiBE;;QAfA,KAAI;AAAA,QACH,cAAY;QACZ,QAAQ;QACR,OAAQ;QACR,MAAM;QACN,MAAM;QACN,iBAAe;QACf,iBAAe;QACf,gBAAc;QACd,gBAAc;QACd,WAAW;QACX,mBAAiB;QACjB,WAAW;QACX,UAAQ;QACR,eAAc;sOAEjBA,gBAmBE;;QAjBA,KAAI;AAAA,QACH,cAAY;QACZ,QAAQ;QACR,OAAQ;QACR,MAAM;QACN,iBAAe;QACf,iBAAe;QACf,gBAAc;QACd,gBAAc;QACd,gBAAc;QACd,MAAM;QACN,WAAW;QACX,kBAAgB;QAChB,mBAAiB;QACjB,WAAW;QACX,UAAQ;QACR,eAAc;;;yBApHnB,MA8EM;AAAA,MA9ENE,uBA8EM,OA9ENC,eA8EM;AAAA,QA7EH,OAAK;AAAA,cAAgB,0BAAS;AAAA,cAA8B,iCAA4B,iBAAO;AAAA,cAAuB,mCAA8B;cAAsB,yBAAoB,cAAS;cAAkB,+BAA0B;cAAuB,gCAA2B;cAAqB,oCAA+B;cAAuB,8BAAyB,2BAAiB;AAAA;SAUnZ,aAAM;AAAA,QACb,SAAK,uCAAE;;QAGA,+BADRC,uBASQ;;UAPL,OAAKC;gBAAkB,gCAAS;AAAA,gBAAsC,sCAAiC;gBAA0B,yCAAoC;;+BAMnK,UAAK;QAGVC,eAsCO;UAtCA,MAAM;UAAO,MAAM;UAAY,OAAQ;UAAqB,QAAQ;UAAgB,OAAO;WAAlG,MAsCO;AAAA,UApCG,iCADRN,gBAgBE;;YAdA,KAAI;AAAA,YACH,cAAY;YACZ,QAAQ;YACR,WAAW,YAAO,YAAY,YAAO,YAAY;YACjD,UAAU;YACV,iBAAe;YACf,iBAAe;YACf,MAAM;YACN,MAAM;YACN,QAAQ;YACR,aAAa,MAAM,QAAQ,gBAAW,IAAI,mBAAc;AAAA,YACxD,OAAQ;YACR,kBAAgB;YAChB,UAAQ;gNAGXA,gBAkBE;;YAhBA,KAAI;AAAA,YACH,cAAY;YACZ,QAAQ;YACR,UAAU;YACV,iBAAe;YACf,iBAAe;YACf,MAAM;YACN,MAAM;YACN,MAAM;YACN,QAAQ;YACR,aAAW,CAAG,MAAM,QAAQ,gBAAW,IAAI,mBAAc;AAAA,YACzD,OAAQ;YACR,OAAO;YACP,UAAQ;YACR,SAAO;YACP,QAAM;;;SAGM,YAAO,4BAAxBI,uBAaWG;UAZG,mCAAZH,uBAKO;;YALiB,OAAKC,sBAAK,6BAAS;AAAA,YAAkB,aAAS,4CAAV;eAAkB;YAAE,SAAK,uCAAE;;YACrFG,gBAGQ;mCAFN,MAA8C;AAAA,gBAAb,mCAAjCR,gBAA8CS,4BAA9B,cAAS,oCACzBT,gBAAkB;;;;;UAGtBE,uBAKO;YALA,OAAKG,sBAAK,4BAAS;AAAA;YACxBG,gBAGQ;mCAFN,MAAgD;AAAA,gBAAd,oCAAlCR,gBAAgDS,4BAAhC,eAAU,oCAC1BT,gBAAmB;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"DatePicker.js","sources":["../../../../src/components/DatePicker/DatePicker.vue"],"sourcesContent":["<template>\n <Popup\n :visible=\"stateOpen\"\n :prefix-cls=\"`${prefixCls}-dropdown`\"\n :placement=\"computedPlacement\"\n transition-name=\"slide-up\"\n :popup-class=\"`${dropdownMenuClass || ''}`\"\n :click-outside=\"onClickOutside\"\n :get-popup-container=\"getPopupContainer\"\n :modifiers=\"modifiers\"\n >\n <div\n :class=\"{\n [`${prefixCls}-picker`]: true,\n [`${prefixCls}-picker-variant-${variant}`]: true,\n [`${prefixCls}-picker-disabled`]: disabled,\n [`${prefixCls}-picker-${size}`]: size,\n [`${prefixCls}-picker-open`]: stateOpen,\n [`${prefixCls}-picker-range`]: isRange,\n [`${prefixCls}-picker-clearable`]: showClear,\n [`${prefixCls}-picker-rlt`]: computedDirection === 'rtl'\n }\"\n v-bind=\"$attrs\"\n @click=\"onInputContainerClick\"\n >\n <label\n v-if=\"label\"\n :class=\"{\n [`${prefixCls}-picker-label`]: true,\n [`${prefixCls}-picker-label-colon`]: labelColon,\n [`${prefixCls}-picker-label-required`]: required\n }\"\n >\n {{ label }}\n </label>\n\n <slot :size=\"size\" :mode=\"singeType\" :value=\"(stateValue as any)\" :change=\"onInputChange\" :clear=\"onClear\">\n <DateRangeInput\n v-if=\"isRange\"\n ref=\"inputRef\"\n :prefix-cls=\"prefixCls\"\n :format=\"format\"\n :separator=\"$slots.separator ? $slots.separator : separator\"\n :disabled=\"disabled\"\n :disabled-date=\"disabledDate\"\n :disabled-time=\"disabledTime\"\n :size=\"size\"\n :mode=\"singeType\"\n :locale=\"computedLocale\"\n :placeholder=\"Array.isArray(placeholder) ? placeholder : undefined\"\n :value=\"(stateValue as any)\"\n :limit-duration=\"limitDuration\"\n @change=\"onInputChange\"\n />\n\n <DatePickerInput\n v-else\n ref=\"inputRef\"\n :prefix-cls=\"prefixCls\"\n :format=\"format\"\n :disabled=\"disabled\"\n :disabled-date=\"disabledDate\"\n :disabled-time=\"disabledTime\"\n :size=\"size\"\n :mode=\"singeType\"\n :open=\"stateOpen\"\n :locale=\"computedLocale\"\n :placeholder=\"!Array.isArray(placeholder) ? placeholder : undefined\"\n :value=\"(stateValue as any)\"\n :panel=\"statePanel\"\n @change=\"onInputChange\"\n @focus=\"onInputFocus\"\n @blur=\"onInputBlur\"\n />\n </slot>\n <template v-if=\"!$slots.default\">\n <span v-if=\"showClear\" :class=\"`${prefixCls}-picker-clear`\" @mousedown.prevent @click=\"onClear\">\n <UIcon>\n <component :is=\"clearIcon\" v-if=\"clearIcon\" />\n <CircleX v-else />\n </UIcon>\n </span>\n <span :class=\"`${prefixCls}-picker-icon`\">\n <UIcon>\n <component :is=\"suffixIcon\" v-if=\"suffixIcon\" />\n <Calendar v-else />\n </UIcon>\n </span>\n </template>\n </div>\n <template #popup>\n <DatePickerPanel\n v-if=\"!isRange\"\n ref=\"panelRef\"\n :prefix-cls=\"prefixCls\"\n :locale=\"computedLocale\"\n :value=\"(stateValue as any)\"\n :open=\"stateOpen\"\n :mode=\"singeType\"\n :disabled-date=\"disabledDate\"\n :disabled-time=\"disabledTime\"\n :time-options=\"timeOptions\"\n :shortcuts=\"shortcuts\"\n :show-time-clear=\"showTimeClear\"\n :direction=\"computedDirection\"\n @select=\"onSelected\"\n @panel-change=\"onPanelChange\"\n />\n <DateRangePanel\n v-else\n ref=\"panelRef\"\n :prefix-cls=\"prefixCls\"\n :locale=\"computedLocale\"\n :value=\"(stateValue as any)\"\n :open=\"stateOpen\"\n :disabled-date=\"disabledDate\"\n :disabled-time=\"disabledTime\"\n :time-options=\"timeOptions\"\n :default-time=\"defaultTime\"\n :mode=\"singeType\"\n :shortcuts=\"shortcuts\"\n :limit-duration=\"limitDuration\"\n :show-time-clear=\"showTimeClear\"\n :direction=\"computedDirection\"\n @select=\"onSelected\"\n @panel-change=\"onPanelChange\"\n />\n </template>\n </Popup>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, ref, watch, computed, onMounted, provide, inject, watchEffect } from 'vue';\nimport { CircleX, Calendar } from 'lucide-vue-next';\n\nimport Popup from '@uxd-ui/components/Popup';\nimport UIcon from '@uxd-ui/components/Icon';\n\nimport warning from '../../utils/warn';\nimport useGlobalConfig from '../base/hooks/useGlobalConfig';\nimport DatePickerInput from './Trigger/DatePickerInput.vue';\nimport DateRangeInput from './Trigger/DateRangeInput.vue';\nimport DatePickerPanel from './Panel/DatePickerPanel.vue';\nimport DateRangePanel from './Panel/DateRangePanel.vue';\nimport { FormItemKey } from '../Form';\nimport { datePickerProps, datePickerEmits } from './DatePicker.type';\nimport type { DatePickerSingleValueType, DatePickerValueType, DatePickerSingleType } from './DatePicker.type';\nimport type { FormItemContext } from '../Form/Form.type';\nimport { formatDate } from './hooks/useFormat';\n\nexport default defineComponent({\n name: 'UDatePicker',\n components: {\n Popup,\n UIcon,\n DatePickerInput,\n DateRangeInput,\n DatePickerPanel,\n DateRangePanel,\n CircleX,\n Calendar\n },\n inheritAttrs: false,\n props: datePickerProps,\n emits: datePickerEmits,\n setup(props, { emit }) {\n const { prefixCls, config: globalConfig } = useGlobalConfig('date-picker');\n const inputRef = ref<any | null>(null);\n const panelRef = ref(null);\n\n // ========== computed ==============\n // #region\n const computedLocale = computed(() => {\n return props.locale || globalConfig.locale.datePicker;\n });\n\n const isRange = computed(() => {\n return props.type.indexOf('Range') > 0;\n });\n\n const singeType = computed(() => {\n return (isRange.value ? props.type.replace('Range', '') : props.type) as DatePickerSingleType;\n });\n\n const stateValue = ref<DatePickerValueType>();\n\n const showClear = computed(() => {\n if (props.disabled) {\n return false;\n }\n if (!isRange.value) {\n return props.clearable && stateValue.value !== null;\n }\n return props.clearable && (stateValue.value as DatePickerSingleValueType[]).every((x) => !!x);\n });\n\n const computedDirection = computed<'ltr' | 'rtl'>(() => {\n return props.direction || globalConfig.direction || 'ltr';\n });\n\n const computedPlacement = computed(() => {\n if (props.placement) {\n return props.placement;\n }\n return computedDirection.value === 'rtl' ? 'bottom-end' : 'bottom-start';\n });\n\n // #endregion\n\n // ============ open =================\n // #region\n const stateOpen = ref(props.open);\n const setOpened = (val: boolean, isConfirm = false) => {\n if (props.open === undefined) {\n stateOpen.value = val;\n }\n emit('update:open', val);\n emit('open-change', val);\n if (isConfirm) {\n emit('confirm');\n }\n };\n\n onMounted(() => {\n watch(\n () => props.open,\n (val) => {\n stateOpen.value = val;\n if (val && inputRef.value) {\n (inputRef.value as any).focus();\n }\n }\n );\n });\n\n const onClickOutside = () => {\n setOpened(false);\n };\n\n const onInputContainerClick = () => {\n if (props.disabled) {\n return;\n }\n if (!stateOpen.value) {\n setOpened(true);\n }\n };\n // #endregion\n\n // ========== value ==============\n // #region\n // watch(\n // () => props.modelValue,\n // (val) => {\n // if (val) {\n // if (isRange.value && !Array.isArray(val)) {\n // warning(' modeValue must be array when type is Range');\n // stateValue.value = [null, null];\n // return;\n // }\n // stateValue.value = val;\n // } else {\n // stateValue.value = isRange.value ? [null, null] : null;\n // }\n // },\n // { immediate: true }\n // )\n // FIX 2021-09-22\n watchEffect(() => {\n const val = props.modelValue;\n if (val) {\n if (isRange.value && !Array.isArray(val)) {\n warning(' modeValue must be array when type is Range');\n stateValue.value = [null, null];\n return;\n }\n stateValue.value = val;\n } else {\n stateValue.value = isRange.value ? [null, null] : null;\n }\n });\n\n const { onFieldChange } = inject<FormItemContext>(FormItemKey, {} as FormItemContext);\n const setValue = (val: Date | null | (Date | null)[]) => {\n let rst: DatePickerValueType = val;\n if (props.valueFormat) {\n if (Array.isArray(val)) {\n rst = val.map((x) => formatDate(x, props.valueFormat));\n } else {\n rst = formatDate(val, props.valueFormat);\n }\n }\n\n if (props.modelValue === undefined) {\n stateValue.value = rst;\n }\n\n emit('update:modelValue', rst);\n emit('change', rst);\n if (onFieldChange) {\n onFieldChange(val);\n }\n };\n\n const onSelected = (val: Date | null | (Date | null)[]) => {\n setValue(val);\n if (props.autoClose && !props.type.includes('dateTime')) {\n setOpened(false);\n }\n };\n\n const onClear = () => {\n setValue(isRange.value ? [null, null] : null);\n setOpened(false);\n emit('clear');\n };\n\n // #endregion\n\n // ======= input event ==========\n // #region\n const onInputChange = (value: Date | null | (Date | null)[]) => {\n setValue(value);\n };\n\n const onInputFocus = (e: Event) => {\n // setOpened(true);\n emit('focus', e);\n };\n\n const onInputBlur = (e: Event) => {\n emit('blur', e);\n };\n\n // #endregion\n\n // ======== panel ============\n // #region\n const statePanel = ref();\n const initPanel = props.type.replace('Range', '');\n if (isRange.value) {\n statePanel.value = [initPanel, initPanel];\n } else {\n statePanel.value = initPanel;\n }\n const onPanelChange = (panel: string, side?: string) => {\n if (!side) {\n statePanel.value = panel;\n } else {\n const index = side === 'left' ? 0 : 1;\n statePanel.value = statePanel.value.splice(index, 1, panel);\n }\n };\n // #endregion\n\n provide('datePickerContext', {\n setOpened\n });\n\n return {\n prefixCls,\n panelRef,\n inputRef,\n computedLocale,\n stateOpen,\n computedPlacement,\n computedDirection,\n stateValue,\n statePanel,\n showClear,\n isRange,\n singeType,\n onClear,\n onInputContainerClick,\n onClickOutside,\n onInputChange,\n onInputFocus,\n onInputBlur,\n onSelected,\n onPanelChange\n };\n }\n});\n</script>\n"],"names":["defineComponent","Popup","UIcon","DatePickerInput","DateRangeInput","DatePickerPanel","DateRangePanel","CircleX","Calendar","datePickerProps","datePickerEmits","useGlobalConfig","ref","computed","inject","FormItemKey","formatDate","_createBlock","_withCtx","_createElementVNode","_mergeProps","_createElementBlock","_normalizeClass","_renderSlot","_Fragment","_createVNode","_resolveDynamicComponent"],"mappings":"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"}
@@ -226,6 +226,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
226
226
  options: _ctx.shortcuts.map((shortcut) => ({ label: shortcut.text, value: shortcut.text, func: shortcut.value })),
227
227
  placeholder: _ctx.locale.shortcutsPlaceholder,
228
228
  onChange: _cache[1] || (_cache[1] = (value, option) => _ctx.onShortcutClick({
229
+ text: value,
229
230
  value: option.func
230
231
  }))
231
232
  }, null, 8, ["modelValue", "options", "placeholder"])
@@ -1 +1 @@
1
- {"version":3,"file":"DatePickerPanel.js","sources":["../../../../../src/components/DatePicker/Panel/DatePickerPanel.vue"],"sourcesContent":["<template>\n <div\n :class=\"[\n prefixCls,\n {\n [`${prefixCls}-time`]: showTime,\n [`${prefixCls}-week`]: weekMode,\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }\n ]\"\n >\n <div v-if=\"shortcuts\" :class=\"`${prefixCls}-shortcut-container`\">\n <!-- <a v-for=\"(shortcut, index) in shortcuts\" :key=\"index\" :class=\"`${prefixCls}-shortcut-item`\" @click=\"onShortcutClick(shortcut)\">\n {{ shortcut.text }}\n </a> -->\n <USelect\n v-model=\"selectedShortcut\"\n size=\"small\"\n :options=\"shortcuts.map((shortcut: any) => ({ label: shortcut.text, value: shortcut.text, func: shortcut.value }))\"\n :placeholder=\"locale.shortcutsPlaceholder\"\n @change=\"(value: any, option: any) => onShortcutClick({\n value: option.func\n })\"\n />\n </div>\n <div>\n <DatePanel\n v-if=\"statePanel !== 'quarter'\"\n :prefix-cls=\"prefixCls\"\n :locale=\"locale\"\n :current-date=\"currentDate\"\n :selected-date=\"selectedDate\"\n :has-time-picker=\"showTime\"\n :show-time-picker=\"showTimePicker\"\n :week-mode=\"weekMode\"\n :time-options=\"timeOptions\"\n :disabled-date=\"disabledDate\"\n :disabled-time=\"disabledTime\"\n @current-change=\"onCurrentChange\"\n @selected-change=\"onSelectedChange\"\n @panel-change=\"onPanelChange\"\n />\n <QuarterPanel\n v-if=\"statePanel === 'quarter'\"\n :prefix-cls=\"`${prefixCls}-quarter-panel`\"\n :locale=\"locale\"\n :current-date=\"currentDate\"\n :selected-date=\"selectedDate\"\n :disabled-date=\"disabledDate\"\n @selected-change=\"onSelectedChange\"\n @panel-change=\"onPanelChange\"\n />\n <MonthPanel\n v-if=\"statePanel === 'month'\"\n :prefix-cls=\"`${prefixCls}-month-panel`\"\n :locale=\"locale\"\n :current-date=\"currentDate\"\n :selected-date=\"selectedDate\"\n :disabled-date=\"disabledDate\"\n @selected-change=\"onSelectedChange\"\n @panel-change=\"onPanelChange\"\n />\n <YearPanel\n v-if=\"statePanel === 'year'\"\n :prefix-cls=\"`${prefixCls}-year-panel`\"\n :locale=\"locale\"\n :current-date=\"currentDate\"\n :selected-date=\"selectedDate\"\n :disabled-date=\"disabledDate\"\n @selected-change=\"onSelectedChange\"\n @panel-change=\"onPanelChange\"\n />\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, ref, watch, computed, inject } from 'vue';\nimport type { PropType } from 'vue';\nimport type { Dayjs } from 'dayjs';\nimport dayjs from 'dayjs';\nimport USelect from '@uxd-ui/components/Select';\nimport DatePanel from './DatePanel/DatePanel.vue';\nimport MonthPanel from './MonthPanel/MonthPanel.vue';\nimport YearPanel from './YearPanel/YearPanel.vue';\nimport QuarterPanel from './QuarterPanel';\nimport { getTodayTime, isAllowedDateTime } from '../utils';\nimport type {\n DatePickerContext,\n DatePickerShortcut,\n DatePickerSingleValueType,\n DisabledTimeFunction,\n DatePickerSingleType\n} from '../DatePicker.type';\nimport type { DisabledDateFunction } from '../../Calendar/Calendar.type';\nimport type { DatePickerLocal } from '../../locale/default';\n\nexport default defineComponent({\n name: 'DatePickerPanel',\n components: {\n DatePanel,\n MonthPanel,\n YearPanel,\n QuarterPanel,\n USelect\n },\n props: {\n prefixCls: {\n type: String\n },\n value: {\n type: [String, Date, Object] as PropType<DatePickerSingleValueType>\n },\n mode: {\n type: String as PropType<DatePickerSingleType>,\n default: 'date'\n },\n locale: {\n type: Object as PropType<DatePickerLocal>,\n required: true\n },\n open: {\n type: Boolean,\n default: false\n },\n\n showConfirm: {\n type: Boolean,\n default: false\n },\n timeOptions: {\n type: Object as PropType<Record<string, any>>\n },\n disabledDate: {\n type: Function as PropType<DisabledDateFunction>\n },\n disabledTime: {\n type: Function as PropType<DisabledTimeFunction>\n },\n shortcuts: {\n type: Array as PropType<DatePickerShortcut[]>\n },\n showTimeClear: {\n type: Boolean,\n default: true\n },\n direction: {\n type: String as PropType<'ltr' | 'rtl'>,\n default: 'ltr'\n }\n },\n emits: {\n select: (v: Date | null, close?: boolean) => (v === null || v instanceof Date) && typeof close === 'boolean',\n close: () => true,\n 'panel-change': (p: string) => typeof p === 'string'\n },\n setup(props, { emit }) {\n const currentDate = ref(dayjs());\n const selectedDate = ref<Dayjs | null>(null);\n const statePanel = ref(props.mode);\n const selectedShortcut = ref<string>('');\n const { setOpened } = inject<DatePickerContext>('datePickerContext', {} as DatePickerContext);\n\n watch(\n () => props.value,\n (val) => {\n selectedDate.value = val ? dayjs(val) : null;\n currentDate.value = val ? dayjs(val) : dayjs().startOf('day');\n },\n { immediate: true }\n );\n\n const showTime = computed(() => {\n return props.mode === 'dateTime';\n });\n\n const weekMode = computed(() => {\n return props.mode === 'week';\n });\n\n const onCurrentChange = (date: Dayjs) => {\n currentDate.value = date;\n };\n\n const fireChangePanel = (panel: DatePickerSingleType) => {\n statePanel.value = panel;\n emit('panel-change', panel);\n };\n\n const onPanelChange = (panel: DatePickerSingleType) => {\n fireChangePanel(panel);\n };\n\n const showTimePicker = computed(() => {\n return props.mode === 'dateTime' && statePanel.value === 'dateTime';\n });\n\n const onSelectedChange = ({ type, value }: { type: string; value: any }) => {\n if (type === 'date' || type === 'time') {\n emit('select', value.toDate());\n } else if (type === 'month') {\n if (props.mode !== 'month') {\n currentDate.value = value;\n fireChangePanel(props.mode === 'dateTime' ? 'dateTime' : 'date');\n } else {\n emit('select', value.startOf('month').toDate());\n }\n } else if (type === 'year') {\n if (props.mode === 'quarter') {\n currentDate.value = currentDate.value.year(value);\n fireChangePanel('quarter');\n } else if (props.mode !== 'year') {\n currentDate.value = currentDate.value.year(value);\n fireChangePanel('month');\n } else {\n const date = dayjs().year(value).startOf('year');\n emit('select', date.toDate());\n }\n } else if (type === 'quarter') {\n // const date = dayjs().quarter(value).startOf('quarter');\n emit('select', value.startOf('quarter').toDate());\n }\n };\n\n watch(\n () => props.open,\n (val) => {\n selectedShortcut.value = '';\n if (val) {\n currentDate.value = props.value ? dayjs(props.value) : dayjs().startOf('day');\n fireChangePanel(props.mode || 'date');\n }\n }\n );\n\n // ============ footer btn =================\n\n // const onToggleTime = () => {\n // if (selectedDate.value) {\n // showTimePicker.value = !showTimePicker.value;\n // }\n // };\n const disabledToday = computed(() => {\n const today = getTodayTime();\n if (props.disabledDate && props.disabledDate(today.toDate())) {\n return true;\n }\n return false;\n });\n\n const okDisabled = computed(() => {\n if (!selectedDate.value) {\n return true;\n }\n return !isAllowedDateTime(selectedDate.value, props.disabledDate, props.disabledTime);\n });\n\n const onSelectToday = () => {\n onSelectedChange({ type: 'date', value: getTodayTime() });\n };\n\n const onOk = () => {\n if (!okDisabled.value) {\n setOpened(false);\n }\n };\n\n const onClear = () => {\n if (!okDisabled.value) {\n emit('select', null, false);\n }\n };\n\n const onShortcutClick = (shortcut: DatePickerShortcut) => {\n if (typeof shortcut.value === 'function') {\n const date = shortcut.value();\n\n onSelectedChange({\n type: 'date',\n value: dayjs((date as DatePickerSingleValueType) || undefined)\n });\n }\n };\n\n return {\n currentDate,\n selectedDate,\n selectedShortcut,\n statePanel,\n showTime,\n weekMode,\n showTimePicker,\n disabledToday,\n okDisabled,\n onSelectToday,\n onOk,\n onClear,\n // onToggleTime,\n onCurrentChange,\n onPanelChange,\n onSelectedChange,\n onShortcutClick\n };\n }\n});\n</script>\n"],"names":["defineComponent","DatePanel","MonthPanel","YearPanel","QuarterPanel","USelect","ref","dayjs","inject","computed","getTodayTime","isAllowedDateTime","_createElementBlock","_normalizeClass","_createCommentVNode","_createVNode","_createElementVNode","_createBlock"],"mappings":";;;;;;;;;;;;;;;;;;;AAiGA,MAAK,YAAaA,oBAAa;AAAA,EAC7B,MAAM;AAAA,EACN,YAAY;AAAA,eACVC;AAAA,gBACAC;AAAA,eACAC;AAAA,kBACAC;AAAA,aACAC;AAAA;AACF,EACA,OAAO;AAAA,IACL,WAAW;AAAA,MACT,MAAM;AAAA;AACR,IACA,OAAO;AAAA,MACL,MAAM,CAAC,QAAQ,MAAM,MAAM;AAAA;AAC7B,IACA,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,SAAS;AAAA;AACX,IACA,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,UAAU;AAAA;AACZ,IACA,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,SAAS;AAAA;AACX,IAEA,aAAa;AAAA,MACX,MAAM;AAAA,MACN,SAAS;AAAA;AACX,IACA,aAAa;AAAA,MACX,MAAM;AAAA;AACR,IACA,cAAc;AAAA,MACZ,MAAM;AAAA;AACR,IACA,cAAc;AAAA,MACZ,MAAM;AAAA;AACR,IACA,WAAW;AAAA,MACT,MAAM;AAAA;AACR,IACA,eAAe;AAAA,MACb,MAAM;AAAA,MACN,SAAS;AAAA;AACX,IACA,WAAW;AAAA,MACT,MAAM;AAAA,MACN,SAAS;AAAA;AACX;AACF,EACA,OAAO;AAAA,IACL,QAAQ,CAAC,GAAgB,WAAqB,MAAM,QAAQ,aAAa,SAAS,OAAO,UAAU;AAAA,IACnG,OAAO,MAAM;AAAA,IACb,gBAAgB,CAAC,MAAc,OAAO,MAAM;AAAA;AAC9C,EACA,MAAM,OAAO,EAAE,QAAQ;UACf,cAAcC,QAAIC,2BAAO;UACzB,eAAeD,QAAkB,IAAI;UACrC,aAAaA,QAAI,MAAM,IAAI;UAC3B,mBAAmBA,QAAY,EAAE;UACjC,EAAE,cAAcE,WAA0B,qBAAqB,EAAuB;;MAG1F,MAAM,MAAM;AAAA,MACZ,CAAC,QAAQ;qBACM,QAAQ,MAAMD,0BAAM,GAAG,IAAI;oBAC5B,QAAQ,MAAMA,0BAAM,GAAG,IAAIA,4BAAQ,QAAQ,KAAK;AAAA;AAC9D,MACA,EAAE,WAAW;AAAK;UAGd,WAAWE,aAAS,MAAM;aACvB,MAAM,SAAS;AAAA,KACvB;UAEK,WAAWA,aAAS,MAAM;aACvB,MAAM,SAAS;AAAA,KACvB;UAEK,kBAAkB,CAAC,SAAgB;kBAC3B,QAAQ;AAAA;UAGhB,kBAAkB,CAAC,UAAgC;iBAC5C,QAAQ;WACd,gBAAgB,KAAK;AAAA;UAGtB,gBAAgB,CAAC,UAAgC;sBACrC,KAAK;AAAA;UAGjB,iBAAiBA,aAAS,MAAM;aAC7B,MAAM,SAAS,cAAc,WAAW,UAAU;AAAA,KAC1D;UAEK,mBAAmB,CAAC,EAAE,MAAM,YAA0C;UACtE,SAAS,UAAU,SAAS,QAAQ;aACjC,UAAU,MAAM,QAAQ;AAAA,iBACpB,SAAS,SAAS;YACvB,MAAM,SAAS,SAAS;sBACd,QAAQ;0BACJ,MAAM,SAAS,aAAa,aAAa,MAAM;AAAA,eAC1D;eACA,UAAU,MAAM,QAAQ,OAAO,EAAE,QAAQ;AAAA;AAChD,iBACS,SAAS,QAAQ;YACtB,MAAM,SAAS,WAAW;sBAChB,QAAQ,YAAY,MAAM,KAAK,KAAK;0BAChC,SAAS;AAAA,mBAChB,MAAM,SAAS,QAAQ;sBACpB,QAAQ,YAAY,MAAM,KAAK,KAAK;0BAChC,OAAO;AAAA,eAClB;gBACC,OAAOF,4BAAQ,KAAK,KAAK,EAAE,QAAQ,MAAM;eAC1C,UAAU,KAAK,QAAQ;AAAA;AAC9B,iBACS,SAAS,WAAW;aAExB,UAAU,MAAM,QAAQ,SAAS,EAAE,QAAQ;AAAA;AAClD;;MAIA,MAAM,MAAM;AAAA,MACZ,CAAC,QAAQ;yBACU,QAAQ;YACrB,KAAK;sBACK,QAAQ,MAAM,QAAQA,0BAAM,MAAM,KAAK,IAAIA,4BAAQ,QAAQ,KAAK;0BAC5D,MAAM,QAAQ,MAAM;AAAA;AACtC;AACF;UAUI,gBAAgBE,aAAS,MAAM;YAC7B,QAAQC;UACV,MAAM,gBAAgB,MAAM,aAAa,MAAM,QAAQ,GAAG;eACrD;AAAA;aAEF;AAAA,KACR;UAEK,aAAaD,aAAS,MAAM;UAC5B,CAAC,aAAa,OAAO;eAChB;AAAA;aAEF,CAACE,wBAAkB,aAAa,OAAO,MAAM,cAAc,MAAM,YAAY;AAAA,KACrF;UAEK,gBAAgB,MAAM;uBACT,EAAE,MAAM,QAAQ,OAAOD,sBAAgB;AAAA;UAGpD,OAAO,MAAM;UACb,CAAC,WAAW,OAAO;kBACX,KAAK;AAAA;AACjB;UAGI,UAAU,MAAM;UAChB,CAAC,WAAW,OAAO;aAChB,UAAU,MAAM,KAAK;AAAA;AAC5B;UAGI,kBAAkB,CAAC,aAAiC;UACpD,OAAO,SAAS,UAAU,YAAY;cAClC,OAAO,SAAS;yBAEL;AAAA,UACf,MAAM;AAAA,UACN,OAAOH,0BAAO,QAAsC,MAAS;AAAA,SAC9D;AAAA;AACH;WAGK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MAEA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AACF;AAEJ,CAAC;;;;;;;0BA/SCK,uBAwEM;IAvEH,OAAKC;MAAU;;YAA+B,wBAAmB;YAAsB,wBAAmB;YAAsB,uBAAkB,mBAAS;AAAA;;;IASjJ,mCAAXD,uBAaM;;MAbiB,OAAKC,sBAAK,mCAAS;AAAA;MACxCC;MAGAC,gBAQE;oBAPS;6FAAgB;AAAA,QACzB,MAAK;AAAA,QACJ,SAAS,eAAU,IAAG,CAAE,cAAa,SAAe,SAAS,MAAI,OAAS,SAAS,MAAI,MAAQ,SAAS;QACxG,aAAa,YAAO;AAAA,QACpB,UAAM,2BAAG,OAAY,WAAgB,qBAAe;AAAA,iBAAoB,OAAO;AAAA;;;IAKpFC,uBA+CM;MA7CI,oBAAU,8BADlBC,gBAeE;;QAbC,cAAY;QACZ,QAAQ;QACR,gBAAc;QACd,iBAAe;QACf,mBAAiB;QACjB,oBAAkB;QAClB,aAAW;QACX,gBAAc;QACd,iBAAe;QACf,iBAAe;QACf,iBAAgB;QAChB,kBAAiB;QACjB,eAAc;;MAGT,oBAAU,8BADlBA,gBASE;;QAPC,cAAU,GAAK;QACf,QAAQ;QACR,gBAAc;QACd,iBAAe;QACf,iBAAe;QACf,kBAAiB;QACjB,eAAc;;MAGT,oBAAU,4BADlBA,gBASE;;QAPC,cAAU,GAAK;QACf,QAAQ;QACR,gBAAc;QACd,iBAAe;QACf,iBAAe;QACf,kBAAiB;QACjB,eAAc;;MAGT,oBAAU,2BADlBA,gBASE;;QAPC,cAAU,GAAK;QACf,QAAQ;QACR,gBAAc;QACd,iBAAe;QACf,iBAAe;QACf,kBAAiB;QACjB,eAAc;;;;;;;;;"}
1
+ {"version":3,"file":"DatePickerPanel.js","sources":["../../../../../src/components/DatePicker/Panel/DatePickerPanel.vue"],"sourcesContent":["<template>\n <div\n :class=\"[\n prefixCls,\n {\n [`${prefixCls}-time`]: showTime,\n [`${prefixCls}-week`]: weekMode,\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }\n ]\"\n >\n <div v-if=\"shortcuts\" :class=\"`${prefixCls}-shortcut-container`\">\n <!-- <a v-for=\"(shortcut, index) in shortcuts\" :key=\"index\" :class=\"`${prefixCls}-shortcut-item`\" @click=\"onShortcutClick(shortcut)\">\n {{ shortcut.text }}\n </a> -->\n <USelect\n v-model=\"selectedShortcut\"\n size=\"small\"\n :options=\"shortcuts.map((shortcut: any) => ({ label: shortcut.text, value: shortcut.text, func: shortcut.value }))\"\n :placeholder=\"locale.shortcutsPlaceholder\"\n @change=\"(value: any, option: any) => onShortcutClick({\n text: value,\n value: option.func\n })\"\n />\n </div>\n <div>\n <DatePanel\n v-if=\"statePanel !== 'quarter'\"\n :prefix-cls=\"prefixCls\"\n :locale=\"locale\"\n :current-date=\"currentDate\"\n :selected-date=\"selectedDate\"\n :has-time-picker=\"showTime\"\n :show-time-picker=\"showTimePicker\"\n :week-mode=\"weekMode\"\n :time-options=\"timeOptions\"\n :disabled-date=\"disabledDate\"\n :disabled-time=\"disabledTime\"\n @current-change=\"onCurrentChange\"\n @selected-change=\"onSelectedChange\"\n @panel-change=\"onPanelChange\"\n />\n <QuarterPanel\n v-if=\"statePanel === 'quarter'\"\n :prefix-cls=\"`${prefixCls}-quarter-panel`\"\n :locale=\"locale\"\n :current-date=\"currentDate\"\n :selected-date=\"selectedDate\"\n :disabled-date=\"disabledDate\"\n @selected-change=\"onSelectedChange\"\n @panel-change=\"onPanelChange\"\n />\n <MonthPanel\n v-if=\"statePanel === 'month'\"\n :prefix-cls=\"`${prefixCls}-month-panel`\"\n :locale=\"locale\"\n :current-date=\"currentDate\"\n :selected-date=\"selectedDate\"\n :disabled-date=\"disabledDate\"\n @selected-change=\"onSelectedChange\"\n @panel-change=\"onPanelChange\"\n />\n <YearPanel\n v-if=\"statePanel === 'year'\"\n :prefix-cls=\"`${prefixCls}-year-panel`\"\n :locale=\"locale\"\n :current-date=\"currentDate\"\n :selected-date=\"selectedDate\"\n :disabled-date=\"disabledDate\"\n @selected-change=\"onSelectedChange\"\n @panel-change=\"onPanelChange\"\n />\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, ref, watch, computed, inject } from 'vue';\nimport type { PropType } from 'vue';\nimport type { Dayjs } from 'dayjs';\nimport dayjs from 'dayjs';\nimport USelect from '@uxd-ui/components/Select';\nimport DatePanel from './DatePanel/DatePanel.vue';\nimport MonthPanel from './MonthPanel/MonthPanel.vue';\nimport YearPanel from './YearPanel/YearPanel.vue';\nimport QuarterPanel from './QuarterPanel';\nimport { getTodayTime, isAllowedDateTime } from '../utils';\nimport type {\n DatePickerContext,\n DatePickerShortcut,\n DatePickerSingleValueType,\n DisabledTimeFunction,\n DatePickerSingleType\n} from '../DatePicker.type';\nimport type { DisabledDateFunction } from '../../Calendar/Calendar.type';\nimport type { DatePickerLocal } from '../../locale/default';\n\nexport default defineComponent({\n name: 'DatePickerPanel',\n components: {\n DatePanel,\n MonthPanel,\n YearPanel,\n QuarterPanel,\n USelect\n },\n props: {\n prefixCls: {\n type: String\n },\n value: {\n type: [String, Date, Object] as PropType<DatePickerSingleValueType>\n },\n mode: {\n type: String as PropType<DatePickerSingleType>,\n default: 'date'\n },\n locale: {\n type: Object as PropType<DatePickerLocal>,\n required: true\n },\n open: {\n type: Boolean,\n default: false\n },\n\n showConfirm: {\n type: Boolean,\n default: false\n },\n timeOptions: {\n type: Object as PropType<Record<string, any>>\n },\n disabledDate: {\n type: Function as PropType<DisabledDateFunction>\n },\n disabledTime: {\n type: Function as PropType<DisabledTimeFunction>\n },\n shortcuts: {\n type: Array as PropType<DatePickerShortcut[]>\n },\n showTimeClear: {\n type: Boolean,\n default: true\n },\n direction: {\n type: String as PropType<'ltr' | 'rtl'>,\n default: 'ltr'\n }\n },\n emits: {\n select: (v: Date | null, close?: boolean) => (v === null || v instanceof Date) && typeof close === 'boolean',\n close: () => true,\n 'panel-change': (p: string) => typeof p === 'string'\n },\n setup(props, { emit }) {\n const currentDate = ref(dayjs());\n const selectedDate = ref<Dayjs | null>(null);\n const statePanel = ref(props.mode);\n const selectedShortcut = ref<string>('');\n const { setOpened } = inject<DatePickerContext>('datePickerContext', {} as DatePickerContext);\n\n watch(\n () => props.value,\n (val) => {\n selectedDate.value = val ? dayjs(val) : null;\n currentDate.value = val ? dayjs(val) : dayjs().startOf('day');\n },\n { immediate: true }\n );\n\n const showTime = computed(() => {\n return props.mode === 'dateTime';\n });\n\n const weekMode = computed(() => {\n return props.mode === 'week';\n });\n\n const onCurrentChange = (date: Dayjs) => {\n currentDate.value = date;\n };\n\n const fireChangePanel = (panel: DatePickerSingleType) => {\n statePanel.value = panel;\n emit('panel-change', panel);\n };\n\n const onPanelChange = (panel: DatePickerSingleType) => {\n fireChangePanel(panel);\n };\n\n const showTimePicker = computed(() => {\n return props.mode === 'dateTime' && statePanel.value === 'dateTime';\n });\n\n const onSelectedChange = ({ type, value }: { type: string; value: any }) => {\n if (type === 'date' || type === 'time') {\n emit('select', value.toDate());\n } else if (type === 'month') {\n if (props.mode !== 'month') {\n currentDate.value = value;\n fireChangePanel(props.mode === 'dateTime' ? 'dateTime' : 'date');\n } else {\n emit('select', value.startOf('month').toDate());\n }\n } else if (type === 'year') {\n if (props.mode === 'quarter') {\n currentDate.value = currentDate.value.year(value);\n fireChangePanel('quarter');\n } else if (props.mode !== 'year') {\n currentDate.value = currentDate.value.year(value);\n fireChangePanel('month');\n } else {\n const date = dayjs().year(value).startOf('year');\n emit('select', date.toDate());\n }\n } else if (type === 'quarter') {\n // const date = dayjs().quarter(value).startOf('quarter');\n emit('select', value.startOf('quarter').toDate());\n }\n };\n\n watch(\n () => props.open,\n (val) => {\n selectedShortcut.value = '';\n if (val) {\n currentDate.value = props.value ? dayjs(props.value) : dayjs().startOf('day');\n fireChangePanel(props.mode || 'date');\n }\n }\n );\n\n // ============ footer btn =================\n\n // const onToggleTime = () => {\n // if (selectedDate.value) {\n // showTimePicker.value = !showTimePicker.value;\n // }\n // };\n const disabledToday = computed(() => {\n const today = getTodayTime();\n if (props.disabledDate && props.disabledDate(today.toDate())) {\n return true;\n }\n return false;\n });\n\n const okDisabled = computed(() => {\n if (!selectedDate.value) {\n return true;\n }\n return !isAllowedDateTime(selectedDate.value, props.disabledDate, props.disabledTime);\n });\n\n const onSelectToday = () => {\n onSelectedChange({ type: 'date', value: getTodayTime() });\n };\n\n const onOk = () => {\n if (!okDisabled.value) {\n setOpened(false);\n }\n };\n\n const onClear = () => {\n if (!okDisabled.value) {\n emit('select', null, false);\n }\n };\n\n const onShortcutClick = (shortcut: DatePickerShortcut) => {\n if (typeof shortcut.value === 'function') {\n const date = shortcut.value();\n\n onSelectedChange({\n type: 'date',\n value: dayjs((date as DatePickerSingleValueType) || undefined)\n });\n }\n };\n\n return {\n currentDate,\n selectedDate,\n selectedShortcut,\n statePanel,\n showTime,\n weekMode,\n showTimePicker,\n disabledToday,\n okDisabled,\n onSelectToday,\n onOk,\n onClear,\n // onToggleTime,\n onCurrentChange,\n onPanelChange,\n onSelectedChange,\n onShortcutClick\n };\n }\n});\n</script>\n"],"names":["defineComponent","DatePanel","MonthPanel","YearPanel","QuarterPanel","USelect","ref","dayjs","inject","computed","getTodayTime","isAllowedDateTime","_createElementBlock","_normalizeClass","_createCommentVNode","_createVNode","_createElementVNode","_createBlock"],"mappings":";;;;;;;;;;;;;;;;;;;AAkGA,MAAK,YAAaA,oBAAa;AAAA,EAC7B,MAAM;AAAA,EACN,YAAY;AAAA,eACVC;AAAA,gBACAC;AAAA,eACAC;AAAA,kBACAC;AAAA,aACAC;AAAA;AACF,EACA,OAAO;AAAA,IACL,WAAW;AAAA,MACT,MAAM;AAAA;AACR,IACA,OAAO;AAAA,MACL,MAAM,CAAC,QAAQ,MAAM,MAAM;AAAA;AAC7B,IACA,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,SAAS;AAAA;AACX,IACA,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,UAAU;AAAA;AACZ,IACA,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,SAAS;AAAA;AACX,IAEA,aAAa;AAAA,MACX,MAAM;AAAA,MACN,SAAS;AAAA;AACX,IACA,aAAa;AAAA,MACX,MAAM;AAAA;AACR,IACA,cAAc;AAAA,MACZ,MAAM;AAAA;AACR,IACA,cAAc;AAAA,MACZ,MAAM;AAAA;AACR,IACA,WAAW;AAAA,MACT,MAAM;AAAA;AACR,IACA,eAAe;AAAA,MACb,MAAM;AAAA,MACN,SAAS;AAAA;AACX,IACA,WAAW;AAAA,MACT,MAAM;AAAA,MACN,SAAS;AAAA;AACX;AACF,EACA,OAAO;AAAA,IACL,QAAQ,CAAC,GAAgB,WAAqB,MAAM,QAAQ,aAAa,SAAS,OAAO,UAAU;AAAA,IACnG,OAAO,MAAM;AAAA,IACb,gBAAgB,CAAC,MAAc,OAAO,MAAM;AAAA;AAC9C,EACA,MAAM,OAAO,EAAE,QAAQ;UACf,cAAcC,QAAIC,2BAAO;UACzB,eAAeD,QAAkB,IAAI;UACrC,aAAaA,QAAI,MAAM,IAAI;UAC3B,mBAAmBA,QAAY,EAAE;UACjC,EAAE,cAAcE,WAA0B,qBAAqB,EAAuB;;MAG1F,MAAM,MAAM;AAAA,MACZ,CAAC,QAAQ;qBACM,QAAQ,MAAMD,0BAAM,GAAG,IAAI;oBAC5B,QAAQ,MAAMA,0BAAM,GAAG,IAAIA,4BAAQ,QAAQ,KAAK;AAAA;AAC9D,MACA,EAAE,WAAW;AAAK;UAGd,WAAWE,aAAS,MAAM;aACvB,MAAM,SAAS;AAAA,KACvB;UAEK,WAAWA,aAAS,MAAM;aACvB,MAAM,SAAS;AAAA,KACvB;UAEK,kBAAkB,CAAC,SAAgB;kBAC3B,QAAQ;AAAA;UAGhB,kBAAkB,CAAC,UAAgC;iBAC5C,QAAQ;WACd,gBAAgB,KAAK;AAAA;UAGtB,gBAAgB,CAAC,UAAgC;sBACrC,KAAK;AAAA;UAGjB,iBAAiBA,aAAS,MAAM;aAC7B,MAAM,SAAS,cAAc,WAAW,UAAU;AAAA,KAC1D;UAEK,mBAAmB,CAAC,EAAE,MAAM,YAA0C;UACtE,SAAS,UAAU,SAAS,QAAQ;aACjC,UAAU,MAAM,QAAQ;AAAA,iBACpB,SAAS,SAAS;YACvB,MAAM,SAAS,SAAS;sBACd,QAAQ;0BACJ,MAAM,SAAS,aAAa,aAAa,MAAM;AAAA,eAC1D;eACA,UAAU,MAAM,QAAQ,OAAO,EAAE,QAAQ;AAAA;AAChD,iBACS,SAAS,QAAQ;YACtB,MAAM,SAAS,WAAW;sBAChB,QAAQ,YAAY,MAAM,KAAK,KAAK;0BAChC,SAAS;AAAA,mBAChB,MAAM,SAAS,QAAQ;sBACpB,QAAQ,YAAY,MAAM,KAAK,KAAK;0BAChC,OAAO;AAAA,eAClB;gBACC,OAAOF,4BAAQ,KAAK,KAAK,EAAE,QAAQ,MAAM;eAC1C,UAAU,KAAK,QAAQ;AAAA;AAC9B,iBACS,SAAS,WAAW;aAExB,UAAU,MAAM,QAAQ,SAAS,EAAE,QAAQ;AAAA;AAClD;;MAIA,MAAM,MAAM;AAAA,MACZ,CAAC,QAAQ;yBACU,QAAQ;YACrB,KAAK;sBACK,QAAQ,MAAM,QAAQA,0BAAM,MAAM,KAAK,IAAIA,4BAAQ,QAAQ,KAAK;0BAC5D,MAAM,QAAQ,MAAM;AAAA;AACtC;AACF;UAUI,gBAAgBE,aAAS,MAAM;YAC7B,QAAQC;UACV,MAAM,gBAAgB,MAAM,aAAa,MAAM,QAAQ,GAAG;eACrD;AAAA;aAEF;AAAA,KACR;UAEK,aAAaD,aAAS,MAAM;UAC5B,CAAC,aAAa,OAAO;eAChB;AAAA;aAEF,CAACE,wBAAkB,aAAa,OAAO,MAAM,cAAc,MAAM,YAAY;AAAA,KACrF;UAEK,gBAAgB,MAAM;uBACT,EAAE,MAAM,QAAQ,OAAOD,sBAAgB;AAAA;UAGpD,OAAO,MAAM;UACb,CAAC,WAAW,OAAO;kBACX,KAAK;AAAA;AACjB;UAGI,UAAU,MAAM;UAChB,CAAC,WAAW,OAAO;aAChB,UAAU,MAAM,KAAK;AAAA;AAC5B;UAGI,kBAAkB,CAAC,aAAiC;UACpD,OAAO,SAAS,UAAU,YAAY;cAClC,OAAO,SAAS;yBAEL;AAAA,UACf,MAAM;AAAA,UACN,OAAOH,0BAAO,QAAsC,MAAS;AAAA,SAC9D;AAAA;AACH;WAGK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MAEA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AACF;AAEJ,CAAC;;;;;;;0BAhTCK,uBAyEM;IAxEH,OAAKC;MAAU;;YAA+B,wBAAmB;YAAsB,wBAAmB;YAAsB,uBAAkB,mBAAS;AAAA;;;IASjJ,mCAAXD,uBAcM;;MAdiB,OAAKC,sBAAK,mCAAS;AAAA;MACxCC;MAGAC,gBASE;oBARS;6FAAgB;AAAA,QACzB,MAAK;AAAA,QACJ,SAAS,eAAU,IAAG,CAAE,cAAa,SAAe,SAAS,MAAI,OAAS,SAAS,MAAI,MAAQ,SAAS;QACxG,aAAa,YAAO;AAAA,QACpB,UAAM,2BAAG,OAAY,WAAgB,qBAAe;AAAA,gBAAmB;AAAA,iBAAwB,OAAO;AAAA;;;IAM3GC,uBA+CM;MA7CI,oBAAU,8BADlBC,gBAeE;;QAbC,cAAY;QACZ,QAAQ;QACR,gBAAc;QACd,iBAAe;QACf,mBAAiB;QACjB,oBAAkB;QAClB,aAAW;QACX,gBAAc;QACd,iBAAe;QACf,iBAAe;QACf,iBAAgB;QAChB,kBAAiB;QACjB,eAAc;;MAGT,oBAAU,8BADlBA,gBASE;;QAPC,cAAU,GAAK;QACf,QAAQ;QACR,gBAAc;QACd,iBAAe;QACf,iBAAe;QACf,kBAAiB;QACjB,eAAc;;MAGT,oBAAU,4BADlBA,gBASE;;QAPC,cAAU,GAAK;QACf,QAAQ;QACR,gBAAc;QACd,iBAAe;QACf,iBAAe;QACf,kBAAiB;QACjB,eAAc;;MAGT,oBAAU,2BADlBA,gBASE;;QAPC,cAAU,GAAK;QACf,QAAQ;QACR,gBAAc;QACd,iBAAe;QACf,iBAAe;QACf,kBAAiB;QACjB,eAAc;;;;;;;;;"}
@@ -15,7 +15,7 @@ export declare const siderProps: {
15
15
  type: BooleanConstructor;
16
16
  default: undefined;
17
17
  };
18
- reverseArrow: {
18
+ isRight: {
19
19
  type: BooleanConstructor;
20
20
  default: boolean;
21
21
  };
@@ -33,7 +33,7 @@ export declare const siderProps: {
33
33
  type: (StringConstructor | NumberConstructor)[];
34
34
  default: number;
35
35
  };
36
- collapseWidth: {
36
+ collapsedWidth: {
37
37
  type: (StringConstructor | NumberConstructor)[];
38
38
  default: number;
39
39
  };
@@ -41,11 +41,6 @@ export declare const siderProps: {
41
41
  type: PropType<"xxl" | "xl" | "lg" | "md" | "sm" | "xs">;
42
42
  validator: (val: "xxl" | "xl" | "lg" | "md" | "sm" | "xs") => boolean;
43
43
  };
44
- theme: {
45
- type: PropType<"light" | "dark">;
46
- default: string;
47
- validator: (val: "light" | "dark") => boolean;
48
- };
49
44
  background: {
50
45
  type: StringConstructor;
51
46
  };
@@ -15,7 +15,7 @@ const siderProps = {
15
15
  type: Boolean,
16
16
  default: void 0
17
17
  },
18
- reverseArrow: {
18
+ isRight: {
19
19
  type: Boolean,
20
20
  default: false
21
21
  },
@@ -33,7 +33,7 @@ const siderProps = {
33
33
  type: [Number, String],
34
34
  default: 200
35
35
  },
36
- collapseWidth: {
36
+ collapsedWidth: {
37
37
  type: [Number, String],
38
38
  default: 80
39
39
  },
@@ -41,11 +41,6 @@ const siderProps = {
41
41
  type: String,
42
42
  validator: propsValidators.oneOf(responsiveObserve.responsiveArray)
43
43
  },
44
- theme: {
45
- type: String,
46
- default: "dark",
47
- validator: propsValidators.oneOf(siderTheme)
48
- },
49
44
  background: {
50
45
  type: String
51
46
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Layout.type.js","sources":["../../../../src/components/Layout/Layout.type.ts"],"sourcesContent":["import type { PropType, Ref, ExtractPropTypes } from 'vue';\nimport type { IconPropType } from '../../utils/globalType';\nimport { responsiveArray, type ResponsiveKeys } from '../../utils/responsiveObserve';\nimport { oneOf } from '../../utils/propsValidators';\n\nexport interface SiderHooks {\n attachSider: (id: string) => void;\n removeSider: (id: string) => void;\n}\n\nexport const siderTheme = ['light', 'dark'] as const;\nexport type SiderTheme = (typeof siderTheme)[number];\n\nexport const siderProps = {\n collapsible: {\n type: Boolean,\n default: false\n },\n collapsed: {\n type: Boolean,\n default: undefined as undefined\n },\n reverseArrow: {\n type: Boolean,\n default: false\n },\n hideTrigger: {\n type: Boolean,\n default: false\n },\n zeroTrigger: {\n type: Boolean\n },\n triggerIcon: {\n type: [String, Object] as PropType<IconPropType>\n },\n width: {\n type: [Number, String],\n default: 200\n },\n collapseWidth: {\n type: [Number, String],\n default: 80\n },\n breakpoint: {\n type: String as PropType<ResponsiveKeys>,\n\n validator: oneOf(responsiveArray)\n },\n theme: {\n type: String as PropType<SiderTheme>,\n default: 'dark',\n validator: oneOf(siderTheme)\n },\n background: {\n type: String\n }\n};\nexport type SiderProps = ExtractPropTypes<typeof siderProps>;\n\nexport const siderEmits = {\n 'update:collapsed': (v: boolean) => typeof v === 'boolean',\n collapse: (v: boolean, type: string) => typeof v === 'boolean' && typeof type === 'string',\n breakpoint: (v: boolean) => typeof v === 'boolean'\n};\n\nexport type SiderEmits = typeof siderEmits;\n\nexport interface LayoutSiderContext {\n collapsed: Ref<boolean>;\n collapseWidth: Ref<number | string>;\n}\n"],"names":["oneOf","responsiveArray"],"mappings":";;;;;;;MAUa,aAAa,CAAC,SAAS,MAAM;MAG7B,aAAa;AAAA,EACxB,aAAa;AAAA,IACX,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,WAAW;AAAA,IACT,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,cAAc;AAAA,IACZ,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,aAAa;AAAA,IACX,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,aAAa;AAAA,IACX,MAAM;AAAA;AACR,EACA,aAAa;AAAA,IACX,MAAM,CAAC,QAAQ,MAAM;AAAA;AACvB,EACA,OAAO;AAAA,IACL,MAAM,CAAC,QAAQ,MAAM;AAAA,IACrB,SAAS;AAAA;AACX,EACA,eAAe;AAAA,IACb,MAAM,CAAC,QAAQ,MAAM;AAAA,IACrB,SAAS;AAAA;AACX,EACA,YAAY;AAAA,IACV,MAAM;AAAA,IAEN,WAAWA,sBAAMC,iCAAe;AAAA;AAClC,EACA,OAAO;AAAA,IACL,MAAM;AAAA,IACN,SAAS;AAAA,IACT,WAAWD,sBAAM,UAAU;AAAA;AAC7B,EACA,YAAY;AAAA,IACV,MAAM;AAAA;AAEV;MAGa,aAAa;AAAA,EACxB,oBAAoB,CAAC,MAAe,OAAO,MAAM;AAAA,EACjD,UAAU,CAAC,GAAY,SAAiB,OAAO,MAAM,aAAa,OAAO,SAAS;AAAA,EAClF,YAAY,CAAC,MAAe,OAAO,MAAM;AAC3C;;;;;;"}
1
+ {"version":3,"file":"Layout.type.js","sources":["../../../../src/components/Layout/Layout.type.ts"],"sourcesContent":["import type { PropType, Ref, ExtractPropTypes } from 'vue';\nimport type { IconPropType } from '../../utils/globalType';\nimport { responsiveArray, type ResponsiveKeys } from '../../utils/responsiveObserve';\nimport { oneOf } from '../../utils/propsValidators';\n\nexport interface SiderHooks {\n attachSider: (id: string) => void;\n removeSider: (id: string) => void;\n}\n\nexport const siderTheme = ['light', 'dark'] as const;\nexport type SiderTheme = (typeof siderTheme)[number];\n\nexport const siderProps = {\n collapsible: {\n type: Boolean,\n default: false\n },\n collapsed: {\n type: Boolean,\n default: undefined as undefined\n },\n isRight: {\n type: Boolean,\n default: false\n },\n hideTrigger: {\n type: Boolean,\n default: false\n },\n zeroTrigger: {\n type: Boolean\n },\n triggerIcon: {\n type: [String, Object] as PropType<IconPropType>\n },\n width: {\n type: [Number, String],\n default: 200\n },\n collapsedWidth: {\n type: [Number, String],\n default: 80\n },\n breakpoint: {\n type: String as PropType<ResponsiveKeys>,\n\n validator: oneOf(responsiveArray)\n },\n background: {\n type: String\n }\n};\nexport type SiderProps = ExtractPropTypes<typeof siderProps>;\n\nexport const siderEmits = {\n 'update:collapsed': (v: boolean) => typeof v === 'boolean',\n collapse: (v: boolean, type: string) => typeof v === 'boolean' && typeof type === 'string',\n breakpoint: (v: boolean) => typeof v === 'boolean'\n};\n\nexport type SiderEmits = typeof siderEmits;\n\nexport interface LayoutSiderContext {\n collapsed: Ref<boolean>;\n collapseWidth: Ref<number | string>;\n}\n"],"names":["oneOf","responsiveArray"],"mappings":";;;;;;;MAUa,aAAa,CAAC,SAAS,MAAM;MAG7B,aAAa;AAAA,EACxB,aAAa;AAAA,IACX,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,WAAW;AAAA,IACT,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,SAAS;AAAA,IACP,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,aAAa;AAAA,IACX,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,aAAa;AAAA,IACX,MAAM;AAAA;AACR,EACA,aAAa;AAAA,IACX,MAAM,CAAC,QAAQ,MAAM;AAAA;AACvB,EACA,OAAO;AAAA,IACL,MAAM,CAAC,QAAQ,MAAM;AAAA,IACrB,SAAS;AAAA;AACX,EACA,gBAAgB;AAAA,IACd,MAAM,CAAC,QAAQ,MAAM;AAAA,IACrB,SAAS;AAAA;AACX,EACA,YAAY;AAAA,IACV,MAAM;AAAA,IAEN,WAAWA,sBAAMC,iCAAe;AAAA;AAClC,EACA,YAAY;AAAA,IACV,MAAM;AAAA;AAEV;MAGa,aAAa;AAAA,EACxB,oBAAoB,CAAC,MAAe,OAAO,MAAM;AAAA,EACjD,UAAU,CAAC,GAAY,SAAiB,OAAO,MAAM,aAAa,OAAO,SAAS;AAAA,EAClF,YAAY,CAAC,MAAe,OAAO,MAAM;AAC3C;;;;;;"}
@@ -23,7 +23,10 @@ const _sfc_main = vue.defineComponent({
23
23
  name: "USider",
24
24
  components: {
25
25
  UIcon: index.UIcon,
26
- PanelLeft: lucideVueNext.PanelLeft
26
+ PanelLeft: lucideVueNext.PanelLeft,
27
+ PanelRight: lucideVueNext.PanelRight,
28
+ ChevronLeft: lucideVueNext.ChevronLeft,
29
+ ChevronRight: lucideVueNext.ChevronRight
27
30
  },
28
31
  props: Layout_type.siderProps,
29
32
  emits: Layout_type.siderEmits,
@@ -50,7 +53,6 @@ const _sfc_main = vue.defineComponent({
50
53
  const isBreakpoint = vue.ref(false);
51
54
  let mql;
52
55
  const responsiveHandler = ({ matches }) => {
53
- emit("breakpoint", matches);
54
56
  isBreakpoint.value = matches;
55
57
  if (matches !== stateCollapse.value) {
56
58
  setCollapsed(matches, "responsive");
@@ -58,7 +60,7 @@ const _sfc_main = vue.defineComponent({
58
60
  };
59
61
  vue.onMounted(() => {
60
62
  vue.nextTick(() => {
61
- if (typeof window === "undefined") {
63
+ if (typeof window !== "undefined") {
62
64
  if (!!matchMedia && props.breakpoint) {
63
65
  mql = matchMedia(responsiveObserve.breakpointMap[props.breakpoint]);
64
66
  }
@@ -67,7 +69,9 @@ const _sfc_main = vue.defineComponent({
67
69
  } catch (error) {
68
70
  mql == null ? void 0 : mql.addListener(responsiveHandler);
69
71
  }
70
- responsiveHandler(mql);
72
+ if (mql) {
73
+ responsiveHandler(mql);
74
+ }
71
75
  }
72
76
  if (siderHook.attachSider) {
73
77
  siderHook.attachSider(uniqueId);
@@ -89,12 +93,12 @@ const _sfc_main = vue.defineComponent({
89
93
  const siderWidth = vue.computed(() => {
90
94
  let ret = getPixer(props.width);
91
95
  if (stateCollapse.value) {
92
- ret = getPixer(props.collapseWidth);
96
+ ret = getPixer(props.collapsedWidth);
93
97
  }
94
98
  return ret;
95
99
  });
96
100
  const isZeroCollapse = vue.computed(() => {
97
- return parseFloat(String(props.collapseWidth)) === 0 || props.zeroTrigger;
101
+ return parseFloat(String(props.collapsedWidth)) === 0 || props.zeroTrigger;
98
102
  });
99
103
  const showZeroTrigger = vue.computed(() => {
100
104
  return (props.collapsible || isBreakpoint.value) && !props.hideTrigger && isZeroCollapse.value;
@@ -106,16 +110,16 @@ const _sfc_main = vue.defineComponent({
106
110
  if (props.triggerIcon) {
107
111
  return props.triggerIcon;
108
112
  }
109
- return props.reverseArrow ? lucideVueNext.PanelLeft : lucideVueNext.PanelLeft;
113
+ return props.isRight ? lucideVueNext.PanelLeft : lucideVueNext.PanelRight;
110
114
  });
111
115
  const handleToggle = () => {
112
116
  const collapsed = !stateCollapse.value;
113
117
  setCollapsed(collapsed, "triggerClick");
114
118
  };
115
- const { collapseWidth } = vue.toRefs(props);
119
+ const { collapsedWidth } = vue.toRefs(props);
116
120
  vue.provide("layoutSiderContext", {
117
121
  collapsed: stateCollapse,
118
- collapseWidth
122
+ collapsedWidth
119
123
  });
120
124
  return {
121
125
  prefixCls,
@@ -131,7 +135,8 @@ const _sfc_main = vue.defineComponent({
131
135
  });
132
136
  function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
133
137
  var _a;
134
- const _component_PanelLeft = vue.resolveComponent("PanelLeft");
138
+ const _component_ChevronRight = vue.resolveComponent("ChevronRight");
139
+ const _component_ChevronLeft = vue.resolveComponent("ChevronLeft");
135
140
  const _component_UIcon = vue.resolveComponent("UIcon");
136
141
  return vue.openBlock(), vue.createElementBlock("aside", {
137
142
  style: vue.normalizeStyle({
@@ -143,8 +148,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
143
148
  }),
144
149
  class: vue.normalizeClass([
145
150
  _ctx.prefixCls,
146
- `${_ctx.prefixCls}-${_ctx.theme}`,
147
- `${_ctx.prefixCls}-${_ctx.reverseArrow ? "right" : "left"}`,
151
+ `${_ctx.prefixCls}-${_ctx.isRight ? "right" : "left"}`,
148
152
  {
149
153
  [`${_ctx.prefixCls}-collapsed`]: !!_ctx.stateCollapse,
150
154
  [`${_ctx.prefixCls}-has-trigger`]: _ctx.collapsible && !_ctx.hideTrigger && !_ctx.isZeroCollapse,
@@ -154,12 +158,12 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
154
158
  }, [
155
159
  _ctx.showZeroTrigger ? (vue.openBlock(), vue.createElementBlock("span", {
156
160
  key: 0,
157
- class: vue.normalizeClass([`${_ctx.prefixCls}-zero-trigger`, `${_ctx.prefixCls}-zero-trigger-${_ctx.reverseArrow ? "right" : "left"}`]),
161
+ class: vue.normalizeClass([`${_ctx.prefixCls}-zero-trigger`, `${_ctx.prefixCls}-zero-trigger-${_ctx.isRight ? "right" : "left"}`]),
158
162
  onClick: _cache[0] || (_cache[0] = (...args) => _ctx.handleToggle && _ctx.handleToggle(...args))
159
163
  }, [
160
164
  vue.createVNode(_component_UIcon, null, {
161
165
  default: vue.withCtx(() => [
162
- _ctx.reverseArrow ? (vue.openBlock(), vue.createBlock(_component_PanelLeft, { key: 0 })) : (vue.openBlock(), vue.createBlock(_component_PanelLeft, { key: 1 }))
166
+ _ctx.isRight ? (vue.openBlock(), vue.createBlock(_component_ChevronRight, { key: 0 })) : (vue.openBlock(), vue.createBlock(_component_ChevronLeft, { key: 1 }))
163
167
  ]),
164
168
  _: 1
165
169
  })
@@ -174,7 +178,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
174
178
  ], 2),
175
179
  _ctx.showBottomTrigger ? vue.renderSlot(_ctx.$slots, "trigger", { key: 1 }, () => [
176
180
  vue.createElementVNode("div", {
177
- class: vue.normalizeClass([`${_ctx.prefixCls}-trigger`, `${_ctx.prefixCls}-trigger-${_ctx.reverseArrow ? "right" : "left"}`]),
181
+ class: vue.normalizeClass([`${_ctx.prefixCls}-trigger`, `${_ctx.prefixCls}-trigger-${_ctx.isRight ? "right" : "left"}`]),
178
182
  style: vue.normalizeStyle({ width: _ctx.siderWidth }),
179
183
  onClick: _cache[1] || (_cache[1] = (...args) => _ctx.handleToggle && _ctx.handleToggle(...args))
180
184
  }, [
@@ -1 +1 @@
1
- {"version":3,"file":"Sider.js","sources":["../../../../src/components/Layout/Sider.vue"],"sourcesContent":["<template>\n <aside\n :style=\"{\n width: `${siderWidth}`,\n minWidth: `${siderWidth}`,\n maxWidth: `${siderWidth}`,\n flex: `0 0 ${siderWidth}`,\n ...(background ? { background } : {})\n }\"\n :class=\"[\n prefixCls,\n `${prefixCls}-${theme}`,\n `${prefixCls}-${reverseArrow ? 'right' : 'left'}`,\n {\n [`${prefixCls}-collapsed`]: !!stateCollapse,\n [`${prefixCls}-has-trigger`]: collapsible && !hideTrigger && !isZeroCollapse,\n [`${prefixCls}-zero`]: parseFloat(String(siderWidth)) === 0\n }\n ]\"\n >\n <span\n v-if=\"showZeroTrigger\"\n :class=\"[`${prefixCls}-zero-trigger`, `${prefixCls}-zero-trigger-${reverseArrow ? 'right' : 'left'}`]\"\n @click=\"handleToggle\"\n >\n <UIcon>\n <PanelLeft v-if=\"reverseArrow\" />\n <PanelLeft v-else />\n </UIcon>\n </span>\n\n <div\n :class=\"{\n [`${prefixCls}-children`]: true,\n [`${String($attrs.class)?.split(' ')[0]}-inner`]: !!$attrs.class\n }\"\n >\n <slot />\n </div>\n\n <slot v-if=\"showBottomTrigger\" name=\"trigger\">\n <div\n :class=\"[`${prefixCls}-trigger`, `${prefixCls}-trigger-${reverseArrow ? 'right' : 'left'}`]\"\n :style=\"{ width: siderWidth }\"\n @click=\"handleToggle\"\n >\n <UIcon>\n <component :is=\"triggerType\" />\n </UIcon>\n </div>\n </slot>\n </aside>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, inject, onMounted, onUnmounted, nextTick, toRefs, ref, computed, watch, provide } from 'vue';\nimport { PanelLeft } from 'lucide-vue-next';\nimport UIcon from '@uxd-ui/components/Icon';\nimport useGlobalConfig from '../base/hooks/useGlobalConfig';\nimport { breakpointMap } from '../../utils/responsiveObserve';\nimport { isNumeric } from '../../utils/isValid';\nimport { siderEmits, siderProps, type SiderHooks } from './Layout.type';\n\nlet i = 0;\nconst generateId = (prefix: string) => {\n i += 1;\n return `${prefix}-${i}`;\n};\n\nconst getPixer = (val: string | number) => {\n return isNumeric(val) ? `${val}px` : val;\n};\n\nexport default defineComponent({\n name: 'USider',\n components: {\n UIcon,\n PanelLeft\n },\n props: siderProps,\n emits: siderEmits,\n setup(props, { emit }) {\n const { prefixCls, getPrefixCls } = useGlobalConfig('layout-sider');\n const prefix = getPrefixCls('sider');\n const uniqueId = generateId(prefix);\n const siderHook = inject<SiderHooks>('siderHook', {} as SiderHooks);\n\n // #region for state collapse\n\n const stateCollapse = ref();\n watch(\n () => props.collapsed,\n (val) => {\n stateCollapse.value = !!val;\n },\n { immediate: true }\n );\n\n const setCollapsed = (collapsed: boolean, type: string) => {\n if (props.collapsed === undefined) {\n stateCollapse.value = collapsed;\n }\n emit('update:collapsed', collapsed);\n emit('collapse', collapsed, type);\n };\n // #endregion\n\n // #region lifecircle\n const isBreakpoint = ref(false);\n let mql: MediaQueryList;\n const responsiveHandler = ({ matches }: { matches: boolean }) => {\n emit('breakpoint', matches);\n isBreakpoint.value = matches;\n if (matches !== stateCollapse.value) {\n setCollapsed(matches, 'responsive');\n }\n };\n\n onMounted(() => {\n nextTick(() => {\n if (typeof window === 'undefined') {\n if (!!matchMedia && props.breakpoint) {\n mql = matchMedia(breakpointMap[props.breakpoint]);\n }\n try {\n mql?.addEventListener('change', responsiveHandler);\n } catch (error) {\n mql?.addListener(responsiveHandler);\n }\n responsiveHandler(mql);\n }\n\n if (siderHook.attachSider) {\n siderHook.attachSider(uniqueId);\n }\n });\n });\n onUnmounted(() => {\n nextTick(() => {\n try {\n mql?.removeEventListener('change', responsiveHandler);\n } catch (error) {\n mql?.removeListener(responsiveHandler);\n }\n\n if (siderHook.removeSider) {\n siderHook.removeSider(uniqueId);\n }\n });\n });\n // #endregion\n\n // #region computed\n\n const siderWidth = computed(() => {\n let ret = getPixer(props.width);\n if (stateCollapse.value) {\n ret = getPixer(props.collapseWidth);\n }\n return ret;\n });\n\n const isZeroCollapse = computed(() => {\n return parseFloat(String(props.collapseWidth)) === 0 || props.zeroTrigger;\n });\n\n const showZeroTrigger = computed(() => {\n return (props.collapsible || isBreakpoint.value) && !props.hideTrigger && isZeroCollapse.value;\n });\n\n const showBottomTrigger = computed(() => {\n return (props.collapsible || isBreakpoint.value) && !props.hideTrigger && !isZeroCollapse.value;\n });\n\n const triggerType = computed(() => {\n if (props.triggerIcon) {\n return props.triggerIcon;\n }\n return props.reverseArrow ? PanelLeft : PanelLeft;\n });\n // #endregion\n\n // #region event\n const handleToggle = () => {\n const collapsed = !stateCollapse.value;\n setCollapsed(collapsed, 'triggerClick');\n };\n // #endregion\n const { collapseWidth } = toRefs(props);\n provide('layoutSiderContext', {\n collapsed: stateCollapse,\n collapseWidth\n });\n\n return {\n prefixCls,\n stateCollapse,\n siderWidth,\n isZeroCollapse,\n showZeroTrigger,\n showBottomTrigger,\n triggerType,\n handleToggle\n };\n }\n});\n</script>\n"],"names":["isNumeric","defineComponent","UIcon","PanelLeft","siderProps","siderEmits","useGlobalConfig","inject","ref","breakpointMap","computed","toRefs","_createElementBlock","_normalizeStyle","_normalizeClass","_createVNode","_createBlock","_createElementVNode","_renderSlot","_resolveDynamicComponent"],"mappings":"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"}
1
+ {"version":3,"file":"Sider.js","sources":["../../../../src/components/Layout/Sider.vue"],"sourcesContent":["<template>\n <aside\n :style=\"{\n width: `${siderWidth}`,\n minWidth: `${siderWidth}`,\n maxWidth: `${siderWidth}`,\n flex: `0 0 ${siderWidth}`,\n ...(background ? { background } : {})\n }\"\n :class=\"[\n prefixCls,\n `${prefixCls}-${isRight ? 'right' : 'left'}`,\n {\n [`${prefixCls}-collapsed`]: !!stateCollapse,\n [`${prefixCls}-has-trigger`]: collapsible && !hideTrigger && !isZeroCollapse,\n [`${prefixCls}-zero`]: parseFloat(String(siderWidth)) === 0\n }\n ]\"\n >\n <span\n v-if=\"showZeroTrigger\"\n :class=\"[`${prefixCls}-zero-trigger`, `${prefixCls}-zero-trigger-${isRight ? 'right' : 'left'}`]\"\n @click=\"handleToggle\"\n >\n <UIcon>\n <ChevronRight v-if=\"isRight\" />\n <ChevronLeft v-else />\n </UIcon>\n </span>\n\n <div\n :class=\"{\n [`${prefixCls}-children`]: true,\n [`${String($attrs.class)?.split(' ')[0]}-inner`]: !!$attrs.class\n }\"\n >\n <slot />\n </div>\n\n <slot v-if=\"showBottomTrigger\" name=\"trigger\">\n <div\n :class=\"[`${prefixCls}-trigger`, `${prefixCls}-trigger-${isRight ? 'right' : 'left'}`]\"\n :style=\"{ width: siderWidth }\"\n @click=\"handleToggle\"\n >\n <UIcon>\n <component :is=\"triggerType\" />\n </UIcon>\n </div>\n </slot>\n </aside>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, inject, onMounted, onUnmounted, nextTick, toRefs, ref, computed, watch, provide } from 'vue';\nimport { ChevronLeft, ChevronRight, PanelLeft, PanelRight } from 'lucide-vue-next';\nimport UIcon from '@uxd-ui/components/Icon';\nimport useGlobalConfig from '../base/hooks/useGlobalConfig';\nimport { breakpointMap } from '../../utils/responsiveObserve';\nimport { isNumeric } from '../../utils/isValid';\nimport { siderEmits, siderProps, type SiderHooks } from './Layout.type';\n\nlet i = 0;\nconst generateId = (prefix: string) => {\n i += 1;\n return `${prefix}-${i}`;\n};\n\nconst getPixer = (val: string | number) => {\n return isNumeric(val) ? `${val}px` : val;\n};\n\nexport default defineComponent({\n name: 'USider',\n components: {\n UIcon,\n PanelLeft,\n PanelRight,\n ChevronLeft,\n ChevronRight\n },\n props: siderProps,\n emits: siderEmits,\n setup(props, { emit }) {\n const { prefixCls, getPrefixCls } = useGlobalConfig('layout-sider');\n const prefix = getPrefixCls('sider');\n const uniqueId = generateId(prefix);\n const siderHook = inject<SiderHooks>('siderHook', {} as SiderHooks);\n\n // #region for state collapse\n\n const stateCollapse = ref();\n watch(\n () => props.collapsed,\n (val) => {\n stateCollapse.value = !!val;\n },\n { immediate: true }\n );\n\n const setCollapsed = (collapsed: boolean, type: string) => {\n if (props.collapsed === undefined) {\n stateCollapse.value = collapsed;\n }\n emit('update:collapsed', collapsed);\n emit('collapse', collapsed, type);\n };\n // #endregion\n\n // #region lifecircle\n const isBreakpoint = ref(false);\n let mql: MediaQueryList;\n const responsiveHandler = ({ matches }: { matches: boolean }) => {\n isBreakpoint.value = matches;\n if (matches !== stateCollapse.value) {\n setCollapsed(matches, 'responsive');\n }\n };\n\n onMounted(() => {\n nextTick(() => {\n if (typeof window !== 'undefined') {\n if (!!matchMedia && props.breakpoint) {\n mql = matchMedia(breakpointMap[props.breakpoint]);\n }\n try {\n mql?.addEventListener('change', responsiveHandler);\n } catch (error) {\n mql?.addListener(responsiveHandler);\n }\n if (mql) {\n responsiveHandler(mql);\n }\n }\n\n if (siderHook.attachSider) {\n siderHook.attachSider(uniqueId);\n }\n });\n });\n onUnmounted(() => {\n nextTick(() => {\n try {\n mql?.removeEventListener('change', responsiveHandler);\n } catch (error) {\n mql?.removeListener(responsiveHandler);\n }\n\n if (siderHook.removeSider) {\n siderHook.removeSider(uniqueId);\n }\n });\n });\n // #endregion\n\n // #region computed\n\n const siderWidth = computed(() => {\n let ret = getPixer(props.width);\n if (stateCollapse.value) {\n ret = getPixer(props.collapsedWidth);\n }\n return ret;\n });\n\n const isZeroCollapse = computed(() => {\n return parseFloat(String(props.collapsedWidth)) === 0 || props.zeroTrigger;\n });\n\n const showZeroTrigger = computed(() => {\n return (props.collapsible || isBreakpoint.value) && !props.hideTrigger && isZeroCollapse.value;\n });\n\n const showBottomTrigger = computed(() => {\n return (props.collapsible || isBreakpoint.value) && !props.hideTrigger && !isZeroCollapse.value;\n });\n\n const triggerType = computed(() => {\n if (props.triggerIcon) {\n return props.triggerIcon;\n }\n\n return props.isRight ? PanelLeft : PanelRight;\n });\n // #endregion\n\n // #region event\n const handleToggle = () => {\n const collapsed = !stateCollapse.value;\n setCollapsed(collapsed, 'triggerClick');\n };\n // #endregion\n const { collapsedWidth } = toRefs(props);\n provide('layoutSiderContext', {\n collapsed: stateCollapse,\n collapsedWidth\n });\n\n return {\n prefixCls,\n stateCollapse,\n siderWidth,\n isZeroCollapse,\n showZeroTrigger,\n showBottomTrigger,\n triggerType,\n handleToggle\n };\n }\n});\n</script>\n"],"names":["isNumeric","defineComponent","UIcon","PanelLeft","PanelRight","ChevronLeft","ChevronRight","siderProps","siderEmits","useGlobalConfig","inject","ref","breakpointMap","computed","toRefs","_createElementBlock","_normalizeStyle","_normalizeClass","_createVNode","_createBlock","_createElementVNode","_renderSlot","_resolveDynamicComponent"],"mappings":"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"}
@@ -7,7 +7,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
7
7
  type: BooleanConstructor;
8
8
  default: undefined;
9
9
  };
10
- reverseArrow: {
10
+ isRight: {
11
11
  type: BooleanConstructor;
12
12
  default: boolean;
13
13
  };
@@ -25,7 +25,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
25
25
  type: (StringConstructor | NumberConstructor)[];
26
26
  default: number;
27
27
  };
28
- collapseWidth: {
28
+ collapsedWidth: {
29
29
  type: (StringConstructor | NumberConstructor)[];
30
30
  default: number;
31
31
  };
@@ -33,11 +33,6 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
33
33
  type: import("vue").PropType<"xxl" | "xl" | "lg" | "md" | "sm" | "xs">;
34
34
  validator: (val: "xxl" | "xl" | "lg" | "md" | "sm" | "xs") => boolean;
35
35
  };
36
- theme: {
37
- type: import("vue").PropType<"light" | "dark">;
38
- default: string;
39
- validator: (val: "light" | "dark") => boolean;
40
- };
41
36
  background: {
42
37
  type: StringConstructor;
43
38
  };
@@ -63,7 +58,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
63
58
  type: BooleanConstructor;
64
59
  default: undefined;
65
60
  };
66
- reverseArrow: {
61
+ isRight: {
67
62
  type: BooleanConstructor;
68
63
  default: boolean;
69
64
  };
@@ -81,7 +76,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
81
76
  type: (StringConstructor | NumberConstructor)[];
82
77
  default: number;
83
78
  };
84
- collapseWidth: {
79
+ collapsedWidth: {
85
80
  type: (StringConstructor | NumberConstructor)[];
86
81
  default: number;
87
82
  };
@@ -89,11 +84,6 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
89
84
  type: import("vue").PropType<"xxl" | "xl" | "lg" | "md" | "sm" | "xs">;
90
85
  validator: (val: "xxl" | "xl" | "lg" | "md" | "sm" | "xs") => boolean;
91
86
  };
92
- theme: {
93
- type: import("vue").PropType<"light" | "dark">;
94
- default: string;
95
- validator: (val: "light" | "dark") => boolean;
96
- };
97
87
  background: {
98
88
  type: StringConstructor;
99
89
  };
@@ -105,11 +95,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
105
95
  width: string | number;
106
96
  collapsible: boolean;
107
97
  collapsed: boolean;
108
- reverseArrow: boolean;
98
+ isRight: boolean;
109
99
  hideTrigger: boolean;
110
100
  zeroTrigger: boolean;
111
- collapseWidth: string | number;
112
- theme: "light" | "dark";
101
+ collapsedWidth: string | number;
113
102
  }, {}, {
114
103
  UIcon: {
115
104
  new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<Readonly<import("vue").ExtractPropTypes<{
@@ -243,5 +232,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
243
232
  spin: boolean;
244
233
  }, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & import("vue").Plugin<any[]> & Record<string, any>;
245
234
  PanelLeft: import("vue").FunctionalComponent<import("lucide-vue-next").LucideProps, {}, any, {}>;
235
+ PanelRight: import("vue").FunctionalComponent<import("lucide-vue-next").LucideProps, {}, any, {}>;
236
+ ChevronLeft: import("vue").FunctionalComponent<import("lucide-vue-next").LucideProps, {}, any, {}>;
237
+ ChevronRight: import("vue").FunctionalComponent<import("lucide-vue-next").LucideProps, {}, any, {}>;
246
238
  }, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
247
239
  export default _default;