使用VUE重构项目
Some checks failed
build / build (api, amd64, linux) (push) Failing after -51s
build / build (api, arm64, linux) (push) Failing after -52s
build / build (api.exe, amd64, windows) (push) Failing after -51s

This commit is contained in:
2026-04-20 00:19:11 +08:00
parent c080bb8d4a
commit db7f1ba82f
12743 changed files with 1250466 additions and 359982 deletions

View File

@@ -0,0 +1,16 @@
import { SFCWithInstall } from "../../utils/vue/typescript.js";
import "../../utils/index.js";
import { CollapseActiveName, CollapseEmits, CollapseIconPositionType, CollapseModelValue, CollapseProps, CollapsePropsPublic, collapseEmits, collapseProps, emitChangeFn } from "./src/collapse.js";
import { _default } from "./src/collapse.vue.js";
import { CollapseItemProps, CollapseItemPropsPublic, collapseItemProps } from "./src/collapse-item.js";
import { _default as _default$1 } from "./src/collapse-item.vue.js";
import { CollapseContext, collapseContextKey } from "./src/constants.js";
import { CollapseInstance, CollapseItemInstance } from "./src/instance.js";
//#region ../../packages/components/collapse/index.d.ts
declare const ElCollapse: SFCWithInstall<typeof _default> & {
CollapseItem: typeof _default$1;
};
declare const ElCollapseItem: SFCWithInstall<typeof _default$1>;
//#endregion
export { CollapseActiveName, CollapseContext, CollapseEmits, CollapseIconPositionType, type CollapseInstance, type CollapseItemInstance, CollapseItemProps, CollapseItemPropsPublic, CollapseModelValue, CollapseProps, CollapsePropsPublic, ElCollapse, ElCollapse as default, ElCollapseItem, collapseContextKey, collapseEmits, collapseItemProps, collapseProps, emitChangeFn };

View File

@@ -0,0 +1,22 @@
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
const require_install = require('../../utils/vue/install.js');
const require_collapse = require('./src/collapse.js');
const require_constants = require('./src/constants.js');
const require_collapse$1 = require('./src/collapse2.js');
const require_collapse_item = require('./src/collapse-item.js');
const require_collapse_item$1 = require('./src/collapse-item2.js');
//#region ../../packages/components/collapse/index.ts
const ElCollapse = require_install.withInstall(require_collapse$1.default, { CollapseItem: require_collapse_item$1.default });
const ElCollapseItem = require_install.withNoopInstall(require_collapse_item$1.default);
//#endregion
exports.ElCollapse = ElCollapse;
exports.default = ElCollapse;
exports.ElCollapseItem = ElCollapseItem;
exports.collapseContextKey = require_constants.collapseContextKey;
exports.collapseEmits = require_collapse.collapseEmits;
exports.collapseItemProps = require_collapse_item.collapseItemProps;
exports.collapseProps = require_collapse.collapseProps;
exports.emitChangeFn = require_collapse.emitChangeFn;
//# sourceMappingURL=index.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"index.js","names":["withInstall","Collapse","withNoopInstall","CollapseItem"],"sources":["../../../../../packages/components/collapse/index.ts"],"sourcesContent":["import { withInstall, withNoopInstall } from '@element-plus/utils'\nimport Collapse from './src/collapse.vue'\nimport CollapseItem from './src/collapse-item.vue'\n\nimport type { SFCWithInstall } from '@element-plus/utils'\n\nexport const ElCollapse: SFCWithInstall<typeof Collapse> & {\n CollapseItem: typeof CollapseItem\n} = withInstall(Collapse, {\n CollapseItem,\n})\nexport default ElCollapse\nexport const ElCollapseItem: SFCWithInstall<typeof CollapseItem> =\n withNoopInstall(CollapseItem)\n\nexport * from './src/collapse'\nexport * from './src/collapse-item'\nexport * from './src/constants'\nexport type { CollapseInstance, CollapseItemInstance } from './src/instance'\n"],"mappings":";;;;;;;;;AAMA,MAAa,aAETA,4BAAYC,4BAAU,EACxB,+CACD,CAAC;AAEF,MAAa,iBACXC,gCAAgBC,gCAAa"}

View File

@@ -0,0 +1,41 @@
import { IconPropType } from "../../../utils/vue/icon.js";
import { EpPropFinalized } from "../../../utils/vue/props/types.js";
import "../../../utils/index.js";
import { CollapseActiveName } from "./collapse.js";
import * as vue from "vue";
import { ExtractPublicPropTypes } from "vue";
//#region ../../packages/components/collapse/src/collapse-item.d.ts
interface CollapseItemProps {
/**
* @description title of the panel
*/
title?: string;
/**
* @description unique identification of the panel
*/
name?: CollapseActiveName;
/**
* @description icon of the collapse item
*/
icon?: IconPropType;
/**
* @description disable the collapse item
*/
disabled?: boolean;
}
/**
* @deprecated Removed after 3.0.0, Use `CollapseItemProps` instead.
*/
declare const collapseItemProps: {
readonly title: EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
readonly name: EpPropFinalized<(new (...args: any[]) => string | number) | (() => CollapseActiveName) | (((new (...args: any[]) => string | number) | (() => CollapseActiveName)) | null)[], unknown, unknown, undefined, boolean>;
readonly icon: EpPropFinalized<(new (...args: any[]) => (string | vue.Component) & {}) | (() => string | vue.Component) | (((new (...args: any[]) => (string | vue.Component) & {}) | (() => string | vue.Component)) | null)[], unknown, unknown, vue.DefineComponent<{}, void, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<{}>, {}, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>, boolean>;
readonly disabled: BooleanConstructor;
};
/**
* @deprecated Removed after 3.0.0, Use `CollapseItemProps` instead.
*/
type CollapseItemPropsPublic = ExtractPublicPropTypes<typeof collapseItemProps>;
//#endregion
export { CollapseItemProps, CollapseItemPropsPublic, collapseItemProps };

View File

