@koi-design/uxd-ui 13.2.0 → 13.2.2

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 (44) hide show
  1. package/es/components/Popover/Popover.mjs +2 -1
  2. package/es/components/Popover/Popover.mjs.map +1 -1
  3. package/es/components/Popover/Popover.type.d.ts +4 -0
  4. package/es/components/Popover/Popover.type.mjs +4 -0
  5. package/es/components/Popover/Popover.type.mjs.map +1 -1
  6. package/es/components/Popover/Popover.vue.d.ts +9 -0
  7. package/es/components/Popover/index.d.ts +19 -0
  8. package/es/components/Tree/Tree.mjs +17 -1
  9. package/es/components/Tree/Tree.mjs.map +1 -1
  10. package/es/components/Tree/Tree.type.d.ts +1 -0
  11. package/es/components/Tree/Tree.type.mjs.map +1 -1
  12. package/es/components/Tree/TreeNode.mjs +15 -1
  13. package/es/components/Tree/TreeNode.mjs.map +1 -1
  14. package/lib/components/Popover/Popover.js +2 -1
  15. package/lib/components/Popover/Popover.js.map +1 -1
  16. package/lib/components/Popover/Popover.type.d.ts +4 -0
  17. package/lib/components/Popover/Popover.type.js +4 -0
  18. package/lib/components/Popover/Popover.type.js.map +1 -1
  19. package/lib/components/Popover/Popover.vue.d.ts +9 -0
  20. package/lib/components/Popover/index.d.ts +19 -0
  21. package/lib/components/Tree/Tree.js +17 -1
  22. package/lib/components/Tree/Tree.js.map +1 -1
  23. package/lib/components/Tree/Tree.type.d.ts +1 -0
  24. package/lib/components/Tree/Tree.type.js.map +1 -1
  25. package/lib/components/Tree/TreeNode.js +15 -1
  26. package/lib/components/Tree/TreeNode.js.map +1 -1
  27. package/package.json +1 -1
  28. package/styles/components/table/index.css +1 -1
  29. package/styles/components/table/index.less +53 -40
  30. package/styles/components/tooltip/index.css +1 -1
  31. package/styles/components/tooltip/var.less +2 -2
  32. package/styles/components/tree/index.css +1 -1
  33. package/styles/components/tree/index.less +10 -1
  34. package/styles/index.css +1 -1
  35. package/styles/tokens/colors/index.css +4 -4
  36. package/types/components/Popover/Popover.type.d.ts +4 -0
  37. package/types/components/Popover/Popover.vue.d.ts +9 -0
  38. package/types/components/Popover/index.d.ts +19 -0
  39. package/types/components/Tree/Tree.type.d.ts +1 -0
  40. package/uxd-ui.css +1 -1
  41. package/uxd-ui.esm.min.mjs +5 -5
  42. package/uxd-ui.esm.mjs +39 -4
  43. package/uxd-ui.umd.js +39 -4
  44. package/uxd-ui.umd.min.js +5 -5
@@ -103,6 +103,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
103
103
  visible: _ctx.visible,
104
104
  placement: _ctx.placement,
105
105
  trigger: [_ctx.trigger],
106
+ "mouse-enter-delay": _ctx.showDelay / 1e3,
106
107
  "transition-name": "zoom-big-fast",
107
108
  offset: _ctx.offset,
108
109
  "destroy-popup-on-hide": _ctx.destroyOnHide,
@@ -144,7 +145,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
144
145
  renderSlot(_ctx.$slots, "default")
145
146
  ]),
146
147
  _: 3
147
- }, 8, ["class", "style", "prefix-cls", "popup-class", "popup-style", "visible", "placement", "trigger", "offset", "destroy-popup-on-hide", "onPopupVisibleChange"]));
148
+ }, 8, ["class", "style", "prefix-cls", "popup-class", "popup-style", "visible", "placement", "trigger", "mouse-enter-delay", "offset", "destroy-popup-on-hide", "onPopupVisibleChange"]));
148
149
  }
149
150
  var Popover = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__file", "D:\\uxd\\uxd-ui\\src\\components\\Popover\\Popover.vue"]]);
150
151
 
@@ -1 +1 @@
1
- {"version":3,"file":"Popover.mjs","sources":["../../../../src/components/Popover/Popover.vue"],"sourcesContent":["<template>\n <template v-if=\"disabled\">\n <slot />\n </template>\n <template v-else>\n <Popup\n ref=\"popupRef\"\n :class=\"$attrs.class\"\n :style=\"$attrs.style\"\n :prefix-cls=\"prefixCls\"\n :popup-class=\"dropdownClass\"\n :popup-style=\"popupStyle\"\n :visible=\"visible\"\n :placement=\"placement\"\n :trigger=\"[trigger]\"\n transition-name=\"zoom-big-fast\"\n :offset=\"offset\"\n :destroy-popup-on-hide=\"destroyOnHide\"\n @popup-visible-change=\"onVisibleChange\"\n >\n <slot />\n <template #popup>\n <div v-if=\"showArrow\" :class=\"`${prefixCls}-arrow`\" :style=\"arrowStyle\" />\n <div v-if=\"type === 'popover'\" ref=\"innerRef\" :class=\"`${prefixCls}-inner`\" role=\"popover\">\n <div v-if=\"showTitle\" :class=\"`${prefixCls}-inner-title`\">\n <slot name=\"title\">\n {{ title }}\n </slot>\n </div>\n <div\n :class=\"{\n [`${prefixCls}-inner-content`]: true,\n [`${dropdownClass}-content`]: dropdownClass\n }\"\n >\n <slot name=\"content\">\n {{ content }}\n </slot>\n </div>\n </div>\n <slot v-else name=\"popConfirm\" />\n </template>\n </Popup>\n </template>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, computed, ref, inject } from 'vue';\nimport type { CSSProperties } from 'vue';\nimport Popup from '@uxd-ui/components/Popup';\nimport useGlobalConfig from '../base/hooks/useGlobalConfig';\nimport { popoverProps, popoverEmits } from './Popover.type';\nimport { findDOMNode } from '../../utils';\n\nexport default defineComponent({\n name: 'UPopover',\n components: {\n Popup\n },\n props: popoverProps,\n emits: popoverEmits,\n setup(props, { slots, emit }) {\n const { prefixCls } = useGlobalConfig('popover');\n const popupRef = ref(null);\n const innerRef = ref(null);\n const popConfirmInnerRef = inject('PopConfirmInnerRef', ref(null));\n\n const onVisibleChange = (val: boolean) => {\n emit('update:visible', val);\n emit('visible-change', val);\n };\n const showTitle = computed(() => {\n return props.title || slots.title !== undefined;\n });\n const popupStyle = computed(() => {\n const width = typeof props.width === 'number' ? `${props.width}px` : props.width;\n return props.type === 'popover' ? ({ ...props.dropdownStyle } as CSSProperties) : ({ ...{ width }, ...props.dropdownStyle } as CSSProperties);\n });\n\n const arrowStyle = computed(() => {\n if (popupRef.value?.reference && (innerRef.value || popConfirmInnerRef.value)) {\n const { width, height } = findDOMNode(popupRef.value.reference).getBoundingClientRect();\n const inner = innerRef.value || popConfirmInnerRef.value;\n const { width: contentWidth, height: contentHeight } = inner.getBoundingClientRect();\n if (props.placement === 'left-start' || props.placement === 'right-start') {\n let top = height / 2;\n if (top > contentHeight) {\n top = 8;\n }\n return {\n top: `${top}px`,\n transform: 'translateY(-50%)'\n };\n }\n if (props.placement === 'left-end' || props.placement === 'right-end') {\n let bottom = height / 2;\n if (bottom > contentHeight) {\n bottom = 8;\n }\n return {\n bottom: `${bottom}px`,\n transform: 'translateY(50%)'\n };\n }\n if (props.placement === 'top-start' || props.placement === 'bottom-start') {\n let left = width / 2;\n if (left > contentWidth) {\n left = 16;\n }\n return {\n left: `${left}px`,\n transform: 'translateX(-50%)'\n };\n }\n if (props.placement === 'top-end' || props.placement === 'bottom-end') {\n let right = width / 2;\n if (right > contentWidth) {\n right = 16;\n }\n return {\n right: `${right}px`,\n transform: 'translateX(50%)'\n };\n }\n }\n return {};\n });\n\n return {\n popupRef,\n innerRef,\n prefixCls,\n showTitle,\n popupStyle,\n arrowStyle,\n onVisibleChange\n };\n }\n});\n</script>\n"],"names":["_renderSlot","_createBlock","_normalizeClass","_normalizeStyle","_withCtx","_createElementBlock","_createElementVNode"],"mappings":"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"}
1
+ {"version":3,"file":"Popover.mjs","sources":["../../../../src/components/Popover/Popover.vue"],"sourcesContent":["<template>\n <template v-if=\"disabled\">\n <slot />\n </template>\n <template v-else>\n <Popup\n ref=\"popupRef\"\n :class=\"$attrs.class\"\n :style=\"$attrs.style\"\n :prefix-cls=\"prefixCls\"\n :popup-class=\"dropdownClass\"\n :popup-style=\"popupStyle\"\n :visible=\"visible\"\n :placement=\"placement\"\n :trigger=\"[trigger]\"\n :mouse-enter-delay=\"showDelay / 1000\"\n transition-name=\"zoom-big-fast\"\n :offset=\"offset\"\n :destroy-popup-on-hide=\"destroyOnHide\"\n @popup-visible-change=\"onVisibleChange\"\n >\n <slot />\n <template #popup>\n <div v-if=\"showArrow\" :class=\"`${prefixCls}-arrow`\" :style=\"arrowStyle\" />\n <div v-if=\"type === 'popover'\" ref=\"innerRef\" :class=\"`${prefixCls}-inner`\" role=\"popover\">\n <div v-if=\"showTitle\" :class=\"`${prefixCls}-inner-title`\">\n <slot name=\"title\">\n {{ title }}\n </slot>\n </div>\n <div\n :class=\"{\n [`${prefixCls}-inner-content`]: true,\n [`${dropdownClass}-content`]: dropdownClass\n }\"\n >\n <slot name=\"content\">\n {{ content }}\n </slot>\n </div>\n </div>\n <slot v-else name=\"popConfirm\" />\n </template>\n </Popup>\n </template>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, computed, ref, inject } from 'vue';\nimport type { CSSProperties } from 'vue';\nimport Popup from '@uxd-ui/components/Popup';\nimport useGlobalConfig from '../base/hooks/useGlobalConfig';\nimport { popoverProps, popoverEmits } from './Popover.type';\nimport { findDOMNode } from '../../utils';\n\nexport default defineComponent({\n name: 'UPopover',\n components: {\n Popup\n },\n props: popoverProps,\n emits: popoverEmits,\n setup(props, { slots, emit }) {\n const { prefixCls } = useGlobalConfig('popover');\n const popupRef = ref(null);\n const innerRef = ref(null);\n const popConfirmInnerRef = inject('PopConfirmInnerRef', ref(null));\n const onVisibleChange = (val: boolean) => {\n emit('update:visible', val);\n emit('visible-change', val);\n };\n const showTitle = computed(() => {\n return props.title || slots.title !== undefined;\n });\n const popupStyle = computed(() => {\n const width = typeof props.width === 'number' ? `${props.width}px` : props.width;\n return props.type === 'popover' ? ({ ...props.dropdownStyle } as CSSProperties) : ({ ...{ width }, ...props.dropdownStyle } as CSSProperties);\n });\n\n const arrowStyle = computed(() => {\n if (popupRef.value?.reference && (innerRef.value || popConfirmInnerRef.value)) {\n const { width, height } = findDOMNode(popupRef.value.reference).getBoundingClientRect();\n const inner = innerRef.value || popConfirmInnerRef.value;\n const { width: contentWidth, height: contentHeight } = inner.getBoundingClientRect();\n if (props.placement === 'left-start' || props.placement === 'right-start') {\n let top = height / 2;\n if (top > contentHeight) {\n top = 8;\n }\n return {\n top: `${top}px`,\n transform: 'translateY(-50%)'\n };\n }\n if (props.placement === 'left-end' || props.placement === 'right-end') {\n let bottom = height / 2;\n if (bottom > contentHeight) {\n bottom = 8;\n }\n return {\n bottom: `${bottom}px`,\n transform: 'translateY(50%)'\n };\n }\n if (props.placement === 'top-start' || props.placement === 'bottom-start') {\n let left = width / 2;\n if (left > contentWidth) {\n left = 16;\n }\n return {\n left: `${left}px`,\n transform: 'translateX(-50%)'\n };\n }\n if (props.placement === 'top-end' || props.placement === 'bottom-end') {\n let right = width / 2;\n if (right > contentWidth) {\n right = 16;\n }\n return {\n right: `${right}px`,\n transform: 'translateX(50%)'\n };\n }\n }\n return {};\n });\n\n return {\n popupRef,\n innerRef,\n prefixCls,\n showTitle,\n popupStyle,\n arrowStyle,\n onVisibleChange\n };\n }\n});\n</script>\n"],"names":["_renderSlot","_createBlock","_normalizeClass","_normalizeStyle","_withCtx","_createElementBlock","_createElementVNode"],"mappings":"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"}
@@ -58,6 +58,10 @@ export declare const popoverProps: {
58
58
  type: BooleanConstructor;
59
59
  default: boolean;
60
60
  };
61
+ showDelay: {
62
+ type: NumberConstructor;
63
+ default: number;
64
+ };
61
65
  };
