@gem-sdk/pages 12.0.0-dev.80 → 12.0.0-dev.98
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 jsxRuntime=require("react/jsx-runtime"),core=require("@gem-sdk/core"),react=require("react"),getStorefrontApi=require("../../libs/get-storefront-api.js"),googleFonts=require("../../libs/google-fonts.js"),genCss=require("../../libs/helpers/gen-css.js"),genFonts=require("../../libs/helpers/gen-fonts.js"),shopifyCdnWithGoogleFonts=require("../../libs/shopify-cdn-with-google-fonts.js"),libsStore=require("../../store/libs-store.js"),checkOptionFont=require("../../libs/helpers/check-option-font.js");const globalStyleId="global-style",ENABLE_THEME_FONT_EDITOR=!0,Toolbox=()=>{let e=core.useMatchMutate(),t=core.useShopStore(e=>e.provider),r=core.useShopStore(e=>e.changeStorefrontInfo),o=core.usePageStore(e=>e.setDynamicProduct),n=core.usePageStore(e=>e.setAssignedProductIds),a=core.usePageStore(e=>e.setIsApplyAllProducts),i=core.usePageStore(e=>e.setPostPurchaseProductOffers),d=core.usePageStore(e=>e.setDynamicDiscountOffer),l=core.usePageStore(e=>e.setSalePageProductId),s=core.usePageStore(e=>e.setDynamicCollection),c=core.useBuilderPreviewStore(e=>e.initState),u=core.useBuilderPreviewStore(e=>e.state),p=core.useBuilderPreviewStore(e=>e.forceChangeState),w=core.useBuilderPreviewStore(e=>e.forceChangeItemProp),v=core.useBuilderPreviewStore(e=>e.changeItemPropByKey),m=core.useBuilderPreviewStore(e=>e.addItem),g=core.useBuilderPreviewStore(e=>e.moveItem),y=core.useBuilderPreviewStore(e=>e.removeItem),S=core.useSectionStore(e=>e.addSection),h=core.useShopStore(e=>e.changeSwatches),f=core.useBuilderPreviewStore(e=>e.updateItemName),b=core.useBuilderPreviewStore(e=>e.updateItemAttribute),E=core.useBuilderPreviewStore(e=>e.setErrorSectionList),L=core.useShopStore(e=>e.changeLayoutSettings),C=core.useShopStore(e=>e.changeCreateThemeSectionCount),k=core.useShopStore(e=>e.changeShopPlan),P=core.useShopStore(e=>e.updatePriceWithCurrency),I=libsStore.libsStore(e=>e.changeFontType),T=libsStore.libsStore(e=>e.fontType),q=core.useModalStore(e=>e.clearModal),B=core.useShopStore(e=>e.changeLimitCreateThemeSection),F=core.usePageStore(e=>e.setInteractionIsSelectOnPage),A=core.usePageStore(e=>e.setInteractionItem),j=core.usePageStore(e=>e.setInteractionSelectType),x=core.usePageStore(e=>e.setInteractionSettingType),M=core.usePageStore(e=>e.setSidebarMode),O=core.usePageStore(e=>e.setSellingPlanMeta),N=core.usePageStore(e=>e.setBuyerConsentChecked),D=react.useMemo(()=>genFonts.getFontsFromDataBuilder(u),[u]),$=({currentFontTypeSetting:e,fontType:t,fontHref:r})=>{let o;return r.includes("bunny.net")?o="bunny":r.includes("googleapis.com")&&(o="google"),!o||t===o&&o===e},H=react.useCallback((e,t)=>{if(!T)return;if(!t?.length){let t=document.querySelectorAll(`.${e}`);t.forEach(e=>e.remove());return}let r=document.querySelectorAll(`.${e}`);for(let o of(r.forEach(e=>{let r=e.getAttribute("data-font"),o=e.getAttribute("data-font-variant"),n=e.getAttribute("href")||"";if(!r||!o){e.remove();return}let a=t.find(e=>{let t=e.family===r,a=e.variants.includes(o);return!!t&&!!a&&$({currentFontTypeSetting:e.type,fontType:T,fontHref:n})});a||e.remove()}),t))if(!(["bunny","google"].includes(o.type)&&checkOptionFont.checkNotInOptionFont(o.family,T))&&"custom"!==o.type&&o.variants?.length)for(let t of o.variants){let r={...o,variants:[t.toString()]},n=googleFonts.createFontUrls([r],void 0,T,!0)||[];if(n?.length)for(let r of n){let n=e=>window.CSS&&CSS.escape?CSS.escape(e):e.replace(/"/g,'\\"'),a=document.querySelector(`link.${e}[href="${n(r)}"]`);if(a)continue;let i=document.createElement("link");i.className=e,i.rel="stylesheet",i.href=r,i.dataset.font=o.family,i.dataset.fontVariant=t,document.head.appendChild(i)}}},[T]),_=react.useCallback(()=>{e(/query\//,{revalidate:!0})},[e]),W=react.useCallback(e=>{let o=e.detail;r({url:o.shopHandle?getStorefrontApi.getStorefrontApi(o.shopHandle,t):void 0,token:o.shopToken})},[r,t]),G=react.useCallback(e=>{let t=e.detail;try{if(t.data){let e=genCss.genCSS(t.data,t.mobileOnly),r=Object.entries(t.data?.font).map(([,e])=>e).map(e=>{if("custom"==e.type){let t=shopifyCdnWithGoogleFonts.shopifyCdnWithGoogleFonts.find(t=>t.family==e.family);if(t)return t}return e}),o=document.getElementById(globalStyleId);if(H("google-font-builder",r),o)o.innerHTML=e;else{let t=document.createElement("style");t.id=globalStyleId,t.innerHTML=e,document.head.appendChild(t)}}}catch{}},[H]),R=react.useCallback(e=>{q();try{let t=e.detail;t.data&&("flat"===t.type?p(t.data):c(t.data))}catch{}},[p,c,q]),V=react.useCallback(e=>{try{let t=e.detail;t.entity&&(m({data:t.entity,id:t.id,position:t.position,type:t.type??"component"}),t?.type!=="section"||Array.isArray(t.entity)||S(t.entity.uid,t.entity))}catch{}},[m,S]),K=react.useCallback(e=>{try{let t=e.detail;t.uid&&t.propName&&v({id:t.uid,key:t.propName,data:t.propValue,group:t.group})}catch{}},[v]),U=react.useCallback(e=>{try{let t=e.detail;t.uid&&w(t.uid,t.data,t.group)}catch{}},[w]),z=react.useCallback(e=>{try{let t=e.detail;t.to&&t.uid&&g(t.uid,t.to,Number(t.position)??0)}catch{}},[g]),J=react.useCallback(e=>{try{let t=e.detail;t.uid&&y(t.uid)}catch{}},[y]),Q=react.useCallback(e=>{let t=e.detail;try{t.data&&h(t.data)}catch{}},[h]),X=react.useCallback(e=>{let t=e.detail;t&&L(t)},[L]),Y=react.useCallback(e=>{let t=e.detail;t&&C(t)},[C]),Z=react.useCallback(e=>{let t=e.detail;t&&k(t)},[k]),ee=react.useCallback(e=>{let t=e.detail;t&&P(t)},[P]),et=react.useCallback(e=>{let t=e.detail;t&&I(t)},[I]),er=react.useCallback(e=>{let t=e.detail;t&&o(t)},[o]),eo=react.useCallback(e=>{let{assignedIds:t,isApplyAllProducts:r}=e.detail;t&&n(t??[]),a(!!r)},[n,a]),en=react.useCallback(e=>{let t=e.detail;t&&s(t)},[s]);react.useEffect(()=>{D&&T&&H("google-font-element",D)},[D,T,H]);let ea=react.useCallback(e=>{let t=e.detail;t.uid&&f(t.uid,t.name||"")},[f]),ei=react.useCallback(e=>{let t=e.detail;t.uid&&b(t.uid,t.value||"",t.attr||"")},[b]),ed=react.useCallback(e=>{let t=e.detail;t?.length&&i(t)},[i]),el=react.useCallback(e=>{let t=e.detail;t&&d(t)},[d]),es=react.useCallback(e=>{let t=e.detail;t&&l(t)},[l]),ec=react.useCallback(e=>{let t=e.detail;t&&B(t)},[B]),eu=react.useCallback(e=>{let t=e.detail.value,r=e.detail.mode,o=e.detail.settingType;F(t),j(r),x(o)},[F,j,x]),ep=react.useCallback(e=>{let t=e.detail.settingType;x(t)},[x]),ew=react.useCallback(e=>{let t=e.detail.mode;console.log(t),M(t)},[M]),ev=react.useCallback(e=>{let t=e.detail;A(t)},[A]),em=react.useCallback(e=>{e.detail&&O(e.detail)},[O]),eg=react.useCallback(e=>{e.detail&&N(e.detail?.data)},[N]),ey=react.useCallback(e=>{e.detail&&E(e.detail)},[E]);return react.useEffect(()=>(window.addEventListener("update-shop-info",W),window.addEventListener("revalidate-query",_),window.addEventListener("init-builder",R),window.addEventListener("add-entity",V),window.addEventListener("remove-entity",J),window.addEventListener("move-entity",z),window.addEventListener("force-update-entity-props",U),window.addEventListener("update-entity-prop",K),window.addEventListener("set-global-style",G),window.addEventListener("update-global-swatches-data",Q),window.addEventListener("on-off-header-footer",X),window.addEventListener("update-create-theme-section-count",Y),window.addEventListener("update-shop-plan",Z),window.addEventListener("set-dynamic-product",er),window.addEventListener("set-assigned-product-ids",eo),window.addEventListener("set-dynamic-collection",en),window.addEventListener("update-item-name",ea),window.addEventListener("update-item-attribute",ei),window.addEventListener("set-product-offer",ed),window.addEventListener("set-dynamic-discount-offer",el),window.addEventListener("update-sale-page-product-id",es),window.addEventListener("limit-create-theme-section",ec),window.addEventListener("update-interaction-is-select-on-page",eu),window.addEventListener("update-interaction-item",ev),window.addEventListener("update-interaction-setting-type",ep),window.addEventListener("change-sidebar-mode",ew),window.addEventListener("update-font-type",et),window.addEventListener("update-price-with-currency",ee),window.addEventListener("selling-plan-meta-loaded",em),window.addEventListener("selling-plan-meta-updated",em),window.addEventListener("buyer-consent-pre-check-updated",eg),window.addEventListener("editor:error-section-list",ey),()=>{window.removeEventListener("update-shop-info",W),window.removeEventListener("revalidate-query",_),window.removeEventListener("init-builder",R),window.removeEventListener("add-entity",V),window.removeEventListener("remove-entity",J),window.removeEventListener("move-entity",z),window.removeEventListener("update-entity-prop",K),window.removeEventListener("set-global-style",G),window.removeEventListener("update-global-swatches-data",Q),window.removeEventListener("on-off-header-footer",X),window.removeEventListener("update-create-theme-section-count",Y),window.removeEventListener("update-shop-plan",Z),window.removeEventListener("update-price-with-currency",ee),window.removeEventListener("set-dynamic-product",er),window.removeEventListener("set-dynamic-collection",en),window.removeEventListener("update-item-name",ea),window.removeEventListener("update-item-attribute",ei),window.removeEventListener("set-product-offer",ed),window.removeEventListener("update-sale-page-product-id",es),window.removeEventListener("limit-create-theme-section",ec),window.removeEventListener("update-interaction-is-select-on-page",eu),window.removeEventListener("update-interaction-item",ev),window.removeEventListener("update-interaction-setting-type",ep),window.removeEventListener("update-font-type",et),window.removeEventListener("selling-plan-meta-loaded",em),window.removeEventListener("selling-plan-meta-updated",em),window.removeEventListener("buyer-consent-pre-check-updated",eg),window.removeEventListener("editor:error-section-list",ey)}),[V,Z,U,K,R,z,J,G,Q,_,W,X,Y,er,en,ea,ei,ed,es,ec,ev,eu,ep,et,ew,el,ee,em,eg,ey]),jsxRuntime.jsx("div",{className:"toolbox"})};var Toolbox$1=react.memo(Toolbox);exports.default=Toolbox$1;
|
|
2
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var jsxRuntime=require("react/jsx-runtime"),core=require("@gem-sdk/core"),react=require("react"),getStorefrontApi=require("../../libs/get-storefront-api.js"),googleFonts=require("../../libs/google-fonts.js"),genCss=require("../../libs/helpers/gen-css.js"),genFonts=require("../../libs/helpers/gen-fonts.js"),shopifyCdnWithGoogleFonts=require("../../libs/shopify-cdn-with-google-fonts.js"),libsStore=require("../../store/libs-store.js"),checkOptionFont=require("../../libs/helpers/check-option-font.js");const globalStyleId="global-style",ENABLE_THEME_FONT_EDITOR=!0,Toolbox=()=>{let e=core.useMatchMutate(),t=core.useShopStore(e=>e.provider),r=core.useShopStore(e=>e.changeStorefrontInfo),o=core.usePageStore(e=>e.setDynamicProduct),n=core.usePageStore(e=>e.setAssignedProductIds),a=core.usePageStore(e=>e.setIsApplyAllProducts),i=core.usePageStore(e=>e.setPostPurchaseProductOffers),d=core.usePageStore(e=>e.setDynamicDiscountOffer),l=core.usePageStore(e=>e.setSalePageProductId),s=core.usePageStore(e=>e.setDynamicCollection),c=core.useBuilderPreviewStore(e=>e.initState),u=core.useBuilderPreviewStore(e=>e.state),p=core.useBuilderPreviewStore(e=>e.forceChangeState),w=core.useBuilderPreviewStore(e=>e.forceChangeItemProp),v=core.useBuilderPreviewStore(e=>e.changeItemPropByKey),m=core.useBuilderPreviewStore(e=>e.addItem),g=core.useBuilderPreviewStore(e=>e.moveItem),y=core.useBuilderPreviewStore(e=>e.removeItem),h=core.useSectionStore(e=>e.addSection),S=core.useShopStore(e=>e.changeSwatches),f=core.useBuilderPreviewStore(e=>e.updateItemName),b=core.useBuilderPreviewStore(e=>e.updateItemAttribute),E=core.useBuilderPreviewStore(e=>e.setErrorSectionList),L=core.useShopStore(e=>e.changeLayoutSettings),C=core.useShopStore(e=>e.changeCreateThemeSectionCount),k=core.useShopStore(e=>e.changeShopPlan),P=core.useShopStore(e=>e.updatePriceWithCurrency),I=libsStore.libsStore(e=>e.changeFontType),T=libsStore.libsStore(e=>e.fontType),B=core.useModalStore(e=>e.clearModal),q=core.useShopStore(e=>e.changeLimitCreateThemeSection),F=core.usePageStore(e=>e.setInteractionIsSelectOnPage),A=core.usePageStore(e=>e.setInteractionItem),j=core.usePageStore(e=>e.setInteractionSelectType),O=core.usePageStore(e=>e.setInteractionSettingType),x=core.usePageStore(e=>e.setSidebarMode),M=core.usePageStore(e=>e.setSellingPlanMeta),N=core.usePageStore(e=>e.setBuyerConsentChecked),D=core.usePageStore(e=>e.getBuyerConsentChecked),$=react.useMemo(()=>genFonts.getFontsFromDataBuilder(u),[u]),H=({currentFontTypeSetting:e,fontType:t,fontHref:r})=>{let o;return r.includes("bunny.net")?o="bunny":r.includes("googleapis.com")&&(o="google"),!o||t===o&&o===e},_=react.useCallback((e,t)=>{if(!T)return;if(!t?.length){let t=document.querySelectorAll(`.${e}`);t.forEach(e=>e.remove());return}let r=document.querySelectorAll(`.${e}`);for(let o of(r.forEach(e=>{let r=e.getAttribute("data-font"),o=e.getAttribute("data-font-variant"),n=e.getAttribute("href")||"";if(!r||!o){e.remove();return}let a=t.find(e=>{let t=e.family===r,a=e.variants.includes(o);return!!t&&!!a&&H({currentFontTypeSetting:e.type,fontType:T,fontHref:n})});a||e.remove()}),t))if(!(["bunny","google"].includes(o.type)&&checkOptionFont.checkNotInOptionFont(o.family,T))&&"custom"!==o.type&&o.variants?.length)for(let t of o.variants){let r={...o,variants:[t.toString()]},n=googleFonts.createFontUrls([r],void 0,T,!0)||[];if(n?.length)for(let r of n){let n=e=>window.CSS&&CSS.escape?CSS.escape(e):e.replace(/"/g,'\\"'),a=document.querySelector(`link.${e}[href="${n(r)}"]`);if(a)continue;let i=document.createElement("link");i.className=e,i.rel="stylesheet",i.href=r,i.dataset.font=o.family,i.dataset.fontVariant=t,document.head.appendChild(i)}}},[T]),W=react.useCallback(()=>{e(/query\//,{revalidate:!0})},[e]),G=react.useCallback(e=>{let o=e.detail;r({url:o.shopHandle?getStorefrontApi.getStorefrontApi(o.shopHandle,t):void 0,token:o.shopToken})},[r,t]),R=react.useCallback(e=>{let t=e.detail;try{if(t.data){let e=genCss.genCSS(t.data,t.mobileOnly),r=Object.entries(t.data?.font).map(([,e])=>e).map(e=>{if("custom"==e.type){let t=shopifyCdnWithGoogleFonts.shopifyCdnWithGoogleFonts.find(t=>t.family==e.family);if(t)return t}return e}),o=document.getElementById(globalStyleId);if(_("google-font-builder",r),o)o.innerHTML=e;else{let t=document.createElement("style");t.id=globalStyleId,t.innerHTML=e,document.head.appendChild(t)}}}catch{}},[_]),V=react.useCallback(e=>{B();try{let t=e.detail;t.data&&("flat"===t.type?p(t.data):c(t.data))}catch{}},[p,c,B]),K=react.useCallback(e=>{try{let t=e.detail;t.entity&&(m({data:t.entity,id:t.id,position:t.position,type:t.type??"component"}),t?.type!=="section"||Array.isArray(t.entity)||h(t.entity.uid,t.entity))}catch{}},[m,h]),U=react.useCallback(e=>{try{let t=e.detail;t.uid&&t.propName&&v({id:t.uid,key:t.propName,data:t.propValue,group:t.group})}catch{}},[v]),z=react.useCallback(e=>{try{let t=e.detail;t.uid&&w(t.uid,t.data,t.group)}catch{}},[w]),J=react.useCallback(e=>{try{let t=e.detail;t.to&&t.uid&&g(t.uid,t.to,Number(t.position)??0)}catch{}},[g]),Q=react.useCallback(e=>{try{let t=e.detail;t.uid&&y(t.uid)}catch{}},[y]),X=react.useCallback(e=>{let t=e.detail;try{t.data&&S(t.data)}catch{}},[S]),Y=react.useCallback(e=>{let t=e.detail;t&&L(t)},[L]),Z=react.useCallback(e=>{let t=e.detail;t&&C(t)},[C]),ee=react.useCallback(e=>{let t=e.detail;t&&k(t)},[k]),et=react.useCallback(e=>{let t=e.detail;t&&P(t)},[P]),er=react.useCallback(e=>{let t=e.detail;t&&I(t)},[I]),eo=react.useCallback(e=>{let t=e.detail;t&&o(t)},[o]),en=react.useCallback(e=>{let{assignedIds:t,isApplyAllProducts:r}=e.detail;t&&n(t??[]),a(!!r)},[n,a]),ea=react.useCallback(e=>{let t=e.detail;t&&s(t)},[s]);react.useEffect(()=>{$&&T&&_("google-font-element",$)},[$,T,_]);let ei=react.useCallback(e=>{let t=e.detail;t.uid&&f(t.uid,t.name||"")},[f]),ed=react.useCallback(e=>{let t=e.detail;t.uid&&b(t.uid,t.value||"",t.attr||"")},[b]),el=react.useCallback(e=>{let t=e.detail;t?.length&&i(t)},[i]),es=react.useCallback(e=>{let t=e.detail;t&&d(t)},[d]),ec=react.useCallback(e=>{let t=e.detail;t&&l(t)},[l]),eu=react.useCallback(e=>{let t=e.detail;t&&q(t)},[q]),ep=react.useCallback(e=>{let t=e.detail.value,r=e.detail.mode,o=e.detail.settingType;F(t),j(r),O(o)},[F,j,O]),ew=react.useCallback(e=>{let t=e.detail.settingType;O(t)},[O]),ev=react.useCallback(e=>{let t=e.detail.mode;console.log(t),x(t)},[x]),em=react.useCallback(e=>{let t=e.detail;A(t)},[A]),eg=react.useCallback(e=>{e.detail&&M(e.detail)},[M]),ey=react.useCallback(e=>{if(e.detail){let t=e.detail.productID,r=e.detail.data;if(!t){N(r);return}let o={...D()??{}};Object.keys(o).forEach(e=>{e.includes(t)&&(o[e]=r[t])}),N(o)}},[N,D]),eh=react.useCallback(e=>{e.detail&&E(e.detail)},[E]);return react.useEffect(()=>(window.addEventListener("update-shop-info",G),window.addEventListener("revalidate-query",W),window.addEventListener("init-builder",V),window.addEventListener("add-entity",K),window.addEventListener("remove-entity",Q),window.addEventListener("move-entity",J),window.addEventListener("force-update-entity-props",z),window.addEventListener("update-entity-prop",U),window.addEventListener("set-global-style",R),window.addEventListener("update-global-swatches-data",X),window.addEventListener("on-off-header-footer",Y),window.addEventListener("update-create-theme-section-count",Z),window.addEventListener("update-shop-plan",ee),window.addEventListener("set-dynamic-product",eo),window.addEventListener("set-assigned-product-ids",en),window.addEventListener("set-dynamic-collection",ea),window.addEventListener("update-item-name",ei),window.addEventListener("update-item-attribute",ed),window.addEventListener("set-product-offer",el),window.addEventListener("set-dynamic-discount-offer",es),window.addEventListener("update-sale-page-product-id",ec),window.addEventListener("limit-create-theme-section",eu),window.addEventListener("update-interaction-is-select-on-page",ep),window.addEventListener("update-interaction-item",em),window.addEventListener("update-interaction-setting-type",ew),window.addEventListener("change-sidebar-mode",ev),window.addEventListener("update-font-type",er),window.addEventListener("update-price-with-currency",et),window.addEventListener("selling-plan-meta-loaded",eg),window.addEventListener("selling-plan-meta-updated",eg),window.addEventListener("buyer-consent-pre-check-updated",ey),window.addEventListener("editor:error-section-list",eh),()=>{window.removeEventListener("update-shop-info",G),window.removeEventListener("revalidate-query",W),window.removeEventListener("init-builder",V),window.removeEventListener("add-entity",K),window.removeEventListener("remove-entity",Q),window.removeEventListener("move-entity",J),window.removeEventListener("update-entity-prop",U),window.removeEventListener("set-global-style",R),window.removeEventListener("update-global-swatches-data",X),window.removeEventListener("on-off-header-footer",Y),window.removeEventListener("update-create-theme-section-count",Z),window.removeEventListener("update-shop-plan",ee),window.removeEventListener("update-price-with-currency",et),window.removeEventListener("set-dynamic-product",eo),window.removeEventListener("set-dynamic-collection",ea),window.removeEventListener("update-item-name",ei),window.removeEventListener("update-item-attribute",ed),window.removeEventListener("set-product-offer",el),window.removeEventListener("update-sale-page-product-id",ec),window.removeEventListener("limit-create-theme-section",eu),window.removeEventListener("update-interaction-is-select-on-page",ep),window.removeEventListener("update-interaction-item",em),window.removeEventListener("update-interaction-setting-type",ew),window.removeEventListener("update-font-type",er),window.removeEventListener("selling-plan-meta-loaded",eg),window.removeEventListener("selling-plan-meta-updated",eg),window.removeEventListener("buyer-consent-pre-check-updated",ey),window.removeEventListener("editor:error-section-list",eh)}),[K,ee,z,U,V,J,Q,R,X,W,G,Y,Z,eo,ea,ei,ed,el,ec,eu,em,ep,ew,er,ev,es,et,eg,ey,eh]),jsxRuntime.jsx("div",{className:"toolbox"})};var Toolbox$1=react.memo(Toolbox);exports.default=Toolbox$1;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import{jsx as e}from"react/jsx-runtime";import{useMatchMutate as t,useShopStore as n,usePageStore as i,useBuilderPreviewStore as o,useSectionStore as d,useModalStore as a}from"@gem-sdk/core";import{memo as r,useMemo as l,useCallback as s,useEffect as c}from"react";import{getStorefrontApi as p}from"../../libs/get-storefront-api.js";import{createFontUrls as m}from"../../libs/google-fonts.js";import{genCSS as
|
|
2
|
+
import{jsx as e}from"react/jsx-runtime";import{useMatchMutate as t,useShopStore as n,usePageStore as i,useBuilderPreviewStore as o,useSectionStore as d,useModalStore as a}from"@gem-sdk/core";import{memo as r,useMemo as l,useCallback as s,useEffect as c}from"react";import{getStorefrontApi as p}from"../../libs/get-storefront-api.js";import{createFontUrls as m}from"../../libs/google-fonts.js";import{genCSS as u}from"../../libs/helpers/gen-css.js";import{getFontsFromDataBuilder as w}from"../../libs/helpers/gen-fonts.js";import{shopifyCdnWithGoogleFonts as v}from"../../libs/shopify-cdn-with-google-fonts.js";import{libsStore as y}from"../../store/libs-store.js";import{checkNotInOptionFont as f}from"../../libs/helpers/check-option-font.js";let globalStyleId="global-style",ENABLE_THEME_FONT_EDITOR=!0,Toolbox=()=>{let r=t(),g=n(e=>e.provider),E=n(e=>e.changeStorefrontInfo),h=i(e=>e.setDynamicProduct),L=i(e=>e.setAssignedProductIds),b=i(e=>e.setIsApplyAllProducts),S=i(e=>e.setPostPurchaseProductOffers),I=i(e=>e.setDynamicDiscountOffer),T=i(e=>e.setSalePageProductId),C=i(e=>e.setDynamicCollection),P=o(e=>e.initState),k=o(e=>e.state),A=o(e=>e.forceChangeState),j=o(e=>e.forceChangeItemProp),N=o(e=>e.changeItemPropByKey),O=o(e=>e.addItem),x=o(e=>e.moveItem),q=o(e=>e.removeItem),D=d(e=>e.addSection),M=n(e=>e.changeSwatches),$=o(e=>e.updateItemName),B=o(e=>e.updateItemAttribute),H=o(e=>e.setErrorSectionList),F=n(e=>e.changeLayoutSettings),_=n(e=>e.changeCreateThemeSectionCount),V=n(e=>e.changeShopPlan),K=n(e=>e.updatePriceWithCurrency),R=y(e=>e.changeFontType),W=y(e=>e.fontType),z=a(e=>e.clearModal),G=n(e=>e.changeLimitCreateThemeSection),J=i(e=>e.setInteractionIsSelectOnPage),Q=i(e=>e.setInteractionItem),U=i(e=>e.setInteractionSelectType),X=i(e=>e.setInteractionSettingType),Y=i(e=>e.setSidebarMode),Z=i(e=>e.setSellingPlanMeta),ee=i(e=>e.setBuyerConsentChecked),et=i(e=>e.getBuyerConsentChecked),en=l(()=>w(k),[k]),ei=({currentFontTypeSetting:e,fontType:t,fontHref:n})=>{let i;return n.includes("bunny.net")?i="bunny":n.includes("googleapis.com")&&(i="google"),!i||t===i&&i===e},eo=s((e,t)=>{if(!W)return;if(!t?.length){let t=document.querySelectorAll(`.${e}`);t.forEach(e=>e.remove());return}let n=document.querySelectorAll(`.${e}`);for(let i of(n.forEach(e=>{let n=e.getAttribute("data-font"),i=e.getAttribute("data-font-variant"),o=e.getAttribute("href")||"";if(!n||!i){e.remove();return}let d=t.find(e=>{let t=e.family===n,d=e.variants.includes(i);return!!t&&!!d&&ei({currentFontTypeSetting:e.type,fontType:W,fontHref:o})});d||e.remove()}),t))if(!(["bunny","google"].includes(i.type)&&f(i.family,W))&&"custom"!==i.type&&i.variants?.length)for(let t of i.variants){let n={...i,variants:[t.toString()]},o=m([n],void 0,W,!0)||[];if(o?.length)for(let n of o){let o=e=>window.CSS&&CSS.escape?CSS.escape(e):e.replace(/"/g,'\\"'),d=document.querySelector(`link.${e}[href="${o(n)}"]`);if(d)continue;let a=document.createElement("link");a.className=e,a.rel="stylesheet",a.href=n,a.dataset.font=i.family,a.dataset.fontVariant=t,document.head.appendChild(a)}}},[W]),ed=s(()=>{r(/query\//,{revalidate:!0})},[r]),ea=s(e=>{let t=e.detail;E({url:t.shopHandle?p(t.shopHandle,g):void 0,token:t.shopToken})},[E,g]),er=s(e=>{let t=e.detail;try{if(t.data){let e=u(t.data,t.mobileOnly),n=Object.entries(t.data?.font).map(([,e])=>e).map(e=>{if("custom"==e.type){let t=v.find(t=>t.family==e.family);if(t)return t}return e}),i=document.getElementById(globalStyleId);if(eo("google-font-builder",n),i)i.innerHTML=e;else{let t=document.createElement("style");t.id=globalStyleId,t.innerHTML=e,document.head.appendChild(t)}}}catch{}},[eo]),el=s(e=>{z();try{let t=e.detail;t.data&&("flat"===t.type?A(t.data):P(t.data))}catch{}},[A,P,z]),es=s(e=>{try{let t=e.detail;t.entity&&(O({data:t.entity,id:t.id,position:t.position,type:t.type??"component"}),t?.type!=="section"||Array.isArray(t.entity)||D(t.entity.uid,t.entity))}catch{}},[O,D]),ec=s(e=>{try{let t=e.detail;t.uid&&t.propName&&N({id:t.uid,key:t.propName,data:t.propValue,group:t.group})}catch{}},[N]),ep=s(e=>{try{let t=e.detail;t.uid&&j(t.uid,t.data,t.group)}catch{}},[j]),em=s(e=>{try{let t=e.detail;t.to&&t.uid&&x(t.uid,t.to,Number(t.position)??0)}catch{}},[x]),eu=s(e=>{try{let t=e.detail;t.uid&&q(t.uid)}catch{}},[q]),ew=s(e=>{let t=e.detail;try{t.data&&M(t.data)}catch{}},[M]),ev=s(e=>{let t=e.detail;t&&F(t)},[F]),ey=s(e=>{let t=e.detail;t&&_(t)},[_]),ef=s(e=>{let t=e.detail;t&&V(t)},[V]),eg=s(e=>{let t=e.detail;t&&K(t)},[K]),eE=s(e=>{let t=e.detail;t&&R(t)},[R]),eh=s(e=>{let t=e.detail;t&&h(t)},[h]),eL=s(e=>{let{assignedIds:t,isApplyAllProducts:n}=e.detail;t&&L(t??[]),b(!!n)},[L,b]),eb=s(e=>{let t=e.detail;t&&C(t)},[C]);c(()=>{en&&W&&eo("google-font-element",en)},[en,W,eo]);let eS=s(e=>{let t=e.detail;t.uid&&$(t.uid,t.name||"")},[$]),eI=s(e=>{let t=e.detail;t.uid&&B(t.uid,t.value||"",t.attr||"")},[B]),eT=s(e=>{let t=e.detail;t?.length&&S(t)},[S]),eC=s(e=>{let t=e.detail;t&&I(t)},[I]),eP=s(e=>{let t=e.detail;t&&T(t)},[T]),ek=s(e=>{let t=e.detail;t&&G(t)},[G]),eA=s(e=>{let t=e.detail.value,n=e.detail.mode,i=e.detail.settingType;J(t),U(n),X(i)},[J,U,X]),ej=s(e=>{let t=e.detail.settingType;X(t)},[X]),eN=s(e=>{let t=e.detail.mode;console.log(t),Y(t)},[Y]),eO=s(e=>{let t=e.detail;Q(t)},[Q]),ex=s(e=>{e.detail&&Z(e.detail)},[Z]),eq=s(e=>{if(e.detail){let t=e.detail.productID,n=e.detail.data;if(!t){ee(n);return}let i={...et()??{}};Object.keys(i).forEach(e=>{e.includes(t)&&(i[e]=n[t])}),ee(i)}},[ee,et]),eD=s(e=>{e.detail&&H(e.detail)},[H]);return c(()=>(window.addEventListener("update-shop-info",ea),window.addEventListener("revalidate-query",ed),window.addEventListener("init-builder",el),window.addEventListener("add-entity",es),window.addEventListener("remove-entity",eu),window.addEventListener("move-entity",em),window.addEventListener("force-update-entity-props",ep),window.addEventListener("update-entity-prop",ec),window.addEventListener("set-global-style",er),window.addEventListener("update-global-swatches-data",ew),window.addEventListener("on-off-header-footer",ev),window.addEventListener("update-create-theme-section-count",ey),window.addEventListener("update-shop-plan",ef),window.addEventListener("set-dynamic-product",eh),window.addEventListener("set-assigned-product-ids",eL),window.addEventListener("set-dynamic-collection",eb),window.addEventListener("update-item-name",eS),window.addEventListener("update-item-attribute",eI),window.addEventListener("set-product-offer",eT),window.addEventListener("set-dynamic-discount-offer",eC),window.addEventListener("update-sale-page-product-id",eP),window.addEventListener("limit-create-theme-section",ek),window.addEventListener("update-interaction-is-select-on-page",eA),window.addEventListener("update-interaction-item",eO),window.addEventListener("update-interaction-setting-type",ej),window.addEventListener("change-sidebar-mode",eN),window.addEventListener("update-font-type",eE),window.addEventListener("update-price-with-currency",eg),window.addEventListener("selling-plan-meta-loaded",ex),window.addEventListener("selling-plan-meta-updated",ex),window.addEventListener("buyer-consent-pre-check-updated",eq),window.addEventListener("editor:error-section-list",eD),()=>{window.removeEventListener("update-shop-info",ea),window.removeEventListener("revalidate-query",ed),window.removeEventListener("init-builder",el),window.removeEventListener("add-entity",es),window.removeEventListener("remove-entity",eu),window.removeEventListener("move-entity",em),window.removeEventListener("update-entity-prop",ec),window.removeEventListener("set-global-style",er),window.removeEventListener("update-global-swatches-data",ew),window.removeEventListener("on-off-header-footer",ev),window.removeEventListener("update-create-theme-section-count",ey),window.removeEventListener("update-shop-plan",ef),window.removeEventListener("update-price-with-currency",eg),window.removeEventListener("set-dynamic-product",eh),window.removeEventListener("set-dynamic-collection",eb),window.removeEventListener("update-item-name",eS),window.removeEventListener("update-item-attribute",eI),window.removeEventListener("set-product-offer",eT),window.removeEventListener("update-sale-page-product-id",eP),window.removeEventListener("limit-create-theme-section",ek),window.removeEventListener("update-interaction-is-select-on-page",eA),window.removeEventListener("update-interaction-item",eO),window.removeEventListener("update-interaction-setting-type",ej),window.removeEventListener("update-font-type",eE),window.removeEventListener("selling-plan-meta-loaded",ex),window.removeEventListener("selling-plan-meta-updated",ex),window.removeEventListener("buyer-consent-pre-check-updated",eq),window.removeEventListener("editor:error-section-list",eD)}),[es,ef,ep,ec,el,em,eu,er,ew,ed,ea,ev,ey,eh,eb,eS,eI,eT,eP,ek,eO,eA,ej,eE,eN,eC,eg,ex,eq,eD]),e("div",{className:"toolbox"})};var Toolbox$1=r(Toolbox);export{Toolbox$1 as default};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gem-sdk/pages",
|
|
3
|
-
"version": "12.0.0-dev.
|
|
3
|
+
"version": "12.0.0-dev.98",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"main": "dist/cjs/index.js",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"next": "14.2.35"
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
30
|
-
"@gem-sdk/core": "12.0.0-dev.
|
|
30
|
+
"@gem-sdk/core": "12.0.0-dev.98",
|
|
31
31
|
"@gem-sdk/plugin-cookie-bar": "12.0.0-dev.53",
|
|
32
32
|
"@gem-sdk/plugin-quick-view": "12.0.0-dev.53",
|
|
33
33
|
"@gem-sdk/plugin-sticky-add-to-cart": "12.0.0-dev.53"
|