@@ -0,0 +1,29 @@
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
const require_runtime = require('../../../_virtual/_rolldown/runtime.js');
const require_runtime$1 = require('../../../utils/vue/props/runtime.js');
const require_icon = require('../../../utils/vue/icon.js');
let _element_plus_icons_vue = require("@element-plus/icons-vue");
//#region ../../packages/components/collapse/src/collapse-item.ts
/**
* @deprecated Removed after 3.0.0, Use `CollapseItemProps` instead.
*/
const collapseItemProps = require_runtime$1.buildProps({
title: {
type: String,
default: ""
},
name: {
type: require_runtime$1.definePropType([String, Number]),
default: void 0
},
icon: {
type: require_icon.iconPropType,
default: _element_plus_icons_vue.ArrowRight
},
disabled: Boolean
});
//#endregion
exports.collapseItemProps = collapseItemProps;
//# sourceMappingURL=collapse-item.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"collapse-item.js","names":["buildProps","definePropType","iconPropType","ArrowRight"],"sources":["../../../../../../packages/components/collapse/src/collapse-item.ts"],"sourcesContent":["import { buildProps, definePropType, iconPropType } from '@element-plus/utils'\nimport { ArrowRight } from '@element-plus/icons-vue'\n\nimport type { ExtractPublicPropTypes } from 'vue'\nimport type { IconPropType } from '@element-plus/utils'\nimport type { CollapseActiveName } from './collapse'\n\nexport interface CollapseItemProps {\n /**\n * @description title of the panel\n */\n title?: string\n /**\n * @description unique identification of the panel\n */\n name?: CollapseActiveName\n /**\n * @description icon of the collapse item\n */\n icon?: IconPropType\n /**\n * @description disable the collapse item\n */\n disabled?: boolean\n}\n\n/**\n * @deprecated Removed after 3.0.0, Use `CollapseItemProps` instead.\n */\nexport const collapseItemProps = buildProps({\n /**\n * @description title of the panel\n */\n title: {\n type: String,\n default: '',\n },\n /**\n * @description unique identification of the panel\n */\n name: {\n type: definePropType<CollapseActiveName>([String, Number]),\n default: undefined,\n },\n /**\n * @description icon of the collapse item\n */\n icon: {\n type: iconPropType,\n default: ArrowRight,\n },\n /**\n * @description disable the collapse item\n */\n disabled: Boolean,\n} as const)\n\n/**\n * @deprecated Removed after 3.0.0, Use `CollapseItemProps` instead.\n */\nexport type CollapseItemPropsPublic = ExtractPublicPropTypes<\n typeof collapseItemProps\n>\n"],"mappings":";;;;;;;;;;AA6BA,MAAa,oBAAoBA,6BAAW;CAI1C,OAAO;EACL,MAAM;EACN,SAAS;EACV;CAID,MAAM;EACJ,MAAMC,iCAAmC,CAAC,QAAQ,OAAO,CAAC;EAC1D,SAAS;EACV;CAID,MAAM;EACJ,MAAMC;EACN,SAASC;EACV;CAID,UAAU;CACX,CAAU"}

View File

@@ -0,0 +1,33 @@
import { IconPropType } from "../../../utils/vue/icon.js";
import "../../../utils/index.js";
import { CollapseItemProps } from "./collapse-item.js";
import * as vue from "vue";
//#region ../../packages/components/collapse/src/collapse-item.vue.d.ts
declare var __VLS_1: {
isActive: boolean | undefined;
}, __VLS_3: {
isActive: boolean | undefined;
}, __VLS_22: {};
type __VLS_Slots = {} & {
title?: (props: typeof __VLS_1) => any;
} & {
icon?: (props: typeof __VLS_3) => any;
} & {
default?: (props: typeof __VLS_22) => any;
};
declare const __VLS_base: vue.DefineComponent<CollapseItemProps, {
/** @description current collapse-item whether active */isActive: vue.ComputedRef<boolean | undefined>;
}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<CollapseItemProps> & Readonly<{}>, {
title: string;
icon: IconPropType;
}, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
declare const _default: typeof __VLS_export;
type __VLS_WithSlots<T, S> = T & {
new (): {
$slots: S;
};
};
//#endregion
export { _default };

View File

