使用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,10 @@
//#region \0plugin-vue:export-helper
var _plugin_vue_export_helper_default = (sfc, props) => {
const target = sfc.__vccOpts || sfc;
for (const [key, val] of props) target[key] = val;
return target;
};
//#endregion
exports.default = _plugin_vue_export_helper_default;

View File

@@ -0,0 +1,29 @@
//#region \0rolldown/runtime.js
var __create = Object.create;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getProtoOf = Object.getPrototypeOf;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
key = keys[i];
if (!__hasOwnProp.call(to, key) && key !== except) {
__defProp(to, key, {
get: ((k) => from[k]).bind(null, key),
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
});
}
}
}
return to;
};
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
value: mod,
enumerable: true
}) : target, mod));
//#endregion
exports.__toESM = __toESM;

View File

@@ -0,0 +1,198 @@
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
const require_index = require('./components/affix/index.js');
const require_index$1 = require('./components/icon/index.js');
const require_index$2 = require('./components/alert/index.js');
const require_index$3 = require('./components/form/index.js');
const require_index$4 = require('./components/popper/index.js');
const require_index$5 = require('./components/tooltip/index.js');
const require_index$6 = require('./components/input/index.js');
const require_index$7 = require('./components/scrollbar/index.js');
const require_index$8 = require('./components/autocomplete/index.js');
const require_index$9 = require('./components/avatar/index.js');
const require_index$10 = require('./components/backtop/index.js');
const require_index$11 = require('./components/badge/index.js');
const require_index$12 = require('./components/breadcrumb/index.js');
const require_index$13 = require('./components/config-provider/index.js');
const require_index$14 = require('./components/button/index.js');
const require_index$15 = require('./components/time-picker/index.js');
const require_index$16 = require('./components/tag/index.js');
const require_index$17 = require('./components/select/index.js');
const require_index$18 = require('./components/calendar/index.js');
const require_index$19 = require('./components/card/index.js');
const require_index$20 = require('./components/carousel/index.js');
const require_index$21 = require('./components/checkbox/index.js');
const require_index$22 = require('./components/radio/index.js');
const require_index$23 = require('./components/cascader-panel/index.js');
const require_index$24 = require('./components/cascader/index.js');
const require_index$25 = require('./components/check-tag/index.js');
const require_index$26 = require('./components/row/index.js');
const require_index$27 = require('./components/col/index.js');
const require_index$28 = require('./components/collapse-transition/index.js');
const require_index$29 = require('./components/collapse/index.js');
const require_index$30 = require('./components/color-picker-panel/index.js');
const require_index$31 = require('./components/color-picker/index.js');
const require_index$32 = require('./components/container/index.js');
const require_index$33 = require('./components/date-picker-panel/index.js');
const require_index$34 = require('./components/date-picker/index.js');
const require_index$35 = require('./components/descriptions/index.js');
const require_index$36 = require('./components/dialog/index.js');
const require_index$37 = require('./components/divider/index.js');
const require_index$38 = require('./components/drawer/index.js');
const require_index$39 = require('./components/dropdown/index.js');
const require_index$40 = require('./components/empty/index.js');
const require_index$41 = require('./components/image-viewer/index.js');
const require_index$42 = require('./components/image/index.js');
const require_index$43 = require('./components/input-number/index.js');
const require_index$44 = require('./components/input-tag/index.js');
const require_index$45 = require('./components/link/index.js');
const require_index$46 = require('./components/menu/index.js');
const require_index$47 = require('./components/page-header/index.js');
const require_index$48 = require('./components/pagination/index.js');
const require_index$49 = require('./components/popconfirm/index.js');
const require_index$50 = require('./components/popover/index.js');
const require_index$51 = require('./components/progress/index.js');
const require_index$52 = require('./components/rate/index.js');
const require_index$53 = require('./components/result/index.js');
const require_index$54 = require('./components/select-v2/index.js');
const require_index$55 = require('./components/skeleton/index.js');
const require_index$56 = require('./components/slider/index.js');
const require_index$57 = require('./components/space/index.js');
const require_index$58 = require('./components/statistic/index.js');
const require_index$59 = require('./components/countdown/index.js');
const require_index$60 = require('./components/steps/index.js');
const require_index$61 = require('./components/switch/index.js');
const require_index$62 = require('./components/table/index.js');
const require_index$63 = require('./components/table-v2/index.js');
const require_index$64 = require('./components/tabs/index.js');
const require_index$65 = require('./components/text/index.js');
const require_index$66 = require('./components/time-select/index.js');
const require_index$67 = require('./components/timeline/index.js');
const require_index$68 = require('./components/transfer/index.js');
const require_index$69 = require('./components/tree/index.js');
const require_index$70 = require('./components/tree-select/index.js');
const require_index$71 = require('./components/tree-v2/index.js');
const require_index$72 = require('./components/upload/index.js');
const require_index$73 = require('./components/watermark/index.js');
const require_index$74 = require('./components/tour/index.js');
const require_index$75 = require('./components/anchor/index.js');
const require_index$76 = require('./components/segmented/index.js');
const require_index$77 = require('./components/mention/index.js');
const require_index$78 = require('./components/splitter/index.js');
//#region ../../packages/element-plus/component.ts
var component_default = [
require_index.ElAffix,
require_index$2.ElAlert,
require_index$8.ElAutocomplete,
require_index$63.ElAutoResizer,
require_index$9.ElAvatar,
require_index$9.ElAvatarGroup,
require_index$10.ElBacktop,
require_index$11.ElBadge,
require_index$12.ElBreadcrumb,
require_index$12.ElBreadcrumbItem,
require_index$14.ElButton,
require_index$14.ElButtonGroup,
require_index$18.ElCalendar,
require_index$19.ElCard,
require_index$20.ElCarousel,
require_index$20.ElCarouselItem,
require_index$24.ElCascader,
require_index$23.ElCascaderPanel,
require_index$25.ElCheckTag,
require_index$21.ElCheckbox,
require_index$21.ElCheckboxButton,
require_index$21.ElCheckboxGroup,
require_index$27.ElCol,
require_index$29.ElCollapse,
require_index$29.ElCollapseItem,
require_index$28.ElCollapseTransition,
require_index$30.ElColorPickerPanel,
require_index$31.ElColorPicker,
require_index$13.ElConfigProvider,
require_index$32.ElContainer,
require_index$32.ElAside,
require_index$32.ElFooter,
require_index$32.ElHeader,
require_index$32.ElMain,
require_index$34.ElDatePicker,
require_index$33.ElDatePickerPanel,
require_index$35.ElDescriptions,
require_index$35.ElDescriptionsItem,
require_index$36.ElDialog,
require_index$37.ElDivider,
require_index$38.ElDrawer,
require_index$39.ElDropdown,
require_index$39.ElDropdownItem,
require_index$39.ElDropdownMenu,
require_index$40.ElEmpty,
require_index$3.ElForm,
require_index$3.ElFormItem,
require_index$1.ElIcon,
require_index$42.ElImage,
require_index$41.ElImageViewer,
require_index$6.ElInput,
require_index$43.ElInputNumber,
require_index$44.ElInputTag,
require_index$45.ElLink,
require_index$46.ElMenu,
require_index$46.ElMenuItem,
require_index$46.ElMenuItemGroup,
require_index$46.ElSubMenu,
require_index$47.ElPageHeader,
require_index$48.ElPagination,
require_index$49.ElPopconfirm,
require_index$50.ElPopover,
require_index$4.ElPopper,
require_index$51.ElProgress,
require_index$22.ElRadio,
require_index$22.ElRadioButton,
require_index$22.ElRadioGroup,
require_index$52.ElRate,
require_index$53.ElResult,
require_index$26.ElRow,
require_index$7.ElScrollbar,
require_index$17.ElSelect,
require_index$17.ElOption,
require_index$17.ElOptionGroup,
require_index$54.ElSelectV2,
require_index$55.ElSkeleton,
require_index$55.ElSkeletonItem,
require_index$56.ElSlider,
require_index$57.ElSpace,
require_index$58.ElStatistic,
require_index$59.ElCountdown,
require_index$60.ElSteps,
require_index$60.ElStep,
require_index$61.ElSwitch,
require_index$62.ElTable,
require_index$62.ElTableColumn,
require_index$63.ElTableV2,
require_index$64.ElTabs,
require_index$64.ElTabPane,
require_index$16.ElTag,
require_index$65.ElText,
require_index$15.ElTimePicker,
require_index$66.ElTimeSelect,
require_index$67.ElTimeline,
require_index$67.ElTimelineItem,
require_index$5.ElTooltip,
require_index$68.ElTransfer,
require_index$69.ElTree,
require_index$70.ElTreeSelect,
require_index$71.ElTreeV2,
require_index$72.ElUpload,
require_index$73.ElWatermark,
require_index$74.ElTour,
require_index$74.ElTourStep,
require_index$75.ElAnchor,
require_index$75.ElAnchorLink,
require_index$76.ElSegmented,
require_index$77.ElMention,
require_index$78.ElSplitter,
require_index$78.ElSplitterPanel
];
//#endregion
exports.default = component_default;
//# sourceMappingURL=component.js.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,9 @@
import { SFCWithInstall } from "../../utils/vue/typescript.js";
import "../../utils/index.js";
import { AffixEmits, AffixInstance, AffixProps, AffixPropsPublic, affixEmits, affixProps } from "./src/affix.js";
import { _default } from "./src/affix.vue.js";
//#region ../../packages/components/affix/index.d.ts
declare const ElAffix: SFCWithInstall<typeof _default>;
//#endregion
export { AffixEmits, AffixInstance, AffixProps, AffixPropsPublic, ElAffix, ElAffix as default, affixEmits, affixProps };

View File

@@ -0,0 +1,14 @@
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
const require_install = require('../../utils/vue/install.js');
const require_affix = require('./src/affix.js');
const require_affix$1 = require('./src/affix2.js');
//#region ../../packages/components/affix/index.ts
const ElAffix = require_install.withInstall(require_affix$1.default);
//#endregion
exports.ElAffix = ElAffix;
exports.default = ElAffix;
exports.affixEmits = require_affix.affixEmits;
exports.affixProps = require_affix.affixProps;
//# sourceMappingURL=index.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"index.js","names":["withInstall","Affix"],"sources":["../../../../../packages/components/affix/index.ts"],"sourcesContent":["import { withInstall } from '@element-plus/utils'\nimport Affix from './src/affix.vue'\n\nimport type { SFCWithInstall } from '@element-plus/utils'\n\nexport const ElAffix: SFCWithInstall<typeof Affix> = withInstall(Affix)\nexport default ElAffix\n\nexport * from './src/affix'\n"],"mappings":";;;;;;AAKA,MAAa,UAAwCA,4BAAYC,wBAAM"}

View File

@@ -0,0 +1,63 @@
import { EpPropFinalized, EpPropMergeType } from "../../../utils/vue/props/types.js";
import { ZIndexType } from "../../../utils/typescript.js";
import "../../../utils/index.js";
import { _default } from "./affix.vue.js";
import { ExtractPublicPropTypes } from "vue";
import * as csstype from "csstype";
//#region ../../packages/components/affix/src/affix.d.ts
interface AffixProps {
/**
* @description affix element zIndex value
* */
zIndex?: ZIndexType;
/**
* @description target container. (CSS selector)
*/
target?: string;
/**
* @description offset distance
* */
offset?: number;
/**
* @description position of affix
* */
position?: 'top' | 'bottom';
/**
* @description whether affix element is teleported, if `true` it will be teleported to where `append-to` sets
* */
teleported?: boolean;
/**
* @description which element the affix element appends to
* */
appendTo?: string | HTMLElement;
}
/**
* @deprecated Removed after 3.0.0, Use `AffixProps` instead.
*/
declare const affixProps: {
readonly zIndex: EpPropFinalized<(new (...args: any[]) => string | number) | (() => csstype.Property.ZIndex | undefined) | (((new (...args: any[]) => string | number) | (() => csstype.Property.ZIndex | undefined)) | null)[], unknown, unknown, 100, boolean>;
readonly target: EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
readonly offset: EpPropFinalized<NumberConstructor, unknown, unknown, 0, boolean>;
readonly position: EpPropFinalized<StringConstructor, "top" | "bottom", unknown, "top", boolean>;
readonly teleported: BooleanConstructor;
readonly appendTo: EpPropFinalized<(new (...args: any[]) => string | HTMLElement) | (() => EpPropMergeType<(new (...args: any[]) => string | HTMLElement) | (() => string | HTMLElement) | (((new (...args: any[]) => string | HTMLElement) | (() => string | HTMLElement)) | null)[], unknown, unknown>) | (((new (...args: any[]) => string | HTMLElement) | (() => EpPropMergeType<(new (...args: any[]) => string | HTMLElement) | (() => string | HTMLElement) | (((new (...args: any[]) => string | HTMLElement) | (() => string | HTMLElement)) | null)[], unknown, unknown>)) | null)[], unknown, unknown, "body", boolean>;
};
/**
* @deprecated Removed after 3.0.0, Use `AffixProps` instead.
*/
type AffixPropsPublic = ExtractPublicPropTypes<typeof affixProps>;
declare const affixEmits: {
scroll: ({
scrollTop,
fixed
}: {
scrollTop: number;
fixed: boolean;
}) => boolean;
change: (fixed: boolean) => boolean;
};
type AffixEmits = typeof affixEmits;
type AffixInstance = InstanceType<typeof _default> & unknown;
//#endregion
export { AffixEmits, AffixInstance, AffixProps, AffixPropsPublic, affixEmits, affixProps };

View File

@@ -0,0 +1,43 @@
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
const require_event = require('../../../constants/event.js');
const require_types = require('../../../utils/types.js');
const require_runtime = require('../../../utils/vue/props/runtime.js');
const require_teleport = require('../../teleport/src/teleport.js');
//#region ../../packages/components/affix/src/affix.ts
/**
* @deprecated Removed after 3.0.0, Use `AffixProps` instead.
*/
const affixProps = require_runtime.buildProps({
zIndex: {
type: require_runtime.definePropType([Number, String]),
default: 100
},
target: {
type: String,
default: ""
},
offset: {
type: Number,
default: 0
},
position: {
type: String,
values: ["top", "bottom"],
default: "top"
},
teleported: Boolean,
appendTo: {
type: require_teleport.teleportProps.to.type,
default: "body"
}
});
const affixEmits = {
scroll: ({ scrollTop, fixed }) => require_types.isNumber(scrollTop) && require_types.isBoolean(fixed),
[require_event.CHANGE_EVENT]: (fixed) => require_types.isBoolean(fixed)
};
//#endregion
exports.affixEmits = affixEmits;
exports.affixProps = affixProps;
//# sourceMappingURL=affix.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"affix.js","names":["buildProps","definePropType","teleportProps","isNumber","isBoolean","CHANGE_EVENT"],"sources":["../../../../../../packages/components/affix/src/affix.ts"],"sourcesContent":["import {\n buildProps,\n definePropType,\n isBoolean,\n isNumber,\n} from '@element-plus/utils'\nimport { CHANGE_EVENT } from '@element-plus/constants'\nimport { teleportProps } from '@element-plus/components/teleport'\n\nimport type { ExtractPublicPropTypes } from 'vue'\nimport type Affix from './affix.vue'\nimport type { ZIndexType } from '@element-plus/utils'\n\nexport interface AffixProps {\n /**\n * @description affix element zIndex value\n * */\n zIndex?: ZIndexType\n /**\n * @description target container. (CSS selector)\n */\n target?: string\n /**\n * @description offset distance\n * */\n offset?: number\n /**\n * @description position of affix\n * */\n position?: 'top' | 'bottom'\n /**\n * @description whether affix element is teleported, if `true` it will be teleported to where `append-to` sets\n * */\n teleported?: boolean\n /**\n * @description which element the affix element appends to\n * */\n appendTo?: string | HTMLElement\n}\n\n/**\n * @deprecated Removed after 3.0.0, Use `AffixProps` instead.\n */\nexport const affixProps = buildProps({\n /**\n * @description affix element zIndex value\n * */\n zIndex: {\n type: definePropType<ZIndexType>([Number, String]),\n default: 100,\n },\n /**\n * @description target container. (CSS selector)\n */\n target: {\n type: String,\n default: '',\n },\n /**\n * @description offset distance\n * */\n offset: {\n type: Number,\n default: 0,\n },\n /**\n * @description position of affix\n * */\n position: {\n type: String,\n values: ['top', 'bottom'],\n default: 'top',\n },\n /**\n * @description whether affix element is teleported, if `true` it will be teleported to where `append-to` sets\n * */\n teleported: Boolean,\n /**\n * @description which element the affix element appends to\n * */\n appendTo: {\n type: teleportProps.to.type,\n default: 'body',\n },\n} as const)\n\n/**\n * @deprecated Removed after 3.0.0, Use `AffixProps` instead.\n */\nexport type AffixPropsPublic = ExtractPublicPropTypes<typeof affixProps>\n\nexport const affixEmits = {\n scroll: ({ scrollTop, fixed }: { scrollTop: number; fixed: boolean }) =>\n isNumber(scrollTop) && isBoolean(fixed),\n [CHANGE_EVENT]: (fixed: boolean) => isBoolean(fixed),\n}\nexport type AffixEmits = typeof affixEmits\n\nexport type AffixInstance = InstanceType<typeof Affix> & unknown\n"],"mappings":";;;;;;;;;;AA2CA,MAAa,aAAaA,2BAAW;CAInC,QAAQ;EACN,MAAMC,+BAA2B,CAAC,QAAQ,OAAO,CAAC;EAClD,SAAS;EACV;CAID,QAAQ;EACN,MAAM;EACN,SAAS;EACV;CAID,QAAQ;EACN,MAAM;EACN,SAAS;EACV;CAID,UAAU;EACR,MAAM;EACN,QAAQ,CAAC,OAAO,SAAS;EACzB,SAAS;EACV;CAID,YAAY;CAIZ,UAAU;EACR,MAAMC,+BAAc,GAAG;EACvB,SAAS;EACV;CACF,CAAU;AAOX,MAAa,aAAa;CACxB,SAAS,EAAE,WAAW,YACpBC,uBAAS,UAAU,IAAIC,wBAAU,MAAM;EACxCC,8BAAgB,UAAmBD,wBAAU,MAAM;CACrD"}

View File

