@gem-sdk/pages 23.0.0-dev.15 → 23.0.0-dev.19
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.
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("react/jsx-runtime"),e=require("./toolbar/utils/syncOverlayRect.js"),r=require("./toolbar/utils/getChildrenByAttrSelector.js"),o=require("./toolbar/utils/waitForElementToExist.js"),a=require("./toolbar/const.js"),i=require("./toolbar/utils/getDOMElementParents.js"),n=require("./toolbar/utils/findOverflowParent.js"),l=require("./toolbar/utils/findDOMClosest.js"),d=require("react"),u=require("./toolbar/utils/isOverParent.js"),c=d.memo(()=>{let c=d.useRef(null),s=d.useRef(!1),b=d.useRef(),v=d.useRef(!1),f=d.useRef([]),m=d.useRef([]),h=d.useRef([]),g=d.useRef(),p=d.useCallback(()=>{h.current.forEach(t=>e.syncOverlayRect({$component:t}))},[]),y=d.useCallback(t=>{g.current||(g.current=new ResizeObserver(()=>p())),g.current.observe(t);let r=e.getOverlayContainingBlock(t);r&&g.current.observe(r)},[p]),A=d.useCallback(()=>{g.current?.disconnect()},[]),w=({state:t,$toolbar:e,$component:r})=>{let o=n.findOverflowParent(r,e),i=e.getBoundingClientRect(),l=r.getBoundingClientRect(),d=window.innerWidth;o?l?.height<=60?e.setAttribute(`data-toolbar-${t}-revert`,"true"):e.setAttribute(`data-toolbar-${t}-inside`,"true"):i.top<a.TOOLBAR_ACTIVE_HEIGHT+1&&(l?.height<=60?e.setAttribute(`data-toolbar-${t}-revert`,"true"):e.setAttribute(`data-toolbar-${t}-inside`,"true")),l.left+i.width>d&&e.setAttribute(`data-toolbar-${t}-overflow`,"true");let u=r?.closest('[aria-label="Dialog body"]');if(u){let r=u.getBoundingClientRect(),o=r.left+r.width-20;l.left+i.width>o&&e.setAttribute(`data-toolbar-${t}-overflow`,"true")}},E=d.useCallback(({$component:t,componentUid:o,focus:a,isPreventSection:i,isParent:n})=>{if(!t&&!o)return;if(!t){let e=document.body.querySelector("#storefront")?.querySelector(`[data-uid="${o}"]`);if(!e)return;t=e}if(!o){let e=t.getAttribute("data-uid");if(!e)return;o=e}f.current.push(t),e.syncOverlayRect({$component:t});let l=r.getChildrenByAttrSelector(t,"data-toolbar"),d=r.getChildrenByAttrSelector(t,"data-outline"),u=r.getChildrenByAttrSelector(t,"data-toolbar-add-top"),c=r.getChildrenByAttrSelector(t,"data-toolbar-add-bottom"),s=r.getChildrenByAttrSelector(t,"data-theme-section-status");i&&s&&s.setAttribute("data-theme-section-status-active","true"),l&&(l.removeAttribute("style"),n||l.setAttribute("data-toolbar-hover","true"),a&&l.setAttribute("data-toolbar-hover-focus","true"),w({$toolbar:l,$component:t,state:"hover"})),d&&(d.setAttribute("data-outline-hover","true"),n&&d.setAttribute("data-outline-parent-hover","true"),i&&(m.current.push(t),d.setAttribute("data-outline-overlay-theme-section","true")),a&&d.setAttribute("data-outline-hover-focus","true")),u&&!n&&u.setAttribute("data-toolbar-add-hover","true"),c&&!n&&c.setAttribute("data-toolbar-add-hover","true")},[]),C=d.useCallback(({$component:t,componentUid:e})=>{if(!t){let r=document.body.querySelector("#storefront")?.querySelector(`[data-uid="${e}"]`);if(!r)return;t=r}let r=i.getDOMElementParents(t,'[data-uid][data-component-type="component"]:not([data-component-no-setting])',1);if(r.length){for(let t of r)t&&E({$component:t,isParent:!0});S({$component:t,$parents:r})}},[E]),S=({$component:t,$parents:e})=>{if(!t||!e?.length)return;let o=r.getChildrenByAttrSelector(t,"data-toolbar-hover-focus");if(o){let t=o.getBoundingClientRect(),i=!!o.getAttribute("data-toolbar-hover-revert"),n=!!o.getAttribute("data-toolbar-hover-inside"),l=1;for(let o of e)if(o){let e=o.getAttribute("data-component-tag");if("Section"===e)continue;let d=r.getChildrenByAttrSelector(o,"data-toolbar-hover");if(d){let e=d.getAttribute("data-toolbar-active");if(e)continue;let r=d.getBoundingClientRect(),o=i||n;if(u.isOverParent({current:t,parent:r,index:l,revert:o})){let e=getComputedStyle(d),i=t.top-r.top,n=t.left-r.left,u=parseFloat(e.top)+i-(a.TOOLBAR_HOVER_HEIGHT-1)*l;o&&(u=parseFloat(e.top)-i+(a.TOOLBAR_HOVER_HEIGHT-1)*l);let c=parseFloat(e.left)+n;d.setAttribute("style",`top: ${u}px;left: ${c}px;`),l++}}}}},$=d.useCallback(()=>{let t=["data-outline-overlay-theme-section","data-theme-section-status-active"],e=m.current;if(e.length)for(let r of e){let e=r.querySelectorAll(t.map(t=>`[${t}]`).join(","));e&&t.forEach(t=>{e.forEach(e=>e.removeAttribute(t))})}m.current=[]},[]),q=d.useCallback(()=>{let t=["data-toolbar-hover-focus","data-toolbar-hover","data-outline-hover-focus","data-toolbar-hover-revert","data-toolbar-hover-inside","data-outline-hover","data-toolbar-add-hover","data-outline-parent-hover","data-toolbar-hover-overflow"],r=f.current;if(r.length)for(let o of r){h.current.includes(o)||e.clearOverlayRect({$component:o});let r=o.querySelectorAll(t.map(t=>`[${t}]`).join(","));r&&t.forEach(t=>{r.forEach(e=>e.removeAttribute(t))})}$(),f.current=[]},[$]),B=d.useCallback(()=>{c.current=null,A();let t=["data-toolbar-active","data-outline-active","data-toolbar-add-active","data-toolbar-active-revert","data-toolbar-active-inside","data-spacing-margin-bottom-active","data-toolbar-force-hover","data-outline-force-hover","data-toolbar-active-overflow"],r=h.current;if(r.length)for(let o of r){f.current.includes(o)||e.clearOverlayRect({$component:o});let r=o.querySelectorAll(t.map(t=>`[${t}]`).join(","));r&&t.forEach(t=>{r.forEach(e=>e.removeAttribute(t))})}h.current=[],L(!1),b.current&&b.current()},[A]),O=d.useCallback(({$component:t})=>{if(!t)return;let e=getComputedStyle(t),o=r.getChildrenByAttrSelector(t,"data-spacing"),a=o?.querySelector("[data-spacing-margin-bottom]")||null;if(a){let t=a.querySelector("[data-spacing-margin-bottom-bg]")||null,r=a.querySelector("[data-spacing-margin-bottom-drag]")||null;if(t&&r){let o=e.marginBottom;t.style.height=o,r.style.top=o,a.setAttribute("data-spacing-margin-bottom-active","true")}}},[]),R=({componentUid:t,productId:e,articleId:r,marqueeKey:o,carouselItemKey:a})=>r?`${r?`[data-article-id="${r}"][data-uid="${t}"], [data-article-id="${r}"] [data-uid="${t}"]`:`[data-uid="${t}"]`}`:o?`[marquee-item-key="${o}"] [data-uid="${t}"]`:a?`[data-carousel-item-key="${a}"] [data-uid="${t}"]`:`${e?`[data-product-id="${e}"][data-uid="${t}"], [data-product-id="${e}"] [data-uid="${t}"]`:`[data-uid="${t}"]`}`,k=d.useCallback(async({componentUid:t,productId:a,timeAwait:i=600,articleId:n,forceReActive:d,marqueeKey:u,carouselItemKey:s})=>{if(!t)return;let b=R({componentUid:t,productId:a,articleId:n,marqueeKey:u,carouselItemKey:s}),v=await o.waitForElementToExist(b,i);if(!v||!d&&t==c.current?.componentUid&&a==c.current?.productId&&n==c.current?.articleId&&u==c.current?.marqueeKey&&s==c.current?.carouselItemKey)return;(t!==c.current?.componentUid||a!==c.current?.productId||n!==c.current?.articleId||s!==c.current?.carouselItemKey||d)&&B(),(d||t===c.current?.componentUid)&&a===c.current?.productId&&u===c.current?.marqueeKey&&s===c.current?.carouselItemKey||B(),h.current.push(v),e.syncOverlayRect({$component:v}),y(v);let f=r.getChildrenByAttrSelector(v,"data-toolbar"),m=r.getChildrenByAttrSelector(v,"data-outline"),g=r.getChildrenByAttrSelector(v,"data-toolbar-add-top"),p=r.getChildrenByAttrSelector(v,"data-toolbar-add-bottom");f&&(c.current={componentUid:t,productId:a,articleId:n,marqueeKey:u,carouselItemKey:s},f.removeAttribute("style"),f.setAttribute("data-toolbar-active","true"),w({$toolbar:f,$component:v,state:"active"})),m&&m.setAttribute("data-outline-active","true"),g&&g.setAttribute("data-toolbar-add-active","true"),p&&p.setAttribute("data-toolbar-add-active","true");let{$isChildOfMarquee:A,$section:E}=l.findDOMClosest(v,{$isChildOfMarquee:'[data-component-tag="Marquee"]',$section:'[data-component-tag="Section"]'});if(E&&(a||n||A)){let o=E.querySelectorAll(`[data-uid="${t}"]`);o?.length&&o.forEach(t=>{h.current.push(t),e.syncOverlayRect({$component:t}),y(t);let o=r.getChildrenByAttrSelector(t,"data-outline");o&&o.setAttribute("data-outline-active","true")})}O({$component:v}),q()},[y,B,q,O]),L=async t=>{if(t){if(c.current?.componentUid){let e=R({...c.current}),a=await o.waitForElementToExist(e,500);if(a){let e=r.getChildrenByAttrSelector(a,"data-toolbar"),o=r.getChildrenByAttrSelector(a,"data-outline"),i=r.getChildrenByAttrSelector(a,"data-spacing");e&&t&&e.setAttribute("data-toolbar-editor-inline-focus","true"),o&&t&&o.setAttribute("data-outline-editor-inline-focus","true"),i&&t&&i.setAttribute("data-spacing-hidden","true")}}}else{let t=document.body.querySelector("#storefront")?.querySelectorAll("[data-outline-editor-inline-focus],[data-toolbar-editor-inline-focus],[data-spacing-hidden]");t?.length&&t.forEach(t=>{t&&(t.removeAttribute("data-toolbar-editor-inline-focus"),t.removeAttribute("data-outline-editor-inline-focus"),t.removeAttribute("data-spacing-hidden"))})}},I=d.useCallback(t=>{let e=t.closest("[data-theme-section]"),o=e?.getAttribute("data-uid"),a=e&&o===c.current?.componentUid;if(!a)return;m.current.push(e);let i=r.getChildrenByAttrSelector(e,"data-theme-section-status");i&&i.setAttribute("data-theme-section-status-active","true")},[]),T=async({value:t})=>{if(!t||!c.current)return;let e=!1,a=R({...c.current}),i=await o.waitForElementToExist(a,500);if(i){let t=i?.querySelectorAll("[data-toolbar-parent]");if(t.length){let a=t=>{if(e)return;let o=t.getAttribute("data-parent-uid");if(!o)return;let a=document.body.querySelector("#storefront")?.querySelectorAll(`[data-uid="${o}"]`);a?.length&&a.forEach(t=>{let e=r.getChildrenByAttrSelector(t,"data-outline");e&&(e.setAttribute("data-outline-force-hover","true"),e.setAttribute("data-outline-force-overlay","true"))})},i=t=>{let e=t.getAttribute("data-parent-uid");if(!e)return;let o=document.body.querySelector("#storefront")?.querySelectorAll(`[data-uid="${e}"]`);o?.length&&o.forEach(t=>{let e=r.getChildrenByAttrSelector(t,"data-outline");e&&(e.removeAttribute("data-outline-force-hover"),e.removeAttribute("data-outline-force-overlay"))})},n=async t=>{e=!0;let r=t.getAttribute("data-parent-uid");if(!r)return;let a=async()=>{let t=await o.waitForElementToExist(`[data-uid="${r}"]`,500),e=t?.closest("[data-product-id]");return!!e?.getAttribute("data-product-id")},n=async()=>{let t=await o.waitForElementToExist(`[data-uid="${r}"]`,500),e=t?.closest("[data-article-id]");return!!e?.getAttribute("data-article-id")},l=async()=>{let t=await o.waitForElementToExist(`[data-uid="${r}"]`,500),e=t?.closest("[data-carousel-item-key]");return!!e?.getAttribute("data-carousel-item-key")},d="",u="",s="";await a()&&(d=c.current?.productId||""),await n()&&(u=c.current?.articleId||""),await l()&&(s=c.current?.carouselItemKey||"");let b=new CustomEvent("editor:toolbar:force-active-component",{bubbles:!0,detail:{componentUid:r,productId:d,articleId:u,carouselItemKey:s,elementTag:t.getAttribute("data-component-tag")||""}});i(t),window.dispatchEvent(b),setTimeout(()=>{e=!1},0)};t.forEach(t=>{t.addEventListener("mouseover",()=>a(t)),t.addEventListener("mouseout",()=>i(t)),t.addEventListener("click",()=>n(t))})}}},x=d.useCallback(t=>{if(s.current||v.current)return;let e=t.target;if(!e||"function"!=typeof e.closest){$(),q();return}let{$toolbarHover:o,$component:a,$themeSection:i,$shopifySection:n}=l.findDOMClosest(e,{$toolbarHover:"[data-toolbar-hover]",$component:"[data-toolbar-wrap]",$themeSection:"[data-theme-section]",$shopifySection:"[data-shopify-section]"});if(o)return;let d=a?.getAttribute("data-uid");if(!a||!d||"ROOT"==d){q();return}let u=r.getChildrenByAttrSelector(a,"data-toolbar");if(!d||"ROOT"==d||u?.getAttribute("data-toolbar-hover-focus"))return;u?.getAttribute("data-toolbar-hover-focus")||q(),I(e);let b=i||n;if(d==c.current?.componentUid){if(c.current.productId){let t=a.closest("[data-product-id]");if(t){let e=t.getAttribute("data-product-id");if(e==c.current.productId){q();return}}}if(!b)return;E({$component:b,focus:!0,isPreventSection:!0})}b?E({$component:b,focus:!0,isPreventSection:!0}):(E({$component:a,componentUid:d,focus:!0}),C({$component:a,componentUid:d}))},[I,q,E,C,$,c]),U=d.useCallback(t=>{if(s.current)return;let e=t.detail;e?.componentUid?k({componentUid:e.componentUid,productId:e.productId,articleId:e.articleId,marqueeKey:e.marqueeKey,carouselItemKey:e.carouselItemKey}):B()},[k,B,s]),j=d.useCallback(()=>{q()},[q]),F=d.useCallback(t=>{let e=t.detail;e.value&&(q(),B()),s.current=e.value},[q,B]),K=d.useCallback(t=>{let e=t.detail;e.value?L(!0):L(!1)},[]),P=d.useCallback(t=>{if(s.current)return;let e=t.detail;T({value:e?.value||!1})},[]),H=d.useCallback(t=>{let e=t.detail;e?.value?(q(),v.current=!0):v.current=!1},[q]),M=(t,e)=>{if(!t)return;let o=document.body.querySelector("#storefront")?.querySelectorAll(`[data-uid="${t}"]`);o?.length&&o.forEach(t=>{let o=r.getChildrenByAttrSelector(t,"data-outline");o&&("in"===e?(o.setAttribute("data-outline-force-hover","true"),o.setAttribute("data-outline-force-overlay","true")):(o.removeAttribute("data-outline-force-hover"),o.removeAttribute("data-outline-force-overlay")))})},_=d.useCallback(t=>{if(s.current)return;let e=t.detail;e?.componentUid&&M(e?.componentUid,e?.type)},[s]),D=t=>{let e=t.detail;c.current?.componentUid&&e?.componentUid==c.current?.componentUid&&(k({...c.current}),requestAnimationFrame(()=>p()))},z=d.useCallback(t=>{let e=t.detail;document.body.toggleAttribute("data-editor-mobile",!!e?.isEditorMobile)},[]);return d.useEffect(()=>(document.addEventListener("mousemove",x),window.addEventListener("editor:active-component",U),window.addEventListener("editor:focus-outside-preview",j),window.addEventListener("editor:is-dragging",F),window.addEventListener("editor:is-editing-text-editor",K),window.addEventListener("editor:toolbar:show-parents",P),window.addEventListener("editor:toolbar:resize-spacing",H),window.addEventListener("editor:hover-component",_),window.addEventListener("editor:component:render",D),window.addEventListener("editor:editor-mobile-change",z),()=>{document.removeEventListener("mousemove",x),window.removeEventListener("editor:active-component",U),window.removeEventListener("editor:is-dragging",j),window.removeEventListener("editor:is-dragging",F),window.removeEventListener("editor:is-editing-text-editor",K),window.removeEventListener("editor:toolbar:show-parents",P),window.removeEventListener("editor:toolbar:resize-spacing",H),window.removeEventListener("editor:hover-component",_),window.removeEventListener("editor:component:render",D),window.removeEventListener("editor:editor-mobile-change",z),document.body.removeAttribute("data-editor-mobile")}),[x,U,j,F,K,P,H,_,D,z]),t.jsx(t.Fragment,{})});exports.default=c;
|
|
2
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("react/jsx-runtime"),e=require("./toolbar/utils/syncOverlayRect.js"),r=require("./toolbar/utils/getChildrenByAttrSelector.js"),o=require("./toolbar/utils/waitForElementToExist.js"),a=require("./toolbar/const.js"),i=require("./toolbar/utils/getDOMElementParents.js"),n=require("./toolbar/utils/findOverflowParent.js"),l=require("./toolbar/utils/findDOMClosest.js"),d=require("react"),u=require("./toolbar/utils/isOverParent.js"),c=d.memo(()=>{let c=d.useRef(null),s=d.useRef(!1),b=d.useRef(),v=d.useRef(!1),f=d.useRef([]),m=d.useRef([]),h=d.useRef([]),g=d.useRef(),p=d.useCallback(()=>{h.current.forEach(t=>e.syncOverlayRect({$component:t}))},[]),y=d.useCallback(t=>{g.current||(g.current=new ResizeObserver(()=>p())),g.current.observe(t);let r=e.getOverlayContainingBlock(t);r&&g.current.observe(r)},[p]),A=d.useCallback(()=>{g.current?.disconnect()},[]),w=({state:t,$toolbar:e,$component:r})=>{let o=n.findOverflowParent(r,e),i=e.getBoundingClientRect(),l=r.getBoundingClientRect(),d=window.innerWidth;o?l?.height<=60?e.setAttribute(`data-toolbar-${t}-revert`,"true"):e.setAttribute(`data-toolbar-${t}-inside`,"true"):i.top<a.TOOLBAR_ACTIVE_HEIGHT+1&&(l?.height<=60?e.setAttribute(`data-toolbar-${t}-revert`,"true"):e.setAttribute(`data-toolbar-${t}-inside`,"true")),l.left+i.width>d&&e.setAttribute(`data-toolbar-${t}-overflow`,"true");let u=r?.closest('[aria-label="Dialog body"]');if(u){let r=u.getBoundingClientRect(),o=r.left+r.width-20;l.left+i.width>o&&e.setAttribute(`data-toolbar-${t}-overflow`,"true")}},E=d.useCallback(({$component:t,componentUid:o,focus:a,isPreventSection:i,isParent:n})=>{if(!t&&!o)return;if(!t){let e=document.body.querySelector("#storefront")?.querySelector(`[data-uid="${o}"]`);if(!e)return;t=e}if(!o){let e=t.getAttribute("data-uid");if(!e)return;o=e}f.current.push(t),e.syncOverlayRect({$component:t});let l=r.getChildrenByAttrSelector(t,"data-toolbar"),d=r.getChildrenByAttrSelector(t,"data-outline"),u=r.getChildrenByAttrSelector(t,"data-toolbar-add-top"),c=r.getChildrenByAttrSelector(t,"data-toolbar-add-bottom"),s=r.getChildrenByAttrSelector(t,"data-theme-section-status");i&&s&&s.setAttribute("data-theme-section-status-active","true"),l&&(l.removeAttribute("style"),n||l.setAttribute("data-toolbar-hover","true"),a&&l.setAttribute("data-toolbar-hover-focus","true"),w({$toolbar:l,$component:t,state:"hover"})),d&&(d.setAttribute("data-outline-hover","true"),n&&d.setAttribute("data-outline-parent-hover","true"),i&&(m.current.push(t),d.setAttribute("data-outline-overlay-theme-section","true")),a&&d.setAttribute("data-outline-hover-focus","true")),u&&!n&&u.setAttribute("data-toolbar-add-hover","true"),c&&!n&&c.setAttribute("data-toolbar-add-hover","true")},[]),C=d.useCallback(({$component:t,componentUid:e})=>{if(!t){let r=document.body.querySelector("#storefront")?.querySelector(`[data-uid="${e}"]`);if(!r)return;t=r}let r=i.getDOMElementParents(t,'[data-uid][data-component-type="component"]:not([data-component-no-setting])',1);if(r.length){for(let t of r)t&&E({$component:t,isParent:!0});S({$component:t,$parents:r})}},[E]),S=({$component:t,$parents:e})=>{if(!t||!e?.length)return;let o=r.getChildrenByAttrSelector(t,"data-toolbar-hover-focus");if(o){let t=o.getBoundingClientRect(),i=!!o.getAttribute("data-toolbar-hover-revert"),n=!!o.getAttribute("data-toolbar-hover-inside"),l=1;for(let o of e)if(o){let e=o.getAttribute("data-component-tag");if("Section"===e)continue;let d=r.getChildrenByAttrSelector(o,"data-toolbar-hover");if(d){let e=d.getAttribute("data-toolbar-active");if(e)continue;let r=d.getBoundingClientRect(),o=i||n;if(u.isOverParent({current:t,parent:r,index:l,revert:o})){let e=getComputedStyle(d),i=t.top-r.top,n=t.left-r.left,u=parseFloat(e.top)+i-(a.TOOLBAR_HOVER_HEIGHT-1)*l;o&&(u=parseFloat(e.top)-i+(a.TOOLBAR_HOVER_HEIGHT-1)*l);let c=parseFloat(e.left)+n;d.setAttribute("style",`top: ${u}px;left: ${c}px;`),l++}}}}},$=d.useCallback(()=>{let t=["data-outline-overlay-theme-section","data-theme-section-status-active"],e=m.current;if(e.length)for(let r of e){let e=r.querySelectorAll(t.map(t=>`[${t}]`).join(","));e&&t.forEach(t=>{e.forEach(e=>e.removeAttribute(t))})}m.current=[]},[]),q=d.useCallback(()=>{let t=["data-toolbar-hover-focus","data-toolbar-hover","data-outline-hover-focus","data-toolbar-hover-revert","data-toolbar-hover-inside","data-outline-hover","data-toolbar-add-hover","data-outline-parent-hover","data-toolbar-hover-overflow"],r=f.current;if(r.length)for(let o of r){h.current.includes(o)||e.clearOverlayRect({$component:o});let r=o.querySelectorAll(t.map(t=>`[${t}]`).join(","));r&&t.forEach(t=>{r.forEach(e=>e.removeAttribute(t))})}$(),f.current=[]},[$]),B=d.useCallback(()=>{c.current=null,A();let t=["data-toolbar-active","data-outline-active","data-toolbar-add-active","data-toolbar-active-revert","data-toolbar-active-inside","data-spacing-margin-bottom-active","data-toolbar-force-hover","data-outline-force-hover","data-toolbar-active-overflow"],r=h.current;if(r.length)for(let o of r){f.current.includes(o)||e.clearOverlayRect({$component:o});let r=o.querySelectorAll(t.map(t=>`[${t}]`).join(","));r&&t.forEach(t=>{r.forEach(e=>e.removeAttribute(t))})}h.current=[],L(!1),b.current&&b.current()},[A]),O=d.useCallback(({$component:t})=>{if(!t)return;let e=getComputedStyle(t),o=r.getChildrenByAttrSelector(t,"data-spacing"),a=o?.querySelector("[data-spacing-margin-bottom]")||null;if(a){let t=a.querySelector("[data-spacing-margin-bottom-bg]")||null,r=a.querySelector("[data-spacing-margin-bottom-drag]")||null;if(t&&r){let o=e.marginBottom;t.style.height=o,r.style.top=o,a.setAttribute("data-spacing-margin-bottom-active","true")}}},[]),k=({componentUid:t,productId:e,articleId:r,marqueeKey:o,carouselItemKey:a})=>r?`${r?`[data-article-id="${r}"][data-uid="${t}"], [data-article-id="${r}"] [data-uid="${t}"]`:`[data-uid="${t}"]`}`:o?`[marquee-item-key="${o}"] [data-uid="${t}"]`:a?`[data-carousel-item-key="${a}"] [data-uid="${t}"]`:`${e?`[data-product-id="${e}"][data-uid="${t}"], [data-product-id="${e}"] [data-uid="${t}"]`:`[data-uid="${t}"]`}`,R=d.useCallback(async({componentUid:t,productId:a,timeAwait:i=600,articleId:n,forceReActive:d,marqueeKey:u,carouselItemKey:s})=>{if(!t)return;let b=k({componentUid:t,productId:a,articleId:n,marqueeKey:u,carouselItemKey:s}),v=await o.waitForElementToExist(b,i);if(!v||!d&&t==c.current?.componentUid&&a==c.current?.productId&&n==c.current?.articleId&&u==c.current?.marqueeKey&&s==c.current?.carouselItemKey)return;(t!==c.current?.componentUid||a!==c.current?.productId||n!==c.current?.articleId||s!==c.current?.carouselItemKey||d)&&B(),(d||t===c.current?.componentUid)&&a===c.current?.productId&&u===c.current?.marqueeKey&&s===c.current?.carouselItemKey||B(),h.current.push(v),e.syncOverlayRect({$component:v}),y(v);let f=r.getChildrenByAttrSelector(v,"data-toolbar"),m=r.getChildrenByAttrSelector(v,"data-outline"),g=r.getChildrenByAttrSelector(v,"data-toolbar-add-top"),p=r.getChildrenByAttrSelector(v,"data-toolbar-add-bottom");f&&(c.current={componentUid:t,productId:a,articleId:n,marqueeKey:u,carouselItemKey:s},f.removeAttribute("style"),f.setAttribute("data-toolbar-active","true"),w({$toolbar:f,$component:v,state:"active"})),m&&m.setAttribute("data-outline-active","true"),g&&g.setAttribute("data-toolbar-add-active","true"),p&&p.setAttribute("data-toolbar-add-active","true");let{$isChildOfMarquee:A,$section:E}=l.findDOMClosest(v,{$isChildOfMarquee:'[data-component-tag="Marquee"]',$section:'[data-component-tag="Section"]'});if(E&&(a||n||A)){let o=E.querySelectorAll(`[data-uid="${t}"]`);o?.length&&o.forEach(t=>{h.current.push(t),e.syncOverlayRect({$component:t}),y(t);let o=r.getChildrenByAttrSelector(t,"data-outline");o&&o.setAttribute("data-outline-active","true")})}O({$component:v}),q()},[y,B,q,O]),L=async t=>{if(t){if(c.current?.componentUid){let e=k({...c.current}),a=await o.waitForElementToExist(e,500);if(a){let e=r.getChildrenByAttrSelector(a,"data-toolbar"),o=r.getChildrenByAttrSelector(a,"data-outline"),i=r.getChildrenByAttrSelector(a,"data-spacing");e&&t&&e.setAttribute("data-toolbar-editor-inline-focus","true"),o&&t&&o.setAttribute("data-outline-editor-inline-focus","true"),i&&t&&i.setAttribute("data-spacing-hidden","true")}}}else{let t=document.body.querySelector("#storefront")?.querySelectorAll("[data-outline-editor-inline-focus],[data-toolbar-editor-inline-focus],[data-spacing-hidden]");t?.length&&t.forEach(t=>{t&&(t.removeAttribute("data-toolbar-editor-inline-focus"),t.removeAttribute("data-outline-editor-inline-focus"),t.removeAttribute("data-spacing-hidden"))})}},I=d.useCallback(t=>{let e=t.closest("[data-theme-section]"),o=e?.getAttribute("data-uid"),a=e&&o===c.current?.componentUid;if(!a)return;m.current.push(e);let i=r.getChildrenByAttrSelector(e,"data-theme-section-status");i&&i.setAttribute("data-theme-section-status-active","true")},[]),T=async({value:t})=>{if(!t||!c.current)return;let e=!1,a=k({...c.current}),i=await o.waitForElementToExist(a,500);if(i){let t=i?.querySelectorAll("[data-toolbar-parent]");if(t.length){let a=t=>{if(e)return;let o=t.getAttribute("data-parent-uid");if(!o)return;let a=document.body.querySelector("#storefront")?.querySelectorAll(`[data-uid="${o}"]`);a?.length&&a.forEach(t=>{let e=r.getChildrenByAttrSelector(t,"data-outline");e&&(e.setAttribute("data-outline-force-hover","true"),e.setAttribute("data-outline-force-overlay","true"))})},i=t=>{let e=t.getAttribute("data-parent-uid");if(!e)return;let o=document.body.querySelector("#storefront")?.querySelectorAll(`[data-uid="${e}"]`);o?.length&&o.forEach(t=>{let e=r.getChildrenByAttrSelector(t,"data-outline");e&&(e.removeAttribute("data-outline-force-hover"),e.removeAttribute("data-outline-force-overlay"))})},n=async t=>{e=!0;let r=t.getAttribute("data-parent-uid");if(!r)return;let a=async()=>{let t=await o.waitForElementToExist(`[data-uid="${r}"]`,500),e=t?.closest("[data-product-id]");return!!e?.getAttribute("data-product-id")},n=async()=>{let t=await o.waitForElementToExist(`[data-uid="${r}"]`,500),e=t?.closest("[data-article-id]");return!!e?.getAttribute("data-article-id")},l=async()=>{let t=await o.waitForElementToExist(`[data-uid="${r}"]`,500),e=t?.closest("[data-carousel-item-key]");return!!e?.getAttribute("data-carousel-item-key")},d="",u="",s="";await a()&&(d=c.current?.productId||""),await n()&&(u=c.current?.articleId||""),await l()&&(s=c.current?.carouselItemKey||"");let b=new CustomEvent("editor:toolbar:force-active-component",{bubbles:!0,detail:{componentUid:r,productId:d,articleId:u,carouselItemKey:s,elementTag:t.getAttribute("data-component-tag")||""}});i(t),window.dispatchEvent(b),setTimeout(()=>{e=!1},0)};t.forEach(t=>{t.addEventListener("mouseover",()=>a(t)),t.addEventListener("mouseout",()=>i(t)),t.addEventListener("click",()=>n(t))})}}},x=d.useCallback(t=>{if(s.current||v.current)return;let e=t.target;if(!e||"function"!=typeof e.closest){$(),q();return}let{$toolbarHover:o,$component:a,$themeSection:i,$shopifySection:n,$bundleDiscountLocked:d}=l.findDOMClosest(e,{$toolbarHover:"[data-toolbar-hover]",$component:"[data-toolbar-wrap]",$themeSection:"[data-theme-section]",$shopifySection:"[data-shopify-section]",$bundleDiscountLocked:"[data-bundle-discount-locked]"});if(o)return;let u=a?.getAttribute("data-uid");if(!a||!u||"ROOT"==u||d&&a!==d){q();return}let b=r.getChildrenByAttrSelector(a,"data-toolbar");if(!u||"ROOT"==u||b?.getAttribute("data-toolbar-hover-focus"))return;b?.getAttribute("data-toolbar-hover-focus")||q(),I(e);let f=i||n;if(u==c.current?.componentUid){if(c.current.productId){let t=a.closest("[data-product-id]");if(t){let e=t.getAttribute("data-product-id");if(e==c.current.productId){q();return}}}if(!f)return;E({$component:f,focus:!0,isPreventSection:!0})}f?E({$component:f,focus:!0,isPreventSection:!0}):(E({$component:a,componentUid:u,focus:!0}),C({$component:a,componentUid:u}))},[I,q,E,C,$,c]),U=d.useCallback(t=>{if(s.current)return;let e=t.detail;e?.componentUid?R({componentUid:e.componentUid,productId:e.productId,articleId:e.articleId,marqueeKey:e.marqueeKey,carouselItemKey:e.carouselItemKey}):B()},[R,B,s]),j=d.useCallback(()=>{q()},[q]),F=d.useCallback(t=>{let e=t.detail;e.value&&(q(),B()),s.current=e.value},[q,B]),K=d.useCallback(t=>{let e=t.detail;e.value?L(!0):L(!1)},[]),P=d.useCallback(t=>{if(s.current)return;let e=t.detail;T({value:e?.value||!1})},[]),H=d.useCallback(t=>{let e=t.detail;e?.value?(q(),v.current=!0):v.current=!1},[q]),M=(t,e)=>{if(!t)return;let o=document.body.querySelector("#storefront")?.querySelectorAll(`[data-uid="${t}"]`);o?.length&&o.forEach(t=>{let o=r.getChildrenByAttrSelector(t,"data-outline");o&&("in"===e?(o.setAttribute("data-outline-force-hover","true"),o.setAttribute("data-outline-force-overlay","true")):(o.removeAttribute("data-outline-force-hover"),o.removeAttribute("data-outline-force-overlay")))})},_=d.useCallback(t=>{if(s.current)return;let e=t.detail;e?.componentUid&&M(e?.componentUid,e?.type)},[s]),D=t=>{let e=t.detail;c.current?.componentUid&&e?.componentUid==c.current?.componentUid&&(R({...c.current}),requestAnimationFrame(()=>p()))},z=d.useCallback(t=>{let e=t.detail;document.body.toggleAttribute("data-editor-mobile",!!e?.isEditorMobile)},[]);return d.useEffect(()=>(document.addEventListener("mousemove",x),window.addEventListener("editor:active-component",U),window.addEventListener("editor:focus-outside-preview",j),window.addEventListener("editor:is-dragging",F),window.addEventListener("editor:is-editing-text-editor",K),window.addEventListener("editor:toolbar:show-parents",P),window.addEventListener("editor:toolbar:resize-spacing",H),window.addEventListener("editor:hover-component",_),window.addEventListener("editor:component:render",D),window.addEventListener("editor:editor-mobile-change",z),()=>{document.removeEventListener("mousemove",x),window.removeEventListener("editor:active-component",U),window.removeEventListener("editor:is-dragging",j),window.removeEventListener("editor:is-dragging",F),window.removeEventListener("editor:is-editing-text-editor",K),window.removeEventListener("editor:toolbar:show-parents",P),window.removeEventListener("editor:toolbar:resize-spacing",H),window.removeEventListener("editor:hover-component",_),window.removeEventListener("editor:component:render",D),window.removeEventListener("editor:editor-mobile-change",z),document.body.removeAttribute("data-editor-mobile")}),[x,U,j,F,K,P,H,_,D,z]),t.jsx(t.Fragment,{})});exports.default=c;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import{jsx as t,Fragment as e}from"react/jsx-runtime";import{syncOverlayRect as r,getOverlayContainingBlock as o,clearOverlayRect as a}from"./toolbar/utils/syncOverlayRect.js";import{getChildrenByAttrSelector as i}from"./toolbar/utils/getChildrenByAttrSelector.js";import{waitForElementToExist as n}from"./toolbar/utils/waitForElementToExist.js";import{TOOLBAR_ACTIVE_HEIGHT as d,TOOLBAR_HOVER_HEIGHT as u}from"./toolbar/const.js";import{getDOMElementParents as l}from"./toolbar/utils/getDOMElementParents.js";import{findOverflowParent as c}from"./toolbar/utils/findOverflowParent.js";import{findDOMClosest as s}from"./toolbar/utils/findDOMClosest.js";import{memo as b,useRef as m,useCallback as f,useEffect as v}from"react";import{isOverParent as p}from"./toolbar/utils/isOverParent.js";var h=b(()=>{let b=m(null),h=m(!1),g=m(),A=m(!1),y=m([]),w=m([]),$=m([]),E=m(),S=f(()=>{$.current.forEach(t=>r({$component:t}))},[]),q=f(t=>{E.current||(E.current=new ResizeObserver(()=>S())),E.current.observe(t);let e=o(t);e&&E.current.observe(e)},[S]),L=f(()=>{E.current?.disconnect()},[]),I=({state:t,$toolbar:e,$component:r})=>{let o=c(r,e),a=e.getBoundingClientRect(),i=r.getBoundingClientRect(),n=window.innerWidth;o?i?.height<=60?e.setAttribute(`data-toolbar-${t}-revert`,"true"):e.setAttribute(`data-toolbar-${t}-inside`,"true"):a.top<d+1&&(i?.height<=60?e.setAttribute(`data-toolbar-${t}-revert`,"true"):e.setAttribute(`data-toolbar-${t}-inside`,"true")),i.left+a.width>n&&e.setAttribute(`data-toolbar-${t}-overflow`,"true");let u=r?.closest('[aria-label="Dialog body"]');if(u){let r=u.getBoundingClientRect(),o=r.left+r.width-20;i.left+a.width>o&&e.setAttribute(`data-toolbar-${t}-overflow`,"true")}},U=f(({$component:t,componentUid:e,focus:o,isPreventSection:a,isParent:n})=>{if(!t&&!e)return;if(!t){let r=document.body.querySelector("#storefront")?.querySelector(`[data-uid="${e}"]`);if(!r)return;t=r}if(!e){let r=t.getAttribute("data-uid");if(!r)return;e=r}y.current.push(t),r({$component:t});let d=i(t,"data-toolbar"),u=i(t,"data-outline"),l=i(t,"data-toolbar-add-top"),c=i(t,"data-toolbar-add-bottom"),s=i(t,"data-theme-section-status");a&&s&&s.setAttribute("data-theme-section-status-active","true"),d&&(d.removeAttribute("style"),n||d.setAttribute("data-toolbar-hover","true"),o&&d.setAttribute("data-toolbar-hover-focus","true"),I({$toolbar:d,$component:t,state:"hover"})),u&&(u.setAttribute("data-outline-hover","true"),n&&u.setAttribute("data-outline-parent-hover","true"),a&&(w.current.push(t),u.setAttribute("data-outline-overlay-theme-section","true")),o&&u.setAttribute("data-outline-hover-focus","true")),l&&!n&&l.setAttribute("data-toolbar-add-hover","true"),c&&!n&&c.setAttribute("data-toolbar-add-hover","true")},[]),j=f(({$component:t,componentUid:e})=>{if(!t){let r=document.body.querySelector("#storefront")?.querySelector(`[data-uid="${e}"]`);if(!r)return;t=r}let r=l(t,'[data-uid][data-component-type="component"]:not([data-component-no-setting])',1);if(r.length){for(let t of r)t&&U({$component:t,isParent:!0});C({$component:t,$parents:r})}},[U]),C=({$component:t,$parents:e})=>{if(!t||!e?.length)return;let r=i(t,"data-toolbar-hover-focus");if(r){let t=r.getBoundingClientRect(),o=!!r.getAttribute("data-toolbar-hover-revert"),a=!!r.getAttribute("data-toolbar-hover-inside"),n=1;for(let r of e)if(r){let e=r.getAttribute("data-component-tag");if("Section"===e)continue;let d=i(r,"data-toolbar-hover");if(d){let e=d.getAttribute("data-toolbar-active");if(e)continue;let r=d.getBoundingClientRect(),i=o||a;if(p({current:t,parent:r,index:n,revert:i})){let e=getComputedStyle(d),o=t.top-r.top,a=t.left-r.left,l=parseFloat(e.top)+o-(u-1)*n;i&&(l=parseFloat(e.top)-o+(u-1)*n);let c=parseFloat(e.left)+a;d.setAttribute("style",`top: ${l}px;left: ${c}px;`),n++}}}}},O=f(()=>{let t=["data-outline-overlay-theme-section","data-theme-section-status-active"],e=w.current;if(e.length)for(let r of e){let e=r.querySelectorAll(t.map(t=>`[${t}]`).join(","));e&&t.forEach(t=>{e.forEach(e=>e.removeAttribute(t))})}w.current=[]},[]),K=f(()=>{let t=["data-toolbar-hover-focus","data-toolbar-hover","data-outline-hover-focus","data-toolbar-hover-revert","data-toolbar-hover-inside","data-outline-hover","data-toolbar-add-hover","data-outline-parent-hover","data-toolbar-hover-overflow"],e=y.current;if(e.length)for(let r of e){$.current.includes(r)||a({$component:r});let e=r.querySelectorAll(t.map(t=>`[${t}]`).join(","));e&&t.forEach(t=>{e.forEach(e=>e.removeAttribute(t))})}O(),y.current=[]},[O]),R=f(()=>{b.current=null,L();let t=["data-toolbar-active","data-outline-active","data-toolbar-add-active","data-toolbar-active-revert","data-toolbar-active-inside","data-spacing-margin-bottom-active","data-toolbar-force-hover","data-outline-force-hover","data-toolbar-active-overflow"],e=$.current;if(e.length)for(let r of e){y.current.includes(r)||a({$component:r});let e=r.querySelectorAll(t.map(t=>`[${t}]`).join(","));e&&t.forEach(t=>{e.forEach(e=>e.removeAttribute(t))})}$.current=[],T(!1),g.current&&g.current()},[L]),x=f(({$component:t})=>{if(!t)return;let e=getComputedStyle(t),r=i(t,"data-spacing"),o=r?.querySelector("[data-spacing-margin-bottom]")||null;if(o){let t=o.querySelector("[data-spacing-margin-bottom-bg]")||null,r=o.querySelector("[data-spacing-margin-bottom-drag]")||null;if(t&&r){let a=e.marginBottom;t.style.height=a,r.style.top=a,o.setAttribute("data-spacing-margin-bottom-active","true")}}},[]),B=({componentUid:t,productId:e,articleId:r,marqueeKey:o,carouselItemKey:a})=>r?`${r?`[data-article-id="${r}"][data-uid="${t}"], [data-article-id="${r}"] [data-uid="${t}"]`:`[data-uid="${t}"]`}`:o?`[marquee-item-key="${o}"] [data-uid="${t}"]`:a?`[data-carousel-item-key="${a}"] [data-uid="${t}"]`:`${e?`[data-product-id="${e}"][data-uid="${t}"], [data-product-id="${e}"] [data-uid="${t}"]`:`[data-uid="${t}"]`}`,P=f(async({componentUid:t,productId:e,timeAwait:o=600,articleId:a,forceReActive:d,marqueeKey:u,carouselItemKey:l})=>{if(!t)return;let c=B({componentUid:t,productId:e,articleId:a,marqueeKey:u,carouselItemKey:l}),m=await n(c,o);if(!m||!d&&t==b.current?.componentUid&&e==b.current?.productId&&a==b.current?.articleId&&u==b.current?.marqueeKey&&l==b.current?.carouselItemKey)return;(t!==b.current?.componentUid||e!==b.current?.productId||a!==b.current?.articleId||l!==b.current?.carouselItemKey||d)&&R(),(d||t===b.current?.componentUid)&&e===b.current?.productId&&u===b.current?.marqueeKey&&l===b.current?.carouselItemKey||R(),$.current.push(m),r({$component:m}),q(m);let f=i(m,"data-toolbar"),v=i(m,"data-outline"),p=i(m,"data-toolbar-add-top"),h=i(m,"data-toolbar-add-bottom");f&&(b.current={componentUid:t,productId:e,articleId:a,marqueeKey:u,carouselItemKey:l},f.removeAttribute("style"),f.setAttribute("data-toolbar-active","true"),I({$toolbar:f,$component:m,state:"active"})),v&&v.setAttribute("data-outline-active","true"),p&&p.setAttribute("data-toolbar-add-active","true"),h&&h.setAttribute("data-toolbar-add-active","true");let{$isChildOfMarquee:g,$section:A}=s(m,{$isChildOfMarquee:'[data-component-tag="Marquee"]',$section:'[data-component-tag="Section"]'});if(A&&(e||a||g)){let e=A.querySelectorAll(`[data-uid="${t}"]`);e?.length&&e.forEach(t=>{$.current.push(t),r({$component:t}),q(t);let e=i(t,"data-outline");e&&e.setAttribute("data-outline-active","true")})}x({$component:m}),K()},[q,R,K,x]),T=async t=>{if(t){if(b.current?.componentUid){let e=B({...b.current}),r=await n(e,500);if(r){let e=i(r,"data-toolbar"),o=i(r,"data-outline"),a=i(r,"data-spacing");e&&t&&e.setAttribute("data-toolbar-editor-inline-focus","true"),o&&t&&o.setAttribute("data-outline-editor-inline-focus","true"),a&&t&&a.setAttribute("data-spacing-hidden","true")}}}else{let t=document.body.querySelector("#storefront")?.querySelectorAll("[data-outline-editor-inline-focus],[data-toolbar-editor-inline-focus],[data-spacing-hidden]");t?.length&&t.forEach(t=>{t&&(t.removeAttribute("data-toolbar-editor-inline-focus"),t.removeAttribute("data-outline-editor-inline-focus"),t.removeAttribute("data-spacing-hidden"))})}},k=f(t=>{let e=t.closest("[data-theme-section]"),r=e?.getAttribute("data-uid"),o=e&&r===b.current?.componentUid;if(!o)return;w.current.push(e);let a=i(e,"data-theme-section-status");a&&a.setAttribute("data-theme-section-status-active","true")},[]),F=async({value:t})=>{if(!t||!b.current)return;let e=!1,r=B({...b.current}),o=await n(r,500);if(o){let t=o?.querySelectorAll("[data-toolbar-parent]");if(t.length){let r=t=>{if(e)return;let r=t.getAttribute("data-parent-uid");if(!r)return;let o=document.body.querySelector("#storefront")?.querySelectorAll(`[data-uid="${r}"]`);o?.length&&o.forEach(t=>{let e=i(t,"data-outline");e&&(e.setAttribute("data-outline-force-hover","true"),e.setAttribute("data-outline-force-overlay","true"))})},o=t=>{let e=t.getAttribute("data-parent-uid");if(!e)return;let r=document.body.querySelector("#storefront")?.querySelectorAll(`[data-uid="${e}"]`);r?.length&&r.forEach(t=>{let e=i(t,"data-outline");e&&(e.removeAttribute("data-outline-force-hover"),e.removeAttribute("data-outline-force-overlay"))})},a=async t=>{e=!0;let r=t.getAttribute("data-parent-uid");if(!r)return;let a=async()=>{let t=await n(`[data-uid="${r}"]`,500),e=t?.closest("[data-product-id]");return!!e?.getAttribute("data-product-id")},i=async()=>{let t=await n(`[data-uid="${r}"]`,500),e=t?.closest("[data-article-id]");return!!e?.getAttribute("data-article-id")},d=async()=>{let t=await n(`[data-uid="${r}"]`,500),e=t?.closest("[data-carousel-item-key]");return!!e?.getAttribute("data-carousel-item-key")},u="",l="",c="";await a()&&(u=b.current?.productId||""),await i()&&(l=b.current?.articleId||""),await d()&&(c=b.current?.carouselItemKey||"");let s=new CustomEvent("editor:toolbar:force-active-component",{bubbles:!0,detail:{componentUid:r,productId:u,articleId:l,carouselItemKey:c,elementTag:t.getAttribute("data-component-tag")||""}});o(t),window.dispatchEvent(s),setTimeout(()=>{e=!1},0)};t.forEach(t=>{t.addEventListener("mouseover",()=>r(t)),t.addEventListener("mouseout",()=>o(t)),t.addEventListener("click",()=>a(t))})}}},M=f(t=>{if(h.current||A.current)return;let e=t.target;if(!e||"function"!=typeof e.closest){O(),K();return}let{$toolbarHover:r,$component:o,$themeSection:a,$shopifySection:n}=s(e,{$toolbarHover:"[data-toolbar-hover]",$component:"[data-toolbar-wrap]",$themeSection:"[data-theme-section]",$shopifySection:"[data-shopify-section]"});if(r)return;let d=o?.getAttribute("data-uid");if(!o||!d||"ROOT"==d){K();return}let u=i(o,"data-toolbar");if(!d||"ROOT"==d||u?.getAttribute("data-toolbar-hover-focus"))return;u?.getAttribute("data-toolbar-hover-focus")||K(),k(e);let l=a||n;if(d==b.current?.componentUid){if(b.current.productId){let t=o.closest("[data-product-id]");if(t){let e=t.getAttribute("data-product-id");if(e==b.current.productId){K();return}}}if(!l)return;U({$component:l,focus:!0,isPreventSection:!0})}l?U({$component:l,focus:!0,isPreventSection:!0}):(U({$component:o,componentUid:d,focus:!0}),j({$component:o,componentUid:d}))},[k,K,U,j,O,b]),z=f(t=>{if(h.current)return;let e=t.detail;e?.componentUid?P({componentUid:e.componentUid,productId:e.productId,articleId:e.articleId,marqueeKey:e.marqueeKey,carouselItemKey:e.carouselItemKey}):R()},[P,R,h]),D=f(()=>{K()},[K]),H=f(t=>{let e=t.detail;e.value&&(K(),R()),h.current=e.value},[K,R]),W=f(t=>{let e=t.detail;e.value?T(!0):T(!1)},[]),G=f(t=>{if(h.current)return;let e=t.detail;F({value:e?.value||!1})},[]),J=f(t=>{let e=t.detail;e?.value?(K(),A.current=!0):A.current=!1},[K]),N=(t,e)=>{if(!t)return;let r=document.body.querySelector("#storefront")?.querySelectorAll(`[data-uid="${t}"]`);r?.length&&r.forEach(t=>{let r=i(t,"data-outline");r&&("in"===e?(r.setAttribute("data-outline-force-hover","true"),r.setAttribute("data-outline-force-overlay","true")):(r.removeAttribute("data-outline-force-hover"),r.removeAttribute("data-outline-force-overlay")))})},Q=f(t=>{if(h.current)return;let e=t.detail;e?.componentUid&&N(e?.componentUid,e?.type)},[h]),V=t=>{let e=t.detail;b.current?.componentUid&&e?.componentUid==b.current?.componentUid&&(P({...b.current}),requestAnimationFrame(()=>S()))},X=f(t=>{let e=t.detail;document.body.toggleAttribute("data-editor-mobile",!!e?.isEditorMobile)},[]);return v(()=>(document.addEventListener("mousemove",M),window.addEventListener("editor:active-component",z),window.addEventListener("editor:focus-outside-preview",D),window.addEventListener("editor:is-dragging",H),window.addEventListener("editor:is-editing-text-editor",W),window.addEventListener("editor:toolbar:show-parents",G),window.addEventListener("editor:toolbar:resize-spacing",J),window.addEventListener("editor:hover-component",Q),window.addEventListener("editor:component:render",V),window.addEventListener("editor:editor-mobile-change",X),()=>{document.removeEventListener("mousemove",M),window.removeEventListener("editor:active-component",z),window.removeEventListener("editor:is-dragging",D),window.removeEventListener("editor:is-dragging",H),window.removeEventListener("editor:is-editing-text-editor",W),window.removeEventListener("editor:toolbar:show-parents",G),window.removeEventListener("editor:toolbar:resize-spacing",J),window.removeEventListener("editor:hover-component",Q),window.removeEventListener("editor:component:render",V),window.removeEventListener("editor:editor-mobile-change",X),document.body.removeAttribute("data-editor-mobile")}),[M,z,D,H,W,G,J,Q,V,X]),t(e,{})});export{h as default};
|
|
2
|
+
import{jsx as t,Fragment as e}from"react/jsx-runtime";import{syncOverlayRect as r,getOverlayContainingBlock as o,clearOverlayRect as a}from"./toolbar/utils/syncOverlayRect.js";import{getChildrenByAttrSelector as i}from"./toolbar/utils/getChildrenByAttrSelector.js";import{waitForElementToExist as n}from"./toolbar/utils/waitForElementToExist.js";import{TOOLBAR_ACTIVE_HEIGHT as d,TOOLBAR_HOVER_HEIGHT as u}from"./toolbar/const.js";import{getDOMElementParents as l}from"./toolbar/utils/getDOMElementParents.js";import{findOverflowParent as c}from"./toolbar/utils/findOverflowParent.js";import{findDOMClosest as s}from"./toolbar/utils/findDOMClosest.js";import{memo as b,useRef as m,useCallback as f,useEffect as v}from"react";import{isOverParent as p}from"./toolbar/utils/isOverParent.js";var h=b(()=>{let b=m(null),h=m(!1),g=m(),A=m(!1),y=m([]),w=m([]),$=m([]),E=m(),S=f(()=>{$.current.forEach(t=>r({$component:t}))},[]),q=f(t=>{E.current||(E.current=new ResizeObserver(()=>S())),E.current.observe(t);let e=o(t);e&&E.current.observe(e)},[S]),L=f(()=>{E.current?.disconnect()},[]),I=({state:t,$toolbar:e,$component:r})=>{let o=c(r,e),a=e.getBoundingClientRect(),i=r.getBoundingClientRect(),n=window.innerWidth;o?i?.height<=60?e.setAttribute(`data-toolbar-${t}-revert`,"true"):e.setAttribute(`data-toolbar-${t}-inside`,"true"):a.top<d+1&&(i?.height<=60?e.setAttribute(`data-toolbar-${t}-revert`,"true"):e.setAttribute(`data-toolbar-${t}-inside`,"true")),i.left+a.width>n&&e.setAttribute(`data-toolbar-${t}-overflow`,"true");let u=r?.closest('[aria-label="Dialog body"]');if(u){let r=u.getBoundingClientRect(),o=r.left+r.width-20;i.left+a.width>o&&e.setAttribute(`data-toolbar-${t}-overflow`,"true")}},U=f(({$component:t,componentUid:e,focus:o,isPreventSection:a,isParent:n})=>{if(!t&&!e)return;if(!t){let r=document.body.querySelector("#storefront")?.querySelector(`[data-uid="${e}"]`);if(!r)return;t=r}if(!e){let r=t.getAttribute("data-uid");if(!r)return;e=r}y.current.push(t),r({$component:t});let d=i(t,"data-toolbar"),u=i(t,"data-outline"),l=i(t,"data-toolbar-add-top"),c=i(t,"data-toolbar-add-bottom"),s=i(t,"data-theme-section-status");a&&s&&s.setAttribute("data-theme-section-status-active","true"),d&&(d.removeAttribute("style"),n||d.setAttribute("data-toolbar-hover","true"),o&&d.setAttribute("data-toolbar-hover-focus","true"),I({$toolbar:d,$component:t,state:"hover"})),u&&(u.setAttribute("data-outline-hover","true"),n&&u.setAttribute("data-outline-parent-hover","true"),a&&(w.current.push(t),u.setAttribute("data-outline-overlay-theme-section","true")),o&&u.setAttribute("data-outline-hover-focus","true")),l&&!n&&l.setAttribute("data-toolbar-add-hover","true"),c&&!n&&c.setAttribute("data-toolbar-add-hover","true")},[]),j=f(({$component:t,componentUid:e})=>{if(!t){let r=document.body.querySelector("#storefront")?.querySelector(`[data-uid="${e}"]`);if(!r)return;t=r}let r=l(t,'[data-uid][data-component-type="component"]:not([data-component-no-setting])',1);if(r.length){for(let t of r)t&&U({$component:t,isParent:!0});C({$component:t,$parents:r})}},[U]),C=({$component:t,$parents:e})=>{if(!t||!e?.length)return;let r=i(t,"data-toolbar-hover-focus");if(r){let t=r.getBoundingClientRect(),o=!!r.getAttribute("data-toolbar-hover-revert"),a=!!r.getAttribute("data-toolbar-hover-inside"),n=1;for(let r of e)if(r){let e=r.getAttribute("data-component-tag");if("Section"===e)continue;let d=i(r,"data-toolbar-hover");if(d){let e=d.getAttribute("data-toolbar-active");if(e)continue;let r=d.getBoundingClientRect(),i=o||a;if(p({current:t,parent:r,index:n,revert:i})){let e=getComputedStyle(d),o=t.top-r.top,a=t.left-r.left,l=parseFloat(e.top)+o-(u-1)*n;i&&(l=parseFloat(e.top)-o+(u-1)*n);let c=parseFloat(e.left)+a;d.setAttribute("style",`top: ${l}px;left: ${c}px;`),n++}}}}},O=f(()=>{let t=["data-outline-overlay-theme-section","data-theme-section-status-active"],e=w.current;if(e.length)for(let r of e){let e=r.querySelectorAll(t.map(t=>`[${t}]`).join(","));e&&t.forEach(t=>{e.forEach(e=>e.removeAttribute(t))})}w.current=[]},[]),K=f(()=>{let t=["data-toolbar-hover-focus","data-toolbar-hover","data-outline-hover-focus","data-toolbar-hover-revert","data-toolbar-hover-inside","data-outline-hover","data-toolbar-add-hover","data-outline-parent-hover","data-toolbar-hover-overflow"],e=y.current;if(e.length)for(let r of e){$.current.includes(r)||a({$component:r});let e=r.querySelectorAll(t.map(t=>`[${t}]`).join(","));e&&t.forEach(t=>{e.forEach(e=>e.removeAttribute(t))})}O(),y.current=[]},[O]),R=f(()=>{b.current=null,L();let t=["data-toolbar-active","data-outline-active","data-toolbar-add-active","data-toolbar-active-revert","data-toolbar-active-inside","data-spacing-margin-bottom-active","data-toolbar-force-hover","data-outline-force-hover","data-toolbar-active-overflow"],e=$.current;if(e.length)for(let r of e){y.current.includes(r)||a({$component:r});let e=r.querySelectorAll(t.map(t=>`[${t}]`).join(","));e&&t.forEach(t=>{e.forEach(e=>e.removeAttribute(t))})}$.current=[],P(!1),g.current&&g.current()},[L]),k=f(({$component:t})=>{if(!t)return;let e=getComputedStyle(t),r=i(t,"data-spacing"),o=r?.querySelector("[data-spacing-margin-bottom]")||null;if(o){let t=o.querySelector("[data-spacing-margin-bottom-bg]")||null,r=o.querySelector("[data-spacing-margin-bottom-drag]")||null;if(t&&r){let a=e.marginBottom;t.style.height=a,r.style.top=a,o.setAttribute("data-spacing-margin-bottom-active","true")}}},[]),x=({componentUid:t,productId:e,articleId:r,marqueeKey:o,carouselItemKey:a})=>r?`${r?`[data-article-id="${r}"][data-uid="${t}"], [data-article-id="${r}"] [data-uid="${t}"]`:`[data-uid="${t}"]`}`:o?`[marquee-item-key="${o}"] [data-uid="${t}"]`:a?`[data-carousel-item-key="${a}"] [data-uid="${t}"]`:`${e?`[data-product-id="${e}"][data-uid="${t}"], [data-product-id="${e}"] [data-uid="${t}"]`:`[data-uid="${t}"]`}`,B=f(async({componentUid:t,productId:e,timeAwait:o=600,articleId:a,forceReActive:d,marqueeKey:u,carouselItemKey:l})=>{if(!t)return;let c=x({componentUid:t,productId:e,articleId:a,marqueeKey:u,carouselItemKey:l}),m=await n(c,o);if(!m||!d&&t==b.current?.componentUid&&e==b.current?.productId&&a==b.current?.articleId&&u==b.current?.marqueeKey&&l==b.current?.carouselItemKey)return;(t!==b.current?.componentUid||e!==b.current?.productId||a!==b.current?.articleId||l!==b.current?.carouselItemKey||d)&&R(),(d||t===b.current?.componentUid)&&e===b.current?.productId&&u===b.current?.marqueeKey&&l===b.current?.carouselItemKey||R(),$.current.push(m),r({$component:m}),q(m);let f=i(m,"data-toolbar"),v=i(m,"data-outline"),p=i(m,"data-toolbar-add-top"),h=i(m,"data-toolbar-add-bottom");f&&(b.current={componentUid:t,productId:e,articleId:a,marqueeKey:u,carouselItemKey:l},f.removeAttribute("style"),f.setAttribute("data-toolbar-active","true"),I({$toolbar:f,$component:m,state:"active"})),v&&v.setAttribute("data-outline-active","true"),p&&p.setAttribute("data-toolbar-add-active","true"),h&&h.setAttribute("data-toolbar-add-active","true");let{$isChildOfMarquee:g,$section:A}=s(m,{$isChildOfMarquee:'[data-component-tag="Marquee"]',$section:'[data-component-tag="Section"]'});if(A&&(e||a||g)){let e=A.querySelectorAll(`[data-uid="${t}"]`);e?.length&&e.forEach(t=>{$.current.push(t),r({$component:t}),q(t);let e=i(t,"data-outline");e&&e.setAttribute("data-outline-active","true")})}k({$component:m}),K()},[q,R,K,k]),P=async t=>{if(t){if(b.current?.componentUid){let e=x({...b.current}),r=await n(e,500);if(r){let e=i(r,"data-toolbar"),o=i(r,"data-outline"),a=i(r,"data-spacing");e&&t&&e.setAttribute("data-toolbar-editor-inline-focus","true"),o&&t&&o.setAttribute("data-outline-editor-inline-focus","true"),a&&t&&a.setAttribute("data-spacing-hidden","true")}}}else{let t=document.body.querySelector("#storefront")?.querySelectorAll("[data-outline-editor-inline-focus],[data-toolbar-editor-inline-focus],[data-spacing-hidden]");t?.length&&t.forEach(t=>{t&&(t.removeAttribute("data-toolbar-editor-inline-focus"),t.removeAttribute("data-outline-editor-inline-focus"),t.removeAttribute("data-spacing-hidden"))})}},T=f(t=>{let e=t.closest("[data-theme-section]"),r=e?.getAttribute("data-uid"),o=e&&r===b.current?.componentUid;if(!o)return;w.current.push(e);let a=i(e,"data-theme-section-status");a&&a.setAttribute("data-theme-section-status-active","true")},[]),F=async({value:t})=>{if(!t||!b.current)return;let e=!1,r=x({...b.current}),o=await n(r,500);if(o){let t=o?.querySelectorAll("[data-toolbar-parent]");if(t.length){let r=t=>{if(e)return;let r=t.getAttribute("data-parent-uid");if(!r)return;let o=document.body.querySelector("#storefront")?.querySelectorAll(`[data-uid="${r}"]`);o?.length&&o.forEach(t=>{let e=i(t,"data-outline");e&&(e.setAttribute("data-outline-force-hover","true"),e.setAttribute("data-outline-force-overlay","true"))})},o=t=>{let e=t.getAttribute("data-parent-uid");if(!e)return;let r=document.body.querySelector("#storefront")?.querySelectorAll(`[data-uid="${e}"]`);r?.length&&r.forEach(t=>{let e=i(t,"data-outline");e&&(e.removeAttribute("data-outline-force-hover"),e.removeAttribute("data-outline-force-overlay"))})},a=async t=>{e=!0;let r=t.getAttribute("data-parent-uid");if(!r)return;let a=async()=>{let t=await n(`[data-uid="${r}"]`,500),e=t?.closest("[data-product-id]");return!!e?.getAttribute("data-product-id")},i=async()=>{let t=await n(`[data-uid="${r}"]`,500),e=t?.closest("[data-article-id]");return!!e?.getAttribute("data-article-id")},d=async()=>{let t=await n(`[data-uid="${r}"]`,500),e=t?.closest("[data-carousel-item-key]");return!!e?.getAttribute("data-carousel-item-key")},u="",l="",c="";await a()&&(u=b.current?.productId||""),await i()&&(l=b.current?.articleId||""),await d()&&(c=b.current?.carouselItemKey||"");let s=new CustomEvent("editor:toolbar:force-active-component",{bubbles:!0,detail:{componentUid:r,productId:u,articleId:l,carouselItemKey:c,elementTag:t.getAttribute("data-component-tag")||""}});o(t),window.dispatchEvent(s),setTimeout(()=>{e=!1},0)};t.forEach(t=>{t.addEventListener("mouseover",()=>r(t)),t.addEventListener("mouseout",()=>o(t)),t.addEventListener("click",()=>a(t))})}}},M=f(t=>{if(h.current||A.current)return;let e=t.target;if(!e||"function"!=typeof e.closest){O(),K();return}let{$toolbarHover:r,$component:o,$themeSection:a,$shopifySection:n,$bundleDiscountLocked:d}=s(e,{$toolbarHover:"[data-toolbar-hover]",$component:"[data-toolbar-wrap]",$themeSection:"[data-theme-section]",$shopifySection:"[data-shopify-section]",$bundleDiscountLocked:"[data-bundle-discount-locked]"});if(r)return;let u=o?.getAttribute("data-uid");if(!o||!u||"ROOT"==u||d&&o!==d){K();return}let l=i(o,"data-toolbar");if(!u||"ROOT"==u||l?.getAttribute("data-toolbar-hover-focus"))return;l?.getAttribute("data-toolbar-hover-focus")||K(),T(e);let c=a||n;if(u==b.current?.componentUid){if(b.current.productId){let t=o.closest("[data-product-id]");if(t){let e=t.getAttribute("data-product-id");if(e==b.current.productId){K();return}}}if(!c)return;U({$component:c,focus:!0,isPreventSection:!0})}c?U({$component:c,focus:!0,isPreventSection:!0}):(U({$component:o,componentUid:u,focus:!0}),j({$component:o,componentUid:u}))},[T,K,U,j,O,b]),D=f(t=>{if(h.current)return;let e=t.detail;e?.componentUid?B({componentUid:e.componentUid,productId:e.productId,articleId:e.articleId,marqueeKey:e.marqueeKey,carouselItemKey:e.carouselItemKey}):R()},[B,R,h]),z=f(()=>{K()},[K]),H=f(t=>{let e=t.detail;e.value&&(K(),R()),h.current=e.value},[K,R]),W=f(t=>{let e=t.detail;e.value?P(!0):P(!1)},[]),G=f(t=>{if(h.current)return;let e=t.detail;F({value:e?.value||!1})},[]),J=f(t=>{let e=t.detail;e?.value?(K(),A.current=!0):A.current=!1},[K]),N=(t,e)=>{if(!t)return;let r=document.body.querySelector("#storefront")?.querySelectorAll(`[data-uid="${t}"]`);r?.length&&r.forEach(t=>{let r=i(t,"data-outline");r&&("in"===e?(r.setAttribute("data-outline-force-hover","true"),r.setAttribute("data-outline-force-overlay","true")):(r.removeAttribute("data-outline-force-hover"),r.removeAttribute("data-outline-force-overlay")))})},Q=f(t=>{if(h.current)return;let e=t.detail;e?.componentUid&&N(e?.componentUid,e?.type)},[h]),V=t=>{let e=t.detail;b.current?.componentUid&&e?.componentUid==b.current?.componentUid&&(B({...b.current}),requestAnimationFrame(()=>S()))},X=f(t=>{let e=t.detail;document.body.toggleAttribute("data-editor-mobile",!!e?.isEditorMobile)},[]);return v(()=>(document.addEventListener("mousemove",M),window.addEventListener("editor:active-component",D),window.addEventListener("editor:focus-outside-preview",z),window.addEventListener("editor:is-dragging",H),window.addEventListener("editor:is-editing-text-editor",W),window.addEventListener("editor:toolbar:show-parents",G),window.addEventListener("editor:toolbar:resize-spacing",J),window.addEventListener("editor:hover-component",Q),window.addEventListener("editor:component:render",V),window.addEventListener("editor:editor-mobile-change",X),()=>{document.removeEventListener("mousemove",M),window.removeEventListener("editor:active-component",D),window.removeEventListener("editor:is-dragging",z),window.removeEventListener("editor:is-dragging",H),window.removeEventListener("editor:is-editing-text-editor",W),window.removeEventListener("editor:toolbar:show-parents",G),window.removeEventListener("editor:toolbar:resize-spacing",J),window.removeEventListener("editor:hover-component",Q),window.removeEventListener("editor:component:render",V),window.removeEventListener("editor:editor-mobile-change",X),document.body.removeAttribute("data-editor-mobile")}),[M,D,z,H,W,G,J,Q,V,X]),t(e,{})});export{h as default};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gem-sdk/pages",
|
|
3
|
-
"version": "23.0.0-dev.
|
|
3
|
+
"version": "23.0.0-dev.19",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"main": "dist/cjs/index.js",
|
|
@@ -27,10 +27,10 @@
|
|
|
27
27
|
"next-seo": "6.8.0"
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
30
|
-
"@gem-sdk/core": "23.0.0-dev.
|
|
31
|
-
"@gem-sdk/plugin-cookie-bar": "23.0.0-dev.
|
|
32
|
-
"@gem-sdk/plugin-quick-view": "23.0.0-dev.
|
|
33
|
-
"@gem-sdk/plugin-sticky-add-to-cart": "23.0.0-dev.
|
|
30
|
+
"@gem-sdk/core": "23.0.0-dev.19",
|
|
31
|
+
"@gem-sdk/plugin-cookie-bar": "23.0.0-dev.18",
|
|
32
|
+
"@gem-sdk/plugin-quick-view": "23.0.0-dev.18",
|
|
33
|
+
"@gem-sdk/plugin-sticky-add-to-cart": "23.0.0-dev.18"
|
|
34
34
|
},
|
|
35
35
|
"module": "dist/esm/index.js",
|
|
36
36
|
"types": "dist/types/index.d.ts",
|