@antdv-next/x 0.1.0 → 0.2.0
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/LICENSE +21 -0
- package/dist/_utils/vue.d.ts +2 -0
- package/dist/_utils/vue.js +16 -0
- package/dist/actions/Actions.js +3 -2
- package/dist/actions/ActionsCopy.js +4 -4
- package/dist/attachments/PlaceholderUploader.d.ts +16 -0
- package/dist/attachments/PlaceholderUploader.js +31 -5
- package/dist/attachments/index.d.ts +8 -1
- package/dist/attachments/index.js +7 -1
- package/dist/bubble/Bubble.js +5 -8
- package/dist/bubble/BubbleList.js +4 -4
- package/dist/bubble/Divider.js +1 -1
- package/dist/code-highlighter/shiki.js +2 -1
- package/dist/conversations/GroupTitle.d.ts +22 -2
- package/dist/conversations/GroupTitle.js +25 -3
- package/dist/conversations/Item.d.ts +1 -1
- package/dist/conversations/Item.js +1 -4
- package/dist/conversations/index.d.ts +10 -1
- package/dist/conversations/index.js +12 -0
- package/dist/conversations/interface.d.ts +7 -0
- package/dist/file-card/FileCard.js +1 -1
- package/dist/file-card/List.js +1 -1
- package/dist/file-card/components/File.d.ts +6 -6
- package/dist/file-card/components/File.js +2 -2
- package/dist/index.esm.js +149 -85
- package/dist/index.umd.js +148 -84
- package/dist/mermaid/Mermaid.d.ts +5 -0
- package/dist/mermaid/Mermaid.js +22 -1
- package/dist/mermaid/index.d.ts +1 -1
- package/dist/package.js +1 -1
- package/dist/prompts/Prompts.js +1 -4
- package/dist/sources/Sources.js +1 -4
- package/dist/sources/components/CarouselCard.js +1 -4
- package/dist/suggestion/Suggestion.js +1 -4
- package/dist/thought-chain/Item.js +3 -6
- package/dist/thought-chain/Node.js +1 -4
- package/package.json +2 -1
package/dist/index.umd.js
CHANGED
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
shiki_dist_themes_vitesse_dark_mjs = __toESM(shiki_dist_themes_vitesse_dark_mjs);
|
|
49
49
|
shiki_dist_themes_vitesse_light_mjs = __toESM(shiki_dist_themes_vitesse_light_mjs);
|
|
50
50
|
//#region package.json
|
|
51
|
-
var version = "0.
|
|
51
|
+
var version = "0.2.0";
|
|
52
52
|
//#endregion
|
|
53
53
|
//#region components/x-provider/context.ts
|
|
54
54
|
var XProviderContextKey = Symbol("antdv-next-x-provider-context");
|
|
@@ -74,6 +74,20 @@
|
|
|
74
74
|
});
|
|
75
75
|
}
|
|
76
76
|
//#endregion
|
|
77
|
+
//#region components/_utils/vue.ts
|
|
78
|
+
function isEmptyNode(node) {
|
|
79
|
+
if (node === null || node === void 0 || typeof node === "boolean") return true;
|
|
80
|
+
if (Array.isArray(node)) return node.every(isEmptyNode);
|
|
81
|
+
if ((0, vue.isVNode)(node)) {
|
|
82
|
+
if (node.type === vue.Comment) return true;
|
|
83
|
+
if (node.type === vue.Fragment && Array.isArray(node.children)) return node.children.every((child) => isEmptyNode(child));
|
|
84
|
+
}
|
|
85
|
+
return false;
|
|
86
|
+
}
|
|
87
|
+
function hasRenderableNode(node) {
|
|
88
|
+
return !isEmptyNode(node);
|
|
89
|
+
}
|
|
90
|
+
//#endregion
|
|
77
91
|
//#region components/actions/ActionsMenu.tsx
|
|
78
92
|
var keySeed$1 = 0;
|
|
79
93
|
function findItem(keyPath, items) {
|
|
@@ -653,8 +667,8 @@
|
|
|
653
667
|
});
|
|
654
668
|
const mergedItem = {
|
|
655
669
|
...item,
|
|
656
|
-
icon: slottedIcon
|
|
657
|
-
actionRender: slotActionNode !== void 0 ? slotActionNode : item.actionRender
|
|
670
|
+
icon: slottedIcon !== void 0 && !isEmptyNode(slottedIcon) ? slottedIcon : item.icon,
|
|
671
|
+
actionRender: slotActionNode !== void 0 && !isEmptyNode(slotActionNode) ? slotActionNode : item.actionRender
|
|
658
672
|
};
|
|
659
673
|
return (0, vue.createVNode)(Item, {
|
|
660
674
|
"key": item.key ?? idx,
|
|
@@ -944,14 +958,14 @@
|
|
|
944
958
|
const { class: _class, style: _style, ...rest } = attrs;
|
|
945
959
|
return rest;
|
|
946
960
|
});
|
|
947
|
-
const
|
|
961
|
+
const iconSlot = (0, vue.computed)(() => slots.icon);
|
|
948
962
|
const mergedCopyIcons = (0, vue.computed)(() => {
|
|
949
963
|
const [defaultOriginNode, copiedOriginNode] = normalizeCopyIcons(props.icon);
|
|
950
|
-
if (!
|
|
951
|
-
return [
|
|
964
|
+
if (!iconSlot.value) return props.icon;
|
|
965
|
+
return [iconSlot.value({
|
|
952
966
|
originNode: defaultOriginNode,
|
|
953
967
|
status: "default"
|
|
954
|
-
}),
|
|
968
|
+
}), iconSlot.value({
|
|
955
969
|
originNode: copiedOriginNode,
|
|
956
970
|
status: "copied"
|
|
957
971
|
})];
|
|
@@ -1306,7 +1320,7 @@
|
|
|
1306
1320
|
type: Function,
|
|
1307
1321
|
default: void 0
|
|
1308
1322
|
},
|
|
1309
|
-
|
|
1323
|
+
iconSlot: {
|
|
1310
1324
|
type: Function,
|
|
1311
1325
|
default: void 0
|
|
1312
1326
|
}
|
|
@@ -1367,7 +1381,7 @@
|
|
|
1367
1381
|
color: props.iconColor,
|
|
1368
1382
|
...props.styles.icon
|
|
1369
1383
|
}
|
|
1370
|
-
}, [renderWithSlot(props.
|
|
1384
|
+
}, [renderWithSlot(props.iconSlot, iconNode.value)]),
|
|
1371
1385
|
(0, vue.createVNode)("div", { "class": `${compCls.value}-content` }, [(0, vue.createVNode)("div", {
|
|
1372
1386
|
"class": [`${compCls.value}-name`, props.classes.name],
|
|
1373
1387
|
"style": props.styles.name
|
|
@@ -2174,7 +2188,7 @@
|
|
|
2174
2188
|
"mask": props.mask,
|
|
2175
2189
|
"descriptionRenderSlot": slots.description,
|
|
2176
2190
|
"maskRenderSlot": slots.mask,
|
|
2177
|
-
"
|
|
2191
|
+
"iconSlot": slots.icon,
|
|
2178
2192
|
"classes": mergedClasses.value,
|
|
2179
2193
|
"styles": mergedStyles.value
|
|
2180
2194
|
}, null);
|
|
@@ -2384,7 +2398,7 @@
|
|
|
2384
2398
|
item: fileItem,
|
|
2385
2399
|
index: itemIndex
|
|
2386
2400
|
}) : void 0,
|
|
2387
|
-
|
|
2401
|
+
icon: slots.iconRender ? (slotInfo) => slots.iconRender?.({
|
|
2388
2402
|
...slotInfo,
|
|
2389
2403
|
item: fileItem,
|
|
2390
2404
|
index: itemIndex
|
|
@@ -2709,6 +2723,10 @@
|
|
|
2709
2723
|
type: String,
|
|
2710
2724
|
required: true
|
|
2711
2725
|
},
|
|
2726
|
+
type: {
|
|
2727
|
+
type: String,
|
|
2728
|
+
required: true
|
|
2729
|
+
},
|
|
2712
2730
|
placeholder: {
|
|
2713
2731
|
type: [
|
|
2714
2732
|
String,
|
|
@@ -2756,6 +2774,28 @@
|
|
|
2756
2774
|
if (!isConfig.value) return {};
|
|
2757
2775
|
return props.placeholder;
|
|
2758
2776
|
});
|
|
2777
|
+
const renderConfigNode = () => {
|
|
2778
|
+
const iconOriginNode = placeholderConfig.value.icon;
|
|
2779
|
+
const titleOriginNode = placeholderConfig.value.title;
|
|
2780
|
+
const descriptionOriginNode = placeholderConfig.value.description;
|
|
2781
|
+
const iconNode = slots.placeholderIcon?.({
|
|
2782
|
+
type: props.type,
|
|
2783
|
+
originNode: iconOriginNode
|
|
2784
|
+
}) ?? iconOriginNode;
|
|
2785
|
+
const titleNode = slots.placeholderTitle?.({
|
|
2786
|
+
type: props.type,
|
|
2787
|
+
originNode: titleOriginNode
|
|
2788
|
+
}) ?? titleOriginNode;
|
|
2789
|
+
const descriptionNode = slots.placeholderDescription?.({
|
|
2790
|
+
type: props.type,
|
|
2791
|
+
originNode: descriptionOriginNode
|
|
2792
|
+
}) ?? descriptionOriginNode;
|
|
2793
|
+
return (0, vue.createVNode)("div", { "class": `${placeholderCls.value}-inner` }, [
|
|
2794
|
+
(0, vue.createVNode)("span", { "class": `${placeholderCls.value}-icon` }, [iconNode]),
|
|
2795
|
+
(0, vue.createVNode)("span", { "class": `${placeholderCls.value}-title` }, [titleNode]),
|
|
2796
|
+
(0, vue.createVNode)("span", { "class": `${placeholderCls.value}-description` }, [descriptionNode])
|
|
2797
|
+
]);
|
|
2798
|
+
};
|
|
2759
2799
|
const onDragEnter = () => {
|
|
2760
2800
|
dragIn.value = true;
|
|
2761
2801
|
};
|
|
@@ -2766,11 +2806,11 @@
|
|
|
2766
2806
|
dragIn.value = false;
|
|
2767
2807
|
};
|
|
2768
2808
|
return () => {
|
|
2769
|
-
const
|
|
2770
|
-
|
|
2771
|
-
|
|
2772
|
-
|
|
2773
|
-
|
|
2809
|
+
const originNode = isConfig.value ? renderConfigNode() : slots.default?.() || props.placeholder;
|
|
2810
|
+
const node = slots.placeholder?.({
|
|
2811
|
+
type: props.type,
|
|
2812
|
+
originNode
|
|
2813
|
+
}) ?? originNode;
|
|
2774
2814
|
return (0, vue.createVNode)("div", {
|
|
2775
2815
|
"class": [
|
|
2776
2816
|
placeholderCls.value,
|
|
@@ -3113,12 +3153,18 @@
|
|
|
3113
3153
|
const getPlaceholderNode = (type, options) => {
|
|
3114
3154
|
const placeholderContent = typeof props.placeholder === "function" ? props.placeholder(type) : props.placeholder;
|
|
3115
3155
|
return (0, vue.createVNode)(PlaceholderUploader, {
|
|
3156
|
+
"type": type,
|
|
3116
3157
|
"placeholder": placeholderContent,
|
|
3117
3158
|
"upload": uploadProps.value,
|
|
3118
3159
|
"prefixCls": props.prefixCls,
|
|
3119
3160
|
"class": mergedClasses.value.placeholder,
|
|
3120
3161
|
"style": [mergedStyles.value.placeholder, options?.style]
|
|
3121
|
-
},
|
|
3162
|
+
}, {
|
|
3163
|
+
placeholder: slots.placeholder,
|
|
3164
|
+
placeholderIcon: slots.placeholderIcon,
|
|
3165
|
+
placeholderTitle: slots.placeholderTitle,
|
|
3166
|
+
placeholderDescription: slots.placeholderDescription
|
|
3167
|
+
});
|
|
3122
3168
|
};
|
|
3123
3169
|
const renderWithChildren = () => {
|
|
3124
3170
|
let _slot;
|
|
@@ -3853,10 +3899,6 @@
|
|
|
3853
3899
|
if (!slot) return null;
|
|
3854
3900
|
return typeof slot === "function" ? slot(content, info) : slot;
|
|
3855
3901
|
}
|
|
3856
|
-
function hasRenderableNode$7(node) {
|
|
3857
|
-
if (Array.isArray(node)) return node.some((item) => item !== null && item !== void 0 && item !== false);
|
|
3858
|
-
return node !== null && node !== void 0 && node !== false;
|
|
3859
|
-
}
|
|
3860
3902
|
var XBubble = /* @__PURE__ */ (0, vue.defineComponent)({
|
|
3861
3903
|
name: "AxBubble",
|
|
3862
3904
|
inheritAttrs: false,
|
|
@@ -4020,12 +4062,12 @@
|
|
|
4020
4062
|
return rest;
|
|
4021
4063
|
});
|
|
4022
4064
|
const memoedContent = (0, vue.computed)(() => {
|
|
4023
|
-
if (slots.
|
|
4024
|
-
const slotNode = slots.
|
|
4065
|
+
if (slots.content) {
|
|
4066
|
+
const slotNode = slots.content({
|
|
4025
4067
|
content: props.content,
|
|
4026
4068
|
info: props.info
|
|
4027
4069
|
});
|
|
4028
|
-
if (hasRenderableNode
|
|
4070
|
+
if (hasRenderableNode(slotNode)) return slotNode;
|
|
4029
4071
|
}
|
|
4030
4072
|
return props.contentRender ? props.contentRender(props.content, props.info) : props.content;
|
|
4031
4073
|
});
|
|
@@ -4116,12 +4158,12 @@
|
|
|
4116
4158
|
};
|
|
4117
4159
|
const renderContent = () => {
|
|
4118
4160
|
if (props.loading) {
|
|
4119
|
-
if (slots.
|
|
4120
|
-
const slotNode = slots.
|
|
4161
|
+
if (slots.loading) {
|
|
4162
|
+
const slotNode = slots.loading({
|
|
4121
4163
|
content: props.content,
|
|
4122
4164
|
info: props.info
|
|
4123
4165
|
});
|
|
4124
|
-
if (hasRenderableNode
|
|
4166
|
+
if (hasRenderableNode(slotNode)) return slotNode;
|
|
4125
4167
|
}
|
|
4126
4168
|
if (props.loadingRender) return props.loadingRender(props.content, props.info);
|
|
4127
4169
|
return (0, vue.createVNode)(loading_default, { "prefixCls": props.prefixCls }, null);
|
|
@@ -4261,7 +4303,7 @@
|
|
|
4261
4303
|
"class": [`${props.prefixCls}-divider`, props.class],
|
|
4262
4304
|
"styles": props.styles,
|
|
4263
4305
|
"classes": props.classes
|
|
4264
|
-
}), {
|
|
4306
|
+
}), { content: ({ content }) => (0, vue.createVNode)(antdv_next.Divider, props.dividerProps, _isSlot$3(content) ? content : { default: () => [content] }) });
|
|
4265
4307
|
}
|
|
4266
4308
|
});
|
|
4267
4309
|
//#endregion
|
|
@@ -4696,10 +4738,10 @@
|
|
|
4696
4738
|
role
|
|
4697
4739
|
});
|
|
4698
4740
|
};
|
|
4699
|
-
if (slots.contentRender) bubbleSlots.
|
|
4700
|
-
else if (contentRender) bubbleSlots.
|
|
4701
|
-
if (slots.loadingRender) bubbleSlots.
|
|
4702
|
-
else if (loadingRender) bubbleSlots.
|
|
4741
|
+
if (slots.contentRender) bubbleSlots.content = bindListSlot("contentRender");
|
|
4742
|
+
else if (contentRender) bubbleSlots.content = ({ content, info: bubbleInfo }) => contentRender(content, bubbleInfo);
|
|
4743
|
+
if (slots.loadingRender) bubbleSlots.loading = bindListSlot("loadingRender");
|
|
4744
|
+
else if (loadingRender) bubbleSlots.loading = ({ content, info: bubbleInfo }) => loadingRender(content, bubbleInfo);
|
|
4703
4745
|
for (const name of bubbleSlotNames) {
|
|
4704
4746
|
if (name === "contentRender" || name === "loadingRender") continue;
|
|
4705
4747
|
const slot = bindListSlot(name);
|
|
@@ -4767,7 +4809,8 @@
|
|
|
4767
4809
|
}
|
|
4768
4810
|
async function loadLang(lang) {
|
|
4769
4811
|
const loader = LANG_LOADERS[lang];
|
|
4770
|
-
if (!loader
|
|
4812
|
+
if (!loader) return false;
|
|
4813
|
+
if (loadedLangs.has(lang)) return true;
|
|
4771
4814
|
const instance = await getHighlighter();
|
|
4772
4815
|
const mod = await loader();
|
|
4773
4816
|
await instance.loadLanguage(mod.default);
|
|
@@ -5514,6 +5557,20 @@
|
|
|
5514
5557
|
type: Object,
|
|
5515
5558
|
required: true
|
|
5516
5559
|
},
|
|
5560
|
+
groupLabelRender: {
|
|
5561
|
+
type: [
|
|
5562
|
+
String,
|
|
5563
|
+
Number,
|
|
5564
|
+
Object,
|
|
5565
|
+
Array,
|
|
5566
|
+
Function
|
|
5567
|
+
],
|
|
5568
|
+
default: void 0
|
|
5569
|
+
},
|
|
5570
|
+
groupLabelRenderSlot: {
|
|
5571
|
+
type: Function,
|
|
5572
|
+
default: void 0
|
|
5573
|
+
},
|
|
5517
5574
|
classes: {
|
|
5518
5575
|
type: [
|
|
5519
5576
|
String,
|
|
@@ -5549,15 +5606,22 @@
|
|
|
5549
5606
|
});
|
|
5550
5607
|
const labelNode = (0, vue.computed)(() => {
|
|
5551
5608
|
const { label, name } = props.groupInfo;
|
|
5552
|
-
|
|
5553
|
-
|
|
5609
|
+
const originNode = typeof label === "function" ? label(name, { groupInfo: props.groupInfo }) : label || name;
|
|
5610
|
+
const renderInfo = {
|
|
5611
|
+
group: name,
|
|
5612
|
+
groupInfo: props.groupInfo,
|
|
5613
|
+
originNode
|
|
5614
|
+
};
|
|
5615
|
+
if (props.groupLabelRenderSlot) return props.groupLabelRenderSlot(renderInfo);
|
|
5616
|
+
if (props.groupLabelRender !== void 0) return typeof props.groupLabelRender === "function" ? props.groupLabelRender(name, renderInfo) : props.groupLabelRender;
|
|
5617
|
+
return originNode;
|
|
5554
5618
|
});
|
|
5555
5619
|
return () => (0, vue.createVNode)("li", { "class": props.classes }, [(0, vue.createVNode)("div", {
|
|
5556
5620
|
"class": [`${props.prefixCls}-group-title`, { [`${props.prefixCls}-group-title-collapsible`]: mergeCollapsible.value }],
|
|
5557
5621
|
"onClick": () => {
|
|
5558
5622
|
if (mergeCollapsible.value) props.onItemExpand?.(props.groupInfo.name);
|
|
5559
5623
|
}
|
|
5560
|
-
}, [labelNode.value && (0, vue.createVNode)("div", { "class": `${props.prefixCls}-group-label` }, [labelNode.value]), mergeCollapsible.value && (0, vue.createVNode)("div", { "class": [`${props.prefixCls}-group-collapse-trigger`, `${props.prefixCls}-group-collapse-trigger-${groupOpen.value ? "open" : "close"}`] }, [(0, vue.createVNode)(_antdv_next_icons.RightOutlined, null, null)])]), (0, vue.createVNode)(vue.Transition, props.collapseTransition ?? {}, { default: () => [mergeCollapsible.value ? groupOpen.value ? (0, vue.createVNode)("div", null, [slots.default?.()]) : null : (0, vue.createVNode)("div", null, [slots.default?.()])] })]);
|
|
5624
|
+
}, [hasRenderableNode(labelNode.value) && (0, vue.createVNode)("div", { "class": `${props.prefixCls}-group-label` }, [labelNode.value]), mergeCollapsible.value && (0, vue.createVNode)("div", { "class": [`${props.prefixCls}-group-collapse-trigger`, `${props.prefixCls}-group-collapse-trigger-${groupOpen.value ? "open" : "close"}`] }, [(0, vue.createVNode)(_antdv_next_icons.RightOutlined, null, null)])]), (0, vue.createVNode)(vue.Transition, props.collapseTransition ?? {}, { default: () => [mergeCollapsible.value ? groupOpen.value ? (0, vue.createVNode)("div", null, [slots.default?.()]) : null : (0, vue.createVNode)("div", null, [slots.default?.()])] })]);
|
|
5561
5625
|
}
|
|
5562
5626
|
});
|
|
5563
5627
|
//#endregion
|
|
@@ -5642,10 +5706,6 @@
|
|
|
5642
5706
|
var stopPropagation = (event) => {
|
|
5643
5707
|
event.stopPropagation();
|
|
5644
5708
|
};
|
|
5645
|
-
var hasRenderableNode$6 = (node) => {
|
|
5646
|
-
if (Array.isArray(node)) return node.some((item) => item !== null && item !== void 0 && item !== false);
|
|
5647
|
-
return node !== null && node !== void 0 && node !== false;
|
|
5648
|
-
};
|
|
5649
5709
|
var renderWithPriority = (render, slotRender, info) => {
|
|
5650
5710
|
if (slotRender) return slotRender(info);
|
|
5651
5711
|
if (render !== void 0) return typeof render === "function" ? render(info.item, info) : render;
|
|
@@ -5776,7 +5836,7 @@
|
|
|
5776
5836
|
if (!disabled) props.onClick?.(props.info.key, props.info);
|
|
5777
5837
|
}
|
|
5778
5838
|
}, [
|
|
5779
|
-
hasRenderableNode
|
|
5839
|
+
hasRenderableNode(iconNode) && (0, vue.createVNode)("div", { "class": `${props.prefixCls}-icon` }, [iconNode]),
|
|
5780
5840
|
(0, vue.createVNode)(antdv_next.Typography.Text, { "class": `${props.prefixCls}-label` }, _isSlot$2(labelNode) ? labelNode : { default: () => [labelNode] }),
|
|
5781
5841
|
!disabled && props.menu && (0, vue.createVNode)("div", { "onClick": stopPropagation }, [(0, vue.createVNode)(antdv_next.Dropdown, {
|
|
5782
5842
|
"menu": menuProps.value,
|
|
@@ -5997,6 +6057,16 @@
|
|
|
5997
6057
|
],
|
|
5998
6058
|
default: void 0
|
|
5999
6059
|
},
|
|
6060
|
+
groupLabelRender: {
|
|
6061
|
+
type: [
|
|
6062
|
+
String,
|
|
6063
|
+
Number,
|
|
6064
|
+
Object,
|
|
6065
|
+
Array,
|
|
6066
|
+
Function
|
|
6067
|
+
],
|
|
6068
|
+
default: void 0
|
|
6069
|
+
},
|
|
6000
6070
|
menu: {
|
|
6001
6071
|
type: [Object, Function],
|
|
6002
6072
|
default: void 0
|
|
@@ -6168,6 +6238,8 @@
|
|
|
6168
6238
|
"key": groupInfo.name || `key-${groupIndex}`,
|
|
6169
6239
|
"prefixCls": props.prefixCls,
|
|
6170
6240
|
"groupInfo": groupInfo,
|
|
6241
|
+
"groupLabelRender": props.groupLabelRender,
|
|
6242
|
+
"groupLabelRenderSlot": slots.groupLabelRender,
|
|
6171
6243
|
"classes": [contextConfig.value.classes?.group, props.classes?.group],
|
|
6172
6244
|
"enableCollapse": enableCollapse.value,
|
|
6173
6245
|
"expandedKeys": mergedExpandedKeys.value,
|
|
@@ -6446,6 +6518,26 @@
|
|
|
6446
6518
|
const { class: _class, style: _style, ...rest } = attrs;
|
|
6447
6519
|
return rest;
|
|
6448
6520
|
});
|
|
6521
|
+
const getNamedSlot = (name) => slots[name] ?? slots[name.replace(/[A-Z]/g, (s) => `-${s.toLowerCase()}`)];
|
|
6522
|
+
const resolvedCustomActions = (0, vue.computed)(() => mergedActions.value.customActions.map((item, index) => {
|
|
6523
|
+
const iconSlotInfo = {
|
|
6524
|
+
item,
|
|
6525
|
+
index,
|
|
6526
|
+
originNode: item.icon
|
|
6527
|
+
};
|
|
6528
|
+
const iconFromSlot = getNamedSlot("customActionIconRender")?.(iconSlotInfo);
|
|
6529
|
+
const actionSlotInfo = {
|
|
6530
|
+
item,
|
|
6531
|
+
index,
|
|
6532
|
+
originNode: item.actionRender !== void 0 ? typeof item.actionRender === "function" ? item.actionRender(item) : item.actionRender : void 0
|
|
6533
|
+
};
|
|
6534
|
+
const actionFromSlot = getNamedSlot("customActionRender")?.(actionSlotInfo);
|
|
6535
|
+
return {
|
|
6536
|
+
...item,
|
|
6537
|
+
icon: iconFromSlot !== void 0 && !isEmptyNode(iconFromSlot) ? iconFromSlot : item.icon,
|
|
6538
|
+
actionRender: actionFromSlot !== void 0 && !isEmptyNode(actionFromSlot) ? actionFromSlot : item.actionRender
|
|
6539
|
+
};
|
|
6540
|
+
}));
|
|
6449
6541
|
function applySvgTransform() {
|
|
6450
6542
|
if (mergedRenderType.value !== RenderType.Image) return;
|
|
6451
6543
|
const svgEl = graphRef.value?.querySelector("svg");
|
|
@@ -6573,7 +6665,7 @@
|
|
|
6573
6665
|
key: "copy",
|
|
6574
6666
|
actionRender: () => (0, vue.createVNode)(ActionsWithSub.Copy, { "text": props.content }, null)
|
|
6575
6667
|
});
|
|
6576
|
-
return [...items, ...
|
|
6668
|
+
return [...items, ...resolvedCustomActions.value];
|
|
6577
6669
|
});
|
|
6578
6670
|
function renderHeader() {
|
|
6579
6671
|
if (props.header === null) return null;
|
|
@@ -6913,10 +7005,6 @@
|
|
|
6913
7005
|
delete domAttrs.children;
|
|
6914
7006
|
return domAttrs;
|
|
6915
7007
|
}
|
|
6916
|
-
function hasRenderableNode$5(node) {
|
|
6917
|
-
if (Array.isArray(node)) return node.some((item) => item !== null && item !== void 0 && item !== false);
|
|
6918
|
-
return node !== null && node !== void 0 && node !== false;
|
|
6919
|
-
}
|
|
6920
7008
|
//#endregion
|
|
6921
7009
|
//#region components/prompts/index.tsx
|
|
6922
7010
|
var prompts_default = /* @__PURE__ */ (0, vue.defineComponent)({
|
|
@@ -7089,12 +7177,12 @@
|
|
|
7089
7177
|
],
|
|
7090
7178
|
"style": [nested ? mergedStyles.value.subItem : mergedStyles.value.item, item.style],
|
|
7091
7179
|
"onClick": () => triggerItemClick(item, nested)
|
|
7092
|
-
}), [hasRenderableNode
|
|
7180
|
+
}), [hasRenderableNode(iconNode) && (0, vue.createVNode)("div", { "class": `${props.prefixCls}-icon` }, [iconNode]), (0, vue.createVNode)("div", {
|
|
7093
7181
|
"class": [`${props.prefixCls}-content`, mergedClasses.value.itemContent],
|
|
7094
7182
|
"style": mergedStyles.value.itemContent
|
|
7095
7183
|
}, [
|
|
7096
|
-
hasRenderableNode
|
|
7097
|
-
hasRenderableNode
|
|
7184
|
+
hasRenderableNode(labelNode) && (0, vue.createVNode)("div", { "class": `${props.prefixCls}-label` }, [labelNode]),
|
|
7185
|
+
hasRenderableNode(descriptionNode) && (0, vue.createVNode)("div", { "class": `${props.prefixCls}-desc` }, [descriptionNode]),
|
|
7098
7186
|
itemHasChildren && (0, vue.createVNode)("div", { "class": `${props.prefixCls}-nested` }, [renderItems(item.children, true)])
|
|
7099
7187
|
])]);
|
|
7100
7188
|
})]);
|
|
@@ -7119,7 +7207,7 @@
|
|
|
7119
7207
|
attrs.style,
|
|
7120
7208
|
props.style
|
|
7121
7209
|
]
|
|
7122
|
-
}), [hasRenderableNode
|
|
7210
|
+
}), [hasRenderableNode(renderTitle()) && (0, vue.createVNode)("div", {
|
|
7123
7211
|
"class": [`${props.prefixCls}-title`, mergedClasses.value.title],
|
|
7124
7212
|
"style": mergedStyles.value.title
|
|
7125
7213
|
}, [renderTitle()]), renderItems(props.items)]);
|
|
@@ -9317,10 +9405,6 @@
|
|
|
9317
9405
|
Sender.Switch = SenderSwitch_default;
|
|
9318
9406
|
//#endregion
|
|
9319
9407
|
//#region components/sources/components/CarouselCard.tsx
|
|
9320
|
-
var hasRenderableNode$4 = (node) => {
|
|
9321
|
-
if (Array.isArray(node)) return node.some((item) => item !== null && item !== void 0 && item !== false);
|
|
9322
|
-
return node !== null && node !== void 0 && node !== false;
|
|
9323
|
-
};
|
|
9324
9408
|
var CarouselCard = /* @__PURE__ */ (0, vue.defineComponent)({
|
|
9325
9409
|
name: "XSourcesCarouselCard",
|
|
9326
9410
|
props: {
|
|
@@ -9431,7 +9515,7 @@
|
|
|
9431
9515
|
"key": item.key ?? index,
|
|
9432
9516
|
"class": `${compCls}-item`,
|
|
9433
9517
|
"onClick": () => handleClick(item)
|
|
9434
|
-
}, [(0, vue.createVNode)("div", { "class": `${compCls}-item-title-wrapper` }, [hasRenderableNode
|
|
9518
|
+
}, [(0, vue.createVNode)("div", { "class": `${compCls}-item-title-wrapper` }, [hasRenderableNode(iconNode) && (0, vue.createVNode)("span", { "class": `${compCls}-item-icon` }, [iconNode]), (0, vue.createVNode)("span", { "class": `${compCls}-item-title` }, [titleNode])]), hasRenderableNode(descriptionNode) && (0, vue.createVNode)("div", { "class": `${compCls}-item-description` }, [descriptionNode])]);
|
|
9435
9519
|
})())] })]);
|
|
9436
9520
|
}
|
|
9437
9521
|
});
|
|
@@ -9536,12 +9620,6 @@
|
|
|
9536
9620
|
return [genSourcesStyle(compToken), genCollapseMotion(compToken)];
|
|
9537
9621
|
}, prepareComponentToken$4);
|
|
9538
9622
|
//#endregion
|
|
9539
|
-
//#region components/sources/Sources.tsx
|
|
9540
|
-
var hasRenderableNode$3 = (node) => {
|
|
9541
|
-
if (Array.isArray(node)) return node.some((item) => item !== null && item !== void 0 && item !== false);
|
|
9542
|
-
return node !== null && node !== void 0 && node !== false;
|
|
9543
|
-
};
|
|
9544
|
-
//#endregion
|
|
9545
9623
|
//#region components/sources/index.tsx
|
|
9546
9624
|
var sources_default = /* @__PURE__ */ (0, vue.defineComponent)({
|
|
9547
9625
|
name: "AxSources",
|
|
@@ -9694,9 +9772,9 @@
|
|
|
9694
9772
|
"target": "_blank",
|
|
9695
9773
|
"rel": "noopener noreferrer"
|
|
9696
9774
|
}, [
|
|
9697
|
-
hasRenderableNode
|
|
9775
|
+
hasRenderableNode(iconNode) && (0, vue.createVNode)("span", { "class": `${props.prefixCls}-link-icon` }, [iconNode]),
|
|
9698
9776
|
(0, vue.createVNode)("span", { "class": `${props.prefixCls}-link-title` }, [titleNode]),
|
|
9699
|
-
hasRenderableNode
|
|
9777
|
+
hasRenderableNode(descriptionNode) && (0, vue.createVNode)("span", { "class": `${props.prefixCls}-link-description` }, [descriptionNode])
|
|
9700
9778
|
])]);
|
|
9701
9779
|
})]) : slots.default?.();
|
|
9702
9780
|
return (0, vue.createVNode)("div", (0, vue.mergeProps)({ "ref": rootRef }, domAttrs.value, {
|
|
@@ -9844,12 +9922,6 @@
|
|
|
9844
9922
|
return [activePaths, onKeyDown];
|
|
9845
9923
|
}
|
|
9846
9924
|
//#endregion
|
|
9847
|
-
//#region components/suggestion/Suggestion.tsx
|
|
9848
|
-
var hasRenderableNode$2 = (node) => {
|
|
9849
|
-
if (Array.isArray(node)) return node.some((item) => item !== null && item !== void 0 && item !== false);
|
|
9850
|
-
return node !== null && node !== void 0 && node !== false;
|
|
9851
|
-
};
|
|
9852
|
-
//#endregion
|
|
9853
9925
|
//#region components/suggestion/index.tsx
|
|
9854
9926
|
var suggestion_default = /* @__PURE__ */ (0, vue.defineComponent)({
|
|
9855
9927
|
name: "AxSuggestion",
|
|
@@ -10006,9 +10078,9 @@
|
|
|
10006
10078
|
originNode: item.extra
|
|
10007
10079
|
});
|
|
10008
10080
|
return (0, vue.createVNode)(antdv_next.Flex, { "class": `${prefixCls.value}-item` }, { default: () => [
|
|
10009
|
-
hasRenderableNode
|
|
10081
|
+
hasRenderableNode(iconNode) && (0, vue.createVNode)("div", { "class": `${prefixCls.value}-item-icon` }, [iconNode]),
|
|
10010
10082
|
labelNode,
|
|
10011
|
-
hasRenderableNode
|
|
10083
|
+
hasRenderableNode(extraNode) && (0, vue.createVNode)("div", { "class": `${prefixCls.value}-item-extra` }, [extraNode])
|
|
10012
10084
|
] });
|
|
10013
10085
|
},
|
|
10014
10086
|
"classes": { popup: { root: popupRootClass.value } },
|
|
@@ -10535,10 +10607,6 @@
|
|
|
10535
10607
|
}, prepareComponentToken$1);
|
|
10536
10608
|
//#endregion
|
|
10537
10609
|
//#region components/thought-chain/Item.tsx
|
|
10538
|
-
function hasRenderableNode$1(node) {
|
|
10539
|
-
if (Array.isArray(node)) return node.some((item) => item !== null && item !== void 0 && item !== false);
|
|
10540
|
-
return node !== null && node !== void 0 && node !== false;
|
|
10541
|
-
}
|
|
10542
10610
|
var XThoughtChainItem = /* @__PURE__ */ (0, vue.defineComponent)({
|
|
10543
10611
|
name: "AxThoughtChainItem",
|
|
10544
10612
|
props: {
|
|
@@ -10618,16 +10686,16 @@
|
|
|
10618
10686
|
return () => {
|
|
10619
10687
|
const cls = itemPrefixCls.value;
|
|
10620
10688
|
const statusCls = `${props.prefixCls}-status`;
|
|
10621
|
-
const
|
|
10689
|
+
const iconSlot = slots.icon;
|
|
10622
10690
|
const originIconNode = props.status ? STATUS_ICON_MAP[props.status] : props.icon;
|
|
10623
|
-
const iconNode =
|
|
10691
|
+
const iconNode = iconSlot ? iconSlot({
|
|
10624
10692
|
originNode: originIconNode,
|
|
10625
10693
|
status: props.status
|
|
10626
10694
|
}) : originIconNode;
|
|
10627
10695
|
const titleNode = slots.title ? slots.title({ originNode: props.title }) : props.title;
|
|
10628
10696
|
const descriptionNode = slots.description ? slots.description({ originNode: props.description }) : props.description;
|
|
10629
|
-
const hasTitle = hasRenderableNode
|
|
10630
|
-
const hasDescription = hasRenderableNode
|
|
10697
|
+
const hasTitle = hasRenderableNode(titleNode);
|
|
10698
|
+
const hasDescription = hasRenderableNode(descriptionNode);
|
|
10631
10699
|
return (0, vue.createVNode)("div", {
|
|
10632
10700
|
"ref": rootRef,
|
|
10633
10701
|
"class": [
|
|
@@ -10647,7 +10715,7 @@
|
|
|
10647
10715
|
],
|
|
10648
10716
|
"style": props.styles?.root,
|
|
10649
10717
|
"onClick": handleClick
|
|
10650
|
-
}, [hasRenderableNode
|
|
10718
|
+
}, [hasRenderableNode(iconNode) && (0, vue.createVNode)("div", {
|
|
10651
10719
|
"style": props.styles?.icon,
|
|
10652
10720
|
"class": [
|
|
10653
10721
|
statusCls,
|
|
@@ -10670,10 +10738,6 @@
|
|
|
10670
10738
|
});
|
|
10671
10739
|
//#endregion
|
|
10672
10740
|
//#region components/thought-chain/Node.tsx
|
|
10673
|
-
function hasRenderableNode(node) {
|
|
10674
|
-
if (Array.isArray(node)) return node.some((item) => item !== null && item !== void 0 && item !== false);
|
|
10675
|
-
return node !== null && node !== void 0 && node !== false;
|
|
10676
|
-
}
|
|
10677
10741
|
var Node_default = /* @__PURE__ */ (0, vue.defineComponent)({
|
|
10678
10742
|
name: "ThoughtChainNode",
|
|
10679
10743
|
props: {
|
|
@@ -28,6 +28,11 @@ export interface MermaidProps extends Omit<HTMLAttributes, "content" | "class" |
|
|
|
28
28
|
export interface MermaidRef {
|
|
29
29
|
nativeElement: HTMLDivElement;
|
|
30
30
|
}
|
|
31
|
+
export interface MermaidCustomActionSlotInfo {
|
|
32
|
+
item: ItemType;
|
|
33
|
+
index: number;
|
|
34
|
+
originNode: VNodeChild;
|
|
35
|
+
}
|
|
31
36
|
declare enum RenderType {
|
|
32
37
|
Code = "code",
|
|
33
38
|
Image = "image"
|
package/dist/mermaid/Mermaid.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import useXComponentConfig from "../_utils/hooks/use-x-component-config.js";
|
|
2
|
+
import { isEmptyNode } from "../_utils/vue.js";
|
|
2
3
|
import warning from "../_utils/warning.js";
|
|
3
4
|
import ActionsWithSub from "../actions/index.js";
|
|
4
5
|
import localeValues from "../locale/en_US.js";
|
|
@@ -168,6 +169,26 @@ var XMermaid = /* @__PURE__ */ defineComponent({
|
|
|
168
169
|
const { class: _class, style: _style, ...rest } = attrs;
|
|
169
170
|
return rest;
|
|
170
171
|
});
|
|
172
|
+
const getNamedSlot = (name) => slots[name] ?? slots[name.replace(/[A-Z]/g, (s) => `-${s.toLowerCase()}`)];
|
|
173
|
+
const resolvedCustomActions = computed(() => mergedActions.value.customActions.map((item, index) => {
|
|
174
|
+
const iconSlotInfo = {
|
|
175
|
+
item,
|
|
176
|
+
index,
|
|
177
|
+
originNode: item.icon
|
|
178
|
+
};
|
|
179
|
+
const iconFromSlot = getNamedSlot("customActionIconRender")?.(iconSlotInfo);
|
|
180
|
+
const actionSlotInfo = {
|
|
181
|
+
item,
|
|
182
|
+
index,
|
|
183
|
+
originNode: item.actionRender !== void 0 ? typeof item.actionRender === "function" ? item.actionRender(item) : item.actionRender : void 0
|
|
184
|
+
};
|
|
185
|
+
const actionFromSlot = getNamedSlot("customActionRender")?.(actionSlotInfo);
|
|
186
|
+
return {
|
|
187
|
+
...item,
|
|
188
|
+
icon: iconFromSlot !== void 0 && !isEmptyNode(iconFromSlot) ? iconFromSlot : item.icon,
|
|
189
|
+
actionRender: actionFromSlot !== void 0 && !isEmptyNode(actionFromSlot) ? actionFromSlot : item.actionRender
|
|
190
|
+
};
|
|
191
|
+
}));
|
|
171
192
|
function applySvgTransform() {
|
|
172
193
|
if (mergedRenderType.value !== RenderType.Image) return;
|
|
173
194
|
const svgEl = graphRef.value?.querySelector("svg");
|
|
@@ -295,7 +316,7 @@ var XMermaid = /* @__PURE__ */ defineComponent({
|
|
|
295
316
|
key: "copy",
|
|
296
317
|
actionRender: () => createVNode(ActionsWithSub.Copy, { "text": props.content }, null)
|
|
297
318
|
});
|
|
298
|
-
return [...items, ...
|
|
319
|
+
return [...items, ...resolvedCustomActions.value];
|
|
299
320
|
});
|
|
300
321
|
function renderHeader() {
|
|
301
322
|
if (props.header === null) return null;
|
package/dist/mermaid/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { default as Mermaid } from './Mermaid';
|
|
2
|
-
export type { MermaidActions, MermaidProps, MermaidRef, MermaidRenderType, MermaidSemanticType, } from './Mermaid';
|
|
2
|
+
export type { MermaidActions, MermaidCustomActionSlotInfo, MermaidProps, MermaidRef, MermaidRenderType, MermaidSemanticType, } from './Mermaid';
|
|
3
3
|
export default Mermaid;
|
package/dist/package.js
CHANGED
package/dist/prompts/Prompts.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import useXComponentConfig from "../_utils/hooks/use-x-component-config.js";
|
|
2
|
+
import { hasRenderableNode } from "../_utils/vue.js";
|
|
2
3
|
import style_default from "./style/index.js";
|
|
3
4
|
import { computed, createVNode, defineComponent, mergeProps, nextTick, onMounted, ref, useAttrs } from "vue";
|
|
4
5
|
import { useConfig } from "antdv-next/dist/config-provider/context";
|
|
@@ -19,10 +20,6 @@ function getItemDomAttrs(item) {
|
|
|
19
20
|
delete domAttrs.children;
|
|
20
21
|
return domAttrs;
|
|
21
22
|
}
|
|
22
|
-
function hasRenderableNode(node) {
|
|
23
|
-
if (Array.isArray(node)) return node.some((item) => item !== null && item !== void 0 && item !== false);
|
|
24
|
-
return node !== null && node !== void 0 && node !== false;
|
|
25
|
-
}
|
|
26
23
|
var XPrompts = /* @__PURE__ */ defineComponent({
|
|
27
24
|
name: "AxPrompts",
|
|
28
25
|
inheritAttrs: false,
|
package/dist/sources/Sources.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import useXComponentConfig from "../_utils/hooks/use-x-component-config.js";
|
|
2
2
|
import initCollapseTransition from "../_utils/transition.js";
|
|
3
|
+
import { hasRenderableNode } from "../_utils/vue.js";
|
|
3
4
|
import CarouselCard from "./components/CarouselCard.js";
|
|
4
5
|
import style_default from "./style/index.js";
|
|
5
6
|
import { Fragment, Transition, computed, createVNode, defineComponent, mergeProps, ref, useAttrs } from "vue";
|
|
@@ -7,10 +8,6 @@ import { useConfig } from "antdv-next/dist/config-provider/context";
|
|
|
7
8
|
import { Popover } from "antdv-next";
|
|
8
9
|
import { RightOutlined } from "@antdv-next/icons";
|
|
9
10
|
//#region components/sources/Sources.tsx
|
|
10
|
-
var hasRenderableNode = (node) => {
|
|
11
|
-
if (Array.isArray(node)) return node.some((item) => item !== null && item !== void 0 && item !== false);
|
|
12
|
-
return node !== null && node !== void 0 && node !== false;
|
|
13
|
-
};
|
|
14
11
|
var XSources = /* @__PURE__ */ defineComponent({
|
|
15
12
|
name: "AxSources",
|
|
16
13
|
inheritAttrs: false,
|
|
@@ -1,11 +1,8 @@
|
|
|
1
|
+
import { hasRenderableNode } from "../../_utils/vue.js";
|
|
1
2
|
import { createVNode, defineComponent, nextTick, ref, watch } from "vue";
|
|
2
3
|
import { Carousel } from "antdv-next";
|
|
3
4
|
import { LeftOutlined, RightOutlined } from "@antdv-next/icons";
|
|
4
5
|
//#region components/sources/components/CarouselCard.tsx
|
|
5
|
-
var hasRenderableNode = (node) => {
|
|
6
|
-
if (Array.isArray(node)) return node.some((item) => item !== null && item !== void 0 && item !== false);
|
|
7
|
-
return node !== null && node !== void 0 && node !== false;
|
|
8
|
-
};
|
|
9
6
|
var CarouselCard = /* @__PURE__ */ defineComponent({
|
|
10
7
|
name: "XSourcesCarouselCard",
|
|
11
8
|
props: {
|
|
@@ -1,14 +1,11 @@
|
|
|
1
1
|
import useXComponentConfig from "../_utils/hooks/use-x-component-config.js";
|
|
2
|
+
import { hasRenderableNode } from "../_utils/vue.js";
|
|
2
3
|
import style_default from "./style/index.js";
|
|
3
4
|
import useActive from "./useActive.js";
|
|
4
5
|
import { computed, createVNode, defineComponent, mergeProps, ref, useAttrs, watch } from "vue";
|
|
5
6
|
import { useConfig } from "antdv-next/dist/config-provider/context";
|
|
6
7
|
import { Cascader, Flex } from "antdv-next";
|
|
7
8
|
//#region components/suggestion/Suggestion.tsx
|
|
8
|
-
var hasRenderableNode = (node) => {
|
|
9
|
-
if (Array.isArray(node)) return node.some((item) => item !== null && item !== void 0 && item !== false);
|
|
10
|
-
return node !== null && node !== void 0 && node !== false;
|
|
11
|
-
};
|
|
12
9
|
var XSuggestion = /* @__PURE__ */ defineComponent({
|
|
13
10
|
name: "AxSuggestion",
|
|
14
11
|
inheritAttrs: false,
|