@koi-design/uxd-ui 14.0.3 → 14.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. package/es/components/Badge/Badge.mjs +3 -5
  2. package/es/components/Badge/Badge.mjs.map +1 -1
  3. package/es/components/Drawer/Drawer.d.ts +9 -0
  4. package/es/components/Drawer/Drawer.mjs +10 -8
  5. package/es/components/Drawer/Drawer.mjs.map +1 -1
  6. package/es/components/Drawer/Drawer.type.d.ts +4 -0
  7. package/es/components/Drawer/Drawer.type.mjs +4 -0
  8. package/es/components/Drawer/Drawer.type.mjs.map +1 -1
  9. package/es/components/Drawer/index.d.ts +15 -0
  10. package/es/components/Mask/Mask.d.ts +2 -1
  11. package/es/components/Mask/Mask.mjs +6 -2
  12. package/es/components/Mask/Mask.mjs.map +1 -1
  13. package/es/components/Mask/index.d.ts +5 -2
  14. package/es/components/Message/Message.type.d.ts +1 -0
  15. package/es/components/Slider/Slider.d.ts +0 -20
  16. package/es/components/Slider/Slider.mjs +1 -2
  17. package/es/components/Slider/Slider.mjs.map +1 -1
  18. package/es/components/Slider/Slider.type.d.ts +0 -9
  19. package/es/components/Slider/Slider.type.mjs +0 -13
  20. package/es/components/Slider/Slider.type.mjs.map +1 -1
  21. package/es/components/Slider/index.d.ts +0 -33
  22. package/es/components/Tag/Tag.mjs +6 -9
  23. package/es/components/Tag/Tag.mjs.map +1 -1
  24. package/es/components/Tag/Tag.type.d.ts +0 -4
  25. package/es/components/Tag/Tag.type.mjs +0 -4
  26. package/es/components/Tag/Tag.type.mjs.map +1 -1
  27. package/es/components/Tag/Tag.vue.d.ts +7 -20
  28. package/es/components/Tag/index.d.ts +21 -48
  29. package/es/components/TreeSelect/TreeSelect.vue.d.ts +1 -1
  30. package/es/components/TreeSelect/index.d.ts +3 -3
  31. package/lib/components/Badge/Badge.js +3 -5
  32. package/lib/components/Badge/Badge.js.map +1 -1
  33. package/lib/components/Drawer/Drawer.d.ts +9 -0
  34. package/lib/components/Drawer/Drawer.js +10 -8
  35. package/lib/components/Drawer/Drawer.js.map +1 -1
  36. package/lib/components/Drawer/Drawer.type.d.ts +4 -0
  37. package/lib/components/Drawer/Drawer.type.js +4 -0
  38. package/lib/components/Drawer/Drawer.type.js.map +1 -1
  39. package/lib/components/Drawer/index.d.ts +15 -0
  40. package/lib/components/Mask/Mask.d.ts +2 -1
  41. package/lib/components/Mask/Mask.js +6 -2
  42. package/lib/components/Mask/Mask.js.map +1 -1
  43. package/lib/components/Mask/index.d.ts +5 -2
  44. package/lib/components/Message/Message.type.d.ts +1 -0
  45. package/lib/components/Slider/Slider.d.ts +0 -20
  46. package/lib/components/Slider/Slider.js +1 -2
  47. package/lib/components/Slider/Slider.js.map +1 -1
  48. package/lib/components/Slider/Slider.type.d.ts +0 -9
  49. package/lib/components/Slider/Slider.type.js +0 -13
  50. package/lib/components/Slider/Slider.type.js.map +1 -1
  51. package/lib/components/Slider/index.d.ts +0 -33
  52. package/lib/components/Tag/Tag.js +6 -9
  53. package/lib/components/Tag/Tag.js.map +1 -1
  54. package/lib/components/Tag/Tag.type.d.ts +0 -4
  55. package/lib/components/Tag/Tag.type.js +0 -4
  56. package/lib/components/Tag/Tag.type.js.map +1 -1
  57. package/lib/components/Tag/Tag.vue.d.ts +7 -20
  58. package/lib/components/Tag/index.d.ts +21 -48
  59. package/lib/components/TreeSelect/TreeSelect.vue.d.ts +1 -1
  60. package/lib/components/TreeSelect/index.d.ts +3 -3
  61. package/package.json +1 -1
  62. package/styles/components/badge/index.css +1 -1
  63. package/styles/components/badge/index.less +14 -48
  64. package/styles/components/badge/var.less +7 -17
  65. package/styles/components/drawer/index.css +1 -1
  66. package/styles/components/drawer/index.less +43 -49
  67. package/styles/components/drawer/var.less +7 -20
  68. package/styles/components/slider/index.css +1 -1
  69. package/styles/components/slider/index.less +36 -156
  70. package/styles/components/slider/var.less +5 -33
  71. package/styles/components/tag/index.css +1 -1
  72. package/styles/components/tag/index.less +12 -25
  73. package/styles/components/tag/var.less +9 -67
  74. package/styles/cssVariable.less +0 -1
  75. package/styles/index.css +1 -1
  76. package/styles/mixins/index.less +0 -1
  77. package/types/components/Drawer/Drawer.d.ts +9 -0
  78. package/types/components/Drawer/Drawer.type.d.ts +4 -0
  79. package/types/components/Drawer/index.d.ts +15 -0
  80. package/types/components/Mask/Mask.d.ts +2 -1
  81. package/types/components/Mask/index.d.ts +5 -2
  82. package/types/components/Message/Message.type.d.ts +1 -0
  83. package/types/components/Slider/Slider.d.ts +0 -20
  84. package/types/components/Slider/Slider.type.d.ts +0 -9
  85. package/types/components/Slider/index.d.ts +0 -33
  86. package/types/components/Tag/Tag.type.d.ts +0 -4
  87. package/types/components/Tag/Tag.vue.d.ts +7 -20
  88. package/types/components/Tag/index.d.ts +21 -48
  89. package/types/components/TreeSelect/TreeSelect.vue.d.ts +1 -1
  90. package/types/components/TreeSelect/index.d.ts +3 -3
  91. package/uxd-ui.css +1 -1
  92. package/uxd-ui.esm.min.mjs +6 -6
  93. package/uxd-ui.esm.mjs +31 -40
  94. package/uxd-ui.umd.js +31 -40
  95. package/uxd-ui.umd.min.js +6 -6
  96. package/styles/mixins/close.less +0 -12
