@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
@@ -17,13 +17,11 @@ const _sfc_main = defineComponent({
17
17
  if (props.status) {
18
18
  switch (props.status) {
19
19
  case "success":
20
- return "green";
21
- case "processing":
22
- return "blue";
23
20
  case "error":
24
- return "red";
25
21
  case "warning":
26
- return "orange";
22
+ return props.status;
23
+ case "processing":
24
+ return "primary";
27
25
  default:
28
26
  return void 0;
29
27
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Badge.mjs","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":["_createElementBlock","_normalizeClass","_renderSlot","_createElementVNode","_normalizeStyle"],"mappings":";;;;;;AA+DA,MAAM,gBAAgB,UAAU,WAAW,MAAM,GAAG;AAEpD,MAAK,YAAa,gBAAa;AAAA,EAC7B,MAAM;AAAA,EACN,OAAO;AAAA,EACP,MAAM,OAAO;UACL,EAAE,cAAc,gBAAgB,OAAO;UAEvC,gBAAgB,SAAS,MAAM;aAC3B,CAAC,CAAC,MAAM,SAAS,cAAc,SAAS,MAAM,KAAK,KAAO,CAAC,CAAC,MAAM,UAAU,MAAM,WAAW;AAAA,KACtG;UAEK,gBAAgB,SAAS,MAAM;UAC/B,MAAM,QAAQ;gBACR,MAAM;AAAA,eACP;mBACI;AAAA,eACJ;mBACI;AAAA,eACJ;mBACI;AAAA,eACJ;mBACI;AAAA;mBAEA;AAAA;AAAA;UAGT,MAAM,OAAO;eACR,MAAM,SAAS,cAAc,SAAS,MAAM,KAAK,IAAI,MAAM,QAAQ;AAAA;UAExE,MAAM,MAAM;gBACN,MAAM;AAAA,eACP;AAAA,eACA;AAAA,eACA;AAAA,eACA;AAAA,eACA;mBACI,MAAM;AAAA;mBAEN;AAAA;AAAA;aAGN;AAAA,KACR;UAEK,eAAe,SAAS,MAAM;aAC3B,cAAc,SAAS,MAAM,KAAK,IAAI,KAAK,EAAE,iBAAiB,MAAM;AAAM,KAClF;UAEK,SAAS,SAAS,MAAM;YACtB,QAAuB;UACzB,MAAM,UAAU,MAAM,OAAO,WAAW,GAAG;cACvC,YAAY,GAAG,MAAM,OAAO;cAC5B,cAAc,GAAG,MAAM,OAAO;AAAA;aAE/B;AAAA,KACR;UAEK,aAAa,SAAS,MAAM;UAC5B,MAAM,SAAS;eAAW,MAAM;aAC7B,MAAM,UAAU,UAAa,KAAK,MAAM,MAAM,KAAK,KAAK,KAAK,MAAM,MAAM,aAAa,IAAI,GAAG,MAAM,mBAAmB,MAAM;AAAA,KACpI;UAEK,YAAY,SAAS,MAAM;UAC3B,SAAS;UAET,MAAM,OAAO;iBACN,KAAK,MAAM,MAAM,KAAK,MAAM;AAAA;UAGnC,MAAM,KAAK;iBACJ;YACL,MAAM,UAAU,QAAW;cACzB,KAAK,MAAM,MAAM,KAAK,MAAM,GAAG;qBACxB;AAAA;AACX;AACF;UAGE,MAAM,SAAS;iBAAa;aAEzB,UAAU,MAAM;AAAA,KACxB;UAEK,WAAW,SAAS,MAAM;UAC1B,MAAM,SAAS,MAAM,SAAS;eAAW;UACzC,MAAM,YAAY,MAAM,UAAU,UAAa,KAAK,MAAM,MAAM,KAAK,MAAM;eAAU;aAClF;AAAA,KACR;WAEM;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AACF;AAEJ,CAAC;;qBAnJS,OAAM;;;SAhBF,yBAAZA,mBAGO;;IAHW,OAAKC,eAAE,cAAS;AAAA;IAChCC,WAAQ;mBACRC,mBAAsE;MAA7C,OAAKF,kBAAK,oBAAS;AAAA,MAAS,OAAKG,eAAE,WAAM;AAAA;cAArD,cAAS;AAAA;WAEP,eAAU,2BAA3BJ,mBAeO;;IAf4B,OAAKC,gBAAE,gBAAiB,kBAAkB;;IAC3EE,mBAUE;MATC,OAAKF;WAAe;;cAAgD,kCAA6B,gBAAM;AAAA,cAA8B,gCAA2B;;;MAOhK,cAAY;MACZ,OAAKG,eAAE,iBAAY;AAAA;IAEtBD,mBAEO,QAFP,YAEO;AAAA,MADLD,WAAmC,yBAAnC,MAAmC;AAAA,wCAAd,SAAI;;;yBAG7BF,mBA+BO;;IA/BO,OAAKC,eAAE,cAAS;AAAA;IAC5BC,WAAQ;IAEA,YAAO,sBADfF,mBAYM;;MAVH,OAAKI,eAAE,WAAM;AAAA,MACb,OAAKH;WAAe;WAA8B;;cAAkD,mBAAS,EAAO;;;;MAQrHC,WAAqB;aAGV,6CADbF,mBAeM;;MAZH,OAAKI,eAAE,WAAM;AAAA,MACb,OAAKH;WAAe;;cAA2C,mBAAS,EAAO;cAAyB,+BAA0B,YAAO,YAAY;AAAA,cAAyB,8BAAS,EAAkB;;;MAQzM,cAAY;;MAEbC,WAAyC,yBAAzC,MAAyC;AAAA,wCAApB,eAAU;;;cAZvB,cAAS;AAAA;;;;;;;"}
1
+ {"version":3,"file":"Badge.mjs","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":["_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";
@@ -226,20 +226,22 @@ var Drawer = defineComponent({
226
226
  const renderDrawer = lazyRender(() => {
227
227
  const renderConrent = () => {
228
228
  var _a;
229
- return createVNode(Fragment, null, [createVNode("div", {
230
- "ref": headerRef,
231
- "class": `${prefixCls.value}-header`,
232
- "style": props.headerStyle
233
- }, [createVNode("h2", {
234
- "class": `${prefixCls.value}-header-title`
235
- }, [slots.title ? slots.title() : props.title]), props.closable && createVNode("button", {
229
+ return createVNode(Fragment, null, [props.closable && createVNode("button", {
236
230
  "class": `${prefixCls.value}-close`,
237
231
  "onClick": () => handleClose("close")
238
232
  }, [createVNode(UIcon, {
239
233
  "class": `${prefixCls.value}-close-icon`
240
234
  }, {
241
235
  default: () => [createVNode(X, null, null)]
242
- })])]), createVNode("div", {
236
+ })]), createVNode("div", {
237
+ "ref": headerRef,
238
+ "class": `${prefixCls.value}-header`,
239
+ "style": props.headerStyle
240
+ }, [createVNode("h2", {
241
+ "class": `${prefixCls.value}-header-title`
242
+ }, [slots.title ? slots.title() : props.title]), props.description && createVNode("p", {
243
+ "class": `${prefixCls.value}-header-description`
244
+ }, [props.description])]), createVNode("div", {
243
245
  "class": `${prefixCls.value}-body`,
244
246
  "style": {
245
247
  ...props.bodyStyle,
@@ -1 +1 @@
1
- {"version":3,"file":"Drawer.mjs","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.mjs","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;
@@ -30,6 +30,10 @@ const drawerProps = {
30
30
  type: String,
31
31
  default: ""
32
32
  },
33
+ description: {
34
+ type: String,
35
+ default: ""
36
+ },
33
37
  closable: {
34
38
  type: Boolean,
35
39
  default: true
@@ -1 +1 @@
1
- {"version":3,"file":"Drawer.type.mjs","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":[],"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,WAAW,MAAM,eAAe;AAAA,IAChC,SAAS;AAAA;AACX,EACA,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,WAAW,MAAM,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.mjs","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":[],"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,WAAW,MAAM,eAAe;AAAA,IAChC,SAAS;AAAA;AACX,EACA,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,WAAW,MAAM,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;
@@ -51,7 +51,7 @@ const maskProps = {
51
51
  var Mask = defineComponent({
52
52
  name: "UMask",
53
53
  props: maskProps,
54
- emits: ["after-show-mask-change"],
54
+ emits: ["after-show-mask-change", "click"],
55
55
  setup(props, {
56
56
  slots,
57
57
  emit,
@@ -82,6 +82,9 @@ var Mask = defineComponent({
82
82
  const maskColor = props.color === "white" ? "255, 255, 255" : "0, 0, 0";
83
83
  return `rgba(${maskColor}, ${opacity})`;
84
84
  });
85
+ const handleClick = () => {
86
+ emit("click");
87
+ };
85
88
  const renderMask = lazyRender(() => {
86
89
  const style = {
87
90
  backgroundColor: maskBackground.value,
@@ -97,7 +100,8 @@ var Mask = defineComponent({
97
100
  "class": prefixCls.value,
98
101
  "onTouchmove": props.preventScroll ? handleTouchMove : () => {
99
102
  },
100
- "onAnimationend": handleAnimationend
103
+ "onAnimationend": handleAnimationend,
104
+ "onClick": handleClick
101
105
  }, [useShouldRender(props.show, props.desdroyOnClose, animationEnd.value, slots.default)]), [[vShow, props.show]]);
102
106
  });
103
107
  return () => createVNode(Transition, {
@@ -1 +1 @@
1
- {"version":3,"file":"Mask.mjs","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.mjs","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;
@@ -390,13 +390,12 @@ var Slider = defineComponent({
390
390
  })]);
391
391
  return createVNode("div", {
392
392
  "ref": "sliderRef",
393
- "class": [this.prefixCls, `${this.prefixCls}-variant-${this.variant}`, `${this.prefixCls}-size-${this.size}`, {
393
+ "class": [this.prefixCls, `${this.prefixCls}-variant-${this.variant}`, {
394
394
  [`${this.prefixCls}-with-marks`]: this.marks && Object.keys(this.marks).length,
395
395
  [`${this.prefixCls}-disabled`]: this.disabled,
396
396
  [`${this.prefixCls}-vertical`]: this.vertical,
397
397
  [`${this.prefixCls}-rtl`]: this.direction === "rtl" && !this.vertical
398
398
  }],
399
- "data-color": this.color,
400
399
  "onMousedown": this.handleMouseDown,
401
400
  "onMouseup": this.handleMouseUp
402
401
  }, [createVNode("div", {