@gem-sdk/pages 2.0.0-staging.1067 → 2.0.0-staging.1071

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"),checkOptionFont=require("../../libs/helpers/check-option-font.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"),getListFontWeightTypos=require("../composable/getListFontWeightTypos.js");const globalStyleId="global-style",Toolbox=()=>{let e=core.useMatchMutate(),t=core.useShopStore(e=>e.provider),o=core.useShopStore(e=>e.changeStorefrontInfo),r=core.usePageStore(e=>e.setDynamicProduct),a=core.usePageStore(e=>e.setPostPurchaseProductOffers),i=core.usePageStore(e=>e.setDynamicDiscountOffer),n=core.usePageStore(e=>e.setSalePageProductId),d=core.usePageStore(e=>e.setDynamicCollection),s=core.useBuilderPreviewStore(e=>e.initState),l=core.useBuilderPreviewStore(e=>e.state),c=core.useBuilderPreviewStore(e=>e.forceChangeState),u=core.useBuilderPreviewStore(e=>e.forceChangeItemProp),p=core.useBuilderPreviewStore(e=>e.changeItemPropByKey),w=core.useBuilderPreviewStore(e=>e.addItem),v=core.useBuilderPreviewStore(e=>e.moveItem),m=core.useBuilderPreviewStore(e=>e.removeItem),g=core.useSectionStore(e=>e.addSection),y=core.useShopStore(e=>e.changeSwatches),f=core.useBuilderPreviewStore(e=>e.updateItemName),h=core.useBuilderPreviewStore(e=>e.updateItemAttribute),S=core.useShopStore(e=>e.changeLayoutSettings),b=core.useShopStore(e=>e.changeCreateThemeSectionCount),E=core.useShopStore(e=>e.changeShopPlan),L=core.useShopStore(e=>e.updatePriceWithCurrency),C=libsStore.libsStore(e=>e.changeFontType),k=libsStore.libsStore(e=>e.fontType),P=core.useModalStore(e=>e.clearModal),I=core.useShopStore(e=>e.changeLimitCreateThemeSection),T=core.usePageStore(e=>e.setInteractionIsSelectOnPage),F=core.usePageStore(e=>e.setInteractionItem),q=core.usePageStore(e=>e.setInteractionSelectType),j=core.usePageStore(e=>e.setInteractionSettingType),B=core.usePageStore(e=>e.setSidebarMode),x=react.useMemo(()=>genFonts.getFontsFromDataBuilder(l),[l]),O=(e,t)=>{if(!t?.length){let t=document.querySelectorAll(`.${e}`);t.forEach(e=>{e.remove()});return}let o=document.querySelectorAll(`.${e}`);for(let r of(o.forEach(e=>{let o=e.getAttribute("data-font"),r=e.getAttribute("data-font-variant");if(o&&r){let a=t.find(e=>e.family==o&&e.variants.includes(r));a||e.remove()}else e.remove()}),t))if(!(["bunny","google"].includes(r.type)&&checkOptionFont.checkNotInOptionFont(r.family,k))&&"custom"!==r.type&&r.variants?.length)for(let t of r.variants){let o=JSON.parse(JSON.stringify(r));o.variants=[t];let a=o.family,i=googleFonts.createFontUrl([o],void 0,k);if(i){let o=document.querySelector(`.${e}[data-font="${a}"][data-font-variant="${t}"]`);if(o)continue;{let o=document.createElement("link");o.className=e,o.dataset.font=a,o.dataset.fontVariant=t,o.href=i,o.rel="stylesheet",document.head.appendChild(o)}}}},A=react.useCallback(()=>{e(/query\//,{revalidate:!0})},[e]),M=react.useCallback(e=>{let r=e.detail;o({url:r.shopHandle?getStorefrontApi.getStorefrontApi(r.shopHandle,t):void 0,token:r.shopToken})},[o,t]),N=react.useCallback(e=>{let t=e.detail;try{if(t.data){let e=genCss.genCSS(t.data,t.mobileOnly),o=getListFontWeightTypos.getListFontWeightTypos(t.data?.typography),r=Object.entries(t.data?.font).map(([,e])=>({...e,variants:e.variants.filter(e=>o.includes(e)||"regular"===e&&o.includes("400")).map(e=>"regular"===e?"400":e)})).map(e=>{if("custom"==e.type){let t=shopifyCdnWithGoogleFonts.shopifyCdnWithGoogleFonts.find(t=>t.family==e.family);if(t)return t}return e}),a=document.getElementById(globalStyleId);if(O("google-font-builder",r),a)a.innerHTML=e;else{let t=document.createElement("style");t.id=globalStyleId,t.innerHTML=e,document.head.appendChild(t)}}}catch{}},[]),W=react.useCallback(e=>{P();try{let t=e.detail;t.data&&("flat"===t.type?c(t.data):s(t.data))}catch{}},[c,s,P]),$=react.useCallback(e=>{try{let t=e.detail;t.entity&&(w({data:t.entity,id:t.id,position:t.position,type:t.type??"component"}),t?.type!=="section"||Array.isArray(t.entity)||g(t.entity.uid,t.entity))}catch{}},[w,g]),D=react.useCallback(e=>{try{let t=e.detail;t.uid&&t.propName&&p({id:t.uid,key:t.propName,data:t.propValue,group:t.group})}catch{}},[p]),H=react.useCallback(e=>{try{let t=e.detail;t.uid&&u(t.uid,t.data,t.group)}catch{}},[u]),G=react.useCallback(e=>{try{let t=e.detail;t.to&&t.uid&&v(t.uid,t.to,Number(t.position)??0)}catch{}},[v]),J=react.useCallback(e=>{try{let t=e.detail;t.uid&&m(t.uid)}catch{}},[m]),R=react.useCallback(e=>{let t=e.detail;try{t.data&&y(t.data)}catch{}},[y]),V=react.useCallback(e=>{let t=e.detail;t&&S(t)},[S]),_=react.useCallback(e=>{let t=e.detail;t&&b(t)},[b]),K=react.useCallback(e=>{let t=e.detail;t&&E(t)},[E]),U=react.useCallback(e=>{let t=e.detail;t&&L(t)},[L]),z=react.useCallback(e=>{let t=e.detail;t&&C(t)},[C]),Q=react.useCallback(e=>{let t=e.detail;t&&r(t)},[r]),X=react.useCallback(e=>{let t=e.detail;t&&d(t)},[d]);react.useEffect(()=>{x&&O("google-font-element",x)},[x]);let Y=react.useCallback(e=>{let t=e.detail;t.uid&&f(t.uid,t.name||"")},[f]),Z=react.useCallback(e=>{let t=e.detail;t.uid&&h(t.uid,t.value||"",t.attr||"")},[h]),ee=react.useCallback(e=>{let t=e.detail;t?.length&&a(t)},[a]),et=react.useCallback(e=>{let t=e.detail;t&&i(t)},[i]),eo=react.useCallback(e=>{let t=e.detail;t&&n(t)},[n]),er=react.useCallback(e=>{let t=e.detail;t&&I(t)},[I]),ea=react.useCallback(e=>{let t=e.detail.value,o=e.detail.mode,r=e.detail.settingType;T(t),q(o),j(r)},[T,q,j]),ei=react.useCallback(e=>{let t=e.detail.settingType;j(t)},[j]),en=react.useCallback(e=>{let t=e.detail.mode;console.log(t),B(t)},[B]),ed=react.useCallback(e=>{let t=e.detail;F(t)},[F]);return react.useEffect(()=>{x&&O("google-font-element",x)},[x]),react.useEffect(()=>(window.addEventListener("update-shop-info",M),window.addEventListener("revalidate-query",A),window.addEventListener("init-builder",W),window.addEventListener("add-entity",$),window.addEventListener("remove-entity",J),window.addEventListener("move-entity",G),window.addEventListener("force-update-entity-props",H),window.addEventListener("update-entity-prop",D),window.addEventListener("set-global-style",N),window.addEventListener("update-global-swatches-data",R),window.addEventListener("on-off-header-footer",V),window.addEventListener("update-create-theme-section-count",_),window.addEventListener("update-shop-plan",K),window.addEventListener("set-dynamic-product",Q),window.addEventListener("set-dynamic-collection",X),window.addEventListener("update-item-name",Y),window.addEventListener("update-item-attribute",Z),window.addEventListener("set-product-offer",ee),window.addEventListener("set-dynamic-discount-offer",et),window.addEventListener("update-sale-page-product-id",eo),window.addEventListener("limit-create-theme-section",er),window.addEventListener("update-interaction-is-select-on-page",ea),window.addEventListener("update-interaction-item",ed),window.addEventListener("update-interaction-setting-type",ei),window.addEventListener("change-sidebar-mode",en),window.addEventListener("update-font-type",z),window.addEventListener("update-price-with-currency",U),()=>{window.removeEventListener("update-shop-info",M),window.removeEventListener("revalidate-query",A),window.removeEventListener("init-builder",W),window.removeEventListener("add-entity",$),window.removeEventListener("remove-entity",J),window.removeEventListener("move-entity",G),window.removeEventListener("update-entity-prop",D),window.removeEventListener("set-global-style",N),window.removeEventListener("update-global-swatches-data",R),window.removeEventListener("on-off-header-footer",V),window.removeEventListener("update-create-theme-section-count",_),window.removeEventListener("update-shop-plan",K),window.removeEventListener("update-price-with-currency",U),window.removeEventListener("set-dynamic-product",Q),window.removeEventListener("set-dynamic-collection",X),window.removeEventListener("update-item-name",Y),window.removeEventListener("update-item-attribute",Z),window.removeEventListener("set-product-offer",ee),window.removeEventListener("update-sale-page-product-id",eo),window.removeEventListener("limit-create-theme-section",er),window.removeEventListener("update-interaction-is-select-on-page",ea),window.removeEventListener("update-interaction-item",ed),window.removeEventListener("update-interaction-setting-type",ei),window.removeEventListener("update-font-type",z)}),[$,K,H,D,W,G,J,N,R,A,M,V,_,Q,X,Y,Z,ee,eo,er,ed,ea,ei,z,en,et,U]),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",Toolbox=()=>{let e=core.useMatchMutate(),t=core.useShopStore(e=>e.provider),o=core.useShopStore(e=>e.changeStorefrontInfo),r=core.usePageStore(e=>e.setDynamicProduct),a=core.usePageStore(e=>e.setPostPurchaseProductOffers),n=core.usePageStore(e=>e.setDynamicDiscountOffer),i=core.usePageStore(e=>e.setSalePageProductId),d=core.usePageStore(e=>e.setDynamicCollection),l=core.useBuilderPreviewStore(e=>e.initState),s=core.useBuilderPreviewStore(e=>e.state),c=core.useBuilderPreviewStore(e=>e.forceChangeState),u=core.useBuilderPreviewStore(e=>e.forceChangeItemProp),p=core.useBuilderPreviewStore(e=>e.changeItemPropByKey),w=core.useBuilderPreviewStore(e=>e.addItem),v=core.useBuilderPreviewStore(e=>e.moveItem),m=core.useBuilderPreviewStore(e=>e.removeItem),g=core.useSectionStore(e=>e.addSection),y=core.useShopStore(e=>e.changeSwatches),f=core.useBuilderPreviewStore(e=>e.updateItemName),h=core.useBuilderPreviewStore(e=>e.updateItemAttribute),S=core.useShopStore(e=>e.changeLayoutSettings),b=core.useShopStore(e=>e.changeCreateThemeSectionCount),E=core.useShopStore(e=>e.changeShopPlan),L=core.useShopStore(e=>e.updatePriceWithCurrency),C=libsStore.libsStore(e=>e.changeFontType),k=libsStore.libsStore(e=>e.fontType),P=core.useModalStore(e=>e.clearModal),I=core.useShopStore(e=>e.changeLimitCreateThemeSection),q=core.usePageStore(e=>e.setInteractionIsSelectOnPage),T=core.usePageStore(e=>e.setInteractionItem),F=core.usePageStore(e=>e.setInteractionSelectType),j=core.usePageStore(e=>e.setInteractionSettingType),B=core.usePageStore(e=>e.setSidebarMode),x=react.useMemo(()=>genFonts.getFontsFromDataBuilder(s),[s]),O=(e,t)=>{if(!t?.length){let t=document.querySelectorAll(`.${e}`);t.forEach(e=>{e.remove()});return}let o=document.querySelectorAll(`.${e}`);for(let r of(o.forEach(e=>{let o=e.getAttribute("data-font"),r=e.getAttribute("data-font-variant");if(o&&r){let a=t.find(e=>e.family==o&&e.variants.includes(r));a||e.remove()}else e.remove()}),t))if(!(["bunny","google"].includes(r.type)&&checkOptionFont.checkNotInOptionFont(r.family,k))&&"custom"!==r.type&&r.variants?.length)for(let t of r.variants){let o=JSON.parse(JSON.stringify(r));o.variants=[t];let a=o.family,n=googleFonts.createFontUrl([o],void 0,k);if(n){let o=document.querySelector(`.${e}[data-font="${a}"][data-font-variant="${t}"]`);if(o)continue;{let o=document.createElement("link");o.className=e,o.dataset.font=a,o.dataset.fontVariant=t,o.href=n,o.rel="stylesheet",document.head.appendChild(o)}}}},A=react.useCallback(()=>{e(/query\//,{revalidate:!0})},[e]),M=react.useCallback(e=>{let r=e.detail;o({url:r.shopHandle?getStorefrontApi.getStorefrontApi(r.shopHandle,t):void 0,token:r.shopToken})},[o,t]),N=react.useCallback(e=>{let t=e.detail;try{if(t.data){let e=genCss.genCSS(t.data,t.mobileOnly),o=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}),r=document.getElementById(globalStyleId);if(O("google-font-builder",o),r)r.innerHTML=e;else{let t=document.createElement("style");t.id=globalStyleId,t.innerHTML=e,document.head.appendChild(t)}}}catch{}},[]),$=react.useCallback(e=>{P();try{let t=e.detail;t.data&&("flat"===t.type?c(t.data):l(t.data))}catch{}},[c,l,P]),D=react.useCallback(e=>{try{let t=e.detail;t.entity&&(w({data:t.entity,id:t.id,position:t.position,type:t.type??"component"}),t?.type!=="section"||Array.isArray(t.entity)||g(t.entity.uid,t.entity))}catch{}},[w,g]),H=react.useCallback(e=>{try{let t=e.detail;t.uid&&t.propName&&p({id:t.uid,key:t.propName,data:t.propValue,group:t.group})}catch{}},[p]),W=react.useCallback(e=>{try{let t=e.detail;t.uid&&u(t.uid,t.data,t.group)}catch{}},[u]),G=react.useCallback(e=>{try{let t=e.detail;t.to&&t.uid&&v(t.uid,t.to,Number(t.position)??0)}catch{}},[v]),J=react.useCallback(e=>{try{let t=e.detail;t.uid&&m(t.uid)}catch{}},[m]),R=react.useCallback(e=>{let t=e.detail;try{t.data&&y(t.data)}catch{}},[y]),V=react.useCallback(e=>{let t=e.detail;t&&S(t)},[S]),_=react.useCallback(e=>{let t=e.detail;t&&b(t)},[b]),K=react.useCallback(e=>{let t=e.detail;t&&E(t)},[E]),U=react.useCallback(e=>{let t=e.detail;t&&L(t)},[L]),z=react.useCallback(e=>{let t=e.detail;t&&C(t)},[C]),Q=react.useCallback(e=>{let t=e.detail;t&&r(t)},[r]),X=react.useCallback(e=>{let t=e.detail;t&&d(t)},[d]);react.useEffect(()=>{x&&O("google-font-element",x)},[x]);let Y=react.useCallback(e=>{let t=e.detail;t.uid&&f(t.uid,t.name||"")},[f]),Z=react.useCallback(e=>{let t=e.detail;t.uid&&h(t.uid,t.value||"",t.attr||"")},[h]),ee=react.useCallback(e=>{let t=e.detail;t?.length&&a(t)},[a]),et=react.useCallback(e=>{let t=e.detail;t&&n(t)},[n]),eo=react.useCallback(e=>{let t=e.detail;t&&i(t)},[i]),er=react.useCallback(e=>{let t=e.detail;t&&I(t)},[I]),ea=react.useCallback(e=>{let t=e.detail.value,o=e.detail.mode,r=e.detail.settingType;q(t),F(o),j(r)},[q,F,j]),en=react.useCallback(e=>{let t=e.detail.settingType;j(t)},[j]),ei=react.useCallback(e=>{let t=e.detail.mode;console.log(t),B(t)},[B]),ed=react.useCallback(e=>{let t=e.detail;T(t)},[T]);return react.useEffect(()=>{x&&O("google-font-element",x)},[x]),react.useEffect(()=>(window.addEventListener("update-shop-info",M),window.addEventListener("revalidate-query",A),window.addEventListener("init-builder",$),window.addEventListener("add-entity",D),window.addEventListener("remove-entity",J),window.addEventListener("move-entity",G),window.addEventListener("force-update-entity-props",W),window.addEventListener("update-entity-prop",H),window.addEventListener("set-global-style",N),window.addEventListener("update-global-swatches-data",R),window.addEventListener("on-off-header-footer",V),window.addEventListener("update-create-theme-section-count",_),window.addEventListener("update-shop-plan",K),window.addEventListener("set-dynamic-product",Q),window.addEventListener("set-dynamic-collection",X),window.addEventListener("update-item-name",Y),window.addEventListener("update-item-attribute",Z),window.addEventListener("set-product-offer",ee),window.addEventListener("set-dynamic-discount-offer",et),window.addEventListener("update-sale-page-product-id",eo),window.addEventListener("limit-create-theme-section",er),window.addEventListener("update-interaction-is-select-on-page",ea),window.addEventListener("update-interaction-item",ed),window.addEventListener("update-interaction-setting-type",en),window.addEventListener("change-sidebar-mode",ei),window.addEventListener("update-font-type",z),window.addEventListener("update-price-with-currency",U),()=>{window.removeEventListener("update-shop-info",M),window.removeEventListener("revalidate-query",A),window.removeEventListener("init-builder",$),window.removeEventListener("add-entity",D),window.removeEventListener("remove-entity",J),window.removeEventListener("move-entity",G),window.removeEventListener("update-entity-prop",H),window.removeEventListener("set-global-style",N),window.removeEventListener("update-global-swatches-data",R),window.removeEventListener("on-off-header-footer",V),window.removeEventListener("update-create-theme-section-count",_),window.removeEventListener("update-shop-plan",K),window.removeEventListener("update-price-with-currency",U),window.removeEventListener("set-dynamic-product",Q),window.removeEventListener("set-dynamic-collection",X),window.removeEventListener("update-item-name",Y),window.removeEventListener("update-item-attribute",Z),window.removeEventListener("set-product-offer",ee),window.removeEventListener("update-sale-page-product-id",eo),window.removeEventListener("limit-create-theme-section",er),window.removeEventListener("update-interaction-is-select-on-page",ea),window.removeEventListener("update-interaction-item",ed),window.removeEventListener("update-interaction-setting-type",en),window.removeEventListener("update-font-type",z)}),[D,K,W,H,$,G,J,N,R,A,M,V,_,Q,X,Y,Z,ee,eo,er,ed,ea,en,z,ei,et,U]),jsxRuntime.jsx("div",{className:"toolbox"})};var Toolbox$1=react.memo(Toolbox);exports.default=Toolbox$1;
@@ -1 +1 @@
1
- "use strict";var checkOptionFont=require("./helpers/check-option-font.js"),genFonts=require("./helpers/gen-fonts.js");const CHROME_UA="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36",IE_UA="Mozilla/5.0 (Windows NT 10.0; Trident/7.0; rv:11.0) like Gecko";async function getFontForUA(e,t){return fetch(e,{headers:{"User-Agent":t}}).then(e=>200===e.status?e.text():"")}const composeFonts=e=>{let t=e.filter((e,t,n)=>t===n.findIndex(t=>t.family===e.family));return t.map(t=>{let n=e.filter(e=>e.family===t.family).reduce((e,t)=>[...e,...t.variants],[]).filter((e,t,n)=>t===n.findIndex(t=>t===e));return{...t,variants:n}})},handleGenerateFontParams=(e,t="google")=>{let n=[];if(!e.length)return"bunny"===t?"400":"wght@400";e.forEach(e=>{if("string"!=typeof e||e?.includes("italic"))return;let t="regular"===e?"400":e;n.push(t)});let o=n.sort((e,t)=>Number(e)-Number(t)),r=o.map(e=>e);return"google"===t?`wght@${r.join(";")}`:o.join(",")},createFontUrl=(e,t,n="google")=>{let o=e.filter(e=>!(["bunny","google"].includes(e.type)&&checkOptionFont.checkNotInOptionFont(e.family,n||"google"))&&("google"===e.type||"bunny"===e.type||!e.type));if(!o.length)return;let r=new URLSearchParams,l=t?.display||"swap",a=o.filter((e,t,n)=>t===n.findIndex(t=>t.family===e.family)),i=composeFonts(a).map(e=>`${e.family.replace(/ /g,"+")}:${handleGenerateFontParams(e.variants,n)}`).join("google"===n?"&family=":"|");r.append("family",i),r.append("display",l),t?.subset&&r.append("subset",t.subset),t?.effect&&r.append("effect",t.effect);let s=`https://fonts.bunny.net/css?family=${i}`,c=`https://fonts.googleapis.com/css2?${decodeURIComponent(r.toString())}`;return"bunny"===n?s:c};async function getFonts(e,t,n=!0,o){let r=createFontUrl(e,t,o);if(!r)return"";try{if(n)return`@import url('${r}');`;let[e,t]=await Promise.all([getFontForUA(r,"Mozilla/5.0 (Windows NT 10.0; Trident/7.0; rv:11.0) like Gecko"),getFontForUA(r,"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36")]),o=e+t;{let e=new TextEncoder,t=o?e.encode(o).length:0;if(Math.ceil(t/1024)>=50)return`@import url('${r}');`}return o}catch(e){return""}}const getFontFromGlobalStyle=(e,t)=>{if(!e)return"";try{let n=JSON.parse(e),o=n?.font??{},r=Object.entries(o).map(([,e])=>e);return getFonts(r,void 0,void 0,t)}catch{return""}};async function getFontStyleFromPageTemplate(e,t){let n=e.map(e=>getFonts(genFonts.getFontsFromDataBuilder(e.data),void 0,void 0,t));return await Promise.all(n)}exports.composeFonts=composeFonts,exports.createFontUrl=createFontUrl,exports.getFontFromGlobalStyle=getFontFromGlobalStyle,exports.getFontStyleFromPageTemplate=getFontStyleFromPageTemplate,exports.getFonts=getFonts;
1
+ "use strict";var checkOptionFont=require("./helpers/check-option-font.js"),genFonts=require("./helpers/gen-fonts.js"),sentry=require("./helpers/sentry.js");const CHROME_UA="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36",IE_UA="Mozilla/5.0 (Windows NT 10.0; Trident/7.0; rv:11.0) like Gecko";async function getFontForUA(e,t){try{return fetch(e,{headers:{"User-Agent":t}}).then(n=>200===n.status?n.text():(sentry.sentryCaptureException("getFontForUA",`Unexpected status ${n.status}`,{url:e,UA:t}),""))}catch(n){return sentry.sentryCaptureException("getFontForUA","Error fetching font",{url:e,UA:t,error:n}),""}}const composeFonts=e=>{let t=e.filter((e,t,n)=>t===n.findIndex(t=>t.family===e.family));return t.map(t=>{let n=e.filter(e=>e.family===t.family).reduce((e,t)=>[...e,...t.variants],[]).filter((e,t,n)=>t===n.findIndex(t=>t===e));return{...t,variants:n}})},createFontUrl=(e,t,n)=>{let o=e.filter(e=>!(["bunny","google"].includes(e.type)&&checkOptionFont.checkNotInOptionFont(e.family,n||"google"))&&("google"===e.type||"bunny"===e.type||!e.type));if(!o.length)return;let r=new URLSearchParams,s=t?.display||"swap",a=o.filter((e,t,n)=>t===n.findIndex(t=>t.family===e.family)),l=composeFonts(a).map(e=>`${e.family.replace(/ /g,"+")}:${e.variants.join(",")}`).join("|");r.append("family",l),r.append("display",s),t?.subset&&r.append("subset",t.subset),t?.effect&&r.append("effect",t.effect);let i=`https://fonts.bunny.net/css?family=${l}`,c=`https://fonts.googleapis.com/css?${decodeURIComponent(r.toString())}`;return"bunny"===n?i:c};async function getFonts(e,t,n=!0,o){let r=createFontUrl(e,t,o);if(!r)return"";try{if(n)return`@import url('${r}');`;let[e,t]=await Promise.all([getFontForUA(r,"Mozilla/5.0 (Windows NT 10.0; Trident/7.0; rv:11.0) like Gecko"),getFontForUA(r,"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36")]),o=e+t;{let e=new TextEncoder,t=o?e.encode(o).length:0;if(Math.ceil(t/1024)>=50)return`@import url('${r}');`}return o}catch(e){return sentry.sentryCaptureException("getFonts","Error fetching font",{url:r,fontType:o}),""}}const getFontFromGlobalStyle=(e,t)=>{if(!e)return"";try{let n=JSON.parse(e),o=n?.font??{},r=Object.entries(o).map(([,e])=>e);return getFonts(r,void 0,void 0,t)}catch{return""}};async function getFontStyleFromPageTemplate(e,t){let n=e.map(e=>getFonts(genFonts.getFontsFromDataBuilder(e.data),void 0,void 0,t));return await Promise.all(n)}exports.composeFonts=composeFonts,exports.createFontUrl=createFontUrl,exports.getFontFromGlobalStyle=getFontFromGlobalStyle,exports.getFontStyleFromPageTemplate=getFontStyleFromPageTemplate,exports.getFonts=getFonts;
@@ -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 a,useModalStore as d}from"@gem-sdk/core";import{memo as r,useMemo as l,useCallback as s,useEffect as c}from"react";import{getStorefrontApi as m}from"../../libs/get-storefront-api.js";import{createFontUrl as p}from"../../libs/google-fonts.js";import{checkNotInOptionFont as u}from"../../libs/helpers/check-option-font.js";import{genCSS as w}from"../../libs/helpers/gen-css.js";import{getFontsFromDataBuilder as v}from"../../libs/helpers/gen-fonts.js";import{shopifyCdnWithGoogleFonts as y}from"../../libs/shopify-cdn-with-google-fonts.js";import{libsStore as f}from"../../store/libs-store.js";import{getListFontWeightTypos as g}from"../composable/getListFontWeightTypos.js";let globalStyleId="global-style",Toolbox=()=>{let r=t(),h=n(e=>e.provider),E=n(e=>e.changeStorefrontInfo),L=i(e=>e.setDynamicProduct),b=i(e=>e.setPostPurchaseProductOffers),S=i(e=>e.setDynamicDiscountOffer),I=i(e=>e.setSalePageProductId),T=i(e=>e.setDynamicCollection),P=o(e=>e.initState),j=o(e=>e.state),C=o(e=>e.forceChangeState),N=o(e=>e.forceChangeItemProp),x=o(e=>e.changeItemPropByKey),A=o(e=>e.addItem),O=o(e=>e.moveItem),$=o(e=>e.removeItem),k=a(e=>e.addSection),q=n(e=>e.changeSwatches),D=o(e=>e.updateItemName),H=o(e=>e.updateItemAttribute),M=n(e=>e.changeLayoutSettings),B=n(e=>e.changeCreateThemeSectionCount),F=n(e=>e.changeShopPlan),J=n(e=>e.updatePriceWithCurrency),V=f(e=>e.changeFontType),W=f(e=>e.fontType),K=d(e=>e.clearModal),z=n(e=>e.changeLimitCreateThemeSection),G=i(e=>e.setInteractionIsSelectOnPage),Q=i(e=>e.setInteractionItem),R=i(e=>e.setInteractionSelectType),U=i(e=>e.setInteractionSettingType),X=i(e=>e.setSidebarMode),Y=l(()=>v(j),[j]),Z=(e,t)=>{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");if(n&&i){let o=t.find(e=>e.family==n&&e.variants.includes(i));o||e.remove()}else e.remove()}),t))if(!(["bunny","google"].includes(i.type)&&u(i.family,W))&&"custom"!==i.type&&i.variants?.length)for(let t of i.variants){let n=JSON.parse(JSON.stringify(i));n.variants=[t];let o=n.family,a=p([n],void 0,W);if(a){let n=document.querySelector(`.${e}[data-font="${o}"][data-font-variant="${t}"]`);if(n)continue;{let n=document.createElement("link");n.className=e,n.dataset.font=o,n.dataset.fontVariant=t,n.href=a,n.rel="stylesheet",document.head.appendChild(n)}}}},_=s(()=>{r(/query\//,{revalidate:!0})},[r]),ee=s(e=>{let t=e.detail;E({url:t.shopHandle?m(t.shopHandle,h):void 0,token:t.shopToken})},[E,h]),et=s(e=>{let t=e.detail;try{if(t.data){let e=w(t.data,t.mobileOnly),n=g(t.data?.typography),i=Object.entries(t.data?.font).map(([,e])=>({...e,variants:e.variants.filter(e=>n.includes(e)||"regular"===e&&n.includes("400")).map(e=>"regular"===e?"400":e)})).map(e=>{if("custom"==e.type){let t=y.find(t=>t.family==e.family);if(t)return t}return e}),o=document.getElementById(globalStyleId);if(Z("google-font-builder",i),o)o.innerHTML=e;else{let t=document.createElement("style");t.id=globalStyleId,t.innerHTML=e,document.head.appendChild(t)}}}catch{}},[]),en=s(e=>{K();try{let t=e.detail;t.data&&("flat"===t.type?C(t.data):P(t.data))}catch{}},[C,P,K]),ei=s(e=>{try{let t=e.detail;t.entity&&(A({data:t.entity,id:t.id,position:t.position,type:t.type??"component"}),t?.type!=="section"||Array.isArray(t.entity)||k(t.entity.uid,t.entity))}catch{}},[A,k]),eo=s(e=>{try{let t=e.detail;t.uid&&t.propName&&x({id:t.uid,key:t.propName,data:t.propValue,group:t.group})}catch{}},[x]),ea=s(e=>{try{let t=e.detail;t.uid&&N(t.uid,t.data,t.group)}catch{}},[N]),ed=s(e=>{try{let t=e.detail;t.to&&t.uid&&O(t.uid,t.to,Number(t.position)??0)}catch{}},[O]),er=s(e=>{try{let t=e.detail;t.uid&&$(t.uid)}catch{}},[$]),el=s(e=>{let t=e.detail;try{t.data&&q(t.data)}catch{}},[q]),es=s(e=>{let t=e.detail;t&&M(t)},[M]),ec=s(e=>{let t=e.detail;t&&B(t)},[B]),em=s(e=>{let t=e.detail;t&&F(t)},[F]),ep=s(e=>{let t=e.detail;t&&J(t)},[J]),eu=s(e=>{let t=e.detail;t&&V(t)},[V]),ew=s(e=>{let t=e.detail;t&&L(t)},[L]),ev=s(e=>{let t=e.detail;t&&T(t)},[T]);c(()=>{Y&&Z("google-font-element",Y)},[Y]);let ey=s(e=>{let t=e.detail;t.uid&&D(t.uid,t.name||"")},[D]),ef=s(e=>{let t=e.detail;t.uid&&H(t.uid,t.value||"",t.attr||"")},[H]),eg=s(e=>{let t=e.detail;t?.length&&b(t)},[b]),eh=s(e=>{let t=e.detail;t&&S(t)},[S]),eE=s(e=>{let t=e.detail;t&&I(t)},[I]),eL=s(e=>{let t=e.detail;t&&z(t)},[z]),eb=s(e=>{let t=e.detail.value,n=e.detail.mode,i=e.detail.settingType;G(t),R(n),U(i)},[G,R,U]),eS=s(e=>{let t=e.detail.settingType;U(t)},[U]),eI=s(e=>{let t=e.detail.mode;console.log(t),X(t)},[X]),eT=s(e=>{let t=e.detail;Q(t)},[Q]);return c(()=>{Y&&Z("google-font-element",Y)},[Y]),c(()=>(window.addEventListener("update-shop-info",ee),window.addEventListener("revalidate-query",_),window.addEventListener("init-builder",en),window.addEventListener("add-entity",ei),window.addEventListener("remove-entity",er),window.addEventListener("move-entity",ed),window.addEventListener("force-update-entity-props",ea),window.addEventListener("update-entity-prop",eo),window.addEventListener("set-global-style",et),window.addEventListener("update-global-swatches-data",el),window.addEventListener("on-off-header-footer",es),window.addEventListener("update-create-theme-section-count",ec),window.addEventListener("update-shop-plan",em),window.addEventListener("set-dynamic-product",ew),window.addEventListener("set-dynamic-collection",ev),window.addEventListener("update-item-name",ey),window.addEventListener("update-item-attribute",ef),window.addEventListener("set-product-offer",eg),window.addEventListener("set-dynamic-discount-offer",eh),window.addEventListener("update-sale-page-product-id",eE),window.addEventListener("limit-create-theme-section",eL),window.addEventListener("update-interaction-is-select-on-page",eb),window.addEventListener("update-interaction-item",eT),window.addEventListener("update-interaction-setting-type",eS),window.addEventListener("change-sidebar-mode",eI),window.addEventListener("update-font-type",eu),window.addEventListener("update-price-with-currency",ep),()=>{window.removeEventListener("update-shop-info",ee),window.removeEventListener("revalidate-query",_),window.removeEventListener("init-builder",en),window.removeEventListener("add-entity",ei),window.removeEventListener("remove-entity",er),window.removeEventListener("move-entity",ed),window.removeEventListener("update-entity-prop",eo),window.removeEventListener("set-global-style",et),window.removeEventListener("update-global-swatches-data",el),window.removeEventListener("on-off-header-footer",es),window.removeEventListener("update-create-theme-section-count",ec),window.removeEventListener("update-shop-plan",em),window.removeEventListener("update-price-with-currency",ep),window.removeEventListener("set-dynamic-product",ew),window.removeEventListener("set-dynamic-collection",ev),window.removeEventListener("update-item-name",ey),window.removeEventListener("update-item-attribute",ef),window.removeEventListener("set-product-offer",eg),window.removeEventListener("update-sale-page-product-id",eE),window.removeEventListener("limit-create-theme-section",eL),window.removeEventListener("update-interaction-is-select-on-page",eb),window.removeEventListener("update-interaction-item",eT),window.removeEventListener("update-interaction-setting-type",eS),window.removeEventListener("update-font-type",eu)}),[ei,em,ea,eo,en,ed,er,et,el,_,ee,es,ec,ew,ev,ey,ef,eg,eE,eL,eT,eb,eS,eu,eI,eh,ep]),e("div",{className:"toolbox"})};var Toolbox$1=r(Toolbox);export{Toolbox$1 as default};
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 m}from"../../libs/get-storefront-api.js";import{createFontUrl as p}from"../../libs/google-fonts.js";import{genCSS as w}from"../../libs/helpers/gen-css.js";import{getFontsFromDataBuilder as u}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",Toolbox=()=>{let r=t(),h=n(e=>e.provider),g=n(e=>e.changeStorefrontInfo),E=i(e=>e.setDynamicProduct),L=i(e=>e.setPostPurchaseProductOffers),b=i(e=>e.setDynamicDiscountOffer),S=i(e=>e.setSalePageProductId),I=i(e=>e.setDynamicCollection),T=o(e=>e.initState),P=o(e=>e.state),j=o(e=>e.forceChangeState),C=o(e=>e.forceChangeItemProp),N=o(e=>e.changeItemPropByKey),x=o(e=>e.addItem),A=o(e=>e.moveItem),O=o(e=>e.removeItem),$=d(e=>e.addSection),k=n(e=>e.changeSwatches),q=o(e=>e.updateItemName),D=o(e=>e.updateItemAttribute),H=n(e=>e.changeLayoutSettings),M=n(e=>e.changeCreateThemeSectionCount),B=n(e=>e.changeShopPlan),J=n(e=>e.updatePriceWithCurrency),V=y(e=>e.changeFontType),F=y(e=>e.fontType),K=a(e=>e.clearModal),W=n(e=>e.changeLimitCreateThemeSection),z=i(e=>e.setInteractionIsSelectOnPage),G=i(e=>e.setInteractionItem),Q=i(e=>e.setInteractionSelectType),R=i(e=>e.setInteractionSettingType),U=i(e=>e.setSidebarMode),X=l(()=>u(P),[P]),Y=(e,t)=>{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");if(n&&i){let o=t.find(e=>e.family==n&&e.variants.includes(i));o||e.remove()}else e.remove()}),t))if(!(["bunny","google"].includes(i.type)&&f(i.family,F))&&"custom"!==i.type&&i.variants?.length)for(let t of i.variants){let n=JSON.parse(JSON.stringify(i));n.variants=[t];let o=n.family,d=p([n],void 0,F);if(d){let n=document.querySelector(`.${e}[data-font="${o}"][data-font-variant="${t}"]`);if(n)continue;{let n=document.createElement("link");n.className=e,n.dataset.font=o,n.dataset.fontVariant=t,n.href=d,n.rel="stylesheet",document.head.appendChild(n)}}}},Z=s(()=>{r(/query\//,{revalidate:!0})},[r]),_=s(e=>{let t=e.detail;g({url:t.shopHandle?m(t.shopHandle,h):void 0,token:t.shopToken})},[g,h]),ee=s(e=>{let t=e.detail;try{if(t.data){let e=w(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(Y("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{}},[]),et=s(e=>{K();try{let t=e.detail;t.data&&("flat"===t.type?j(t.data):T(t.data))}catch{}},[j,T,K]),en=s(e=>{try{let t=e.detail;t.entity&&(x({data:t.entity,id:t.id,position:t.position,type:t.type??"component"}),t?.type!=="section"||Array.isArray(t.entity)||$(t.entity.uid,t.entity))}catch{}},[x,$]),ei=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]),eo=s(e=>{try{let t=e.detail;t.uid&&C(t.uid,t.data,t.group)}catch{}},[C]),ed=s(e=>{try{let t=e.detail;t.to&&t.uid&&A(t.uid,t.to,Number(t.position)??0)}catch{}},[A]),ea=s(e=>{try{let t=e.detail;t.uid&&O(t.uid)}catch{}},[O]),er=s(e=>{let t=e.detail;try{t.data&&k(t.data)}catch{}},[k]),el=s(e=>{let t=e.detail;t&&H(t)},[H]),es=s(e=>{let t=e.detail;t&&M(t)},[M]),ec=s(e=>{let t=e.detail;t&&B(t)},[B]),em=s(e=>{let t=e.detail;t&&J(t)},[J]),ep=s(e=>{let t=e.detail;t&&V(t)},[V]),ew=s(e=>{let t=e.detail;t&&E(t)},[E]),eu=s(e=>{let t=e.detail;t&&I(t)},[I]);c(()=>{X&&Y("google-font-element",X)},[X]);let ev=s(e=>{let t=e.detail;t.uid&&q(t.uid,t.name||"")},[q]),ey=s(e=>{let t=e.detail;t.uid&&D(t.uid,t.value||"",t.attr||"")},[D]),ef=s(e=>{let t=e.detail;t?.length&&L(t)},[L]),eh=s(e=>{let t=e.detail;t&&b(t)},[b]),eg=s(e=>{let t=e.detail;t&&S(t)},[S]),eE=s(e=>{let t=e.detail;t&&W(t)},[W]),eL=s(e=>{let t=e.detail.value,n=e.detail.mode,i=e.detail.settingType;z(t),Q(n),R(i)},[z,Q,R]),eb=s(e=>{let t=e.detail.settingType;R(t)},[R]),eS=s(e=>{let t=e.detail.mode;console.log(t),U(t)},[U]),eI=s(e=>{let t=e.detail;G(t)},[G]);return c(()=>{X&&Y("google-font-element",X)},[X]),c(()=>(window.addEventListener("update-shop-info",_),window.addEventListener("revalidate-query",Z),window.addEventListener("init-builder",et),window.addEventListener("add-entity",en),window.addEventListener("remove-entity",ea),window.addEventListener("move-entity",ed),window.addEventListener("force-update-entity-props",eo),window.addEventListener("update-entity-prop",ei),window.addEventListener("set-global-style",ee),window.addEventListener("update-global-swatches-data",er),window.addEventListener("on-off-header-footer",el),window.addEventListener("update-create-theme-section-count",es),window.addEventListener("update-shop-plan",ec),window.addEventListener("set-dynamic-product",ew),window.addEventListener("set-dynamic-collection",eu),window.addEventListener("update-item-name",ev),window.addEventListener("update-item-attribute",ey),window.addEventListener("set-product-offer",ef),window.addEventListener("set-dynamic-discount-offer",eh),window.addEventListener("update-sale-page-product-id",eg),window.addEventListener("limit-create-theme-section",eE),window.addEventListener("update-interaction-is-select-on-page",eL),window.addEventListener("update-interaction-item",eI),window.addEventListener("update-interaction-setting-type",eb),window.addEventListener("change-sidebar-mode",eS),window.addEventListener("update-font-type",ep),window.addEventListener("update-price-with-currency",em),()=>{window.removeEventListener("update-shop-info",_),window.removeEventListener("revalidate-query",Z),window.removeEventListener("init-builder",et),window.removeEventListener("add-entity",en),window.removeEventListener("remove-entity",ea),window.removeEventListener("move-entity",ed),window.removeEventListener("update-entity-prop",ei),window.removeEventListener("set-global-style",ee),window.removeEventListener("update-global-swatches-data",er),window.removeEventListener("on-off-header-footer",el),window.removeEventListener("update-create-theme-section-count",es),window.removeEventListener("update-shop-plan",ec),window.removeEventListener("update-price-with-currency",em),window.removeEventListener("set-dynamic-product",ew),window.removeEventListener("set-dynamic-collection",eu),window.removeEventListener("update-item-name",ev),window.removeEventListener("update-item-attribute",ey),window.removeEventListener("set-product-offer",ef),window.removeEventListener("update-sale-page-product-id",eg),window.removeEventListener("limit-create-theme-section",eE),window.removeEventListener("update-interaction-is-select-on-page",eL),window.removeEventListener("update-interaction-item",eI),window.removeEventListener("update-interaction-setting-type",eb),window.removeEventListener("update-font-type",ep)}),[en,ec,eo,ei,et,ed,ea,ee,er,Z,_,el,es,ew,eu,ev,ey,ef,eg,eE,eI,eL,eb,ep,eS,eh,em]),e("div",{className:"toolbox"})};var Toolbox$1=r(Toolbox);export{Toolbox$1 as default};
@@ -1 +1 @@
1
- import{checkNotInOptionFont as e}from"./helpers/check-option-font.js";import{getFontsFromDataBuilder as t}from"./helpers/gen-fonts.js";let CHROME_UA="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36",IE_UA="Mozilla/5.0 (Windows NT 10.0; Trident/7.0; rv:11.0) like Gecko";async function getFontForUA(e,t){return fetch(e,{headers:{"User-Agent":t}}).then(e=>200===e.status?e.text():"")}let composeFonts=e=>{let t=e.filter((e,t,n)=>t===n.findIndex(t=>t.family===e.family));return t.map(t=>{let n=e.filter(e=>e.family===t.family).reduce((e,t)=>[...e,...t.variants],[]).filter((e,t,n)=>t===n.findIndex(t=>t===e));return{...t,variants:n}})},handleGenerateFontParams=(e,t="google")=>{let n=[];if(!e.length)return"bunny"===t?"400":"wght@400";e.forEach(e=>{if("string"!=typeof e||e?.includes("italic"))return;let t="regular"===e?"400":e;n.push(t)});let o=n.sort((e,t)=>Number(e)-Number(t)),r=o.map(e=>e);return"google"===t?`wght@${r.join(";")}`:o.join(",")},createFontUrl=(t,n,o="google")=>{let r=t.filter(t=>!(["bunny","google"].includes(t.type)&&e(t.family,o||"google"))&&("google"===t.type||"bunny"===t.type||!t.type));if(!r.length)return;let l=new URLSearchParams,a=n?.display||"swap",i=r.filter((e,t,n)=>t===n.findIndex(t=>t.family===e.family)),s=composeFonts(i).map(e=>`${e.family.replace(/ /g,"+")}:${handleGenerateFontParams(e.variants,o)}`).join("google"===o?"&family=":"|");l.append("family",s),l.append("display",a),n?.subset&&l.append("subset",n.subset),n?.effect&&l.append("effect",n.effect);let f=`https://fonts.bunny.net/css?family=${s}`,c=`https://fonts.googleapis.com/css2?${decodeURIComponent(l.toString())}`;return"bunny"===o?f:c};async function getFonts(e,t,n=!0,o){let r=createFontUrl(e,t,o);if(!r)return"";try{if(n)return`@import url('${r}');`;let[e,t]=await Promise.all([getFontForUA(r,"Mozilla/5.0 (Windows NT 10.0; Trident/7.0; rv:11.0) like Gecko"),getFontForUA(r,"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36")]),o=e+t;{let e=new TextEncoder,t=o?e.encode(o).length:0;if(Math.ceil(t/1024)>=50)return`@import url('${r}');`}return o}catch(e){return""}}let getFontFromGlobalStyle=(e,t)=>{if(!e)return"";try{let n=JSON.parse(e),o=n?.font??{},r=Object.entries(o).map(([,e])=>e);return getFonts(r,void 0,void 0,t)}catch{return""}};async function getFontStyleFromPageTemplate(e,n){let o=e.map(e=>getFonts(t(e.data),void 0,void 0,n));return await Promise.all(o)}export{composeFonts,createFontUrl,getFontFromGlobalStyle,getFontStyleFromPageTemplate,getFonts};
1
+ import{checkNotInOptionFont as e}from"./helpers/check-option-font.js";import{getFontsFromDataBuilder as t}from"./helpers/gen-fonts.js";import{sentryCaptureException as n}from"./helpers/sentry.js";let CHROME_UA="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36",IE_UA="Mozilla/5.0 (Windows NT 10.0; Trident/7.0; rv:11.0) like Gecko";async function getFontForUA(e,t){try{return fetch(e,{headers:{"User-Agent":t}}).then(o=>200===o.status?o.text():(n("getFontForUA",`Unexpected status ${o.status}`,{url:e,UA:t}),""))}catch(o){return n("getFontForUA","Error fetching font",{url:e,UA:t,error:o}),""}}let composeFonts=e=>{let t=e.filter((e,t,n)=>t===n.findIndex(t=>t.family===e.family));return t.map(t=>{let n=e.filter(e=>e.family===t.family).reduce((e,t)=>[...e,...t.variants],[]).filter((e,t,n)=>t===n.findIndex(t=>t===e));return{...t,variants:n}})},createFontUrl=(t,n,o)=>{let r=t.filter(t=>!(["bunny","google"].includes(t.type)&&e(t.family,o||"google"))&&("google"===t.type||"bunny"===t.type||!t.type));if(!r.length)return;let l=new URLSearchParams,a=n?.display||"swap",i=r.filter((e,t,n)=>t===n.findIndex(t=>t.family===e.family)),s=composeFonts(i).map(e=>`${e.family.replace(/ /g,"+")}:${e.variants.join(",")}`).join("|");l.append("family",s),l.append("display",a),n?.subset&&l.append("subset",n.subset),n?.effect&&l.append("effect",n.effect);let c=`https://fonts.bunny.net/css?family=${s}`,f=`https://fonts.googleapis.com/css?${decodeURIComponent(l.toString())}`;return"bunny"===o?c:f};async function getFonts(e,t,o=!0,r){let l=createFontUrl(e,t,r);if(!l)return"";try{if(o)return`@import url('${l}');`;let[e,t]=await Promise.all([getFontForUA(l,"Mozilla/5.0 (Windows NT 10.0; Trident/7.0; rv:11.0) like Gecko"),getFontForUA(l,"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36")]),n=e+t;{let e=new TextEncoder,t=n?e.encode(n).length:0;if(Math.ceil(t/1024)>=50)return`@import url('${l}');`}return n}catch(e){return n("getFonts","Error fetching font",{url:l,fontType:r}),""}}let getFontFromGlobalStyle=(e,t)=>{if(!e)return"";try{let n=JSON.parse(e),o=n?.font??{},r=Object.entries(o).map(([,e])=>e);return getFonts(r,void 0,void 0,t)}catch{return""}};async function getFontStyleFromPageTemplate(e,n){let o=e.map(e=>getFonts(t(e.data),void 0,void 0,n));return await Promise.all(o)}export{composeFonts,createFontUrl,getFontFromGlobalStyle,getFontStyleFromPageTemplate,getFonts};
@@ -143,7 +143,7 @@ declare const usePagePreview: (dataBuilder: ThemePageQueryResponse['themePage'],
143
143
  mobileOnly: boolean;
144
144
  locale: string | null;
145
145
  languageIsoCode: ("ID" | "AF" | "AM" | "AR" | "AZ" | "BE" | "BG" | "BM" | "BN" | "BO" | "BR" | "BS" | "CA" | "CU" | "CY" | "DE" | "DZ" | "EE" | "ES" | "ET" | "FI" | "FO" | "FR" | "GA" | "GD" | "GL" | "HR" | "HU" | "IS" | "IT" | "KI" | "KM" | "KN" | "KW" | "KY" | "LA" | "LB" | "LT" | "LU" | "LV" | "MG" | "MK" | "ML" | "MN" | "MO" | "MR" | "MS" | "MT" | "MY" | "NE" | "NL" | "NO" | "OM" | "PA" | "PL" | "PS" | "PT" | "RO" | "RU" | "RW" | "SA" | "SC" | "SD" | "SE" | "SG" | "SH" | "SI" | "SK" | "SL" | "SN" | "SO" | "SR" | "SV" | "TA" | "TG" | "TH" | "TK" | "TO" | "TR" | "TT" | "UG" | "UZ" | "AK" | "AS" | "CE" | "CKB" | "CS" | "DA" | "EL" | "EN" | "EO" | "EU" | "FA" | "FF" | "FIL" | "FY" | "GU" | "GV" | "HA" | "HE" | "HI" | "HY" | "IA" | "IG" | "II" | "JA" | "JV" | "KA" | "KK" | "KL" | "KO" | "KS" | "KU" | "LG" | "LN" | "LO" | "MI" | "NB" | "ND" | "NN" | "OR" | "OS" | "PT_BR" | "PT_PT" | "QU" | "RM" | "RN" | "SQ" | "SU" | "SW" | "TE" | "TI" | "UK" | "UR" | "VI" | "VO" | "WO" | "XH" | "YI" | "YO" | "ZH" | "ZH_CN" | "ZH_TW" | "ZU") | null;
146
- countryIsoCode: ("ID" | "AC" | "AD" | "AE" | "AF" | "AG" | "AI" | "AL" | "AM" | "AN" | "AO" | "AR" | "AT" | "AU" | "AW" | "AX" | "AZ" | "BA" | "BB" | "BD" | "BE" | "BF" | "BG" | "BH" | "BI" | "BJ" | "BL" | "BM" | "BN" | "BO" | "BQ" | "BR" | "BS" | "BT" | "BV" | "BW" | "BY" | "BZ" | "CA" | "CC" | "CD" | "CF" | "CG" | "CH" | "CI" | "CK" | "CL" | "CM" | "CN" | "CO" | "CR" | "CU" | "CV" | "CW" | "CX" | "CY" | "CZ" | "DE" | "DJ" | "DK" | "DM" | "DO" | "DZ" | "EC" | "EE" | "EG" | "EH" | "ER" | "ES" | "ET" | "FI" | "FJ" | "FK" | "FO" | "FR" | "GA" | "GB" | "GD" | "GE" | "GF" | "GG" | "GH" | "GI" | "GL" | "GM" | "GN" | "GP" | "GQ" | "GR" | "GS" | "GT" | "GW" | "GY" | "HK" | "HM" | "HN" | "HR" | "HT" | "HU" | "IE" | "IL" | "IM" | "IN" | "IO" | "IQ" | "IR" | "IS" | "IT" | "JE" | "JM" | "JO" | "JP" | "KE" | "KG" | "KH" | "KI" | "KM" | "KN" | "KP" | "KR" | "KW" | "KY" | "KZ" | "LA" | "LB" | "LC" | "LI" | "LK" | "LR" | "LS" | "LT" | "LU" | "LV" | "LY" | "MA" | "MC" | "MD" | "ME" | "MF" | "MG" | "MK" | "ML" | "MM" | "MN" | "MO" | "MQ" | "MR" | "MS" | "MT" | "MU" | "MV" | "MW" | "MX" | "MY" | "MZ" | "NA" | "NC" | "NE" | "NF" | "NG" | "NI" | "NL" | "NO" | "NP" | "NR" | "NU" | "NZ" | "OM" | "PA" | "PE" | "PF" | "PG" | "PH" | "PK" | "PL" | "PM" | "PN" | "PS" | "PT" | "PY" | "QA" | "RE" | "RO" | "RS" | "RU" | "RW" | "SA" | "SB" | "SC" | "SD" | "SE" | "SG" | "SH" | "SI" | "SJ" | "SK" | "SL" | "SM" | "SN" | "SO" | "SR" | "SS" | "ST" | "SV" | "SX" | "SY" | "SZ" | "TA" | "TC" | "TD" | "TF" | "TG" | "TH" | "TJ" | "TK" | "TL" | "TM" | "TN" | "TO" | "TR" | "TT" | "TV" | "TW" | "TZ" | "UA" | "UG" | "UM" | "US" | "UY" | "UZ" | "VA" | "VC" | "VE" | "VG" | "VN" | "VU" | "WF" | "WS" | "XK" | "YE" | "YT" | "ZA" | "ZM" | "ZW" | "ZZ") | null;
146
+ countryIsoCode: ("ID" | "UA" | "AC" | "AD" | "AE" | "AF" | "AG" | "AI" | "AL" | "AM" | "AN" | "AO" | "AR" | "AT" | "AU" | "AW" | "AX" | "AZ" | "BA" | "BB" | "BD" | "BE" | "BF" | "BG" | "BH" | "BI" | "BJ" | "BL" | "BM" | "BN" | "BO" | "BQ" | "BR" | "BS" | "BT" | "BV" | "BW" | "BY" | "BZ" | "CA" | "CC" | "CD" | "CF" | "CG" | "CH" | "CI" | "CK" | "CL" | "CM" | "CN" | "CO" | "CR" | "CU" | "CV" | "CW" | "CX" | "CY" | "CZ" | "DE" | "DJ" | "DK" | "DM" | "DO" | "DZ" | "EC" | "EE" | "EG" | "EH" | "ER" | "ES" | "ET" | "FI" | "FJ" | "FK" | "FO" | "FR" | "GA" | "GB" | "GD" | "GE" | "GF" | "GG" | "GH" | "GI" | "GL" | "GM" | "GN" | "GP" | "GQ" | "GR" | "GS" | "GT" | "GW" | "GY" | "HK" | "HM" | "HN" | "HR" | "HT" | "HU" | "IE" | "IL" | "IM" | "IN" | "IO" | "IQ" | "IR" | "IS" | "IT" | "JE" | "JM" | "JO" | "JP" | "KE" | "KG" | "KH" | "KI" | "KM" | "KN" | "KP" | "KR" | "KW" | "KY" | "KZ" | "LA" | "LB" | "LC" | "LI" | "LK" | "LR" | "LS" | "LT" | "LU" | "LV" | "LY" | "MA" | "MC" | "MD" | "ME" | "MF" | "MG" | "MK" | "ML" | "MM" | "MN" | "MO" | "MQ" | "MR" | "MS" | "MT" | "MU" | "MV" | "MW" | "MX" | "MY" | "MZ" | "NA" | "NC" | "NE" | "NF" | "NG" | "NI" | "NL" | "NO" | "NP" | "NR" | "NU" | "NZ" | "OM" | "PA" | "PE" | "PF" | "PG" | "PH" | "PK" | "PL" | "PM" | "PN" | "PS" | "PT" | "PY" | "QA" | "RE" | "RO" | "RS" | "RU" | "RW" | "SA" | "SB" | "SC" | "SD" | "SE" | "SG" | "SH" | "SI" | "SJ" | "SK" | "SL" | "SM" | "SN" | "SO" | "SR" | "SS" | "ST" | "SV" | "SX" | "SY" | "SZ" | "TA" | "TC" | "TD" | "TF" | "TG" | "TH" | "TJ" | "TK" | "TL" | "TM" | "TN" | "TO" | "TR" | "TT" | "TV" | "TW" | "TZ" | "UG" | "UM" | "US" | "UY" | "UZ" | "VA" | "VC" | "VE" | "VG" | "VN" | "VU" | "WF" | "WS" | "XK" | "YE" | "YT" | "ZA" | "ZM" | "ZW" | "ZZ") | null;
147
147
  moneyFormat: string | null;
148
148
  currency: ("AED" | "AFN" | "ALL" | "AMD" | "ANG" | "AOA" | "ARS" | "AUD" | "AWG" | "AZN" | "BAM" | "BBD" | "BDT" | "BGN" | "BHD" | "BIF" | "BMD" | "BND" | "BOB" | "BRL" | "BSD" | "BTN" | "BWP" | "BYN" | "BYR" | "BZD" | "CAD" | "CDF" | "CHF" | "CLP" | "CNY" | "COP" | "CRC" | "CVE" | "CZK" | "DJF" | "DKK" | "DOP" | "DZD" | "EGP" | "ERN" | "ETB" | "EUR" | "FJD" | "FKP" | "GBP" | "GEL" | "GHS" | "GIP" | "GMD" | "GNF" | "GTQ" | "GYD" | "HKD" | "HNL" | "HRK" | "HTG" | "HUF" | "IDR" | "ILS" | "INR" | "IQD" | "IRR" | "ISK" | "JEP" | "JMD" | "JOD" | "JPY" | "KES" | "KGS" | "KHR" | "KID" | "KMF" | "KRW" | "KWD" | "KYD" | "KZT" | "LAK" | "LBP" | "LKR" | "LRD" | "LSL" | "LTL" | "LVL" | "LYD" | "MAD" | "MDL" | "MGA" | "MKD" | "MMK" | "MNT" | "MOP" | "MRU" | "MUR" | "MVR" | "MWK" | "MXN" | "MYR" | "MZN" | "NAD" | "NGN" | "NIO" | "NOK" | "NPR" | "NZD" | "OMR" | "PAB" | "PEN" | "PGK" | "PHP" | "PKR" | "PLN" | "PYG" | "QAR" | "RON" | "RSD" | "RUB" | "RWF" | "SAR" | "SBD" | "SCR" | "SDG" | "SEK" | "SGD" | "SHP" | "SLL" | "SOS" | "SRD" | "SSP" | "STD" | "STN" | "SYP" | "SZL" | "THB" | "TJS" | "TMT" | "TND" | "TOP" | "TRY" | "TTD" | "TWD" | "TZS" | "UAH" | "UGX" | "USD" | "UYU" | "UZS" | "VED" | "VEF" | "VES" | "VND" | "VUV" | "WST" | "XAF" | "XCD" | "XOF" | "XPF" | "XXX" | "YER" | "ZAR" | "ZMW") | null;
149
149
  swatches: any;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gem-sdk/pages",
3
- "version": "2.0.0-staging.1067",
3
+ "version": "2.0.0-staging.1071",
4
4
  "license": "MIT",
5
5
  "sideEffects": false,
6
6
  "main": "dist/cjs/index.js",
@@ -1 +0,0 @@
1
- "use strict";const getListFontWeightTypos=t=>{let e=new Set;return Object.values(t).forEach(t=>{t.desktop?.fontWeight&&e.add(t.desktop.fontWeight)}),Array.from(e)};exports.getListFontWeightTypos=getListFontWeightTypos;
@@ -1 +0,0 @@
1
- let getListFontWeightTypos=t=>{let e=new Set;return Object.values(t).forEach(t=>{t.desktop?.fontWeight&&e.add(t.desktop.fontWeight)}),Array.from(e)};export{getListFontWeightTypos};