morningfast-plus 1.1.26 → 1.1.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/hooks/index.cjs +1 -1
- package/hooks/index.d.ts +1 -0
- package/hooks/index.mjs +1 -1
- package/hooks/src/page-state-cache.d.ts +20 -0
- package/package.json +1 -1
package/hooks/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});let e=require("vue"),
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});let e=require("vue"),t=require("element-plus");new Proxy({accessKeyId:"",accessKeySecret:"",stsToken:"",region:"",bucket:"",refreshSTSTokenInterval:9999999},{get:(e,t)=>e[t],set:()=>!1});function o(){const e=globalThis.crypto;if("function"==typeof e?.randomUUID)return e.randomUUID();if("function"==typeof e?.getRandomValues){const t=e.getRandomValues(new Uint8Array(16));t[6]=15&(t[6]??0)|64,t[8]=63&(t[8]??0)|128;const o=Array.from(t,e=>e.toString(16).padStart(2,"0"));return[o.slice(0,4).join(""),o.slice(4,6).join(""),o.slice(6,8).join(""),o.slice(8,10).join(""),o.slice(10).join("")].join("-")}return`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`}const n="mp-popups-container",r=new WeakMap,l=Symbol("__POPUP_PROVIDE_NAME__");function a(){const e=document.querySelector(`body > div.${n.toString()}`);return e||function(){const e=document.createElement("div");return e.classList.add(`${n.toString()}`),document?.querySelector?.(`body > div.${"mp-popups-container".toString()}`)||document.body.appendChild(e),e}()}function i(t,o){const n=a(),l=document.createElement("div");return r.set(l,o),n.appendChild(l),(0,e.render)(t,l),l}function s(t){requestAnimationFrame(()=>{(0,e.render)(null,t),t.remove()})}var u=Symbol("__NOTICE_KEY__"),c=[],d=new Proxy(c,{get:(e,t)=>Reflect.get(e,t),set:()=>!1});function f(){localStorage.setItem(u.toString(),JSON.stringify(d))}var p=!1;var m=`Global-Image-Preview-${o()}`,g=(0,e.ref)([]),y=(0,e.shallowRef)(null);var v=new Map;function h(e){if("undefined"!=typeof window)return"local"===e?window.localStorage:window.sessionStorage}function w(e,t){const o=e.storage||"memory",n=(r=function(e){return JSON.parse(JSON.stringify(e))}(t),l=e.expireTime,{data:r,expireAt:l?Date.now()+l:void 0});var r,l;"memory"!==o?h(o)?.setItem(e.key,JSON.stringify(n)):v.set(e.key,n)}function x(e){const t=e.storage||"memory";let o;if("memory"===t)o=v.get(e.key);else{const n=h(t)?.getItem(e.key);if(n)try{o=JSON.parse(n)}catch{return S(e),null}}return o?function(e){return Boolean(e?.expireAt&&e.expireAt<Date.now())}(o)?(S(e),null):o.data:null}function S(e){const t=e.storage||"memory";"memory"!==t?h(t)?.removeItem(e.key):v.delete(e.key)}exports.PopupProvideKey=l,exports.addNotice=function(e,n){const r=function(e){const n=c.find(t=>t.message===e?.message&&t.title===e?.title),r=(0,t.dayjs)().format("YYYY-MM-DD HH:mm:ss");return{id:o(),mapId:n?n.mapId:o(),type:e?.type||"info",sort:c.length,title:e?.title,message:e?.message||"",duration:e?.duration||3e3,autoRender:void 0===e?.autoRender||Boolean(e?.autoRender),createdAt:r,effectiveAt:e?.effectiveAt||""}}("string"!=typeof e?e:{title:n,message:e});return r.autoRender&&function(e){(0,t.ElNotification)({...e?.notification||{},title:e?.title,message:e?.message,type:e?.type,customClass:`mp-notice-popup ${e?.notification?.customClass||""}`,duration:e?.duration||3e3,position:e?.notification?.position||"bottom-right"})}(r),c.push(r),f(),r},exports.clearNotices=function(){c.length=0,f()},exports.clearPageStateCache=S,exports.getNoticeList=function(){return p||(!function(){const e=localStorage.getItem(u.toString());if(e){const t=JSON.parse(e),o=c.slice();c.length=0,c.push(...t),c.sort((e,t)=>e.sort-t.sort),o.forEach(e=>{e.sort=c.length,c.push(e)})}}(),p=!0),d},exports.getPageStateCache=x,exports.removeNotice=function(e){const t=c.findIndex(t=>t.id===e);if(-1!==t){const[e]=c.splice(t,1);return f(),e??null}return null},exports.savePageStateCache=w,exports.useDialog=async function(n,r,a){const u={modal:!1,appendToBody:!0,destroyOnClose:!0,alignCenter:!0,draggable:!0,overflow:!0,...a||{},class:["mp-hook-dialog",a?.class||""].filter(Boolean).join(" "),headerClass:["mp-hook-dialog-header",a?.headerClass||""].filter(Boolean).join(" "),bodyClass:["mp-hook-dialog-body",a?.bodyClass||""].filter(Boolean).join(" "),footerClass:["mp-hook-dialog-footer",a?.footerClass||""].filter(Boolean).join(" "),onClosed:function(){a?.onClosed?.(),s(f)},showFooter:!!a?.showFooter,showConfirmButton:!0,showCancelButton:!0,confirmButtonText:a?.confirmButtonText??"确定",cancelButtonText:a?.cancelButtonText??"取消"};let c=null;const d=new Promise(e=>c=e),f=i((0,e.h)({setup(){const o=(0,e.ref)(void 0===u?.modelValue||u?.modelValue),i=(0,e.ref)(null),s=(0,e.shallowRef)(()=>!0),d=(0,e.ref)(!1);let f=(0,e.shallowRef)(null);async function p(){try{d.value=!0,f.value=await s.value(),(void 0===f.value||f.value)&&(c?.(f.value),o.value=!1)}catch(e){}finally{d.value=!1}}return(0,e.provide)(l,{ref:i,confirm:p,getDialogStatus:()=>o.value,openDialog:()=>{o.value=!0},closeDialog:()=>{o.value=!1},subscribeConfirmEvent:e=>{s.value=e}}),()=>(0,e.h)(t.ElDialog,{...u,modelValue:o.value,"onUpdate:modelValue":e=>{o.value=e},onVnodeMounted(e){i.value=e?.component?.exposeProxy||null}},{default:()=>(0,e.h)(n,r),header:()=>a?.headerSlot?a.headerSlot:a?.type?(0,e.h)("div",{class:"flex items-center gap-1"},[(0,e.h)(t.ElText,{type:a?.type}),(0,e.h)("span",{},u?.title||"提示")]):null,footer:()=>u.showFooter?(0,e.h)("div",{class:"flex justify-end items-center gap-4 p-4! pt-0!"},[a?.footerStartExtra||null,u.showConfirmButton?(0,e.h)(t.ElButton,{type:"primary",class:"m-0!",loading:d.value,onClick:p},()=>u.confirmButtonText):null,u.showCancelButton?(0,e.h)(t.ElButton,{type:"default",class:"m-0!",onClick:()=>{o.value=!1}},()=>u.cancelButtonText):null,a?.footerEndExtra||null]):null})}}),{id:o(),type:"dialog",props:r,configs:u});return d},exports.useDrawer=function(n,r,a){const u={modal:!1,appendToBody:!0,destroyOnClose:!0,draggable:!0,overflow:!0,...a||{},headerClass:[a?.headerClass||"","m-0! p-4!"].filter(Boolean).join(" "),bodyClass:[a?.bodyClass||"","m-0! p-4! pt-0!"].filter(Boolean).join(" "),footerClass:[a?.footerClass||"","m-0! p-4! pt-0!"].filter(Boolean).join(" "),onClosed:function(){a?.onClosed?.(),s(c)}},c=i((0,e.h)({setup(){const o=(0,e.ref)(void 0===u?.modelValue||u?.modelValue),a=(0,e.ref)(null);return(0,e.provide)(l,{ref:a,getDialogStatus:()=>o.value,openDialog:()=>{o.value=!0},closeDialog:()=>{o.value=!1}}),()=>(0,e.h)(t.ElDrawer,{...u,modelValue:o.value,"onUpdate:modelValue":e=>{o.value=e},onVnodeMounted(e){a.value=e?.component?.exposeProxy||null}},()=>(0,e.h)(n,r))}}),{id:o(),type:"drawer",props:r,configs:u})},exports.useImagePreview=async function(o){await async function(){if(document.querySelector(`#${m}`))return;const o=(0,e.h)({setup(){function o(e){y.value=e}return()=>(0,e.h)(t.ElImage,{src:g.value?.[0]||"",previewSrcList:g.value,previewTeleported:!0,zIndex:9999,fit:"contain",id:m,ref:o,teleported:!0,style:{width:0,height:0,position:"fixed",overflow:"hidden",top:"-999px",left:"-999px"}})}}),n=a(),r=document.createElement("div");n.appendChild(r),(0,e.render)(o,r)}(),y.value&&o?.length&&(g.value=o,requestIdleCallback(()=>{y.value?.showPreview?.()}))},exports.usePageStateCache=function(t){function o(){return(0,e.toValue)(t)}function n(){const e=o(),t=x(e);return t&&Object.assign(e.state,t),t}function r(){const e=o();w(e,e.state)}return(0,e.onMounted)(()=>{!1!==o().immediate&&n()}),(0,e.onBeforeUnmount)(()=>{!1!==o().saveOnUnmount&&r()}),{restore:n,save:r,clear:function(){S(o())}}};
|
package/hooks/index.d.ts
CHANGED
package/hooks/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{h as e,
|
|
1
|
+
import{h as e,onBeforeUnmount as t,onMounted as o,provide as n,ref as l,render as a,shallowRef as r,toValue as i}from"vue";import{ElButton as s,ElDialog as u,ElDrawer as c,ElImage as d,ElNotification as f,ElText as m,dayjs as p}from"element-plus";new Proxy({accessKeyId:"",accessKeySecret:"",stsToken:"",region:"",bucket:"",refreshSTSTokenInterval:9999999},{get:(e,t)=>e[t],set:()=>!1});function g(){const e=globalThis.crypto;if("function"==typeof e?.randomUUID)return e.randomUUID();if("function"==typeof e?.getRandomValues){const t=e.getRandomValues(new Uint8Array(16));t[6]=15&(t[6]??0)|64,t[8]=63&(t[8]??0)|128;const o=Array.from(t,e=>e.toString(16).padStart(2,"0"));return[o.slice(0,4).join(""),o.slice(4,6).join(""),o.slice(6,8).join(""),o.slice(8,10).join(""),o.slice(10).join("")].join("-")}return`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`}async function y(t,o,a){const i={modal:!1,appendToBody:!0,destroyOnClose:!0,alignCenter:!0,draggable:!0,overflow:!0,...a||{},class:["mp-hook-dialog",a?.class||""].filter(Boolean).join(" "),headerClass:["mp-hook-dialog-header",a?.headerClass||""].filter(Boolean).join(" "),bodyClass:["mp-hook-dialog-body",a?.bodyClass||""].filter(Boolean).join(" "),footerClass:["mp-hook-dialog-footer",a?.footerClass||""].filter(Boolean).join(" "),onClosed:function(){a?.onClosed?.(),B(f)},showFooter:!!a?.showFooter,showConfirmButton:!0,showCancelButton:!0,confirmButtonText:a?.confirmButtonText??"确定",cancelButtonText:a?.cancelButtonText??"取消"};let c=null;const d=new Promise(e=>c=e),f=x(e({setup(){const d=l(void 0===i?.modelValue||i?.modelValue),f=l(null),p=r(()=>!0),g=l(!1);let y=r(null);async function v(){try{g.value=!0,y.value=await p.value(),(void 0===y.value||y.value)&&(c?.(y.value),d.value=!1)}catch(e){}finally{g.value=!1}}return n(C,{ref:f,confirm:v,getDialogStatus:()=>d.value,openDialog:()=>{d.value=!0},closeDialog:()=>{d.value=!1},subscribeConfirmEvent:e=>{p.value=e}}),()=>e(u,{...i,modelValue:d.value,"onUpdate:modelValue":e=>{d.value=e},onVnodeMounted(e){f.value=e?.component?.exposeProxy||null}},{default:()=>e(t,o),header:()=>a?.headerSlot?a.headerSlot:a?.type?e("div",{class:"flex items-center gap-1"},[e(m,{type:a?.type}),e("span",{},i?.title||"提示")]):null,footer:()=>i.showFooter?e("div",{class:"flex justify-end items-center gap-4 p-4! pt-0!"},[a?.footerStartExtra||null,i.showConfirmButton?e(s,{type:"primary",class:"m-0!",loading:g.value,onClick:v},()=>i.confirmButtonText):null,i.showCancelButton?e(s,{type:"default",class:"m-0!",onClick:()=>{d.value=!1}},()=>i.cancelButtonText):null,a?.footerEndExtra||null]):null})}}),{id:g(),type:"dialog",props:o,configs:i});return d}function v(t,o,a){const r={modal:!1,appendToBody:!0,destroyOnClose:!0,draggable:!0,overflow:!0,...a||{},headerClass:[a?.headerClass||"","m-0! p-4!"].filter(Boolean).join(" "),bodyClass:[a?.bodyClass||"","m-0! p-4! pt-0!"].filter(Boolean).join(" "),footerClass:[a?.footerClass||"","m-0! p-4! pt-0!"].filter(Boolean).join(" "),onClosed:function(){a?.onClosed?.(),B(i)}},i=x(e({setup(){const a=l(void 0===r?.modelValue||r?.modelValue),i=l(null);return n(C,{ref:i,getDialogStatus:()=>a.value,openDialog:()=>{a.value=!0},closeDialog:()=>{a.value=!1}}),()=>e(c,{...r,modelValue:a.value,"onUpdate:modelValue":e=>{a.value=e},onVnodeMounted(e){i.value=e?.component?.exposeProxy||null}},()=>e(t,o))}}),{id:g(),type:"drawer",props:o,configs:r})}const h="mp-popups-container",w=/* @__PURE__ */new WeakMap,C=Symbol("__POPUP_PROVIDE_NAME__");function S(){const e=document.querySelector(`body > div.${h.toString()}`);return e||function(){const e=document.createElement("div");return e.classList.add(`${h.toString()}`),document?.querySelector?.(`body > div.${"mp-popups-container".toString()}`)||document.body.appendChild(e),e}()}function x(e,t){const o=S(),n=document.createElement("div");return w.set(n,t),o.appendChild(n),a(e,n),n}function B(e){requestAnimationFrame(()=>{a(null,e),e.remove()})}var b=Symbol("__NOTICE_KEY__"),k=[],I=new Proxy(k,{get:(e,t)=>Reflect.get(e,t),set:()=>!1});function j(){localStorage.setItem(b.toString(),JSON.stringify(I))}var T=!1;function D(e,t){const o=function(e){const t=k.find(t=>t.message===e?.message&&t.title===e?.title),o=p().format("YYYY-MM-DD HH:mm:ss");return{id:g(),mapId:t?t.mapId:g(),type:e?.type||"info",sort:k.length,title:e?.title,message:e?.message||"",duration:e?.duration||3e3,autoRender:void 0===e?.autoRender||Boolean(e?.autoRender),createdAt:o,effectiveAt:e?.effectiveAt||""}}("string"!=typeof e?e:{title:t,message:e});return o.autoRender&&function(e){f({...e?.notification||{},title:e?.title,message:e?.message,type:e?.type,customClass:`mp-notice-popup ${e?.notification?.customClass||""}`,duration:e?.duration||3e3,position:e?.notification?.position||"bottom-right"})}(o),k.push(o),j(),o}function O(e){const t=k.findIndex(t=>t.id===e);if(-1!==t){const[e]=k.splice(t,1);return j(),e??null}return null}function V(){return T||(!function(){const e=localStorage.getItem(b.toString());if(e){const t=JSON.parse(e),o=k.slice();k.length=0,k.push(...t),k.sort((e,t)=>e.sort-t.sort),o.forEach(e=>{e.sort=k.length,k.push(e)})}}(),T=!0),I}function E(){k.length=0,j()}var P=`Global-Image-Preview-${g()}`,_=l([]),A=r(null);async function U(t){await async function(){if(document.querySelector(`#${P}`))return;const t=e({setup(){function t(e){A.value=e}return()=>e(d,{src:_.value?.[0]||"",previewSrcList:_.value,previewTeleported:!0,zIndex:9999,fit:"contain",id:P,ref:t,teleported:!0,style:{width:0,height:0,position:"fixed",overflow:"hidden",top:"-999px",left:"-999px"}})}}),o=S(),n=document.createElement("div");o.appendChild(n),a(t,n)}(),A.value&&t?.length&&(_.value=t,requestIdleCallback(()=>{A.value?.showPreview?.()}))}var M=/* @__PURE__ */new Map;function N(e){if("undefined"!=typeof window)return"local"===e?window.localStorage:window.sessionStorage}function R(e,t){const o=e.storage||"memory",n=(l=function(e){return JSON.parse(JSON.stringify(e))}(t),a=e.expireTime,{data:l,expireAt:a?Date.now()+a:void 0});var l,a;"memory"!==o?N(o)?.setItem(e.key,JSON.stringify(n)):M.set(e.key,n)}function $(e){const t=e.storage||"memory";let o;if("memory"===t)o=M.get(e.key);else{const n=N(t)?.getItem(e.key);if(n)try{o=JSON.parse(n)}catch{return J(e),null}}return o?function(e){return Boolean(e?.expireAt&&e.expireAt<Date.now())}(o)?(J(e),null):o.data:null}function J(e){const t=e.storage||"memory";"memory"!==t?N(t)?.removeItem(e.key):M.delete(e.key)}function q(e){function n(){return i(e)}function l(){const e=n(),t=$(e);return t&&Object.assign(e.state,t),t}function a(){const e=n();R(e,e.state)}return o(()=>{!1!==n().immediate&&l()}),t(()=>{!1!==n().saveOnUnmount&&a()}),{restore:l,save:a,clear:function(){J(n())}}}export{C as PopupProvideKey,D as addNotice,E as clearNotices,J as clearPageStateCache,V as getNoticeList,$ as getPageStateCache,O as removeNotice,R as savePageStateCache,y as useDialog,v as useDrawer,U as useImagePreview,q as usePageStateCache};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { MaybeRefOrGetter } from 'vue';
|
|
2
|
+
export type PageStateCacheStorage = 'memory' | 'session' | 'local';
|
|
3
|
+
export interface PageStateCacheConfig {
|
|
4
|
+
key: string;
|
|
5
|
+
storage?: PageStateCacheStorage;
|
|
6
|
+
expireTime?: number;
|
|
7
|
+
}
|
|
8
|
+
export interface UsePageStateCacheOptions<T extends object> extends PageStateCacheConfig {
|
|
9
|
+
state: T;
|
|
10
|
+
immediate?: boolean;
|
|
11
|
+
saveOnUnmount?: boolean;
|
|
12
|
+
}
|
|
13
|
+
export declare function savePageStateCache<T extends object>(config: PageStateCacheConfig, state: T): void;
|
|
14
|
+
export declare function getPageStateCache<T extends object>(config: PageStateCacheConfig): T | null;
|
|
15
|
+
export declare function clearPageStateCache(config: PageStateCacheConfig): void;
|
|
16
|
+
export declare function usePageStateCache<T extends object>(options: MaybeRefOrGetter<UsePageStateCacheOptions<T>>): {
|
|
17
|
+
restore: () => T | null;
|
|
18
|
+
save: () => void;
|
|
19
|
+
clear: () => void;
|
|
20
|
+
};
|