st-comp 0.0.260 → 0.0.262
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/ChartLayout.js +4 -4
- package/es/CustomFunction.js +31 -31
- package/es/FactorWarning.cjs +1 -1
- package/es/FactorWarning.js +36 -37
- package/es/Kline.cjs +1 -1
- package/es/Kline.js +1593 -839
- package/es/KlineBasic.cjs +1 -1
- package/es/KlineBasic.js +1 -1197
- package/es/KlineConfig.js +89 -89
- package/es/KlineNew.js +17 -17
- package/es/KlinePlus.js +20 -20
- package/es/MonacoEditor.js +25 -25
- package/es/Pagination.js +113 -113
- package/es/PasswordPrompt.js +3 -3
- package/es/Table.js +29 -29
- package/es/User.js +25 -25
- package/es/VarSelectDialog.cjs +1 -1
- package/es/VarSelectDialog.js +27 -27
- package/es/VarietyAiHelper.cjs +3 -5
- package/es/VarietyAiHelper.js +244 -330
- package/es/VarietyAutoComplete.js +11 -11
- package/es/VarietySearch.cjs +18 -19
- package/es/VarietySearch.js +1169 -1205
- package/es/{VarietySelect-9f267958.js → VarietySelect-faef4799.js} +4 -4
- package/es/VarietyTextCopy.js +13 -13
- package/es/VirtualTable.js +74 -74
- package/es/{_initCloneObject-69c8ae23.js → _initCloneObject-009eedf8.js} +7 -7
- package/es/aiTools-2e1f92d2.cjs +3 -0
- package/es/aiTools-faa0a14d.js +90 -0
- package/es/{base-29f73b05.js → base-7ff209fc.js} +40 -40
- package/es/{castArray-609a313e.js → castArray-b9f1609f.js} +1 -1
- package/es/{config-provider-7860903c.js → config-provider-071b8bec.js} +6 -6
- package/es/{debounce-a09ce9a3.js → debounce-23c2f7e1.js} +1 -1
- package/es/{dropdown-497442b7.js → dropdown-9941f401.js} +4 -4
- package/es/{el-autocomplete-27c60cc8.js → el-autocomplete-43f205b0.js} +17 -17
- package/es/{el-button-e2c63c08.js → el-button-7f58608d.js} +33 -33
- package/es/{el-checkbox-71ebd862.js → el-checkbox-40664b27.js} +17 -17
- package/es/{el-input-number-c8018cb1.js → el-checkbox-group-3ddad0d7.js} +34 -34
- package/es/{el-input-number-3d94fa58.cjs → el-checkbox-group-f775e73f.cjs} +1 -1
- package/es/{el-dialog-eedcfd3e.js → el-dialog-2f10a2f4.js} +15 -15
- package/es/{el-divider-523e5874.js → el-divider-4e66c835.js} +1 -1
- package/es/{el-empty-f5a1607a.js → el-empty-e0d826de.js} +5 -5
- package/es/{el-form-item-bdcfd297.js → el-form-item-2b68cdf5.js} +36 -36
- package/es/{el-input-d47281da.js → el-input-31a818d4.js} +36 -36
- package/es/{el-loading-0cd81d05.js → el-loading-3e350f5e.js} +5 -5
- package/es/{el-message-box-fea4fca8.js → el-message-box-a3aa9b89.js} +11 -11
- package/es/{el-overlay-1ee0338d.js → el-overlay-4e9a99e0.js} +59 -59
- package/es/{el-popconfirm-089b8bec.js → el-popconfirm-c2896741.js} +12 -12
- package/es/{el-popper-c9b3d3cf.js → el-popper-003b3af7.js} +177 -177
- package/es/{el-segmented-9d3a9e11.js → el-segmented-4ae54e6a.js} +8 -8
- package/es/{el-select-e51e11c1.js → el-select-19ee0e79.js} +65 -65
- package/es/{el-table-column-05d292a8.js → el-table-column-3be856d7.js} +16 -16
- package/es/{el-tag-17cd04a1.js → el-tag-19cc5b59.js} +14 -14
- package/es/{el-text-2710fff3.js → el-text-9a7a4f0f.js} +2 -2
- package/es/{index-0f79095c.js → index-19ac550e.js} +49 -49
- package/es/{index-1d9b50de.js → index-308aab33.js} +34 -34
- package/es/{index-8a54ceeb.js → index-41dd5a1c.js} +10 -10
- package/es/{index-0ee486ad.js → index-6917da9d.js} +43 -43
- package/es/{index-bcd895a0.js → index-6d530e54.js} +13 -13
- package/es/{index-c71e37dc.js → index-808db9b4.js} +11 -11
- package/es/{index-f30561d3.js → index-99abf4ff.js} +17 -17
- package/es/{index-95e5d454.js → index-b56d81e8.js} +3 -3
- package/es/{index-8391a3df.js → index-d898531c.js} +37 -37
- package/es/{index-c2b9bbfd.js → index-e17987ac.js} +30 -30
- package/es/{index-b0117ba2.js → index-f3799536.js} +2 -2
- package/es/{index-de24705f.js → index-f402d1da.js} +1 -1
- package/es/{python-99011a53.js → python-be79c7c1.js} +25 -25
- package/es/raf-ba3dfafe.js +6 -0
- package/es/{scroll-6799bafc.js → scroll-8642151c.js} +5 -5
- package/es/style.css +1 -1
- package/es/{use-form-common-props-cb0ca65c.js → use-form-common-props-d170ccfd.js} +72 -72
- package/es/{use-global-config-cdaeca54.js → use-global-config-74436b92.js} +14 -14
- package/es/{validator-4ab9774f.js → validator-672bad4a.js} +1 -1
- package/es/{vnode-a83e6de8.js → vnode-6d2615f0.js} +1 -1
- package/es/{zh-cn-8a6390a4.js → zh-cn-ed10eeb1.js} +2 -2
- package/lib/bundle.js +1 -1
- package/lib/bundle.umd.cjs +150 -151
- package/lib/{index-107e931f.js → index-c3ddbee7.js} +7463 -7499
- package/lib/{python-5735efdf.js → python-da8fd227.js} +1 -1
- package/lib/style.css +1 -1
- package/package.json +1 -1
- package/packages/VarietyAiHelper/index.vue +3 -3
- package/packages/VarietySearch/components/FactorScreen/index.vue +20 -7
- package/packages/VarietySearch/components/FactorScreen/tools.js +0 -41
- package/es/el-checkbox-group-0ea8fbf8.cjs +0 -1
- package/es/el-checkbox-group-4ed993c7.js +0 -1
- package/es/el-menu-item-26071fd6.cjs +0 -1
- package/es/el-menu-item-dac65bb3.js +0 -769
- package/es/raf-744cf95a.js +0 -6
package/package.json
CHANGED
|
@@ -13,7 +13,7 @@ const emit = defineEmits(["callBack"]);
|
|
|
13
13
|
const props = defineProps({
|
|
14
14
|
defaultMessage: {
|
|
15
15
|
type: String,
|
|
16
|
-
default: "你好呀!我是你的品种池AI助手,会根据您的自然语言去进行品种的条件查询\n\n示例: \n帮我查A股科创板下品种转价差上证50并且总市值大于1千万,
|
|
16
|
+
default: "你好呀!我是你的品种池AI助手,会根据您的自然语言去进行品种的条件查询\n\n示例: \n帮我查A股科创板下品种转价差上证50并且总市值大于1千万, 最近一次红箱的开盘价大于前5根K线的最高价, 并按照总市值升序进行排序",
|
|
17
17
|
},
|
|
18
18
|
});
|
|
19
19
|
|
|
@@ -674,13 +674,13 @@ defineExpose({
|
|
|
674
674
|
.message-text {
|
|
675
675
|
border-radius: 18px 18px 18px 4px;
|
|
676
676
|
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
|
|
677
|
-
border: 1px solid rgba(102, 126, 234, .
|
|
677
|
+
border: 1px solid rgba(102, 126, 234, 0.2);
|
|
678
678
|
}
|
|
679
679
|
.message-json {
|
|
680
680
|
width: 100%;
|
|
681
681
|
border-radius: 18px 18px 18px 4px;
|
|
682
682
|
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
|
|
683
|
-
border: 1px solid rgba(102, 126, 234, .
|
|
683
|
+
border: 1px solid rgba(102, 126, 234, 0.2);
|
|
684
684
|
:deep(.parsed-conditions) {
|
|
685
685
|
margin-top: 10px;
|
|
686
686
|
.parsed-conditions-item {
|
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
<script setup name="FactorScreen">
|
|
3
3
|
import { nextTick, ref, watch, inject, reactive } from "vue";
|
|
4
4
|
import { Close, Plus, CircleCloseFilled, InfoFilled, Document } from "@element-plus/icons-vue";
|
|
5
|
-
import { handleVerifyScore, extractConditionDetails, extractVariables
|
|
5
|
+
import { handleVerifyScore, extractConditionDetails, extractVariables } from "./tools.js";
|
|
6
|
+
import { sendToBaiLianAppStreaming } from "../../../../public/aiTools";
|
|
6
7
|
import FactorDescription from "./FactorDescription.vue";
|
|
7
8
|
import MonacoEditor from "../../../MonacoEditor/index.vue";
|
|
8
9
|
|
|
@@ -395,12 +396,24 @@ const handleTestAi = () => {
|
|
|
395
396
|
const apiKey = "sk-d995eb26a4334bdeb2ccb4cbfaf51de8";
|
|
396
397
|
scriptAILoading.value = true;
|
|
397
398
|
scriptTestResult.ai = "";
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
399
|
+
let fullResponse = "";
|
|
400
|
+
sendToBaiLianAppStreaming({
|
|
401
|
+
appId,
|
|
402
|
+
apiKey,
|
|
403
|
+
value: scriptTestResult.code,
|
|
404
|
+
callback: (type, data) => {
|
|
405
|
+
// 百炼应用错误
|
|
406
|
+
if (type === "error") return;
|
|
407
|
+
// 流式输出(正常)
|
|
408
|
+
else if (type === "message") {
|
|
409
|
+
fullResponse += data;
|
|
410
|
+
scriptTestResult.ai = fullResponse;
|
|
411
|
+
}
|
|
412
|
+
// 流式输出(完毕)
|
|
413
|
+
else if (type === "finish") {
|
|
414
|
+
scriptAILoading.value = false;
|
|
415
|
+
}
|
|
416
|
+
},
|
|
404
417
|
});
|
|
405
418
|
};
|
|
406
419
|
|
|
@@ -32,44 +32,3 @@ export const extractVariables = (content) => {
|
|
|
32
32
|
|
|
33
33
|
return [...new Set(variables)]; // 去重
|
|
34
34
|
};
|
|
35
|
-
|
|
36
|
-
// 发送AI
|
|
37
|
-
export const sendToAi = async (appId, apiKey, value, callback) => {
|
|
38
|
-
try {
|
|
39
|
-
const res = await fetch(`https://dashscope.aliyuncs.com/api/v1/apps/${appId}/completion`, {
|
|
40
|
-
method: "POST",
|
|
41
|
-
body: JSON.stringify({
|
|
42
|
-
input: { prompt: value },
|
|
43
|
-
parameters: {
|
|
44
|
-
incremental_output: "true", // 流式返回
|
|
45
|
-
},
|
|
46
|
-
debug: {},
|
|
47
|
-
}),
|
|
48
|
-
headers: {
|
|
49
|
-
Authorization: `Bearer ${apiKey}`,
|
|
50
|
-
"Content-Type": "application/json",
|
|
51
|
-
"X-DashScope-SSE": "enable", // 流式输出
|
|
52
|
-
},
|
|
53
|
-
});
|
|
54
|
-
if (!res.ok || !res.body) throw new Error("请求失败");
|
|
55
|
-
|
|
56
|
-
const reader = res.body.getReader();
|
|
57
|
-
const decoder = new TextDecoder();
|
|
58
|
-
|
|
59
|
-
while (true) {
|
|
60
|
-
const { done, value } = await reader.read();
|
|
61
|
-
if (done && callback) {
|
|
62
|
-
callback("finish", "");
|
|
63
|
-
break;
|
|
64
|
-
}
|
|
65
|
-
try {
|
|
66
|
-
const data = decoder.decode(value, { stream: true });
|
|
67
|
-
const resData = JSON.parse(data.split("\n")[3].substr(5));
|
|
68
|
-
const resText = resData?.output?.text;
|
|
69
|
-
if (resText && callback) callback("message", resText);
|
|
70
|
-
} catch (error) {}
|
|
71
|
-
}
|
|
72
|
-
} catch (error) {
|
|
73
|
-
console.error(error);
|
|
74
|
-
}
|
|
75
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";const e=require("vue"),P=require("./use-form-common-props-d3ed62c6.cjs"),H=require("./index-33f80550.cjs"),f=require("./index-28e03bad.cjs"),a=require("./base-ef747d02.cjs"),ee=require("./el-popper-2d3914e4.cjs"),ae=require("./index-eea0bcb3.cjs"),ue=require("./el-tag-6d8e653e.cjs"),re=require("./typescript-b63f8e83.cjs"),ie=require("./vnode-b906ae6d.cjs"),ce=e.defineComponent({name:"ElCollapseTransition"}),de=e.defineComponent({...ce,setup(n){const o=a.useNamespace("collapse-transition"),i=t=>{t.style.maxHeight="",t.style.overflow=t.dataset.oldOverflow,t.style.paddingTop=t.dataset.oldPaddingTop,t.style.paddingBottom=t.dataset.oldPaddingBottom},s={beforeEnter(t){t.dataset||(t.dataset={}),t.dataset.oldPaddingTop=t.style.paddingTop,t.dataset.oldPaddingBottom=t.style.paddingBottom,t.style.height&&(t.dataset.elExistsHeight=t.style.height),t.style.maxHeight=0,t.style.paddingTop=0,t.style.paddingBottom=0},enter(t){requestAnimationFrame(()=>{t.dataset.oldOverflow=t.style.overflow,t.dataset.elExistsHeight?t.style.maxHeight=t.dataset.elExistsHeight:t.scrollHeight!==0?t.style.maxHeight=`${t.scrollHeight}px`:t.style.maxHeight=0,t.style.paddingTop=t.dataset.oldPaddingTop,t.style.paddingBottom=t.dataset.oldPaddingBottom,t.style.overflow="hidden"})},afterEnter(t){t.style.maxHeight="",t.style.overflow=t.dataset.oldOverflow},enterCancelled(t){i(t)},beforeLeave(t){t.dataset||(t.dataset={}),t.dataset.oldPaddingTop=t.style.paddingTop,t.dataset.oldPaddingBottom=t.style.paddingBottom,t.dataset.oldOverflow=t.style.overflow,t.style.maxHeight=`${t.scrollHeight}px`,t.style.overflow="hidden"},leave(t){t.scrollHeight!==0&&(t.style.maxHeight=0,t.style.paddingTop=0,t.style.paddingBottom=0)},afterLeave(t){i(t)},leaveCancelled(t){i(t)}};return(t,b)=>(e.openBlock(),e.createBlock(e.Transition,e.mergeProps({name:e.unref(o).b()},e.toHandlers(s)),{default:e.withCtx(()=>[e.renderSlot(t.$slots,"default")]),_:3},16,["name"]))}});var pe=a._export_sfc(de,[["__file","collapse-transition.vue"]]);const me=a.withInstall(pe);let fe=class{constructor(o,i){this.parent=o,this.domNode=i,this.subIndex=0,this.subIndex=0,this.init()}init(){this.subMenuItems=this.domNode.querySelectorAll("li"),this.addListeners()}gotoSubIndex(o){o===this.subMenuItems.length?o=0:o<0&&(o=this.subMenuItems.length-1),this.subMenuItems[o].focus(),this.subIndex=o}addListeners(){const o=this.parent.domNode;Array.prototype.forEach.call(this.subMenuItems,i=>{i.addEventListener("keydown",s=>{let t=!1;switch(s.code){case f.EVENT_CODE.down:{this.gotoSubIndex(this.subIndex+1),t=!0;break}case f.EVENT_CODE.up:{this.gotoSubIndex(this.subIndex-1),t=!0;break}case f.EVENT_CODE.tab:{f.triggerEvent(o,"mouseleave");break}case f.EVENT_CODE.enter:case f.EVENT_CODE.numpadEnter:case f.EVENT_CODE.space:{t=!0,s.currentTarget.click();break}}return t&&(s.preventDefault(),s.stopPropagation()),!1})})}},ve=class{constructor(o,i){this.domNode=o,this.submenu=null,this.submenu=null,this.init(i)}init(o){this.domNode.setAttribute("tabindex","0");const i=this.domNode.querySelector(`.${o}-menu`);i&&(this.submenu=new fe(this,i)),this.addListeners()}addListeners(){this.domNode.addEventListener("keydown",o=>{let i=!1;switch(o.code){case f.EVENT_CODE.down:{f.triggerEvent(o.currentTarget,"mouseenter"),this.submenu&&this.submenu.gotoSubIndex(0),i=!0;break}case f.EVENT_CODE.up:{f.triggerEvent(o.currentTarget,"mouseenter"),this.submenu&&this.submenu.gotoSubIndex(this.submenu.subMenuItems.length-1),i=!0;break}case f.EVENT_CODE.tab:{f.triggerEvent(o.currentTarget,"mouseleave");break}case f.EVENT_CODE.enter:case f.EVENT_CODE.numpadEnter:case f.EVENT_CODE.space:{i=!0,o.currentTarget.click();break}}i&&o.preventDefault()})}},he=class{constructor(o,i){this.domNode=o,this.init(i)}init(o){const i=this.domNode.childNodes;Array.from(i).forEach(s=>{s.nodeType===1&&new ve(s,o)})}};const ge=e.defineComponent({name:"ElMenuCollapseTransition"}),be=e.defineComponent({...ge,setup(n){const o=a.useNamespace("menu"),i={onBeforeEnter:s=>s.style.opacity="0.2",onEnter(s,t){a.addClass(s,`${o.namespace.value}-opacity-transition`),s.style.opacity="1",t()},onAfterEnter(s){a.removeClass(s,`${o.namespace.value}-opacity-transition`),s.style.opacity=""},onBeforeLeave(s){s.dataset||(s.dataset={}),a.hasClass(s,o.m("collapse"))?(a.removeClass(s,o.m("collapse")),s.dataset.oldOverflow=s.style.overflow,s.dataset.scrollWidth=s.clientWidth.toString(),a.addClass(s,o.m("collapse"))):(a.addClass(s,o.m("collapse")),s.dataset.oldOverflow=s.style.overflow,s.dataset.scrollWidth=s.clientWidth.toString(),a.removeClass(s,o.m("collapse"))),s.style.width=`${s.scrollWidth}px`,s.style.overflow="hidden"},onLeave(s){a.addClass(s,"horizontal-collapse-transition"),s.style.width=`${s.dataset.scrollWidth}px`}};return(s,t)=>(e.openBlock(),e.createBlock(e.Transition,e.mergeProps({mode:"out-in"},e.unref(i)),{default:e.withCtx(()=>[e.renderSlot(s.$slots,"default")]),_:3},16))}});var Ee=a._export_sfc(be,[["__file","menu-collapse-transition.vue"]]);function te(n,o){const i=e.computed(()=>{let t=n.parent;const b=[o.value];for(;t.type.name!=="ElMenu";)t.props.index&&b.unshift(t.props.index),t=t.parent;return b});return{parentMenu:e.computed(()=>{let t=n.parent;for(;t&&!["ElMenu","ElSubMenu"].includes(t.type.name);)t=t.parent;return t}),indexPath:i}}function Me(n){return e.computed(()=>{const i=n.backgroundColor;return i?new ae.TinyColor(i).shade(20).toString():""})}const ne=(n,o)=>{const i=a.useNamespace("menu");return e.computed(()=>i.cssVarBlock({"text-color":n.textColor||"","hover-text-color":n.textColor||"","bg-color":n.backgroundColor||"","hover-bg-color":Me(n).value||"","active-color":n.activeTextColor||"",level:`${o}`}))},Q="rootMenu",U="subMenu:",ye=a.buildProps({index:{type:String,required:!0},showTimeout:Number,hideTimeout:Number,popperClass:String,disabled:Boolean,teleported:{type:Boolean,default:void 0},popperOffset:Number,expandCloseIcon:{type:P.iconPropType},expandOpenIcon:{type:P.iconPropType},collapseCloseIcon:{type:P.iconPropType},collapseOpenIcon:{type:P.iconPropType}}),K="ElSubMenu";var X=e.defineComponent({name:K,props:ye,setup(n,{slots:o,expose:i}){const s=e.getCurrentInstance(),{indexPath:t,parentMenu:b}=te(s,e.computed(()=>n.index)),h=a.useNamespace("menu"),y=a.useNamespace("sub-menu"),c=e.inject(Q);c||f.throwError(K,"can not inject root menu");const E=e.inject(`${U}${b.value.uid}`);E||f.throwError(K,"can not inject sub menu");const N=e.ref({}),C=e.ref({});let p;const x=e.ref(!1),M=e.ref(),_=e.ref(),B=e.computed(()=>E.level===0),q=e.computed(()=>k.value==="horizontal"&&B.value?"bottom-start":"right-start"),w=e.computed(()=>k.value==="horizontal"&&B.value||k.value==="vertical"&&!c.props.collapse?n.expandCloseIcon&&n.expandOpenIcon?T.value?n.expandOpenIcon:n.expandCloseIcon:H.arrow_down_default:n.collapseCloseIcon&&n.collapseOpenIcon?T.value?n.collapseOpenIcon:n.collapseCloseIcon:H.arrow_right_default),$=e.computed(()=>{const l=n.teleported;return a.isUndefined(l)?B.value:l}),L=e.computed(()=>c.props.collapse?`${h.namespace.value}-zoom-in-left`:`${h.namespace.value}-zoom-in-top`),G=e.computed(()=>k.value==="horizontal"&&B.value?["bottom-start","bottom-end","top-start","top-end","right-start","left-start"]:["right-start","right","right-end","left-start","bottom-start","bottom-end","top-start","top-end"]),T=e.computed(()=>c.openedMenus.includes(n.index)),z=e.computed(()=>[...Object.values(N.value),...Object.values(C.value)].some(({active:l})=>l)),k=e.computed(()=>c.props.mode),W=e.computed(()=>c.props.persistent),D=e.reactive({index:n.index,indexPath:t,active:z}),j=ne(c.props,E.level+1),F=e.computed(()=>{var l;return(l=n.popperOffset)!=null?l:c.props.popperOffset}),A=e.computed(()=>{var l;return(l=n.popperClass)!=null?l:c.props.popperClass}),V=e.computed(()=>{var l;return(l=n.showTimeout)!=null?l:c.props.showTimeout}),R=e.computed(()=>{var l;return(l=n.hideTimeout)!=null?l:c.props.hideTimeout}),J=()=>{var l,g,v;return(v=(g=(l=_.value)==null?void 0:l.popperRef)==null?void 0:g.popperInstanceRef)==null?void 0:v.destroy()},u=l=>{l||J()},r=()=>{c.props.menuTrigger==="hover"&&c.props.mode==="horizontal"||c.props.collapse&&c.props.mode==="vertical"||n.disabled||c.handleSubMenuClick({index:n.index,indexPath:t.value,active:z.value})},d=(l,g=V.value)=>{var v;if(l.type!=="focus"){if(c.props.menuTrigger==="click"&&c.props.mode==="horizontal"||!c.props.collapse&&c.props.mode==="vertical"||n.disabled){E.mouseInChild.value=!0;return}E.mouseInChild.value=!0,p==null||p(),{stop:p}=a.useTimeoutFn(()=>{c.openMenu(n.index,t.value)},g),$.value&&((v=b.value.vnode.el)==null||v.dispatchEvent(new MouseEvent("mouseenter"))),l.type==="mouseenter"&&l.target&&e.nextTick(()=>{f.focusElement(l.target,{preventScroll:!0})})}},m=(l=!1)=>{var g;if(c.props.menuTrigger==="click"&&c.props.mode==="horizontal"||!c.props.collapse&&c.props.mode==="vertical"){E.mouseInChild.value=!1;return}p==null||p(),E.mouseInChild.value=!1,{stop:p}=a.useTimeoutFn(()=>!x.value&&c.closeMenu(n.index,t.value),R.value),$.value&&l&&((g=E.handleMouseleave)==null||g.call(E,!0))};e.watch(()=>c.props.collapse,l=>u(!!l));{const l=v=>{C.value[v.index]=v},g=v=>{delete C.value[v.index]};e.provide(`${U}${s.uid}`,{addSubMenu:l,removeSubMenu:g,handleMouseleave:m,mouseInChild:x,level:E.level+1})}return i({opened:T}),e.onMounted(()=>{c.addSubMenu(D),E.addSubMenu(D)}),e.onBeforeUnmount(()=>{E.removeSubMenu(D),c.removeSubMenu(D)}),()=>{var l;const g=[(l=o.title)==null?void 0:l.call(o),e.h(H.ElIcon,{class:y.e("icon-arrow"),style:{transform:T.value?n.expandCloseIcon&&n.expandOpenIcon||n.collapseCloseIcon&&n.collapseOpenIcon&&c.props.collapse?"none":"rotateZ(180deg)":"none"}},{default:()=>a.isString(w.value)?e.h(s.appContext.components[w.value]):e.h(w.value)})],v=c.isMenuPopup?e.h(ee.ElTooltip,{ref:_,visible:T.value,effect:"light",pure:!0,offset:F.value,showArrow:!1,persistent:W.value,popperClass:A.value,placement:q.value,teleported:$.value,fallbackPlacements:G.value,transition:L.value,gpuAcceleration:!1},{content:()=>{var S;return e.h("div",{class:[h.m(k.value),h.m("popup-container"),A.value],onMouseenter:I=>d(I,100),onMouseleave:()=>m(!0),onFocus:I=>d(I,100)},[e.h("ul",{class:[h.b(),h.m("popup"),h.m(`popup-${q.value}`)],style:j.value},[(S=o.default)==null?void 0:S.call(o)])])},default:()=>e.h("div",{class:y.e("title"),onClick:r},g)}):e.h(e.Fragment,{},[e.h("div",{class:y.e("title"),ref:M,onClick:r},g),e.h(me,{},{default:()=>{var S;return e.withDirectives(e.h("ul",{role:"menu",class:[h.b(),h.m("inline")],style:j.value},[(S=o.default)==null?void 0:S.call(o)]),[[e.vShow,T.value]])}})]);return e.h("li",{class:[y.b(),y.is("active",z.value),y.is("opened",T.value),y.is("disabled",n.disabled)],role:"menuitem",ariaHaspopup:!0,ariaExpanded:T.value,onMouseenter:d,onMouseleave:()=>m(),onFocus:d},[v])}}});const Ce=a.buildProps({mode:{type:String,values:["horizontal","vertical"],default:"vertical"},defaultActive:{type:String,default:""},defaultOpeneds:{type:a.definePropType(Array),default:()=>re.mutable([])},uniqueOpened:Boolean,router:Boolean,menuTrigger:{type:String,values:["hover","click"],default:"hover"},collapse:Boolean,backgroundColor:String,textColor:String,activeTextColor:String,closeOnClickOutside:Boolean,collapseTransition:{type:Boolean,default:!0},ellipsis:{type:Boolean,default:!0},popperOffset:{type:Number,default:6},ellipsisIcon:{type:P.iconPropType,default:()=>H.more_default},popperEffect:{type:a.definePropType(String),default:"dark"},popperClass:String,showTimeout:{type:Number,default:300},hideTimeout:{type:Number,default:300},persistent:{type:Boolean,default:!0}}),Y=n=>a.isArray(n)&&n.every(o=>a.isString(o)),xe={close:(n,o)=>a.isString(n)&&Y(o),open:(n,o)=>a.isString(n)&&Y(o),select:(n,o,i,s)=>a.isString(n)&&Y(o)&&a.isObject(i)&&(a.isUndefined(s)||s instanceof Promise)};var Ie=e.defineComponent({name:"ElMenu",props:Ce,emits:xe,setup(n,{emit:o,slots:i,expose:s}){const t=e.getCurrentInstance(),b=t.appContext.config.globalProperties.$router,h=e.ref(),y=e.ref(),c=a.useNamespace("menu"),E=a.useNamespace("sub-menu");let N=64;const C=e.ref(-1),p=e.ref(n.defaultOpeneds&&!n.collapse?n.defaultOpeneds.slice(0):[]),x=e.ref(n.defaultActive),M=e.ref({}),_=e.ref({}),B=e.computed(()=>n.mode==="horizontal"||n.mode==="vertical"&&n.collapse),q=()=>{const u=x.value&&M.value[x.value];if(!u||n.mode==="horizontal"||n.collapse)return;u.indexPath.forEach(d=>{const m=_.value[d];m&&w(d,m.indexPath)})},w=(u,r)=>{p.value.includes(u)||(n.uniqueOpened&&(p.value=p.value.filter(d=>r.includes(d))),p.value.push(u),o("open",u,r))},$=u=>{const r=p.value.indexOf(u);r!==-1&&p.value.splice(r,1)},L=(u,r)=>{$(u),o("close",u,r)},G=({index:u,indexPath:r})=>{p.value.includes(u)?L(u,r):w(u,r)},T=u=>{(n.mode==="horizontal"||n.collapse)&&(p.value=[]);const{index:r,indexPath:d}=u;if(!(a.isNil(r)||a.isNil(d)))if(n.router&&b){const m=u.route||r,l=b.push(m).then(g=>(g||(x.value=r),g));o("select",r,d,{index:r,indexPath:d,route:m},l)}else x.value=r,o("select",r,d,{index:r,indexPath:d})},z=u=>{var r;const d=M.value,m=d[u]||x.value&&d[x.value]||d[n.defaultActive];x.value=(r=m==null?void 0:m.index)!=null?r:u},k=u=>{const r=getComputedStyle(u),d=Number.parseInt(r.marginLeft,10),m=Number.parseInt(r.marginRight,10);return u.offsetWidth+d+m||0},W=()=>{var u,r;if(!h.value)return-1;const d=Array.from((r=(u=h.value)==null?void 0:u.childNodes)!=null?r:[]).filter(O=>O.nodeName!=="#comment"&&(O.nodeName!=="#text"||O.nodeValue)),m=getComputedStyle(h.value),l=Number.parseInt(m.paddingLeft,10),g=Number.parseInt(m.paddingRight,10),v=h.value.clientWidth-l-g;let S=0,I=0;return d.forEach((O,le)=>{S+=k(O),S<=v-N&&(I=le+1)}),I===d.length?-1:I},D=u=>_.value[u].indexPath,j=(u,r=33.34)=>{let d;return()=>{d&&clearTimeout(d),d=setTimeout(()=>{u()},r)}};let F=!0;const A=()=>{const u=P.unrefElement(y);if(u&&(N=k(u)||64),C.value===W())return;const r=()=>{C.value=-1,e.nextTick(()=>{C.value=W()})};F?r():j(r)(),F=!1};e.watch(()=>n.defaultActive,u=>{M.value[u]||(x.value=""),z(u)}),e.watch(()=>n.collapse,u=>{u&&(p.value=[])}),e.watch(M.value,q);let V;e.watchEffect(()=>{n.mode==="horizontal"&&n.ellipsis?V=P.useResizeObserver(h,A).stop:V==null||V()});const R=e.ref(!1);{const u=l=>{_.value[l.index]=l},r=l=>{delete _.value[l.index]},d=l=>{M.value[l.index]=l},m=l=>{delete M.value[l.index]};e.provide(Q,e.reactive({props:n,openedMenus:p,items:M,subMenus:_,activeIndex:x,isMenuPopup:B,addMenuItem:d,removeMenuItem:m,addSubMenu:u,removeSubMenu:r,openMenu:w,closeMenu:L,handleMenuItemClick:T,handleSubMenuClick:G})),e.provide(`${U}${t.uid}`,{addSubMenu:u,removeSubMenu:r,mouseInChild:R,level:0})}e.onMounted(()=>{n.mode==="horizontal"&&new he(t.vnode.el,c.namespace.value)}),s({open:r=>{const{indexPath:d}=_.value[r];d.forEach(m=>w(m,d))},close:$,updateActiveIndex:z,handleResize:A});const J=ne(n,0);return()=>{var u,r;let d=(r=(u=i.default)==null?void 0:u.call(i))!=null?r:[];const m=[];if(n.mode==="horizontal"&&h.value){const v=ie.flattedChildren(d).filter(O=>(O==null?void 0:O.shapeFlag)!==8),S=C.value===-1?v:v.slice(0,C.value),I=C.value===-1?[]:v.slice(C.value);I!=null&&I.length&&n.ellipsis&&(d=S,m.push(e.h(X,{ref:y,index:"sub-menu-more",class:E.e("hide-arrow"),popperOffset:n.popperOffset},{title:()=>e.h(H.ElIcon,{class:E.e("icon-more")},{default:()=>e.h(n.ellipsisIcon)}),default:()=>I})))}const l=n.closeOnClickOutside?[[ue.ClickOutside,()=>{p.value.length&&(R.value||(p.value.forEach(v=>o("close",v,D(v))),p.value=[]))}]]:[],g=e.withDirectives(e.h("ul",{key:String(n.collapse),role:"menubar",ref:h,style:J.value,class:{[c.b()]:!0,[c.m(n.mode)]:!0,[c.m("collapse")]:n.collapse}},[...d,...m]),l);return n.collapseTransition&&n.mode==="vertical"?e.h(Ee,()=>g):g}}});const _e=a.buildProps({index:{type:a.definePropType([String,null]),default:null},route:{type:a.definePropType([String,Object])},disabled:Boolean}),Te={click:n=>a.isString(n.index)&&a.isArray(n.indexPath)},Z="ElMenuItem",Se=e.defineComponent({name:Z}),Ne=e.defineComponent({...Se,props:_e,emits:Te,setup(n,{expose:o,emit:i}){const s=n;a.isPropAbsent(s.index)&&f.debugWarn();const t=e.getCurrentInstance(),b=e.inject(Q),h=a.useNamespace("menu"),y=a.useNamespace("menu-item");b||f.throwError(Z,"can not inject root menu");const{parentMenu:c,indexPath:E}=te(t,e.toRef(s,"index")),N=e.inject(`${U}${c.value.uid}`);N||f.throwError(Z,"can not inject sub menu");const C=e.computed(()=>s.index===b.activeIndex),p=e.reactive({index:s.index,indexPath:E,active:C}),x=()=>{s.disabled||(b.handleMenuItemClick({index:s.index,indexPath:E.value,route:s.route}),i("click",p))};return e.onMounted(()=>{N.addSubMenu(p),b.addMenuItem(p)}),e.onBeforeUnmount(()=>{N.removeSubMenu(p),b.removeMenuItem(p)}),o({parentMenu:c,rootMenu:b,active:C,nsMenu:h,nsMenuItem:y,handleClick:x}),(M,_)=>(e.openBlock(),e.createElementBlock("li",{class:e.normalizeClass([e.unref(y).b(),e.unref(y).is("active",e.unref(C)),e.unref(y).is("disabled",M.disabled)]),role:"menuitem",tabindex:"-1",onClick:x},[e.unref(c).type.name==="ElMenu"&&e.unref(b).props.collapse&&M.$slots.title?(e.openBlock(),e.createBlock(e.unref(ee.ElTooltip),{key:0,effect:e.unref(b).props.popperEffect,placement:"right","fallback-placements":["left"],persistent:e.unref(b).props.persistent,"focus-on-target":""},{content:e.withCtx(()=>[e.renderSlot(M.$slots,"title")]),default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(e.unref(h).be("tooltip","trigger"))},[e.renderSlot(M.$slots,"default")],2)]),_:3},8,["effect","persistent"])):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.renderSlot(M.$slots,"default"),e.renderSlot(M.$slots,"title")],64))],2))}});var oe=a._export_sfc(Ne,[["__file","menu-item.vue"]]);const we={title:String},ke=e.defineComponent({name:"ElMenuItemGroup"}),Oe=e.defineComponent({...ke,props:we,setup(n){const o=a.useNamespace("menu-item-group");return(i,s)=>(e.openBlock(),e.createElementBlock("li",{class:e.normalizeClass(e.unref(o).b())},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(o).e("title"))},[i.$slots.title?e.renderSlot(i.$slots,"title",{key:1}):(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(i.title),1)],64))],2),e.createElementVNode("ul",null,[e.renderSlot(i.$slots,"default")])],2))}});var se=a._export_sfc(Oe,[["__file","menu-item-group.vue"]]);const Pe=a.withInstall(Ie,{MenuItem:oe,MenuItemGroup:se,SubMenu:X}),Be=a.withNoopInstall(oe);a.withNoopInstall(se);a.withNoopInstall(X);exports.ElMenu=Pe;exports.ElMenuItem=Be;
|