feat: initial commit - Phase 1 & 2 core features

This commit is contained in:
hiderfong
2026-04-22 17:07:33 +08:00
commit 1773bda06b
25005 changed files with 6252106 additions and 0 deletions
@@ -0,0 +1,48 @@
import { EpPropFinalized } from "../../utils/vue/props/types.js";
import "../../utils/index.js";
import { ToRefs } from "vue";
//#region ../../packages/hooks/use-delayed-toggle/index.d.ts
interface UseDelayedToggleProps {
/**
* @description delay of appearance, in millisecond, not valid in controlled mode
*/
showAfter?: number;
/**
* @description delay of disappear, in millisecond, not valid in controlled mode
*/
hideAfter?: number;
/**
* @description disappear automatically, in millisecond, not valid in controlled mode
*/
autoClose?: number;
}
/**
* @deprecated Removed after 3.0.0, Use `UseDelayedToggleProps` instead.
*/
declare const useDelayedToggleProps: {
readonly showAfter: EpPropFinalized<NumberConstructor, unknown, unknown, 0, boolean>;
readonly hideAfter: EpPropFinalized<NumberConstructor, unknown, unknown, 200, boolean>;
readonly autoClose: EpPropFinalized<NumberConstructor, unknown, unknown, 0, boolean>;
};
type DelayedToggle = {
open: (event?: Event) => void;
close: (event?: Event) => void;
} & ToRefs<Required<UseDelayedToggleProps>>;
declare const useDelayedTogglePropsDefaults: {
readonly showAfter: 0;
readonly hideAfter: 200;
readonly autoClose: 0;
};
declare const useDelayedToggle: ({
showAfter,
hideAfter,
autoClose,
open,
close
}: DelayedToggle) => {
onOpen: (event?: Event, delay?: number) => void;
onClose: (event?: Event, delay?: number) => void;
};
//#endregion
export { DelayedToggle, UseDelayedToggleProps, useDelayedToggle, useDelayedToggleProps, useDelayedTogglePropsDefaults };
@@ -0,0 +1,55 @@
import { isNumber } from "../../utils/types.mjs";
import { buildProps } from "../../utils/vue/props/runtime.mjs";
import { useTimeout } from "../use-timeout/index.mjs";
import { unref } from "vue";
//#region ../../packages/hooks/use-delayed-toggle/index.ts
/**
* @deprecated Removed after 3.0.0, Use `UseDelayedToggleProps` instead.
*/
const useDelayedToggleProps = buildProps({
showAfter: {
type: Number,
default: 0
},
hideAfter: {
type: Number,
default: 200
},
autoClose: {
type: Number,
default: 0
}
});
const useDelayedTogglePropsDefaults = {
showAfter: 0,
hideAfter: 200,
autoClose: 0
};
const useDelayedToggle = ({ showAfter, hideAfter, autoClose, open, close }) => {
const { registerTimeout } = useTimeout();
const { registerTimeout: registerTimeoutForAutoClose, cancelTimeout: cancelTimeoutForAutoClose } = useTimeout();
const onOpen = (event, delay = unref(showAfter)) => {
registerTimeout(() => {
open(event);
const _autoClose = unref(autoClose);
if (isNumber(_autoClose) && _autoClose > 0) registerTimeoutForAutoClose(() => {
close(event);
}, _autoClose);
}, delay);
};
const onClose = (event, delay = unref(hideAfter)) => {
cancelTimeoutForAutoClose();
registerTimeout(() => {
close(event);
}, delay);
};
return {
onOpen,
onClose
};
};
//#endregion
export { useDelayedToggle, useDelayedToggleProps, useDelayedTogglePropsDefaults };
//# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
{"version":3,"file":"index.mjs","names":[],"sources":["../../../../../packages/hooks/use-delayed-toggle/index.ts"],"sourcesContent":["import { unref } from 'vue'\nimport { buildProps, isNumber } from '@element-plus/utils'\nimport { useTimeout } from '../use-timeout'\n\nimport type { ToRefs } from 'vue'\n\nexport interface UseDelayedToggleProps {\n /**\n * @description delay of appearance, in millisecond, not valid in controlled mode\n */\n showAfter?: number\n /**\n * @description delay of disappear, in millisecond, not valid in controlled mode\n */\n hideAfter?: number\n /**\n * @description disappear automatically, in millisecond, not valid in controlled mode\n */\n autoClose?: number\n}\n\n/**\n * @deprecated Removed after 3.0.0, Use `UseDelayedToggleProps` instead.\n */\nexport const useDelayedToggleProps = buildProps({\n /**\n * @description delay of appearance, in millisecond, not valid in controlled mode\n */\n showAfter: {\n type: Number,\n default: 0,\n },\n /**\n * @description delay of disappear, in millisecond, not valid in controlled mode\n */\n hideAfter: {\n type: Number,\n default: 200,\n },\n /**\n * @description disappear automatically, in millisecond, not valid in controlled mode\n */\n autoClose: {\n type: Number,\n default: 0,\n },\n} as const)\n\nexport type DelayedToggle = {\n open: (event?: Event) => void\n close: (event?: Event) => void\n} & ToRefs<Required<UseDelayedToggleProps>>\n\nexport const useDelayedTogglePropsDefaults = {\n showAfter: 0,\n hideAfter: 200,\n autoClose: 0,\n} as const\n\nexport const useDelayedToggle = ({\n showAfter,\n hideAfter,\n autoClose,\n open,\n close,\n}: DelayedToggle) => {\n const { registerTimeout } = useTimeout()\n const {\n registerTimeout: registerTimeoutForAutoClose,\n cancelTimeout: cancelTimeoutForAutoClose,\n } = useTimeout()\n\n const onOpen = (event?: Event, delay = unref(showAfter)) => {\n registerTimeout(() => {\n open(event)\n\n const _autoClose = unref(autoClose)\n if (isNumber(_autoClose) && _autoClose > 0) {\n registerTimeoutForAutoClose(() => {\n close(event)\n }, _autoClose)\n }\n }, delay)\n }\n\n const onClose = (event?: Event, delay = unref(hideAfter)) => {\n cancelTimeoutForAutoClose()\n registerTimeout(() => {\n close(event)\n }, delay)\n }\n\n return {\n onOpen,\n onClose,\n }\n}\n"],"mappings":";;;;;;;;;AAwBA,MAAa,wBAAwB,WAAW;CAI9C,WAAW;EACT,MAAM;EACN,SAAS;EACV;CAID,WAAW;EACT,MAAM;EACN,SAAS;EACV;CAID,WAAW;EACT,MAAM;EACN,SAAS;EACV;CACF,CAAU;AAOX,MAAa,gCAAgC;CAC3C,WAAW;CACX,WAAW;CACX,WAAW;CACZ;AAED,MAAa,oBAAoB,EAC/B,WACA,WACA,WACA,MACA,YACmB;CACnB,MAAM,EAAE,oBAAoB,YAAY;CACxC,MAAM,EACJ,iBAAiB,6BACjB,eAAe,8BACb,YAAY;CAEhB,MAAM,UAAU,OAAe,QAAQ,MAAM,UAAU,KAAK;AAC1D,wBAAsB;AACpB,QAAK,MAAM;GAEX,MAAM,aAAa,MAAM,UAAU;AACnC,OAAI,SAAS,WAAW,IAAI,aAAa,EACvC,mCAAkC;AAChC,UAAM,MAAM;MACX,WAAW;KAEf,MAAM;;CAGX,MAAM,WAAW,OAAe,QAAQ,MAAM,UAAU,KAAK;AAC3D,6BAA2B;AAC3B,wBAAsB;AACpB,SAAM,MAAM;KACX,MAAM;;AAGX,QAAO;EACL;EACA;EACD"}