@@ -0,0 +1,40 @@
import { AffixProps } from "./affix.js";
import * as vue from "vue";
import * as csstype from "csstype";
//#region ../../packages/components/affix/src/affix.vue.d.ts
declare var __VLS_7: {};
type __VLS_Slots = {} & {
default?: (props: typeof __VLS_7) => any;
};
declare const __VLS_base: vue.DefineComponent<AffixProps, {
/** @description update affix status */update: () => void; /** @description update rootRect info */
updateRoot: () => Promise<void>;
}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
scroll: (args_0: {
scrollTop: number;
fixed: boolean;
}) => void;
change: (fixed: boolean) => void;
}, string, vue.PublicProps, Readonly<AffixProps> & Readonly<{
onChange?: ((fixed: boolean) => any) | undefined;
onScroll?: ((args_0: {
scrollTop: number;
fixed: boolean;
}) => any) | undefined;
}>, {
zIndex: csstype.Property.ZIndex;
target: string;
offset: number;
position: "top" | "bottom";
appendTo: string | HTMLElement;
}, {}, {}, {}, 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,132 @@
const require_runtime = require('../../../_virtual/_rolldown/runtime.js');
const require_event = require('../../../constants/event.js');
const require_error = require('../../../utils/error.js');
const require_style = require('../../../utils/dom/style.js');
const require_scroll = require('../../../utils/dom/scroll.js');
const require_index = require('../../teleport/index.js');
const require_affix = require('./affix.js');
const require_index$1 = require('../../../hooks/use-namespace/index.js');
let _vueuse_core = require("@vueuse/core");
let vue = require("vue");
//#region ../../packages/components/affix/src/affix.vue?vue&type=script&setup=true&lang.ts
const COMPONENT_NAME = "ElAffix";
var affix_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({
name: COMPONENT_NAME,
__name: "affix",
props: require_affix.affixProps,
emits: require_affix.affixEmits,
setup(__props, { expose: __expose, emit: __emit }) {
const props = __props;
const emit = __emit;
const ns = require_index$1.useNamespace("affix");
const target = (0, vue.shallowRef)();
const root = (0, vue.shallowRef)();
const scrollContainer = (0, vue.shallowRef)();
const { height: windowHeight } = (0, _vueuse_core.useWindowSize)();
const { height: rootHeight, width: rootWidth, top: rootTop, bottom: rootBottom, left: rootLeft, update: updateRoot } = (0, _vueuse_core.useElementBounding)(root, { windowScroll: false });
const targetRect = (0, _vueuse_core.useElementBounding)(target);
const fixed = (0, vue.ref)(false);
const scrollTop = (0, vue.ref)(0);
const transform = (0, vue.ref)(0);
const teleportDisabled = (0, vue.computed)(() => {
return !props.teleported || !fixed.value;
});
const rootStyle = (0, vue.computed)(() => {
return {
display: "flow-root",
height: fixed.value ? `${rootHeight.value}px` : "",
width: fixed.value ? `${rootWidth.value}px` : ""
};
});
const affixStyle = (0, vue.computed)(() => {
if (!fixed.value) return {};
const offset = require_style.addUnit(props.offset);
return {
height: `${rootHeight.value}px`,
width: `${rootWidth.value}px`,
top: props.position === "top" ? offset : "",
bottom: props.position === "bottom" ? offset : "",
left: props.teleported ? `${rootLeft.value}px` : "",
transform: transform.value ? `translateY(${transform.value}px)` : "",
zIndex: props.zIndex
};
});
const update = () => {
if (!scrollContainer.value) return;
scrollTop.value = scrollContainer.value instanceof Window ? document.documentElement.scrollTop : scrollContainer.value.scrollTop || 0;
const { position, target, offset } = props;
const rootHeightOffset = offset + rootHeight.value;
if (position === "top") if (target) {
const difference = targetRect.bottom.value - rootHeightOffset;
fixed.value = offset > rootTop.value && targetRect.bottom.value > 0;
transform.value = difference < 0 ? difference : 0;
} else fixed.value = offset > rootTop.value;
else if (target) {
const difference = windowHeight.value - targetRect.top.value - rootHeightOffset;
fixed.value = windowHeight.value - offset < rootBottom.value && windowHeight.value > targetRect.top.value;
transform.value = difference < 0 ? -difference : 0;
} else fixed.value = windowHeight.value - offset < rootBottom.value;
};
const updateRootRect = async () => {
if (!fixed.value) {
updateRoot();
return;
}
fixed.value = false;
await (0, vue.nextTick)();
updateRoot();
fixed.value = true;
};
const handleScroll = async () => {
updateRoot();
await (0, vue.nextTick)();
emit("scroll", {
scrollTop: scrollTop.value,
fixed: fixed.value
});
};
(0, vue.watch)(fixed, (val) => emit(require_event.CHANGE_EVENT, val));
(0, vue.onMounted)(() => {
if (props.target) {
target.value = document.querySelector(props.target) ?? void 0;
if (!target.value) require_error.throwError(COMPONENT_NAME, `Target does not exist: ${props.target}`);
} else target.value = document.documentElement;
scrollContainer.value = require_scroll.getScrollContainer(root.value, true);
updateRoot();
});
(0, vue.onActivated)(() => {
(0, vue.nextTick)(updateRootRect);
});
(0, vue.onDeactivated)(() => {
fixed.value = false;
});
(0, _vueuse_core.useEventListener)(scrollContainer, "scroll", handleScroll);
(0, vue.watchEffect)(update);
__expose({
update,
updateRoot: updateRootRect
});
return (_ctx, _cache) => {
return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", {
ref_key: "root",
ref: root,
class: (0, vue.normalizeClass)((0, vue.unref)(ns).b()),
style: (0, vue.normalizeStyle)(rootStyle.value)
}, [(0, vue.createVNode)((0, vue.unref)(require_index.ElTeleport), {
disabled: teleportDisabled.value,
to: __props.appendTo
}, {
default: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("div", {
class: (0, vue.normalizeClass)({ [(0, vue.unref)(ns).m("fixed")]: fixed.value }),
style: (0, vue.normalizeStyle)(affixStyle.value)
}, [(0, vue.renderSlot)(_ctx.$slots, "default")], 6)]),
_: 3
}, 8, ["disabled", "to"])], 6);
};
}
});
//#endregion
exports.default = affix_vue_vue_type_script_setup_true_lang_default;
//# sourceMappingURL=affix.vue_vue_type_script_setup_true_lang.js.map

File diff suppressed because one or more lines are too long

View File

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

View File

@@ -0,0 +1 @@
{"version":3,"file":"affix2.js","names":[],"sources":["../../../../../../packages/components/affix/src/affix.vue"],"sourcesContent":["<template>\n <div ref=\"root\" :class=\"ns.b()\" :style=\"rootStyle\">\n <el-teleport :disabled=\"teleportDisabled\" :to=\"appendTo\">\n <div :class=\"{ [ns.m('fixed')]: fixed }\" :style=\"affixStyle\">\n <slot />\n </div>\n </el-teleport>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n computed,\n nextTick,\n onActivated,\n onDeactivated,\n onMounted,\n ref,\n shallowRef,\n watch,\n watchEffect,\n} from 'vue'\nimport {\n useElementBounding,\n useEventListener,\n useWindowSize,\n} from '@vueuse/core'\nimport ElTeleport from '@element-plus/components/teleport'\nimport { addUnit, getScrollContainer, throwError } from '@element-plus/utils'\nimport { useNamespace } from '@element-plus/hooks'\nimport { CHANGE_EVENT } from '@element-plus/constants'\nimport { affixEmits } from './affix'\n\nimport type { CSSProperties } from 'vue'\nimport type { AffixProps } from './affix'\n\nconst COMPONENT_NAME = 'ElAffix'\ndefineOptions({\n name: COMPONENT_NAME,\n})\nconst props = withDefaults(defineProps<AffixProps>(), {\n zIndex: 100,\n target: '',\n offset: 0,\n position: 'top',\n appendTo: 'body',\n})\nconst emit = defineEmits(affixEmits)\n\nconst ns = useNamespace('affix')\n\nconst target = shallowRef<HTMLElement>()\nconst root = shallowRef<HTMLDivElement>()\nconst scrollContainer = shallowRef<HTMLElement | Window>()\nconst { height: windowHeight } = useWindowSize()\nconst {\n height: rootHeight,\n width: rootWidth,\n top: rootTop,\n bottom: rootBottom,\n left: rootLeft,\n update: updateRoot,\n} = useElementBounding(root, { windowScroll: false })\nconst targetRect = useElementBounding(target)\n\nconst fixed = ref(false)\nconst scrollTop = ref(0)\nconst transform = ref(0)\n\nconst teleportDisabled = computed(() => {\n return !props.teleported || !fixed.value\n})\n\nconst rootStyle = computed<CSSProperties>(() => {\n return {\n display: 'flow-root', // https://developer.mozilla.org/en-US/docs/Web/CSS/Guides/Display/Formatting_contexts#explicitly_creating_a_bfc_using_display_flow-root\n height: fixed.value ? `${rootHeight.value}px` : '',\n width: fixed.value ? `${rootWidth.value}px` : '',\n }\n})\n\nconst affixStyle = computed<CSSProperties>(() => {\n if (!fixed.value) return {}\n\n const offset = addUnit(props.offset)\n return {\n height: `${rootHeight.value}px`,\n width: `${rootWidth.value}px`,\n top: props.position === 'top' ? offset : '',\n bottom: props.position === 'bottom' ? offset : '',\n left: props.teleported ? `${rootLeft.value}px` : '',\n transform: transform.value ? `translateY(${transform.value}px)` : '',\n zIndex: props.zIndex,\n }\n})\n\nconst update = () => {\n if (!scrollContainer.value) return\n\n scrollTop.value =\n scrollContainer.value instanceof Window\n ? document.documentElement.scrollTop\n : scrollContainer.value.scrollTop || 0\n\n const { position, target, offset } = props\n const rootHeightOffset = offset + rootHeight.value\n\n if (position === 'top') {\n if (target) {\n const difference = targetRect.bottom.value - rootHeightOffset\n fixed.value = offset > rootTop.value && targetRect.bottom.value > 0\n transform.value = difference < 0 ? difference : 0\n } else {\n fixed.value = offset > rootTop.value\n }\n } else if (target) {\n const difference =\n windowHeight.value - targetRect.top.value - rootHeightOffset\n fixed.value =\n windowHeight.value - offset < rootBottom.value &&\n windowHeight.value > targetRect.top.value\n transform.value = difference < 0 ? -difference : 0\n } else {\n fixed.value = windowHeight.value - offset < rootBottom.value\n }\n}\n\nconst updateRootRect = async () => {\n if (!fixed.value) {\n updateRoot()\n return\n }\n\n fixed.value = false\n await nextTick()\n updateRoot()\n fixed.value = true\n}\n\nconst handleScroll = async () => {\n updateRoot()\n await nextTick()\n emit('scroll', {\n scrollTop: scrollTop.value,\n fixed: fixed.value,\n })\n}\n\nwatch(fixed, (val) => emit(CHANGE_EVENT, val))\n\nonMounted(() => {\n if (props.target) {\n target.value =\n document.querySelector<HTMLElement>(props.target) ?? undefined\n if (!target.value)\n throwError(COMPONENT_NAME, `Target does not exist: ${props.target}`)\n } else {\n target.value = document.documentElement\n }\n scrollContainer.value = getScrollContainer(root.value!, true)\n updateRoot()\n})\n\nonActivated(() => {\n nextTick(updateRootRect)\n})\n\nonDeactivated(() => {\n fixed.value = false\n})\n\nuseEventListener(scrollContainer, 'scroll', handleScroll)\nwatchEffect(update)\n\ndefineExpose({\n /** @description update affix status */\n update,\n /** @description update rootRect info */\n updateRoot: updateRootRect,\n})\n</script>\n"],"mappings":""}

View File

@@ -0,0 +1,3 @@
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
require('../../base/style/css.js');
require("element-plus/theme-chalk/el-affix.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/affix.scss");

View File

@@ -0,0 +1,10 @@
import { SFCWithInstall } from "../../utils/vue/typescript.js";
import "../../utils/index.js";
import { AlertEmits, AlertProps, AlertPropsPublic, alertEffects, alertEmits, alertProps } from "./src/alert.js";
import { _default } from "./src/alert.vue.js";
import { AlertInstance } from "./src/instance.js";
//#region ../../packages/components/alert/index.d.ts
declare const ElAlert: SFCWithInstall<typeof _default>;
//#endregion
export { AlertEmits, type AlertInstance, AlertProps, AlertPropsPublic, ElAlert, ElAlert as default, alertEffects, alertEmits, alertProps };

View File

@@ -0,0 +1,15 @@
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
const require_install = require('../../utils/vue/install.js');
const require_alert = require('./src/alert.js');
const require_alert$1 = require('./src/alert2.js');
//#region ../../packages/components/alert/index.ts
const ElAlert = require_install.withInstall(require_alert$1.default);
//#endregion
exports.ElAlert = ElAlert;
exports.default = ElAlert;
exports.alertEffects = require_alert.alertEffects;
exports.alertEmits = require_alert.alertEmits;
exports.alertProps = require_alert.alertProps;
//# sourceMappingURL=index.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"index.js","names":["withInstall","Alert"],"sources":["../../../../../packages/components/alert/index.ts"],"sourcesContent":["import { withInstall } from '@element-plus/utils'\nimport Alert from './src/alert.vue'\n\nimport type { SFCWithInstall } from '@element-plus/utils'\n\nexport const ElAlert: SFCWithInstall<typeof Alert> = withInstall(Alert)\nexport default ElAlert\n\nexport * from './src/alert'\nexport type { AlertInstance } from './src/instance'\n"],"mappings":";;;;;;AAKA,MAAa,UAAwCA,4BAAYC,wBAAM"}

View File

@@ -0,0 +1,64 @@
import { TypeComponentsMap } from "../../../utils/vue/icon.js";
import { EpPropFinalized } from "../../../utils/vue/props/types.js";
import "../../../utils/index.js";
import { ExtractPublicPropTypes } from "vue";
//#region ../../packages/components/alert/src/alert.d.ts
declare const alertEffects: readonly ["light", "dark"];
interface AlertProps {
/**
* @description alert title.
*/
title?: string;
/**
* @description descriptive text.
*/
description?: string;
/**
* @description alert type.
*/
type?: keyof typeof TypeComponentsMap;
/**
* @description whether alert can be dismissed.
*/
closable?: boolean;
/**
* @description text for replacing x button
*/
closeText?: string;
/**
* @description whether show icon
*/
showIcon?: boolean;
/**
* @description should content be placed in center.
*/
center?: boolean;
/**
* @description theme style
*/
effect?: 'light' | 'dark';
}
/**
* @deprecated Removed after 3.0.0, Use `AlertProps` instead.
*/
declare const alertProps: {
readonly title: EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
readonly description: EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
readonly type: EpPropFinalized<StringConstructor, "error" | "info" | "primary" | "success" | "warning", unknown, "info", boolean>;
readonly closable: EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
readonly closeText: EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
readonly showIcon: BooleanConstructor;
readonly center: BooleanConstructor;
readonly effect: EpPropFinalized<StringConstructor, "light" | "dark", unknown, "light", boolean>;
};
/**
* @deprecated Removed after 3.0.0, Use `AlertProps` instead.
*/
type AlertPropsPublic = ExtractPublicPropTypes<typeof alertProps>;
declare const alertEmits: {
close: (evt: MouseEvent) => boolean;
};
type AlertEmits = typeof alertEmits;
//#endregion
export { AlertEmits, AlertProps, AlertPropsPublic, alertEffects, alertEmits, alertProps };

View File

@@ -0,0 +1,47 @@
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
const require_objects = require('../../../utils/objects.js');
const require_runtime = require('../../../utils/vue/props/runtime.js');
const require_icon = require('../../../utils/vue/icon.js');
//#region ../../packages/components/alert/src/alert.ts
const alertEffects = ["light", "dark"];
/**
* @deprecated Removed after 3.0.0, Use `AlertProps` instead.
*/
const alertProps = require_runtime.buildProps({
title: {
type: String,
default: ""
},
description: {
type: String,
default: ""
},
type: {
type: String,
values: require_objects.keysOf(require_icon.TypeComponentsMap),
default: "info"
},
closable: {
type: Boolean,
default: true
},
closeText: {
type: String,
default: ""
},
showIcon: Boolean,
center: Boolean,
effect: {
type: String,
values: alertEffects,
default: "light"
}
});
const alertEmits = { close: (evt) => evt instanceof MouseEvent };
//#endregion
exports.alertEffects = alertEffects;
exports.alertEmits = alertEmits;
exports.alertProps = alertProps;
//# sourceMappingURL=alert.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"alert.js","names":["buildProps","keysOf","TypeComponentsMap"],"sources":["../../../../../../packages/components/alert/src/alert.ts"],"sourcesContent":["import { TypeComponentsMap, buildProps, keysOf } from '@element-plus/utils'\n\nimport type { ExtractPublicPropTypes } from 'vue'\n\nexport const alertEffects = ['light', 'dark'] as const\n\nexport interface AlertProps {\n /**\n * @description alert title.\n */\n title?: string\n /**\n * @description descriptive text.\n */\n description?: string\n /**\n * @description alert type.\n */\n type?: keyof typeof TypeComponentsMap\n /**\n * @description whether alert can be dismissed.\n */\n closable?: boolean\n /**\n * @description text for replacing x button\n */\n closeText?: string\n /**\n * @description whether show icon\n */\n showIcon?: boolean\n /**\n * @description should content be placed in center.\n */\n center?: boolean\n /**\n * @description theme style\n */\n effect?: 'light' | 'dark'\n}\n\n/**\n * @deprecated Removed after 3.0.0, Use `AlertProps` instead.\n */\nexport const alertProps = buildProps({\n /**\n * @description alert title.\n */\n title: {\n type: String,\n default: '',\n },\n description: {\n type: String,\n default: '',\n },\n /**\n * @description alert type.\n */\n type: {\n type: String,\n values: keysOf(TypeComponentsMap),\n default: 'info',\n },\n /**\n * @description whether alert can be dismissed.\n */\n closable: {\n type: Boolean,\n default: true,\n },\n /**\n * @description text for replacing x button\n */\n closeText: {\n type: String,\n default: '',\n },\n /**\n * @description whether show icon\n */\n showIcon: Boolean,\n /**\n * @description should content be placed in center.\n */\n center: Boolean,\n effect: {\n type: String,\n values: alertEffects,\n default: 'light',\n },\n} as const)\n\n/**\n * @deprecated Removed after 3.0.0, Use `AlertProps` instead.\n */\nexport type AlertPropsPublic = ExtractPublicPropTypes<typeof alertProps>\n\nexport const alertEmits = {\n close: (evt: MouseEvent) => evt instanceof MouseEvent,\n}\nexport type AlertEmits = typeof alertEmits\n"],"mappings":";;;;;;AAIA,MAAa,eAAe,CAAC,SAAS,OAAO;;;;AAwC7C,MAAa,aAAaA,2BAAW;CAInC,OAAO;EACL,MAAM;EACN,SAAS;EACV;CACD,aAAa;EACX,MAAM;EACN,SAAS;EACV;CAID,MAAM;EACJ,MAAM;EACN,QAAQC,uBAAOC,+BAAkB;EACjC,SAAS;EACV;CAID,UAAU;EACR,MAAM;EACN,SAAS;EACV;CAID,WAAW;EACT,MAAM;EACN,SAAS;EACV;CAID,UAAU;CAIV,QAAQ;CACR,QAAQ;EACN,MAAM;EACN,QAAQ;EACR,SAAS;EACV;CACF,CAAU;AAOX,MAAa,aAAa,EACxB,QAAQ,QAAoB,eAAe,YAC5C"}