@@ -147,8 +147,8 @@ export declare const UTreeSelect: {
147
147
  change: (v: import("..").SelectValueType, item: import("./TreeSelect.type").SelectTreeItem | import("./TreeSelect.type").SelectTreeItem[]) => boolean;
148
148
  }, import("vue").PublicProps, {
149
149
  color: "primary" | "blue" | "red" | "orange" | "green" | "iris" | "cyan" | "yellow" | "amber" | "purple" | "lime" | "sky" | "violet" | "pink" | "mint";
150
- required: boolean;
151
150
  showIcon: boolean;
151
+ required: boolean;
152
152
  iconType: import("vue").FunctionalComponent<import("lucide-vue-next").LucideProps, {}, any, {}>;
153
153
  placement: "top" | "bottom" | "auto" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-start" | "bottom-end" | "right" | "right-start" | "right-end" | "left" | "left-start" | "left-end";
154
154
  disabled: boolean;
@@ -5013,8 +5013,8 @@ export declare const UTreeSelect: {
5013
5013
  onUpdateTreeData: (data: import("..").TreeItem[]) => void;
5014
5014
  }, {}, {}, {}, {
5015
5015
  color: "primary" | "blue" | "red" | "orange" | "green" | "iris" | "cyan" | "yellow" | "amber" | "purple" | "lime" | "sky" | "violet" | "pink" | "mint";
5016
- required: boolean;
5017
5016
  showIcon: boolean;
5017
+ required: boolean;
5018
5018
  iconType: import("vue").FunctionalComponent<import("lucide-vue-next").LucideProps, {}, any, {}>;
5019
5019
  placement: "top" | "bottom" | "auto" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-start" | "bottom-end" | "right" | "right-start" | "right-end" | "left" | "left-start" | "left-end";
5020
5020
  disabled: boolean;
@@ -5185,8 +5185,8 @@ export declare const UTreeSelect: {
5185
5185
  change: (v: import("..").SelectValueType, item: import("./TreeSelect.type").SelectTreeItem | import("./TreeSelect.type").SelectTreeItem[]) => boolean;
5186
5186
  }, string, {
5187
5187
  color: "primary" | "blue" | "red" | "orange" | "green" | "iris" | "cyan" | "yellow" | "amber" | "purple" | "lime" | "sky" | "violet" | "pink" | "mint";
5188
- required: boolean;
5189
5188
  showIcon: boolean;
5189
+ required: boolean;
5190
5190
  iconType: import("vue").FunctionalComponent<import("lucide-vue-next").LucideProps, {}, any, {}>;
5191
5191
  placement: "top" | "bottom" | "auto" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-start" | "bottom-end" | "right" | "right-start" | "right-end" | "left" | "left-start" | "left-end";
5192
5192
  disabled: boolean;
@@ -21,13 +21,11 @@ const _sfc_main = vue.defineComponent({
21
21
  if (props.status) {
22
22
  switch (props.status) {
23
23
  case "success":
24
- return "green";
25
- case "processing":
26
- return "blue";
27
24
  case "error":
28
- return "red";
29
25
  case "warning":
30
- return "orange";
26
+ return props.status;
27
+ case "processing":
28
+ return "primary";
31
29
  default:
32
30
  return void 0;
33
31
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Badge.js","sources":["../../../../src/components/Badge/Badge.vue"],"sourcesContent":["<template>\n <span v-if=\"dot\" :class=\"prefixCls\">\n <slot />\n <sup v-show=\"badgeShow\" :class=\"`${prefixCls}-dot`\" :style=\"styles\" />\n </span>\n <span v-else-if=\"status || color\" :class=\"prefixCls\" class=\"uui-badge-status\">\n <span\n :class=\"[\n `${prefixCls}-status-dot`,\n {\n [`${prefixCls}-status-default`]: status === 'default',\n [`${prefixCls}-status-color`]: isColorStatus\n }\n ]\"\n :data-color=\"computedColor\"\n :style=\"statusStyles\"\n />\n <span class=\"uui-badge-status-text\">\n <slot name=\"text\">{{ text }}</slot>\n </span>\n </span>\n <span v-else :class=\"prefixCls\">\n <slot />\n <sup\n v-if=\"$slots.count\"\n :style=\"styles\"\n :class=\"[\n `${prefixCls}-count`,\n `${prefixCls}-count-custom`,\n {\n [`${className}`]: !!className\n }\n ]\"\n >\n <slot name=\"count\" />\n </sup>\n <sup\n v-else-if=\"hasCount\"\n v-show=\"badgeShow\"\n :style=\"styles\"\n :class=\"[\n `${prefixCls}-count`,\n {\n [`${className}`]: !!className,\n [`${prefixCls}-count-alone`]: $slots.default === undefined,\n [`${prefixCls}-count-type`]: !!type\n }\n ]\"\n :data-color=\"computedColor\"\n >\n <slot name=\"text\">{{ finalCount }}</slot>\n </sup>\n </span>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, computed } from 'vue';\nimport type { CSSProperties } from 'vue';\nimport useGlobalConfig from '../base/hooks/useGlobalConfig';\nimport { badgeProps } from './Badge.type';\nimport type { BadgeStatus, BadgeType } from './Badge.type';\nimport { colorType } from '../../utils/globalType';\n\nconst initColorList = colorType.toString().split(',');\n\nexport default defineComponent({\n name: 'UBadge',\n props: badgeProps,\n setup(props) {\n const { prefixCls } = useGlobalConfig('badge');\n\n const isColorStatus = computed(() => {\n return (!!props.color && initColorList.includes(props.color)) || (!!props.status && props.status !== 'default');\n });\n\n const computedColor = computed(() => {\n if (props.status) {\n switch (props.status as BadgeStatus) {\n case 'success':\n return 'green';\n case 'processing':\n return 'blue';\n case 'error':\n return 'red';\n case 'warning':\n return 'orange';\n default:\n return undefined;\n }\n }\n if (props.color) {\n return props.color && initColorList.includes(props.color) ? props.color : undefined;\n }\n if (props.type) {\n switch (props.type as BadgeType) {\n case 'success':\n case 'primary':\n case 'normal':\n case 'error':\n case 'warning':\n return props.type;\n default:\n return undefined;\n }\n }\n return undefined;\n });\n\n const statusStyles = computed(() => {\n return initColorList.includes(props.color) ? {} : { backgroundColor: props.color };\n });\n\n const styles = computed(() => {\n const style: CSSProperties = {} as CSSProperties;\n if (props.offset && props.offset.length === 2) {\n style.marginTop = `${props.offset[0]}px`;\n style.marginRight = `${props.offset[1]}px`;\n }\n return style;\n });\n\n const finalCount = computed(() => {\n if (props.text !== '') return props.text;\n return props.count !== undefined && Math.floor(props.count) >= Math.floor(props.overflowCount) ? `${props.overflowCount}+` : props.count;\n });\n\n const badgeShow = computed(() => {\n let status = false;\n\n if (props.count) {\n status = Math.floor(props.count) !== 0;\n }\n\n if (props.dot) {\n status = true;\n if (props.count !== undefined) {\n if (Math.floor(props.count) === 0) {\n status = false;\n }\n }\n }\n\n if (props.text !== '') status = true;\n\n return status || props.showZero;\n });\n\n const hasCount = computed(() => {\n if (props.count || props.text !== '') return true;\n if (props.showZero && props.count !== undefined && Math.floor(props.count) === 0) return true;\n return false;\n });\n\n return {\n prefixCls,\n styles,\n badgeShow,\n isColorStatus,\n statusStyles,\n hasCount,\n finalCount,\n computedColor\n };\n }\n});\n</script>\n"],"names":["colorType","defineComponent","badgeProps","useGlobalConfig","computed","_createElementBlock","_normalizeClass","_renderSlot","_createElementVNode","_normalizeStyle"],"mappings":"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"}
1
+ {"version":3,"file":"Badge.js","sources":["../../../../src/components/Badge/Badge.vue"],"sourcesContent":["<template>\n <span v-if=\"dot\" :class=\"prefixCls\">\n <slot />\n <sup v-show=\"badgeShow\" :class=\"`${prefixCls}-dot`\" :style=\"styles\" />\n </span>\n <span v-else-if=\"status || color\" :class=\"prefixCls\" class=\"uui-badge-status\">\n <span\n :class=\"[\n `${prefixCls}-status-dot`,\n {\n [`${prefixCls}-status-default`]: status === 'default',\n [`${prefixCls}-status-color`]: isColorStatus\n }\n ]\"\n :data-color=\"computedColor\"\n :style=\"statusStyles\"\n />\n <span class=\"uui-badge-status-text\">\n <slot name=\"text\">{{ text }}</slot>\n </span>\n </span>\n <span v-else :class=\"prefixCls\">\n <slot />\n <sup\n v-if=\"$slots.count\"\n :style=\"styles\"\n :class=\"[\n `${prefixCls}-count`,\n `${prefixCls}-count-custom`,\n {\n [`${className}`]: !!className\n }\n ]\"\n >\n <slot name=\"count\" />\n </sup>\n <sup\n v-else-if=\"hasCount\"\n v-show=\"badgeShow\"\n :style=\"styles\"\n :class=\"[\n `${prefixCls}-count`,\n {\n [`${className}`]: !!className,\n [`${prefixCls}-count-alone`]: $slots.default === undefined,\n [`${prefixCls}-count-type`]: !!type\n }\n ]\"\n :data-color=\"computedColor\"\n >\n <slot name=\"text\">{{ finalCount }}</slot>\n </sup>\n </span>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, computed } from 'vue';\nimport type { CSSProperties } from 'vue';\nimport useGlobalConfig from '../base/hooks/useGlobalConfig';\nimport { badgeProps } from './Badge.type';\nimport type { BadgeStatus, BadgeType } from './Badge.type';\nimport { colorType } from '../../utils/globalType';\n\nconst initColorList = colorType.toString().split(',');\n\nexport default defineComponent({\n name: 'UBadge',\n props: badgeProps,\n setup(props) {\n const { prefixCls } = useGlobalConfig('badge');\n\n const isColorStatus = computed(() => {\n return (!!props.color && initColorList.includes(props.color)) || (!!props.status && props.status !== 'default');\n });\n\n const computedColor = computed(() => {\n if (props.status) {\n switch (props.status as BadgeStatus) {\n case 'success':\n case 'error':\n case 'warning':\n return props.status;\n case 'processing':\n return 'primary';\n\n default:\n return undefined;\n }\n }\n if (props.color) {\n return props.color && initColorList.includes(props.color) ? props.color : undefined;\n }\n if (props.type) {\n switch (props.type as BadgeType) {\n case 'success':\n case 'primary':\n case 'normal':\n case 'error':\n case 'warning':\n return props.type;\n default:\n return undefined;\n }\n }\n return undefined;\n });\n\n const statusStyles = computed(() => {\n return initColorList.includes(props.color) ? {} : { backgroundColor: props.color };\n });\n\n const styles = computed(() => {\n const style: CSSProperties = {} as CSSProperties;\n if (props.offset && props.offset.length === 2) {\n style.marginTop = `${props.offset[0]}px`;\n style.marginRight = `${props.offset[1]}px`;\n }\n return style;\n });\n\n const finalCount = computed(() => {\n if (props.text !== '') return props.text;\n return props.count !== undefined && Math.floor(props.count) >= Math.floor(props.overflowCount) ? `${props.overflowCount}+` : props.count;\n });\n\n const badgeShow = computed(() => {\n let status = false;\n\n if (props.count) {\n status = Math.floor(props.count) !== 0;\n }\n\n if (props.dot) {\n status = true;\n if (props.count !== undefined) {\n if (Math.floor(props.count) === 0) {\n status = false;\n }\n }\n }\n\n if (props.text !== '') status = true;\n\n return status || props.showZero;\n });\n\n const hasCount = computed(() => {\n if (props.count || props.text !== '') return true;\n if (props.showZero && props.count !== undefined && Math.floor(props.count) === 0) return true;\n return false;\n });\n\n return {\n prefixCls,\n styles,\n badgeShow,\n isColorStatus,\n statusStyles,\n hasCount,\n finalCount,\n computedColor\n };\n }\n});\n</script>\n"],"names":["colorType","defineComponent","badgeProps","useGlobalConfig","computed","_createElementBlock","_normalizeClass","_renderSlot","_createElementVNode","_normalizeStyle"],"mappings":"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"}
@@ -27,6 +27,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
27
27
  type: StringConstructor;
28
28
  default: string;
29
29
  };
30
+ description: {
31
+ type: StringConstructor;
32
+ default: string;
33
+ };
30
34
  closable: {
31
35
  type: BooleanConstructor;
32
36
  default: boolean;
@@ -105,6 +109,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
105
109
  type: StringConstructor;
106
110
  default: string;
107
111
  };
112
+ description: {
113
+ type: StringConstructor;
114
+ default: string;
115
+ };
108
116
  closable: {
109
117
  type: BooleanConstructor;
110
118
  default: boolean;
@@ -156,6 +164,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
156
164
  "onUpdate:visible"?: (v: boolean) => any;
157
165
  "onAfter-visible-change"?: (v: boolean) => any;
158
166
  }>, {
167
+ description: string;
159
168
  visible: boolean;
160
169
  title: string;
161
170
  size: "default" | "large";
@@ -230,20 +230,22 @@ var Drawer = vue.defineComponent({
230
230
  const renderDrawer = lazyRender(() => {
231
231
  const renderConrent = () => {
232
232
  var _a;
233
- return vue.createVNode(vue.Fragment, null, [vue.createVNode("div", {
234
- "ref": headerRef,
235
- "class": `${prefixCls.value}-header`,
236
- "style": props.headerStyle
237
- }, [vue.createVNode("h2", {
238
- "class": `${prefixCls.value}-header-title`
239
- }, [slots.title ? slots.title() : props.title]), props.closable && vue.createVNode("button", {
233
+ return vue.createVNode(vue.Fragment, null, [props.closable && vue.createVNode("button", {
240
234
  "class": `${prefixCls.value}-close`,
241
235
  "onClick": () => handleClose("close")
242
236
  }, [vue.createVNode(index.UIcon, {
243
237
  "class": `${prefixCls.value}-close-icon`
244
238
  }, {
245
239
  default: () => [vue.createVNode(lucideVueNext.X, null, null)]
246
- })])]), vue.createVNode("div", {
240
+ })]), vue.createVNode("div", {
241
+ "ref": headerRef,
242
+ "class": `${prefixCls.value}-header`,
243
+ "style": props.headerStyle
244
+ }, [vue.createVNode("h2", {
245
+ "class": `${prefixCls.value}-header-title`
246
+ }, [slots.title ? slots.title() : props.title]), props.description && vue.createVNode("p", {
247
+ "class": `${prefixCls.value}-header-description`
248
+ }, [props.description])]), vue.createVNode("div", {
247
249
  "class": `${prefixCls.value}-body`,
248
250
  "style": {
249
251
  ...props.bodyStyle,
@@ -1 +1 @@
1
- {"version":3,"file":"Drawer.js","sources":["../../../../src/components/Drawer/Drawer.tsx"],"sourcesContent":["import {\n defineComponent,\n watch,\n computed,\n ref,\n provide,\n inject,\n // onMounted,\n onBeforeUnmount,\n onActivated,\n onDeactivated,\n nextTick,\n Teleport,\n Transition,\n onMounted\n} from 'vue';\nimport type { CSSProperties } from 'vue';\nimport { X } from 'lucide-vue-next';\nimport UIcon from '@uxd-ui/components/Icon';\nimport Mask from '../Mask';\nimport KeyCode from '../../utils/KeyCode';\nimport { useGlobalConfig, useLazyRender, useShouldRender } from '../base/hooks';\nimport { setBodyStyle, isValid } from '../../utils';\nimport { drawerProps, drawerEmits, type ChangeTranslateFunction, type DrawerCloseType } from './Drawer.type';\n\nlet visibleCount = 0;\nconst drawerGlobalZIndex = 1000;\n\nexport default defineComponent({\n name: 'UDrawer',\n inheritAttrs: false,\n props: drawerProps,\n emits: drawerEmits,\n setup(props, { emit, attrs, slots }) {\n let openStatus = false;\n let shouldReopen = false;\n const { prefixCls } = useGlobalConfig('drawer');\n const selfVisible = ref(props.visible);\n const zIndex = ref<number>(drawerGlobalZIndex);\n const animationEnd = ref(false);\n const isMounted = ref(false);\n\n const wrapRef = ref<HTMLElement | null>(null);\n const headerRef = ref<HTMLElement | null>(null);\n const footerRef = ref<HTMLElement | null>(null);\n\n const lazyRender = useLazyRender(() => props.visible || !props.lazyRender);\n\n const open = () => {\n if (!openStatus) {\n if (props.zIndex !== undefined) {\n zIndex.value = +props.zIndex;\n }\n openStatus = true;\n // zIndex.value = ++drawerGlobalZIndex;\n }\n };\n\n watch(\n () => props.visible,\n (val) => {\n selfVisible.value = val;\n if (val && !openStatus) {\n open();\n if (attrs.tabindex === 0) {\n nextTick(() => {\n wrapRef.value?.focus();\n });\n }\n }\n if (!val && openStatus) {\n openStatus = false;\n }\n }\n );\n\n const handleClose = (type: DrawerCloseType) => {\n selfVisible.value = false;\n openStatus = false;\n emit('update:visible', false);\n emit('close', type);\n };\n\n /**\n * @param {*}\n * @return {*}\n * @description mask close method\n */\n const handleMaskClose = () => {\n if (props.maskClosable) {\n handleClose('mask');\n }\n };\n\n /**\n * In case drawer might has child drawer component,\n * we need to translate parent drawer to tell them apart\n */\n const drawerLevel = ref(1);\n\n const changeTrans = (val: boolean) => {\n if (val) {\n drawerLevel.value += 1;\n } else if (drawerLevel.value > 1) {\n drawerLevel.value -= 1;\n }\n };\n\n provide('changeParentTrans', changeTrans);\n\n const changeParentTrans = inject<ChangeTranslateFunction | null>('changeParentTrans', null);\n\n const changeBodyOverflow = (val: boolean) => {\n if (visibleCount > 0 && val) {\n setBodyStyle(true);\n } else if (!visibleCount) {\n setBodyStyle(false);\n }\n };\n\n const bodyHeight = ref<string>('');\n\n const calcBodyHeight = () => {\n const headerFooter = Number(headerRef.value?.offsetHeight || 0) + Number(footerRef.value?.offsetHeight || 0);\n bodyHeight.value = `calc(100% - ${headerFooter}px)`;\n };\n\n const observer = new MutationObserver(calcBodyHeight);\n\n let init = false;\n watch(\n selfVisible,\n (val) => {\n if (changeParentTrans) {\n changeParentTrans(val);\n }\n if (props.parentDom === 'body') {\n if (val) {\n visibleCount += 1;\n } else if (init) {\n visibleCount -= 1;\n }\n if (init) {\n changeBodyOverflow(val);\n }\n }\n init = true;\n if (val) {\n nextTick(() => {\n calcBodyHeight();\n const config = { attributes: true, childList: true, subtree: true };\n if (wrapRef.value) {\n observer.observe(wrapRef.value as any, config);\n }\n });\n } else {\n observer.disconnect();\n }\n },\n { immediate: true }\n );\n\n const toDom = computed(() => {\n if (!props.parentDom) {\n return 'body';\n }\n if (typeof props.parentDom === 'function') {\n return props.parentDom() || 'body';\n }\n return props.parentDom;\n });\n\n const positionStyle = computed(() => {\n const style: CSSProperties = {};\n if (toDom.value !== 'body') {\n style.position = 'absolute';\n }\n return style;\n });\n\n const wrapStyle = computed(() => {\n const style: CSSProperties = {\n zIndex: zIndex.value\n };\n\n if (isValid(props.duration)) {\n style.transitionDuration = `${props.duration}s`;\n }\n\n const place = props.placement;\n let translate = 'none';\n let widthStyle: number | undefined = props.width;\n let heightStyle: number | undefined = props.height;\n if (place === 'left' || place === 'right') {\n translate = `translate(${place === 'left' ? 180 : -180}px, 0)`;\n heightStyle = undefined;\n }\n\n if (place === 'top' || place === 'bottom') {\n translate = `translateY(${place === 'top' ? 180 : -180}px)`;\n widthStyle = undefined;\n }\n\n style.width = widthStyle && `${widthStyle}px`;\n style.height = heightStyle && `${heightStyle}px`;\n style.transform = drawerLevel.value > 1 ? translate : undefined;\n style.zIndex = zIndex.value;\n\n return style;\n });\n\n onMounted(() => {\n isMounted.value = true;\n });\n\n onBeforeUnmount(() => {\n observer.disconnect();\n if (changeParentTrans && selfVisible.value) {\n changeParentTrans(false);\n }\n if (props.parentDom === 'body') {\n if (selfVisible.value) {\n visibleCount = visibleCount > 0 ? visibleCount - 1 : visibleCount;\n changeBodyOverflow(false);\n }\n }\n });\n\n onActivated(() => {\n if (shouldReopen) {\n emit('update:visible', true);\n shouldReopen = false;\n }\n });\n\n onDeactivated(() => {\n observer.disconnect();\n if (selfVisible.value) {\n handleClose('close');\n shouldReopen = true;\n }\n });\n\n /**\n * @param {event} e\n * @return {*}\n * @description handle key down event, to close drawer\n */\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.keyCode === KeyCode.ESC && props.escClosable) {\n handleClose('esc');\n }\n };\n\n /**\n * @param {*}\n * @return {*}\n * @description after transition animation end, invoke callback and desdroy wrap\n */\n const handleAnimationEnd = () => {\n // if (wrapRef.value === e.target && e.animationName.match(/^drawerSlide/)) {\n // emit('after-visible-change', selfVisible.value);\n // animationEnd.value = !selfVisible.value;\n // }\n emit('after-visible-change', selfVisible.value);\n animationEnd.value = !selfVisible.value;\n };\n\n const renderMask = () => {\n if (props.showMask) {\n return (\n <Mask\n show={props.visible}\n zIndex={zIndex.value - 1}\n duration={props.duration}\n customStyle={{ ...props.maskStyle, ...positionStyle.value }}\n class={props.maskClass}\n onClick={handleMaskClose}\n />\n );\n }\n };\n\n const renderDrawer = lazyRender(() => {\n const renderConrent = () => (\n <>\n <div ref={headerRef} class={`${prefixCls.value}-header`} style={props.headerStyle}>\n <h2 class={`${prefixCls.value}-header-title`}>{slots.title ? slots.title() : props.title}</h2>\n {props.closable && (\n <button class={`${prefixCls.value}-close`} onClick={() => handleClose('close')}>\n <UIcon class={`${prefixCls.value}-close-icon`}>\n <X />\n </UIcon>\n </button>\n )}\n </div>\n <div class={`${prefixCls.value}-body`} style={{ ...props.bodyStyle, height: bodyHeight.value }}>\n {slots.default?.()}\n </div>\n {slots.footer ? (\n <div ref={footerRef} class={`${prefixCls.value}-footer`} style={props.footerStyle}>\n {slots.footer()}\n </div>\n ) : null}\n </>\n );\n\n return (\n <div\n v-show={selfVisible.value}\n ref={wrapRef}\n class={[prefixCls.value, props.className, `${prefixCls.value}-${props.placement}`, `${prefixCls.value}-${props.size}`]}\n style={{ ...wrapStyle.value, ...positionStyle.value }}\n {...attrs}\n tabindex={-1}\n onKeydown={handleKeyDown}\n >\n {useShouldRender(props.visible, props.destroyOnClose, animationEnd.value, renderConrent)}\n </div>\n );\n });\n\n return () =>\n isMounted.value ? (\n <Teleport to={toDom.value}>\n <Transition\n v-slots={{ default: renderDrawer }}\n name={props.transition || `drawer-slide-${props.placement}`}\n appear={props.transitionAppear}\n onAfterEnter={handleAnimationEnd}\n onAfterLeave={handleAnimationEnd}\n />\n {renderMask()}\n </Teleport>\n ) : null;\n }\n});\n"],"names":["visibleCount","drawerGlobalZIndex","defineComponent","name","inheritAttrs","props","drawerProps","emits","drawerEmits","setup","emit","attrs","slots","openStatus","shouldReopen","prefixCls","useGlobalConfig","selfVisible","ref","visible","zIndex","animationEnd","isMounted","wrapRef","headerRef","footerRef","lazyRender","useLazyRender","open","undefined","value","watch","val","tabindex","nextTick","focus","handleClose","type","handleMaskClose","maskClosable","drawerLevel","changeTrans","provide","changeParentTrans","inject","changeBodyOverflow","setBodyStyle","bodyHeight","calcBodyHeight","headerFooter","Number","offsetHeight","observer","MutationObserver","init","parentDom","config","attributes","childList","subtree","observe","disconnect","immediate","toDom","computed","positionStyle","style","position","wrapStyle","isValid","duration","transitionDuration","place","placement","translate","widthStyle","width","heightStyle","height","transform","onMounted","onBeforeUnmount","onActivated","onDeactivated","handleKeyDown","e","keyCode","KeyCode","ESC","escClosable","handleAnimationEnd","renderMask","showMask","_createVNode","Mask","maskStyle","maskClass","renderDrawer","renderConrent","_Fragment","headerStyle","title","closable","onClick","UIcon","default","X","bodyStyle","footer","footerStyle","_withDirectives","_mergeProps","className","size","useShouldRender","destroyOnClose","_vShow","Teleport","Transition","transition","transitionAppear"],"mappings":"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"}
1
+ {"version":3,"file":"Drawer.js","sources":["../../../../src/components/Drawer/Drawer.tsx"],"sourcesContent":["import {\n defineComponent,\n watch,\n computed,\n ref,\n provide,\n inject,\n // onMounted,\n onBeforeUnmount,\n onActivated,\n onDeactivated,\n nextTick,\n Teleport,\n Transition,\n onMounted\n} from 'vue';\nimport type { CSSProperties } from 'vue';\nimport { X } from 'lucide-vue-next';\nimport UIcon from '@uxd-ui/components/Icon';\nimport Mask from '../Mask';\nimport KeyCode from '../../utils/KeyCode';\nimport { useGlobalConfig, useLazyRender, useShouldRender } from '../base/hooks';\nimport { setBodyStyle, isValid } from '../../utils';\nimport { drawerProps, drawerEmits, type ChangeTranslateFunction, type DrawerCloseType } from './Drawer.type';\n\nlet visibleCount = 0;\nconst drawerGlobalZIndex = 1000;\n\nexport default defineComponent({\n name: 'UDrawer',\n inheritAttrs: false,\n props: drawerProps,\n emits: drawerEmits,\n setup(props, { emit, attrs, slots }) {\n let openStatus = false;\n let shouldReopen = false;\n const { prefixCls } = useGlobalConfig('drawer');\n const selfVisible = ref(props.visible);\n const zIndex = ref<number>(drawerGlobalZIndex);\n const animationEnd = ref(false);\n const isMounted = ref(false);\n\n const wrapRef = ref<HTMLElement | null>(null);\n const headerRef = ref<HTMLElement | null>(null);\n const footerRef = ref<HTMLElement | null>(null);\n\n const lazyRender = useLazyRender(() => props.visible || !props.lazyRender);\n\n const open = () => {\n if (!openStatus) {\n if (props.zIndex !== undefined) {\n zIndex.value = +props.zIndex;\n }\n openStatus = true;\n // zIndex.value = ++drawerGlobalZIndex;\n }\n };\n\n watch(\n () => props.visible,\n (val) => {\n selfVisible.value = val;\n if (val && !openStatus) {\n open();\n if (attrs.tabindex === 0) {\n nextTick(() => {\n wrapRef.value?.focus();\n });\n }\n }\n if (!val && openStatus) {\n openStatus = false;\n }\n }\n );\n\n const handleClose = (type: DrawerCloseType) => {\n selfVisible.value = false;\n openStatus = false;\n emit('update:visible', false);\n emit('close', type);\n };\n\n /**\n * @param {*}\n * @return {*}\n * @description mask close method\n */\n const handleMaskClose = () => {\n if (props.maskClosable) {\n handleClose('mask');\n }\n };\n\n /**\n * In case drawer might has child drawer component,\n * we need to translate parent drawer to tell them apart\n */\n const drawerLevel = ref(1);\n\n const changeTrans = (val: boolean) => {\n if (val) {\n drawerLevel.value += 1;\n } else if (drawerLevel.value > 1) {\n drawerLevel.value -= 1;\n }\n };\n\n provide('changeParentTrans', changeTrans);\n\n const changeParentTrans = inject<ChangeTranslateFunction | null>('changeParentTrans', null);\n\n const changeBodyOverflow = (val: boolean) => {\n if (visibleCount > 0 && val) {\n setBodyStyle(true);\n } else if (!visibleCount) {\n setBodyStyle(false);\n }\n };\n\n const bodyHeight = ref<string>('');\n\n const calcBodyHeight = () => {\n const headerFooter = Number(headerRef.value?.offsetHeight || 0) + Number(footerRef.value?.offsetHeight || 0);\n bodyHeight.value = `calc(100% - ${headerFooter}px)`;\n };\n\n const observer = new MutationObserver(calcBodyHeight);\n\n let init = false;\n watch(\n selfVisible,\n (val) => {\n if (changeParentTrans) {\n changeParentTrans(val);\n }\n if (props.parentDom === 'body') {\n if (val) {\n visibleCount += 1;\n } else if (init) {\n visibleCount -= 1;\n }\n if (init) {\n changeBodyOverflow(val);\n }\n }\n init = true;\n if (val) {\n nextTick(() => {\n calcBodyHeight();\n const config = { attributes: true, childList: true, subtree: true };\n if (wrapRef.value) {\n observer.observe(wrapRef.value as any, config);\n }\n });\n } else {\n observer.disconnect();\n }\n },\n { immediate: true }\n );\n\n const toDom = computed(() => {\n if (!props.parentDom) {\n return 'body';\n }\n if (typeof props.parentDom === 'function') {\n return props.parentDom() || 'body';\n }\n return props.parentDom;\n });\n\n const positionStyle = computed(() => {\n const style: CSSProperties = {};\n if (toDom.value !== 'body') {\n style.position = 'absolute';\n }\n return style;\n });\n\n const wrapStyle = computed(() => {\n const style: CSSProperties = {\n zIndex: zIndex.value\n };\n\n if (isValid(props.duration)) {\n style.transitionDuration = `${props.duration}s`;\n }\n\n const place = props.placement;\n let translate = 'none';\n let widthStyle: number | undefined = props.width;\n let heightStyle: number | undefined = props.height;\n if (place === 'left' || place === 'right') {\n translate = `translate(${place === 'left' ? 180 : -180}px, 0)`;\n heightStyle = undefined;\n }\n\n if (place === 'top' || place === 'bottom') {\n translate = `translateY(${place === 'top' ? 180 : -180}px)`;\n widthStyle = undefined;\n }\n\n style.width = widthStyle && `${widthStyle}px`;\n style.height = heightStyle && `${heightStyle}px`;\n style.transform = drawerLevel.value > 1 ? translate : undefined;\n style.zIndex = zIndex.value;\n\n return style;\n });\n\n onMounted(() => {\n isMounted.value = true;\n });\n\n onBeforeUnmount(() => {\n observer.disconnect();\n if (changeParentTrans && selfVisible.value) {\n changeParentTrans(false);\n }\n if (props.parentDom === 'body') {\n if (selfVisible.value) {\n visibleCount = visibleCount > 0 ? visibleCount - 1 : visibleCount;\n changeBodyOverflow(false);\n }\n }\n });\n\n onActivated(() => {\n if (shouldReopen) {\n emit('update:visible', true);\n shouldReopen = false;\n }\n });\n\n onDeactivated(() => {\n observer.disconnect();\n if (selfVisible.value) {\n handleClose('close');\n shouldReopen = true;\n }\n });\n\n /**\n * @param {event} e\n * @return {*}\n * @description handle key down event, to close drawer\n */\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.keyCode === KeyCode.ESC && props.escClosable) {\n handleClose('esc');\n }\n };\n\n /**\n * @param {*}\n * @return {*}\n * @description after transition animation end, invoke callback and desdroy wrap\n */\n const handleAnimationEnd = () => {\n // if (wrapRef.value === e.target && e.animationName.match(/^drawerSlide/)) {\n // emit('after-visible-change', selfVisible.value);\n // animationEnd.value = !selfVisible.value;\n // }\n emit('after-visible-change', selfVisible.value);\n animationEnd.value = !selfVisible.value;\n };\n\n const renderMask = () => {\n if (props.showMask) {\n return (\n <Mask\n show={props.visible}\n zIndex={zIndex.value - 1}\n duration={props.duration}\n customStyle={{ ...props.maskStyle, ...positionStyle.value }}\n class={props.maskClass}\n onClick={handleMaskClose}\n />\n );\n }\n };\n\n const renderDrawer = lazyRender(() => {\n const renderConrent = () => (\n <>\n {props.closable && (\n <button class={`${prefixCls.value}-close`} onClick={() => handleClose('close')}>\n <UIcon class={`${prefixCls.value}-close-icon`}>\n <X />\n </UIcon>\n </button>\n )}\n <div ref={headerRef} class={`${prefixCls.value}-header`} style={props.headerStyle}>\n <h2 class={`${prefixCls.value}-header-title`}>{slots.title ? slots.title() : props.title}</h2>\n {props.description && <p class={`${prefixCls.value}-header-description`}>{props.description}</p>}\n </div>\n <div class={`${prefixCls.value}-body`} style={{ ...props.bodyStyle, height: bodyHeight.value }}>\n {slots.default?.()}\n </div>\n {slots.footer ? (\n <div ref={footerRef} class={`${prefixCls.value}-footer`} style={props.footerStyle}>\n {slots.footer()}\n </div>\n ) : null}\n </>\n );\n\n return (\n <div\n v-show={selfVisible.value}\n ref={wrapRef}\n class={[prefixCls.value, props.className, `${prefixCls.value}-${props.placement}`, `${prefixCls.value}-${props.size}`]}\n style={{ ...wrapStyle.value, ...positionStyle.value }}\n {...attrs}\n tabindex={-1}\n onKeydown={handleKeyDown}\n >\n {useShouldRender(props.visible, props.destroyOnClose, animationEnd.value, renderConrent)}\n </div>\n );\n });\n\n return () =>\n isMounted.value ? (\n <Teleport to={toDom.value}>\n <Transition\n v-slots={{ default: renderDrawer }}\n name={props.transition || `drawer-slide-${props.placement}`}\n appear={props.transitionAppear}\n onAfterEnter={handleAnimationEnd}\n onAfterLeave={handleAnimationEnd}\n />\n {renderMask()}\n </Teleport>\n ) : null;\n }\n});\n"],"names":["visibleCount","drawerGlobalZIndex","defineComponent","name","inheritAttrs","props","drawerProps","emits","drawerEmits","setup","emit","attrs","slots","openStatus","shouldReopen","prefixCls","useGlobalConfig","selfVisible","ref","visible","zIndex","animationEnd","isMounted","wrapRef","headerRef","footerRef","lazyRender","useLazyRender","open","undefined","value","watch","val","tabindex","nextTick","focus","handleClose","type","handleMaskClose","maskClosable","drawerLevel","changeTrans","provide","changeParentTrans","inject","changeBodyOverflow","setBodyStyle","bodyHeight","calcBodyHeight","headerFooter","Number","offsetHeight","observer","MutationObserver","init","parentDom","config","attributes","childList","subtree","observe","disconnect","immediate","toDom","computed","positionStyle","style","position","wrapStyle","isValid","duration","transitionDuration","place","placement","translate","widthStyle","width","heightStyle","height","transform","onMounted","onBeforeUnmount","onActivated","onDeactivated","handleKeyDown","e","keyCode","KeyCode","ESC","escClosable","handleAnimationEnd","renderMask","showMask","_createVNode","Mask","maskStyle","maskClass","renderDrawer","renderConrent","_Fragment","closable","onClick","UIcon","default","X","headerStyle","title","description","bodyStyle","footer","footerStyle","_withDirectives","_mergeProps","className","size","useShouldRender","destroyOnClose","_vShow","Teleport","Transition","transition","transitionAppear"],"mappings":"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"}
@@ -34,6 +34,10 @@ export declare const drawerProps: {
34
34
  type: StringConstructor;
35
35
  default: string;
36
36
  };
37
+ description: {
38
+ type: StringConstructor;
39
+ default: string;
40
+ };
37
41
  closable: {
38
42
  type: BooleanConstructor;
39
43
  default: boolean;
@@ -34,6 +34,10 @@ const drawerProps = {
34
34
  type: String,
35
35
  default: ""
36
36
  },
37
+ description: {
38
+ type: String,
39
+ default: ""
40
+ },
37
41
  closable: {
38
42
  type: Boolean,
39
43
  default: true
@@ -1 +1 @@
1
- {"version":3,"file":"Drawer.type.js","sources":["../../../../src/components/Drawer/Drawer.type.ts"],"sourcesContent":["import type { CSSProperties, ExtractPropTypes, PropType } from 'vue';\nimport { oneOf } from '../../utils/propsValidators';\nimport type Drawer from './Drawer';\n\nexport type ParentDom = string | (() => HTMLElement | string | null);\nexport const drawerPlacement = ['top', 'right', 'bottom', 'left'] as const;\nexport type DrawerPlacement = (typeof drawerPlacement)[number];\nexport const drawerSize = ['default', 'large'] as const;\nexport type DrawerSize = (typeof drawerSize)[number];\n\nexport type ChangeTranslateFunction = (val: boolean) => void;\n\nexport const drawerProps = {\n parentDom: {\n type: [String, Function] as PropType<ParentDom>,\n default: 'body'\n },\n className: String,\n visible: {\n type: Boolean,\n default: false\n },\n placement: {\n type: String as PropType<DrawerPlacement>,\n validator: oneOf(drawerPlacement),\n default: 'right'\n },\n size: {\n type: String as PropType<DrawerSize>,\n validator: oneOf(drawerSize),\n default: 'default'\n },\n maskClosable: {\n type: Boolean,\n default: true\n },\n title: {\n type: String,\n default: ''\n },\n closable: {\n type: Boolean,\n default: true\n },\n showMask: {\n type: Boolean,\n default: true\n },\n maskClass: String,\n maskStyle: {\n type: Object as PropType<CSSProperties>,\n default: () => ({})\n },\n headerStyle: {\n type: Object as PropType<CSSProperties>,\n default: () => ({})\n },\n bodyStyle: {\n type: Object as PropType<CSSProperties>,\n default: () => ({})\n },\n footerStyle: {\n type: Object as PropType<CSSProperties>,\n default: () => ({})\n },\n width: Number,\n height: Number,\n zIndex: Number,\n duration: Number,\n escClosable: {\n type: Boolean,\n default: true\n },\n destroyOnClose: {\n type: Boolean,\n default: true\n },\n transition: String,\n transitionAppear: {\n type: Boolean,\n default: true\n },\n lazyRender: {\n type: Boolean,\n default: true\n }\n};\n\nexport type DrawerProps = ExtractPropTypes<typeof drawerProps>;\n\nexport const drawerCloseType = ['esc', 'mask', 'close'] as const;\nexport type DrawerCloseType = (typeof drawerCloseType)[number];\n\nexport const drawerEmits = {\n 'update:visible': (v: boolean) => typeof v === 'boolean',\n close: (type: DrawerCloseType) => drawerCloseType.includes(type),\n 'after-visible-change': (v: boolean) => typeof v === 'boolean'\n};\n\nexport type DrawerEmits = typeof drawerEmits;\n\nexport type DrawerInstanceType = InstanceType<typeof Drawer>;\n"],"names":["oneOf"],"mappings":";;;;;;MAKa,kBAAkB,CAAC,OAAO,SAAS,UAAU,MAAM;MAEnD,aAAa,CAAC,WAAW,OAAO;MAKhC,cAAc;AAAA,EACzB,WAAW;AAAA,IACT,MAAM,CAAC,QAAQ,QAAQ;AAAA,IACvB,SAAS;AAAA;AACX,EACA,WAAW;AAAA,EACX,SAAS;AAAA,IACP,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,WAAW;AAAA,IACT,MAAM;AAAA,IACN,WAAWA,sBAAM,eAAe;AAAA,IAChC,SAAS;AAAA;AACX,EACA,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,WAAWA,sBAAM,UAAU;AAAA,IAC3B,SAAS;AAAA;AACX,EACA,cAAc;AAAA,IACZ,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,OAAO;AAAA,IACL,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,UAAU;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,UAAU;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,WAAW;AAAA,EACX,WAAW;AAAA,IACT,MAAM;AAAA,IACN,SAAS,OAAO;AAAC;AACnB,EACA,aAAa;AAAA,IACX,MAAM;AAAA,IACN,SAAS,OAAO;AAAC;AACnB,EACA,WAAW;AAAA,IACT,MAAM;AAAA,IACN,SAAS,OAAO;AAAC;AACnB,EACA,aAAa;AAAA,IACX,MAAM;AAAA,IACN,SAAS,OAAO;AAAC;AACnB,EACA,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,aAAa;AAAA,IACX,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,gBAAgB;AAAA,IACd,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,YAAY;AAAA,EACZ,kBAAkB;AAAA,IAChB,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,YAAY;AAAA,IACV,MAAM;AAAA,IACN,SAAS;AAAA;AAEb;MAIa,kBAAkB,CAAC,OAAO,QAAQ,OAAO;MAGzC,cAAc;AAAA,EACzB,kBAAkB,CAAC,MAAe,OAAO,MAAM;AAAA,EAC/C,OAAO,CAAC,SAA0B,gBAAgB,SAAS,IAAI;AAAA,EAC/D,wBAAwB,CAAC,MAAe,OAAO,MAAM;AACvD;;;;;;;;"}
1
+ {"version":3,"file":"Drawer.type.js","sources":["../../../../src/components/Drawer/Drawer.type.ts"],"sourcesContent":["import type { CSSProperties, ExtractPropTypes, PropType } from 'vue';\nimport { oneOf } from '../../utils/propsValidators';\nimport type Drawer from './Drawer';\n\nexport type ParentDom = string | (() => HTMLElement | string | null);\nexport const drawerPlacement = ['top', 'right', 'bottom', 'left'] as const;\nexport type DrawerPlacement = (typeof drawerPlacement)[number];\nexport const drawerSize = ['default', 'large'] as const;\nexport type DrawerSize = (typeof drawerSize)[number];\n\nexport type ChangeTranslateFunction = (val: boolean) => void;\n\nexport const drawerProps = {\n parentDom: {\n type: [String, Function] as PropType<ParentDom>,\n default: 'body'\n },\n className: String,\n visible: {\n type: Boolean,\n default: false\n },\n placement: {\n type: String as PropType<DrawerPlacement>,\n validator: oneOf(drawerPlacement),\n default: 'right'\n },\n size: {\n type: String as PropType<DrawerSize>,\n validator: oneOf(drawerSize),\n default: 'default'\n },\n maskClosable: {\n type: Boolean,\n default: true\n },\n title: {\n type: String,\n default: ''\n },\n description: {\n type: String,\n default: ''\n },\n closable: {\n type: Boolean,\n default: true\n },\n showMask: {\n type: Boolean,\n default: true\n },\n maskClass: String,\n maskStyle: {\n type: Object as PropType<CSSProperties>,\n default: () => ({})\n },\n headerStyle: {\n type: Object as PropType<CSSProperties>,\n default: () => ({})\n },\n bodyStyle: {\n type: Object as PropType<CSSProperties>,\n default: () => ({})\n },\n footerStyle: {\n type: Object as PropType<CSSProperties>,\n default: () => ({})\n },\n width: Number,\n height: Number,\n zIndex: Number,\n duration: Number,\n escClosable: {\n type: Boolean,\n default: true\n },\n destroyOnClose: {\n type: Boolean,\n default: true\n },\n transition: String,\n transitionAppear: {\n type: Boolean,\n default: true\n },\n lazyRender: {\n type: Boolean,\n default: true\n }\n};\n\nexport type DrawerProps = ExtractPropTypes<typeof drawerProps>;\n\nexport const drawerCloseType = ['esc', 'mask', 'close'] as const;\nexport type DrawerCloseType = (typeof drawerCloseType)[number];\n\nexport const drawerEmits = {\n 'update:visible': (v: boolean) => typeof v === 'boolean',\n close: (type: DrawerCloseType) => drawerCloseType.includes(type),\n 'after-visible-change': (v: boolean) => typeof v === 'boolean'\n};\n\nexport type DrawerEmits = typeof drawerEmits;\n\nexport type DrawerInstanceType = InstanceType<typeof Drawer>;\n"],"names":["oneOf"],"mappings":";;;;;;MAKa,kBAAkB,CAAC,OAAO,SAAS,UAAU,MAAM;MAEnD,aAAa,CAAC,WAAW,OAAO;MAKhC,cAAc;AAAA,EACzB,WAAW;AAAA,IACT,MAAM,CAAC,QAAQ,QAAQ;AAAA,IACvB,SAAS;AAAA;AACX,EACA,WAAW;AAAA,EACX,SAAS;AAAA,IACP,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,WAAW;AAAA,IACT,MAAM;AAAA,IACN,WAAWA,sBAAM,eAAe;AAAA,IAChC,SAAS;AAAA;AACX,EACA,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,WAAWA,sBAAM,UAAU;AAAA,IAC3B,SAAS;AAAA;AACX,EACA,cAAc;AAAA,IACZ,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,OAAO;AAAA,IACL,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,aAAa;AAAA,IACX,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,UAAU;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,UAAU;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,WAAW;AAAA,EACX,WAAW;AAAA,IACT,MAAM;AAAA,IACN,SAAS,OAAO;AAAC;AACnB,EACA,aAAa;AAAA,IACX,MAAM;AAAA,IACN,SAAS,OAAO;AAAC;AACnB,EACA,WAAW;AAAA,IACT,MAAM;AAAA,IACN,SAAS,OAAO;AAAC;AACnB,EACA,aAAa;AAAA,IACX,MAAM;AAAA,IACN,SAAS,OAAO;AAAC;AACnB,EACA,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,aAAa;AAAA,IACX,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,gBAAgB;AAAA,IACd,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,YAAY;AAAA,EACZ,kBAAkB;AAAA,IAChB,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,YAAY;AAAA,IACV,MAAM;AAAA,IACN,SAAS;AAAA;AAEb;MAIa,kBAAkB,CAAC,OAAO,QAAQ,OAAO;MAGzC,cAAc;AAAA,EACzB,kBAAkB,CAAC,MAAe,OAAO,MAAM;AAAA,EAC/C,OAAO,CAAC,SAA0B,gBAAgB,SAAS,IAAI;AAAA,EAC/D,wBAAwB,CAAC,MAAe,OAAO,MAAM;AACvD;;;;;;;;"}
@@ -27,6 +27,10 @@ export declare const UDrawer: {
27
27
  type: StringConstructor;
28
28
  default: string;
29
29
  };
30
+ description: {
31
+ type: StringConstructor;
32
+ default: string;
33
+ };
30
34
  closable: {
31
35
  type: BooleanConstructor;
32
36
  default: boolean;
@@ -84,6 +88,7 @@ export declare const UDrawer: {
84
88
  }, import("vue").PublicProps, {
85
89
  closable: boolean;
86
90
  size: "default" | "large";
91
+ description: string;
87
92
  visible: boolean;
88
93
  placement: "top" | "bottom" | "right" | "left";
89
94
  title: string;
@@ -133,6 +138,10 @@ export declare const UDrawer: {
133
138
  type: StringConstructor;
134
139
  default: string;
135
140
  };
141
+ description: {
142
+ type: StringConstructor;
143
+ default: string;
144
+ };
136
145
  closable: {
137
146
  type: BooleanConstructor;
138
147
  default: boolean;
@@ -186,6 +195,7 @@ export declare const UDrawer: {
186
195
  }>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, {
187
196
  closable: boolean;
188
197
  size: "default" | "large";
198
+ description: string;
189
199
  visible: boolean;
190
200
  placement: "top" | "bottom" | "right" | "left";
191
201
  title: string;
@@ -232,6 +242,10 @@ export declare const UDrawer: {
232
242
  type: StringConstructor;
233
243
  default: string;
234
244
  };
245
+ description: {
246
+ type: StringConstructor;
247
+ default: string;
248
+ };
235
249
  closable: {
236
250
  type: BooleanConstructor;
237
251
  default: boolean;
@@ -289,6 +303,7 @@ export declare const UDrawer: {
289
303
  }, string, {
290
304
  closable: boolean;
291
305
  size: "default" | "large";
306
+ description: string;
292
307
  visible: boolean;
293
308
  placement: "top" | "bottom" | "right" | "left";
294
309
  title: string;
@@ -58,7 +58,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
58
58
  default: string;
59
59
  validator: (value: any) => boolean;
60
60
  };
61
- }>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "after-show-mask-change"[], "after-show-mask-change", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
61
+ }>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("click" | "after-show-mask-change")[], "click" | "after-show-mask-change", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
62
62
  show: BooleanConstructor;
63
63
  zIndex: (StringConstructor | NumberConstructor)[];
64
64
  duration: (StringConstructor | NumberConstructor)[];
@@ -86,6 +86,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
86
86
  validator: (value: any) => boolean;
87
87
  };
88
88
  }>> & Readonly<{
89
+ onClick?: (...args: any[]) => any;
89
90
  "onAfter-show-mask-change"?: (...args: any[]) => any;
90
91
  }>, {
91
92
  show: boolean;
@@ -55,7 +55,7 @@ const maskProps = {
55
55
  var Mask = vue.defineComponent({
56
56
  name: "UMask",
57
57
  props: maskProps,
58
- emits: ["after-show-mask-change"],
58
+ emits: ["after-show-mask-change", "click"],
59
59
  setup(props, {
60
60
  slots,
61
61
  emit,
@@ -86,6 +86,9 @@ var Mask = vue.defineComponent({
86
86
  const maskColor = props.color === "white" ? "255, 255, 255" : "0, 0, 0";
87
87
  return `rgba(${maskColor}, ${opacity})`;
88
88
  });
89
+ const handleClick = () => {
90
+ emit("click");
91
+ };
89
92
  const renderMask = lazyRender(() => {
90
93
  const style = {
91
94
  backgroundColor: maskBackground.value,
@@ -101,7 +104,8 @@ var Mask = vue.defineComponent({
101
104
  "class": prefixCls.value,
102
105
  "onTouchmove": props.preventScroll ? handleTouchMove : () => {
103
106
  },
104
- "onAnimationend": handleAnimationend
107
+ "onAnimationend": handleAnimationend,
108
+ "onClick": handleClick
105
109
  }, [useShouldRender.useShouldRender(props.show, props.desdroyOnClose, animationEnd.value, slots.default)]), [[vue.vShow, props.show]]);
106
110
  });
107
111
  return () => vue.createVNode(vue.Transition, {
@@ -1 +1 @@
1
- {"version":3,"file":"Mask.js","sources":["../../../../src/components/Mask/Mask.tsx"],"sourcesContent":["import { ref, computed, Transition, defineComponent } from 'vue';\nimport type { PropType, CSSProperties } from 'vue';\nimport { isValid, oneOf, getPropStyle, preventDefault } from '../../utils';\nimport { useGlobalConfig, useLazyRender, useShouldRender } from '../base/hooks';\nimport type { OpacityMap, MaskColor, MaskOpacity } from './Mask.type';\n\nexport const maskColors = ['black', 'white'] as const;\nexport const maskOpacity = ['lighter', 'default', 'darker'] as const;\nexport const opacityMap: OpacityMap = {\n lighter: 0.35,\n default: 0.55,\n darker: 0.75\n};\n\nexport const maskProps = {\n show: Boolean,\n zIndex: [Number, String],\n duration: [Number, String],\n preventScroll: {\n type: Boolean,\n default: true\n },\n lazyRender: {\n type: Boolean,\n default: true\n },\n desdroyOnClose: {\n type: Boolean,\n default: true\n },\n customStyle: Object as PropType<CSSProperties>,\n color: {\n type: String as PropType<MaskColor>,\n default: 'black',\n validator: oneOf(maskColors)\n },\n opacity: {\n type: [Number, String],\n default: 'default',\n validator: (value: any) => {\n if (typeof value === 'string') {\n return maskOpacity.includes(value as MaskOpacity);\n }\n return value >= 0 && value <= 1;\n }\n }\n};\n\nexport default defineComponent({\n name: 'UMask',\n props: maskProps,\n emits: ['after-show-mask-change'],\n setup(props, { slots, emit, expose }) {\n const { prefixCls } = useGlobalConfig('mask');\n const maskRef = ref<HTMLElement | null>(null);\n const animationEnd = ref(false);\n const lazyRender = useLazyRender(() => props.show || !props.lazyRender);\n expose({ maskRef, animationEnd });\n\n const handleTouchMove = (event: Event) => {\n preventDefault(event, true);\n };\n\n const handleAnimationend = (event: AnimationEvent) => {\n if (event.target === maskRef.value && event.animationName.match(/uuiFade$/)) {\n animationEnd.value = !props.show;\n emit('after-show-mask-change', props.show);\n }\n };\n\n const maskBackground = computed(() => {\n const opacity = opacityMap[props.opacity as keyof OpacityMap] ?? props.opacity;\n const maskColor = props.color === 'white' ? '255, 255, 255' : '0, 0, 0';\n return `rgba(${maskColor}, ${opacity})`;\n });\n\n const renderMask = lazyRender(() => {\n const style: CSSProperties = {\n backgroundColor: maskBackground.value,\n ...getPropStyle('zIndex', props.zIndex),\n ...props.customStyle\n };\n\n if (isValid(props.duration)) {\n style.animationDuration = `${props.duration}s`;\n }\n\n return (\n <div\n ref={maskRef}\n v-show={props.show}\n style={style}\n class={prefixCls.value}\n onTouchmove={props.preventScroll ? handleTouchMove : () => {}}\n onAnimationend={handleAnimationend}\n >\n {useShouldRender(props.show, props.desdroyOnClose, animationEnd.value, slots.default)}\n </div>\n );\n });\n\n return () => <Transition v-slots={{ default: renderMask }} name={`fade`} appear />;\n }\n});\n"],"names":["maskColors","maskOpacity","opacityMap","lighter","default","darker","maskProps","show","Boolean","zIndex","Number","String","duration","preventScroll","type","lazyRender","desdroyOnClose","customStyle","Object","color","validator","oneOf","opacity","value","includes","defineComponent","name","props","emits","setup","slots","emit","expose","prefixCls","useGlobalConfig","maskRef","ref","animationEnd","useLazyRender","handleTouchMove","event","preventDefault","handleAnimationend","target","animationName","match","maskBackground","computed","maskColor","renderMask","style","backgroundColor","getPropStyle","isValid","animationDuration","_withDirectives","_createVNode","useShouldRender","_vShow","Transition"],"mappings":"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"}
1
+ {"version":3,"file":"Mask.js","sources":["../../../../src/components/Mask/Mask.tsx"],"sourcesContent":["import { ref, computed, Transition, defineComponent } from 'vue';\nimport type { PropType, CSSProperties } from 'vue';\nimport { isValid, oneOf, getPropStyle, preventDefault } from '../../utils';\nimport { useGlobalConfig, useLazyRender, useShouldRender } from '../base/hooks';\nimport type { OpacityMap, MaskColor, MaskOpacity } from './Mask.type';\n\nexport const maskColors = ['black', 'white'] as const;\nexport const maskOpacity = ['lighter', 'default', 'darker'] as const;\nexport const opacityMap: OpacityMap = {\n lighter: 0.35,\n default: 0.55,\n darker: 0.75\n};\n\nexport const maskProps = {\n show: Boolean,\n zIndex: [Number, String],\n duration: [Number, String],\n preventScroll: {\n type: Boolean,\n default: true\n },\n lazyRender: {\n type: Boolean,\n default: true\n },\n desdroyOnClose: {\n type: Boolean,\n default: true\n },\n customStyle: Object as PropType<CSSProperties>,\n color: {\n type: String as PropType<MaskColor>,\n default: 'black',\n validator: oneOf(maskColors)\n },\n opacity: {\n type: [Number, String],\n default: 'default',\n validator: (value: any) => {\n if (typeof value === 'string') {\n return maskOpacity.includes(value as MaskOpacity);\n }\n return value >= 0 && value <= 1;\n }\n }\n};\n\nexport default defineComponent({\n name: 'UMask',\n props: maskProps,\n emits: ['after-show-mask-change', 'click'],\n setup(props, { slots, emit, expose }) {\n const { prefixCls } = useGlobalConfig('mask');\n const maskRef = ref<HTMLElement | null>(null);\n const animationEnd = ref(false);\n const lazyRender = useLazyRender(() => props.show || !props.lazyRender);\n expose({ maskRef, animationEnd });\n\n const handleTouchMove = (event: Event) => {\n preventDefault(event, true);\n };\n\n const handleAnimationend = (event: AnimationEvent) => {\n if (event.target === maskRef.value && event.animationName.match(/uuiFade$/)) {\n animationEnd.value = !props.show;\n emit('after-show-mask-change', props.show);\n }\n };\n\n const maskBackground = computed(() => {\n const opacity = opacityMap[props.opacity as keyof OpacityMap] ?? props.opacity;\n const maskColor = props.color === 'white' ? '255, 255, 255' : '0, 0, 0';\n return `rgba(${maskColor}, ${opacity})`;\n });\n\n const handleClick = () => {\n emit('click');\n };\n\n const renderMask = lazyRender(() => {\n const style: CSSProperties = {\n backgroundColor: maskBackground.value,\n ...getPropStyle('zIndex', props.zIndex),\n ...props.customStyle\n };\n\n if (isValid(props.duration)) {\n style.animationDuration = `${props.duration}s`;\n }\n\n return (\n <div\n ref={maskRef}\n v-show={props.show}\n style={style}\n class={prefixCls.value}\n onTouchmove={props.preventScroll ? handleTouchMove : () => {}}\n onAnimationend={handleAnimationend}\n onClick={handleClick}\n >\n {useShouldRender(props.show, props.desdroyOnClose, animationEnd.value, slots.default)}\n </div>\n );\n });\n\n return () => <Transition v-slots={{ default: renderMask }} name={`fade`} appear />;\n }\n});\n"],"names":["maskColors","maskOpacity","opacityMap","lighter","default","darker","maskProps","show","Boolean","zIndex","Number","String","duration","preventScroll","type","lazyRender","desdroyOnClose","customStyle","Object","color","validator","oneOf","opacity","value","includes","defineComponent","name","props","emits","setup","slots","emit","expose","prefixCls","useGlobalConfig","maskRef","ref","animationEnd","useLazyRender","handleTouchMove","event","preventDefault","handleAnimationend","target","animationName","match","maskBackground","computed","maskColor","handleClick","renderMask","style","backgroundColor","getPropStyle","isValid","animationDuration","_withDirectives","_createVNode","useShouldRender","_vShow","Transition"],"mappings":"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"}
@@ -28,8 +28,9 @@ export declare const UMask: {
28
28
  validator: (value: any) => boolean;
29
29
  };
30
30
  }>> & Readonly<{
31
+ onClick?: (...args: any[]) => any;
31
32
  "onAfter-show-mask-change"?: (...args: any[]) => any;
32
- }>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "after-show-mask-change"[], import("vue").PublicProps, {
33
+ }>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("click" | "after-show-mask-change")[], import("vue").PublicProps, {
33
34
  color: import("./Mask.type").MaskColor;
34
35
  show: boolean;
35
36
  opacity: string | number;
@@ -71,6 +72,7 @@ export declare const UMask: {
71
72
  validator: (value: any) => boolean;
72
73
  };
73
74
  }>> & Readonly<{
75
+ onClick?: (...args: any[]) => any;
74
76
  "onAfter-show-mask-change"?: (...args: any[]) => any;
75
77
  }>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, {
76
78
  color: import("./Mask.type").MaskColor;
@@ -111,8 +113,9 @@ export declare const UMask: {
111
113
  validator: (value: any) => boolean;
112
114
  };
113
115
  }>> & Readonly<{
116
+ onClick?: (...args: any[]) => any;
114
117
  "onAfter-show-mask-change"?: (...args: any[]) => any;
115
- }>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "after-show-mask-change"[], "after-show-mask-change", {
118
+ }>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("click" | "after-show-mask-change")[], "click" | "after-show-mask-change", {
116
119
  color: import("./Mask.type").MaskColor;
117
120
  show: boolean;
118
121
  opacity: string | number;
@@ -12,6 +12,7 @@ export interface MessageParams {
12
12
  class?: string;
13
13
  closable?: boolean;
14
14
  background?: boolean;
15
+ showIcon?: boolean;
15
16
  }
16
17
  export interface MessageOption {
17
18
  top?: string;
@@ -49,15 +49,6 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
49
49
  type: import("vue").PropType<"strong" | "surface">;
50
50
  default: string;
51
51
  };
52
- color: {
53
- type: import("vue").PropType<"blue" | "cyan" | "green" | "lime" | "orange" | "pink" | "purple" | "red" | "violet" | "yellow" | "primary" | "iris" | "amber" | "sky" | "mint">;
54
- default: "blue" | "cyan" | "green" | "lime" | "orange" | "pink" | "purple" | "red" | "violet" | "yellow" | "primary" | "iris" | "amber" | "sky" | "mint";
55
- validator: (val: "blue" | "cyan" | "green" | "lime" | "orange" | "pink" | "purple" | "red" | "violet" | "yellow" | "primary" | "iris" | "amber" | "sky" | "mint") => boolean;
56
- };
57
- size: {
58
- type: import("vue").PropType<"small" | "default">;
59
- default: string;
60
- };
61
52
  direction: {
62
53
  type: import("vue").PropType<"ltr" | "rtl">;
63
54
  };
@@ -199,15 +190,6 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
199
190
  type: import("vue").PropType<"strong" | "surface">;
200
191
  default: string;
201
192
  };
202
- color: {
203
- type: import("vue").PropType<"blue" | "cyan" | "green" | "lime" | "orange" | "pink" | "purple" | "red" | "violet" | "yellow" | "primary" | "iris" | "amber" | "sky" | "mint">;
204
- default: "blue" | "cyan" | "green" | "lime" | "orange" | "pink" | "purple" | "red" | "violet" | "yellow" | "primary" | "iris" | "amber" | "sky" | "mint";
205
- validator: (val: "blue" | "cyan" | "green" | "lime" | "orange" | "pink" | "purple" | "red" | "violet" | "yellow" | "primary" | "iris" | "amber" | "sky" | "mint") => boolean;
206
- };
207
- size: {
208
- type: import("vue").PropType<"small" | "default">;
209
- default: string;
210
- };
211
193
  direction: {
212
194
  type: import("vue").PropType<"ltr" | "rtl">;
213
195
  };
@@ -217,9 +199,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
217
199
  "onAfter-change"?: (v: import("./Slider.type").SliderValueType) => any;
218
200
  }>, {
219
201
  max: number;
220
- color: "blue" | "cyan" | "green" | "lime" | "orange" | "pink" | "purple" | "red" | "violet" | "yellow" | "primary" | "iris" | "amber" | "sky" | "mint";
221
202
  disabled: boolean;
222
- size: "small" | "default";
223
203
  vertical: boolean;
224
204
  range: boolean;
225
205
  min: number;
@@ -394,13 +394,12 @@ var Slider = vue.defineComponent({
394
394
  })]);
395
395
  return vue.createVNode("div", {
396
396
  "ref": "sliderRef",
397
- "class": [this.prefixCls, `${this.prefixCls}-variant-${this.variant}`, `${this.prefixCls}-size-${this.size}`, {
397
+ "class": [this.prefixCls, `${this.prefixCls}-variant-${this.variant}`, {
398
398
  [`${this.prefixCls}-with-marks`]: this.marks && Object.keys(this.marks).length,
399
399
  [`${this.prefixCls}-disabled`]: this.disabled,
400
400
  [`${this.prefixCls}-vertical`]: this.vertical,
401
401
  [`${this.prefixCls}-rtl`]: this.direction === "rtl" && !this.vertical
402
402
  }],
403
- "data-color": this.color,
404
403
  "onMousedown": this.handleMouseDown,
405
404
  "onMouseup": this.handleMouseUp
406
405
  }, [vue.createVNode("div", {