@@ -0,0 +1,68 @@
const require_runtime = require('../../../_virtual/_rolldown/runtime.js');
const require_index = require('../../icon/index.js');
const require_collapse_item = require('./collapse-item.js');
const require_index$1 = require('../../collapse-transition/index.js');
const require_use_collapse_item = require('./use-collapse-item.js');
let vue = require("vue");
//#region ../../packages/components/collapse/src/collapse-item.vue?vue&type=script&setup=true&lang.ts
const _hoisted_1 = [
"id",
"aria-expanded",
"aria-controls",
"aria-describedby",
"tabindex",
"aria-disabled"
];
const _hoisted_2 = [
"id",
"aria-hidden",
"aria-labelledby"
];
var collapse_item_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({
name: "ElCollapseItem",
__name: "collapse-item",
props: require_collapse_item.collapseItemProps,
setup(__props, { expose: __expose }) {
const props = __props;
const { focusing, id, isActive, handleFocus, handleHeaderClick, handleEnterClick } = require_use_collapse_item.useCollapseItem(props);
const { arrowKls, headKls, rootKls, itemTitleKls, itemWrapperKls, itemContentKls, scopedContentId, scopedHeadId } = require_use_collapse_item.useCollapseItemDOM(props, {
focusing,
isActive,
id
});
__expose({ isActive });
return (_ctx, _cache) => {
return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(rootKls)) }, [(0, vue.createElementVNode)("div", {
id: (0, vue.unref)(scopedHeadId),
class: (0, vue.normalizeClass)((0, vue.unref)(headKls)),
"aria-expanded": (0, vue.unref)(isActive),
"aria-controls": (0, vue.unref)(scopedContentId),
"aria-describedby": (0, vue.unref)(scopedContentId),
tabindex: __props.disabled ? void 0 : 0,
"aria-disabled": __props.disabled,
role: "button",
onClick: _cache[0] || (_cache[0] = (...args) => (0, vue.unref)(handleHeaderClick) && (0, vue.unref)(handleHeaderClick)(...args)),
onKeydown: _cache[1] || (_cache[1] = (0, vue.withKeys)((0, vue.withModifiers)((...args) => (0, vue.unref)(handleEnterClick) && (0, vue.unref)(handleEnterClick)(...args), ["stop"]), ["space", "enter"])),
onFocus: _cache[2] || (_cache[2] = (...args) => (0, vue.unref)(handleFocus) && (0, vue.unref)(handleFocus)(...args)),
onBlur: _cache[3] || (_cache[3] = ($event) => focusing.value = false)
}, [(0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)((0, vue.unref)(itemTitleKls)) }, [(0, vue.renderSlot)(_ctx.$slots, "title", { isActive: (0, vue.unref)(isActive) }, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)(__props.title), 1)])], 2), (0, vue.renderSlot)(_ctx.$slots, "icon", { isActive: (0, vue.unref)(isActive) }, () => [(0, vue.createVNode)((0, vue.unref)(require_index.ElIcon), { class: (0, vue.normalizeClass)((0, vue.unref)(arrowKls)) }, {
default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(__props.icon)))]),
_: 1
}, 8, ["class"])])], 42, _hoisted_1), (0, vue.createVNode)((0, vue.unref)(require_index$1.ElCollapseTransition), null, {
default: (0, vue.withCtx)(() => [(0, vue.withDirectives)((0, vue.createElementVNode)("div", {
id: (0, vue.unref)(scopedContentId),
role: "region",
class: (0, vue.normalizeClass)((0, vue.unref)(itemWrapperKls)),
"aria-hidden": !(0, vue.unref)(isActive),
"aria-labelledby": (0, vue.unref)(scopedHeadId)
}, [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(itemContentKls)) }, [(0, vue.renderSlot)(_ctx.$slots, "default")], 2)], 10, _hoisted_2), [[vue.vShow, (0, vue.unref)(isActive)]])]),
_: 3
})], 2);
};
}
});
//#endregion
exports.default = collapse_item_vue_vue_type_script_setup_true_lang_default;
//# sourceMappingURL=collapse-item.vue_vue_type_script_setup_true_lang.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"collapse-item.vue_vue_type_script_setup_true_lang.js","names":[],"sources":["../../../../../../packages/components/collapse/src/collapse-item.vue"],"sourcesContent":["<template>\n <div :class=\"rootKls\">\n <div\n :id=\"scopedHeadId\"\n :class=\"headKls\"\n :aria-expanded=\"isActive\"\n :aria-controls=\"scopedContentId\"\n :aria-describedby=\"scopedContentId\"\n :tabindex=\"disabled ? undefined : 0\"\n :aria-disabled=\"disabled\"\n role=\"button\"\n @click=\"handleHeaderClick\"\n @keydown.space.enter.stop=\"handleEnterClick\"\n @focus=\"handleFocus\"\n @blur=\"focusing = false\"\n >\n <span :class=\"itemTitleKls\">\n <slot name=\"title\" :is-active=\"isActive\">{{ title }}</slot>\n </span>\n <slot name=\"icon\" :is-active=\"isActive\">\n <el-icon :class=\"arrowKls\">\n <component :is=\"icon\" />\n </el-icon>\n </slot>\n </div>\n\n <el-collapse-transition>\n <div\n v-show=\"isActive\"\n :id=\"scopedContentId\"\n role=\"region\"\n :class=\"itemWrapperKls\"\n :aria-hidden=\"!isActive\"\n :aria-labelledby=\"scopedHeadId\"\n >\n <div :class=\"itemContentKls\">\n <slot />\n </div>\n </div>\n </el-collapse-transition>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { markRaw } from 'vue'\nimport ElCollapseTransition from '@element-plus/components/collapse-transition'\nimport ElIcon from '@element-plus/components/icon'\nimport { ArrowRight } from '@element-plus/icons-vue'\nimport { useCollapseItem, useCollapseItemDOM } from './use-collapse-item'\n\nimport type { CollapseItemProps } from './collapse-item'\n\ndefineOptions({\n name: 'ElCollapseItem',\n})\n\nconst props = withDefaults(defineProps<CollapseItemProps>(), {\n title: '',\n icon: markRaw(ArrowRight),\n})\nconst {\n focusing,\n id,\n isActive,\n handleFocus,\n handleHeaderClick,\n handleEnterClick,\n} = useCollapseItem(props)\n\nconst {\n arrowKls,\n headKls,\n rootKls,\n itemTitleKls,\n itemWrapperKls,\n itemContentKls,\n scopedContentId,\n scopedHeadId,\n} = useCollapseItemDOM(props, { focusing, isActive, id })\n\ndefineExpose({\n /** @description current collapse-item whether active */\n isActive,\n})\n</script>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;EAwDA,MAAM,QAAQ;EAId,MAAM,EACJ,UACA,IACA,UACA,aACA,mBACA,qBACE,0CAAgB,MAAK;EAEzB,MAAM,EACJ,UACA,SACA,SACA,cACA,gBACA,gBACA,iBACA,iBACE,6CAAmB,OAAO;GAAE;GAAU;GAAU;GAAI,CAAA;AAExD,WAAa,EAEX,UACD,CAAA;;4DA3CO,OAAA,EAvCA,8CAAO,QAAO,CAAA,iCAuBZ,OAAA;IArBH,mBAAI,aAAY;IAChB,8CAAO,QAAO,CAAA;IACd,gCAAe,SAAQ;IACvB,gCAAe,gBAAe;IAC9B,mCAAkB,gBAAe;IACjC,UAAU,QAAA,WAAW,SAAS;IAC9B,iBAAe,QAAA;IAChB,MAAK;IACJ,SAAK,OAAA,OAAA,OAAA,iCAAE,kBAAA,mBAAA,kBAAA,CAAA,GAAA,KAAiB;IACxB,WAAO,OAAA,OAAA,OAAA,0EAAmB,iBAAA,mBAAA,iBAAA,CAAA,GAAA,KAAgB,EAAA,CAAA,OAAA,CAAA,EAAA,CAAA,SAAA,QAAA,CAAA;IAC1C,SAAK,OAAA,OAAA,OAAA,iCAAE,YAAA,mBAAA,YAAA,CAAA,GAAA,KAAW;IAClB,QAAI,OAAA,OAAA,OAAA,MAAA,WAAE,SAAA,QAAQ;mCAIR,QAAA,EAFA,8CAAO,aAAY,CAAA,yBACmC,KAAA,QAAA,SAAA,EAAvC,yBAAW,SAAQ,EAAA,QAAoB,mDAAf,QAAA,MAAK,EAAA,EAAA,6BAM5C,KAAA,QAAA,QAAA,EAJY,yBAAW,SAAQ,EAAA,QAI/B,qCADK,qBAAA,EAAA,EAFA,8CAAO,SAAQ,CAAA;oCACC,8EAAR,QAAA,KAAI,CAAA;;6EAkBD,qCAAA,EAAA,MAAA;oCADjB,qDAAA,OAAA;KATH,mBAAI,gBAAe;KACpB,MAAK;KACJ,8CAAO,eAAc,CAAA;KACrB,eAAW,gBAAG,SAAQ;KACtB,kCAAiB,aAAA;oCAIZ,OAAA,EAFA,8CAAO,eAAc,CAAA,yBACjB,KAAA,QAAA,UAAA,qDARF,SAAQ,CAAA"}

View File

