solid-alive 0.1.3 → 0.1.5
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/dist/index.cjs +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var e=require("solid-js/web"),l=require("solid-js/store"),t=require("solid-js"),o=t.createContext({elements:{},scrollDom:{current:null},closeSymbol:Symbol("close"),insertElement:()=>{},onDeactivated:()=>{},onActivated:()=>{},removeAliveElement:()=>{},setElement:()=>{},setCurrentComponentId:()=>{},saveElScroll:()=>{},resetElScroll:()=>!0,removeScrollEl:()=>!0});var r={appear:"index-module_appear__MaHzX",_appear:"index-module__appear__7KeRW",toLeft:"index-module_toLeft__s1PDL",_toLeft:"index-module__toLeft__SD-Zp"};let n=0;exports.AliveProvider=function(r){var[n,i]=l.createStore(),a={current:null};let c=Symbol("close"),s=c,d=new Map,v=new Map,u=new Map;var m=e=>{let l=e.id,t=d.get(l),o=v.get(l),r=u.get(l);d.delete(l),v.delete(l),u.delete(l),i([l],Object.assign(Object.assign(Object.assign({},n[l]),e),{onActivated:t,onDeactivated:o,domList:r}))},f=e=>{var l;if(Reflect.has(n,e)){var t=null===(l=n[e])||void 0===l?void 0:l.children;null==t||t.forEach((l=>l!==e&&f(l))),i((l=>{var t,o;return l[e].onDeactivated=null,l[e].component=null,null===(o=(t=l[e]).dispose)||void 0===o||o.call(t),l[e].dispose=null,l[e].onActivated=null,l[e].onDeactivated=null,l[e].scroll=null,l[e].id="",l[e].children=null,l[e].domList=null,l[e].isTop=!1,l[e]=null,delete l[e],l}))}},p=e=>{if(null==e)for(const e of Object.values(n))f(e.id);else f(e)},E=e=>{s=e};const L=(e,t,o)=>{Reflect.has(n,e)&&i(l.produce((l=>{l[e][t]=o})))};var h=(e,l)=>{var t={onActivated:d,onDeactivated:v}[e];if(s!==c){var o=t.get(s)||new Set;o.size<100&&o.add(l)&&t.set(s,o)}},S=e=>{h("onActivated",e)},A=e=>{h("onDeactivated",e)},b=(e,l)=>{var t,o;if(s!==c){var r=(null!==(t=u.get(s))&&void 0!==t?t:new Map([])).set(e,{top:0,left:0});u.set(s,r),null===(o=null==l?void 0:l())||void 0===o||o(e)}},D=e=>{var l;for(const t of Object.values(n))if(null===(l=t.domList)||void 0===l?void 0:l.has(e))return t.domList.delete(e),e.scrollTop=0,e.scrollLeft=0,!0;return!1},_=e=>{var l;for(const t of Object.values(n))if(null===(l=t.domList)||void 0===l?void 0:l.has(e))return t.domList.set(e,{top:0,left:0}),e.scrollTop=0,e.scrollLeft=0,!0;return!1};return t.createEffect((()=>{r.scrollId&&(a.current=document.getElementById(r.scrollId),!a.current&&console.error(`[solid-alive] scrollId: ${r.scrollId} is null `))})),e.createComponent(o.Provider,{get value(){return{scrollDom:a,behavior:r.behavior,transitionEnterName:r.transitionEnterName,elements:n,closeSymbol:c,onActivated:S,onDeactivated:A,insertElement:m,setElement:L,removeAliveElement:p,setCurrentComponentId:E,saveElScroll:b,resetElScroll:_,removeScrollEl:D}},get children(){return r.children}})},exports.AliveTransfer=function(l,i,a){var c,{behavior:
|
|
1
|
+
"use strict";var e=require("solid-js/web"),l=require("solid-js/store"),t=require("solid-js"),o=t.createContext({elements:{},scrollDom:{current:null},closeSymbol:Symbol("close"),insertElement:()=>{},onDeactivated:()=>{},onActivated:()=>{},removeAliveElement:()=>{},setElement:()=>{},setCurrentComponentId:()=>{},saveElScroll:()=>{},resetElScroll:()=>!0,removeScrollEl:()=>!0});var r={appear:"index-module_appear__MaHzX",_appear:"index-module__appear__7KeRW",toLeft:"index-module_toLeft__s1PDL",_toLeft:"index-module__toLeft__SD-Zp"};let n=0;exports.AliveProvider=function(r){var[n,i]=l.createStore(),a={current:null};let c=Symbol("close"),s=c,d=new Map,v=new Map,u=new Map;var m=e=>{let l=e.id,t=d.get(l),o=v.get(l),r=u.get(l);d.delete(l),v.delete(l),u.delete(l),i([l],Object.assign(Object.assign(Object.assign({},n[l]),e),{onActivated:t,onDeactivated:o,domList:r}))},f=e=>{var l;if(Reflect.has(n,e)){var t=null===(l=n[e])||void 0===l?void 0:l.children;null==t||t.forEach((l=>l!==e&&f(l))),i((l=>{var t,o;return l[e].onDeactivated=null,l[e].component=null,null===(o=(t=l[e]).dispose)||void 0===o||o.call(t),l[e].dispose=null,l[e].onActivated=null,l[e].onDeactivated=null,l[e].scroll=null,l[e].id="",l[e].children=null,l[e].domList=null,l[e].isTop=!1,l[e]=null,delete l[e],l}))}},p=e=>{if(null==e)for(const e of Object.values(n))f(e.id);else f(e)},E=e=>{s=e};const L=(e,t,o)=>{Reflect.has(n,e)&&i(l.produce((l=>{l[e][t]=o})))};var h=(e,l)=>{var t={onActivated:d,onDeactivated:v}[e];if(s!==c){var o=t.get(s)||new Set;o.size<100&&o.add(l)&&t.set(s,o)}},S=e=>{h("onActivated",e)},A=e=>{h("onDeactivated",e)},b=(e,l)=>{var t,o;if(s!==c){var r=(null!==(t=u.get(s))&&void 0!==t?t:new Map([])).set(e,{top:0,left:0});u.set(s,r),null===(o=null==l?void 0:l())||void 0===o||o(e)}},D=e=>{var l;for(const t of Object.values(n))if(null===(l=t.domList)||void 0===l?void 0:l.has(e))return t.domList.delete(e),e.scrollTop=0,e.scrollLeft=0,!0;return!1},_=e=>{var l;for(const t of Object.values(n))if(null===(l=t.domList)||void 0===l?void 0:l.has(e))return t.domList.set(e,{top:0,left:0}),e.scrollTop=0,e.scrollLeft=0,!0;return!1};return t.createEffect((()=>{r.scrollId&&(a.current=document.getElementById(r.scrollId),!a.current&&console.error(`[solid-alive] scrollId: ${r.scrollId} is null `))})),e.createComponent(o.Provider,{get value(){return{scrollDom:a,behavior:r.behavior,transitionEnterName:r.transitionEnterName,elements:n,closeSymbol:c,onActivated:S,onDeactivated:A,insertElement:m,setElement:L,removeAliveElement:p,setCurrentComponentId:E,saveElScroll:b,resetElScroll:_,removeScrollEl:D}},get children(){return r.children}})},exports.AliveTransfer=function(l,i,a){var c,s,{behavior:d,elements:v,scrollDom:u,closeSymbol:m,transitionEnterName:f,insertElement:p,setElement:E,setCurrentComponentId:L}=t.useContext(o);Reflect.has(v,i)||(L(i),p({id:i,children:Array.isArray(a)?new Set(a):null}),t.createRoot((t=>{var o;p({id:i,dispose:t,component:e.createComponent(l,{}),onDeactivated:null,onActivated:null,scroll:{top:0,left:0},domList:null});let r=null===(o=Object.values(v).find((e=>{var l;return null===(l=e.children)||void 0===l?void 0:l.has(i)})))||void 0===o?void 0:o.id;r&&L(r)})));var h=e=>{var l;if(u.current)if("cacheScroll"===e){var t="alwaysTop"===d?{top:0,left:0}:{top:u.current.scrollTop,left:u.current.scrollLeft};E(i,"scroll",t)}else{var o=Date.now();if(o-n>200){const{top:e=0,left:t=0}=(null===(l=v[i])||void 0===l?void 0:l.scroll)||{};u.current.scrollTop=e,u.current.scrollLeft=t,n=o}}},S=e=>{var l,t;if(null===(l=v[e])||void 0===l?void 0:l.isTop)return e;var o=null===(t=Object.values(v).find((l=>{var t;return null===(t=l.children)||void 0===t?void 0:t.has(e)})))||void 0===t?void 0:t.id;return o&&(o=S(o)),o||e};if(f){let e,l=S(i);if(l&&(e=null===(c=v[l])||void 0===c?void 0:c.component,E(l,"isTop",!0)),"function"==typeof e&&(e=null==e?void 0:e()),e instanceof HTMLElement){var A=r[f]||f;e.classList.add(A);const l=()=>{e.classList.remove(A),e.removeEventListener("animationend",l)};e.addEventListener("animationend",l)}}return t.createEffect((()=>{var e,l,t,o;null===(l=null===(e=v[i])||void 0===e?void 0:e.onActivated)||void 0===l||l.forEach((e=>e())),h("scrollTo"),null===(o=null===(t=v[i])||void 0===t?void 0:t.domList)||void 0===o||o.forEach(((e,l)=>{l.scrollTop=e.top,l.scrollLeft=e.left}))})),t.onCleanup((()=>{var e,l,t,o;L(m),null===(l=null===(e=v[i])||void 0===e?void 0:e.onDeactivated)||void 0===l||l.forEach((e=>e())),h("cacheScroll"),null===(o=null===(t=v[i])||void 0===t?void 0:t.domList)||void 0===o||o.forEach(((e,l,t)=>t.set(l,{top:l.scrollTop,left:l.scrollLeft})))})),null===(s=v[i])||void 0===s?void 0:s.component},exports.useAlive=function(){var{onActivated:e,onDeactivated:l,removeAliveElement:r,saveElScroll:n,resetElScroll:i,removeScrollEl:a}=t.useContext(o);return{onActivated:e,onDeactivated:l,removeAliveElement:r,directiveSaveScroll:n,resetElScroll:i,removeScrollEl:a}};
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{createComponent as e}from"solid-js/web";import{createStore as l,produce as
|
|
1
|
+
import{createComponent as e}from"solid-js/web";import{createStore as l,produce as o}from"solid-js/store";import{createContext as t,createEffect as r,useContext as n,createRoot as i,onCleanup as a}from"solid-js";var d=t({elements:{},scrollDom:{current:null},closeSymbol:Symbol("close"),insertElement:()=>{},onDeactivated:()=>{},onActivated:()=>{},removeAliveElement:()=>{},setElement:()=>{},setCurrentComponentId:()=>{},saveElScroll:()=>{},resetElScroll:()=>!0,removeScrollEl:()=>!0});function s(t){var[n,i]=l(),a={current:null};let s=Symbol("close"),c=s,v=new Map,u=new Map,m=new Map;var f=e=>{let l=e.id,o=v.get(l),t=u.get(l),r=m.get(l);v.delete(l),u.delete(l),m.delete(l),i([l],Object.assign(Object.assign(Object.assign({},n[l]),e),{onActivated:o,onDeactivated:t,domList:r}))},p=e=>{var l;if(Reflect.has(n,e)){var o=null===(l=n[e])||void 0===l?void 0:l.children;null==o||o.forEach((l=>l!==e&&p(l))),i((l=>{var o,t;return l[e].onDeactivated=null,l[e].component=null,null===(t=(o=l[e]).dispose)||void 0===t||t.call(o),l[e].dispose=null,l[e].onActivated=null,l[e].onDeactivated=null,l[e].scroll=null,l[e].id="",l[e].children=null,l[e].domList=null,l[e].isTop=!1,l[e]=null,delete l[e],l}))}},E=e=>{if(null==e)for(const e of Object.values(n))p(e.id);else p(e)},L=e=>{c=e};const h=(e,l,t)=>{Reflect.has(n,e)&&i(o((o=>{o[e][l]=t})))};var S=(e,l)=>{var o={onActivated:v,onDeactivated:u}[e];if(c!==s){var t=o.get(c)||new Set;t.size<100&&t.add(l)&&o.set(c,t)}},b=e=>{S("onActivated",e)},D=e=>{S("onDeactivated",e)},A=(e,l)=>{var o,t;if(c!==s){var r=(null!==(o=m.get(c))&&void 0!==o?o:new Map([])).set(e,{top:0,left:0});m.set(c,r),null===(t=null==l?void 0:l())||void 0===t||t(e)}},_=e=>{var l;for(const o of Object.values(n))if(null===(l=o.domList)||void 0===l?void 0:l.has(e))return o.domList.delete(e),e.scrollTop=0,e.scrollLeft=0,!0;return!1},T=e=>{var l;for(const o of Object.values(n))if(null===(l=o.domList)||void 0===l?void 0:l.has(e))return o.domList.set(e,{top:0,left:0}),e.scrollTop=0,e.scrollLeft=0,!0;return!1};return r((()=>{t.scrollId&&(a.current=document.getElementById(t.scrollId),!a.current&&console.error(`[solid-alive] scrollId: ${t.scrollId} is null `))})),e(d.Provider,{get value(){return{scrollDom:a,behavior:t.behavior,transitionEnterName:t.transitionEnterName,elements:n,closeSymbol:s,onActivated:b,onDeactivated:D,insertElement:f,setElement:h,removeAliveElement:E,setCurrentComponentId:L,saveElScroll:A,resetElScroll:T,removeScrollEl:_}},get children(){return t.children}})}var c={appear:"index-module_appear__MaHzX",_appear:"index-module__appear__7KeRW",toLeft:"index-module_toLeft__s1PDL",_toLeft:"index-module__toLeft__SD-Zp"};let v=0;function u(l,o,t){var s,u,{behavior:m,elements:f,scrollDom:p,closeSymbol:E,transitionEnterName:L,insertElement:h,setElement:S,setCurrentComponentId:b}=n(d);Reflect.has(f,o)||(b(o),h({id:o,children:Array.isArray(t)?new Set(t):null}),i((t=>{var r;h({id:o,dispose:t,component:e(l,{}),onDeactivated:null,onActivated:null,scroll:{top:0,left:0},domList:null});let n=null===(r=Object.values(f).find((e=>{var l;return null===(l=e.children)||void 0===l?void 0:l.has(o)})))||void 0===r?void 0:r.id;n&&b(n)})));var D=e=>{var l;if(p.current)if("cacheScroll"===e){var t="alwaysTop"===m?{top:0,left:0}:{top:p.current.scrollTop,left:p.current.scrollLeft};S(o,"scroll",t)}else{var r=Date.now();if(r-v>200){const{top:e=0,left:t=0}=(null===(l=f[o])||void 0===l?void 0:l.scroll)||{};p.current.scrollTop=e,p.current.scrollLeft=t,v=r}}},A=e=>{var l,o;if(null===(l=f[e])||void 0===l?void 0:l.isTop)return e;var t=null===(o=Object.values(f).find((l=>{var o;return null===(o=l.children)||void 0===o?void 0:o.has(e)})))||void 0===o?void 0:o.id;return t&&(t=A(t)),t||e};if(L){let e,l=A(o);if(l&&(e=null===(s=f[l])||void 0===s?void 0:s.component,S(l,"isTop",!0)),"function"==typeof e&&(e=null==e?void 0:e()),e instanceof HTMLElement){var _=c[L]||L;e.classList.add(_);const l=()=>{e.classList.remove(_),e.removeEventListener("animationend",l)};e.addEventListener("animationend",l)}}return r((()=>{var e,l,t,r;null===(l=null===(e=f[o])||void 0===e?void 0:e.onActivated)||void 0===l||l.forEach((e=>e())),D("scrollTo"),null===(r=null===(t=f[o])||void 0===t?void 0:t.domList)||void 0===r||r.forEach(((e,l)=>{l.scrollTop=e.top,l.scrollLeft=e.left}))})),a((()=>{var e,l,t,r;b(E),null===(l=null===(e=f[o])||void 0===e?void 0:e.onDeactivated)||void 0===l||l.forEach((e=>e())),D("cacheScroll"),null===(r=null===(t=f[o])||void 0===t?void 0:t.domList)||void 0===r||r.forEach(((e,l,o)=>o.set(l,{top:l.scrollTop,left:l.scrollLeft})))})),null===(u=f[o])||void 0===u?void 0:u.component}function m(){var{onActivated:e,onDeactivated:l,removeAliveElement:o,saveElScroll:t,resetElScroll:r,removeScrollEl:i}=n(d);return{onActivated:e,onDeactivated:l,removeAliveElement:o,directiveSaveScroll:t,resetElScroll:r,removeScrollEl:i}}export{s as AliveProvider,u as AliveTransfer,m as useAlive};
|