View File

@@ -0,0 +1,35 @@
import { TypeComponentsMap } from "../../../utils/vue/icon.js";
import "../../../utils/index.js";
import { AlertProps } from "./alert.js";
import * as vue from "vue";
//#region ../../packages/components/alert/src/alert.vue.d.ts
declare var __VLS_13: {}, __VLS_20: {}, __VLS_22: {};
type __VLS_Slots = {} & {
icon?: (props: typeof __VLS_13) => any;
} & {
title?: (props: typeof __VLS_20) => any;
} & {
default?: (props: typeof __VLS_22) => any;
};
declare const __VLS_base: vue.DefineComponent<AlertProps, {}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
close: (evt: MouseEvent) => void;
}, string, vue.PublicProps, Readonly<AlertProps> & Readonly<{
onClose?: ((evt: MouseEvent) => any) | undefined;
}>, {
type: keyof typeof TypeComponentsMap;
title: string;
description: string;
closable: boolean;
closeText: string;
effect: "light" | "dark";
}, {}, {}, {}, 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,82 @@
const require_runtime = require('../../../_virtual/_rolldown/runtime.js');
const require_icon = require('../../../utils/vue/icon.js');
const require_vnode = require('../../../utils/vue/vnode.js');
const require_index = require('../../../hooks/use-namespace/index.js');
const require_alert = require('./alert.js');
const require_index$1 = require('../../icon/index.js');
let vue = require("vue");
//#region ../../packages/components/alert/src/alert.vue?vue&type=script&setup=true&lang.ts
var alert_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({
name: "ElAlert",
__name: "alert",
props: require_alert.alertProps,
emits: require_alert.alertEmits,
setup(__props, { emit: __emit }) {
const { Close } = require_icon.TypeComponents;
const props = __props;
const emit = __emit;
const slots = (0, vue.useSlots)();
const ns = require_index.useNamespace("alert");
const visible = (0, vue.ref)(true);
const iconComponent = (0, vue.computed)(() => require_icon.TypeComponentsMap[props.type]);
const hasDesc = (0, vue.computed)(() => {
if (props.description) return true;
const slotContent = slots.default?.();
if (!slotContent) return false;
return require_vnode.flattedChildren(slotContent).some((child) => !require_vnode.isComment(child));
});
const close = (evt) => {
visible.value = false;
emit("close", evt);
};
return (_ctx, _cache) => {
return (0, vue.openBlock)(), (0, vue.createBlock)(vue.Transition, {
name: (0, vue.unref)(ns).b("fade"),
persisted: ""
}, {
default: (0, vue.withCtx)(() => [(0, vue.withDirectives)((0, vue.createElementVNode)("div", {
class: (0, vue.normalizeClass)([
(0, vue.unref)(ns).b(),
(0, vue.unref)(ns).m(__props.type),
(0, vue.unref)(ns).is("center", __props.center),
(0, vue.unref)(ns).is(__props.effect)
]),
role: "alert"
}, [__props.showIcon && (_ctx.$slots.icon || iconComponent.value) ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(require_index$1.ElIcon), {
key: 0,
class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("icon"), (0, vue.unref)(ns).is("big", hasDesc.value)])
}, {
default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "icon", {}, () => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(iconComponent.value)))])]),
_: 3
}, 8, ["class"])) : (0, vue.createCommentVNode)("v-if", true), (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("content")) }, [
__props.title || _ctx.$slots.title ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", {
key: 0,
class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("title"), { "with-description": hasDesc.value }])
}, [(0, vue.renderSlot)(_ctx.$slots, "title", {}, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)(__props.title), 1)])], 2)) : (0, vue.createCommentVNode)("v-if", true),
hasDesc.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("p", {
key: 1,
class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("description"))
}, [(0, vue.renderSlot)(_ctx.$slots, "default", {}, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)(__props.description), 1)])], 2)) : (0, vue.createCommentVNode)("v-if", true),
__props.closable ? ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 2 }, [__props.closeText ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", {
key: 0,
class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("close-btn"), (0, vue.unref)(ns).is("customed")]),
onClick: close
}, (0, vue.toDisplayString)(__props.closeText), 3)) : ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(require_index$1.ElIcon), {
key: 1,
class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("close-btn")),
onClick: close
}, {
default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(Close))]),
_: 1
}, 8, ["class"]))], 64)) : (0, vue.createCommentVNode)("v-if", true)
], 2)], 2), [[vue.vShow, visible.value]])]),
_: 3
}, 8, ["name"]);
};
}
});
//#endregion
exports.default = alert_vue_vue_type_script_setup_true_lang_default;
//# sourceMappingURL=alert.vue_vue_type_script_setup_true_lang.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"alert.vue_vue_type_script_setup_true_lang.js","names":["$slots"],"sources":["../../../../../../packages/components/alert/src/alert.vue"],"sourcesContent":["<template>\n <transition :name=\"ns.b('fade')\">\n <div\n v-show=\"visible\"\n :class=\"[ns.b(), ns.m(type), ns.is('center', center), ns.is(effect)]\"\n role=\"alert\"\n >\n <el-icon\n v-if=\"showIcon && ($slots.icon || iconComponent)\"\n :class=\"[ns.e('icon'), ns.is('big', hasDesc)]\"\n >\n <slot name=\"icon\">\n <component :is=\"iconComponent\" />\n </slot>\n </el-icon>\n\n <div :class=\"ns.e('content')\">\n <span\n v-if=\"title || $slots.title\"\n :class=\"[ns.e('title'), { 'with-description': hasDesc }]\"\n >\n <slot name=\"title\">{{ title }}</slot>\n </span>\n <p v-if=\"hasDesc\" :class=\"ns.e('description')\">\n <slot>\n {{ description }}\n </slot>\n </p>\n <template v-if=\"closable\">\n <div\n v-if=\"closeText\"\n :class=\"[ns.e('close-btn'), ns.is('customed')]\"\n @click=\"close\"\n >\n {{ closeText }}\n </div>\n <el-icon v-else :class=\"ns.e('close-btn')\" @click=\"close\">\n <Close />\n </el-icon>\n </template>\n </div>\n </div>\n </transition>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, ref, useSlots } from 'vue'\nimport { ElIcon } from '@element-plus/components/icon'\nimport {\n TypeComponents,\n TypeComponentsMap,\n flattedChildren,\n isComment,\n} from '@element-plus/utils'\nimport { useNamespace } from '@element-plus/hooks'\nimport { alertEmits } from './alert'\n\nimport type { AlertProps } from './alert'\n\nconst { Close } = TypeComponents\n\ndefineOptions({\n name: 'ElAlert',\n})\n\nconst props = withDefaults(defineProps<AlertProps>(), {\n title: '',\n description: '',\n type: 'info',\n closable: true,\n closeText: '',\n effect: 'light',\n})\nconst emit = defineEmits(alertEmits)\nconst slots = useSlots()\n\nconst ns = useNamespace('alert')\n\nconst visible = ref(true)\n\nconst iconComponent = computed(() => TypeComponentsMap[props.type])\n\nconst hasDesc = computed(() => {\n if (props.description) return true\n const slotContent = slots.default?.()\n if (!slotContent) return false\n\n const children = flattedChildren(slotContent)\n return children.some((child) => !isComment(child))\n})\n\nconst close = (evt: MouseEvent) => {\n visible.value = false\n emit('close', evt)\n}\n</script>\n"],"mappings":";;;;;;;;;;;;;;;EA2DA,MAAM,EAAE,UAAU;EAMlB,MAAM,QAAQ;EAQd,MAAM,OAAO;EACb,MAAM,2BAAiB;EAEvB,MAAM,KAAK,2BAAa,QAAO;EAE/B,MAAM,uBAAc,KAAI;EAExB,MAAM,wCAA+B,+BAAkB,MAAM,MAAK;EAElE,MAAM,kCAAyB;AAC7B,OAAI,MAAM,YAAa,QAAO;GAC9B,MAAM,cAAc,MAAM,WAAU;AACpC,OAAI,CAAC,YAAa,QAAO;AAGzB,UADiB,8BAAgB,YAAW,CAC5B,MAAM,UAAU,CAAC,wBAAU,MAAM,CAAA;IAClD;EAED,MAAM,SAAS,QAAoB;AACjC,WAAQ,QAAQ;AAChB,QAAK,SAAS,IAAG;;;qDAnDJ,gBAAA;IAzCA,qBAAM,GAAE,CAAC,EAAC,OAAA;IAAvB,WAAA;;oCAwCQ,qDAAA,OAAA;KArCH,+BAAK;qBAAG,GAAE,CAAC,GAAC;qBAAI,GAAE,CAAC,EAAE,QAAA,KAAI;qBAAG,GAAE,CAAC,GAAE,UAAW,QAAA,OAAM;qBAAG,GAAE,CAAC,GAAG,QAAA,OAAM;MAAA,CAAA;KAClE,MAAK;QAGG,QAAA,aAAaA,KAAAA,OAAO,QAAQ,cAAA,oEAM1B,uBAAA,EAAA;;KALP,+BAAK,gBAAG,GAAE,CAAC,EAAC,OAAA,iBAAU,GAAE,CAAC,GAAE,OAAQ,QAAA,MAAO,CAAA,CAAA;;qCAIpC,qBAAA,KAAA,QAAA,QAAA,EAAA,QAAA,8EADW,cAAA,MAAa,CAAA;;+FA4B3B,OAAA,EAxBA,8CAAO,GAAE,CAAC,EAAC,UAAA,CAAA;KAEP,QAAA,SAASA,KAAAA,OAAO,2DAIjB,QAAA;;MAHJ,+BAAK,gBAAG,GAAE,CAAC,EAAC,QAAA,EAAA,EAAA,oBAAiC,QAAA,OAAO,CAAA,CAAA;6BAEhB,KAAA,QAAA,SAAA,EAAA,QAAA,mDAAf,QAAA,MAAK,EAAA,EAAA;KAEpB,QAAA,2DAIL,KAAA;;MAJe,8CAAO,GAAE,CAAC,EAAC,cAAA,CAAA;6BAGrB,KAAA,QAAA,WAAA,EAAA,QAAA,mDADF,QAAA,YAAW,EAAA,EAAA;KAGF,QAAA,8DAWL,cAAA,EAAA,KAAA,GAAA,EAAA,CATD,QAAA,+DAKF,OAAA;;MAJH,+BAAK,gBAAG,GAAE,CAAC,EAAC,YAAA,iBAAe,GAAE,CAAC,GAAE,WAAA,CAAA,CAAA;MAChC,SAAO;iCAEL,QAAA,UAAS,EAAA,EAAA,+DAIJ,uBAAA,EAAA;;MAFO,8CAAO,GAAE,CAAC,EAAC,YAAA,CAAA;MAAgB,SAAO;;sCACxC,qCAAA,MAAA,CAAA;;;6BAlCP,QAAA,MAAO"}

View File

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

View File

@@ -0,0 +1 @@
{"version":3,"file":"alert2.js","names":[],"sources":["../../../../../../packages/components/alert/src/alert.vue"],"sourcesContent":["<template>\n <transition :name=\"ns.b('fade')\">\n <div\n v-show=\"visible\"\n :class=\"[ns.b(), ns.m(type), ns.is('center', center), ns.is(effect)]\"\n role=\"alert\"\n >\n <el-icon\n v-if=\"showIcon && ($slots.icon || iconComponent)\"\n :class=\"[ns.e('icon'), ns.is('big', hasDesc)]\"\n >\n <slot name=\"icon\">\n <component :is=\"iconComponent\" />\n </slot>\n </el-icon>\n\n <div :class=\"ns.e('content')\">\n <span\n v-if=\"title || $slots.title\"\n :class=\"[ns.e('title'), { 'with-description': hasDesc }]\"\n >\n <slot name=\"title\">{{ title }}</slot>\n </span>\n <p v-if=\"hasDesc\" :class=\"ns.e('description')\">\n <slot>\n {{ description }}\n </slot>\n </p>\n <template v-if=\"closable\">\n <div\n v-if=\"closeText\"\n :class=\"[ns.e('close-btn'), ns.is('customed')]\"\n @click=\"close\"\n >\n {{ closeText }}\n </div>\n <el-icon v-else :class=\"ns.e('close-btn')\" @click=\"close\">\n <Close />\n </el-icon>\n </template>\n </div>\n </div>\n </transition>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, ref, useSlots } from 'vue'\nimport { ElIcon } from '@element-plus/components/icon'\nimport {\n TypeComponents,\n TypeComponentsMap,\n flattedChildren,\n isComment,\n} from '@element-plus/utils'\nimport { useNamespace } from '@element-plus/hooks'\nimport { alertEmits } from './alert'\n\nimport type { AlertProps } from './alert'\n\nconst { Close } = TypeComponents\n\ndefineOptions({\n name: 'ElAlert',\n})\n\nconst props = withDefaults(defineProps<AlertProps>(), {\n title: '',\n description: '',\n type: 'info',\n closable: true,\n closeText: '',\n effect: 'light',\n})\nconst emit = defineEmits(alertEmits)\nconst slots = useSlots()\n\nconst ns = useNamespace('alert')\n\nconst visible = ref(true)\n\nconst iconComponent = computed(() => TypeComponentsMap[props.type])\n\nconst hasDesc = computed(() => {\n if (props.description) return true\n const slotContent = slots.default?.()\n if (!slotContent) return false\n\n const children = flattedChildren(slotContent)\n return children.some((child) => !isComment(child))\n})\n\nconst close = (evt: MouseEvent) => {\n visible.value = false\n emit('close', evt)\n}\n</script>\n"],"mappings":""}

View File

@@ -0,0 +1,6 @@
import { _default } from "./alert.vue.js";
//#region ../../packages/components/alert/src/instance.d.ts
type AlertInstance = InstanceType<typeof _default> & unknown;
//#endregion
export { AlertInstance };

View File

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

View File

@@ -0,0 +1,3 @@
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
require('../../base/style/css.js');
require("element-plus/theme-chalk/el-alert.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/alert.scss");

View File

@@ -0,0 +1,3 @@
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
require('../../base/style/css.js');
require("element-plus/theme-chalk/el-anchor-link.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/anchor-link.scss");

View File

@@ -0,0 +1,13 @@
import { SFCWithInstall } from "../../utils/vue/typescript.js";
import "../../utils/index.js";
import { AnchorEmits, AnchorInstance, AnchorProps, AnchorPropsPublic, anchorEmits, anchorProps } from "./src/anchor.js";
import { _default } from "./src/anchor.vue.js";
import { _default as _default$1 } from "./src/anchor-link.vue.js";
//#region ../../packages/components/anchor/index.d.ts
declare const ElAnchor: SFCWithInstall<typeof _default> & {
AnchorLink: typeof _default$1;
};
declare const ElAnchorLink: SFCWithInstall<typeof _default$1>;
//#endregion
export { AnchorEmits, AnchorInstance, AnchorProps, AnchorPropsPublic, ElAnchor, ElAnchor as default, ElAnchorLink, anchorEmits, anchorProps };

View File

@@ -0,0 +1,17 @@
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
const require_install = require('../../utils/vue/install.js');
const require_anchor = require('./src/anchor.js');
const require_anchor$1 = require('./src/anchor2.js');
const require_anchor_link = require('./src/anchor-link2.js');
//#region ../../packages/components/anchor/index.ts
const ElAnchor = require_install.withInstall(require_anchor$1.default, { AnchorLink: require_anchor_link.default });
const ElAnchorLink = require_install.withNoopInstall(require_anchor_link.default);
//#endregion
exports.ElAnchor = ElAnchor;
exports.default = ElAnchor;
exports.ElAnchorLink = ElAnchorLink;
exports.anchorEmits = require_anchor.anchorEmits;
exports.anchorProps = require_anchor.anchorProps;
//# sourceMappingURL=index.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"index.js","names":["withInstall","Anchor","withNoopInstall","AnchorLink"],"sources":["../../../../../packages/components/anchor/index.ts"],"sourcesContent":["import { withInstall, withNoopInstall } from '@element-plus/utils'\nimport Anchor from './src/anchor.vue'\nimport AnchorLink from './src/anchor-link.vue'\n\nimport type { SFCWithInstall } from '@element-plus/utils'\n\nexport const ElAnchor: SFCWithInstall<typeof Anchor> & {\n AnchorLink: typeof AnchorLink\n} = withInstall(Anchor, {\n AnchorLink,\n})\nexport const ElAnchorLink: SFCWithInstall<typeof AnchorLink> =\n withNoopInstall(AnchorLink)\nexport default ElAnchor\n\nexport * from './src/anchor'\n"],"mappings":";;;;;;;AAMA,MAAa,WAETA,4BAAYC,0BAAQ,EACtB,yCACD,CAAC;AACF,MAAa,eACXC,gCAAgBC,4BAAW"}

View File

@@ -0,0 +1,15 @@
import { ExtractPublicPropTypes } from "vue";
//#region ../../packages/components/anchor/src/anchor-link.d.ts
interface AnchorLinkProps {
/**
* @description the text content of the anchor link
*/
title?: string;
/**
* @description The address of the anchor link
*/
href?: string;
}
//#endregion
export { AnchorLinkProps };

View File

@@ -0,0 +1,15 @@
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
const require_runtime = require('../../../utils/vue/props/runtime.js');
//#region ../../packages/components/anchor/src/anchor-link.ts
/**
* @deprecated Removed after 3.0.0, Use `AnchorLinkProps` instead.
*/
const anchorLinkProps = require_runtime.buildProps({
title: String,
href: String
});
//#endregion
exports.anchorLinkProps = anchorLinkProps;
//# sourceMappingURL=anchor-link.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"anchor-link.js","names":["buildProps"],"sources":["../../../../../../packages/components/anchor/src/anchor-link.ts"],"sourcesContent":["import { buildProps } from '@element-plus/utils'\n\nimport type { ExtractPublicPropTypes } from 'vue'\n\nexport interface AnchorLinkProps {\n /**\n * @description the text content of the anchor link\n */\n title?: string\n /**\n * @description The address of the anchor link\n */\n href?: string\n}\n\n/**\n * @deprecated Removed after 3.0.0, Use `AnchorLinkProps` instead.\n */\nexport const anchorLinkProps = buildProps({\n /**\n * @description the text content of the anchor link\n */\n title: String,\n /**\n * @description The address of the anchor link\n */\n href: String,\n})\n\n/**\n * @deprecated Removed after 3.0.0, Use `AnchorLinkProps` instead.\n */\nexport type AnchorLinkPropsPublic = ExtractPublicPropTypes<\n typeof anchorLinkProps\n>\n"],"mappings":";;;;;;;AAkBA,MAAa,kBAAkBA,2BAAW;CAIxC,OAAO;CAIP,MAAM;CACP,CAAC"}