@@ -0,0 +1,9 @@
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
const require_collapse_item_vue_vue_type_script_setup_true_lang = require('./collapse-item.vue_vue_type_script_setup_true_lang.js');
//#region ../../packages/components/collapse/src/collapse-item.vue
var collapse_item_default = require_collapse_item_vue_vue_type_script_setup_true_lang.default;
//#endregion
exports.default = collapse_item_default;
//# sourceMappingURL=collapse-item2.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"collapse-item2.js","names":[],"sources":["../../../../../../packages/components/collapse/src/collapse-item.vue"],"sourcesContent":["<template>\n <div :class=\"rootKls\">\n <div\n :id=\"scopedHeadId\"\n :class=\"headKls\"\n :aria-expanded=\"isActive\"\n :aria-controls=\"scopedContentId\"\n :aria-describedby=\"scopedContentId\"\n :tabindex=\"disabled ? undefined : 0\"\n :aria-disabled=\"disabled\"\n role=\"button\"\n @click=\"handleHeaderClick\"\n @keydown.space.enter.stop=\"handleEnterClick\"\n @focus=\"handleFocus\"\n @blur=\"focusing = false\"\n >\n <span :class=\"itemTitleKls\">\n <slot name=\"title\" :is-active=\"isActive\">{{ title }}</slot>\n </span>\n <slot name=\"icon\" :is-active=\"isActive\">\n <el-icon :class=\"arrowKls\">\n <component :is=\"icon\" />\n </el-icon>\n </slot>\n </div>\n\n <el-collapse-transition>\n <div\n v-show=\"isActive\"\n :id=\"scopedContentId\"\n role=\"region\"\n :class=\"itemWrapperKls\"\n :aria-hidden=\"!isActive\"\n :aria-labelledby=\"scopedHeadId\"\n >\n <div :class=\"itemContentKls\">\n <slot />\n </div>\n </div>\n </el-collapse-transition>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { markRaw } from 'vue'\nimport ElCollapseTransition from '@element-plus/components/collapse-transition'\nimport ElIcon from '@element-plus/components/icon'\nimport { ArrowRight } from '@element-plus/icons-vue'\nimport { useCollapseItem, useCollapseItemDOM } from './use-collapse-item'\n\nimport type { CollapseItemProps } from './collapse-item'\n\ndefineOptions({\n name: 'ElCollapseItem',\n})\n\nconst props = withDefaults(defineProps<CollapseItemProps>(), {\n title: '',\n icon: markRaw(ArrowRight),\n})\nconst {\n focusing,\n id,\n isActive,\n handleFocus,\n handleHeaderClick,\n handleEnterClick,\n} = useCollapseItem(props)\n\nconst {\n arrowKls,\n headKls,\n rootKls,\n itemTitleKls,\n itemWrapperKls,\n itemContentKls,\n scopedContentId,\n scopedHeadId,\n} = useCollapseItemDOM(props, { focusing, isActive, id })\n\ndefineExpose({\n /** @description current collapse-item whether active */\n isActive,\n})\n</script>\n"],"mappings":""}

View File

@@ -0,0 +1,54 @@
import { EpPropFinalized } from "../../../utils/vue/props/types.js";
import { Arrayable, Awaitable } from "../../../utils/typescript.js";
import "../../../utils/index.js";
import * as vue from "vue";
import { ExtractPublicPropTypes } from "vue";
//#region ../../packages/components/collapse/src/collapse.d.ts
type CollapseActiveName = string | number;
type CollapseModelValue = Arrayable<CollapseActiveName>;
type CollapseIconPositionType = 'left' | 'right';
declare const emitChangeFn: (value: CollapseModelValue) => value is string | number | CollapseActiveName[];
interface CollapseProps {
/**
* @description whether to activate accordion mode
*/
accordion?: boolean;
/**
* @description currently active panel, the type is `string` in accordion mode, otherwise it is `array`
*/
modelValue?: CollapseModelValue;
/**
* @description set expand icon position
*/
expandIconPosition?: CollapseIconPositionType;
/**
* @description before-collapse hook before the collapse state changes. If `false` is returned or a `Promise` is returned and then is rejected, will stop collapsing
*/
beforeCollapse?: (name: CollapseActiveName) => Awaitable<boolean>;
}
/**
* @deprecated Removed after 3.0.0, Use `CollapseProps` instead.
*/
declare const collapseProps: {
readonly accordion: BooleanConstructor;
readonly modelValue: EpPropFinalized<(new (...args: any[]) => string | number | CollapseActiveName[]) | (() => CollapseModelValue) | (((new (...args: any[]) => string | number | CollapseActiveName[]) | (() => CollapseModelValue)) | null)[], unknown, unknown, () => [], boolean>;
readonly expandIconPosition: EpPropFinalized<(new (...args: any[]) => "left" | "right") | (() => CollapseIconPositionType) | (((new (...args: any[]) => "left" | "right") | (() => CollapseIconPositionType)) | null)[], unknown, unknown, "right", boolean>;
readonly beforeCollapse: {
readonly type: vue.PropType<(name: CollapseActiveName) => Awaitable<boolean>>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
};
/**
* @deprecated Removed after 3.0.0, Use `CollapseProps` instead.
*/
type CollapsePropsPublic = ExtractPublicPropTypes<typeof collapseProps>;
declare const collapseEmits: {
"update:modelValue": (value: CollapseModelValue) => value is string | number | CollapseActiveName[];
change: (value: CollapseModelValue) => value is string | number | CollapseActiveName[];
};
type CollapseEmits = typeof collapseEmits;
//#endregion
export { CollapseActiveName, CollapseEmits, CollapseIconPositionType, CollapseModelValue, CollapseProps, CollapsePropsPublic, collapseEmits, collapseProps, emitChangeFn };

View File

@@ -0,0 +1,39 @@
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
const require_runtime = require('../../../_virtual/_rolldown/runtime.js');
const require_event = require('../../../constants/event.js');
const require_types = require('../../../utils/types.js');
const require_runtime$1 = require('../../../utils/vue/props/runtime.js');
const require_typescript = require('../../../utils/typescript.js');
let _vue_shared = require("@vue/shared");
//#region ../../packages/components/collapse/src/collapse.ts
const emitChangeFn = (value) => require_types.isNumber(value) || (0, _vue_shared.isString)(value) || (0, _vue_shared.isArray)(value);
/**
* @deprecated Removed after 3.0.0, Use `CollapseProps` instead.
*/
const collapseProps = require_runtime$1.buildProps({
accordion: Boolean,
modelValue: {
type: require_runtime$1.definePropType([
Array,
String,
Number
]),
default: () => require_typescript.mutable([])
},
expandIconPosition: {
type: require_runtime$1.definePropType([String]),
default: "right"
},
beforeCollapse: { type: require_runtime$1.definePropType(Function) }
});
const collapseEmits = {
[require_event.UPDATE_MODEL_EVENT]: emitChangeFn,
[require_event.CHANGE_EVENT]: emitChangeFn
};
//#endregion
exports.collapseEmits = collapseEmits;
exports.collapseProps = collapseProps;
exports.emitChangeFn = emitChangeFn;
//# sourceMappingURL=collapse.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"collapse.js","names":["isNumber","buildProps","definePropType","mutable","UPDATE_MODEL_EVENT","CHANGE_EVENT"],"sources":["../../../../../../packages/components/collapse/src/collapse.ts"],"sourcesContent":["import {\n buildProps,\n definePropType,\n isArray,\n isNumber,\n isString,\n mutable,\n} from '@element-plus/utils'\nimport { CHANGE_EVENT, UPDATE_MODEL_EVENT } from '@element-plus/constants'\n\nimport type { ExtractPublicPropTypes } from 'vue'\nimport type { Arrayable, Awaitable } from '@element-plus/utils'\n\nexport type CollapseActiveName = string | number\nexport type CollapseModelValue = Arrayable<CollapseActiveName>\n\nexport type CollapseIconPositionType = 'left' | 'right'\n\nexport const emitChangeFn = (value: CollapseModelValue) =>\n isNumber(value) || isString(value) || isArray(value)\n\nexport interface CollapseProps {\n /**\n * @description whether to activate accordion mode\n */\n accordion?: boolean\n /**\n * @description currently active panel, the type is `string` in accordion mode, otherwise it is `array`\n */\n modelValue?: CollapseModelValue\n /**\n * @description set expand icon position\n */\n expandIconPosition?: CollapseIconPositionType\n /**\n * @description before-collapse hook before the collapse state changes. If `false` is returned or a `Promise` is returned and then is rejected, will stop collapsing\n */\n beforeCollapse?: (name: CollapseActiveName) => Awaitable<boolean>\n}\n\n/**\n * @deprecated Removed after 3.0.0, Use `CollapseProps` instead.\n */\nexport const collapseProps = buildProps({\n /**\n * @description whether to activate accordion mode\n */\n accordion: Boolean,\n /**\n * @description currently active panel, the type is `string` in accordion mode, otherwise it is `array`\n */\n modelValue: {\n type: definePropType<CollapseModelValue>([Array, String, Number]),\n default: () => mutable([] as const),\n },\n /**\n * @description set expand icon position\n */\n expandIconPosition: {\n type: definePropType<CollapseIconPositionType>([String]),\n default: 'right',\n },\n /**\n * @description before-collapse hook before the collapse state changes. If `false` is returned or a `Promise` is returned and then is rejected, will stop collapsing\n */\n beforeCollapse: {\n type: definePropType<(name: CollapseActiveName) => Awaitable<boolean>>(\n Function\n ),\n },\n} as const)\n\n/**\n * @deprecated Removed after 3.0.0, Use `CollapseProps` instead.\n */\nexport type CollapsePropsPublic = ExtractPublicPropTypes<typeof collapseProps>\n\nexport const collapseEmits = {\n [UPDATE_MODEL_EVENT]: emitChangeFn,\n [CHANGE_EVENT]: emitChangeFn,\n}\nexport type CollapseEmits = typeof collapseEmits\n"],"mappings":";;;;;;;;;AAkBA,MAAa,gBAAgB,UAC3BA,uBAAS,MAAM,8BAAa,MAAM,6BAAY,MAAM;;;;AAwBtD,MAAa,gBAAgBC,6BAAW;CAItC,WAAW;CAIX,YAAY;EACV,MAAMC,iCAAmC;GAAC;GAAO;GAAQ;GAAO,CAAC;EACjE,eAAeC,2BAAQ,EAAE,CAAU;EACpC;CAID,oBAAoB;EAClB,MAAMD,iCAAyC,CAAC,OAAO,CAAC;EACxD,SAAS;EACV;CAID,gBAAgB,EACd,MAAMA,iCACJ,SACD,EACF;CACF,CAAU;AAOX,MAAa,gBAAgB;EAC1BE,mCAAqB;EACrBC,6BAAe;CACjB"}

View File

@@ -0,0 +1,30 @@
import { CollapseActiveName, CollapseIconPositionType, CollapseModelValue, CollapseProps } from "./collapse.js";
import * as vue from "vue";
//#region ../../packages/components/collapse/src/collapse.vue.d.ts
declare var __VLS_1: {};
type __VLS_Slots = {} & {
default?: (props: typeof __VLS_1) => any;
};
declare const __VLS_base: vue.DefineComponent<CollapseProps, {
/** @description active names */activeNames: vue.Ref<(string | number)[], (string | number)[]>; /** @description set active names */
setActiveNames: (_activeNames: CollapseActiveName[]) => void;
}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
change: (value: CollapseModelValue) => void;
"update:modelValue": (value: CollapseModelValue) => void;
}, string, vue.PublicProps, Readonly<CollapseProps> & Readonly<{
onChange?: ((value: CollapseModelValue) => any) | undefined;
"onUpdate:modelValue"?: ((value: CollapseModelValue) => any) | undefined;
}>, {
modelValue: CollapseModelValue;
expandIconPosition: CollapseIconPositionType;
}, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
declare const _default: typeof __VLS_export;
type __VLS_WithSlots<T, S> = T & {
new (): {
$slots: S;
};
};
//#endregion
export { _default };

