product-button.js
10.9 KB
(window.webpackWcBlocksJsonp=window.webpackWcBlocksJsonp||[]).push([[21],{134:function(t,e,r){"use strict";r.d(e,"a",(function(){return a}));var c=r(5),n=r(55),o=r(33),s=r(99);const a=t=>{if(!Object(n.b)())return{className:"",style:{}};const e=Object(o.a)(t)?t:{},r=Object(s.a)(e.style);return Object(c.__experimentalUseBorderProps)({...e,style:r})}},167:function(t,e,r){"use strict";r.d(e,"a",(function(){return d}));var c=r(0),n=r(7),o=r(10),s=r(15),a=r(41);const i=(t,e)=>{const r=t.find(t=>{let{id:r}=t;return r===e});return r?r.quantity:0},d=t=>{const{addItemToCart:e}=Object(n.useDispatch)(o.CART_STORE_KEY),{cartItems:r,cartIsLoading:d}=Object(a.a)(),{createErrorNotice:l,removeNotice:u}=Object(n.useDispatch)("core/notices"),[b,p]=Object(c.useState)(!1),_=Object(c.useRef)(i(r,t));return Object(c.useEffect)(()=>{const e=i(r,t);e!==_.current&&(_.current=e)},[r,t]),{cartQuantity:Number.isFinite(_.current)?_.current:0,addingToCart:b,cartIsLoading:d,addToCart:function(){let r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;return p(!0),e(t,r).then(()=>{u("add-to-cart")}).catch(t=>{l(Object(s.decodeEntities)(t.message),{id:"add-to-cart",context:"wc/all-products",isDismissible:!0})}).finally(()=>{p(!1)})}}}},212:function(t,e,r){"use strict";r.r(e),r.d(e,"Block",(function(){return h}));var c=r(6),n=r.n(c),o=r(0),s=r(4),a=r.n(s),i=r(1),d=r(70),l=r(167),u=r(100),b=r(134),p=r(87),_=r(133),m=r(15),g=r(20),y=r(2),O=r(23),E=r(42);r(264);const h=t=>{const{className:e}=t,{parentClassName:r}=Object(O.useInnerBlockLayoutContext)(),{product:c}=Object(O.useProductDataContext)(),n=Object(u.a)(t),s=Object(b.a)(t),i=Object(p.a)(t),d=Object(_.a)(t),{textAlign:l}=t;return Object(o.createElement)("div",{className:a()(e,"wp-block-button","wc-block-components-product-button",{[r+"__product-add-to-cart"]:r},{["has-text-align-"+l]:l})},c.id?Object(o.createElement)(w,{product:c,colorStyles:n,borderStyles:s,typographyStyles:i,spacingStyles:d}):Object(o.createElement)(S,{colorStyles:n,borderStyles:s,typographyStyles:i,spacingStyles:d}))},w=t=>{let{product:e,colorStyles:r,borderStyles:c,typographyStyles:s,spacingStyles:u,textAlign:b}=t;const{id:p,permalink:_,add_to_cart:O,has_options:E,is_purchasable:h,is_in_stock:w}=e,{dispatchStoreEvent:S}=Object(d.a)(),{cartQuantity:f,addingToCart:C,addToCart:j}=Object(l.a)(p,"woocommerce/single-product/"+(p||0)),v=Number.isFinite(f)&&f>0,R=!E&&h&&w,T=Object(m.decodeEntities)((null==O?void 0:O.description)||""),k=v?Object(i.sprintf)(
/* translators: %s number of products in cart. */
Object(i._n)("%d in cart","%d in cart",f,"woocommerce"),f):Object(m.decodeEntities)((null==O?void 0:O.text)||Object(i.__)("Add to cart","woocommerce")),P=R?"button":"a",A={};return R?A.onClick=async()=>{await j(),S("cart-add-item",{product:e});const{cartRedirectAfterAdd:t}=Object(y.getSetting)("productsSettings");t&&(window.location.href=g.d)}:(A.href=_,A.rel="nofollow",A.onClick=()=>{S("product-view-link",{product:e})}),Object(o.createElement)(P,n()({"aria-label":T,className:a()("wp-block-button__link","wp-element-button","add_to_cart_button","wc-block-components-product-button__button",r.className,c.className,{loading:C,added:v},{["has-text-align-"+b]:b}),style:{...r.style,...c.style,...s.style,...u.style},disabled:C},A),k)},S=t=>{let{colorStyles:e,borderStyles:r,typographyStyles:c,spacingStyles:n}=t;return Object(o.createElement)("button",{className:a()("wp-block-button__link","wp-element-button","add_to_cart_button","wc-block-components-product-button__button","wc-block-components-product-button__button--placeholder",e.className,r.className),style:{...e.style,...r.style,...c.style,...n.style},disabled:!0})};e.default=Object(E.withProductDataContext)(h)},257:function(t,e,r){"use strict";r.d(e,"b",(function(){return o})),r.d(e,"a",(function(){return s}));const c=window.CustomEvent||null,n=(t,e)=>{let{bubbles:r=!1,cancelable:n=!1,element:o,detail:s={}}=e;if(!c)return;o||(o=document.body);const a=new c(t,{bubbles:r,cancelable:n,detail:s});o.dispatchEvent(a)},o=t=>{let{preserveCartData:e=!1}=t;n("wc-blocks_added_to_cart",{bubbles:!0,cancelable:!0,detail:{preserveCartData:e}})},s=function(t,e){let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],c=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if("function"!=typeof jQuery)return()=>{};const o=()=>{n(e,{bubbles:r,cancelable:c})};return jQuery(document).on(t,o),()=>jQuery(document).off(t,o)}},258:function(t,e,r){"use strict";r.d(e,"a",(function(){return o}));var c=r(93),n=(r(17),r(2));const o=t=>{const e=Object.keys(n.defaultAddressFields),r=Object(c.a)(e,{},t.country),o=Object.assign({},t);return r.forEach(e=>{let{key:r="",hidden:c=!1}=e;c&&((t,e)=>t in e)(r,t)&&(o[r]="")}),o}},264:function(t,e){},41:function(t,e,r){"use strict";r.d(e,"a",(function(){return E}));var c=r(8),n=r(0),o=r(10),s=r(7),a=r(15),i=r(258),d=r(80),l=r(257);const u=t=>{const e=t.detail;e&&e.preserveCartData||Object(s.dispatch)(o.CART_STORE_KEY).invalidateResolutionForStore()},b=()=>{1===window.wcBlocksStoreCartListeners.count&&window.wcBlocksStoreCartListeners.remove(),window.wcBlocksStoreCartListeners.count--},p=()=>{Object(n.useEffect)(()=>((()=>{if(window.wcBlocksStoreCartListeners||(window.wcBlocksStoreCartListeners={count:0,remove:()=>{}}),0===window.wcBlocksStoreCartListeners.count){const t=Object(l.a)("added_to_cart","wc-blocks_added_to_cart"),e=Object(l.a)("removed_from_cart","wc-blocks_removed_from_cart");document.body.addEventListener("wc-blocks_added_to_cart",u),document.body.addEventListener("wc-blocks_removed_from_cart",u),window.wcBlocksStoreCartListeners.count=0,window.wcBlocksStoreCartListeners.remove=()=>{t(),e(),document.body.removeEventListener("wc-blocks_added_to_cart",u),document.body.removeEventListener("wc-blocks_removed_from_cart",u)}}window.wcBlocksStoreCartListeners.count++})(),b),[])},_={first_name:"",last_name:"",company:"",address_1:"",address_2:"",city:"",state:"",postcode:"",country:"",phone:""},m={..._,email:""},g={total_items:"",total_items_tax:"",total_fees:"",total_fees_tax:"",total_discount:"",total_discount_tax:"",total_shipping:"",total_shipping_tax:"",total_price:"",total_tax:"",tax_lines:o.EMPTY_TAX_LINES,currency_code:"",currency_symbol:"",currency_minor_unit:2,currency_decimal_separator:"",currency_thousand_separator:"",currency_prefix:"",currency_suffix:""},y=t=>Object.fromEntries(Object.entries(t).map(t=>{let[e,r]=t;return[e,Object(a.decodeEntities)(r)]})),O={cartCoupons:o.EMPTY_CART_COUPONS,cartItems:o.EMPTY_CART_ITEMS,cartFees:o.EMPTY_CART_FEES,cartItemsCount:0,cartItemsWeight:0,crossSellsProducts:o.EMPTY_CART_CROSS_SELLS,cartNeedsPayment:!0,cartNeedsShipping:!0,cartItemErrors:o.EMPTY_CART_ITEM_ERRORS,cartTotals:g,cartIsLoading:!0,cartErrors:o.EMPTY_CART_ERRORS,billingAddress:m,shippingAddress:_,shippingRates:o.EMPTY_SHIPPING_RATES,isLoadingRates:!1,cartHasCalculatedShipping:!1,paymentRequirements:o.EMPTY_PAYMENT_REQUIREMENTS,receiveCart:()=>{},extensions:o.EMPTY_EXTENSIONS},E=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{shouldSelect:!0};const{isEditor:e,previewData:r}=Object(d.b)(),a=null==r?void 0:r.previewCart,{shouldSelect:l}=t,u=Object(n.useRef)();p();const b=Object(s.useSelect)((t,r)=>{let{dispatch:c}=r;if(!l)return O;if(e)return{cartCoupons:a.coupons,cartItems:a.items,crossSellsProducts:a.cross_sells,cartFees:a.fees,cartItemsCount:a.items_count,cartItemsWeight:a.items_weight,cartNeedsPayment:a.needs_payment,cartNeedsShipping:a.needs_shipping,cartItemErrors:o.EMPTY_CART_ITEM_ERRORS,cartTotals:a.totals,cartIsLoading:!1,cartErrors:o.EMPTY_CART_ERRORS,billingData:m,billingAddress:m,shippingAddress:_,extensions:o.EMPTY_EXTENSIONS,shippingRates:a.shipping_rates,isLoadingRates:!1,cartHasCalculatedShipping:a.has_calculated_shipping,paymentRequirements:a.paymentRequirements,receiveCart:"function"==typeof(null==a?void 0:a.receiveCart)?a.receiveCart:()=>{}};const n=t(o.CART_STORE_KEY),s=n.getCartData(),d=n.getCartErrors(),u=n.getCartTotals(),b=!n.hasFinishedResolution("getCartData"),p=n.isCustomerDataUpdating(),{receiveCart:g}=c(o.CART_STORE_KEY),E=y(s.billingAddress),h=s.needsShipping?y(s.shippingAddress):E,w=s.fees.length>0?s.fees.map(t=>y(t)):o.EMPTY_CART_FEES;return{cartCoupons:s.coupons.length>0?s.coupons.map(t=>({...t,label:t.code})):o.EMPTY_CART_COUPONS,cartItems:s.items,crossSellsProducts:s.crossSells,cartFees:w,cartItemsCount:s.itemsCount,cartItemsWeight:s.itemsWeight,cartNeedsPayment:s.needsPayment,cartNeedsShipping:s.needsShipping,cartItemErrors:s.errors,cartTotals:u,cartIsLoading:b,cartErrors:d,billingData:Object(i.a)(E),billingAddress:Object(i.a)(E),shippingAddress:Object(i.a)(h),extensions:s.extensions,shippingRates:s.shippingRates,isLoadingRates:p,cartHasCalculatedShipping:s.hasCalculatedShipping,paymentRequirements:s.paymentRequirements,receiveCart:g}},[l]);return u.current&&Object(c.isEqual)(u.current,b)||(u.current=b),u.current}},70:function(t,e,r){"use strict";r.d(e,"a",(function(){return s}));var c=r(45),n=r(0),o=r(41);const s=()=>{const t=Object(o.a)(),e=Object(n.useRef)(t);return Object(n.useEffect)(()=>{e.current=t},[t]),{dispatchStoreEvent:Object(n.useCallback)((function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};try{Object(c.doAction)("experimental__woocommerce_blocks-"+t,e)}catch(t){console.error(t)}}),[]),dispatchCheckoutEvent:Object(n.useCallback)((function(t){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};try{Object(c.doAction)("experimental__woocommerce_blocks-checkout-"+t,{...r,storeCart:e.current})}catch(t){console.error(t)}}),[])}}},80:function(t,e,r){"use strict";r.d(e,"b",(function(){return s})),r.d(e,"a",(function(){return a}));var c=r(0),n=r(7);const o=Object(c.createContext)({isEditor:!1,currentPostId:0,currentView:"",previewData:{},getPreviewData:()=>{}}),s=()=>Object(c.useContext)(o),a=t=>{let{children:e,currentPostId:r=0,currentView:s="",previewData:a={}}=t;const i=Object(n.useSelect)(t=>r||t("core/editor").getCurrentPostId(),[r]),d=Object(c.useCallback)(t=>t in a?a[t]:{},[a]),l={isEditor:!0,currentPostId:i,currentView:s,previewData:a,getPreviewData:d};return Object(c.createElement)(o.Provider,{value:l},e)}},93:function(t,e,r){"use strict";var c=r(2),n=r(1),o=r(149),s=r(83);const a=Object(c.getSetting)("countryLocale",{}),i=t=>{const e={};return void 0!==t.label&&(e.label=t.label),void 0!==t.required&&(e.required=t.required),void 0!==t.hidden&&(e.hidden=t.hidden),void 0===t.label||t.optionalLabel||(e.optionalLabel=Object(n.sprintf)(
/* translators: %s Field label. */
Object(n.__)("%s (optional)","woocommerce"),t.label)),t.priority&&(Object(o.a)(t.priority)&&(e.index=t.priority),Object(s.a)(t.priority)&&(e.index=parseInt(t.priority,10))),t.hidden&&(e.required=!1),e},d=Object.entries(a).map(t=>{let[e,r]=t;return[e,Object.entries(r).map(t=>{let[e,r]=t;return[e,i(r)]}).reduce((t,e)=>{let[r,c]=e;return t[r]=c,t},{})]}).reduce((t,e)=>{let[r,c]=e;return t[r]=c,t},{});e.a=function(t,e){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";const n=r&&void 0!==d[r]?d[r]:{};return t.map(t=>({key:t,...c.defaultAddressFields[t]||{},...n[t]||{},...e[t]||{}})).sort((t,e)=>t.index-e.index)}}}]);