View File

@@ -0,0 +1,20 @@
import { AnchorLinkProps } from "./anchor-link.js";
import * as vue from "vue";
//#region ../../packages/components/anchor/src/anchor-link.vue.d.ts
declare var __VLS_1: {}, __VLS_3: {};
type __VLS_Slots = {} & {
default?: (props: typeof __VLS_1) => any;
} & {
'sub-link'?: (props: typeof __VLS_3) => any;
};
declare const __VLS_base: vue.DefineComponent<AnchorLinkProps, {}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<AnchorLinkProps> & Readonly<{}>, {}, {}, {}, {}, 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,57 @@
const require_runtime = require('../../../_virtual/_rolldown/runtime.js');
const require_constants = require('./constants.js');
const require_anchor_link = require('./anchor-link.js');
let vue = require("vue");
//#region ../../packages/components/anchor/src/anchor-link.vue?vue&type=script&setup=true&lang.ts
const _hoisted_1 = ["href"];
var anchor_link_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({
name: "ElAnchorLink",
__name: "anchor-link",
props: require_anchor_link.anchorLinkProps,
setup(__props) {
const props = __props;
const linkRef = (0, vue.ref)(null);
const { ns, direction, currentAnchor, addLink, removeLink, handleClick: contextHandleClick } = (0, vue.inject)(require_constants.anchorKey);
const cls = (0, vue.computed)(() => [ns.e("link"), ns.is("active", currentAnchor.value === props.href)]);
const handleClick = (e) => {
contextHandleClick(e, props.href);
};
(0, vue.watch)(() => props.href, (val, oldVal) => {
(0, vue.nextTick)(() => {
if (oldVal) removeLink(oldVal);
if (val) addLink({
href: val,
el: linkRef.value
});
});
});
(0, vue.onMounted)(() => {
const { href } = props;
if (href) addLink({
href,
el: linkRef.value
});
});
(0, vue.onBeforeUnmount)(() => {
const { href } = props;
if (href) removeLink(href);
});
return (_ctx, _cache) => {
return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("item")) }, [(0, vue.createElementVNode)("a", {
ref_key: "linkRef",
ref: linkRef,
class: (0, vue.normalizeClass)(cls.value),
href: __props.href,
onClick: handleClick
}, [(0, vue.renderSlot)(_ctx.$slots, "default", {}, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)(__props.title), 1)])], 10, _hoisted_1), _ctx.$slots["sub-link"] && (0, vue.unref)(direction) === "vertical" ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", {
key: 0,
class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("list"))
}, [(0, vue.renderSlot)(_ctx.$slots, "sub-link")], 2)) : (0, vue.createCommentVNode)("v-if", true)], 2);
};
}
});
//#endregion
exports.default = anchor_link_vue_vue_type_script_setup_true_lang_default;
//# sourceMappingURL=anchor-link.vue_vue_type_script_setup_true_lang.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"anchor-link.vue_vue_type_script_setup_true_lang.js","names":["$slots"],"sources":["../../../../../../packages/components/anchor/src/anchor-link.vue"],"sourcesContent":["<template>\n <div :class=\"ns.e('item')\">\n <a ref=\"linkRef\" :class=\"cls\" :href=\"href\" @click=\"handleClick\">\n <slot>{{ title }}</slot>\n </a>\n <div\n v-if=\"$slots['sub-link'] && direction === 'vertical'\"\n :class=\"ns.e('list')\"\n >\n <slot name=\"sub-link\" />\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n computed,\n inject,\n nextTick,\n onBeforeUnmount,\n onMounted,\n ref,\n watch,\n} from 'vue'\nimport { anchorKey } from './constants'\n\nimport type { AnchorLinkProps } from './anchor-link'\n\ndefineOptions({\n name: 'ElAnchorLink',\n})\n\nconst props = defineProps<AnchorLinkProps>()\n\nconst linkRef = ref<HTMLElement | null>(null)\n\nconst {\n ns,\n direction,\n currentAnchor,\n addLink,\n removeLink,\n handleClick: contextHandleClick,\n} = inject(anchorKey)!\n\nconst cls = computed(() => [\n ns.e('link'),\n ns.is('active', currentAnchor.value === props.href),\n])\n\nconst handleClick = (e: MouseEvent) => {\n contextHandleClick(e, props.href)\n}\n\nwatch(\n () => props.href,\n (val, oldVal) => {\n nextTick(() => {\n if (oldVal) removeLink(oldVal)\n if (val) {\n addLink({\n href: val,\n el: linkRef.value!,\n })\n }\n })\n }\n)\n\nonMounted(() => {\n const { href } = props\n if (href) {\n addLink({\n href,\n el: linkRef.value!,\n })\n }\n})\n\nonBeforeUnmount(() => {\n const { href } = props\n if (href) {\n removeLink(href)\n }\n})\n</script>\n"],"mappings":";;;;;;;;;;;;EAgCA,MAAM,QAAQ;EAEd,MAAM,uBAAkC,KAAI;EAE5C,MAAM,EACJ,IACA,WACA,eACA,SACA,YACA,aAAa,uCACJ,4BAAU;EAErB,MAAM,8BAAqB,CACzB,GAAG,EAAE,OAAO,EACZ,GAAG,GAAG,UAAU,cAAc,UAAU,MAAM,KAAK,CACpD,CAAA;EAED,MAAM,eAAe,MAAkB;AACrC,sBAAmB,GAAG,MAAM,KAAI;;AAGlC,uBACQ,MAAM,OACX,KAAK,WAAW;AACf,2BAAe;AACb,QAAI,OAAQ,YAAW,OAAM;AAC7B,QAAI,IACF,SAAQ;KACN,MAAM;KACN,IAAI,QAAQ;KACb,CAAA;KAEJ;IAEL;AAEA,2BAAgB;GACd,MAAM,EAAE,SAAS;AACjB,OAAI,KACF,SAAQ;IACN;IACA,IAAI,QAAQ;IACb,CAAA;IAEJ;AAED,iCAAsB;GACpB,MAAM,EAAE,SAAS;AACjB,OAAI,KACF,YAAW,KAAI;IAElB;;4DAzEO,OAAA,EAVA,8CAAO,GAAE,CAAC,EAAC,OAAA,CAAA,iCAGX,KAAA;aAFG;IAAJ,KAAI;IAAW,+BAAO,IAAA,MAAG;IAAG,MAAM,QAAA;IAAO,SAAO;2BACzB,KAAA,QAAA,WAAA,EAAA,QAAA,mDAAf,QAAA,MAAK,EAAA,EAAA,sBAGRA,KAAAA,OAAM,8BAAgB,UAAS,KAAA,gEAIjC,OAAA;;IAHH,8CAAO,GAAE,CAAC,EAAC,OAAA,CAAA;2BAEY,KAAA,QAAA,WAAA"}

View File

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

View File

@@ -0,0 +1 @@
{"version":3,"file":"anchor-link2.js","names":[],"sources":["../../../../../../packages/components/anchor/src/anchor-link.vue"],"sourcesContent":["<template>\n <div :class=\"ns.e('item')\">\n <a ref=\"linkRef\" :class=\"cls\" :href=\"href\" @click=\"handleClick\">\n <slot>{{ title }}</slot>\n </a>\n <div\n v-if=\"$slots['sub-link'] && direction === 'vertical'\"\n :class=\"ns.e('list')\"\n >\n <slot name=\"sub-link\" />\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n computed,\n inject,\n nextTick,\n onBeforeUnmount,\n onMounted,\n ref,\n watch,\n} from 'vue'\nimport { anchorKey } from './constants'\n\nimport type { AnchorLinkProps } from './anchor-link'\n\ndefineOptions({\n name: 'ElAnchorLink',\n})\n\nconst props = defineProps<AnchorLinkProps>()\n\nconst linkRef = ref<HTMLElement | null>(null)\n\nconst {\n ns,\n direction,\n currentAnchor,\n addLink,\n removeLink,\n handleClick: contextHandleClick,\n} = inject(anchorKey)!\n\nconst cls = computed(() => [\n ns.e('link'),\n ns.is('active', currentAnchor.value === props.href),\n])\n\nconst handleClick = (e: MouseEvent) => {\n contextHandleClick(e, props.href)\n}\n\nwatch(\n () => props.href,\n (val, oldVal) => {\n nextTick(() => {\n if (oldVal) removeLink(oldVal)\n if (val) {\n addLink({\n href: val,\n el: linkRef.value!,\n })\n }\n })\n }\n)\n\nonMounted(() => {\n const { href } = props\n if (href) {\n addLink({\n href,\n el: linkRef.value!,\n })\n }\n})\n\nonBeforeUnmount(() => {\n const { href } = props\n if (href) {\n removeLink(href)\n }\n})\n</script>\n"],"mappings":""}

View File

@@ -0,0 +1,71 @@
import { EpPropFinalized, EpPropMergeType } from "../../../utils/vue/props/types.js";
import "../../../utils/index.js";
import { _default } from "./anchor.vue.js";
import * as vue from "vue";
import { ExtractPublicPropTypes } from "vue";
//#region ../../packages/components/anchor/src/anchor.d.ts
interface AnchorProps {
/**
* @description scroll container
*/
container?: string | HTMLElement | Window | null;
/**
* @description Set the offset of the anchor scroll
*/
offset?: number;
/**
* @description The offset of the element starting to trigger the anchor
*/
bound?: number;
/**
* @description Set the scroll duration of the container when the anchor is clicked, in milliseconds
*/
duration?: number;
/**
* @description Whether to show the marker
*/
marker?: boolean;
/**
* @description Set Anchor type
*/
type?: 'default' | 'underline';
/**
* @description Set Anchor direction
*/
direction?: 'vertical' | 'horizontal';
/**
* @description Scroll whether link is selected at the top
*/
selectScrollTop?: boolean;
}
/**
* @deprecated Removed after 3.0.0, Use `AnchorProps` instead.
*/
declare const anchorProps: {
container: {
readonly type: vue.PropType<EpPropMergeType<(new (...args: any[]) => string | HTMLElement | Window) | (() => string | HTMLElement | Window | null) | (((new (...args: any[]) => string | HTMLElement | Window) | (() => string | HTMLElement | Window | null)) | null)[], unknown, unknown>>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
offset: EpPropFinalized<NumberConstructor, unknown, unknown, number, boolean>;
bound: EpPropFinalized<NumberConstructor, unknown, unknown, number, boolean>;
duration: EpPropFinalized<NumberConstructor, unknown, unknown, number, boolean>;
marker: EpPropFinalized<BooleanConstructor, unknown, unknown, boolean, boolean>;
type: EpPropFinalized<(new (...args: any[]) => "default" | "underline") | (() => "default" | "underline") | (((new (...args: any[]) => "default" | "underline") | (() => "default" | "underline")) | null)[], unknown, unknown, string, boolean>;
direction: EpPropFinalized<(new (...args: any[]) => "horizontal" | "vertical") | (() => "horizontal" | "vertical") | (((new (...args: any[]) => "horizontal" | "vertical") | (() => "horizontal" | "vertical")) | null)[], unknown, unknown, string, boolean>;
selectScrollTop: BooleanConstructor;
};
/**
* @deprecated Removed after 3.0.0, Use `AnchorProps` instead.
*/
type AnchorPropsPublic = ExtractPublicPropTypes<typeof anchorProps>;
type AnchorInstance = InstanceType<typeof _default> & unknown;
declare const anchorEmits: {
change: (href: string) => boolean;
click: (e: MouseEvent, href?: string) => boolean;
};
type AnchorEmits = typeof anchorEmits;
//#endregion
export { AnchorEmits, AnchorInstance, AnchorProps, AnchorPropsPublic, anchorEmits, anchorProps };

View File

@@ -0,0 +1,47 @@
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
const require_runtime = require('../../../_virtual/_rolldown/runtime.js');
const require_types = require('../../../utils/types.js');
const require_runtime$1 = require('../../../utils/vue/props/runtime.js');
let _vue_shared = require("@vue/shared");
//#region ../../packages/components/anchor/src/anchor.ts
/**
* @deprecated Removed after 3.0.0, Use `AnchorProps` instead.
*/
const anchorProps = require_runtime$1.buildProps({
container: { type: require_runtime$1.definePropType([String, Object]) },
offset: {
type: Number,
default: 0
},
bound: {
type: Number,
default: 15
},
duration: {
type: Number,
default: 300
},
marker: {
type: Boolean,
default: true
},
type: {
type: require_runtime$1.definePropType(String),
default: "default"
},
direction: {
type: require_runtime$1.definePropType(String),
default: "vertical"
},
selectScrollTop: Boolean
});
const anchorEmits = {
change: (href) => (0, _vue_shared.isString)(href),
click: (e, href) => e instanceof MouseEvent && ((0, _vue_shared.isString)(href) || require_types.isUndefined(href))
};
//#endregion
exports.anchorEmits = anchorEmits;
exports.anchorProps = anchorProps;
//# sourceMappingURL=anchor.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"anchor.js","names":["buildProps","definePropType","isUndefined"],"sources":["../../../../../../packages/components/anchor/src/anchor.ts"],"sourcesContent":["import {\n buildProps,\n definePropType,\n isString,\n isUndefined,\n} from '@element-plus/utils'\n\nimport type { ExtractPublicPropTypes } from 'vue'\nimport type Anchor from './anchor.vue'\n\nexport interface AnchorProps {\n /**\n * @description scroll container\n */\n container?: string | HTMLElement | Window | null\n /**\n * @description Set the offset of the anchor scroll\n */\n offset?: number\n /**\n * @description The offset of the element starting to trigger the anchor\n */\n bound?: number\n /**\n * @description Set the scroll duration of the container when the anchor is clicked, in milliseconds\n */\n duration?: number\n /**\n * @description Whether to show the marker\n */\n marker?: boolean\n /**\n * @description Set Anchor type\n */\n type?: 'default' | 'underline'\n /**\n * @description Set Anchor direction\n */\n direction?: 'vertical' | 'horizontal'\n /**\n * @description Scroll whether link is selected at the top\n */\n selectScrollTop?: boolean\n}\n\n/**\n * @deprecated Removed after 3.0.0, Use `AnchorProps` instead.\n */\nexport const anchorProps = buildProps({\n /**\n * @description scroll container\n */\n container: {\n type: definePropType<string | HTMLElement | Window | null>([\n String,\n Object,\n ]),\n },\n /**\n * @description Set the offset of the anchor scroll\n */\n offset: {\n type: Number,\n default: 0,\n },\n /**\n * @description The offset of the element starting to trigger the anchor\n */\n bound: {\n type: Number,\n default: 15,\n },\n /**\n * @description Set the scroll duration of the container when the anchor is clicked, in milliseconds\n */\n duration: {\n type: Number,\n default: 300,\n },\n /**\n * @description Whether to show the marker\n */\n marker: {\n type: Boolean,\n default: true,\n },\n /**\n * @description Set Anchor type\n */\n type: {\n type: definePropType<'default' | 'underline'>(String),\n default: 'default',\n },\n /**\n * @description Set Anchor direction\n */\n direction: {\n type: definePropType<'vertical' | 'horizontal'>(String),\n default: 'vertical',\n },\n /**\n * @description Scroll whether link is selected at the top\n */\n selectScrollTop: Boolean,\n})\n\n/**\n * @deprecated Removed after 3.0.0, Use `AnchorProps` instead.\n */\nexport type AnchorPropsPublic = ExtractPublicPropTypes<typeof anchorProps>\nexport type AnchorInstance = InstanceType<typeof Anchor> & unknown\n\nexport const anchorEmits = {\n change: (href: string) => isString(href),\n click: (e: MouseEvent, href?: string) =>\n e instanceof MouseEvent && (isString(href) || isUndefined(href)),\n}\nexport type AnchorEmits = typeof anchorEmits\n"],"mappings":";;;;;;;;;;AAgDA,MAAa,cAAcA,6BAAW;CAIpC,WAAW,EACT,MAAMC,iCAAqD,CACzD,QACA,OACD,CAAC,EACH;CAID,QAAQ;EACN,MAAM;EACN,SAAS;EACV;CAID,OAAO;EACL,MAAM;EACN,SAAS;EACV;CAID,UAAU;EACR,MAAM;EACN,SAAS;EACV;CAID,QAAQ;EACN,MAAM;EACN,SAAS;EACV;CAID,MAAM;EACJ,MAAMA,iCAAwC,OAAO;EACrD,SAAS;EACV;CAID,WAAW;EACT,MAAMA,iCAA0C,OAAO;EACvD,SAAS;EACV;CAID,iBAAiB;CAClB,CAAC;AAQF,MAAa,cAAc;CACzB,SAAS,mCAA0B,KAAK;CACxC,QAAQ,GAAe,SACrB,aAAa,yCAAwB,KAAK,IAAIC,0BAAY,KAAK;CAClE"}

View File

@@ -0,0 +1,33 @@
import { AnchorProps } from "./anchor.js";
import * as vue from "vue";
//#region ../../packages/components/anchor/src/anchor.vue.d.ts
declare var __VLS_1: {};
type __VLS_Slots = {} & {
default?: (props: typeof __VLS_1) => any;
};
declare const __VLS_base: vue.DefineComponent<AnchorProps, {
scrollTo: (href?: string) => void;
}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
change: (href: string) => void;
click: (e: MouseEvent, href?: string | undefined) => void;
}, string, vue.PublicProps, Readonly<AnchorProps> & Readonly<{
onChange?: ((href: string) => any) | undefined;
onClick?: ((e: MouseEvent, href?: string | undefined) => any) | undefined;
}>, {
offset: number;
type: "default" | "underline";
direction: "vertical" | "horizontal";
marker: boolean;
duration: number;
bound: number;
}, {}, {}, {}, 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,179 @@
const require_runtime = require('../../../_virtual/_rolldown/runtime.js');
const require_event = require('../../../constants/event.js');
const require_position = require('../../../utils/dom/position.js');
const require_types = require('../../../utils/types.js');
const require_scroll = require('../../../utils/dom/scroll.js');
const require_element = require('../../../utils/dom/element.js');
const require_throttleByRaf = require('../../../utils/throttleByRaf.js');
const require_index = require('../../../hooks/use-namespace/index.js');
const require_anchor = require('./anchor.js');
const require_constants = require('./constants.js');
let _vueuse_core = require("@vueuse/core");
let vue = require("vue");
//#region ../../packages/components/anchor/src/anchor.vue?vue&type=script&setup=true&lang.ts
var anchor_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({
name: "ElAnchor",
__name: "anchor",
props: require_anchor.anchorProps,
emits: require_anchor.anchorEmits,
setup(__props, { expose: __expose, emit: __emit }) {
const props = __props;
const emit = __emit;
const slots = (0, vue.useSlots)();
const currentAnchor = (0, vue.ref)("");
const markerStyle = (0, vue.ref)({});
const anchorRef = (0, vue.ref)(null);
const markerRef = (0, vue.ref)(null);
const containerEl = (0, vue.ref)();
const links = {};
let isScrolling = false;
let currentScrollTop = 0;
const ns = require_index.useNamespace("anchor");
const cls = (0, vue.computed)(() => [
ns.b(),
props.type === "underline" ? ns.m("underline") : "",
ns.m(props.direction)
]);
const addLink = (state) => {
links[state.href] = state.el;
};
const removeLink = (href) => {
delete links[href];
};
const setCurrentAnchor = (href) => {
if (currentAnchor.value !== href) {
currentAnchor.value = href;
emit(require_event.CHANGE_EVENT, href);
}
};
let clearAnimate = null;
let currentTargetHref = "";
const scrollToAnchor = (href) => {
if (!containerEl.value) return;
const target = require_element.getElement(href);
if (!target) return;
if (clearAnimate) {
if (currentTargetHref === href) return;
clearAnimate();
}
currentTargetHref = href;
isScrolling = true;
const scrollEle = require_scroll.getScrollElement(target, containerEl.value);
const distance = require_position.getOffsetTopDistance(target, scrollEle);
const max = scrollEle.scrollHeight - scrollEle.clientHeight;
const to = Math.min(distance - props.offset, max);
clearAnimate = require_scroll.animateScrollTo(containerEl.value, currentScrollTop, to, props.duration, () => {
setTimeout(() => {
isScrolling = false;
currentTargetHref = "";
}, 20);
});
};
const scrollTo = (href) => {
if (href) {
setCurrentAnchor(href);
scrollToAnchor(href);
}
};
const handleClick = (e, href) => {
emit("click", e, href);
scrollTo(href);
};
const handleScroll = require_throttleByRaf.throttleByRaf(() => {
if (containerEl.value) currentScrollTop = require_scroll.getScrollTop(containerEl.value);
const currentHref = getCurrentHref();
if (isScrolling || require_types.isUndefined(currentHref)) return;
setCurrentAnchor(currentHref);
});
const getCurrentHref = () => {
if (!containerEl.value) return;
const scrollTop = require_scroll.getScrollTop(containerEl.value);
const anchorTopList = [];
for (const href of Object.keys(links)) {
const target = require_element.getElement(href);
if (!target) continue;
const distance = require_position.getOffsetTopDistance(target, require_scroll.getScrollElement(target, containerEl.value));
anchorTopList.push({
top: distance - props.offset - props.bound,
href
});
}
anchorTopList.sort((prev, next) => prev.top - next.top);
for (let i = 0; i < anchorTopList.length; i++) {
const item = anchorTopList[i];
const next = anchorTopList[i + 1];
if (i === 0 && scrollTop === 0) return props.selectScrollTop ? item.href : "";
if (item.top <= scrollTop && (!next || next.top > scrollTop)) return item.href;
}
};
const getContainer = () => {
const el = require_element.getElement(props.container);
if (!el || require_types.isWindow(el)) containerEl.value = window;
else containerEl.value = el;
};
(0, _vueuse_core.useEventListener)(containerEl, "scroll", handleScroll);
const updateMarkerStyle = () => {
(0, vue.nextTick)(() => {
if (!anchorRef.value || !markerRef.value || !currentAnchor.value) {
markerStyle.value = {};
return;
}
const currentLinkEl = links[currentAnchor.value];
if (!currentLinkEl) {
markerStyle.value = {};
return;
}
const anchorRect = anchorRef.value.getBoundingClientRect();
const markerRect = markerRef.value.getBoundingClientRect();
const linkRect = currentLinkEl.getBoundingClientRect();
if (props.direction === "horizontal") markerStyle.value = {
left: `${linkRect.left - anchorRect.left}px`,
width: `${linkRect.width}px`,
opacity: 1
};
else markerStyle.value = {
top: `${linkRect.top - anchorRect.top + (linkRect.height - markerRect.height) / 2}px`,
opacity: 1
};
});
};
(0, vue.watch)(currentAnchor, updateMarkerStyle);
(0, vue.watch)(() => slots.default?.(), updateMarkerStyle);
(0, vue.onMounted)(() => {
getContainer();
const hash = decodeURIComponent(window.location.hash);
if (require_element.getElement(hash)) scrollTo(hash);
else handleScroll();
});
(0, vue.watch)(() => props.container, () => {
getContainer();
});
(0, vue.provide)(require_constants.anchorKey, {
ns,
direction: props.direction,
currentAnchor,
addLink,
removeLink,
handleClick
});
__expose({ scrollTo });
return (_ctx, _cache) => {
return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", {
ref_key: "anchorRef",
ref: anchorRef,
class: (0, vue.normalizeClass)(cls.value)
}, [__props.marker ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", {
key: 0,
ref_key: "markerRef",
ref: markerRef,
class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("marker")),
style: (0, vue.normalizeStyle)(markerStyle.value)
}, null, 6)) : (0, vue.createCommentVNode)("v-if", true), (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("list")) }, [(0, vue.renderSlot)(_ctx.$slots, "default")], 2)], 2);
};
}
});
//#endregion
exports.default = anchor_vue_vue_type_script_setup_true_lang_default;
//# sourceMappingURL=anchor.vue_vue_type_script_setup_true_lang.js.map