View File

@@ -0,0 +1,28 @@
const require_runtime = require('../../../_virtual/_rolldown/runtime.js');
const require_collapse = require('./collapse.js');
const require_use_collapse = require('./use-collapse.js');
let vue = require("vue");
//#region ../../packages/components/collapse/src/collapse.vue?vue&type=script&setup=true&lang.ts
var collapse_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({
name: "ElCollapse",
__name: "collapse",
props: require_collapse.collapseProps,
emits: require_collapse.collapseEmits,
setup(__props, { expose: __expose, emit: __emit }) {
const props = __props;
const { activeNames, setActiveNames } = require_use_collapse.useCollapse(props, __emit);
const { rootKls } = require_use_collapse.useCollapseDOM(props);
__expose({
activeNames,
setActiveNames
});
return (_ctx, _cache) => {
return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(rootKls)) }, [(0, vue.renderSlot)(_ctx.$slots, "default")], 2);
};
}
});
//#endregion
exports.default = collapse_vue_vue_type_script_setup_true_lang_default;
//# sourceMappingURL=collapse.vue_vue_type_script_setup_true_lang.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"collapse.vue_vue_type_script_setup_true_lang.js","names":[],"sources":["../../../../../../packages/components/collapse/src/collapse.vue"],"sourcesContent":["<template>\n <div :class=\"rootKls\">\n <slot />\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { collapseEmits } from './collapse'\nimport { useCollapse, useCollapseDOM } from './use-collapse'\n\nimport type { CollapseProps } from './collapse'\n\ndefineOptions({\n name: 'ElCollapse',\n})\nconst props = withDefaults(defineProps<CollapseProps>(), {\n modelValue: () => [],\n expandIconPosition: 'right',\n})\nconst emit = defineEmits(collapseEmits)\n\nconst { activeNames, setActiveNames } = useCollapse(props, emit)\n\nconst { rootKls } = useCollapseDOM(props)\n\ndefineExpose({\n /** @description active names */\n activeNames,\n /** @description set active names */\n setActiveNames,\n})\n</script>\n"],"mappings":";;;;;;;;;;;;EAeA,MAAM,QAAQ;EAMd,MAAM,EAAE,aAAa,mBAAmB,iCAAY,OAFvC,OAEkD;EAE/D,MAAM,EAAE,YAAY,oCAAe,MAAK;AAExC,WAAa;GAEX;GAEA;GACD,CAAA;;4DA3BO,OAAA,EAFA,8CAAO,QAAO,CAAA,yBACV,KAAA,QAAA,UAAA"}

View File