62
66
  export declare type PopoverProps = ExtractPropTypes<typeof popoverProps>;
63
67
  export declare const popoverEmits: {
@@ -56,6 +56,10 @@ const popoverProps = {
56
56
  showArrow: {
57
57
  type: Boolean,
58
58
  default: true
59
+ },
60
+ showDelay: {
61
+ type: Number,
62
+ default: 0
59
63
  }
60
64
  };
61
65
  const popoverEmits = {
@@ -1 +1 @@
1
- {"version":3,"file":"Popover.type.mjs","sources":["../../../../src/components/Popover/Popover.type.ts"],"sourcesContent":["import type { CSSProperties, ExtractPropTypes, PropType } from 'vue';\nimport type { Placements } from '../../utils/placements';\nimport placements from '../../utils/placements';\nimport { isArrayOf, oneOf } from '../../utils/propsValidators';\nimport type Popover from './Popover.vue';\n\nexport const popoverTrigger = ['hover', 'focus', 'click', 'contextmenu'] as const;\nexport type PopoverTrigger = (typeof popoverTrigger)[number];\n\nexport const popoverType = ['popover', 'popConfirm'] as const;\nexport type PopoverType = (typeof popoverType)[number];\n\nexport const popoverProps = {\n placement: {\n type: String as PropType<Placements>,\n default: 'top',\n validator: oneOf(placements)\n },\n visible: {\n type: Boolean,\n default: undefined as undefined\n },\n disabled: {\n type: Boolean,\n default: false\n },\n title: {\n type: String\n },\n content: {\n type: String\n },\n dropdownClass: {\n type: String,\n default: ''\n },\n dropdownStyle: {\n type: Object as PropType<CSSProperties>,\n default: () => ({})\n },\n trigger: {\n type: String as PropType<PopoverTrigger>,\n default: 'hover',\n validator: oneOf(popoverTrigger)\n },\n offset: {\n type: Array as PropType<number[]>,\n validator: isArrayOf(Number)\n },\n type: {\n type: String as PropType<PopoverType>,\n default: 'popover',\n validator: oneOf(popoverType)\n },\n destroyOnHide: {\n type: Boolean,\n default: true\n },\n width: {\n type: [Number, String],\n default: 300\n },\n showArrow: {\n type: Boolean,\n default: true\n }\n};\n\nexport type PopoverProps = ExtractPropTypes<typeof popoverProps>;\n\nexport const popoverEmits = {\n 'visible-change': (v: boolean) => typeof v === 'boolean',\n 'update:visible': (v: boolean) => typeof v === 'boolean'\n};\n\nexport type PopoverEmits = typeof popoverEmits;\n\nexport type PopoverInstanceType = InstanceType<typeof Popover>;\n"],"names":[],"mappings":";;;MAMa,iBAAiB,CAAC,SAAS,SAAS,SAAS,aAAa;MAG1D,cAAc,CAAC,WAAW,YAAY;MAGtC,eAAe;AAAA,EAC1B,WAAW;AAAA,IACT,MAAM;AAAA,IACN,SAAS;AAAA,IACT,WAAW,MAAM,UAAU;AAAA;AAC7B,EACA,SAAS;AAAA,IACP,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,UAAU;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,OAAO;AAAA,IACL,MAAM;AAAA;AACR,EACA,SAAS;AAAA,IACP,MAAM;AAAA;AACR,EACA,eAAe;AAAA,IACb,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,eAAe;AAAA,IACb,MAAM;AAAA,IACN,SAAS,OAAO;AAAC;AACnB,EACA,SAAS;AAAA,IACP,MAAM;AAAA,IACN,SAAS;AAAA,IACT,WAAW,MAAM,cAAc;AAAA;AACjC,EACA,QAAQ;AAAA,IACN,MAAM;AAAA,IACN,WAAW,UAAU,MAAM;AAAA;AAC7B,EACA,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,SAAS;AAAA,IACT,WAAW,MAAM,WAAW;AAAA;AAC9B,EACA,eAAe;AAAA,IACb,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,OAAO;AAAA,IACL,MAAM,CAAC,QAAQ,MAAM;AAAA,IACrB,SAAS;AAAA;AACX,EACA,WAAW;AAAA,IACT,MAAM;AAAA,IACN,SAAS;AAAA;AAEb;MAIa,eAAe;AAAA,EAC1B,kBAAkB,CAAC,MAAe,OAAO,MAAM;AAAA,EAC/C,kBAAkB,CAAC,MAAe,OAAO,MAAM;AACjD;;;;"}
1
+ {"version":3,"file":"Popover.type.mjs","sources":["../../../../src/components/Popover/Popover.type.ts"],"sourcesContent":["import type { CSSProperties, ExtractPropTypes, PropType } from 'vue';\nimport type { Placements } from '../../utils/placements';\nimport placements from '../../utils/placements';\nimport { isArrayOf, oneOf } from '../../utils/propsValidators';\nimport type Popover from './Popover.vue';\n\nexport const popoverTrigger = ['hover', 'focus', 'click', 'contextmenu'] as const;\nexport type PopoverTrigger = (typeof popoverTrigger)[number];\n\nexport const popoverType = ['popover', 'popConfirm'] as const;\nexport type PopoverType = (typeof popoverType)[number];\n\nexport const popoverProps = {\n placement: {\n type: String as PropType<Placements>,\n default: 'top',\n validator: oneOf(placements)\n },\n visible: {\n type: Boolean,\n default: undefined as undefined\n },\n disabled: {\n type: Boolean,\n default: false\n },\n title: {\n type: String\n },\n content: {\n type: String\n },\n dropdownClass: {\n type: String,\n default: ''\n },\n dropdownStyle: {\n type: Object as PropType<CSSProperties>,\n default: () => ({})\n },\n trigger: {\n type: String as PropType<PopoverTrigger>,\n default: 'hover',\n validator: oneOf(popoverTrigger)\n },\n offset: {\n type: Array as PropType<number[]>,\n validator: isArrayOf(Number)\n },\n type: {\n type: String as PropType<PopoverType>,\n default: 'popover',\n validator: oneOf(popoverType)\n },\n destroyOnHide: {\n type: Boolean,\n default: true\n },\n width: {\n type: [Number, String],\n default: 300\n },\n showArrow: {\n type: Boolean,\n default: true\n },\n showDelay: {\n type: Number,\n default: 0\n }\n};\n\nexport type PopoverProps = ExtractPropTypes<typeof popoverProps>;\n\nexport const popoverEmits = {\n 'visible-change': (v: boolean) => typeof v === 'boolean',\n 'update:visible': (v: boolean) => typeof v === 'boolean'\n};\n\nexport type PopoverEmits = typeof popoverEmits;\n\nexport type PopoverInstanceType = InstanceType<typeof Popover>;\n"],"names":[],"mappings":";;;MAMa,iBAAiB,CAAC,SAAS,SAAS,SAAS,aAAa;MAG1D,cAAc,CAAC,WAAW,YAAY;MAGtC,eAAe;AAAA,EAC1B,WAAW;AAAA,IACT,MAAM;AAAA,IACN,SAAS;AAAA,IACT,WAAW,MAAM,UAAU;AAAA;AAC7B,EACA,SAAS;AAAA,IACP,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,UAAU;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,OAAO;AAAA,IACL,MAAM;AAAA;AACR,EACA,SAAS;AAAA,IACP,MAAM;AAAA;AACR,EACA,eAAe;AAAA,IACb,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,eAAe;AAAA,IACb,MAAM;AAAA,IACN,SAAS,OAAO;AAAC;AACnB,EACA,SAAS;AAAA,IACP,MAAM;AAAA,IACN,SAAS;AAAA,IACT,WAAW,MAAM,cAAc;AAAA;AACjC,EACA,QAAQ;AAAA,IACN,MAAM;AAAA,IACN,WAAW,UAAU,MAAM;AAAA;AAC7B,EACA,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,SAAS;AAAA,IACT,WAAW,MAAM,WAAW;AAAA;AAC9B,EACA,eAAe;AAAA,IACb,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,OAAO;AAAA,IACL,MAAM,CAAC,QAAQ,MAAM;AAAA,IACrB,SAAS;AAAA;AACX,EACA,WAAW;AAAA,IACT,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,WAAW;AAAA,IACT,MAAM;AAAA,IACN,SAAS;AAAA;AAEb;MAIa,eAAe;AAAA,EAC1B,kBAAkB,CAAC,MAAe,OAAO,MAAM;AAAA,EAC/C,kBAAkB,CAAC,MAAe,OAAO,MAAM;AACjD;;;;"}
@@ -53,6 +53,10 @@ declare const _default: import("vue").DefineComponent<{
53
53
  type: BooleanConstructor;
54
54
  default: boolean;
55
55
  };
56
+ showDelay: {
57
+ type: NumberConstructor;
58
+ default: number;
59
+ };
56
60
  }, {
57
61
  popupRef: import("vue").Ref<any, any>;
58
62
  innerRef: import("vue").Ref<any, any>;
@@ -148,6 +152,10 @@ declare const _default: import("vue").DefineComponent<{
148
152
  type: BooleanConstructor;
149
153
  default: boolean;
150
154
  };
155
+ showDelay: {
156
+ type: NumberConstructor;
157
+ default: number;
158
+ };
151
159
  }>> & {
152
160
  "onUpdate:visible"?: (v: boolean) => any;
153
161
  "onVisible-change"?: (v: boolean) => any;
@@ -162,5 +170,6 @@ declare const _default: import("vue").DefineComponent<{
162
170
  dropdownStyle: CSSProperties;
163
171
  destroyOnHide: boolean;
164
172
  showArrow: boolean;
173
+ showDelay: number;
165
174
  }, {}>;
166
175
  export default _default;
@@ -53,6 +53,10 @@ export declare const UPopover: {
53
53
  type: BooleanConstructor;
54
54
  default: boolean;
55
55
  };
56
+ showDelay: {
57
+ type: NumberConstructor;
58
+ default: number;
59
+ };
56
60
  }>> & {
57
61
  "onUpdate:visible"?: (v: boolean) => any;
58
62
  "onVisible-change"?: (v: boolean) => any;
@@ -151,6 +155,10 @@ export declare const UPopover: {
151
155
  type: BooleanConstructor;
152
156
  default: boolean;
153
157
  };
158
+ showDelay: {
159
+ type: NumberConstructor;
160
+ default: number;
161
+ };
154
162
  }>> & {
155
163
  "onUpdate:visible"?: (v: boolean) => any;
156
164
  "onVisible-change"?: (v: boolean) => any;
@@ -165,6 +173,7 @@ export declare const UPopover: {
165
173
  dropdownStyle: import("vue").CSSProperties;
166
174
  destroyOnHide: boolean;
167
175
  showArrow: boolean;
176
+ showDelay: number;
168
177
  }, true, {}, {}, {
169
178
  P: {};
170
179
  B: {};
@@ -226,6 +235,10 @@ export declare const UPopover: {
226
235
  type: BooleanConstructor;
227
236
  default: boolean;
228
237
  };
238
+ showDelay: {
239
+ type: NumberConstructor;
240
+ default: number;
241
+ };
229
242
  }>> & {
230
243
  "onUpdate:visible"?: (v: boolean) => any;
231
244
  "onVisible-change"?: (v: boolean) => any;
@@ -278,6 +291,7 @@ export declare const UPopover: {
278
291
  dropdownStyle: import("vue").CSSProperties;
279
292
  destroyOnHide: boolean;
280
293
  showArrow: boolean;
294
+ showDelay: number;
281
295
  }>;
282
296
  __isFragment?: never;
283
297
  __isTeleport?: never;
@@ -336,6 +350,10 @@ export declare const UPopover: {
336
350
  type: BooleanConstructor;
337
351
  default: boolean;
338
352
  };
353
+ showDelay: {
354
+ type: NumberConstructor;
355
+ default: number;
356
+ };
339
357
  }>> & {
340
358
  "onUpdate:visible"?: (v: boolean) => any;
341
359
  "onVisible-change"?: (v: boolean) => any;
@@ -391,6 +409,7 @@ export declare const UPopover: {
391
409
  dropdownStyle: import("vue").CSSProperties;
392
410
  destroyOnHide: boolean;
393
411
  showArrow: boolean;
412
+ showDelay: number;
394
413
  }, {}, string, {}> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & import("vue").Plugin<any[]> & Record<string, any>;
395
414
  export default UPopover;
396
415
  export * from './Popover.type';
@@ -204,6 +204,21 @@ const _sfc_main = defineComponent({
204
204
  emit("update:expandedKeys", expandedKeys.value);
205
205
  emit("expand", expandedKeys.value, e);
206
206
  };
207
+ const getParentDisabled = (key) => {
208
+ const node = treeDataMap.value.get(key);
209
+ if (node == null ? void 0 : node.disabled)
210
+ return true;
211
+ if (node == null ? void 0 : node.parent) {
212
+ return getParentDisabled(node.parent.key);
213
+ }
214
+ return false;
215
+ };
216
+ const isDisabledNode = (key) => {
217
+ const node = treeDataMap.value.get(key);
218
+ if (node == null ? void 0 : node.disabled)
219
+ return true;
220
+ return getParentDisabled(key);
221
+ };
207
222
  provide(
208
223
  TREE_CONTEXT_INJECTION_KEY,
209
224
  reactive({
@@ -224,7 +239,8 @@ const _sfc_main = defineComponent({
224
239
  fireTreeSelect,
225
240
  fireTreeCheck,
226
241
  fireTreeExpand,
227
- getDataKey
242
+ getDataKey,
243
+ isDisabledNode
228
244
  })
229
245
  );
230
246
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"Tree.mjs","sources":["../../../../src/components/Tree/Tree.vue"],"sourcesContent":["<template>\n <ul\n :class=\"[\n prefixCls,\n {\n [`${prefixCls}-show-line`]: showLine\n }\n ]\"\n >\n <SubTree :data=\"localTreeData\" />\n </ul>\n</template>\n\n<script lang=\"ts\">\nimport { provide, ref, watch, defineComponent, reactive } from 'vue';\nimport { treeMap } from '../../utils/tools';\nimport useGlobalConfig from '../base/hooks/useGlobalConfig';\nimport useTransfer from './hooks/useTransfer';\nimport { findNodeByLoop, getDragNode } from './utils/tools';\nimport { generateCheck } from './utils/generateCheck';\nimport SubTree from './SubTree.vue';\nimport { type TreeItem, treeProps, treeEmits, TREE_CONTEXT_INJECTION_KEY, type InnerTreeItem } from './Tree.type';\n\nexport default defineComponent({\n name: 'UTree',\n components: {\n SubTree\n },\n props: treeProps,\n emits: treeEmits,\n setup(props, { emit, slots }) {\n const { prefixCls } = useGlobalConfig('tree');\n const selectedKeys = ref<(string | number)[]>([]);\n const checkedKeys = ref<(string | number)[]>([]);\n const halfCheckedKeys = ref<(string | number)[]>([]);\n const loadingKeys = ref<(string | number)[]>([]);\n const dragKey = ref<string | number>('');\n\n const getDataKey = (data: InnerTreeItem): string | number => {\n if (typeof props.dataKey === 'function') {\n return props.dataKey(data);\n }\n return data[props.dataKey];\n };\n\n const { expandedKeys, localTreeData, treeDataMap, initData } = useTransfer(props, slots, getDataKey);\n\n const computedChecked = (keys: (string | number)[], checked: boolean) => {\n const checkedParams = {\n oriCheckedKeys: checkedKeys.value,\n oriHalfCheckedKeys: halfCheckedKeys.value\n };\n const checkResult = generateCheck(keys, checked, treeDataMap.value, checkedParams, getDataKey);\n return checkResult;\n };\n\n // #region init halfCheckedKeys _checkedKeys\n const initChecked = () => {\n if (props.checkStrictly) return;\n const checkResult = computedChecked(checkedKeys.value, true);\n checkedKeys.value = checkResult.checkedKeys;\n halfCheckedKeys.value = checkResult.halfCheckedKeys;\n // emit('update:checkedKeys', checkResult.checkedKeys);\n emit('check', checkResult.checkedKeys, checkResult.halfCheckedKeys);\n };\n // #endregion\n\n // #region watch\n watch(\n () => props.treeData,\n (nv) => {\n initData(nv);\n },\n { immediate: true }\n );\n watch(\n () => props.selectedKeys,\n (nv) => {\n selectedKeys.value = [...nv];\n },\n { immediate: true }\n );\n watch(\n () => props.checkedKeys,\n (nv) => {\n if (checkedKeys.value !== nv && checkedKeys.value.length !== nv.length && props.checkable) {\n checkedKeys.value = [...nv];\n initChecked();\n }\n },\n { immediate: true }\n );\n // #endregion\n\n // methods\n const updateDragKeys = (key: string | number) => {\n dragKey.value = key;\n };\n\n const updateOriginData = (data: TreeItem[]) => {\n if (props.treeSelect) {\n emit('update-data', data);\n }\n emit('update:treeData', data);\n };\n // #region fireTreeDrop\n const fireTreeDrop = (dropEvent: { dragKey: string | number; dropKey: string | number; dropPosition: number; dropToGap: boolean }) => {\n // const dropPos = dropKey.split('-');\n const dropNode = treeDataMap.value.get(dropEvent.dropKey);\n // const _dropPosition = dropPosition - Number(dropPos[dropPos.length - 1]);\n const data = treeMap<TreeItem, TreeItem>(props.treeData, (x) => ({\n ...x\n }));\n const dragNode = getDragNode(data, dropEvent.dragKey, getDataKey);\n if (!dropEvent.dropToGap) {\n // Drop on the content\n findNodeByLoop(\n data,\n dropEvent.dropKey,\n (item: TreeItem) => {\n item.children = item.children || [];\n\n item.children.push(dragNode);\n },\n getDataKey\n );\n } else if ((dropNode?.children || []).length > 0 && dropEvent.dropPosition === 1) {\n findNodeByLoop(\n data,\n dropEvent.dropKey,\n (item) => {\n item.children = item.children || [];\n\n item.children.unshift(dragNode);\n },\n getDataKey\n );\n } else {\n let tempArr: TreeItem[] = [];\n let tempIndex = 0;\n findNodeByLoop(\n data,\n dropEvent.dropKey,\n (item, index, arr) => {\n tempArr = arr;\n tempIndex = index;\n },\n getDataKey\n );\n if (dropEvent.dropPosition === -1) {\n tempArr.splice(tempIndex, 0, dragNode);\n } else {\n tempArr.splice(tempIndex + 1, 0, dragNode);\n }\n }\n updateOriginData(data);\n };\n // #endregion\n\n // #region treeSelect\n\n const fireTreeSelect = (e: Event) => {\n const selectItems = [] as TreeItem[];\n selectedKeys.value.forEach((key) => {\n if (treeDataMap.value.get(key)) {\n selectItems.push(treeDataMap.value.get(key)!.dataRef);\n }\n });\n emit('update:selectedKeys', selectedKeys.value);\n emit('select', selectItems, e);\n };\n\n // #endregion\n\n // #region treeCheck\n\n const fireTreeCheck = (e: Event, key: string | number) => {\n if (props.disabled) return;\n const keyIndex = checkedKeys.value.indexOf(key);\n if (props.checkStrictly) {\n if (keyIndex === -1) {\n checkedKeys.value.push(key);\n } else {\n checkedKeys.value.splice(keyIndex, 1);\n }\n } else {\n const checked = !(keyIndex >= 0);\n const checkResult = computedChecked([key], checked);\n checkedKeys.value = checkResult.checkedKeys;\n halfCheckedKeys.value = checkResult.halfCheckedKeys;\n // emit('check', checkResult.checkedKeys, checkResult.halfCheckedKeys, e);\n }\n emit('update:checkedKeys', checkedKeys.value);\n emit('check', checkedKeys.value, props.checkStrictly ? [] : halfCheckedKeys.value, e);\n };\n\n // #endregion\n\n // #region tree Data operate\n const treeNodeOperate = (type: 'add' | 'delete', key: string | number, children?: TreeItem[]) => {\n const data = treeMap(props.treeData, (x) => ({ ...x }));\n if (type === 'add') {\n findNodeByLoop(\n data,\n key,\n (item) => {\n item.children = [...(item.children || []), ...(children || [])];\n },\n getDataKey\n );\n } else {\n const currentNode = treeDataMap.value.get(key)!;\n\n if (currentNode.parent === null) {\n const index = data.findIndex((x) => getDataKey(x as InnerTreeItem) === key);\n data.splice(index, 1);\n } else {\n findNodeByLoop(\n data,\n getDataKey(currentNode.parent),\n (item) => {\n const index = item.children!.findIndex((x) => getDataKey(x as InnerTreeItem) === key);\n item.children!.splice(index, 1);\n },\n getDataKey\n );\n }\n }\n\n updateOriginData(data);\n };\n\n // #endregion\n\n // #region async load data\n\n const asyncLoadData = (node: InnerTreeItem) => {\n const nodeKey = getDataKey(node);\n loadingKeys.value.push(nodeKey);\n return new Promise<void>((resolve) => {\n if (props.loadData) {\n const promise = props.loadData(node);\n promise.then((children?: TreeItem[]) => {\n if (children && Array.isArray(children)) {\n treeNodeOperate('add', nodeKey, children);\n }\n loadingKeys.value = loadingKeys.value.filter((x) => x !== nodeKey);\n resolve();\n });\n }\n resolve();\n });\n };\n\n // #endregion\n\n const fireTreeExpand = (e: Event) => {\n emit('update:expandedKeys', expandedKeys.value);\n emit('expand', expandedKeys.value, e);\n };\n\n // #region provide\n provide(\n TREE_CONTEXT_INJECTION_KEY,\n reactive({\n props,\n emit,\n prefixCls,\n treeDataMap,\n selectedKeys,\n expandedKeys,\n checkedKeys,\n halfCheckedKeys,\n dragKey,\n loadingKeys,\n asyncLoadData,\n treeNodeOperate,\n updateDragKeys,\n fireTreeDrop,\n fireTreeSelect,\n fireTreeCheck,\n fireTreeExpand,\n getDataKey\n })\n );\n // #endregion\n\n return {\n prefixCls,\n localTreeData,\n computedChecked // treeSelect use\n };\n }\n});\n</script>\n"],"names":["_createElementBlock","_normalizeClass","_createVNode"],"mappings":"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"}
1
+ {"version":3,"file":"Tree.mjs","sources":["../../../../src/components/Tree/Tree.vue"],"sourcesContent":["<template>\n <ul\n :class=\"[\n prefixCls,\n {\n [`${prefixCls}-show-line`]: showLine\n }\n ]\"\n >\n <SubTree :data=\"localTreeData\" />\n </ul>\n</template>\n\n<script lang=\"ts\">\nimport { provide, ref, watch, defineComponent, reactive } from 'vue';\nimport { treeMap } from '../../utils/tools';\nimport useGlobalConfig from '../base/hooks/useGlobalConfig';\nimport useTransfer from './hooks/useTransfer';\nimport { findNodeByLoop, getDragNode } from './utils/tools';\nimport { generateCheck } from './utils/generateCheck';\nimport SubTree from './SubTree.vue';\nimport { type TreeItem, treeProps, treeEmits, TREE_CONTEXT_INJECTION_KEY, type InnerTreeItem } from './Tree.type';\n\nexport default defineComponent({\n name: 'UTree',\n components: {\n SubTree\n },\n props: treeProps,\n emits: treeEmits,\n setup(props, { emit, slots }) {\n const { prefixCls } = useGlobalConfig('tree');\n const selectedKeys = ref<(string | number)[]>([]);\n const checkedKeys = ref<(string | number)[]>([]);\n const halfCheckedKeys = ref<(string | number)[]>([]);\n const loadingKeys = ref<(string | number)[]>([]);\n const dragKey = ref<string | number>('');\n\n const getDataKey = (data: InnerTreeItem): string | number => {\n if (typeof props.dataKey === 'function') {\n return props.dataKey(data);\n }\n return data[props.dataKey];\n };\n\n const { expandedKeys, localTreeData, treeDataMap, initData } = useTransfer(props, slots, getDataKey);\n\n const computedChecked = (keys: (string | number)[], checked: boolean) => {\n const checkedParams = {\n oriCheckedKeys: checkedKeys.value,\n oriHalfCheckedKeys: halfCheckedKeys.value\n };\n const checkResult = generateCheck(keys, checked, treeDataMap.value, checkedParams, getDataKey);\n return checkResult;\n };\n\n // #region init halfCheckedKeys _checkedKeys\n const initChecked = () => {\n if (props.checkStrictly) return;\n const checkResult = computedChecked(checkedKeys.value, true);\n checkedKeys.value = checkResult.checkedKeys;\n halfCheckedKeys.value = checkResult.halfCheckedKeys;\n // emit('update:checkedKeys', checkResult.checkedKeys);\n emit('check', checkResult.checkedKeys, checkResult.halfCheckedKeys);\n };\n // #endregion\n\n // #region watch\n watch(\n () => props.treeData,\n (nv) => {\n initData(nv);\n },\n { immediate: true }\n );\n watch(\n () => props.selectedKeys,\n (nv) => {\n selectedKeys.value = [...nv];\n },\n { immediate: true }\n );\n watch(\n () => props.checkedKeys,\n (nv) => {\n if (checkedKeys.value !== nv && checkedKeys.value.length !== nv.length && props.checkable) {\n checkedKeys.value = [...nv];\n initChecked();\n }\n },\n { immediate: true }\n );\n // #endregion\n\n // methods\n const updateDragKeys = (key: string | number) => {\n dragKey.value = key;\n };\n\n const updateOriginData = (data: TreeItem[]) => {\n if (props.treeSelect) {\n emit('update-data', data);\n }\n emit('update:treeData', data);\n };\n // #region fireTreeDrop\n const fireTreeDrop = (dropEvent: { dragKey: string | number; dropKey: string | number; dropPosition: number; dropToGap: boolean }) => {\n // const dropPos = dropKey.split('-');\n const dropNode = treeDataMap.value.get(dropEvent.dropKey);\n // const _dropPosition = dropPosition - Number(dropPos[dropPos.length - 1]);\n const data = treeMap<TreeItem, TreeItem>(props.treeData, (x) => ({\n ...x\n }));\n const dragNode = getDragNode(data, dropEvent.dragKey, getDataKey);\n if (!dropEvent.dropToGap) {\n // Drop on the content\n findNodeByLoop(\n data,\n dropEvent.dropKey,\n (item: TreeItem) => {\n item.children = item.children || [];\n\n item.children.push(dragNode);\n },\n getDataKey\n );\n } else if ((dropNode?.children || []).length > 0 && dropEvent.dropPosition === 1) {\n findNodeByLoop(\n data,\n dropEvent.dropKey,\n (item) => {\n item.children = item.children || [];\n\n item.children.unshift(dragNode);\n },\n getDataKey\n );\n } else {\n let tempArr: TreeItem[] = [];\n let tempIndex = 0;\n findNodeByLoop(\n data,\n dropEvent.dropKey,\n (item, index, arr) => {\n tempArr = arr;\n tempIndex = index;\n },\n getDataKey\n );\n if (dropEvent.dropPosition === -1) {\n tempArr.splice(tempIndex, 0, dragNode);\n } else {\n tempArr.splice(tempIndex + 1, 0, dragNode);\n }\n }\n updateOriginData(data);\n };\n // #endregion\n\n // #region treeSelect\n\n const fireTreeSelect = (e: Event) => {\n const selectItems = [] as TreeItem[];\n selectedKeys.value.forEach((key) => {\n if (treeDataMap.value.get(key)) {\n selectItems.push(treeDataMap.value.get(key)!.dataRef);\n }\n });\n emit('update:selectedKeys', selectedKeys.value);\n emit('select', selectItems, e);\n };\n\n // #endregion\n\n // #region treeCheck\n\n const fireTreeCheck = (e: Event, key: string | number) => {\n if (props.disabled) return;\n const keyIndex = checkedKeys.value.indexOf(key);\n if (props.checkStrictly) {\n if (keyIndex === -1) {\n checkedKeys.value.push(key);\n } else {\n checkedKeys.value.splice(keyIndex, 1);\n }\n } else {\n const checked = !(keyIndex >= 0);\n const checkResult = computedChecked([key], checked);\n checkedKeys.value = checkResult.checkedKeys;\n halfCheckedKeys.value = checkResult.halfCheckedKeys;\n // emit('check', checkResult.checkedKeys, checkResult.halfCheckedKeys, e);\n }\n emit('update:checkedKeys', checkedKeys.value);\n emit('check', checkedKeys.value, props.checkStrictly ? [] : halfCheckedKeys.value, e);\n };\n\n // #endregion\n\n // #region tree Data operate\n const treeNodeOperate = (type: 'add' | 'delete', key: string | number, children?: TreeItem[]) => {\n const data = treeMap(props.treeData, (x) => ({ ...x }));\n if (type === 'add') {\n findNodeByLoop(\n data,\n key,\n (item) => {\n item.children = [...(item.children || []), ...(children || [])];\n },\n getDataKey\n );\n } else {\n const currentNode = treeDataMap.value.get(key)!;\n\n if (currentNode.parent === null) {\n const index = data.findIndex((x) => getDataKey(x as InnerTreeItem) === key);\n data.splice(index, 1);\n } else {\n findNodeByLoop(\n data,\n getDataKey(currentNode.parent),\n (item) => {\n const index = item.children!.findIndex((x) => getDataKey(x as InnerTreeItem) === key);\n item.children!.splice(index, 1);\n },\n getDataKey\n );\n }\n }\n\n updateOriginData(data);\n };\n\n // #endregion\n\n // #region async load data\n\n const asyncLoadData = (node: InnerTreeItem) => {\n const nodeKey = getDataKey(node);\n loadingKeys.value.push(nodeKey);\n return new Promise<void>((resolve) => {\n if (props.loadData) {\n const promise = props.loadData(node);\n promise.then((children?: TreeItem[]) => {\n if (children && Array.isArray(children)) {\n treeNodeOperate('add', nodeKey, children);\n }\n loadingKeys.value = loadingKeys.value.filter((x) => x !== nodeKey);\n resolve();\n });\n }\n resolve();\n });\n };\n\n // #endregion\n\n const fireTreeExpand = (e: Event) => {\n emit('update:expandedKeys', expandedKeys.value);\n emit('expand', expandedKeys.value, e);\n };\n\n const getParentDisabled = (key: string | number): boolean => {\n const node = treeDataMap.value.get(key);\n if (node?.disabled) return true;\n if (node?.parent) {\n return getParentDisabled(node.parent.key);\n }\n return false;\n };\n\n // 当前节点是否禁用,找到根节点\n const isDisabledNode = (key: string | number) => {\n const node = treeDataMap.value.get(key);\n if (node?.disabled) return true;\n return getParentDisabled(key);\n };\n\n // #region provide\n provide(\n TREE_CONTEXT_INJECTION_KEY,\n reactive({\n props,\n emit,\n prefixCls,\n treeDataMap,\n selectedKeys,\n expandedKeys,\n checkedKeys,\n halfCheckedKeys,\n dragKey,\n loadingKeys,\n asyncLoadData,\n treeNodeOperate,\n updateDragKeys,\n fireTreeDrop,\n fireTreeSelect,\n fireTreeCheck,\n fireTreeExpand,\n getDataKey,\n isDisabledNode\n })\n );\n // #endregion\n\n return {\n prefixCls,\n localTreeData,\n computedChecked // treeSelect use\n };\n }\n});\n</script>\n"],"names":["_createElementBlock","_normalizeClass","_createVNode"],"mappings":"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"}
@@ -151,5 +151,6 @@ export interface TreeContext {
151
151
  fireTreeCheck: (e: Event, key: string | number) => void;
152
152
  fireTreeExpand: (e: Event) => void;
153
153
  getDataKey: (data: InnerTreeItem) => string | number;
154
+ isDisabledNode: (key: string | number) => boolean;
154
155
  }
155
156
  export declare const TREE_CONTEXT_INJECTION_KEY: InjectionKey<TreeContext>;
@@ -1 +1 @@
1
- {"version":3,"file":"Tree.type.mjs","sources":["../../../../src/components/Tree/Tree.type.ts"],"sourcesContent":["import type { PropType, ExtractPropTypes, InjectionKey, VNode } from 'vue';\nimport { USolidCaretRight } from '@koi-design/uxd-icon';\nimport type { EmitFn, IconPropType } from '../../utils/globalType';\n\nexport interface TreeItem {\n title: string;\n key?: string | number;\n disabled?: boolean;\n children?: TreeItem[];\n isLeaf?: boolean;\n checkable?: boolean;\n [key: string]: any;\n}\n\nexport interface TreeNodeSlotArgs {\n node: InnerTreeItem;\n origin: TreeItem;\n operate: (type: 'add' | 'delete', key: string, children: TreeItem[]) => void;\n}\nexport interface InnerTreeItem extends TreeItem {\n key: string | number;\n slot: (param: TreeNodeSlotArgs) => VNode[];\n operateSlot: (param: TreeNodeSlotArgs) => VNode[];\n componentKey: string;\n dataRef: TreeItem;\n // & { parent: boolean | null };\n parent: InnerTreeItem | null;\n level: string;\n children?: InnerTreeItem[];\n}\n\nexport type TreeMap = Map<string | number, InnerTreeItem>;\n\nexport type TreeLoadData = (node: InnerTreeItem) => Promise<TreeItem[] | undefined>;\n\nexport type GetDataKey = (item: InnerTreeItem) => string | number;\n\nexport const treeProps = {\n treeData: {\n type: Array as PropType<TreeItem[]>,\n default: (): TreeItem[] => []\n },\n dataKey: {\n type: [Function, String] as PropType<string | GetDataKey>,\n default: 'key'\n },\n multiple: {\n type: Boolean,\n default: false\n },\n checkable: {\n type: Boolean,\n default: false\n },\n selectable: {\n type: Boolean,\n default: true\n },\n checkStrictly: {\n type: Boolean,\n default: false\n },\n disabled: {\n type: Boolean,\n default: false\n },\n switcherIcon: {\n type: [String, Object] as PropType<IconPropType>,\n default: USolidCaretRight\n },\n showLine: {\n type: Boolean,\n default: false\n },\n showIcon: {\n type: Boolean,\n default: false\n },\n selectedKeys: {\n type: Array as PropType<(string | number)[]>,\n default: (): string[] => []\n },\n expandedKeys: {\n type: Array as PropType<(string | number)[]>,\n default: (): string[] => []\n },\n checkedKeys: {\n type: Array as PropType<(string | number)[]>,\n default: (): string[] => []\n },\n defaultExpandAll: {\n type: Boolean,\n default: false\n },\n draggable: {\n type: Boolean,\n default: false\n },\n blockNode: {\n type: Boolean,\n default: false\n },\n loadData: {\n type: Function as PropType<TreeLoadData>\n },\n loadedKeys: {\n type: Array as PropType<(string | number)[]>\n },\n treeSelect: {\n type: Boolean,\n default: false\n }\n};\nexport type TreeProps = ExtractPropTypes<typeof treeProps>;\n\nexport const treeEmits = {\n 'update:treeData': (data: TreeItem[]) => Array.isArray(data),\n 'update:selectedKeys': (keys: (string | number)[]) => Array.isArray(keys),\n 'update:expandedKeys': (keys: (string | number)[]) => Array.isArray(keys),\n 'update:checkedKeys': (keys: (string | number)[]) => Array.isArray(keys),\n\n select: (item: TreeItem[], e: Event) => Array.isArray(item) && e instanceof Event,\n check: (checkedkeys: (string | number)[], halfCheckedKeys: (string | number)[], e?: Event) =>\n Array.isArray(checkedkeys) && Array.isArray(halfCheckedKeys) && (e === undefined || e instanceof Event),\n expand: (keys: (string | number)[], e: Event) => Array.isArray(keys) && e instanceof Event,\n 'update-data': (data: TreeItem[]) => Array.isArray(data),\n 'drag-start': (node: TreeItem, e: Event) => typeof node === 'object' && e instanceof Event\n};\n\nexport type TreeEmits = typeof treeEmits;\n\nexport const treeNodeProps = {\n data: {\n type: Object as PropType<InnerTreeItem>,\n default: () => ({} as InnerTreeItem)\n },\n appear: {\n type: Boolean,\n default: false\n }\n};\n\nexport type TreeNodeProps = ExtractPropTypes<typeof treeNodeProps>;\n\nexport interface TreeContext {\n props: TreeProps;\n prefixCls: string;\n treeDataMap: TreeMap;\n selectedKeys: (string | number)[];\n expandedKeys: (string | number)[];\n checkedKeys: (string | number)[];\n halfCheckedKeys: (string | number)[];\n dragKey: string | number;\n loadingKeys: (string | number)[];\n emit: EmitFn<TreeEmits>;\n updateDragKeys: (key: string | number) => void;\n fireTreeDrop: (params: { dragKey: string | number; dropKey: string | number; dropPosition: number; dropToGap: boolean }) => void;\n treeNodeOperate: (type: 'add' | 'delete', key: string, children?: TreeItem[]) => void;\n asyncLoadData: (node: InnerTreeItem) => Promise<void>;\n fireTreeSelect: (e: Event) => void;\n fireTreeCheck: (e: Event, key: string | number) => void;\n fireTreeExpand: (e: Event) => void;\n getDataKey: (data: InnerTreeItem) => string | number;\n}\n\nexport const TREE_CONTEXT_INJECTION_KEY: InjectionKey<TreeContext> = Symbol('treeContext');\n"],"names":[],"mappings":";;MAqCa,YAAY;AAAA,EACvB,UAAU;AAAA,IACR,MAAM;AAAA,IACN,SAAS,MAAkB;AAAC;AAC9B,EACA,SAAS;AAAA,IACP,MAAM,CAAC,UAAU,MAAM;AAAA,IACvB,SAAS;AAAA;AACX,EACA,UAAU;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,WAAW;AAAA,IACT,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,YAAY;AAAA,IACV,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,eAAe;AAAA,IACb,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,UAAU;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,cAAc;AAAA,IACZ,MAAM,CAAC,QAAQ,MAAM;AAAA,IACrB,SAAS;AAAA;AACX,EACA,UAAU;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,UAAU;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,cAAc;AAAA,IACZ,MAAM;AAAA,IACN,SAAS,MAAgB;AAAC;AAC5B,EACA,cAAc;AAAA,IACZ,MAAM;AAAA,IACN,SAAS,MAAgB;AAAC;AAC5B,EACA,aAAa;AAAA,IACX,MAAM;AAAA,IACN,SAAS,MAAgB;AAAC;AAC5B,EACA,kBAAkB;AAAA,IAChB,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,WAAW;AAAA,IACT,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,WAAW;AAAA,IACT,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,UAAU;AAAA,IACR,MAAM;AAAA;AACR,EACA,YAAY;AAAA,IACV,MAAM;AAAA;AACR,EACA,YAAY;AAAA,IACV,MAAM;AAAA,IACN,SAAS;AAAA;AAEb;MAGa,YAAY;AAAA,EACvB,mBAAmB,CAAC,SAAqB,MAAM,QAAQ,IAAI;AAAA,EAC3D,uBAAuB,CAAC,SAA8B,MAAM,QAAQ,IAAI;AAAA,EACxE,uBAAuB,CAAC,SAA8B,MAAM,QAAQ,IAAI;AAAA,EACxE,sBAAsB,CAAC,SAA8B,MAAM,QAAQ,IAAI;AAAA,EAEvE,QAAQ,CAAC,MAAkB,MAAa,MAAM,QAAQ,IAAI,KAAK,aAAa;AAAA,EAC5E,OAAO,CAAC,aAAkC,iBAAsC,MAC9E,MAAM,QAAQ,WAAW,KAAK,MAAM,QAAQ,eAAe,MAAM,MAAM,UAAa,aAAa;AAAA,EACnG,QAAQ,CAAC,MAA2B,MAAa,MAAM,QAAQ,IAAI,KAAK,aAAa;AAAA,EACrF,eAAe,CAAC,SAAqB,MAAM,QAAQ,IAAI;AAAA,EACvD,cAAc,CAAC,MAAgB,MAAa,OAAO,SAAS,YAAY,aAAa;AACvF;MAIa,gBAAgB;AAAA,EAC3B,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,SAAS,OAAO;AAAC;AACnB,EACA,QAAQ;AAAA,IACN,MAAM;AAAA,IACN,SAAS;AAAA;AAEb;MAyBa,6BAAwD,OAAO,aAAa;;;;"}
1
+ {"version":3,"file":"Tree.type.mjs","sources":["../../../../src/components/Tree/Tree.type.ts"],"sourcesContent":["import type { PropType, ExtractPropTypes, InjectionKey, VNode } from 'vue';\nimport { USolidCaretRight } from '@koi-design/uxd-icon';\nimport type { EmitFn, IconPropType } from '../../utils/globalType';\n\nexport interface TreeItem {\n title: string;\n key?: string | number;\n disabled?: boolean;\n children?: TreeItem[];\n isLeaf?: boolean;\n checkable?: boolean;\n [key: string]: any;\n}\n\nexport interface TreeNodeSlotArgs {\n node: InnerTreeItem;\n origin: TreeItem;\n operate: (type: 'add' | 'delete', key: string, children: TreeItem[]) => void;\n}\nexport interface InnerTreeItem extends TreeItem {\n key: string | number;\n slot: (param: TreeNodeSlotArgs) => VNode[];\n operateSlot: (param: TreeNodeSlotArgs) => VNode[];\n componentKey: string;\n dataRef: TreeItem;\n // & { parent: boolean | null };\n parent: InnerTreeItem | null;\n level: string;\n children?: InnerTreeItem[];\n}\n\nexport type TreeMap = Map<string | number, InnerTreeItem>;\n\nexport type TreeLoadData = (node: InnerTreeItem) => Promise<TreeItem[] | undefined>;\n\nexport type GetDataKey = (item: InnerTreeItem) => string | number;\n\nexport const treeProps = {\n treeData: {\n type: Array as PropType<TreeItem[]>,\n default: (): TreeItem[] => []\n },\n dataKey: {\n type: [Function, String] as PropType<string | GetDataKey>,\n default: 'key'\n },\n multiple: {\n type: Boolean,\n default: false\n },\n checkable: {\n type: Boolean,\n default: false\n },\n selectable: {\n type: Boolean,\n default: true\n },\n checkStrictly: {\n type: Boolean,\n default: false\n },\n disabled: {\n type: Boolean,\n default: false\n },\n switcherIcon: {\n type: [String, Object] as PropType<IconPropType>,\n default: USolidCaretRight\n },\n showLine: {\n type: Boolean,\n default: false\n },\n showIcon: {\n type: Boolean,\n default: false\n },\n selectedKeys: {\n type: Array as PropType<(string | number)[]>,\n default: (): string[] => []\n },\n expandedKeys: {\n type: Array as PropType<(string | number)[]>,\n default: (): string[] => []\n },\n checkedKeys: {\n type: Array as PropType<(string | number)[]>,\n default: (): string[] => []\n },\n defaultExpandAll: {\n type: Boolean,\n default: false\n },\n draggable: {\n type: Boolean,\n default: false\n },\n blockNode: {\n type: Boolean,\n default: false\n },\n loadData: {\n type: Function as PropType<TreeLoadData>\n },\n loadedKeys: {\n type: Array as PropType<(string | number)[]>\n },\n treeSelect: {\n type: Boolean,\n default: false\n }\n};\nexport type TreeProps = ExtractPropTypes<typeof treeProps>;\n\nexport const treeEmits = {\n 'update:treeData': (data: TreeItem[]) => Array.isArray(data),\n 'update:selectedKeys': (keys: (string | number)[]) => Array.isArray(keys),\n 'update:expandedKeys': (keys: (string | number)[]) => Array.isArray(keys),\n 'update:checkedKeys': (keys: (string | number)[]) => Array.isArray(keys),\n\n select: (item: TreeItem[], e: Event) => Array.isArray(item) && e instanceof Event,\n check: (checkedkeys: (string | number)[], halfCheckedKeys: (string | number)[], e?: Event) =>\n Array.isArray(checkedkeys) && Array.isArray(halfCheckedKeys) && (e === undefined || e instanceof Event),\n expand: (keys: (string | number)[], e: Event) => Array.isArray(keys) && e instanceof Event,\n 'update-data': (data: TreeItem[]) => Array.isArray(data),\n 'drag-start': (node: TreeItem, e: Event) => typeof node === 'object' && e instanceof Event\n};\n\nexport type TreeEmits = typeof treeEmits;\n\nexport const treeNodeProps = {\n data: {\n type: Object as PropType<InnerTreeItem>,\n default: () => ({} as InnerTreeItem)\n },\n appear: {\n type: Boolean,\n default: false\n }\n};\n\nexport type TreeNodeProps = ExtractPropTypes<typeof treeNodeProps>;\n\nexport interface TreeContext {\n props: TreeProps;\n prefixCls: string;\n treeDataMap: TreeMap;\n selectedKeys: (string | number)[];\n expandedKeys: (string | number)[];\n checkedKeys: (string | number)[];\n halfCheckedKeys: (string | number)[];\n dragKey: string | number;\n loadingKeys: (string | number)[];\n emit: EmitFn<TreeEmits>;\n updateDragKeys: (key: string | number) => void;\n fireTreeDrop: (params: { dragKey: string | number; dropKey: string | number; dropPosition: number; dropToGap: boolean }) => void;\n treeNodeOperate: (type: 'add' | 'delete', key: string, children?: TreeItem[]) => void;\n asyncLoadData: (node: InnerTreeItem) => Promise<void>;\n fireTreeSelect: (e: Event) => void;\n fireTreeCheck: (e: Event, key: string | number) => void;\n fireTreeExpand: (e: Event) => void;\n getDataKey: (data: InnerTreeItem) => string | number;\n isDisabledNode: (key: string | number) => boolean;\n}\n\nexport const TREE_CONTEXT_INJECTION_KEY: InjectionKey<TreeContext> = Symbol('treeContext');\n"],"names":[],"mappings":";;MAqCa,YAAY;AAAA,EACvB,UAAU;AAAA,IACR,MAAM;AAAA,IACN,SAAS,MAAkB;AAAC;AAC9B,EACA,SAAS;AAAA,IACP,MAAM,CAAC,UAAU,MAAM;AAAA,IACvB,SAAS;AAAA;AACX,EACA,UAAU;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,WAAW;AAAA,IACT,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,YAAY;AAAA,IACV,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,eAAe;AAAA,IACb,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,UAAU;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,cAAc;AAAA,IACZ,MAAM,CAAC,QAAQ,MAAM;AAAA,IACrB,SAAS;AAAA;AACX,EACA,UAAU;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,UAAU;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,cAAc;AAAA,IACZ,MAAM;AAAA,IACN,SAAS,MAAgB;AAAC;AAC5B,EACA,cAAc;AAAA,IACZ,MAAM;AAAA,IACN,SAAS,MAAgB;AAAC;AAC5B,EACA,aAAa;AAAA,IACX,MAAM;AAAA,IACN,SAAS,MAAgB;AAAC;AAC5B,EACA,kBAAkB;AAAA,IAChB,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,WAAW;AAAA,IACT,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,WAAW;AAAA,IACT,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,UAAU;AAAA,IACR,MAAM;AAAA;AACR,EACA,YAAY;AAAA,IACV,MAAM;AAAA;AACR,EACA,YAAY;AAAA,IACV,MAAM;AAAA,IACN,SAAS;AAAA;AAEb;MAGa,YAAY;AAAA,EACvB,mBAAmB,CAAC,SAAqB,MAAM,QAAQ,IAAI;AAAA,EAC3D,uBAAuB,CAAC,SAA8B,MAAM,QAAQ,IAAI;AAAA,EACxE,uBAAuB,CAAC,SAA8B,MAAM,QAAQ,IAAI;AAAA,EACxE,sBAAsB,CAAC,SAA8B,MAAM,QAAQ,IAAI;AAAA,EAEvE,QAAQ,CAAC,MAAkB,MAAa,MAAM,QAAQ,IAAI,KAAK,aAAa;AAAA,EAC5E,OAAO,CAAC,aAAkC,iBAAsC,MAC9E,MAAM,QAAQ,WAAW,KAAK,MAAM,QAAQ,eAAe,MAAM,MAAM,UAAa,aAAa;AAAA,EACnG,QAAQ,CAAC,MAA2B,MAAa,MAAM,QAAQ,IAAI,KAAK,aAAa;AAAA,EACrF,eAAe,CAAC,SAAqB,MAAM,QAAQ,IAAI;AAAA,EACvD,cAAc,CAAC,MAAgB,MAAa,OAAO,SAAS,YAAY,aAAa;AACvF;MAIa,gBAAgB;AAAA,EAC3B,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,SAAS,OAAO;AAAC;AACnB,EACA,QAAQ;AAAA,IACN,MAAM;AAAA,IACN,SAAS;AAAA;AAEb;MA0Ba,6BAAwD,OAAO,aAAa;;;;"}
@@ -42,7 +42,19 @@ const _sfc_main = defineComponent({
42
42
  return tree.loadingKeys.includes(dataKey.value);
43
43
  });
44
44
  const isDisabled = computed(() => {
45
- return props.data.disabled !== void 0 ? props.data.disabled : tree.props.disabled;
45
+ if (props.data.disabled !== void 0) {
46
+ return props.data.disabled;
47
+ }
48
+ if (!tree.props.checkStrictly) {
49
+ const parentDisabled = tree.isDisabledNode(dataKey.value);
50
+ if (parentDisabled) {
51
+ return true;
52
+ }
53
+ }
54
+ return tree.props.disabled;
55
+ });
56
+ const checkStrictly = computed(() => {
57
+ return tree.props.checkable && tree.props.checkStrictly;
46
58
  });
47
59
  const pauseEvent = (e) => {
48
60
  e.stopPropagation();
@@ -128,6 +140,7 @@ const _sfc_main = defineComponent({
128
140
  dragOverGapBottom,
129
141
  isLeaf,
130
142
  treeNodeOperate,
143
+ checkStrictly,
131
144
  ...toRefs(tree.props)
132
145
  };
133
146
  }
@@ -147,6 +160,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
147
160
  {
148
161
  [`${_ctx.prefixCls}-node-open`]: _ctx.expanded,
149
162
  [`${_ctx.prefixCls}-node-disabled`]: _ctx.isDisabled,
163
+ [`${_ctx.prefixCls}-node-checkStrictly`]: !_ctx.isDisabled && _ctx.checkStrictly,
150
164
  [`${_ctx.prefixCls}-block-node`]: _ctx.blockNode,
151
165
  [`${_ctx.prefixCls}-node-selected`]: !_ctx.disabled && !_ctx.data.disabled && _ctx.selected && _ctx.blockNode && !_ctx.checkable,
152
166
  "drag-over": _ctx.dragOver,
@@ -1 +1 @@
1
- {"version":3,"file":"TreeNode.mjs","sources":["../../../../src/components/Tree/TreeNode.vue"],"sourcesContent":[", type TreeItem, watch, type TreeItem\n<template>\n <li\n ref=\"treeNode\"\n :class=\"[\n `${prefixCls}-node`,\n {\n [`${prefixCls}-node-open`]: expanded,\n [`${prefixCls}-node-disabled`]: isDisabled,\n [`${prefixCls}-block-node`]: blockNode,\n [`${prefixCls}-node-selected`]: !disabled && !data.disabled && selected && blockNode && !checkable,\n 'drag-over': dragOver,\n 'drag-over-gap-top': dragOverGapTop,\n 'drag-over-gap-bottom': dragOverGapBottom\n }\n ]\"\n @dragenter=\"(e) => onDragEnter(e)\"\n @dragover=\"(e) => onDragOver(e)\"\n @dragleave=\"(e) => onDragLeave(e)\"\n @drop=\"(e) => onDrop(e)\"\n @dragend=\"(e) => onDragEnd(e)\"\n >\n <div :class=\"`${prefixCls}-node-wrap`\">\n <span\n :class=\"[\n `${prefixCls}-switcher`,\n {\n [`${prefixCls}-switcher-open`]: expanded\n }\n ]\"\n @click=\"(e) => handleExpand(data, e)\"\n >\n <UIcon v-if=\"!isLeaf(data) && !loading\" :class=\"`${prefixCls}-switcher-icon`\">\n <component :is=\"switcherIcon\" />\n </UIcon>\n <UIcon v-if=\"loading\" :class=\"`${prefixCls}-switcher-icon`\" spin>\n <ULineLoading />\n </UIcon>\n <UIcon v-if=\"showLine && (!data.children || data.children.length === 0)\" :class=\"`${prefixCls}-switcher-line-icon`\">\n <ULineText />\n </UIcon>\n </span>\n <UCheckbox\n v-if=\"checkable\"\n v-show=\"data.checkable !== false\"\n :model-value=\"checked\"\n :indeterminate=\"indeterminate\"\n :disabled=\"isDisabled\"\n @click=\"(e: Event) => handleCheck(e)\"\n />\n <span\n ref=\"selectHandle\"\n :class=\"[\n `${prefixCls}-node-content-wrap`,\n {\n [`${prefixCls}-node-selected`]: !disabled && !data.disabled && (selected || dragNodeHighlight) && !blockNode,\n draggable: !disabled && !data.disabled && draggable,\n [`${prefixCls}-node-with-operate`]: !!data.operateSlot\n }\n ]\"\n :draggable=\"(!disabled && !data.disabled && draggable) || undefined\"\n @click=\"(e) => handleSelectClick(e)\"\n @dragstart=\"(e) => onDragStart(e, data)\"\n >\n <template v-if=\"data.slot\">\n <Render\n :render=\"\n () => {\n return data.slot({\n node: data,\n origin: data.dataRef,\n operate: treeNodeOperate\n });\n }\n \"\n />\n </template>\n <template v-else>\n {{ data.title }}\n </template>\n </span>\n <div v-if=\"data.operateSlot\" :class=\"`${prefixCls}-node-operate-box`\">\n <Render\n :render=\"\n () => {\n return data.operateSlot({\n node: data,\n origin: data.dataRef,\n operate: treeNodeOperate\n });\n }\n \"\n />\n </div>\n </div>\n\n <CollapseTransition :appear=\"appear\">\n <ul v-if=\"expanded\" :class=\"`${prefixCls}-child-tree`\">\n <slot name=\"list\" />\n </ul>\n </CollapseTransition>\n </li>\n</template>\n\n<script lang=\"ts\">\nimport { inject, ref, computed, toRefs, defineComponent } from 'vue';\nimport UIcon from '@uxd-ui/components/Icon';\nimport { ULineText, ULineLoading } from '@koi-design/uxd-icon';\nimport UCheckbox from '@uxd-ui/components/Checkbox';\nimport CollapseTransition from '../base/CollapseTransition';\nimport Render from '../base/Render';\nimport useDrag from './hooks/useDrag';\n\nimport { treeNodeProps, TREE_CONTEXT_INJECTION_KEY, type InnerTreeItem, type TreeItem } from './Tree.type';\n\nexport default defineComponent({\n name: 'UTreeNode',\n components: {\n UIcon,\n UCheckbox,\n CollapseTransition,\n Render,\n ULineLoading,\n ULineText\n },\n props: treeNodeProps,\n setup(props) {\n const treeNode = ref(null);\n const selectHandle = ref(null);\n const tree = inject(TREE_CONTEXT_INJECTION_KEY)!;\n const { prefixCls } = tree;\n\n // computed\n const dataKey = computed(() => tree.getDataKey(props.data));\n\n const selected = computed(() => {\n return tree.selectedKeys.includes(dataKey.value);\n });\n const expanded = computed(() => {\n return tree.expandedKeys.includes(dataKey.value);\n });\n const checked = computed(() => {\n return tree.checkedKeys.includes(dataKey.value);\n });\n const indeterminate = computed(() => {\n const rst = tree.props.checkable && !tree.props.checkStrictly && tree.halfCheckedKeys.includes(dataKey.value);\n return rst;\n });\n\n const loading = computed(() => {\n return tree.loadingKeys.includes(dataKey.value);\n });\n\n const isDisabled = computed(() => {\n return props.data.disabled !== undefined ? props.data.disabled : tree.props.disabled;\n });\n\n // methods\n\n const pauseEvent = (e: any) => {\n e.stopPropagation();\n e.preventDefault();\n };\n\n const handleSelectClick = (e: MouseEvent) => {\n if (!tree.props.selectable || isDisabled.value || tree.props.checkable) {\n return;\n }\n // Windows / Mac single pick\n const { ctrlKey, metaKey } = e;\n if (tree.props.multiple && (ctrlKey || metaKey || tree.props.treeSelect)) {\n // Control click\n if (tree.selectedKeys.includes(dataKey.value)) {\n tree.selectedKeys = tree.selectedKeys.filter((x) => x !== dataKey.value);\n } else {\n tree.selectedKeys.push(dataKey.value);\n }\n } else {\n tree.selectedKeys = [dataKey.value];\n }\n\n tree.fireTreeSelect(e);\n };\n\n // #region loadData\n const isLeaf = (node: InnerTreeItem) => {\n const hasChildren = node.children && node.children.length !== 0;\n if (tree.props.loadData !== undefined) {\n return !!node.isLeaf;\n }\n return !hasChildren;\n };\n\n const handleExpand = (node: InnerTreeItem, e: any) => {\n if (isLeaf(node)) return;\n const keyIndex = tree.expandedKeys.indexOf(dataKey.value);\n if (keyIndex === -1) {\n tree.expandedKeys.push(dataKey.value);\n } else {\n tree.expandedKeys.splice(keyIndex, 1);\n }\n tree.fireTreeExpand(e);\n\n if (!!tree.props.loadData && keyIndex === -1) {\n const find = tree.treeDataMap.get(dataKey.value as string);\n if (find) {\n tree.asyncLoadData(find);\n }\n }\n };\n // check click\n const handleCheck = (e: any) => {\n tree.fireTreeCheck(e, dataKey.value);\n pauseEvent(e);\n };\n // #region drag\n const { data } = toRefs(props);\n const params = {\n treeContext: tree,\n node: data,\n nodeRef: selectHandle,\n updateExpandKey: handleExpand\n };\n const { dragNodeHighlight, dragOver, dragOverGapTop, dragOverGapBottom, onDragStart, onDragEnter, onDragOver, onDragLeave, onDrop, onDragEnd } =\n useDrag(params);\n // #endregion\n\n const treeNodeOperate = (type: 'add' | 'delete', key: string, children?: TreeItem[]) => {\n tree.treeNodeOperate(type, key, children);\n };\n // #endregion\n\n return {\n prefixCls,\n treeNode,\n selectHandle,\n dragNodeHighlight,\n selected,\n expanded,\n checked,\n indeterminate,\n loading,\n isDisabled,\n handleSelectClick,\n handleExpand,\n handleCheck,\n onDragStart,\n onDragEnter,\n onDragOver,\n onDragLeave,\n onDrop,\n onDragEnd,\n dragOver,\n dragOverGapTop,\n dragOverGapBottom,\n isLeaf,\n treeNodeOperate,\n ...toRefs(tree.props)\n // blockNodeHeight\n };\n }\n});\n</script>\n"],"names":["_createElementBlock","_normalizeClass","_createElementVNode","_createBlock","_resolveDynamicComponent","_createVNode","_Fragment","_renderSlot"],"mappings":"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"}
1
+ {"version":3,"file":"TreeNode.mjs","sources":["../../../../src/components/Tree/TreeNode.vue"],"sourcesContent":[", type TreeItem, watch, type TreeItem\n<template>\n <li\n ref=\"treeNode\"\n :class=\"[\n `${prefixCls}-node`,\n {\n [`${prefixCls}-node-open`]: expanded,\n [`${prefixCls}-node-disabled`]: isDisabled,\n [`${prefixCls}-node-checkStrictly`]: !isDisabled && checkStrictly,\n [`${prefixCls}-block-node`]: blockNode,\n [`${prefixCls}-node-selected`]: !disabled && !data.disabled && selected && blockNode && !checkable,\n 'drag-over': dragOver,\n 'drag-over-gap-top': dragOverGapTop,\n 'drag-over-gap-bottom': dragOverGapBottom\n }\n ]\"\n @dragenter=\"(e) => onDragEnter(e)\"\n @dragover=\"(e) => onDragOver(e)\"\n @dragleave=\"(e) => onDragLeave(e)\"\n @drop=\"(e) => onDrop(e)\"\n @dragend=\"(e) => onDragEnd(e)\"\n >\n <div :class=\"`${prefixCls}-node-wrap`\">\n <span\n :class=\"[\n `${prefixCls}-switcher`,\n {\n [`${prefixCls}-switcher-open`]: expanded\n }\n ]\"\n @click=\"(e) => handleExpand(data, e)\"\n >\n <UIcon v-if=\"!isLeaf(data) && !loading\" :class=\"`${prefixCls}-switcher-icon`\">\n <component :is=\"switcherIcon\" />\n </UIcon>\n <UIcon v-if=\"loading\" :class=\"`${prefixCls}-switcher-icon`\" spin>\n <ULineLoading />\n </UIcon>\n <UIcon v-if=\"showLine && (!data.children || data.children.length === 0)\" :class=\"`${prefixCls}-switcher-line-icon`\">\n <ULineText />\n </UIcon>\n </span>\n <UCheckbox\n v-if=\"checkable\"\n v-show=\"data.checkable !== false\"\n :model-value=\"checked\"\n :indeterminate=\"indeterminate\"\n :disabled=\"isDisabled\"\n @click=\"(e: Event) => handleCheck(e)\"\n />\n <span\n ref=\"selectHandle\"\n :class=\"[\n `${prefixCls}-node-content-wrap`,\n {\n [`${prefixCls}-node-selected`]: !disabled && !data.disabled && (selected || dragNodeHighlight) && !blockNode,\n draggable: !disabled && !data.disabled && draggable,\n [`${prefixCls}-node-with-operate`]: !!data.operateSlot\n }\n ]\"\n :draggable=\"(!disabled && !data.disabled && draggable) || undefined\"\n @click=\"(e) => handleSelectClick(e)\"\n @dragstart=\"(e) => onDragStart(e, data)\"\n >\n <template v-if=\"data.slot\">\n <Render\n :render=\"\n () => {\n return data.slot({\n node: data,\n origin: data.dataRef,\n operate: treeNodeOperate\n });\n }\n \"\n />\n </template>\n <template v-else>\n {{ data.title }}\n </template>\n </span>\n <div v-if=\"data.operateSlot\" :class=\"`${prefixCls}-node-operate-box`\">\n <Render\n :render=\"\n () => {\n return data.operateSlot({\n node: data,\n origin: data.dataRef,\n operate: treeNodeOperate\n });\n }\n \"\n />\n </div>\n </div>\n\n <CollapseTransition :appear=\"appear\">\n <ul v-if=\"expanded\" :class=\"`${prefixCls}-child-tree`\">\n <slot name=\"list\" />\n </ul>\n </CollapseTransition>\n </li>\n</template>\n\n<script lang=\"ts\">\nimport { inject, ref, computed, toRefs, defineComponent } from 'vue';\nimport UIcon from '@uxd-ui/components/Icon';\nimport { ULineText, ULineLoading } from '@koi-design/uxd-icon';\nimport UCheckbox from '@uxd-ui/components/Checkbox';\nimport CollapseTransition from '../base/CollapseTransition';\nimport Render from '../base/Render';\nimport useDrag from './hooks/useDrag';\n\nimport { treeNodeProps, TREE_CONTEXT_INJECTION_KEY, type InnerTreeItem, type TreeItem } from './Tree.type';\n\nexport default defineComponent({\n name: 'UTreeNode',\n components: {\n UIcon,\n UCheckbox,\n CollapseTransition,\n Render,\n ULineLoading,\n ULineText\n },\n props: treeNodeProps,\n setup(props) {\n const treeNode = ref(null);\n const selectHandle = ref(null);\n const tree = inject(TREE_CONTEXT_INJECTION_KEY)!;\n const { prefixCls } = tree;\n\n // computed\n const dataKey = computed(() => tree.getDataKey(props.data));\n\n const selected = computed(() => {\n return tree.selectedKeys.includes(dataKey.value);\n });\n const expanded = computed(() => {\n return tree.expandedKeys.includes(dataKey.value);\n });\n const checked = computed(() => {\n return tree.checkedKeys.includes(dataKey.value);\n });\n const indeterminate = computed(() => {\n const rst = tree.props.checkable && !tree.props.checkStrictly && tree.halfCheckedKeys.includes(dataKey.value);\n return rst;\n });\n\n const loading = computed(() => {\n return tree.loadingKeys.includes(dataKey.value);\n });\n\n const isDisabled = computed(() => {\n if (props.data.disabled !== undefined) {\n return props.data.disabled;\n }\n\n if (!tree.props.checkStrictly) {\n const parentDisabled = tree.isDisabledNode(dataKey.value);\n if (parentDisabled) {\n return true;\n }\n }\n\n return tree.props.disabled;\n });\n\n const checkStrictly = computed(() => {\n return tree.props.checkable && tree.props.checkStrictly;\n });\n\n // methods\n\n const pauseEvent = (e: any) => {\n e.stopPropagation();\n e.preventDefault();\n };\n\n const handleSelectClick = (e: MouseEvent) => {\n if (!tree.props.selectable || isDisabled.value || tree.props.checkable) {\n return;\n }\n // Windows / Mac single pick\n const { ctrlKey, metaKey } = e;\n if (tree.props.multiple && (ctrlKey || metaKey || tree.props.treeSelect)) {\n // Control click\n if (tree.selectedKeys.includes(dataKey.value)) {\n tree.selectedKeys = tree.selectedKeys.filter((x) => x !== dataKey.value);\n } else {\n tree.selectedKeys.push(dataKey.value);\n }\n } else {\n tree.selectedKeys = [dataKey.value];\n }\n\n tree.fireTreeSelect(e);\n };\n\n // #region loadData\n const isLeaf = (node: InnerTreeItem) => {\n const hasChildren = node.children && node.children.length !== 0;\n if (tree.props.loadData !== undefined) {\n return !!node.isLeaf;\n }\n return !hasChildren;\n };\n\n const handleExpand = (node: InnerTreeItem, e: any) => {\n if (isLeaf(node)) return;\n const keyIndex = tree.expandedKeys.indexOf(dataKey.value);\n if (keyIndex === -1) {\n tree.expandedKeys.push(dataKey.value);\n } else {\n tree.expandedKeys.splice(keyIndex, 1);\n }\n tree.fireTreeExpand(e);\n\n if (!!tree.props.loadData && keyIndex === -1) {\n const find = tree.treeDataMap.get(dataKey.value as string);\n if (find) {\n tree.asyncLoadData(find);\n }\n }\n };\n // check click\n const handleCheck = (e: any) => {\n tree.fireTreeCheck(e, dataKey.value);\n pauseEvent(e);\n };\n // #region drag\n const { data } = toRefs(props);\n const params = {\n treeContext: tree,\n node: data,\n nodeRef: selectHandle,\n updateExpandKey: handleExpand\n };\n const { dragNodeHighlight, dragOver, dragOverGapTop, dragOverGapBottom, onDragStart, onDragEnter, onDragOver, onDragLeave, onDrop, onDragEnd } =\n useDrag(params);\n // #endregion\n\n const treeNodeOperate = (type: 'add' | 'delete', key: string, children?: TreeItem[]) => {\n tree.treeNodeOperate(type, key, children);\n };\n // #endregion\n\n return {\n prefixCls,\n treeNode,\n selectHandle,\n dragNodeHighlight,\n selected,\n expanded,\n checked,\n indeterminate,\n loading,\n isDisabled,\n handleSelectClick,\n handleExpand,\n handleCheck,\n onDragStart,\n onDragEnter,\n onDragOver,\n onDragLeave,\n onDrop,\n onDragEnd,\n dragOver,\n dragOverGapTop,\n dragOverGapBottom,\n isLeaf,\n treeNodeOperate,\n checkStrictly,\n ...toRefs(tree.props)\n // blockNodeHeight\n };\n }\n});\n</script>\n"],"names":["_createElementBlock","_normalizeClass","_createElementVNode","_createBlock","_resolveDynamicComponent","_createVNode","_Fragment","_renderSlot"],"mappings":"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"}
@@ -107,6 +107,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
107
107
  visible: _ctx.visible,
108
108
  placement: _ctx.placement,
109
109
  trigger: [_ctx.trigger],
110
+ "mouse-enter-delay": _ctx.showDelay / 1e3,
110
111
  "transition-name": "zoom-big-fast",
111
112
  offset: _ctx.offset,
112
113
  "destroy-popup-on-hide": _ctx.destroyOnHide,
@@ -148,7 +149,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
148
149
  vue.renderSlot(_ctx.$slots, "default")
149
150
  ]),
150
151
  _: 3
151
- }, 8, ["class", "style", "prefix-cls", "popup-class", "popup-style", "visible", "placement", "trigger", "offset", "destroy-popup-on-hide", "onPopupVisibleChange"]));
152
+ }, 8, ["class", "style", "prefix-cls", "popup-class", "popup-style", "visible", "placement", "trigger", "mouse-enter-delay", "offset", "destroy-popup-on-hide", "onPopupVisibleChange"]));
152
153
  }