File diff suppressed because one or more lines are too long

View File

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

File diff suppressed because one or more lines are too long

View File

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

View File

@@ -0,0 +1 @@
{"version":3,"file":"constants.js","names":[],"sources":["../../../../../../packages/components/anchor/src/constants.ts"],"sourcesContent":["import type { InjectionKey, Ref } from 'vue'\nimport type { UseNamespaceReturn } from '@element-plus/hooks'\n\nexport interface AnchorLinkState {\n el: HTMLElement\n href: string\n}\n\nexport interface AnchorContext {\n ns: UseNamespaceReturn\n direction: string\n currentAnchor: Ref<string>\n addLink(state: AnchorLinkState): void\n removeLink(href: string): void\n handleClick(e: MouseEvent, href?: string): void\n}\n\nexport const anchorKey: InjectionKey<AnchorContext> = Symbol('anchor')\n"],"mappings":";;;AAiBA,MAAa,YAAyC,OAAO,SAAS"}

View File

@@ -0,0 +1,3 @@
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
require('../../base/style/css.js');
require("element-plus/theme-chalk/el-anchor.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/anchor.scss");

View File

@@ -0,0 +1,3 @@
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
require('../../base/style/css.js');
require("element-plus/theme-chalk/el-aside.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/aside.scss");

View File

@@ -0,0 +1,9 @@
import { SFCWithInstall } from "../../utils/vue/typescript.js";
import "../../utils/index.js";
import { AutocompleteData, AutocompleteDataItem, AutocompleteEmits, AutocompleteFetchSuggestions, AutocompleteFetchSuggestionsCallback, AutocompleteInstance, AutocompletePlacement, AutocompleteProps, AutocompletePropsPublic, autocompleteEmits, autocompleteProps } from "./src/autocomplete.js";
import { _default } from "./src/autocomplete.vue.js";
//#region ../../packages/components/autocomplete/index.d.ts
declare const ElAutocomplete: SFCWithInstall<typeof _default>;
//#endregion
export { AutocompleteData, AutocompleteDataItem, AutocompleteEmits, AutocompleteFetchSuggestions, AutocompleteFetchSuggestionsCallback, AutocompleteInstance, AutocompletePlacement, AutocompleteProps, AutocompletePropsPublic, ElAutocomplete, ElAutocomplete as default, autocompleteEmits, autocompleteProps };

View File

@@ -0,0 +1,14 @@
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
const require_install = require('../../utils/vue/install.js');
const require_autocomplete = require('./src/autocomplete.js');
const require_autocomplete$1 = require('./src/autocomplete2.js');
//#region ../../packages/components/autocomplete/index.ts
const ElAutocomplete = require_install.withInstall(require_autocomplete$1.default);
//#endregion
exports.ElAutocomplete = ElAutocomplete;
exports.default = ElAutocomplete;
exports.autocompleteEmits = require_autocomplete.autocompleteEmits;
exports.autocompleteProps = require_autocomplete.autocompleteProps;
//# sourceMappingURL=index.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"index.js","names":["withInstall","Autocomplete"],"sources":["../../../../../packages/components/autocomplete/index.ts"],"sourcesContent":["import { withInstall } from '@element-plus/utils'\nimport Autocomplete from './src/autocomplete.vue'\n\nimport type { SFCWithInstall } from '@element-plus/utils'\n\nexport const ElAutocomplete: SFCWithInstall<typeof Autocomplete> =\n withInstall(Autocomplete)\n\nexport default ElAutocomplete\n\nexport * from './src/autocomplete'\n"],"mappings":";;;;;;AAKA,MAAa,iBACXA,4BAAYC,+BAAa"}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,74 @@
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_content = require('../../tooltip/src/content.js');
const require_input = require('../../input/src/input.js');
let _vue_shared = require("@vue/shared");
//#region ../../packages/components/autocomplete/src/autocomplete.ts
/**
* @deprecated Removed after 3.0.0, Use `AutocompleteProps` instead.
*/
const autocompleteProps = require_runtime$1.buildProps({
...require_input.inputProps,
valueKey: {
type: String,
default: "value"
},
modelValue: {
type: [String, Number],
default: ""
},
debounce: {
type: Number,
default: 300
},
placement: {
type: require_runtime$1.definePropType(String),
values: [
"top",
"top-start",
"top-end",
"bottom",
"bottom-start",
"bottom-end"
],
default: "bottom-start"
},
fetchSuggestions: {
type: require_runtime$1.definePropType([Function, Array]),
default: _vue_shared.NOOP
},
popperClass: require_content.useTooltipContentProps.popperClass,
popperStyle: require_content.useTooltipContentProps.popperStyle,
triggerOnFocus: {
type: Boolean,
default: true
},
selectWhenUnmatched: Boolean,
hideLoading: Boolean,
teleported: require_content.useTooltipContentProps.teleported,
appendTo: require_content.useTooltipContentProps.appendTo,
highlightFirstItem: Boolean,
fitInputWidth: Boolean,
loopNavigation: {
type: Boolean,
default: true
}
});
const autocompleteEmits = {
[require_event.UPDATE_MODEL_EVENT]: (value) => (0, _vue_shared.isString)(value) || require_types.isNumber(value),
[require_event.INPUT_EVENT]: (value) => (0, _vue_shared.isString)(value) || require_types.isNumber(value),
[require_event.CHANGE_EVENT]: (value) => (0, _vue_shared.isString)(value) || require_types.isNumber(value),
focus: (evt) => evt instanceof FocusEvent,
blur: (evt) => evt instanceof FocusEvent,
clear: () => true,
select: (item) => (0, _vue_shared.isObject)(item)
};
//#endregion
exports.autocompleteEmits = autocompleteEmits;
exports.autocompleteProps = autocompleteProps;
//# sourceMappingURL=autocomplete.js.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,66 @@
import { InputInstance } from "../../input/src/instance.js";
import "../../input/index.js";
import { TooltipInstance } from "../../tooltip/src/tooltip.js";
import "../../tooltip/index.js";
import { AutocompleteData, AutocompleteDataItem, AutocompleteProps } from "./autocomplete.js";
import * as vue from "vue";
import { Ref } from "vue";
//#region ../../packages/components/autocomplete/src/autocomplete.vue.d.ts
declare const __VLS_export: <T extends AutocompleteDataItem = AutocompleteDataItem>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
props: vue.PublicProps & __VLS_PrettifyLocal<AutocompleteProps<T> & {
onBlur?: ((evt: FocusEvent) => any) | undefined;
onChange?: ((value: string | number) => any) | undefined;
onFocus?: ((evt: FocusEvent) => any) | undefined;
onInput?: ((value: string | number) => any) | undefined;
onSelect?: ((item: Record<string, any>) => any) | undefined;
"onUpdate:modelValue"?: ((value: string | number) => any) | undefined;
onClear?: (() => any) | undefined;
}> & (typeof globalThis extends {
__VLS_PROPS_FALLBACK: infer P;
} ? P : {});
expose: (exposed: vue.ShallowUnwrapRef<{
/** @description the index of the currently highlighted item */highlightedIndex: Ref<number, number>; /** @description autocomplete whether activated */
activated: Ref<boolean, boolean>; /** @description remote search loading status */
loading: Ref<boolean, boolean>; /** @description el-input component instance */
inputRef: Ref<InputInstance | undefined, InputInstance | undefined>; /** @description el-tooltip component instance */
popperRef: Ref<TooltipInstance | undefined, TooltipInstance | undefined>; /** @description fetch suggestions result */
suggestions: Ref<AutocompleteData<T>, AutocompleteData<T>>; /** @description triggers when a suggestion is clicked */
handleSelect: (item: T) => Promise<void>; /** @description handle keyboard enter event */
handleKeyEnter: () => Promise<void>; /** @description focus the input element */
focus: () => void; /** @description blur the input element */
blur: () => void; /** @description close suggestion */
close: () => void; /** @description highlight an item in a suggestion */
highlight: (index: number) => void; /** @description loading suggestion list */
getData: (queryString: string) => Promise<void>;
}>) => void;
attrs: any;
slots: {
prepend?: (props: {}) => any;
} & {
append?: (props: {}) => any;
} & {
prefix?: (props: {}) => any;
} & {
suffix?: (props: {}) => any;
} & {
header?: (props: {}) => any;
} & {
loading?: (props: {}) => any;
} & {
default?: (props: {
item: T;
}) => any;
} & {
footer?: (props: {}) => any;
};
emit: ((event: "blur", evt: FocusEvent) => void) & ((event: "focus", evt: FocusEvent) => void) & ((event: "select", item: Record<string, any>) => void) & ((event: "change", value: string | number) => void) & ((event: "update:modelValue", value: string | number) => void) & ((event: "input", value: string | number) => void) & ((event: "clear") => void);
}>) => vue.VNode<vue.RendererNode, vue.RendererElement, {
[key: string]: any;
}> & {
__ctx?: Awaited<typeof __VLS_setup>;
};
declare const _default: typeof __VLS_export;
type __VLS_PrettifyLocal<T> = (T extends any ? { [K in keyof T]: T[K] } : { [K in keyof T as K]: T[K] }) & {};
//#endregion
export { _default };

View File