@@ -0,0 +1,9 @@
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
const require_collapse_vue_vue_type_script_setup_true_lang = require('./collapse.vue_vue_type_script_setup_true_lang.js');
//#region ../../packages/components/collapse/src/collapse.vue
var collapse_default = require_collapse_vue_vue_type_script_setup_true_lang.default;
//#endregion
exports.default = collapse_default;
//# sourceMappingURL=collapse2.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"collapse2.js","names":[],"sources":["../../../../../../packages/components/collapse/src/collapse.vue"],"sourcesContent":["<template>\n <div :class=\"rootKls\">\n <slot />\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { collapseEmits } from './collapse'\nimport { useCollapse, useCollapseDOM } from './use-collapse'\n\nimport type { CollapseProps } from './collapse'\n\ndefineOptions({\n name: 'ElCollapse',\n})\nconst props = withDefaults(defineProps<CollapseProps>(), {\n modelValue: () => [],\n expandIconPosition: 'right',\n})\nconst emit = defineEmits(collapseEmits)\n\nconst { activeNames, setActiveNames } = useCollapse(props, emit)\n\nconst { rootKls } = useCollapseDOM(props)\n\ndefineExpose({\n /** @description active names */\n activeNames,\n /** @description set active names */\n setActiveNames,\n})\n</script>\n"],"mappings":""}

View File

@@ -0,0 +1,11 @@
import { CollapseActiveName } from "./collapse.js";
import { InjectionKey, Ref } from "vue";
//#region ../../packages/components/collapse/src/constants.d.ts
interface CollapseContext {
activeNames: Ref<CollapseActiveName[]>;
handleItemClick: (name: CollapseActiveName) => void;
}
declare const collapseContextKey: InjectionKey<CollapseContext>;
//#endregion
export { CollapseContext, collapseContextKey };

View File

@@ -0,0 +1,8 @@
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
//#region ../../packages/components/collapse/src/constants.ts
const collapseContextKey = Symbol("collapseContextKey");
//#endregion
exports.collapseContextKey = collapseContextKey;
//# sourceMappingURL=constants.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"constants.js","names":[],"sources":["../../../../../../packages/components/collapse/src/constants.ts"],"sourcesContent":["import type { InjectionKey, Ref } from 'vue'\nimport type { CollapseActiveName } from './collapse'\n\nexport interface CollapseContext {\n activeNames: Ref<CollapseActiveName[]>\n handleItemClick: (name: CollapseActiveName) => void\n}\n\nexport const collapseContextKey: InjectionKey<CollapseContext> =\n Symbol('collapseContextKey')\n"],"mappings":";;;AAQA,MAAa,qBACX,OAAO,qBAAqB"}

View File

@@ -0,0 +1,8 @@
import { _default } from "./collapse.vue.js";
import { _default as _default$1 } from "./collapse-item.vue.js";
//#region ../../packages/components/collapse/src/instance.d.ts
type CollapseInstance = InstanceType<typeof _default> & unknown;
type CollapseItemInstance = InstanceType<typeof _default$1> & unknown;
//#endregion
export { CollapseInstance, CollapseItemInstance };

View File

@@ -0,0 +1 @@
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });

View File

