@gem-sdk/pages 1.14.0-dev.384 → 1.14.0-dev.447
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 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var react=require("react");const TOOLBAR_HOVER_HEIGHT=24,TOOLBAR_ACTIVE_HEIGHT=32,getDOMElementParents=(t,e,r)=>{let o=[];for(;t;)if(t=t.parentElement??void 0){if("BODY"===t.tagName||"ROOT"===t.getAttribute("data-uid"))break;if(e){if(t.matches(e)&&(o.push(t),r&&o.length==r))return o;continue}if(o.push(t),r&&o.length==r)break}return o},getChildrenByAttrSelector=(t,e)=>{let r=t.children.length;if(r)for(let o=0;o<r;o++){let r=t.children[o];if(r){let t=r.getAttribute(e);if(t)return r}}},isOverParent=({current:t,parent:e,index:r,revert:o})=>{for(let a=0;a<r;a++){let r=t.top-23*a>=e.top&&t.top-23*a<=e.top+e.height||t.top-23*a>=e.top+e.height&&t.top-23*a<=e.top;if(o&&(r=t.bottom+23*a>=e.bottom&&t.bottom+23*a<=e.bottom-e.height||t.bottom+23*a>=e.bottom-e.height&&t.bottom+23*a<=e.bottom),r)return!0}return!1},waitForElementToExist=(t,e=200)=>new Promise(r=>{let o=setInterval(()=>{let e=document.querySelector(t);e&&(clearInterval(o),clearTimeout(a),r(e))},50),a=setTimeout(()=>{clearInterval(o),clearTimeout(a),r(null)},e)}),notVisible=t=>{let e=getComputedStyle(t).overflow;return"visible"!==e},isSection=t=>{let e=t.getAttribute("data-component-tag");return"Section"===e},isOverToolbarPosition=(t,e)=>{let r=t.getBoundingClientRect(),o=e.getBoundingClientRect();return r.top-o.top<33},findOverflowParent=(t,e)=>{let r=e||t;if(t&&!isSection(t))return notVisible(t)&&isOverToolbarPosition(e,t)?t:t.parentElement?findOverflowParent(t.parentElement,r):void 0},Toolbar=()=>{let t=react.useRef(null),e=react.useRef(!1),r=react.useRef(),o=react.useRef(!1),a=react.useRef(!1),i=({state:t,$toolbar:e,$component:r})=>{let o=findOverflowParent(r,e);if(o){let o=r.getBoundingClientRect();o?.height<=60?e.setAttribute(`data-toolbar-${t}-revert`,"true"):e.setAttribute(`data-toolbar-${t}-inside`,"true")}else{let o=e.getBoundingClientRect(),a=r.getBoundingClientRect();o.top<33&&(a?.height<=60?e.setAttribute(`data-toolbar-${t}-revert`,"true"):e.setAttribute(`data-toolbar-${t}-inside`,"true"))}},n=react.useCallback(({$component:t,componentUid:e,focus:r,isThemeSection:o})=>{if(!t&&!e)return;if(!t){let r=document.querySelector(`[data-uid="${e}"]`);if(!r)return;t=r}if(!e){let r=t.getAttribute("data-uid");if(!r)return;e=r}let a=getChildrenByAttrSelector(t,"data-toolbar"),n=getChildrenByAttrSelector(t,"data-outline"),l=getChildrenByAttrSelector(t,"data-toolbar-add-top"),d=getChildrenByAttrSelector(t,"data-toolbar-add-bottom"),u=getChildrenByAttrSelector(t,"data-column"),c=getChildrenByAttrSelector(t,"data-theme-section-status");o&&c&&c.setAttribute("data-theme-section-status-active","true"),a&&(a.removeAttribute("style"),a.setAttribute("data-toolbar-hover","true"),r&&a.setAttribute("data-toolbar-hover-focus","true"),i({$toolbar:a,$component:t,state:"hover"})),n&&(n.setAttribute("data-outline-hover","true"),o&&n.setAttribute("data-outline-overlay-theme-section","true"),r&&n.setAttribute("data-outline-hover-focus","true")),l&&l.setAttribute("data-toolbar-add-hover","true"),d&&d.setAttribute("data-toolbar-add-hover","true"),u&&u.setAttribute("data-column-visible","true")},[]),l=react.useCallback(({$component:t,componentUid:e})=>{if(!t){let r=document.querySelector(`[data-uid="${e}"]`);if(!r)return;t=r}let r=getDOMElementParents(t,'[data-uid][data-component-type="component"]:not([data-component-no-setting])');if(r.length){for(let t of r)t&&n({$component:t});d({$component:t,$parents:r})}},[n]),d=({$component:t,$parents:e})=>{if(!t||!e?.length)return;let r=getChildrenByAttrSelector(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"),i=1;for(let r of e)if(r){let e=r.getAttribute("data-component-tag");if("Section"===e)continue;let n=getChildrenByAttrSelector(r,"data-toolbar-hover");if(n){let e=n.getAttribute("data-toolbar-active");if(e)continue;let r=n.getBoundingClientRect(),l=o||a;if(isOverParent({current:t,parent:r,index:i,revert:l})){let e=getComputedStyle(n),o=t.top-r.top,a=t.left-r.left,d=parseFloat(e.top)+o-23*i;l&&(d=parseFloat(e.top)-o+23*i);let u=parseFloat(e.left)+a;n.setAttribute("style",`top: ${d}px;left: ${u}px;`),i++}}}}},u=react.useCallback(()=>{let t=["data-outline-overlay","data-outline-overlay-theme-section","data-theme-section-status-active"],e=document.querySelectorAll(t.map(t=>`[${t}]`).join(","));e&&t.forEach(t=>{e.forEach(e=>e.removeAttribute(t))})},[]),c=react.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-column-visible"],e=document.querySelectorAll(t.map(t=>`[${t}]`).join(","));e&&t.forEach(t=>{e.forEach(e=>e.removeAttribute(t))}),u()},[u]),s=react.useCallback(()=>{t.current=null;let e=["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-column-force-visible"],o=document.querySelectorAll(e.map(t=>`[${t}]`).join(","));o&&e.forEach(t=>{o.forEach(e=>e.removeAttribute(t))}),g(!1),r.current&&r.current.disconnect()},[]),b=(t,e)=>{let o=t.parentNode;o&&(r.current&&r.current.disconnect(),r.current=new MutationObserver(o=>{for(let a of o)a.removedNodes.forEach(o=>{o===t&&(r.current&&r.current.disconnect(),e())})}),r.current.observe(o,{childList:!0}))},v=react.useCallback(({$component:t})=>{if(!t)return;let e=getComputedStyle(t),r=getChildrenByAttrSelector(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")}}},[]),m=(t,e)=>{let r=t.closest('[data-toolbar-wrap][data-component-tag="Section"]');if(r){if(e){let t=getChildrenByAttrSelector(r,"data-toolbar"),e=getChildrenByAttrSelector(r,"data-outline");t&&t.setAttribute("data-toolbar-force-hover","true"),e&&e.setAttribute("data-outline-force-hover","true")}else{let t=getChildrenByAttrSelector(r,"data-toolbar"),e=getChildrenByAttrSelector(r,"data-outline");t&&t.removeAttribute("data-toolbar-force-hover"),e&&e.removeAttribute("data-outline-force-hover")}}},f=react.useCallback(async({componentUid:e,productId:r,timeAwait:o=500,forceReActive:a})=>{if(!e)return;let n=await waitForElementToExist(`${r?`[data-product-id="${r}"] `:""}[data-uid="${e}"]`,o);if(!n||!a&&e==t.current?.componentUid&&r==t.current?.productId)return;(a||e===t.current?.componentUid)&&r===t.current?.productId||s();let l=getChildrenByAttrSelector(n,"data-toolbar"),d=getChildrenByAttrSelector(n,"data-outline"),u=getChildrenByAttrSelector(n,"data-toolbar-add-top"),g=getChildrenByAttrSelector(n,"data-toolbar-add-bottom"),h=getChildrenByAttrSelector(n,"data-column");if(l&&(t.current={componentUid:e,productId:r},l.removeAttribute("style"),l.setAttribute("data-toolbar-active","true"),i({$toolbar:l,$component:n,state:"active"})),d&&d.setAttribute("data-outline-active","true"),u&&u.setAttribute("data-toolbar-add-active","true"),g&&g.setAttribute("data-toolbar-add-active","true"),h&&h.setAttribute("data-column-force-visible","true"),r){let t=document.querySelectorAll(`[data-uid="${e}"]`);t?.length&&t.forEach(t=>{let e=getChildrenByAttrSelector(t,"data-outline");e&&e.setAttribute("data-outline-active","true")})}v({$component:n}),m(n,!0),c(),b(n,()=>{f({componentUid:e,productId:r,timeAwait:2e3,forceReActive:!0})})},[s,c,v]),g=async e=>{if(e){if(t.current?.componentUid){let r=t.current?.componentUid,o=t.current?.productId,a=await waitForElementToExist(`${o?`[data-product-id="${o}"] `:""}[data-uid="${r}"]`,500);if(a){let t=getChildrenByAttrSelector(a,"data-toolbar"),r=getChildrenByAttrSelector(a,"data-outline"),o=getChildrenByAttrSelector(a,"data-spacing");t&&e&&t.setAttribute("data-toolbar-editor-inline-focus","true"),r&&e&&r.setAttribute("data-outline-editor-inline-focus","true"),o&&e&&o.setAttribute("data-spacing-hidden","true")}}}else{let t=document.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"))})}},h=react.useCallback(e=>{let r=e.closest("[data-theme-section]"),o=r?.getAttribute("data-uid"),a=r&&o===t.current?.componentUid;if(!a)return;let i=getChildrenByAttrSelector(r,"data-theme-section-status");i&&i.setAttribute("data-theme-section-status-active","true")},[]),p=async({value:e})=>{if(!e)return;let r=await waitForElementToExist(`${t.current?.productId?`[data-product-id="${t.current?.productId}"] `:""}[data-uid="${t.current?.componentUid}"]`,500);if(r){let e=r?.querySelectorAll("[data-toolbar-parent]");if(e.length){let r=t=>{let e=t.getAttribute("data-parent-uid");if(!e)return;let r=document.querySelectorAll(`[data-uid="${e}"]`);r.length&&r.forEach(t=>{let e=getChildrenByAttrSelector(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.querySelectorAll(`[data-uid="${e}"]`);r.length&&r.forEach(t=>{let e=getChildrenByAttrSelector(t,"data-outline");e&&(e.removeAttribute("data-outline-force-hover"),e.removeAttribute("data-outline-force-overlay"))})},a=async e=>{let r=e.getAttribute("data-parent-uid");if(!r)return;let a=async()=>{let t=await waitForElementToExist(`[data-uid="${r}"]`,500),e=t?.closest("[data-product-id]"),o=e?.getAttribute("data-product-id")||"";return!!o},i="";await a()&&(i=t.current?.productId||"");let n=new CustomEvent("editor:toolbar:force-active-component",{bubbles:!0,detail:{componentUid:r,productId:i}});o(e),window.dispatchEvent(n)};e.forEach(t=>{t.addEventListener("mouseover",()=>r(t)),t.addEventListener("mouseout",()=>o(t)),t.addEventListener("click",()=>a(t))})}}},A=react.useCallback(r=>{if(e.current||o.current||a.current)return;let i=r.target;if(!i){u();return}let d=i.closest("[data-toolbar-hover]");if(d)return;let s=i.closest("[data-toolbar-wrap]"),b=s?.getAttribute("data-uid");if(!s||!b||"ROOT"==b){c();return}let v=getChildrenByAttrSelector(s,"data-toolbar"),m=getChildrenByAttrSelector(s,"data-outline");if(m&&m.removeAttribute("data-outline-overlay"),!b||"ROOT"==b||v?.getAttribute("data-toolbar-hover-focus"))return;if(v?.getAttribute("data-toolbar-hover-focus")||c(),h(i),b==t.current?.componentUid){if(t.current.productId){let e=s.closest("[data-product-id]");if(e){let r=e.getAttribute("data-product-id");if(r==t.current.productId)return}}let e=i.closest("[data-theme-section]");if(!e)return;n({$component:e,focus:!0,isThemeSection:!0})}let f=i.closest("[data-theme-section]");f?n({$component:f,focus:!0,isThemeSection:!0}):(n({$component:s,componentUid:b,focus:!0}),l({$component:s,componentUid:b}))},[h,c,n,l,u,t]),y=react.useCallback(t=>{if(e.current)return;let r=t.detail;r?.componentUid?f({componentUid:r.componentUid,productId:r.productId}):s()},[f,s,e]),C=react.useCallback(()=>{c()},[c]),w=react.useCallback(t=>{let r=t.detail;r.value&&(c(),s()),e.current=r.value},[c,s]),E=react.useCallback(t=>{let e=t.detail;e.value?g(!0):g(!1)},[]),S=react.useCallback(t=>{if(e.current)return;let r=t.detail;p({value:r?.value||!1})},[]),B=react.useCallback(t=>{let e=t.detail;e?.value?(c(),o.current=!0):o.current=!1},[c]),$=react.useCallback(t=>{let e=t.detail;e?.value?(c(),a.current=!0):a.current=!1},[c]);return react.useEffect(()=>(document.addEventListener("mousemove",A),window.addEventListener("editor:active-component",y),window.addEventListener("editor:focus-outside-preview",C),window.addEventListener("editor:is-dragging",w),window.addEventListener("editor:is-editing-text-editor",E),window.addEventListener("editor:toolbar:show-parents",S),window.addEventListener("editor:toolbar:resize-spacing",B),window.addEventListener("editor:toolbar:resize-column",$),()=>{document.removeEventListener("mousemove",A),window.removeEventListener("editor:active-component",y),window.removeEventListener("editor:is-dragging",C),window.removeEventListener("editor:is-dragging",w),window.removeEventListener("editor:is-editing-text-editor",E),window.removeEventListener("editor:toolbar:show-parents",S),window.removeEventListener("editor:toolbar:resize-spacing",B),window.removeEventListener("editor:toolbar:resize-column",$)}),[A,y,C,w,E,S,B,$]),null};var Toolbar$1=react.memo(Toolbar);exports.default=Toolbar$1;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var react=require("react");const TOOLBAR_HOVER_HEIGHT=24,TOOLBAR_ACTIVE_HEIGHT=32,getDOMElementParents=(t,e,r)=>{let o=[];for(;t;)if(t=t.parentElement??void 0){if("BODY"===t.tagName||"ROOT"===t.getAttribute("data-uid"))break;if(e){if(t.matches(e)&&(o.push(t),r&&o.length==r))return o;continue}if(o.push(t),r&&o.length==r)break}return o},getChildrenByAttrSelector=(t,e)=>{let r=t.children.length;if(r)for(let o=0;o<r;o++){let r=t.children[o];if(r){let t=r.getAttribute(e);if(t)return r}}},isOverParent=({current:t,parent:e,index:r,revert:o})=>{for(let a=0;a<r;a++){let r=t.top-23*a>=e.top&&t.top-23*a<=e.top+e.height||t.top-23*a>=e.top+e.height&&t.top-23*a<=e.top;if(o&&(r=t.bottom+23*a>=e.bottom&&t.bottom+23*a<=e.bottom-e.height||t.bottom+23*a>=e.bottom-e.height&&t.bottom+23*a<=e.bottom),r)return!0}return!1},waitForElementToExist=(t,e=200)=>new Promise(r=>{let o=setInterval(()=>{let e=document.querySelector(t);e&&(clearInterval(o),clearTimeout(a),r(e))},50),a=setTimeout(()=>{clearInterval(o),clearTimeout(a),r(null)},e)}),notVisible=t=>{let e=getComputedStyle(t).overflow;return"visible"!==e},isSection=t=>{let e=t.getAttribute("data-component-tag");return"Section"===e},isOverToolbarPosition=(t,e)=>{let r=t.getBoundingClientRect(),o=e.getBoundingClientRect();return r.top-o.top<33},findOverflowParent=(t,e)=>{let r=e||t;if(t&&!isSection(t))return notVisible(t)&&isOverToolbarPosition(e,t)?t:t.parentElement?findOverflowParent(t.parentElement,r):void 0},Toolbar=()=>{let t=react.useRef(null),e=react.useRef(!1),r=react.useRef(),o=react.useRef(!1),a=react.useRef(!1),i=({state:t,$toolbar:e,$component:r})=>{let o=findOverflowParent(r,e);if(o){let o=r.getBoundingClientRect();o?.height<=60?e.setAttribute(`data-toolbar-${t}-revert`,"true"):e.setAttribute(`data-toolbar-${t}-inside`,"true")}else{let o=e.getBoundingClientRect(),a=r.getBoundingClientRect();o.top<33&&(a?.height<=60?e.setAttribute(`data-toolbar-${t}-revert`,"true"):e.setAttribute(`data-toolbar-${t}-inside`,"true"))}},n=react.useCallback(({$component:t,componentUid:e,focus:r,isThemeSection:o,isParent:a})=>{if(!t&&!e)return;if(!t){let r=document.querySelector(`[data-uid="${e}"]`);if(!r)return;t=r}if(!e){let r=t.getAttribute("data-uid");if(!r)return;e=r}let n=getChildrenByAttrSelector(t,"data-toolbar"),l=getChildrenByAttrSelector(t,"data-outline"),d=getChildrenByAttrSelector(t,"data-toolbar-add-top"),u=getChildrenByAttrSelector(t,"data-toolbar-add-bottom"),c=getChildrenByAttrSelector(t,"data-column"),s=getChildrenByAttrSelector(t,"data-theme-section-status");o&&s&&s.setAttribute("data-theme-section-status-active","true"),n&&(n.removeAttribute("style"),a||n.setAttribute("data-toolbar-hover","true"),r&&n.setAttribute("data-toolbar-hover-focus","true"),i({$toolbar:n,$component:t,state:"hover"})),l&&(l.setAttribute("data-outline-hover","true"),a&&l.setAttribute("data-outline-parent-hover","true"),o&&l.setAttribute("data-outline-overlay-theme-section","true"),r&&l.setAttribute("data-outline-hover-focus","true")),d&&!a&&d.setAttribute("data-toolbar-add-hover","true"),u&&!a&&u.setAttribute("data-toolbar-add-hover","true"),c&&c.setAttribute("data-column-visible","true")},[]),l=react.useCallback(({$component:t,componentUid:e})=>{if(!t){let r=document.querySelector(`[data-uid="${e}"]`);if(!r)return;t=r}let r=getDOMElementParents(t,'[data-uid][data-component-type="component"]:not([data-component-no-setting])',1);if(r.length){for(let t of r)t&&n({$component:t,isParent:!0});d({$component:t,$parents:r})}},[n]),d=({$component:t,$parents:e})=>{if(!t||!e?.length)return;let r=getChildrenByAttrSelector(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"),i=1;for(let r of e)if(r){let e=r.getAttribute("data-component-tag");if("Section"===e)continue;let n=getChildrenByAttrSelector(r,"data-toolbar-hover");if(n){let e=n.getAttribute("data-toolbar-active");if(e)continue;let r=n.getBoundingClientRect(),l=o||a;if(isOverParent({current:t,parent:r,index:i,revert:l})){let e=getComputedStyle(n),o=t.top-r.top,a=t.left-r.left,d=parseFloat(e.top)+o-23*i;l&&(d=parseFloat(e.top)-o+23*i);let u=parseFloat(e.left)+a;n.setAttribute("style",`top: ${d}px;left: ${u}px;`),i++}}}}},u=react.useCallback(()=>{let t=["data-outline-overlay","data-outline-overlay-theme-section","data-theme-section-status-active"],e=document.querySelectorAll(t.map(t=>`[${t}]`).join(","));e&&t.forEach(t=>{e.forEach(e=>e.removeAttribute(t))})},[]),c=react.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-column-visible","data-outline-parent-hover"],e=document.querySelectorAll(t.map(t=>`[${t}]`).join(","));e&&t.forEach(t=>{e.forEach(e=>e.removeAttribute(t))}),u()},[u]),s=react.useCallback(()=>{t.current=null;let e=["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-column-force-visible","data-outline-parent-hover"],o=document.querySelectorAll(e.map(t=>`[${t}]`).join(","));o&&e.forEach(t=>{o.forEach(e=>e.removeAttribute(t))}),f(!1),r.current&&r.current.disconnect()},[]),b=(t,e)=>{let o=t.parentNode;o&&(r.current&&r.current.disconnect(),r.current=new MutationObserver(o=>{for(let a of o)a.removedNodes.forEach(o=>{o===t&&(r.current&&r.current.disconnect(),e())})}),r.current.observe(o,{childList:!0}))},v=react.useCallback(({$component:t})=>{if(!t)return;let e=getComputedStyle(t),r=getChildrenByAttrSelector(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")}}},[]),m=react.useCallback(async({componentUid:e,productId:r,timeAwait:o=500,forceReActive:a})=>{if(!e)return;let n=await waitForElementToExist(`${r?`[data-product-id="${r}"] `:""}[data-uid="${e}"]`,o);if(!n||!a&&e==t.current?.componentUid&&r==t.current?.productId)return;(a||e===t.current?.componentUid)&&r===t.current?.productId||s();let l=getChildrenByAttrSelector(n,"data-toolbar"),d=getChildrenByAttrSelector(n,"data-outline"),u=getChildrenByAttrSelector(n,"data-toolbar-add-top"),f=getChildrenByAttrSelector(n,"data-toolbar-add-bottom"),g=getChildrenByAttrSelector(n,"data-column");if(l&&(t.current={componentUid:e,productId:r},l.removeAttribute("style"),l.setAttribute("data-toolbar-active","true"),i({$toolbar:l,$component:n,state:"active"})),d&&d.setAttribute("data-outline-active","true"),u&&u.setAttribute("data-toolbar-add-active","true"),f&&f.setAttribute("data-toolbar-add-active","true"),g&&g.setAttribute("data-column-force-visible","true"),r){let t=document.querySelectorAll(`[data-uid="${e}"]`);t?.length&&t.forEach(t=>{let e=getChildrenByAttrSelector(t,"data-outline");e&&e.setAttribute("data-outline-active","true")})}v({$component:n}),c(),b(n,()=>{m({componentUid:e,productId:r,timeAwait:2e3,forceReActive:!0})})},[s,c,v]),f=async e=>{if(e){if(t.current?.componentUid){let r=t.current?.componentUid,o=t.current?.productId,a=await waitForElementToExist(`${o?`[data-product-id="${o}"] `:""}[data-uid="${r}"]`,500);if(a){let t=getChildrenByAttrSelector(a,"data-toolbar"),r=getChildrenByAttrSelector(a,"data-outline"),o=getChildrenByAttrSelector(a,"data-spacing");t&&e&&t.setAttribute("data-toolbar-editor-inline-focus","true"),r&&e&&r.setAttribute("data-outline-editor-inline-focus","true"),o&&e&&o.setAttribute("data-spacing-hidden","true")}}}else{let t=document.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"))})}},g=react.useCallback(e=>{let r=e.closest("[data-theme-section]"),o=r?.getAttribute("data-uid"),a=r&&o===t.current?.componentUid;if(!a)return;let i=getChildrenByAttrSelector(r,"data-theme-section-status");i&&i.setAttribute("data-theme-section-status-active","true")},[]),h=async({value:e})=>{if(!e)return;let r=await waitForElementToExist(`${t.current?.productId?`[data-product-id="${t.current?.productId}"] `:""}[data-uid="${t.current?.componentUid}"]`,500);if(r){let e=r?.querySelectorAll("[data-toolbar-parent]");if(e.length){let r=t=>{let e=t.getAttribute("data-parent-uid");if(!e)return;let r=document.querySelectorAll(`[data-uid="${e}"]`);r.length&&r.forEach(t=>{let e=getChildrenByAttrSelector(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.querySelectorAll(`[data-uid="${e}"]`);r.length&&r.forEach(t=>{let e=getChildrenByAttrSelector(t,"data-outline");e&&(e.removeAttribute("data-outline-force-hover"),e.removeAttribute("data-outline-force-overlay"))})},a=async e=>{let r=e.getAttribute("data-parent-uid");if(!r)return;let a=async()=>{let t=await waitForElementToExist(`[data-uid="${r}"]`,500),e=t?.closest("[data-product-id]"),o=e?.getAttribute("data-product-id")||"";return!!o},i="";await a()&&(i=t.current?.productId||"");let n=new CustomEvent("editor:toolbar:force-active-component",{bubbles:!0,detail:{componentUid:r,productId:i}});o(e),window.dispatchEvent(n)};e.forEach(t=>{t.addEventListener("mouseover",()=>r(t)),t.addEventListener("mouseout",()=>o(t)),t.addEventListener("click",()=>a(t))})}}},p=react.useCallback(r=>{if(e.current||o.current||a.current)return;let i=r.target;if(!i){u();return}let d=i.closest("[data-toolbar-hover]");if(d)return;let s=i.closest("[data-toolbar-wrap]"),b=s?.getAttribute("data-uid");if(!s||!b||"ROOT"==b){c();return}let v=getChildrenByAttrSelector(s,"data-toolbar"),m=getChildrenByAttrSelector(s,"data-outline");if(m&&m.removeAttribute("data-outline-overlay"),!b||"ROOT"==b||v?.getAttribute("data-toolbar-hover-focus"))return;if(v?.getAttribute("data-toolbar-hover-focus")||c(),g(i),b==t.current?.componentUid){if(t.current.productId){let e=s.closest("[data-product-id]");if(e){let r=e.getAttribute("data-product-id");if(r==t.current.productId)return}}let e=i.closest("[data-theme-section]");if(!e)return;n({$component:e,focus:!0,isThemeSection:!0})}let f=i.closest("[data-theme-section]");f?n({$component:f,focus:!0,isThemeSection:!0}):(n({$component:s,componentUid:b,focus:!0}),l({$component:s,componentUid:b}))},[g,c,n,l,u,t]),A=react.useCallback(t=>{if(e.current)return;let r=t.detail;r?.componentUid?m({componentUid:r.componentUid,productId:r.productId}):s()},[m,s,e]),y=react.useCallback(()=>{c()},[c]),E=react.useCallback(t=>{let r=t.detail;r.value&&(c(),s()),e.current=r.value},[c,s]),w=react.useCallback(t=>{let e=t.detail;e.value?f(!0):f(!1)},[]),C=react.useCallback(t=>{if(e.current)return;let r=t.detail;h({value:r?.value||!1})},[]),S=react.useCallback(t=>{let e=t.detail;e?.value?(c(),o.current=!0):o.current=!1},[c]),B=react.useCallback(t=>{let e=t.detail;e?.value?(c(),a.current=!0):a.current=!1},[c]);return react.useEffect(()=>(document.addEventListener("mousemove",p),window.addEventListener("editor:active-component",A),window.addEventListener("editor:focus-outside-preview",y),window.addEventListener("editor:is-dragging",E),window.addEventListener("editor:is-editing-text-editor",w),window.addEventListener("editor:toolbar:show-parents",C),window.addEventListener("editor:toolbar:resize-spacing",S),window.addEventListener("editor:toolbar:resize-column",B),()=>{document.removeEventListener("mousemove",p),window.removeEventListener("editor:active-component",A),window.removeEventListener("editor:is-dragging",y),window.removeEventListener("editor:is-dragging",E),window.removeEventListener("editor:is-editing-text-editor",w),window.removeEventListener("editor:toolbar:show-parents",C),window.removeEventListener("editor:toolbar:resize-spacing",S),window.removeEventListener("editor:toolbar:resize-column",B)}),[p,A,y,E,w,C,S,B]),null};var Toolbar$1=react.memo(Toolbar);exports.default=Toolbar$1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var jsxRuntime=require("react/jsx-runtime"),core=require("@gem-sdk/core"),nextSeo=require("next-seo"),Head=require("next/head"),react=require("react"),Toolbox=require("../components/builder/Toolbox.js"),Header=require("../components/Header.js"),Footer=require("../components/Footer.js"),CollectionGlobalProvider=require("./CollectionGlobalProvider.js"),PopupManager=require("../components/builder/PopupManager.js"),ImageToLayout=require("../components/image-to-layout/ImageToLayout.js"),AddSectionImageToLayout=require("../components/image-to-layout/AddSectionImageToLayout.js"),Toolbar=require("../components/builder/Toolbar.js");const BuilderPage=({components:e,seo:t,themeStyle:o,fontStyle:r,sectionData:s,pageType:i,editorImageToLayout:n,isThemeSectionEditor:u})=>{let[
|
|
1
|
+
"use strict";var jsxRuntime=require("react/jsx-runtime"),core=require("@gem-sdk/core"),nextSeo=require("next-seo"),Head=require("next/head"),react=require("react"),Toolbox=require("../components/builder/Toolbox.js"),Header=require("../components/Header.js"),Footer=require("../components/Footer.js"),CollectionGlobalProvider=require("./CollectionGlobalProvider.js"),PopupManager=require("../components/builder/PopupManager.js"),ImageToLayout=require("../components/image-to-layout/ImageToLayout.js"),AddSectionImageToLayout=require("../components/image-to-layout/AddSectionImageToLayout.js"),Toolbar=require("../components/builder/Toolbar.js");const BuilderPage=({components:e,seo:t,themeStyle:o,fontStyle:r,sectionData:s,pageType:i,editorImageToLayout:n,isThemeSectionEditor:u,hiddenToolbar:a})=>{let[d,l]=react.useState(!1),x=react.useMemo(()=>({ROOT:{uid:"ROOT",tag:"Root",label:"Root",childrens:[]}}),[]);return react.useEffect(()=>{l(!0)},[]),jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(nextSeo.NextSeo,{...t}),jsxRuntime.jsxs(Head,{children:[o&&jsxRuntime.jsx("style",{type:"text/css",id:"global-style",dangerouslySetInnerHTML:{__html:o}}),r&&jsxRuntime.jsx("style",{"data-id":"google-fonts",type:"text/css",dangerouslySetInnerHTML:{__html:r}})]}),jsxRuntime.jsx(core.PageProvider,{children:jsxRuntime.jsx(core.BuilderComponentProvider,{components:e,children:jsxRuntime.jsx(core.SectionProvider,{data:s,children:jsxRuntime.jsxs(core.BuilderPreviewProvider,{state:x,isThemeSectionEditor:u,children:[jsxRuntime.jsx(Toolbox.default,{}),!a&&jsxRuntime.jsx(Toolbar.default,{}),jsxRuntime.jsx(PopupManager.default,{}),d&&jsxRuntime.jsxs("div",{className:"builder z-1 relative",children:[!a&&(u?jsxRuntime.jsx("div",{className:"h-[40px] bg-[#f4f4f4]"}):jsxRuntime.jsx(Header.default,{})),jsxRuntime.jsx("div",{id:"storefront",className:u?"theme-section-editor":"",children:"GP_COLLECTION"===i?jsxRuntime.jsx(CollectionGlobalProvider.default,{children:jsxRuntime.jsx(core.RenderPreview,{uid:"ROOT"})}):jsxRuntime.jsx(core.RenderPreview,{uid:"ROOT"})}),jsxRuntime.jsx(ImageToLayout.default,{editorImageToLayout:n||!1}),jsxRuntime.jsx(AddSectionImageToLayout.default,{editorImageToLayout:n||!1}),jsxRuntime.jsx("div",{id:"visual-content"}),!u&&!a&&jsxRuntime.jsx(Footer.default,{})]})]},"preview")})})})]})};exports.BuilderPage=BuilderPage;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{memo as t,useRef as e,useCallback as r,useEffect as o}from"react";let TOOLBAR_HOVER_HEIGHT=24,TOOLBAR_ACTIVE_HEIGHT=32,getDOMElementParents=(t,e,r)=>{let o=[];for(;t;)if(t=t.parentElement??void 0){if("BODY"===t.tagName||"ROOT"===t.getAttribute("data-uid"))break;if(e){if(t.matches(e)&&(o.push(t),r&&o.length==r))return o;continue}if(o.push(t),r&&o.length==r)break}return o},getChildrenByAttrSelector=(t,e)=>{let r=t.children.length;if(r)for(let o=0;o<r;o++){let r=t.children[o];if(r){let t=r.getAttribute(e);if(t)return r}}},isOverParent=({current:t,parent:e,index:r,revert:o})=>{for(let a=0;a<r;a++){let r=t.top-23*a>=e.top&&t.top-23*a<=e.top+e.height||t.top-23*a>=e.top+e.height&&t.top-23*a<=e.top;if(o&&(r=t.bottom+23*a>=e.bottom&&t.bottom+23*a<=e.bottom-e.height||t.bottom+23*a>=e.bottom-e.height&&t.bottom+23*a<=e.bottom),r)return!0}return!1},waitForElementToExist=(t,e=200)=>new Promise(r=>{let o=setInterval(()=>{let e=document.querySelector(t);e&&(clearInterval(o),clearTimeout(a),r(e))},50),a=setTimeout(()=>{clearInterval(o),clearTimeout(a),r(null)},e)}),notVisible=t=>{let e=getComputedStyle(t).overflow;return"visible"!==e},isSection=t=>{let e=t.getAttribute("data-component-tag");return"Section"===e},isOverToolbarPosition=(t,e)=>{let r=t.getBoundingClientRect(),o=e.getBoundingClientRect();return r.top-o.top<33},findOverflowParent=(t,e)=>{let r=e||t;if(t&&!isSection(t))return notVisible(t)&&isOverToolbarPosition(e,t)?t:t.parentElement?findOverflowParent(t.parentElement,r):void 0},Toolbar=()=>{let t=e(null),a=e(!1),i=e(),n=e(!1),l=e(!1),d=({state:t,$toolbar:e,$component:r})=>{let o=findOverflowParent(r,e);if(o){let o=r.getBoundingClientRect();o?.height<=60?e.setAttribute(`data-toolbar-${t}-revert`,"true"):e.setAttribute(`data-toolbar-${t}-inside`,"true")}else{let o=e.getBoundingClientRect(),a=r.getBoundingClientRect();o.top<33&&(a?.height<=60?e.setAttribute(`data-toolbar-${t}-revert`,"true"):e.setAttribute(`data-toolbar-${t}-inside`,"true"))}},u=r(({$component:t,componentUid:e,focus:r,isThemeSection:o})=>{if(!t&&!e)return;if(!t){let r=document.querySelector(`[data-uid="${e}"]`);if(!r)return;t=r}if(!e){let r=t.getAttribute("data-uid");if(!r)return;e=r}let a=getChildrenByAttrSelector(t,"data-toolbar"),i=getChildrenByAttrSelector(t,"data-outline"),n=getChildrenByAttrSelector(t,"data-toolbar-add-top"),l=getChildrenByAttrSelector(t,"data-toolbar-add-bottom"),u=getChildrenByAttrSelector(t,"data-column"),c=getChildrenByAttrSelector(t,"data-theme-section-status");o&&c&&c.setAttribute("data-theme-section-status-active","true"),a&&(a.removeAttribute("style"),a.setAttribute("data-toolbar-hover","true"),r&&a.setAttribute("data-toolbar-hover-focus","true"),d({$toolbar:a,$component:t,state:"hover"})),i&&(i.setAttribute("data-outline-hover","true"),o&&i.setAttribute("data-outline-overlay-theme-section","true"),r&&i.setAttribute("data-outline-hover-focus","true")),n&&n.setAttribute("data-toolbar-add-hover","true"),l&&l.setAttribute("data-toolbar-add-hover","true"),u&&u.setAttribute("data-column-visible","true")},[]),c=r(({$component:t,componentUid:e})=>{if(!t){let r=document.querySelector(`[data-uid="${e}"]`);if(!r)return;t=r}let r=getDOMElementParents(t,'[data-uid][data-component-type="component"]:not([data-component-no-setting])');if(r.length){for(let t of r)t&&u({$component:t});s({$component:t,$parents:r})}},[u]),s=({$component:t,$parents:e})=>{if(!t||!e?.length)return;let r=getChildrenByAttrSelector(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"),i=1;for(let r of e)if(r){let e=r.getAttribute("data-component-tag");if("Section"===e)continue;let n=getChildrenByAttrSelector(r,"data-toolbar-hover");if(n){let e=n.getAttribute("data-toolbar-active");if(e)continue;let r=n.getBoundingClientRect(),l=o||a;if(isOverParent({current:t,parent:r,index:i,revert:l})){let e=getComputedStyle(n),o=t.top-r.top,a=t.left-r.left,d=parseFloat(e.top)+o-23*i;l&&(d=parseFloat(e.top)-o+23*i);let u=parseFloat(e.left)+a;n.setAttribute("style",`top: ${d}px;left: ${u}px;`),i++}}}}},b=r(()=>{let t=["data-outline-overlay","data-outline-overlay-theme-section","data-theme-section-status-active"],e=document.querySelectorAll(t.map(t=>`[${t}]`).join(","));e&&t.forEach(t=>{e.forEach(e=>e.removeAttribute(t))})},[]),v=r(()=>{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-column-visible"],e=document.querySelectorAll(t.map(t=>`[${t}]`).join(","));e&&t.forEach(t=>{e.forEach(e=>e.removeAttribute(t))}),b()},[b]),m=r(()=>{t.current=null;let e=["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-column-force-visible"],r=document.querySelectorAll(e.map(t=>`[${t}]`).join(","));r&&e.forEach(t=>{r.forEach(e=>e.removeAttribute(t))}),A(!1),i.current&&i.current.disconnect()},[]),f=(t,e)=>{let r=t.parentNode;r&&(i.current&&i.current.disconnect(),i.current=new MutationObserver(r=>{for(let o of r)o.removedNodes.forEach(r=>{r===t&&(i.current&&i.current.disconnect(),e())})}),i.current.observe(r,{childList:!0}))},g=r(({$component:t})=>{if(!t)return;let e=getComputedStyle(t),r=getChildrenByAttrSelector(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")}}},[]),h=(t,e)=>{let r=t.closest('[data-toolbar-wrap][data-component-tag="Section"]');if(r){if(e){let t=getChildrenByAttrSelector(r,"data-toolbar"),e=getChildrenByAttrSelector(r,"data-outline");t&&t.setAttribute("data-toolbar-force-hover","true"),e&&e.setAttribute("data-outline-force-hover","true")}else{let t=getChildrenByAttrSelector(r,"data-toolbar"),e=getChildrenByAttrSelector(r,"data-outline");t&&t.removeAttribute("data-toolbar-force-hover"),e&&e.removeAttribute("data-outline-force-hover")}}},p=r(async({componentUid:e,productId:r,timeAwait:o=500,forceReActive:a})=>{if(!e)return;let i=await waitForElementToExist(`${r?`[data-product-id="${r}"] `:""}[data-uid="${e}"]`,o);if(!i||!a&&e==t.current?.componentUid&&r==t.current?.productId)return;(a||e===t.current?.componentUid)&&r===t.current?.productId||m();let n=getChildrenByAttrSelector(i,"data-toolbar"),l=getChildrenByAttrSelector(i,"data-outline"),u=getChildrenByAttrSelector(i,"data-toolbar-add-top"),c=getChildrenByAttrSelector(i,"data-toolbar-add-bottom"),s=getChildrenByAttrSelector(i,"data-column");if(n&&(t.current={componentUid:e,productId:r},n.removeAttribute("style"),n.setAttribute("data-toolbar-active","true"),d({$toolbar:n,$component:i,state:"active"})),l&&l.setAttribute("data-outline-active","true"),u&&u.setAttribute("data-toolbar-add-active","true"),c&&c.setAttribute("data-toolbar-add-active","true"),s&&s.setAttribute("data-column-force-visible","true"),r){let t=document.querySelectorAll(`[data-uid="${e}"]`);t?.length&&t.forEach(t=>{let e=getChildrenByAttrSelector(t,"data-outline");e&&e.setAttribute("data-outline-active","true")})}g({$component:i}),h(i,!0),v(),f(i,()=>{p({componentUid:e,productId:r,timeAwait:2e3,forceReActive:!0})})},[m,v,g]),A=async e=>{if(e){if(t.current?.componentUid){let r=t.current?.componentUid,o=t.current?.productId,a=await waitForElementToExist(`${o?`[data-product-id="${o}"] `:""}[data-uid="${r}"]`,500);if(a){let t=getChildrenByAttrSelector(a,"data-toolbar"),r=getChildrenByAttrSelector(a,"data-outline"),o=getChildrenByAttrSelector(a,"data-spacing");t&&e&&t.setAttribute("data-toolbar-editor-inline-focus","true"),r&&e&&r.setAttribute("data-outline-editor-inline-focus","true"),o&&e&&o.setAttribute("data-spacing-hidden","true")}}}else{let t=document.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"))})}},y=r(e=>{let r=e.closest("[data-theme-section]"),o=r?.getAttribute("data-uid"),a=r&&o===t.current?.componentUid;if(!a)return;let i=getChildrenByAttrSelector(r,"data-theme-section-status");i&&i.setAttribute("data-theme-section-status-active","true")},[]),w=async({value:e})=>{if(!e)return;let r=await waitForElementToExist(`${t.current?.productId?`[data-product-id="${t.current?.productId}"] `:""}[data-uid="${t.current?.componentUid}"]`,500);if(r){let e=r?.querySelectorAll("[data-toolbar-parent]");if(e.length){let r=t=>{let e=t.getAttribute("data-parent-uid");if(!e)return;let r=document.querySelectorAll(`[data-uid="${e}"]`);r.length&&r.forEach(t=>{let e=getChildrenByAttrSelector(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.querySelectorAll(`[data-uid="${e}"]`);r.length&&r.forEach(t=>{let e=getChildrenByAttrSelector(t,"data-outline");e&&(e.removeAttribute("data-outline-force-hover"),e.removeAttribute("data-outline-force-overlay"))})},a=async e=>{let r=e.getAttribute("data-parent-uid");if(!r)return;let a=async()=>{let t=await waitForElementToExist(`[data-uid="${r}"]`,500),e=t?.closest("[data-product-id]"),o=e?.getAttribute("data-product-id")||"";return!!o},i="";await a()&&(i=t.current?.productId||"");let n=new CustomEvent("editor:toolbar:force-active-component",{bubbles:!0,detail:{componentUid:r,productId:i}});o(e),window.dispatchEvent(n)};e.forEach(t=>{t.addEventListener("mouseover",()=>r(t)),t.addEventListener("mouseout",()=>o(t)),t.addEventListener("click",()=>a(t))})}}},E=r(e=>{if(a.current||n.current||l.current)return;let r=e.target;if(!r){b();return}let o=r.closest("[data-toolbar-hover]");if(o)return;let i=r.closest("[data-toolbar-wrap]"),d=i?.getAttribute("data-uid");if(!i||!d||"ROOT"==d){v();return}let s=getChildrenByAttrSelector(i,"data-toolbar"),m=getChildrenByAttrSelector(i,"data-outline");if(m&&m.removeAttribute("data-outline-overlay"),!d||"ROOT"==d||s?.getAttribute("data-toolbar-hover-focus"))return;if(s?.getAttribute("data-toolbar-hover-focus")||v(),y(r),d==t.current?.componentUid){if(t.current.productId){let e=i.closest("[data-product-id]");if(e){let r=e.getAttribute("data-product-id");if(r==t.current.productId)return}}let e=r.closest("[data-theme-section]");if(!e)return;u({$component:e,focus:!0,isThemeSection:!0})}let f=r.closest("[data-theme-section]");f?u({$component:f,focus:!0,isThemeSection:!0}):(u({$component:i,componentUid:d,focus:!0}),c({$component:i,componentUid:d}))},[y,v,u,c,b,t]),S=r(t=>{if(a.current)return;let e=t.detail;e?.componentUid?p({componentUid:e.componentUid,productId:e.productId}):m()},[p,m,a]),C=r(()=>{v()},[v]),B=r(t=>{let e=t.detail;e.value&&(v(),m()),a.current=e.value},[v,m]),$=r(t=>{let e=t.detail;e.value?A(!0):A(!1)},[]),T=r(t=>{if(a.current)return;let e=t.detail;w({value:e?.value||!1})},[]),L=r(t=>{let e=t.detail;e?.value?(v(),n.current=!0):n.current=!1},[v]),O=r(t=>{let e=t.detail;e?.value?(v(),l.current=!0):l.current=!1},[v]);return o(()=>(document.addEventListener("mousemove",E),window.addEventListener("editor:active-component",S),window.addEventListener("editor:focus-outside-preview",C),window.addEventListener("editor:is-dragging",B),window.addEventListener("editor:is-editing-text-editor",$),window.addEventListener("editor:toolbar:show-parents",T),window.addEventListener("editor:toolbar:resize-spacing",L),window.addEventListener("editor:toolbar:resize-column",O),()=>{document.removeEventListener("mousemove",E),window.removeEventListener("editor:active-component",S),window.removeEventListener("editor:is-dragging",C),window.removeEventListener("editor:is-dragging",B),window.removeEventListener("editor:is-editing-text-editor",$),window.removeEventListener("editor:toolbar:show-parents",T),window.removeEventListener("editor:toolbar:resize-spacing",L),window.removeEventListener("editor:toolbar:resize-column",O)}),[E,S,C,B,$,T,L,O]),null};var Toolbar$1=t(Toolbar);export{Toolbar$1 as default};
|
|
1
|
+
import{memo as t,useRef as e,useCallback as r,useEffect as o}from"react";let TOOLBAR_HOVER_HEIGHT=24,TOOLBAR_ACTIVE_HEIGHT=32,getDOMElementParents=(t,e,r)=>{let o=[];for(;t;)if(t=t.parentElement??void 0){if("BODY"===t.tagName||"ROOT"===t.getAttribute("data-uid"))break;if(e){if(t.matches(e)&&(o.push(t),r&&o.length==r))return o;continue}if(o.push(t),r&&o.length==r)break}return o},getChildrenByAttrSelector=(t,e)=>{let r=t.children.length;if(r)for(let o=0;o<r;o++){let r=t.children[o];if(r){let t=r.getAttribute(e);if(t)return r}}},isOverParent=({current:t,parent:e,index:r,revert:o})=>{for(let a=0;a<r;a++){let r=t.top-23*a>=e.top&&t.top-23*a<=e.top+e.height||t.top-23*a>=e.top+e.height&&t.top-23*a<=e.top;if(o&&(r=t.bottom+23*a>=e.bottom&&t.bottom+23*a<=e.bottom-e.height||t.bottom+23*a>=e.bottom-e.height&&t.bottom+23*a<=e.bottom),r)return!0}return!1},waitForElementToExist=(t,e=200)=>new Promise(r=>{let o=setInterval(()=>{let e=document.querySelector(t);e&&(clearInterval(o),clearTimeout(a),r(e))},50),a=setTimeout(()=>{clearInterval(o),clearTimeout(a),r(null)},e)}),notVisible=t=>{let e=getComputedStyle(t).overflow;return"visible"!==e},isSection=t=>{let e=t.getAttribute("data-component-tag");return"Section"===e},isOverToolbarPosition=(t,e)=>{let r=t.getBoundingClientRect(),o=e.getBoundingClientRect();return r.top-o.top<33},findOverflowParent=(t,e)=>{let r=e||t;if(t&&!isSection(t))return notVisible(t)&&isOverToolbarPosition(e,t)?t:t.parentElement?findOverflowParent(t.parentElement,r):void 0},Toolbar=()=>{let t=e(null),a=e(!1),i=e(),n=e(!1),l=e(!1),d=({state:t,$toolbar:e,$component:r})=>{let o=findOverflowParent(r,e);if(o){let o=r.getBoundingClientRect();o?.height<=60?e.setAttribute(`data-toolbar-${t}-revert`,"true"):e.setAttribute(`data-toolbar-${t}-inside`,"true")}else{let o=e.getBoundingClientRect(),a=r.getBoundingClientRect();o.top<33&&(a?.height<=60?e.setAttribute(`data-toolbar-${t}-revert`,"true"):e.setAttribute(`data-toolbar-${t}-inside`,"true"))}},u=r(({$component:t,componentUid:e,focus:r,isThemeSection:o,isParent:a})=>{if(!t&&!e)return;if(!t){let r=document.querySelector(`[data-uid="${e}"]`);if(!r)return;t=r}if(!e){let r=t.getAttribute("data-uid");if(!r)return;e=r}let i=getChildrenByAttrSelector(t,"data-toolbar"),n=getChildrenByAttrSelector(t,"data-outline"),l=getChildrenByAttrSelector(t,"data-toolbar-add-top"),u=getChildrenByAttrSelector(t,"data-toolbar-add-bottom"),c=getChildrenByAttrSelector(t,"data-column"),s=getChildrenByAttrSelector(t,"data-theme-section-status");o&&s&&s.setAttribute("data-theme-section-status-active","true"),i&&(i.removeAttribute("style"),a||i.setAttribute("data-toolbar-hover","true"),r&&i.setAttribute("data-toolbar-hover-focus","true"),d({$toolbar:i,$component:t,state:"hover"})),n&&(n.setAttribute("data-outline-hover","true"),a&&n.setAttribute("data-outline-parent-hover","true"),o&&n.setAttribute("data-outline-overlay-theme-section","true"),r&&n.setAttribute("data-outline-hover-focus","true")),l&&!a&&l.setAttribute("data-toolbar-add-hover","true"),u&&!a&&u.setAttribute("data-toolbar-add-hover","true"),c&&c.setAttribute("data-column-visible","true")},[]),c=r(({$component:t,componentUid:e})=>{if(!t){let r=document.querySelector(`[data-uid="${e}"]`);if(!r)return;t=r}let r=getDOMElementParents(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});s({$component:t,$parents:r})}},[u]),s=({$component:t,$parents:e})=>{if(!t||!e?.length)return;let r=getChildrenByAttrSelector(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"),i=1;for(let r of e)if(r){let e=r.getAttribute("data-component-tag");if("Section"===e)continue;let n=getChildrenByAttrSelector(r,"data-toolbar-hover");if(n){let e=n.getAttribute("data-toolbar-active");if(e)continue;let r=n.getBoundingClientRect(),l=o||a;if(isOverParent({current:t,parent:r,index:i,revert:l})){let e=getComputedStyle(n),o=t.top-r.top,a=t.left-r.left,d=parseFloat(e.top)+o-23*i;l&&(d=parseFloat(e.top)-o+23*i);let u=parseFloat(e.left)+a;n.setAttribute("style",`top: ${d}px;left: ${u}px;`),i++}}}}},b=r(()=>{let t=["data-outline-overlay","data-outline-overlay-theme-section","data-theme-section-status-active"],e=document.querySelectorAll(t.map(t=>`[${t}]`).join(","));e&&t.forEach(t=>{e.forEach(e=>e.removeAttribute(t))})},[]),v=r(()=>{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-column-visible","data-outline-parent-hover"],e=document.querySelectorAll(t.map(t=>`[${t}]`).join(","));e&&t.forEach(t=>{e.forEach(e=>e.removeAttribute(t))}),b()},[b]),m=r(()=>{t.current=null;let e=["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-column-force-visible","data-outline-parent-hover"],r=document.querySelectorAll(e.map(t=>`[${t}]`).join(","));r&&e.forEach(t=>{r.forEach(e=>e.removeAttribute(t))}),p(!1),i.current&&i.current.disconnect()},[]),f=(t,e)=>{let r=t.parentNode;r&&(i.current&&i.current.disconnect(),i.current=new MutationObserver(r=>{for(let o of r)o.removedNodes.forEach(r=>{r===t&&(i.current&&i.current.disconnect(),e())})}),i.current.observe(r,{childList:!0}))},g=r(({$component:t})=>{if(!t)return;let e=getComputedStyle(t),r=getChildrenByAttrSelector(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")}}},[]),h=r(async({componentUid:e,productId:r,timeAwait:o=500,forceReActive:a})=>{if(!e)return;let i=await waitForElementToExist(`${r?`[data-product-id="${r}"] `:""}[data-uid="${e}"]`,o);if(!i||!a&&e==t.current?.componentUid&&r==t.current?.productId)return;(a||e===t.current?.componentUid)&&r===t.current?.productId||m();let n=getChildrenByAttrSelector(i,"data-toolbar"),l=getChildrenByAttrSelector(i,"data-outline"),u=getChildrenByAttrSelector(i,"data-toolbar-add-top"),c=getChildrenByAttrSelector(i,"data-toolbar-add-bottom"),s=getChildrenByAttrSelector(i,"data-column");if(n&&(t.current={componentUid:e,productId:r},n.removeAttribute("style"),n.setAttribute("data-toolbar-active","true"),d({$toolbar:n,$component:i,state:"active"})),l&&l.setAttribute("data-outline-active","true"),u&&u.setAttribute("data-toolbar-add-active","true"),c&&c.setAttribute("data-toolbar-add-active","true"),s&&s.setAttribute("data-column-force-visible","true"),r){let t=document.querySelectorAll(`[data-uid="${e}"]`);t?.length&&t.forEach(t=>{let e=getChildrenByAttrSelector(t,"data-outline");e&&e.setAttribute("data-outline-active","true")})}g({$component:i}),v(),f(i,()=>{h({componentUid:e,productId:r,timeAwait:2e3,forceReActive:!0})})},[m,v,g]),p=async e=>{if(e){if(t.current?.componentUid){let r=t.current?.componentUid,o=t.current?.productId,a=await waitForElementToExist(`${o?`[data-product-id="${o}"] `:""}[data-uid="${r}"]`,500);if(a){let t=getChildrenByAttrSelector(a,"data-toolbar"),r=getChildrenByAttrSelector(a,"data-outline"),o=getChildrenByAttrSelector(a,"data-spacing");t&&e&&t.setAttribute("data-toolbar-editor-inline-focus","true"),r&&e&&r.setAttribute("data-outline-editor-inline-focus","true"),o&&e&&o.setAttribute("data-spacing-hidden","true")}}}else{let t=document.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"))})}},A=r(e=>{let r=e.closest("[data-theme-section]"),o=r?.getAttribute("data-uid"),a=r&&o===t.current?.componentUid;if(!a)return;let i=getChildrenByAttrSelector(r,"data-theme-section-status");i&&i.setAttribute("data-theme-section-status-active","true")},[]),y=async({value:e})=>{if(!e)return;let r=await waitForElementToExist(`${t.current?.productId?`[data-product-id="${t.current?.productId}"] `:""}[data-uid="${t.current?.componentUid}"]`,500);if(r){let e=r?.querySelectorAll("[data-toolbar-parent]");if(e.length){let r=t=>{let e=t.getAttribute("data-parent-uid");if(!e)return;let r=document.querySelectorAll(`[data-uid="${e}"]`);r.length&&r.forEach(t=>{let e=getChildrenByAttrSelector(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.querySelectorAll(`[data-uid="${e}"]`);r.length&&r.forEach(t=>{let e=getChildrenByAttrSelector(t,"data-outline");e&&(e.removeAttribute("data-outline-force-hover"),e.removeAttribute("data-outline-force-overlay"))})},a=async e=>{let r=e.getAttribute("data-parent-uid");if(!r)return;let a=async()=>{let t=await waitForElementToExist(`[data-uid="${r}"]`,500),e=t?.closest("[data-product-id]"),o=e?.getAttribute("data-product-id")||"";return!!o},i="";await a()&&(i=t.current?.productId||"");let n=new CustomEvent("editor:toolbar:force-active-component",{bubbles:!0,detail:{componentUid:r,productId:i}});o(e),window.dispatchEvent(n)};e.forEach(t=>{t.addEventListener("mouseover",()=>r(t)),t.addEventListener("mouseout",()=>o(t)),t.addEventListener("click",()=>a(t))})}}},w=r(e=>{if(a.current||n.current||l.current)return;let r=e.target;if(!r){b();return}let o=r.closest("[data-toolbar-hover]");if(o)return;let i=r.closest("[data-toolbar-wrap]"),d=i?.getAttribute("data-uid");if(!i||!d||"ROOT"==d){v();return}let s=getChildrenByAttrSelector(i,"data-toolbar"),m=getChildrenByAttrSelector(i,"data-outline");if(m&&m.removeAttribute("data-outline-overlay"),!d||"ROOT"==d||s?.getAttribute("data-toolbar-hover-focus"))return;if(s?.getAttribute("data-toolbar-hover-focus")||v(),A(r),d==t.current?.componentUid){if(t.current.productId){let e=i.closest("[data-product-id]");if(e){let r=e.getAttribute("data-product-id");if(r==t.current.productId)return}}let e=r.closest("[data-theme-section]");if(!e)return;u({$component:e,focus:!0,isThemeSection:!0})}let f=r.closest("[data-theme-section]");f?u({$component:f,focus:!0,isThemeSection:!0}):(u({$component:i,componentUid:d,focus:!0}),c({$component:i,componentUid:d}))},[A,v,u,c,b,t]),E=r(t=>{if(a.current)return;let e=t.detail;e?.componentUid?h({componentUid:e.componentUid,productId:e.productId}):m()},[h,m,a]),S=r(()=>{v()},[v]),C=r(t=>{let e=t.detail;e.value&&(v(),m()),a.current=e.value},[v,m]),B=r(t=>{let e=t.detail;e.value?p(!0):p(!1)},[]),$=r(t=>{if(a.current)return;let e=t.detail;y({value:e?.value||!1})},[]),T=r(t=>{let e=t.detail;e?.value?(v(),n.current=!0):n.current=!1},[v]),L=r(t=>{let e=t.detail;e?.value?(v(),l.current=!0):l.current=!1},[v]);return o(()=>(document.addEventListener("mousemove",w),window.addEventListener("editor:active-component",E),window.addEventListener("editor:focus-outside-preview",S),window.addEventListener("editor:is-dragging",C),window.addEventListener("editor:is-editing-text-editor",B),window.addEventListener("editor:toolbar:show-parents",$),window.addEventListener("editor:toolbar:resize-spacing",T),window.addEventListener("editor:toolbar:resize-column",L),()=>{document.removeEventListener("mousemove",w),window.removeEventListener("editor:active-component",E),window.removeEventListener("editor:is-dragging",S),window.removeEventListener("editor:is-dragging",C),window.removeEventListener("editor:is-editing-text-editor",B),window.removeEventListener("editor:toolbar:show-parents",$),window.removeEventListener("editor:toolbar:resize-spacing",T),window.removeEventListener("editor:toolbar:resize-column",L)}),[w,E,S,C,B,$,T,L]),null};var Toolbar$1=t(Toolbar);export{Toolbar$1 as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsxs as o,Fragment as e,jsx as t}from"react/jsx-runtime";import{PageProvider as r,BuilderComponentProvider as i,SectionProvider as m,BuilderPreviewProvider as n,RenderPreview as l}from"@gem-sdk/core";import{NextSeo as d}from"next-seo";import s from"next/head";import{useState as a,useMemo as c,useEffect as p}from"react";import u from"../components/builder/Toolbox.js";import f from"../components/Header.js";import g from"../components/Footer.js";import h from"./CollectionGlobalProvider.js";import T from"../components/builder/PopupManager.js";import y from"../components/image-to-layout/ImageToLayout.js";import b from"../components/image-to-layout/AddSectionImageToLayout.js";import O from"../components/builder/Toolbar.js";let BuilderPage=({components:j,seo:v,themeStyle:x,fontStyle:L,sectionData:I,pageType:R,editorImageToLayout:P,isThemeSectionEditor:_})=>{let[
|
|
1
|
+
import{jsxs as o,Fragment as e,jsx as t}from"react/jsx-runtime";import{PageProvider as r,BuilderComponentProvider as i,SectionProvider as m,BuilderPreviewProvider as n,RenderPreview as l}from"@gem-sdk/core";import{NextSeo as d}from"next-seo";import s from"next/head";import{useState as a,useMemo as c,useEffect as p}from"react";import u from"../components/builder/Toolbox.js";import f from"../components/Header.js";import g from"../components/Footer.js";import h from"./CollectionGlobalProvider.js";import T from"../components/builder/PopupManager.js";import y from"../components/image-to-layout/ImageToLayout.js";import b from"../components/image-to-layout/AddSectionImageToLayout.js";import O from"../components/builder/Toolbar.js";let BuilderPage=({components:j,seo:v,themeStyle:x,fontStyle:L,sectionData:I,pageType:R,editorImageToLayout:P,isThemeSectionEditor:_,hiddenToolbar:N})=>{let[S,C]=a(!1),H=c(()=>({ROOT:{uid:"ROOT",tag:"Root",label:"Root",childrens:[]}}),[]);return p(()=>{C(!0)},[]),o(e,{children:[t(d,{...v}),o(s,{children:[x&&t("style",{type:"text/css",id:"global-style",dangerouslySetInnerHTML:{__html:x}}),L&&t("style",{"data-id":"google-fonts",type:"text/css",dangerouslySetInnerHTML:{__html:L}})]}),t(r,{children:t(i,{components:j,children:t(m,{data:I,children:o(n,{state:H,isThemeSectionEditor:_,children:[t(u,{}),!N&&t(O,{}),t(T,{}),S&&o("div",{className:"builder z-1 relative",children:[!N&&(_?t("div",{className:"h-[40px] bg-[#f4f4f4]"}):t(f,{})),t("div",{id:"storefront",className:_?"theme-section-editor":"",children:"GP_COLLECTION"===R?t(h,{children:t(l,{uid:"ROOT"})}):t(l,{uid:"ROOT"})}),t(y,{editorImageToLayout:P||!1}),t(b,{editorImageToLayout:P||!1}),t("div",{id:"visual-content"}),!_&&!N&&t(g,{})]})]},"preview")})})})]})};export{BuilderPage};
|
package/dist/types/index.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gem-sdk/pages",
|
|
3
|
-
"version": "1.14.0-dev.
|
|
3
|
+
"version": "1.14.0-dev.447",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"main": "dist/cjs/index.js",
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"next-seo": "^6.0.0"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
|
-
"@gem-sdk/core": "1.14.0-dev.
|
|
28
|
+
"@gem-sdk/core": "1.14.0-dev.447",
|
|
29
29
|
"@gem-sdk/plugin-cookie-bar": "1.14.0-dev.284",
|
|
30
30
|
"@gem-sdk/plugin-quick-view": "1.14.0-dev.284",
|
|
31
31
|
"@gem-sdk/plugin-sticky-add-to-cart": "1.14.0-dev.284"
|