@@ -0,0 +1,410 @@
const require_runtime = require('../../../_virtual/_rolldown/runtime.js');
const require_aria = require('../../../constants/aria.js');
const require_event = require('../../../constants/event.js');
const require_event$1 = require('../../../utils/dom/event.js');
const require_error = require('../../../utils/error.js');
const require_index = require('../../../hooks/use-namespace/index.js');
const require_index$1 = require('../../../hooks/use-id/index.js');
const require_index$2 = require('../../icon/index.js');
const require_use_form_common_props = require('../../form/src/hooks/use-form-common-props.js');
const require_index$3 = require('../../tooltip/index.js');
const require_index$4 = require('../../input/index.js');
const require_autocomplete = require('./autocomplete.js');
const require_index$5 = require('../../scrollbar/index.js');
let _vueuse_core = require("@vueuse/core");
let lodash_unified = require("lodash-unified");
let _element_plus_icons_vue = require("@element-plus/icons-vue");
let vue = require("vue");
let _vue_shared = require("@vue/shared");
//#region ../../packages/components/autocomplete/src/autocomplete.vue?vue&type=script&setup=true&lang.ts
const _hoisted_1 = ["aria-expanded", "aria-owns"];
const _hoisted_2 = { key: 0 };
const _hoisted_3 = [
"id",
"aria-selected",
"onClick"
];
const COMPONENT_NAME = "ElAutocomplete";
var autocomplete_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({
name: COMPONENT_NAME,
inheritAttrs: false,
__name: "autocomplete",
props: require_autocomplete.autocompleteProps,
emits: require_autocomplete.autocompleteEmits,
setup(__props, { expose: __expose, emit: __emit }) {
const props = __props;
const emit = __emit;
const passInputProps = (0, vue.computed)(() => {
const inputProps = require_index$4.ElInput.props ?? [];
return (0, lodash_unified.pick)(props, (0, _vue_shared.isArray)(inputProps) ? inputProps : Object.keys(inputProps));
});
const rawAttrs = (0, vue.useAttrs)();
const disabled = require_use_form_common_props.useFormDisabled();
const ns = require_index.useNamespace("autocomplete");
const inputRef = (0, vue.ref)();
const regionRef = (0, vue.ref)();
const popperRef = (0, vue.ref)();
const listboxRef = (0, vue.ref)();
let readonly = false;
let ignoreFocusEvent = false;
const suggestions = (0, vue.ref)([]);
const highlightedIndex = (0, vue.ref)(-1);
const dropdownWidth = (0, vue.ref)("");
const activated = (0, vue.ref)(false);
const suggestionDisabled = (0, vue.ref)(false);
const loading = (0, vue.ref)(false);
const listboxId = require_index$1.useId();
const styles = (0, vue.computed)(() => rawAttrs.style);
const suggestionVisible = (0, vue.computed)(() => {
return (suggestions.value.length > 0 || loading.value) && activated.value;
});
const suggestionLoading = (0, vue.computed)(() => !props.hideLoading && loading.value);
const refInput = (0, vue.computed)(() => {
if (inputRef.value) return Array.from(inputRef.value.$el.querySelectorAll("input"));
return [];
});
const onSuggestionShow = () => {
if (suggestionVisible.value) dropdownWidth.value = `${inputRef.value.$el.offsetWidth}px`;
};
const onHide = () => {
highlightedIndex.value = -1;
};
const getData = async (queryString) => {
if (suggestionDisabled.value) return;
const cb = (suggestionList) => {
loading.value = false;
if (suggestionDisabled.value) return;
if ((0, _vue_shared.isArray)(suggestionList)) {
suggestions.value = suggestionList;
highlightedIndex.value = props.highlightFirstItem ? 0 : -1;
} else require_error.throwError(COMPONENT_NAME, "autocomplete suggestions must be an array");
};
loading.value = true;
if ((0, _vue_shared.isArray)(props.fetchSuggestions)) cb(props.fetchSuggestions);
else {
const result = await props.fetchSuggestions(queryString, cb);
if ((0, _vue_shared.isArray)(result)) cb(result);
}
};
const debouncedGetData = (0, _vueuse_core.useDebounceFn)(getData, (0, vue.computed)(() => props.debounce));
const handleInput = (value) => {
const valuePresented = !!value;
emit(require_event.INPUT_EVENT, value);
emit(require_event.UPDATE_MODEL_EVENT, value);
suggestionDisabled.value = false;
activated.value ||= valuePresented;
if (!props.triggerOnFocus && !value) {
suggestionDisabled.value = true;
suggestions.value = [];
return;
}
debouncedGetData(value);
};
const handleMouseDown = (event) => {
if (disabled.value) return;
if (event.target?.tagName !== "INPUT" || refInput.value.includes(document.activeElement)) activated.value = true;
};
const handleChange = (value) => {
emit(require_event.CHANGE_EVENT, value);
};
const handleFocus = (evt) => {
if (!ignoreFocusEvent) {
activated.value = true;
emit("focus", evt);
const queryString = props.modelValue ?? "";
if (props.triggerOnFocus && !readonly) debouncedGetData(String(queryString));
} else ignoreFocusEvent = false;
};
const handleBlur = (evt) => {
setTimeout(() => {
if (popperRef.value?.isFocusInsideContent()) {
ignoreFocusEvent = true;
return;
}
activated.value && close();
emit("blur", evt);
});
};
const handleClear = () => {
activated.value = false;
emit(require_event.UPDATE_MODEL_EVENT, "");
emit("clear");
};
const handleKeyEnter = async () => {
if (inputRef.value?.isComposing) return;
if (suggestionVisible.value && highlightedIndex.value >= 0 && highlightedIndex.value < suggestions.value.length) handleSelect(suggestions.value[highlightedIndex.value]);
else {
if (props.selectWhenUnmatched) {
emit("select", { value: props.modelValue });
suggestions.value = [];
highlightedIndex.value = -1;
}
activated.value = true;
debouncedGetData(String(props.modelValue));
}
};
const handleKeyEscape = (evt) => {
if (suggestionVisible.value) {
evt.preventDefault();
evt.stopPropagation();
close();
}
};
const close = () => {
activated.value = false;
};
const focus = () => {
inputRef.value?.focus();
};
const blur = () => {
inputRef.value?.blur();
};
const handleSelect = async (item) => {
emit(require_event.INPUT_EVENT, item[props.valueKey]);
emit(require_event.UPDATE_MODEL_EVENT, item[props.valueKey]);
emit("select", item);
suggestions.value = [];
highlightedIndex.value = -1;
};
const highlight = (index) => {
if (!suggestionVisible.value || loading.value) return;
if (index < 0) {
if (!props.loopNavigation) {
highlightedIndex.value = -1;
return;
}
index = suggestions.value.length - 1;
}
if (index >= suggestions.value.length) index = props.loopNavigation ? 0 : suggestions.value.length - 1;
const [suggestion, suggestionList] = getSuggestionContext();
const highlightItem = suggestionList[index];
const scrollTop = suggestion.scrollTop;
const { offsetTop, scrollHeight } = highlightItem;
if (offsetTop + scrollHeight > scrollTop + suggestion.clientHeight) suggestion.scrollTop = offsetTop + scrollHeight - suggestion.clientHeight;
if (offsetTop < scrollTop) suggestion.scrollTop = offsetTop;
highlightedIndex.value = index;
inputRef.value?.ref?.setAttribute("aria-activedescendant", `${listboxId.value}-item-${highlightedIndex.value}`);
};
const getSuggestionContext = () => {
const suggestion = regionRef.value.querySelector(`.${ns.be("suggestion", "wrap")}`);
return [suggestion, suggestion.querySelectorAll(`.${ns.be("suggestion", "list")} li`)];
};
const stopHandle = (0, _vueuse_core.onClickOutside)(listboxRef, (event) => {
if (popperRef.value?.isFocusInsideContent()) return;
const hadIgnoredFocus = ignoreFocusEvent;
ignoreFocusEvent = false;
if (!suggestionVisible.value) return;
if (hadIgnoredFocus) handleBlur(new FocusEvent("blur", event));
else close();
});
const handleKeydown = (e) => {
switch (require_event$1.getEventCode(e)) {
case require_aria.EVENT_CODE.up:
e.preventDefault();
highlight(highlightedIndex.value - 1);
break;
case require_aria.EVENT_CODE.down:
e.preventDefault();
highlight(highlightedIndex.value + 1);
break;
case require_aria.EVENT_CODE.enter:
case require_aria.EVENT_CODE.numpadEnter:
e.preventDefault();
handleKeyEnter();
break;
case require_aria.EVENT_CODE.tab:
close();
break;
case require_aria.EVENT_CODE.esc:
handleKeyEscape(e);
break;
case require_aria.EVENT_CODE.home:
e.preventDefault();
highlight(0);
break;
case require_aria.EVENT_CODE.end:
e.preventDefault();
highlight(suggestions.value.length - 1);
break;
case require_aria.EVENT_CODE.pageUp:
e.preventDefault();
highlight(Math.max(0, highlightedIndex.value - 10));
break;
case require_aria.EVENT_CODE.pageDown:
e.preventDefault();
highlight(Math.min(suggestions.value.length - 1, highlightedIndex.value + 10));
break;
}
};
(0, vue.onBeforeUnmount)(() => {
stopHandle?.();
});
(0, vue.onMounted)(() => {
const inputElement = inputRef.value?.ref;
if (!inputElement) return;
[
{
key: "role",
value: "textbox"
},
{
key: "aria-autocomplete",
value: "list"
},
{
key: "aria-controls",
value: listboxId.value
},
{
key: "aria-activedescendant",
value: `${listboxId.value}-item-${highlightedIndex.value}`
}
].forEach(({ key, value }) => inputElement.setAttribute(key, value));
readonly = inputElement.hasAttribute("readonly");
});
__expose({
highlightedIndex,
activated,
loading,
inputRef,
popperRef,
suggestions,
handleSelect,
handleKeyEnter,
focus,
blur,
close,
highlight,
getData
});
return (_ctx, _cache) => {
return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(require_index$3.ElTooltip), {
ref_key: "popperRef",
ref: popperRef,
visible: suggestionVisible.value,
placement: __props.placement,
"fallback-placements": ["bottom-start", "top-start"],
"popper-class": [(0, vue.unref)(ns).e("popper"), __props.popperClass],
"popper-style": __props.popperStyle,
teleported: __props.teleported,
"append-to": __props.appendTo,
"gpu-acceleration": false,
pure: "",
"manual-mode": "",
effect: "light",
trigger: "click",
transition: `${(0, vue.unref)(ns).namespace.value}-zoom-in-top`,
persistent: "",
role: "listbox",
onBeforeShow: onSuggestionShow,
onHide
}, {
content: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("div", {
ref_key: "regionRef",
ref: regionRef,
class: (0, vue.normalizeClass)([(0, vue.unref)(ns).b("suggestion"), (0, vue.unref)(ns).is("loading", suggestionLoading.value)]),
style: (0, vue.normalizeStyle)({
[__props.fitInputWidth ? "width" : "minWidth"]: dropdownWidth.value,
outline: "none"
}),
role: "region"
}, [
_ctx.$slots.header ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", {
key: 0,
class: (0, vue.normalizeClass)((0, vue.unref)(ns).be("suggestion", "header")),
onClick: _cache[0] || (_cache[0] = (0, vue.withModifiers)(() => {}, ["stop"]))
}, [(0, vue.renderSlot)(_ctx.$slots, "header")], 2)) : (0, vue.createCommentVNode)("v-if", true),
(0, vue.createVNode)((0, vue.unref)(require_index$5.ElScrollbar), {
id: (0, vue.unref)(listboxId),
tag: "ul",
"wrap-class": (0, vue.unref)(ns).be("suggestion", "wrap"),
"view-class": (0, vue.unref)(ns).be("suggestion", "list"),
role: "listbox"
}, {
default: (0, vue.withCtx)(() => [suggestionLoading.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("li", _hoisted_2, [(0, vue.renderSlot)(_ctx.$slots, "loading", {}, () => [(0, vue.createVNode)((0, vue.unref)(require_index$2.ElIcon), { class: (0, vue.normalizeClass)((0, vue.unref)(ns).is("loading")) }, {
default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(_element_plus_icons_vue.Loading))]),
_: 1
}, 8, ["class"])])])) : ((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, { key: 1 }, (0, vue.renderList)(suggestions.value, (item, index) => {
return (0, vue.openBlock)(), (0, vue.createElementBlock)("li", {
id: `${(0, vue.unref)(listboxId)}-item-${index}`,
key: index,
class: (0, vue.normalizeClass)({ highlighted: highlightedIndex.value === index }),
role: "option",
"aria-selected": highlightedIndex.value === index,
onClick: ($event) => handleSelect(item)
}, [(0, vue.renderSlot)(_ctx.$slots, "default", { item }, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)(item[__props.valueKey]), 1)])], 10, _hoisted_3);
}), 128))]),
_: 3
}, 8, [
"id",
"wrap-class",
"view-class"
]),
_ctx.$slots.footer ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", {
key: 1,
class: (0, vue.normalizeClass)((0, vue.unref)(ns).be("suggestion", "footer")),
onClick: _cache[1] || (_cache[1] = (0, vue.withModifiers)(() => {}, ["stop"]))
}, [(0, vue.renderSlot)(_ctx.$slots, "footer")], 2)) : (0, vue.createCommentVNode)("v-if", true)
], 6)]),
default: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("div", {
ref_key: "listboxRef",
ref: listboxRef,
class: (0, vue.normalizeClass)([(0, vue.unref)(ns).b(), _ctx.$attrs.class]),
style: (0, vue.normalizeStyle)(styles.value),
role: "combobox",
"aria-haspopup": "listbox",
"aria-expanded": suggestionVisible.value,
"aria-owns": (0, vue.unref)(listboxId)
}, [(0, vue.createVNode)((0, vue.unref)(require_index$4.ElInput), (0, vue.mergeProps)({
ref_key: "inputRef",
ref: inputRef
}, (0, vue.mergeProps)(passInputProps.value, _ctx.$attrs), {
"model-value": __props.modelValue,
disabled: (0, vue.unref)(disabled),
onInput: handleInput,
onChange: handleChange,
onFocus: handleFocus,
onBlur: handleBlur,
onClear: handleClear,
onKeydown: handleKeydown,
onMousedown: handleMouseDown
}), (0, vue.createSlots)({ _: 2 }, [
_ctx.$slots.prepend ? {
name: "prepend",
fn: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "prepend")]),
key: "0"
} : void 0,
_ctx.$slots.append ? {
name: "append",
fn: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "append")]),
key: "1"
} : void 0,
_ctx.$slots.prefix ? {
name: "prefix",
fn: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "prefix")]),
key: "2"
} : void 0,
_ctx.$slots.suffix ? {
name: "suffix",
fn: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "suffix")]),
key: "3"
} : void 0
]), 1040, ["model-value", "disabled"])], 14, _hoisted_1)]),
_: 3
}, 8, [
"visible",
"placement",
"popper-class",
"popper-style",
"teleported",
"append-to",
"transition"
]);
};
}
});
//#endregion
exports.default = autocomplete_vue_vue_type_script_setup_true_lang_default;
//# sourceMappingURL=autocomplete.vue_vue_type_script_setup_true_lang.js.map

File diff suppressed because one or more lines are too long

View File

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

File diff suppressed because one or more lines are too long

View File

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

View File

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

View File

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

View File

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

View File

@@ -0,0 +1,16 @@
import { SFCWithInstall } from "../../utils/vue/typescript.js";
import "../../utils/index.js";
import { AvatarEmits, AvatarProps, AvatarPropsPublic, avatarEmits, avatarProps } from "./src/avatar.js";
import { _default } from "./src/avatar.vue.js";
import { _default as _default$1 } from "./src/avatar-group.js";
import { AvatarGroupContext, avatarGroupContextKey } from "./src/constants.js";
import { AvatarGroupProps, AvatarGroupPropsPublic, avatarGroupProps } from "./src/avatar-group-props.js";
import { AvatarGroupInstance, AvatarInstance } from "./src/instance.js";
//#region ../../packages/components/avatar/index.d.ts
declare const ElAvatar: SFCWithInstall<typeof _default> & {
AvatarGroup: typeof _default$1;
};
declare const ElAvatarGroup: SFCWithInstall<typeof _default$1>;
//#endregion
export { AvatarEmits, AvatarGroupContext, type AvatarGroupInstance, AvatarGroupProps, AvatarGroupPropsPublic, type AvatarInstance, AvatarProps, AvatarPropsPublic, ElAvatar, ElAvatar as default, ElAvatarGroup, avatarEmits, avatarGroupContextKey, avatarGroupProps, avatarProps };

View File

@@ -0,0 +1,21 @@
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
const require_install = require('../../utils/vue/install.js');
const require_avatar = require('./src/avatar.js');
const require_constants = require('./src/constants.js');
const require_avatar$1 = require('./src/avatar2.js');
const require_avatar_group_props = require('./src/avatar-group-props.js');
const require_avatar_group = require('./src/avatar-group.js');
//#region ../../packages/components/avatar/index.ts
const ElAvatar = require_install.withInstall(require_avatar$1.default, { AvatarGroup: require_avatar_group.default });
const ElAvatarGroup = require_install.withNoopInstall(require_avatar_group.default);
//#endregion
exports.ElAvatar = ElAvatar;
exports.default = ElAvatar;
exports.ElAvatarGroup = ElAvatarGroup;
exports.avatarEmits = require_avatar.avatarEmits;
exports.avatarGroupContextKey = require_constants.avatarGroupContextKey;
exports.avatarGroupProps = require_avatar_group_props.avatarGroupProps;
exports.avatarProps = require_avatar.avatarProps;
//# sourceMappingURL=index.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"index.js","names":["withInstall","Avatar","withNoopInstall","AvatarGroup"],"sources":["../../../../../packages/components/avatar/index.ts"],"sourcesContent":["import { withInstall, withNoopInstall } from '@element-plus/utils'\nimport Avatar from './src/avatar.vue'\nimport AvatarGroup from './src/avatar-group'\n\nimport type { SFCWithInstall } from '@element-plus/utils'\n\nexport const ElAvatar: SFCWithInstall<typeof Avatar> & {\n AvatarGroup: typeof AvatarGroup\n} = withInstall(Avatar, {\n AvatarGroup,\n})\nexport const ElAvatarGroup: SFCWithInstall<typeof AvatarGroup> =\n withNoopInstall(AvatarGroup)\nexport default ElAvatar\n\nexport * from './src/avatar'\nexport * from './src/constants'\nexport * from './src/avatar-group-props'\nexport type { AvatarInstance, AvatarGroupInstance } from './src/instance'\n"],"mappings":";;;;;;;;;AAMA,MAAa,WAETA,4BAAYC,0BAAQ,EACtB,2CACD,CAAC;AACF,MAAa,gBACXC,gCAAgBC,6BAAY"}

View File

@@ -0,0 +1,183 @@
import { EpPropMergeType } from "../../../utils/vue/props/types.js";
import "../../../utils/index.js";
import { PopperEffect } from "../../popper/src/popper.js";
import { Placement } from "../../popper/index.js";
import * as vue from "vue";
import { ExtractPropTypes, ExtractPublicPropTypes, StyleValue } from "vue";
//#region ../../packages/components/avatar/src/avatar-group-props.d.ts
declare const avatarGroupProps: {
/**
* @description control the size of avatars in this avatar-group
*/
readonly size: {
readonly type: vue.PropType<number | "" | "default" | "small" | "large" | undefined>;
readonly values: readonly ["", "default", "small", "large"];
readonly validator: (val: unknown) => val is number;
};
/**
* @description control the shape of avatars in this avatar-group
*/
readonly shape: {
readonly type: vue.PropType<"square" | "circle" | undefined>;
readonly values: readonly ["circle", "square"];
};
/**
* @description whether to collapse avatars
*/
readonly collapseAvatars: BooleanConstructor;
/**
* @description whether show all collapsed avatars when mouse hover text of the collapse-avatar. To use this, `collapse-avatars` must be true
*/
readonly collapseAvatarsTooltip: BooleanConstructor;
/**
* @description the max avatars number to be shown. To use this, `collapse-avatars` must be true
*/
readonly maxCollapseAvatars: {
readonly type: NumberConstructor;
readonly default: 1;
};
/**
* @description tooltip theme, built-in theme: `dark` / `light`
*/
readonly effect: {
readonly type: vue.PropType<PopperEffect>;
readonly default: "light";
};
/**
* @description placement of tooltip
*/
readonly placement: {
readonly type: vue.PropType<Placement>;
readonly values: Placement[];
readonly default: "top";
};
/**
* @description custom class name for tooltip
*/
readonly popperClass: {
readonly type: vue.PropType<EpPropMergeType<(new (...args: any[]) => string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | any)[])[])[])[])[])[])[])[])[])[])[]) | (() => string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | any)[])[])[])[])[])[])[])[])[])[])[]) | (((new (...args: any[]) => string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | any)[])[])[])[])[])[])[])[])[])[])[]) | (() => string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | any)[])[])[])[])[])[])[])[])[])[])[])) | null)[], unknown, unknown>>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
/**
* @description custom style for tooltip
*/
readonly popperStyle: {
readonly type: vue.PropType<EpPropMergeType<(new (...args: any[]) => string | false | vue.CSSProperties | StyleValue[]) | (() => StyleValue) | (((new (...args: any[]) => string | false | vue.CSSProperties | StyleValue[]) | (() => StyleValue)) | null)[], unknown, unknown>>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
/**
* @description custom class name for the collapse-avatar
*/
readonly collapseClass: StringConstructor;
/**
* @description custom style for the collapse-avatar
*/
readonly collapseStyle: {
readonly type: vue.PropType<StyleValue>;
};
};
type AvatarGroupProps = ExtractPropTypes<typeof avatarGroupProps>;
type AvatarGroupPropsPublic = ExtractPublicPropTypes<typeof avatarGroupProps>;
//#endregion
export { AvatarGroupProps, AvatarGroupPropsPublic, avatarGroupProps };

View File