@@ -0,0 +1,75 @@
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
const require_runtime = require('../../../_virtual/_rolldown/runtime.js');
const require_index = require('../../../hooks/use-namespace/index.js');
const require_index$1 = require('../../../hooks/use-id/index.js');
const require_constants = require('./constants.js');
let vue = require("vue");
//#region ../../packages/components/collapse/src/use-collapse-item.ts
const useCollapseItem = (props) => {
const collapse = (0, vue.inject)(require_constants.collapseContextKey);
const { namespace } = require_index.useNamespace("collapse");
const focusing = (0, vue.ref)(false);
const isClick = (0, vue.ref)(false);
const idInjection = require_index$1.useIdInjection();
const id = (0, vue.computed)(() => idInjection.current++);
const name = (0, vue.computed)(() => {
return props.name ?? `${namespace.value}-id-${idInjection.prefix}-${(0, vue.unref)(id)}`;
});
const isActive = (0, vue.computed)(() => collapse?.activeNames.value.includes((0, vue.unref)(name)));
const handleFocus = () => {
setTimeout(() => {
if (!isClick.value) focusing.value = true;
else isClick.value = false;
}, 50);
};
const handleHeaderClick = (e) => {
if (props.disabled) return;
if (e.target?.closest("input, textarea, select")) return;
collapse?.handleItemClick((0, vue.unref)(name));
focusing.value = false;
isClick.value = true;
};
const handleEnterClick = (e) => {
if (e.target?.closest("input, textarea, select")) return;
e.preventDefault();
collapse?.handleItemClick((0, vue.unref)(name));
};
return {
focusing,
id,
isActive,
handleFocus,
handleHeaderClick,
handleEnterClick
};
};
const useCollapseItemDOM = (props, { focusing, isActive, id }) => {
const ns = require_index.useNamespace("collapse");
const rootKls = (0, vue.computed)(() => [
ns.b("item"),
ns.is("active", (0, vue.unref)(isActive)),
ns.is("disabled", props.disabled)
]);
const headKls = (0, vue.computed)(() => [
ns.be("item", "header"),
ns.is("active", (0, vue.unref)(isActive)),
{ focusing: (0, vue.unref)(focusing) && !props.disabled }
]);
const arrowKls = (0, vue.computed)(() => [ns.be("item", "arrow"), ns.is("active", (0, vue.unref)(isActive))]);
return {
itemTitleKls: (0, vue.computed)(() => [ns.be("item", "title")]),
arrowKls,
headKls,
rootKls,
itemWrapperKls: (0, vue.computed)(() => ns.be("item", "wrap")),
itemContentKls: (0, vue.computed)(() => ns.be("item", "content")),
scopedContentId: (0, vue.computed)(() => ns.b(`content-${(0, vue.unref)(id)}`)),
scopedHeadId: (0, vue.computed)(() => ns.b(`head-${(0, vue.unref)(id)}`))
};
};
//#endregion
exports.useCollapseItem = useCollapseItem;
exports.useCollapseItemDOM = useCollapseItemDOM;
//# sourceMappingURL=use-collapse-item.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"use-collapse-item.js","names":["collapseContextKey","useNamespace","useIdInjection"],"sources":["../../../../../../packages/components/collapse/src/use-collapse-item.ts"],"sourcesContent":["import { computed, inject, ref, unref } from 'vue'\nimport { useIdInjection, useNamespace } from '@element-plus/hooks'\nimport { collapseContextKey } from './constants'\n\nimport type { CollapseItemProps } from './collapse-item'\n\nexport const useCollapseItem = (props: CollapseItemProps) => {\n const collapse = inject(collapseContextKey)\n const { namespace } = useNamespace('collapse')\n\n const focusing = ref(false)\n const isClick = ref(false)\n const idInjection = useIdInjection()\n const id = computed(() => idInjection.current++)\n const name = computed(() => {\n return (\n props.name ?? `${namespace.value}-id-${idInjection.prefix}-${unref(id)}`\n )\n })\n\n const isActive = computed(() =>\n collapse?.activeNames.value.includes(unref(name))\n )\n\n const handleFocus = () => {\n setTimeout(() => {\n if (!isClick.value) {\n focusing.value = true\n } else {\n isClick.value = false\n }\n }, 50)\n }\n\n const handleHeaderClick = (e: MouseEvent) => {\n if (props.disabled) return\n const target = e.target as HTMLElement\n if (target?.closest('input, textarea, select')) return\n collapse?.handleItemClick(unref(name))\n focusing.value = false\n isClick.value = true\n }\n\n const handleEnterClick = (e: KeyboardEvent) => {\n const target = e.target as HTMLElement\n if (target?.closest('input, textarea, select')) return\n e.preventDefault()\n collapse?.handleItemClick(unref(name))\n }\n\n return {\n focusing,\n id,\n isActive,\n handleFocus,\n handleHeaderClick,\n handleEnterClick,\n }\n}\n\nexport const useCollapseItemDOM = (\n props: CollapseItemProps,\n { focusing, isActive, id }: Partial<ReturnType<typeof useCollapseItem>>\n) => {\n const ns = useNamespace('collapse')\n\n const rootKls = computed(() => [\n ns.b('item'),\n ns.is('active', unref(isActive)),\n ns.is('disabled', props.disabled),\n ])\n const headKls = computed(() => [\n ns.be('item', 'header'),\n ns.is('active', unref(isActive)),\n { focusing: unref(focusing) && !props.disabled },\n ])\n const arrowKls = computed(() => [\n ns.be('item', 'arrow'),\n ns.is('active', unref(isActive)),\n ])\n const itemTitleKls = computed(() => [ns.be('item', 'title')])\n const itemWrapperKls = computed(() => ns.be('item', 'wrap'))\n const itemContentKls = computed(() => ns.be('item', 'content'))\n const scopedContentId = computed(() => ns.b(`content-${unref(id)}`))\n const scopedHeadId = computed(() => ns.b(`head-${unref(id)}`))\n\n return {\n itemTitleKls,\n arrowKls,\n headKls,\n rootKls,\n itemWrapperKls,\n itemContentKls,\n scopedContentId,\n scopedHeadId,\n }\n}\n"],"mappings":";;;;;;;;AAMA,MAAa,mBAAmB,UAA6B;CAC3D,MAAM,2BAAkBA,qCAAmB;CAC3C,MAAM,EAAE,cAAcC,2BAAa,WAAW;CAE9C,MAAM,wBAAe,MAAM;CAC3B,MAAM,uBAAc,MAAM;CAC1B,MAAM,cAAcC,gCAAgB;CACpC,MAAM,6BAAoB,YAAY,UAAU;CAChD,MAAM,+BAAsB;AAC1B,SACE,MAAM,QAAQ,GAAG,UAAU,MAAM,MAAM,YAAY,OAAO,kBAAS,GAAG;GAExE;CAEF,MAAM,mCACJ,UAAU,YAAY,MAAM,wBAAe,KAAK,CAAC,CAClD;CAED,MAAM,oBAAoB;AACxB,mBAAiB;AACf,OAAI,CAAC,QAAQ,MACX,UAAS,QAAQ;OAEjB,SAAQ,QAAQ;KAEjB,GAAG;;CAGR,MAAM,qBAAqB,MAAkB;AAC3C,MAAI,MAAM,SAAU;AAEpB,MADe,EAAE,QACL,QAAQ,0BAA0B,CAAE;AAChD,YAAU,+BAAsB,KAAK,CAAC;AACtC,WAAS,QAAQ;AACjB,UAAQ,QAAQ;;CAGlB,MAAM,oBAAoB,MAAqB;AAE7C,MADe,EAAE,QACL,QAAQ,0BAA0B,CAAE;AAChD,IAAE,gBAAgB;AAClB,YAAU,+BAAsB,KAAK,CAAC;;AAGxC,QAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACD;;AAGH,MAAa,sBACX,OACA,EAAE,UAAU,UAAU,SACnB;CACH,MAAM,KAAKD,2BAAa,WAAW;CAEnC,MAAM,kCAAyB;EAC7B,GAAG,EAAE,OAAO;EACZ,GAAG,GAAG,yBAAgB,SAAS,CAAC;EAChC,GAAG,GAAG,YAAY,MAAM,SAAS;EAClC,CAAC;CACF,MAAM,kCAAyB;EAC7B,GAAG,GAAG,QAAQ,SAAS;EACvB,GAAG,GAAG,yBAAgB,SAAS,CAAC;EAChC,EAAE,yBAAgB,SAAS,IAAI,CAAC,MAAM,UAAU;EACjD,CAAC;CACF,MAAM,mCAA0B,CAC9B,GAAG,GAAG,QAAQ,QAAQ,EACtB,GAAG,GAAG,yBAAgB,SAAS,CAAC,CACjC,CAAC;AAOF,QAAO;EACL,sCAPkC,CAAC,GAAG,GAAG,QAAQ,QAAQ,CAAC,CAAC;EAQ3D;EACA;EACA;EACA,wCAVoC,GAAG,GAAG,QAAQ,OAAO,CAAC;EAW1D,wCAVoC,GAAG,GAAG,QAAQ,UAAU,CAAC;EAW7D,yCAVqC,GAAG,EAAE,0BAAiB,GAAG,GAAG,CAAC;EAWlE,sCAVkC,GAAG,EAAE,uBAAc,GAAG,GAAG,CAAC;EAW7D"}

View File

