@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.
- package/es/components/Popover/Popover.mjs +2 -1
- package/es/components/Popover/Popover.mjs.map +1 -1
- package/es/components/Popover/Popover.type.d.ts +4 -0
- package/es/components/Popover/Popover.type.mjs +4 -0
- package/es/components/Popover/Popover.type.mjs.map +1 -1
- package/es/components/Popover/Popover.vue.d.ts +9 -0
- package/es/components/Popover/index.d.ts +19 -0
- package/es/components/Tree/Tree.mjs +17 -1
- package/es/components/Tree/Tree.mjs.map +1 -1
- package/es/components/Tree/Tree.type.d.ts +1 -0
- package/es/components/Tree/Tree.type.mjs.map +1 -1
- package/es/components/Tree/TreeNode.mjs +15 -1
- package/es/components/Tree/TreeNode.mjs.map +1 -1
- package/lib/components/Popover/Popover.js +2 -1
- package/lib/components/Popover/Popover.js.map +1 -1
- package/lib/components/Popover/Popover.type.d.ts +4 -0
- package/lib/components/Popover/Popover.type.js +4 -0
- package/lib/components/Popover/Popover.type.js.map +1 -1
- package/lib/components/Popover/Popover.vue.d.ts +9 -0
- package/lib/components/Popover/index.d.ts +19 -0
- package/lib/components/Tree/Tree.js +17 -1
- package/lib/components/Tree/Tree.js.map +1 -1
- package/lib/components/Tree/Tree.type.d.ts +1 -0
- package/lib/components/Tree/Tree.type.js.map +1 -1
- package/lib/components/Tree/TreeNode.js +15 -1
- package/lib/components/Tree/TreeNode.js.map +1 -1
- package/package.json +1 -1
- package/styles/components/table/index.css +1 -1
- package/styles/components/table/index.less +53 -40
- package/styles/components/tooltip/index.css +1 -1
- package/styles/components/tooltip/var.less +2 -2
- package/styles/components/tree/index.css +1 -1
- package/styles/components/tree/index.less +10 -1
- package/styles/index.css +1 -1
- package/styles/tokens/colors/index.css +4 -4
- package/types/components/Popover/Popover.type.d.ts +4 -0
- package/types/components/Popover/Popover.vue.d.ts +9 -0
- package/types/components/Popover/index.d.ts +19 -0
- package/types/components/Tree/Tree.type.d.ts +1 -0
- package/uxd-ui.css +1 -1
- package/uxd-ui.esm.min.mjs +5 -5
- package/uxd-ui.esm.mjs +39 -4
- package/uxd-ui.umd.js +39 -4
- 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
|
|
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: {
|
|
@@ -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":";;;;;;;;;;AAuBA,MAAK,YAAa,gBAAa;AAAA,EAC7B,MAAM;AAAA,EACN,YAAY;AAAA,IACV;AAAA;AACF,EACA,OAAO;AAAA,EACP,OAAO;AAAA,EACP,MAAM,OAAO,EAAE,MAAM,SAAS;UACtB,EAAE,cAAc,gBAAgB,MAAM;UACtC,eAAe,IAAyB,EAAE;UAC1C,cAAc,IAAyB,EAAE;UACzC,kBAAkB,IAAyB,EAAE;UAC7C,cAAc,IAAyB,EAAE;UACzC,UAAU,IAAqB,EAAE;UAEjC,aAAa,CAAC,SAAyC;UACvD,OAAO,MAAM,YAAY,YAAY;eAChC,MAAM,QAAQ,IAAI;AAAA;aAEpB,KAAK,MAAM;AAAA;UAGd,EAAE,cAAc,eAAe,aAAa,aAAa,YAAY,OAAO,OAAO,UAAU;UAE7F,kBAAkB,CAAC,MAA2B,YAAqB;YACjE,gBAAgB;AAAA,QACpB,gBAAgB,YAAY;AAAA,QAC5B,oBAAoB,gBAAgB;AAAA;YAEhC,cAAc,cAAc,MAAM,SAAS,YAAY,OAAO,eAAe,UAAU;aACtF;AAAA;UAIH,cAAc,MAAM;UACpB,MAAM;;YACJ,cAAc,gBAAgB,YAAY,OAAO,IAAI;kBAC/C,QAAQ,YAAY;sBAChB,QAAQ,YAAY;WAE/B,SAAS,YAAY,aAAa,YAAY,eAAe;AAAA;;MAMlE,MAAM,MAAM;AAAA,MACZ,CAAC,OAAO;iBACG,EAAE;AAAA;AACb,MACA,EAAE,WAAW;AAAK;;MAGlB,MAAM,MAAM;AAAA,MACZ,CAAC,OAAO;qBACO,QAAQ,CAAC,GAAG,EAAE;AAAA;AAC7B,MACA,EAAE,WAAW;AAAK;;MAGlB,MAAM,MAAM;AAAA,MACZ,CAAC,OAAO;YACF,YAAY,UAAU,MAAM,YAAY,MAAM,WAAW,GAAG,UAAU,MAAM,WAAW;sBAC7E,QAAQ,CAAC,GAAG,EAAE;;AACd;AACd;AACF,MACA,EAAE,WAAW;AAAK;UAKd,iBAAiB,CAAC,QAAyB;cACvC,QAAQ;AAAA;UAGZ,mBAAmB,CAAC,SAAqB;UACzC,MAAM,YAAY;aACf,eAAe,IAAI;AAAA;WAErB,mBAAmB,IAAI;AAAA;UAGxB,eAAe,CAAC,cAAgH;YAE9H,WAAW,YAAY,MAAM,IAAI,UAAU,OAAO;YAElD,OAAO,QAA4B,MAAM,UAAU,CAAC,OAAO;AAAA,QAC/D,GAAG;AAAA,QACH;YACI,WAAW,YAAY,MAAM,UAAU,SAAS,UAAU;UAC5D,CAAC,UAAU,WAAW;;UAGtB;AAAA,UACA,UAAU;AAAA,UACV,CAAC,SAAmB;iBACb,WAAW,KAAK,YAAY;iBAE5B,SAAS,KAAK,QAAQ;AAAA;AAC7B,UACA;AAAA;AACF,mBACU,qCAAU,aAAY,IAAI,SAAS,KAAK,UAAU,iBAAiB,GAAG;;UAE9E;AAAA,UACA,UAAU;AAAA,UACV,CAAC,SAAS;iBACH,WAAW,KAAK,YAAY;iBAE5B,SAAS,QAAQ,QAAQ;AAAA;AAChC,UACA;AAAA;AACF,aACK;YACD,UAAsB;YACtB,YAAY;;UAEd;AAAA,UACA,UAAU;AAAA,UACV,CAAC,MAAM,OAAO,QAAQ;sBACV;wBACE;AAAA;AACd,UACA;AAAA;YAEE,UAAU,iBAAiB,IAAI;kBACzB,OAAO,WAAW,GAAG,QAAQ;AAAA,eAChC;kBACG,OAAO,YAAY,GAAG,GAAG,QAAQ;AAAA;AAC3C;uBAEe,IAAI;AAAA;UAMjB,iBAAiB,CAAC,MAAa;YAC7B,cAAc;mBACP,MAAM,QAAQ,CAAC,QAAQ;YAC9B,YAAY,MAAM,IAAI,GAAG,GAAG;sBAClB,KAAK,YAAY,MAAM,IAAI,GAAG,EAAG,OAAO;AAAA;AACtD,OACD;WACI,uBAAuB,aAAa,KAAK;WACzC,UAAU,aAAa,CAAC;AAAA;UAOzB,gBAAgB,CAAC,GAAU,QAAyB;UACpD,MAAM;;YACJ,WAAW,YAAY,MAAM,QAAQ,GAAG;UAC1C,MAAM,eAAe;YACnB,aAAa,IAAI;sBACP,MAAM,KAAK,GAAG;AAAA,eACrB;sBACO,MAAM,OAAO,UAAU,CAAC;AAAA;AACtC,aACK;cACC,UAAU,EAAE,YAAY;cACxB,cAAc,gBAAgB,CAAC,GAAG,GAAG,OAAO;oBACtC,QAAQ,YAAY;wBAChB,QAAQ,YAAY;AAAA;WAGjC,sBAAsB,YAAY,KAAK;WACvC,SAAS,YAAY,OAAO,MAAM,gBAAgB,KAAK,gBAAgB,OAAO,CAAC;AAAA;UAMhF,kBAAkB,CAAC,MAAwB,KAAsB,aAA0B;YACzF,OAAO,QAAQ,MAAM,UAAU,CAAC,OAAO,EAAE,GAAG,IAAI;UAClD,SAAS,OAAO;;UAEhB;AAAA,UACA;AAAA,UACA,CAAC,SAAS;iBACH,WAAW,CAAC,GAAI,KAAK,YAAY,IAAK,GAAI,YAAY,EAAG;AAAA;AAChE,UACA;AAAA;AACF,aACK;cACC,cAAc,YAAY,MAAM,IAAI,GAAG;YAEzC,YAAY,WAAW,MAAM;gBACzB,QAAQ,KAAK,UAAU,CAAC,MAAM,WAAW,CAAkB,MAAM,GAAG;eACrE,OAAO,OAAO,CAAC;AAAA,eACf;;YAEH;AAAA,YACA,WAAW,YAAY,MAAM;AAAA,YAC7B,CAAC,SAAS;oBACF,QAAQ,KAAK,SAAU,UAAU,CAAC,MAAM,WAAW,CAAkB,MAAM,GAAG;mBAC/E,SAAU,OAAO,OAAO,CAAC;AAAA;AAChC,YACA;AAAA;AACF;AACF;uBAGe,IAAI;AAAA;UAOjB,gBAAgB,CAAC,SAAwB;YACvC,UAAU,WAAW,IAAI;kBACnB,MAAM,KAAK,OAAO;aACvB,IAAI,QAAc,CAAC,YAAY;YAChC,MAAM,UAAU;gBACZ,UAAU,MAAM,SAAS,IAAI;kBAC3B,KAAK,CAAC,aAA0B;gBAClC,YAAY,MAAM,QAAQ,QAAQ,GAAG;8BACvB,OAAO,SAAS,QAAQ;AAAA;wBAE9B,QAAQ,YAAY,MAAM,OAAO,CAAC,MAAM,MAAM,OAAO;;AACzD,WACT;AAAA;;AAEK,OACT;AAAA;UAKG,iBAAiB,CAAC,MAAa;WAC9B,uBAAuB,aAAa,KAAK;WACzC,UAAU,aAAa,OAAO,CAAC;AAAA;UAGhC,oBAAoB,CAAC,QAAkC;YACrD,OAAO,YAAY,MAAM,IAAI,GAAG;UAClC,6BAAM;eAAiB;UACvB,6BAAM,QAAQ;eACT,kBAAkB,KAAK,OAAO,GAAG;AAAA;aAEnC;AAAA;UAIH,iBAAiB,CAAC,QAAyB;YACzC,OAAO,YAAY,MAAM,IAAI,GAAG;UAClC,6BAAM;eAAiB;aACpB,kBAAkB,GAAG;AAAA;;MAK5B;AAAA,MACA,SAAS;AAAA,QACP;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,OACD;AAAA;WAII;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA;AACF;AAEJ,CAAC;;;sBArTCA,mBASK;IARF,OAAKC;MAAU;;YAA+B,6BAAwB;;;;IAOvEC,YAAiC,sBAAvB,MAAM;;;;;;;"}
|
|
@@ -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;
|
|
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
|
-
|
|
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
|
|
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":"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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: {
|
|
@@ -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;
|