@@ -0,0 +1,47 @@
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
const require_runtime = require('../../../_virtual/_rolldown/runtime.js');
const require_size = require('../../../constants/size.js');
const require_types = require('../../../utils/types.js');
const require_runtime$1 = require('../../../utils/vue/props/runtime.js');
const require_content = require('../../tooltip/src/content.js');
let _popperjs_core = require("@popperjs/core");
//#region ../../packages/components/avatar/src/avatar-group-props.ts
const avatarGroupProps = {
size: {
type: require_runtime$1.definePropType([Number, String]),
values: require_size.componentSizes,
validator: (val) => require_types.isNumber(val)
},
shape: {
type: require_runtime$1.definePropType(String),
values: ["circle", "square"]
},
collapseAvatars: Boolean,
collapseAvatarsTooltip: Boolean,
maxCollapseAvatars: {
type: Number,
default: 1
},
effect: {
type: require_runtime$1.definePropType(String),
default: "light"
},
placement: {
type: require_runtime$1.definePropType(String),
values: _popperjs_core.placements,
default: "top"
},
popperClass: require_content.useTooltipContentProps.popperClass,
popperStyle: require_content.useTooltipContentProps.popperStyle,
collapseClass: String,
collapseStyle: { type: require_runtime$1.definePropType([
String,
Array,
Object
]) }
};
//#endregion
exports.avatarGroupProps = avatarGroupProps;
//# sourceMappingURL=avatar-group-props.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"avatar-group-props.js","names":["definePropType","componentSizes","isNumber","placements","useTooltipContentProps"],"sources":["../../../../../../packages/components/avatar/src/avatar-group-props.ts"],"sourcesContent":["import { placements } from '@popperjs/core'\nimport { useTooltipContentProps } from '@element-plus/components/tooltip'\nimport { definePropType, isNumber } from '@element-plus/utils'\nimport { componentSizes } from '@element-plus/constants'\n\nimport type { AvatarProps } from './avatar'\nimport type { ExtractPropTypes, ExtractPublicPropTypes, StyleValue } from 'vue'\nimport type { Placement, PopperEffect } from '@element-plus/components/popper'\n\nexport const avatarGroupProps = {\n /**\n * @description control the size of avatars in this avatar-group\n */\n size: {\n type: definePropType<AvatarProps['size']>([Number, String]),\n values: componentSizes,\n validator: (val: unknown): val is number => isNumber(val),\n },\n /**\n * @description control the shape of avatars in this avatar-group\n */\n shape: {\n type: definePropType<AvatarProps['shape']>(String),\n values: ['circle', 'square'] as const,\n },\n /**\n * @description whether to collapse avatars\n */\n collapseAvatars: Boolean,\n /**\n * @description whether show all collapsed avatars when mouse hover text of the collapse-avatar. To use this, `collapse-avatars` must be true\n */\n collapseAvatarsTooltip: Boolean,\n /**\n * @description the max avatars number to be shown. To use this, `collapse-avatars` must be true\n */\n maxCollapseAvatars: {\n type: Number,\n default: 1,\n },\n /**\n * @description tooltip theme, built-in theme: `dark` / `light`\n */\n effect: {\n type: definePropType<PopperEffect>(String),\n default: 'light',\n },\n /**\n * @description placement of tooltip\n */\n placement: {\n type: definePropType<Placement>(String),\n values: placements,\n default: 'top',\n },\n /**\n * @description custom class name for tooltip\n */\n popperClass: useTooltipContentProps.popperClass,\n /**\n * @description custom style for tooltip\n */\n popperStyle: useTooltipContentProps.popperStyle,\n /**\n * @description custom class name for the collapse-avatar\n */\n collapseClass: String,\n /**\n * @description custom style for the collapse-avatar\n */\n collapseStyle: {\n type: definePropType<StyleValue>([String, Array, Object]),\n },\n} as const\nexport type AvatarGroupProps = ExtractPropTypes<typeof avatarGroupProps>\nexport type AvatarGroupPropsPublic = ExtractPublicPropTypes<\n typeof avatarGroupProps\n>\n"],"mappings":";;;;;;;;;AASA,MAAa,mBAAmB;CAI9B,MAAM;EACJ,MAAMA,iCAAoC,CAAC,QAAQ,OAAO,CAAC;EAC3D,QAAQC;EACR,YAAY,QAAgCC,uBAAS,IAAI;EAC1D;CAID,OAAO;EACL,MAAMF,iCAAqC,OAAO;EAClD,QAAQ,CAAC,UAAU,SAAS;EAC7B;CAID,iBAAiB;CAIjB,wBAAwB;CAIxB,oBAAoB;EAClB,MAAM;EACN,SAAS;EACV;CAID,QAAQ;EACN,MAAMA,iCAA6B,OAAO;EAC1C,SAAS;EACV;CAID,WAAW;EACT,MAAMA,iCAA0B,OAAO;EACvC,QAAQG;EACR,SAAS;EACV;CAID,aAAaC,uCAAuB;CAIpC,aAAaA,uCAAuB;CAIpC,eAAe;CAIf,eAAe,EACb,MAAMJ,iCAA2B;EAAC;EAAQ;EAAO;EAAO,CAAC,EAC1D;CACF"}

View File

@@ -0,0 +1,292 @@
import { EpPropMergeType } from "../../../utils/vue/props/types.js";
import "../../../utils/index.js";
import { PopperEffect } from "../../popper/src/popper.js";
import "../../../index.js";
import { Placement } from "../../popper/index.js";
import * as vue from "vue";
import * as vue_jsx_runtime0 from "vue/jsx-runtime";
//#region ../../packages/components/avatar/src/avatar-group.d.ts
declare const _default: vue.DefineComponent<vue.ExtractPropTypes<{
readonly size: {
readonly type: vue.PropType<number | "" | "default" | "small" | "large" | undefined>;
readonly values: readonly ["", "default", "small", "large"];
readonly validator: (val: unknown) => val is number;
};
readonly shape: {
readonly type: vue.PropType<"square" | "circle" | undefined>;
readonly values: readonly ["circle", "square"];
};
readonly collapseAvatars: BooleanConstructor;
readonly collapseAvatarsTooltip: BooleanConstructor;
readonly maxCollapseAvatars: {
readonly type: NumberConstructor;
readonly default: 1;
};
readonly effect: {
readonly type: vue.PropType<PopperEffect>;
readonly default: "light";
};
readonly placement: {
readonly type: vue.PropType<Placement>;
readonly values: Placement[];
readonly default: "top";
};
readonly popperClass: {
readonly type: vue.PropType<EpPropMergeType<(new (...args: any[]) => string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | any)[])[])[])[])[])[])[])[])[])[])[]) | (() => string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | any)[])[])[])[])[])[])[])[])[])[])[]) | (((new (...args: any[]) => string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | any)[])[])[])[])[])[])[])[])[])[])[]) | (() => string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | any)[])[])[])[])[])[])[])[])[])[])[])) | null)[], unknown, unknown>>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
readonly popperStyle: {
readonly type: vue.PropType<EpPropMergeType<(new (...args: any[]) => string | false | vue.CSSProperties | vue.StyleValue[]) | (() => vue.StyleValue) | (((new (...args: any[]) => string | false | vue.CSSProperties | vue.StyleValue[]) | (() => vue.StyleValue)) | null)[], unknown, unknown>>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
readonly collapseClass: StringConstructor;
readonly collapseStyle: {
readonly type: vue.PropType<vue.StyleValue>;
};
}>, () => vue_jsx_runtime0.JSX.Element, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
readonly size: {
readonly type: vue.PropType<number | "" | "default" | "small" | "large" | undefined>;
readonly values: readonly ["", "default", "small", "large"];
readonly validator: (val: unknown) => val is number;
};
readonly shape: {
readonly type: vue.PropType<"square" | "circle" | undefined>;
readonly values: readonly ["circle", "square"];
};
readonly collapseAvatars: BooleanConstructor;
readonly collapseAvatarsTooltip: BooleanConstructor;
readonly maxCollapseAvatars: {
readonly type: NumberConstructor;
readonly default: 1;
};
readonly effect: {
readonly type: vue.PropType<PopperEffect>;
readonly default: "light";
};
readonly placement: {
readonly type: vue.PropType<Placement>;
readonly values: Placement[];
readonly default: "top";
};
readonly popperClass: {
readonly type: vue.PropType<EpPropMergeType<(new (...args: any[]) => string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | any)[])[])[])[])[])[])[])[])[])[])[]) | (() => string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | any)[])[])[])[])[])[])[])[])[])[])[]) | (((new (...args: any[]) => string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | any)[])[])[])[])[])[])[])[])[])[])[]) | (() => string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | any)[])[])[])[])[])[])[])[])[])[])[])) | null)[], unknown, unknown>>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
readonly popperStyle: {
readonly type: vue.PropType<EpPropMergeType<(new (...args: any[]) => string | false | vue.CSSProperties | vue.StyleValue[]) | (() => vue.StyleValue) | (((new (...args: any[]) => string | false | vue.CSSProperties | vue.StyleValue[]) | (() => vue.StyleValue)) | null)[], unknown, unknown>>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
readonly collapseClass: StringConstructor;
readonly collapseStyle: {
readonly type: vue.PropType<vue.StyleValue>;
};
}>> & Readonly<{}>, {
readonly effect: PopperEffect;
readonly placement: Placement;
readonly collapseAvatars: boolean;
readonly collapseAvatarsTooltip: boolean;
readonly maxCollapseAvatars: number;
}, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
//#endregion
export { _default };

View File

@@ -0,0 +1,49 @@
const require_runtime = require('../../../_virtual/_rolldown/runtime.js');
const require_vnode = require('../../../utils/vue/vnode.js');
const require_index = require('../../../hooks/use-namespace/index.js');
const require_index$1 = require('../../tooltip/index.js');
const require_constants = require('./constants.js');
const require_avatar = require('./avatar2.js');
const require_avatar_group_props = require('./avatar-group-props.js');
let vue = require("vue");
//#region ../../packages/components/avatar/src/avatar-group.tsx
var avatar_group_default = /* @__PURE__ */ (0, vue.defineComponent)({
name: "ElAvatarGroup",
props: require_avatar_group_props.avatarGroupProps,
setup(props, { slots }) {
const ns = require_index.useNamespace("avatar-group");
(0, vue.provide)(require_constants.avatarGroupContextKey, (0, vue.reactive)({
size: (0, vue.toRef)(props, "size"),
shape: (0, vue.toRef)(props, "shape")
}));
return () => {
const avatars = require_vnode.flattedChildren(slots.default?.() ?? []);
let visibleAvatars = avatars;
if (props.collapseAvatars && avatars.length > props.maxCollapseAvatars) {
visibleAvatars = avatars.slice(0, props.maxCollapseAvatars);
const hiddenAvatars = avatars.slice(props.maxCollapseAvatars);
visibleAvatars.push((0, vue.createVNode)(require_index$1.ElTooltip, {
"popperClass": props.popperClass,
"popperStyle": props.popperStyle,
"placement": props.placement,
"effect": props.effect,
"disabled": !props.collapseAvatarsTooltip
}, {
default: () => (0, vue.createVNode)(require_avatar.default, {
"size": props.size,
"shape": props.shape,
"class": props.collapseClass,
"style": props.collapseStyle
}, { default: () => [(0, vue.createTextVNode)("+ "), hiddenAvatars.length] }),
content: () => (0, vue.createVNode)("div", { "class": ns.e("collapse-avatars") }, [hiddenAvatars.map((node, idx) => (0, vue.isVNode)(node) ? (0, vue.cloneVNode)(node, { key: node.key ?? idx }) : node)])
}));
}
return (0, vue.createVNode)("div", { "class": ns.b() }, [visibleAvatars]);
};
}
});
//#endregion
exports.default = avatar_group_default;
//# sourceMappingURL=avatar-group.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"avatar-group.js","names":["cloneVNode","defineComponent","isVNode","provide","reactive","toRef","createTextVNode","_createTextVNode","createVNode","_createVNode","flattedChildren","ElTooltip","useNamespace","ElAvatar","avatarGroupContextKey","avatarGroupProps","name","props","setup","slots","ns","size","shape","avatars","default","visibleAvatars","showCollapseAvatar","collapseAvatars","length","maxCollapseAvatars","slice","hiddenAvatars","push","popperClass","popperStyle","placement","effect","collapseAvatarsTooltip","collapseClass","collapseStyle","content","e","map","node","idx","key","b"],"sources":["../../../../../../packages/components/avatar/src/avatar-group.tsx"],"sourcesContent":["import {\n cloneVNode,\n defineComponent,\n isVNode,\n provide,\n reactive,\n toRef,\n} from 'vue'\nimport { flattedChildren } from '@element-plus/utils'\nimport ElTooltip from '@element-plus/components/tooltip'\nimport { useNamespace } from '@element-plus/hooks'\nimport ElAvatar from './avatar.vue'\nimport { avatarGroupContextKey } from './constants'\nimport { avatarGroupProps } from './avatar-group-props'\n\nexport default defineComponent({\n name: 'ElAvatarGroup',\n props: avatarGroupProps,\n setup(props, { slots }) {\n const ns = useNamespace('avatar-group')\n\n provide(\n avatarGroupContextKey,\n reactive({\n size: toRef(props, 'size'),\n shape: toRef(props, 'shape'),\n })\n )\n\n return () => {\n const avatars = flattedChildren(slots.default?.() ?? [])\n let visibleAvatars = avatars\n\n const showCollapseAvatar =\n props.collapseAvatars && avatars.length > props.maxCollapseAvatars\n\n if (showCollapseAvatar) {\n visibleAvatars = avatars.slice(0, props.maxCollapseAvatars)\n const hiddenAvatars = avatars.slice(props.maxCollapseAvatars)\n\n visibleAvatars.push(\n <ElTooltip\n popperClass={props.popperClass}\n popperStyle={props.popperStyle}\n placement={props.placement}\n effect={props.effect}\n disabled={!props.collapseAvatarsTooltip}\n >\n {{\n default: () => (\n <ElAvatar\n size={props.size}\n shape={props.shape}\n class={props.collapseClass}\n style={props.collapseStyle}\n >\n + {hiddenAvatars.length}\n </ElAvatar>\n ),\n content: () => (\n <div class={ns.e('collapse-avatars')}>\n {hiddenAvatars.map((node, idx) =>\n isVNode(node)\n ? cloneVNode(node, { key: node.key ?? idx })\n : node\n )}\n </div>\n ),\n }}\n </ElTooltip>\n )\n }\n\n return <div class={ns.b()}>{visibleAvatars}</div>\n }\n },\n})\n"],"mappings":";;;;;;;;;;AAeA,2BAAeC,yCAAgB;CAC7Be,MAAM;CACNC,OAAOF;CACPG,MAAMD,OAAO,EAAEE,SAAS;EACtB,MAAMC,KAAKR,2BAAa,eAAe;AAEvCT,mBACEW,2DACS;GACPO,qBAAYJ,OAAO,OAAO;GAC1BK,sBAAaL,OAAO,QAAO;GAC5B,CACH,CAAC;AAED,eAAa;GACX,MAAMM,UAAUb,8BAAgBS,MAAMK,WAAW,IAAI,EAAE,CAAC;GACxD,IAAIC,iBAAiBF;AAKrB,OAFEN,MAAMU,mBAAmBJ,QAAQK,SAASX,MAAMY,oBAE1B;AACtBJ,qBAAiBF,QAAQO,MAAM,GAAGb,MAAMY,mBAAmB;IAC3D,MAAME,gBAAgBR,QAAQO,MAAMb,MAAMY,mBAAmB;AAE7DJ,mBAAeO,0BAAIrB,2BAAA;KAAA,eAEFM,MAAMgB;KAAW,eACjBhB,MAAMiB;KAAW,aACnBjB,MAAMkB;KAAS,UAClBlB,MAAMmB;KAAM,YACV,CAACnB,MAAMoB;KAAsB,EAAA;KAGrCb,oCAASX,wBAAA;MAAA,QAECI,MAAMI;MAAI,SACTJ,MAAMK;MAAK,SACXL,MAAMqB;MAAa,SACnBrB,MAAMsB;MAAa,EAAA,EAAAf,eAAA,0BAAA,KAAA,EAEvBO,cAAcH,OAAM,EAAA,CAE1B;KACDY,oCAAS,OAAA,EAAA,SACKpB,GAAGqB,EAAE,mBAAkB,EAAC,EAAA,CACjCV,cAAcW,KAAKC,MAAMC,yBAChBD,KAAK,uBACEA,MAAM,EAAEE,KAAKF,KAAKE,OAAOD,KAAK,CAAC,GAC1CD,KACL,CAAA,CAAA;KAEJ,CAGP,CAAC;;AAGH,+BAAA,OAAA,EAAA,SAAmBvB,GAAG0B,GAAE,EAAC,EAAA,CAAGrB,eAAc,CAAA;;;CAG/C,CAAC"}

View File