@@ -0,0 +1,65 @@
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
const require_runtime = require('../../../_virtual/_rolldown/runtime.js');
const require_event = require('../../../constants/event.js');
const require_types = require('../../../utils/types.js');
const require_error = require('../../../utils/error.js');
const require_index = require('../../../hooks/use-namespace/index.js');
const require_constants = require('./constants.js');
let vue = require("vue");
let lodash_unified = require("lodash-unified");
let _vue_shared = require("@vue/shared");
//#region ../../packages/components/collapse/src/use-collapse.ts
const SCOPE = "ElCollapse";
const useCollapse = (props, emit) => {
const activeNames = (0, vue.ref)((0, lodash_unified.castArray)(props.modelValue));
const setActiveNames = (_activeNames) => {
activeNames.value = _activeNames;
const value = props.accordion ? activeNames.value[0] : activeNames.value;
emit(require_event.UPDATE_MODEL_EVENT, value);
emit(require_event.CHANGE_EVENT, value);
};
const handleChange = (name) => {
if (props.accordion) setActiveNames([activeNames.value[0] === name ? "" : name]);
else {
const _activeNames = [...activeNames.value];
const index = _activeNames.indexOf(name);
if (index > -1) _activeNames.splice(index, 1);
else _activeNames.push(name);
setActiveNames(_activeNames);
}
};
const handleItemClick = async (name) => {
const { beforeCollapse } = props;
if (!beforeCollapse) {
handleChange(name);
return;
}
const shouldChange = beforeCollapse(name);
if (![(0, _vue_shared.isPromise)(shouldChange), require_types.isBoolean(shouldChange)].includes(true)) require_error.throwError(SCOPE, "beforeCollapse must return type `Promise<boolean>` or `boolean`");
if ((0, _vue_shared.isPromise)(shouldChange)) shouldChange.then((result) => {
if (result !== false) handleChange(name);
}).catch((e) => {
require_error.debugWarn(SCOPE, `some error occurred: ${e}`);
});
else if (shouldChange) handleChange(name);
};
(0, vue.watch)(() => props.modelValue, () => activeNames.value = (0, lodash_unified.castArray)(props.modelValue), { deep: true });
(0, vue.provide)(require_constants.collapseContextKey, {
activeNames,
handleItemClick
});
return {
activeNames,
setActiveNames
};
};
const useCollapseDOM = (props) => {
const ns = require_index.useNamespace("collapse");
return { rootKls: (0, vue.computed)(() => [ns.b(), ns.b(`icon-position-${props.expandIconPosition}`)]) };
};
//#endregion
exports.useCollapse = useCollapse;
exports.useCollapseDOM = useCollapseDOM;
//# sourceMappingURL=use-collapse.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"use-collapse.js","names":["UPDATE_MODEL_EVENT","CHANGE_EVENT","isBoolean","collapseContextKey","useNamespace"],"sources":["../../../../../../packages/components/collapse/src/use-collapse.ts"],"sourcesContent":["import { computed, provide, ref, watch } from 'vue'\nimport {\n debugWarn,\n ensureArray,\n isBoolean,\n isPromise,\n throwError,\n} from '@element-plus/utils'\nimport { useNamespace } from '@element-plus/hooks'\nimport { CHANGE_EVENT, UPDATE_MODEL_EVENT } from '@element-plus/constants'\nimport { collapseContextKey } from './constants'\n\nimport type { SetupContext } from 'vue'\nimport type {\n CollapseActiveName,\n CollapseEmits,\n CollapseProps,\n} from './collapse'\n\nconst SCOPE = 'ElCollapse'\nexport const useCollapse = (\n props: CollapseProps,\n emit: SetupContext<CollapseEmits>['emit']\n) => {\n const activeNames = ref(ensureArray(props.modelValue))\n\n const setActiveNames = (_activeNames: CollapseActiveName[]) => {\n activeNames.value = _activeNames\n const value = props.accordion ? activeNames.value[0] : activeNames.value\n emit(UPDATE_MODEL_EVENT, value)\n emit(CHANGE_EVENT, value)\n }\n\n const handleChange = (name: CollapseActiveName) => {\n if (props.accordion) {\n setActiveNames([activeNames.value[0] === name ? '' : name])\n } else {\n const _activeNames = [...activeNames.value]\n const index = _activeNames.indexOf(name)\n\n if (index > -1) {\n _activeNames.splice(index, 1)\n } else {\n _activeNames.push(name)\n }\n setActiveNames(_activeNames)\n }\n }\n\n const handleItemClick = async (name: CollapseActiveName) => {\n const { beforeCollapse } = props\n if (!beforeCollapse) {\n handleChange(name)\n return\n }\n\n const shouldChange = beforeCollapse(name)\n const isPromiseOrBool = [\n isPromise(shouldChange),\n isBoolean(shouldChange),\n ].includes(true)\n if (!isPromiseOrBool) {\n throwError(\n SCOPE,\n 'beforeCollapse must return type `Promise<boolean>` or `boolean`'\n )\n }\n\n if (isPromise(shouldChange)) {\n shouldChange\n .then((result) => {\n if (result !== false) {\n handleChange(name)\n }\n })\n .catch((e) => {\n debugWarn(SCOPE, `some error occurred: ${e}`)\n })\n } else if (shouldChange) {\n handleChange(name)\n }\n }\n\n watch(\n () => props.modelValue,\n () => (activeNames.value = ensureArray(props.modelValue)),\n { deep: true }\n )\n\n provide(collapseContextKey, {\n activeNames,\n handleItemClick,\n })\n return {\n activeNames,\n setActiveNames,\n }\n}\n\nexport const useCollapseDOM = (props: CollapseProps) => {\n const ns = useNamespace('collapse')\n\n const rootKls = computed(() => [\n ns.b(),\n ns.b(`icon-position-${props.expandIconPosition}`),\n ])\n\n return {\n rootKls,\n }\n}\n"],"mappings":";;;;;;;;;;;;AAmBA,MAAM,QAAQ;AACd,MAAa,eACX,OACA,SACG;CACH,MAAM,yDAA8B,MAAM,WAAW,CAAC;CAEtD,MAAM,kBAAkB,iBAAuC;AAC7D,cAAY,QAAQ;EACpB,MAAM,QAAQ,MAAM,YAAY,YAAY,MAAM,KAAK,YAAY;AACnE,OAAKA,kCAAoB,MAAM;AAC/B,OAAKC,4BAAc,MAAM;;CAG3B,MAAM,gBAAgB,SAA6B;AACjD,MAAI,MAAM,UACR,gBAAe,CAAC,YAAY,MAAM,OAAO,OAAO,KAAK,KAAK,CAAC;OACtD;GACL,MAAM,eAAe,CAAC,GAAG,YAAY,MAAM;GAC3C,MAAM,QAAQ,aAAa,QAAQ,KAAK;AAExC,OAAI,QAAQ,GACV,cAAa,OAAO,OAAO,EAAE;OAE7B,cAAa,KAAK,KAAK;AAEzB,kBAAe,aAAa;;;CAIhC,MAAM,kBAAkB,OAAO,SAA6B;EAC1D,MAAM,EAAE,mBAAmB;AAC3B,MAAI,CAAC,gBAAgB;AACnB,gBAAa,KAAK;AAClB;;EAGF,MAAM,eAAe,eAAe,KAAK;AAKzC,MAAI,CAJoB,4BACZ,aAAa,EACvBC,wBAAU,aAAa,CACxB,CAAC,SAAS,KAAK,CAEd,0BACE,OACA,kEACD;AAGH,iCAAc,aAAa,CACzB,cACG,MAAM,WAAW;AAChB,OAAI,WAAW,MACb,cAAa,KAAK;IAEpB,CACD,OAAO,MAAM;AACZ,2BAAU,OAAO,wBAAwB,IAAI;IAC7C;WACK,aACT,cAAa,KAAK;;AAItB,sBACQ,MAAM,kBACL,YAAY,sCAAoB,MAAM,WAAW,EACxD,EAAE,MAAM,MAAM,CACf;AAED,kBAAQC,sCAAoB;EAC1B;EACA;EACD,CAAC;AACF,QAAO;EACL;EACA;EACD;;AAGH,MAAa,kBAAkB,UAAyB;CACtD,MAAM,KAAKC,2BAAa,WAAW;AAOnC,QAAO,EACL,iCAN6B,CAC7B,GAAG,GAAG,EACN,GAAG,EAAE,iBAAiB,MAAM,qBAAqB,CAClD,CAAC,EAID"}

View File

@@ -0,0 +1,3 @@
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
require('../../base/style/css.js');
require("element-plus/theme-chalk/el-collapse.css");

View File

@@ -0,0 +1,3 @@
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
require('../../base/style/index.js');
require("element-plus/theme-chalk/src/collapse.scss");