153
154
  var Popover = /* @__PURE__ */ pluginVue_exportHelper["default"](_sfc_main, [["render", _sfc_render], ["__file", "D:\\uxd\\uxd-ui\\src\\components\\Popover\\Popover.vue"]]);
154
155
 
@@ -1 +1 @@
1
- {"version":3,"file":"Popover.js","sources":["../../../../src/components/Popover/Popover.vue"],"sourcesContent":["<template>\n <template v-if=\"disabled\">\n <slot />\n </template>\n <template v-else>\n <Popup\n ref=\"popupRef\"\n :class=\"$attrs.class\"\n :style=\"$attrs.style\"\n :prefix-cls=\"prefixCls\"\n :popup-class=\"dropdownClass\"\n :popup-style=\"popupStyle\"\n :visible=\"visible\"\n :placement=\"placement\"\n :trigger=\"[trigger]\"\n transition-name=\"zoom-big-fast\"\n :offset=\"offset\"\n :destroy-popup-on-hide=\"destroyOnHide\"\n @popup-visible-change=\"onVisibleChange\"\n >\n <slot />\n <template #popup>\n <div v-if=\"showArrow\" :class=\"`${prefixCls}-arrow`\" :style=\"arrowStyle\" />\n <div v-if=\"type === 'popover'\" ref=\"innerRef\" :class=\"`${prefixCls}-inner`\" role=\"popover\">\n <div v-if=\"showTitle\" :class=\"`${prefixCls}-inner-title`\">\n <slot name=\"title\">\n {{ title }}\n </slot>\n </div>\n <div\n :class=\"{\n [`${prefixCls}-inner-content`]: true,\n [`${dropdownClass}-content`]: dropdownClass\n }\"\n >\n <slot name=\"content\">\n {{ content }}\n </slot>\n </div>\n </div>\n <slot v-else name=\"popConfirm\" />\n </template>\n </Popup>\n </template>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, computed, ref, inject } from 'vue';\nimport type { CSSProperties } from 'vue';\nimport Popup from '@uxd-ui/components/Popup';\nimport useGlobalConfig from '../base/hooks/useGlobalConfig';\nimport { popoverProps, popoverEmits } from './Popover.type';\nimport { findDOMNode } from '../../utils';\n\nexport default defineComponent({\n name: 'UPopover',\n components: {\n Popup\n },\n props: popoverProps,\n emits: popoverEmits,\n setup(props, { slots, emit }) {\n const { prefixCls } = useGlobalConfig('popover');\n const popupRef = ref(null);\n const innerRef = ref(null);\n const popConfirmInnerRef = inject('PopConfirmInnerRef', ref(null));\n\n const onVisibleChange = (val: boolean) => {\n emit('update:visible', val);\n emit('visible-change', val);\n };\n const showTitle = computed(() => {\n return props.title || slots.title !== undefined;\n });\n const popupStyle = computed(() => {\n const width = typeof props.width === 'number' ? `${props.width}px` : props.width;\n return props.type === 'popover' ? ({ ...props.dropdownStyle } as CSSProperties) : ({ ...{ width }, ...props.dropdownStyle } as CSSProperties);\n });\n\n const arrowStyle = computed(() => {\n if (popupRef.value?.reference && (innerRef.value || popConfirmInnerRef.value)) {\n const { width, height } = findDOMNode(popupRef.value.reference).getBoundingClientRect();\n const inner = innerRef.value || popConfirmInnerRef.value;\n const { width: contentWidth, height: contentHeight } = inner.getBoundingClientRect();\n if (props.placement === 'left-start' || props.placement === 'right-start') {\n let top = height / 2;\n if (top > contentHeight) {\n top = 8;\n }\n return {\n top: `${top}px`,\n transform: 'translateY(-50%)'\n };\n }\n if (props.placement === 'left-end' || props.placement === 'right-end') {\n let bottom = height / 2;\n if (bottom > contentHeight) {\n bottom = 8;\n }\n return {\n bottom: `${bottom}px`,\n transform: 'translateY(50%)'\n };\n }\n if (props.placement === 'top-start' || props.placement === 'bottom-start') {\n let left = width / 2;\n if (left > contentWidth) {\n left = 16;\n }\n return {\n left: `${left}px`,\n transform: 'translateX(-50%)'\n };\n }\n if (props.placement === 'top-end' || props.placement === 'bottom-end') {\n let right = width / 2;\n if (right > contentWidth) {\n right = 16;\n }\n return {\n right: `${right}px`,\n transform: 'translateX(50%)'\n };\n }\n }\n return {};\n });\n\n return {\n popupRef,\n innerRef,\n prefixCls,\n showTitle,\n popupStyle,\n arrowStyle,\n onVisibleChange\n };\n }\n});\n</script>\n"],"names":["defineComponent","Popup","popoverProps","popoverEmits","slots","useGlobalConfig","ref","inject","computed","findDOMNode","_renderSlot","_createBlock","_normalizeClass","_normalizeStyle","_withCtx","_createElementBlock","_createElementVNode"],"mappings":"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"}
1
+ {"version":3,"file":"Popover.js","sources":["../../../../src/components/Popover/Popover.vue"],"sourcesContent":["<template>\n <template v-if=\"disabled\">\n <slot />\n </template>\n <template v-else>\n <Popup\n ref=\"popupRef\"\n :class=\"$attrs.class\"\n :style=\"$attrs.style\"\n :prefix-cls=\"prefixCls\"\n :popup-class=\"dropdownClass\"\n :popup-style=\"popupStyle\"\n :visible=\"visible\"\n :placement=\"placement\"\n :trigger=\"[trigger]\"\n :mouse-enter-delay=\"showDelay / 1000\"\n transition-name=\"zoom-big-fast\"\n :offset=\"offset\"\n :destroy-popup-on-hide=\"destroyOnHide\"\n @popup-visible-change=\"onVisibleChange\"\n >\n <slot />\n <template #popup>\n <div v-if=\"showArrow\" :class=\"`${prefixCls}-arrow`\" :style=\"arrowStyle\" />\n <div v-if=\"type === 'popover'\" ref=\"innerRef\" :class=\"`${prefixCls}-inner`\" role=\"popover\">\n <div v-if=\"showTitle\" :class=\"`${prefixCls}-inner-title`\">\n <slot name=\"title\">\n {{ title }}\n </slot>\n </div>\n <div\n :class=\"{\n [`${prefixCls}-inner-content`]: true,\n [`${dropdownClass}-content`]: dropdownClass\n }\"\n >\n <slot name=\"content\">\n {{ content }}\n </slot>\n </div>\n </div>\n <slot v-else name=\"popConfirm\" />\n </template>\n </Popup>\n </template>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, computed, ref, inject } from 'vue';\nimport type { CSSProperties } from 'vue';\nimport Popup from '@uxd-ui/components/Popup';\nimport useGlobalConfig from '../base/hooks/useGlobalConfig';\nimport { popoverProps, popoverEmits } from './Popover.type';\nimport { findDOMNode } from '../../utils';\n\nexport default defineComponent({\n name: 'UPopover',\n components: {\n Popup\n },\n props: popoverProps,\n emits: popoverEmits,\n setup(props, { slots, emit }) {\n const { prefixCls } = useGlobalConfig('popover');\n const popupRef = ref(null);\n const innerRef = ref(null);\n const popConfirmInnerRef = inject('PopConfirmInnerRef', ref(null));\n const onVisibleChange = (val: boolean) => {\n emit('update:visible', val);\n emit('visible-change', val);\n };\n const showTitle = computed(() => {\n return props.title || slots.title !== undefined;\n });\n const popupStyle = computed(() => {\n const width = typeof props.width === 'number' ? `${props.width}px` : props.width;\n return props.type === 'popover' ? ({ ...props.dropdownStyle } as CSSProperties) : ({ ...{ width }, ...props.dropdownStyle } as CSSProperties);\n });\n\n const arrowStyle = computed(() => {\n if (popupRef.value?.reference && (innerRef.value || popConfirmInnerRef.value)) {\n const { width, height } = findDOMNode(popupRef.value.reference).getBoundingClientRect();\n const inner = innerRef.value || popConfirmInnerRef.value;\n const { width: contentWidth, height: contentHeight } = inner.getBoundingClientRect();\n if (props.placement === 'left-start' || props.placement === 'right-start') {\n let top = height / 2;\n if (top > contentHeight) {\n top = 8;\n }\n return {\n top: `${top}px`,\n transform: 'translateY(-50%)'\n };\n }\n if (props.placement === 'left-end' || props.placement === 'right-end') {\n let bottom = height / 2;\n if (bottom > contentHeight) {\n bottom = 8;\n }\n return {\n bottom: `${bottom}px`,\n transform: 'translateY(50%)'\n };\n }\n if (props.placement === 'top-start' || props.placement === 'bottom-start') {\n let left = width / 2;\n if (left > contentWidth) {\n left = 16;\n }\n return {\n left: `${left}px`,\n transform: 'translateX(-50%)'\n };\n }\n if (props.placement === 'top-end' || props.placement === 'bottom-end') {\n let right = width / 2;\n if (right > contentWidth) {\n right = 16;\n }\n return {\n right: `${right}px`,\n transform: 'translateX(50%)'\n };\n }\n }\n return {};\n });\n\n return {\n popupRef,\n innerRef,\n prefixCls,\n showTitle,\n popupStyle,\n arrowStyle,\n onVisibleChange\n };\n }\n});\n</script>\n"],"names":["defineComponent","Popup","popoverProps","popoverEmits","slots","useGlobalConfig","ref","inject","computed","findDOMNode","_renderSlot","_createBlock","_normalizeClass","_normalizeStyle","_withCtx","_createElementBlock","_createElementVNode"],"mappings":";;;;;;;;;;;;;AAuDA,MAAK,YAAaA,oBAAa;AAAA,EAC7B,MAAM;AAAA,EACN,YAAY;AAAA,WACVC;AAAA;AACF,EACA,OAAOC;AAAA,EACP,OAAOC;AAAA,EACP,MAAM,OAAO,SAAEC,SAAO,QAAQ;UACtB,EAAE,cAAcC,2BAAgB,SAAS;UACzC,WAAWC,QAAI,IAAI;UACnB,WAAWA,QAAI,IAAI;UACnB,qBAAqBC,WAAO,sBAAsBD,QAAI,IAAI,CAAC;UAC3D,kBAAkB,CAAC,QAAiB;WACnC,kBAAkB,GAAG;WACrB,kBAAkB,GAAG;AAAA;UAEtB,YAAYE,aAAS,MAAM;aACxB,MAAM,SAASJ,QAAM,UAAU;AAAA,KACvC;UACK,aAAaI,aAAS,MAAM;YAC1B,QAAQ,OAAO,MAAM,UAAU,WAAW,GAAG,MAAM,YAAY,MAAM;aACpE,MAAM,SAAS,YAAa,EAAE,GAAG,MAAM,kBAAqC,EAAE,GAAG,EAAE,SAAS,GAAG,MAAM;AAAc,KAC3H;UAEK,aAAaA,aAAS,MAAM;AA/BtC;YAgCU,cAAS,UAAT,mBAAgB,eAAc,SAAS,SAAS,mBAAmB,QAAQ;cACvE,EAAE,OAAO,WAAWC,kBAAY,SAAS,MAAM,SAAS,EAAE;cAC1D,QAAQ,SAAS,SAAS,mBAAmB;cAC7C,EAAE,OAAO,cAAc,QAAQ,kBAAkB,MAAM;YACzD,MAAM,cAAc,gBAAgB,MAAM,cAAc,eAAe;cACrE,MAAM,SAAS;cACf,MAAM,eAAe;kBACjB;AAAA;iBAED;AAAA,YACL,KAAK,GAAG;AAAA,YACR,WAAW;AAAA;AACb;YAEE,MAAM,cAAc,cAAc,MAAM,cAAc,aAAa;cACjE,SAAS,SAAS;cAClB,SAAS,eAAe;qBACjB;AAAA;iBAEJ;AAAA,YACL,QAAQ,GAAG;AAAA,YACX,WAAW;AAAA;AACb;YAEE,MAAM,cAAc,eAAe,MAAM,cAAc,gBAAgB;cACrE,OAAO,QAAQ;cACf,OAAO,cAAc;mBAChB;AAAA;iBAEF;AAAA,YACL,MAAM,GAAG;AAAA,YACT,WAAW;AAAA;AACb;YAEE,MAAM,cAAc,aAAa,MAAM,cAAc,cAAc;cACjE,QAAQ,QAAQ;cAChB,QAAQ,cAAc;oBAChB;AAAA;iBAEH;AAAA,YACL,OAAO,GAAG;AAAA,YACV,WAAW;AAAA;AACb;AACF;aAEK;AAAC,KACT;WAEM;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AACF;AAEJ,CAAC;;;SAzIiB,gBACdC,eAAQ,wDAGRC,gBAsCQ;;IArCN,KAAI;AAAA,IACH,OAAKC,mBAAE,YAAO,KAAK;AAAA,IACnB,OAAKC,mBAAE,YAAO,KAAK;AAAA,IACnB,cAAY;IACZ,eAAa;IACb,eAAa;IACb,SAAS;IACT,WAAW;IACX,SAAO,CAAG,YAAO;AAAA,IACjB,qBAAmB,iBAAS;AAAA,IAC7B,mBAAgB;AAAA,IACf,QAAQ;IACR,yBAAuB;IACvB,sBAAsB;;IAGZ,OAAKC,YACd,MAA0E;AAAA,MAA/D,mCAAXC,uBAA0E;;QAAnD,OAAKH,sBAAK,sBAAS;AAAA,QAAW,OAAKC,mBAAE,eAAU;AAAA;MAC3D,cAAI,8BAAfE,uBAgBM;;QAhByB,KAAI;AAAA,QAAY,OAAKH,sBAAK,sBAAS;AAAA,QAAU,MAAK;AAAA;QACpE,mCAAXG,uBAIM;;UAJiB,OAAKH,sBAAK,4BAAS;AAAA;UACxCF,eAEO,0BAFP,MAEO;AAAA,oDADF,UAAK;;;QAGZM,uBASM;UARH,OAAKJ;gBAAsB,iCAAS;AAAA,gBAA2C,+BAA0B;;;UAK1GF,eAEO,4BAFP,MAEO;AAAA,oDADF,YAAO;;;eAIhBA,eAAiC;;yBApBnC,MAAQ;AAAA,MAARA,eAAQ;;;;;;;;;"}
@@ -58,6 +58,10 @@ export declare const popoverProps: {
58
58
  type: BooleanConstructor;
59
59
  default: boolean;
60
60
  };