@@ -0,0 +1,77 @@
import { IconPropType } from "../../../utils/vue/icon.js";
import { EpPropFinalized, EpPropMergeType } from "../../../utils/vue/props/types.js";
import { ComponentSize } from "../../../constants/size.js";
import { ObjectFit } from "../../../utils/typescript.js";
import "../../../utils/index.js";
import * as vue from "vue";
import { ExtractPublicPropTypes } from "vue";
import * as csstype from "csstype";
//#region ../../packages/components/avatar/src/avatar.d.ts
interface AvatarProps {
/**
* @description avatar size.
*/
size?: number | ComponentSize;
/**
* @description avatar shape.
*/
shape?: 'circle' | 'square';
/**
* @description representation type to icon, more info on icon component.
*/
icon?: IconPropType;
/**
* @description the source of the image for an image avatar.
*/
src?: string;
/**
* @description native attribute `alt` of image avatar.
*/
alt?: string;
/**
* @description native attribute srcset of image avatar.
*/
srcSet?: string;
/**
* @description set how the image fit its container for an image avatar.
*/
fit?: ObjectFit;
}
/**
* @deprecated Removed after 3.0.0, Use `AvatarProps` instead.
*/
declare const avatarProps: {
readonly size: {
readonly type: vue.PropType<EpPropMergeType<readonly [NumberConstructor, StringConstructor], "" | "default" | "small" | "large", number>>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
readonly shape: {
readonly type: vue.PropType<EpPropMergeType<StringConstructor, "square" | "circle", unknown>>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
readonly icon: {
readonly type: vue.PropType<EpPropMergeType<(new (...args: any[]) => (string | vue.Component) & {}) | (() => string | vue.Component) | (((new (...args: any[]) => (string | vue.Component) & {}) | (() => string | vue.Component)) | null)[], unknown, unknown>>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
readonly src: EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
readonly alt: StringConstructor;
readonly srcSet: StringConstructor;
readonly fit: EpPropFinalized<(new (...args: any[]) => "fill" | "-moz-initial" | "inherit" | "initial" | "revert" | "revert-layer" | "unset" | "none" | "contain" | "cover" | "scale-down") | (() => csstype.Property.ObjectFit | undefined) | (((new (...args: any[]) => "fill" | "-moz-initial" | "inherit" | "initial" | "revert" | "revert-layer" | "unset" | "none" | "contain" | "cover" | "scale-down") | (() => csstype.Property.ObjectFit | undefined)) | null)[], unknown, unknown, "cover", boolean>;
};
/**
* @deprecated Removed after 3.0.0, Use `AvatarProps` instead.
*/
type AvatarPropsPublic = ExtractPublicPropTypes<typeof avatarProps>;
declare const avatarEmits: {
error: (evt: Event) => boolean;
};
type AvatarEmits = typeof avatarEmits;
//#endregion
export { AvatarEmits, AvatarProps, AvatarPropsPublic, avatarEmits, avatarProps };

View File

@@ -0,0 +1,38 @@
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
const require_size = require('../../../constants/size.js');
const require_types = require('../../../utils/types.js');
const require_runtime = require('../../../utils/vue/props/runtime.js');
const require_icon = require('../../../utils/vue/icon.js');
//#region ../../packages/components/avatar/src/avatar.ts
/**
* @deprecated Removed after 3.0.0, Use `AvatarProps` instead.
*/
const avatarProps = require_runtime.buildProps({
size: {
type: [Number, String],
values: require_size.componentSizes,
validator: (val) => require_types.isNumber(val)
},
shape: {
type: String,
values: ["circle", "square"]
},
icon: { type: require_icon.iconPropType },
src: {
type: String,
default: ""
},
alt: String,
srcSet: String,
fit: {
type: require_runtime.definePropType(String),
default: "cover"
}
});
const avatarEmits = { error: (evt) => evt instanceof Event };
//#endregion
exports.avatarEmits = avatarEmits;
exports.avatarProps = avatarProps;
//# sourceMappingURL=avatar.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"avatar.js","names":["buildProps","componentSizes","isNumber","iconPropType","definePropType"],"sources":["../../../../../../packages/components/avatar/src/avatar.ts"],"sourcesContent":["import {\n buildProps,\n definePropType,\n iconPropType,\n isNumber,\n} from '@element-plus/utils'\nimport { componentSizes } from '@element-plus/constants'\n\nimport type { ExtractPublicPropTypes } from 'vue'\nimport type { ComponentSize } from '@element-plus/constants'\nimport type { IconPropType, ObjectFit } from '@element-plus/utils'\n\nexport interface AvatarProps {\n /**\n * @description avatar size.\n */\n size?: number | ComponentSize\n /**\n * @description avatar shape.\n */\n shape?: 'circle' | 'square'\n /**\n * @description representation type to icon, more info on icon component.\n */\n icon?: IconPropType\n /**\n * @description the source of the image for an image avatar.\n */\n src?: string\n /**\n * @description native attribute `alt` of image avatar.\n */\n alt?: string\n /**\n * @description native attribute srcset of image avatar.\n */\n srcSet?: string\n /**\n * @description set how the image fit its container for an image avatar.\n */\n fit?: ObjectFit\n}\n\n/**\n * @deprecated Removed after 3.0.0, Use `AvatarProps` instead.\n */\nexport const avatarProps = buildProps({\n /**\n * @description avatar size.\n */\n size: {\n type: [Number, String],\n values: componentSizes,\n validator: (val: unknown): val is number => isNumber(val),\n },\n /**\n * @description avatar shape.\n */\n shape: {\n type: String,\n values: ['circle', 'square'],\n },\n /**\n * @description representation type to icon, more info on icon component.\n */\n icon: {\n type: iconPropType,\n },\n /**\n * @description the source of the image for an image avatar.\n */\n src: {\n type: String,\n default: '',\n },\n /**\n * @description native attribute `alt` of image avatar.\n */\n alt: String,\n /**\n * @description native attribute srcset of image avatar.\n */\n srcSet: String,\n /**\n * @description set how the image fit its container for an image avatar.\n */\n fit: {\n type: definePropType<ObjectFit>(String),\n default: 'cover',\n },\n} as const)\n\n/**\n * @deprecated Removed after 3.0.0, Use `AvatarProps` instead.\n */\nexport type AvatarPropsPublic = ExtractPublicPropTypes<typeof avatarProps>\n\nexport const avatarEmits = {\n error: (evt: Event) => evt instanceof Event,\n}\nexport type AvatarEmits = typeof avatarEmits\n"],"mappings":";;;;;;;;;;AA8CA,MAAa,cAAcA,2BAAW;CAIpC,MAAM;EACJ,MAAM,CAAC,QAAQ,OAAO;EACtB,QAAQC;EACR,YAAY,QAAgCC,uBAAS,IAAI;EAC1D;CAID,OAAO;EACL,MAAM;EACN,QAAQ,CAAC,UAAU,SAAS;EAC7B;CAID,MAAM,EACJ,MAAMC,2BACP;CAID,KAAK;EACH,MAAM;EACN,SAAS;EACV;CAID,KAAK;CAIL,QAAQ;CAIR,KAAK;EACH,MAAMC,+BAA0B,OAAO;EACvC,SAAS;EACV;CACF,CAAU;AAOX,MAAa,cAAc,EACzB,QAAQ,QAAe,eAAe,OACvC"}

View File

@@ -0,0 +1,26 @@
import { AvatarProps } from "./avatar.js";
import * as vue from "vue";
import * as csstype from "csstype";
//#region ../../packages/components/avatar/src/avatar.vue.d.ts
declare var __VLS_12: {};
type __VLS_Slots = {} & {
default?: (props: typeof __VLS_12) => any;
};
declare const __VLS_base: vue.DefineComponent<AvatarProps, {}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
error: (evt: Event) => void;
}, string, vue.PublicProps, Readonly<AvatarProps> & Readonly<{
onError?: ((evt: Event) => any) | undefined;
}>, {
src: string;
fit: csstype.Property.ObjectFit;
}, {}, {}, {}, 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_types = require('../../../utils/types.js');
const require_style = require('../../../utils/dom/style.js');
const require_index = require('../../../hooks/use-namespace/index.js');
const require_index$1 = require('../../icon/index.js');
const require_avatar = require('./avatar.js');
const require_constants = require('./constants.js');
let vue = require("vue");
let _vue_shared = require("@vue/shared");
//#region ../../packages/components/avatar/src/avatar.vue?vue&type=script&setup=true&lang.ts
const _hoisted_1 = [
"src",
"alt",
"srcset"
];
var avatar_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({
name: "ElAvatar",
__name: "avatar",
props: require_avatar.avatarProps,
emits: require_avatar.avatarEmits,
setup(__props, { emit: __emit }) {
const props = __props;
const emit = __emit;
const avatarGroupContext = (0, vue.inject)(require_constants.avatarGroupContextKey, void 0);
const ns = require_index.useNamespace("avatar");
const hasLoadError = (0, vue.ref)(false);
const size = (0, vue.computed)(() => props.size ?? avatarGroupContext?.size);
const shape = (0, vue.computed)(() => props.shape ?? avatarGroupContext?.shape ?? "circle");
const avatarClass = (0, vue.computed)(() => {
const { icon } = props;
const classList = [ns.b()];
if ((0, _vue_shared.isString)(size.value)) classList.push(ns.m(size.value));
if (icon) classList.push(ns.m("icon"));
if (shape.value) classList.push(ns.m(shape.value));
return classList;
});
const sizeStyle = (0, vue.computed)(() => {
return require_types.isNumber(size.value) ? ns.cssVarBlock({ size: require_style.addUnit(size.value) }) : void 0;
});
const fitStyle = (0, vue.computed)(() => ({ objectFit: props.fit }));
(0, vue.watch)(() => [props.src, props.srcSet], () => hasLoadError.value = false);
function handleError(e) {
hasLoadError.value = true;
emit("error", e);
}
return (_ctx, _cache) => {
return (0, vue.openBlock)(), (0, vue.createElementBlock)("span", {
class: (0, vue.normalizeClass)(avatarClass.value),
style: (0, vue.normalizeStyle)(sizeStyle.value)
}, [(__props.src || __props.srcSet) && !hasLoadError.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("img", {
key: 0,
src: __props.src,
alt: __props.alt,
srcset: __props.srcSet,
style: (0, vue.normalizeStyle)(fitStyle.value),
onError: handleError
}, null, 44, _hoisted_1)) : __props.icon ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(require_index$1.ElIcon), { key: 1 }, {
default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(__props.icon)))]),
_: 1
})) : (0, vue.renderSlot)(_ctx.$slots, "default", { key: 2 })], 6);
};
}
});
//#endregion
exports.default = avatar_vue_vue_type_script_setup_true_lang_default;
//# sourceMappingURL=avatar.vue_vue_type_script_setup_true_lang.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"avatar.vue_vue_type_script_setup_true_lang.js","names":[],"sources":["../../../../../../packages/components/avatar/src/avatar.vue"],"sourcesContent":["<template>\n <span :class=\"avatarClass\" :style=\"sizeStyle\">\n <img\n v-if=\"(src || srcSet) && !hasLoadError\"\n :src=\"src\"\n :alt=\"alt\"\n :srcset=\"srcSet\"\n :style=\"fitStyle\"\n @error=\"handleError\"\n />\n <el-icon v-else-if=\"icon\">\n <component :is=\"icon\" />\n </el-icon>\n <slot v-else />\n </span>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, inject, ref, watch } from 'vue'\nimport { ElIcon } from '@element-plus/components/icon'\nimport { useNamespace } from '@element-plus/hooks'\nimport { addUnit, isNumber, isString } from '@element-plus/utils'\nimport { avatarEmits } from './avatar'\nimport { avatarGroupContextKey } from './constants'\n\nimport type { AvatarProps } from './avatar'\nimport type { CSSProperties } from 'vue'\n\ndefineOptions({\n name: 'ElAvatar',\n})\n\nconst props = withDefaults(defineProps<AvatarProps>(), {\n src: '',\n fit: 'cover',\n})\n\nconst emit = defineEmits(avatarEmits)\n\nconst avatarGroupContext = inject(avatarGroupContextKey, undefined)\n\nconst ns = useNamespace('avatar')\n\nconst hasLoadError = ref(false)\n\nconst size = computed(() => props.size ?? avatarGroupContext?.size)\nconst shape = computed(\n () => props.shape ?? avatarGroupContext?.shape ?? 'circle'\n)\n\nconst avatarClass = computed(() => {\n const { icon } = props\n const classList = [ns.b()]\n if (isString(size.value)) classList.push(ns.m(size.value))\n if (icon) classList.push(ns.m('icon'))\n if (shape.value) classList.push(ns.m(shape.value))\n return classList\n})\n\nconst sizeStyle = computed(() => {\n return isNumber(size.value)\n ? (ns.cssVarBlock({\n size: addUnit(size.value)!,\n }) as CSSProperties)\n : undefined\n})\n\nconst fitStyle = computed<CSSProperties>(() => ({\n objectFit: props.fit,\n}))\n\n// need reset hasLoadError to false if src changed\nwatch(\n () => [props.src, props.srcSet],\n () => (hasLoadError.value = false)\n)\n\nfunction handleError(e: Event) {\n hasLoadError.value = true\n emit('error', e)\n}\n</script>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;EAgCA,MAAM,QAAQ;EAKd,MAAM,OAAO;EAEb,MAAM,qCAA4B,yCAAuB,OAAS;EAElE,MAAM,KAAK,2BAAa,SAAQ;EAEhC,MAAM,4BAAmB,MAAK;EAE9B,MAAM,+BAAsB,MAAM,QAAQ,oBAAoB,KAAI;EAClE,MAAM,gCACE,MAAM,SAAS,oBAAoB,SAAS,SACpD;EAEA,MAAM,sCAA6B;GACjC,MAAM,EAAE,SAAS;GACjB,MAAM,YAAY,CAAC,GAAG,GAAG,CAAA;AACzB,iCAAa,KAAK,MAAM,CAAE,WAAU,KAAK,GAAG,EAAE,KAAK,MAAM,CAAA;AACzD,OAAI,KAAM,WAAU,KAAK,GAAG,EAAE,OAAO,CAAA;AACrC,OAAI,MAAM,MAAO,WAAU,KAAK,GAAG,EAAE,MAAM,MAAM,CAAA;AACjD,UAAO;IACR;EAED,MAAM,oCAA2B;AAC/B,UAAO,uBAAS,KAAK,MAAK,GACrB,GAAG,YAAY,EACd,MAAM,sBAAQ,KAAK,MAAM,EAC1B,CAAC,GACF;IACL;EAED,MAAM,oCAA0C,EAC9C,WAAW,MAAM,KAClB,EAAC;AAGF,uBACQ,CAAC,MAAM,KAAK,MAAM,OAAO,QACxB,aAAa,QAAQ,MAC9B;EAEA,SAAS,YAAY,GAAU;AAC7B,gBAAa,QAAQ;AACrB,QAAK,SAAS,EAAC;;;4DAjER,QAAA;IAbA,+BAAO,YAAA,MAAW;IAAG,+BAAO,UAAA,MAAS;QAEjC,QAAA,OAAO,QAAA,WAAM,CAAM,aAAA,2DAM1B,OAAA;;IALC,KAAK,QAAA;IACL,KAAK,QAAA;IACL,QAAQ,QAAA;IACR,+BAAO,SAAA,MAAQ;IACf,SAAO;+BAEU,QAAA,kEAEV,uBAAA,EAAA,EAAA,KAAA,GAAA,EAAA;oCADgB,8EAAR,QAAA,KAAI,CAAA;;6BAEP,KAAA,QAAA,WAAA,EAAA,KAAA,GAAA,CAAA"}

View File

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

View File

@@ -0,0 +1 @@
{"version":3,"file":"avatar2.js","names":[],"sources":["../../../../../../packages/components/avatar/src/avatar.vue"],"sourcesContent":["<template>\n <span :class=\"avatarClass\" :style=\"sizeStyle\">\n <img\n v-if=\"(src || srcSet) && !hasLoadError\"\n :src=\"src\"\n :alt=\"alt\"\n :srcset=\"srcSet\"\n :style=\"fitStyle\"\n @error=\"handleError\"\n />\n <el-icon v-else-if=\"icon\">\n <component :is=\"icon\" />\n </el-icon>\n <slot v-else />\n </span>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, inject, ref, watch } from 'vue'\nimport { ElIcon } from '@element-plus/components/icon'\nimport { useNamespace } from '@element-plus/hooks'\nimport { addUnit, isNumber, isString } from '@element-plus/utils'\nimport { avatarEmits } from './avatar'\nimport { avatarGroupContextKey } from './constants'\n\nimport type { AvatarProps } from './avatar'\nimport type { CSSProperties } from 'vue'\n\ndefineOptions({\n name: 'ElAvatar',\n})\n\nconst props = withDefaults(defineProps<AvatarProps>(), {\n src: '',\n fit: 'cover',\n})\n\nconst emit = defineEmits(avatarEmits)\n\nconst avatarGroupContext = inject(avatarGroupContextKey, undefined)\n\nconst ns = useNamespace('avatar')\n\nconst hasLoadError = ref(false)\n\nconst size = computed(() => props.size ?? avatarGroupContext?.size)\nconst shape = computed(\n () => props.shape ?? avatarGroupContext?.shape ?? 'circle'\n)\n\nconst avatarClass = computed(() => {\n const { icon } = props\n const classList = [ns.b()]\n if (isString(size.value)) classList.push(ns.m(size.value))\n if (icon) classList.push(ns.m('icon'))\n if (shape.value) classList.push(ns.m(shape.value))\n return classList\n})\n\nconst sizeStyle = computed(() => {\n return isNumber(size.value)\n ? (ns.cssVarBlock({\n size: addUnit(size.value)!,\n }) as CSSProperties)\n : undefined\n})\n\nconst fitStyle = computed<CSSProperties>(() => ({\n objectFit: props.fit,\n}))\n\n// need reset hasLoadError to false if src changed\nwatch(\n () => [props.src, props.srcSet],\n () => (hasLoadError.value = false)\n)\n\nfunction handleError(e: Event) {\n hasLoadError.value = true\n emit('error', e)\n}\n</script>\n"],"mappings":""}

View File

@@ -0,0 +1,11 @@
import { AvatarProps } from "./avatar.js";
import { InjectionKey } from "vue";
//#region ../../packages/components/avatar/src/constants.d.ts
interface AvatarGroupContext {
size?: AvatarProps['size'];
shape?: AvatarProps['shape'];
}
declare const avatarGroupContextKey: InjectionKey<AvatarGroupContext>;
//#endregion
export { AvatarGroupContext, avatarGroupContextKey };

View File

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

View File

@@ -0,0 +1 @@
{"version":3,"file":"constants.js","names":[],"sources":["../../../../../../packages/components/avatar/src/constants.ts"],"sourcesContent":["import type { InjectionKey } from 'vue'\nimport type { AvatarProps } from './avatar'\n\nexport interface AvatarGroupContext {\n size?: AvatarProps['size']\n shape?: AvatarProps['shape']\n}\n\nexport const avatarGroupContextKey: InjectionKey<AvatarGroupContext> = Symbol(\n 'avatarGroupContextKey'\n)\n"],"mappings":";;;AAQA,MAAa,wBAA0D,OACrE,wBACD"}

View File

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

View File

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

View File

@@ -0,0 +1,3 @@
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
require('../../base/style/css.js');
require("element-plus/theme-chalk/el-avatar.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/avatar.scss");

View File

@@ -0,0 +1,10 @@
import { SFCWithInstall } from "../../utils/vue/typescript.js";
import "../../utils/index.js";
import { BacktopEmits, BacktopProps, BacktopPropsPublic, backtopEmits, backtopProps } from "./src/backtop.js";
import { _default } from "./src/backtop.vue.js";
import { BacktopInstance } from "./src/instance.js";
//#region ../../packages/components/backtop/index.d.ts
declare const ElBacktop: SFCWithInstall<typeof _default>;
//#endregion
export { BacktopEmits, type BacktopInstance, BacktopProps, BacktopPropsPublic, ElBacktop, ElBacktop as default, backtopEmits, backtopProps };

View File

@@ -0,0 +1,14 @@
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
const require_install = require('../../utils/vue/install.js');
const require_backtop = require('./src/backtop.js');
const require_backtop$1 = require('./src/backtop2.js');
//#region ../../packages/components/backtop/index.ts
const ElBacktop = require_install.withInstall(require_backtop$1.default);
//#endregion
exports.ElBacktop = ElBacktop;
exports.default = ElBacktop;
exports.backtopEmits = require_backtop.backtopEmits;
exports.backtopProps = require_backtop.backtopProps;
//# sourceMappingURL=index.js.map

Some files were not shown because too many files have changed in this diff Show More