61
+ showDelay: {
62
+ type: NumberConstructor;
63
+ default: number;
64
+ };
61
65
  };
62
66
  export declare type PopoverProps = ExtractPropTypes<typeof popoverProps>;
63
67
  export declare const popoverEmits: {
@@ -60,6 +60,10 @@ const popoverProps = {
60
60
  showArrow: {
61
61
  type: Boolean,
62
62
  default: true
63
+ },
64
+ showDelay: {
65
+ type: Number,
66
+ default: 0
63
67
  }
64
68
  };
65
69
  const popoverEmits = {
@@ -1 +1 @@
1
- {"version":3,"file":"Popover.type.js","sources":["../../../../src/components/Popover/Popover.type.ts"],"sourcesContent":["import type { CSSProperties, ExtractPropTypes, PropType } from 'vue';\nimport type { Placements } from '../../utils/placements';\nimport placements from '../../utils/placements';\nimport { isArrayOf, oneOf } from '../../utils/propsValidators';\nimport type Popover from './Popover.vue';\n\nexport const popoverTrigger = ['hover', 'focus', 'click', 'contextmenu'] as const;\nexport type PopoverTrigger = (typeof popoverTrigger)[number];\n\nexport const popoverType = ['popover', 'popConfirm'] as const;\nexport type PopoverType = (typeof popoverType)[number];\n\nexport const popoverProps = {\n placement: {\n type: String as PropType<Placements>,\n default: 'top',\n validator: oneOf(placements)\n },\n visible: {\n type: Boolean,\n default: undefined as undefined\n },\n disabled: {\n type: Boolean,\n default: false\n },\n title: {\n type: String\n },\n content: {\n type: String\n },\n dropdownClass: {\n type: String,\n default: ''\n },\n dropdownStyle: {\n type: Object as PropType<CSSProperties>,\n default: () => ({})\n },\n trigger: {\n type: String as PropType<PopoverTrigger>,\n default: 'hover',\n validator: oneOf(popoverTrigger)\n },\n offset: {\n type: Array as PropType<number[]>,\n validator: isArrayOf(Number)\n },\n type: {\n type: String as PropType<PopoverType>,\n default: 'popover',\n validator: oneOf(popoverType)\n },\n destroyOnHide: {\n type: Boolean,\n default: true\n },\n width: {\n type: [Number, String],\n default: 300\n },\n showArrow: {\n type: Boolean,\n default: true\n }\n};\n\nexport type PopoverProps = ExtractPropTypes<typeof popoverProps>;\n\nexport const popoverEmits = {\n 'visible-change': (v: boolean) => typeof v === 'boolean',\n 'update:visible': (v: boolean) => typeof v === 'boolean'\n};\n\nexport type PopoverEmits = typeof popoverEmits;\n\nexport type PopoverInstanceType = InstanceType<typeof Popover>;\n"],"names":["oneOf","placements","isArrayOf"],"mappings":";;;;;;;MAMa,iBAAiB,CAAC,SAAS,SAAS,SAAS,aAAa;MAG1D,cAAc,CAAC,WAAW,YAAY;MAGtC,eAAe;AAAA,EAC1B,WAAW;AAAA,IACT,MAAM;AAAA,IACN,SAAS;AAAA,IACT,WAAWA,sBAAMC,qBAAU;AAAA;AAC7B,EACA,SAAS;AAAA,IACP,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,UAAU;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,OAAO;AAAA,IACL,MAAM;AAAA;AACR,EACA,SAAS;AAAA,IACP,MAAM;AAAA;AACR,EACA,eAAe;AAAA,IACb,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,eAAe;AAAA,IACb,MAAM;AAAA,IACN,SAAS,OAAO;AAAC;AACnB,EACA,SAAS;AAAA,IACP,MAAM;AAAA,IACN,SAAS;AAAA,IACT,WAAWD,sBAAM,cAAc;AAAA;AACjC,EACA,QAAQ;AAAA,IACN,MAAM;AAAA,IACN,WAAWE,0BAAU,MAAM;AAAA;AAC7B,EACA,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,SAAS;AAAA,IACT,WAAWF,sBAAM,WAAW;AAAA;AAC9B,EACA,eAAe;AAAA,IACb,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,OAAO;AAAA,IACL,MAAM,CAAC,QAAQ,MAAM;AAAA,IACrB,SAAS;AAAA;AACX,EACA,WAAW;AAAA,IACT,MAAM;AAAA,IACN,SAAS;AAAA;AAEb;MAIa,eAAe;AAAA,EAC1B,kBAAkB,CAAC,MAAe,OAAO,MAAM;AAAA,EAC/C,kBAAkB,CAAC,MAAe,OAAO,MAAM;AACjD;;;;;;;"}
1
+ {"version":3,"file":"Popover.type.js","sources":["../../../../src/components/Popover/Popover.type.ts"],"sourcesContent":["import type { CSSProperties, ExtractPropTypes, PropType } from 'vue';\nimport type { Placements } from '../../utils/placements';\nimport placements from '../../utils/placements';\nimport { isArrayOf, oneOf } from '../../utils/propsValidators';\nimport type Popover from './Popover.vue';\n\nexport const popoverTrigger = ['hover', 'focus', 'click', 'contextmenu'] as const;\nexport type PopoverTrigger = (typeof popoverTrigger)[number];\n\nexport const popoverType = ['popover', 'popConfirm'] as const;\nexport type PopoverType = (typeof popoverType)[number];\n\nexport const popoverProps = {\n placement: {\n type: String as PropType<Placements>,\n default: 'top',\n validator: oneOf(placements)\n },\n visible: {\n type: Boolean,\n default: undefined as undefined\n },\n disabled: {\n type: Boolean,\n default: false\n },\n title: {\n type: String\n },\n content: {\n type: String\n },\n dropdownClass: {\n type: String,\n default: ''\n },\n dropdownStyle: {\n type: Object as PropType<CSSProperties>,\n default: () => ({})\n },\n trigger: {\n type: String as PropType<PopoverTrigger>,\n default: 'hover',\n validator: oneOf(popoverTrigger)\n },\n offset: {\n type: Array as PropType<number[]>,\n validator: isArrayOf(Number)\n },\n type: {\n type: String as PropType<PopoverType>,\n default: 'popover',\n validator: oneOf(popoverType)\n },\n destroyOnHide: {\n type: Boolean,\n default: true\n },\n width: {\n type: [Number, String],\n default: 300\n },\n showArrow: {\n type: Boolean,\n default: true\n },\n showDelay: {\n type: Number,\n default: 0\n }\n};\n\nexport type PopoverProps = ExtractPropTypes<typeof popoverProps>;\n\nexport const popoverEmits = {\n 'visible-change': (v: boolean) => typeof v === 'boolean',\n 'update:visible': (v: boolean) => typeof v === 'boolean'\n};\n\nexport type PopoverEmits = typeof popoverEmits;\n\nexport type PopoverInstanceType = InstanceType<typeof Popover>;\n"],"names":["oneOf","placements","isArrayOf"],"mappings":";;;;;;;MAMa,iBAAiB,CAAC,SAAS,SAAS,SAAS,aAAa;MAG1D,cAAc,CAAC,WAAW,YAAY;MAGtC,eAAe;AAAA,EAC1B,WAAW;AAAA,IACT,MAAM;AAAA,IACN,SAAS;AAAA,IACT,WAAWA,sBAAMC,qBAAU;AAAA;AAC7B,EACA,SAAS;AAAA,IACP,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,UAAU;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,OAAO;AAAA,IACL,MAAM;AAAA;AACR,EACA,SAAS;AAAA,IACP,MAAM;AAAA;AACR,EACA,eAAe;AAAA,IACb,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,eAAe;AAAA,IACb,MAAM;AAAA,IACN,SAAS,OAAO;AAAC;AACnB,EACA,SAAS;AAAA,IACP,MAAM;AAAA,IACN,SAAS;AAAA,IACT,WAAWD,sBAAM,cAAc;AAAA;AACjC,EACA,QAAQ;AAAA,IACN,MAAM;AAAA,IACN,WAAWE,0BAAU,MAAM;AAAA;AAC7B,EACA,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,SAAS;AAAA,IACT,WAAWF,sBAAM,WAAW;AAAA;AAC9B,EACA,eAAe;AAAA,IACb,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,OAAO;AAAA,IACL,MAAM,CAAC,QAAQ,MAAM;AAAA,IACrB,SAAS;AAAA;AACX,EACA,WAAW;AAAA,IACT,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,WAAW;AAAA,IACT,MAAM;AAAA,IACN,SAAS;AAAA;AAEb;MAIa,eAAe;AAAA,EAC1B,kBAAkB,CAAC,MAAe,OAAO,MAAM;AAAA,EAC/C,kBAAkB,CAAC,MAAe,OAAO,MAAM;AACjD;;;;;;;"}
@@ -53,6 +53,10 @@ declare const _default: import("vue").DefineComponent<{
53
53
  type: BooleanConstructor;
54
54
  default: boolean;
55
55
  };
56
+ showDelay: {
57
+ type: NumberConstructor;
58
+ default: number;
59
+ };
56
60
  }, {
57
61
  popupRef: import("vue").Ref<any, any>;
58
62
  innerRef: import("vue").Ref<any, any>;
@@ -148,6 +152,10 @@ declare const _default: import("vue").DefineComponent<{
148
152
  type: BooleanConstructor;
149
153
  default: boolean;
150
154
  };
155
+ showDelay: {
156
+ type: NumberConstructor;
157
+ default: number;
158
+ };
151
159
  }>> & {
152
160
  "onUpdate:visible"?: (v: boolean) => any;
153
161
  "onVisible-change"?: (v: boolean) => any;
@@ -162,5 +170,6 @@ declare const _default: import("vue").DefineComponent<{
162
170
  dropdownStyle: CSSProperties;
163
171
  destroyOnHide: boolean;
164
172
  showArrow: boolean;
173
+ showDelay: number;
165
174
  }, {}>;
166
175
  export default _default;