PageSourceSearch

https://www.charlottetilbury.com/_next/static/chunks/8974-f9e90dc9fa840d65.js

js charlottetilbury.com collected 2026-09-24 08:40:31 UTC 19,037 bytes, 1 lines download raw bytes

1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8974],{28259:function(e,t,n){!function(e,t){"use strict";function n(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function r(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?n(Object(r),!0).forEach(function(t){c(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):n(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function o(e){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function c(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},c=Object.keys(e);for(r=0;r<c.length;r++)n=c[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(r=0;r<c.length;r++)n=c[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function u(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,o=e&&("u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"]);if(null!=o){var c=[],i=!0,u=!1;try{for(o=o.call(e);!(i=(n=o.next()).done)&&(c.push(n.value),!t||c.length!==t);i=!0);}catch(e){u=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(u)throw r}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return a(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return a(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var s,l,p,d,f,m={exports:{}};m.exports=(function(){if(f)return d;f=1;var e=p?l:(p=1,l="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED");function t(){}function n(){}return n.resetWarningCache=t,d=function(){function r(t,n,r,o,c,i){if(i!==e){var u=Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw u.name="Invariant Violation",u}}function o(){return r}r.isRequired=r;var c={array:r,bool:r,func:r,number:r,object:r,string:r,symbol:r,any:r,arrayOf:o,element:r,elementType:r,instanceOf:o,node:r,objectOf:o,oneOf:o,oneOfType:o,shape:o,exact:o,checkPropTypes:n,resetWarningCache:t};return c.PropTypes=c,c}})()();var h=(s=m.exports)&&s.__esModule&&Object.prototype.hasOwnProperty.call(s,"default")?s.default:s,v=function(e,n,r){var o=!!r,c=t.useRef(r);t.useEffect(function(){c.current=r},[r]),t.useEffect(function(){if(!o||!e)return function(){};var t=function(){c.current&&c.current.apply(c,arguments)};return e.on(n,t),function(){e.off(n,t)}},[o,n,e,c])},y=function(e){var n=t.useRef(e);return t.useEffect(function(){n.current=e},[e]),n.current},g=function(e){return null!==e&&"object"===o(e)},E="[object Object]",C=function e(t,n){if(!g(t)||!g(n))return t===n;var r=Array.isArray(t);if(r!==Array.isArray(n))return!1;var o=Object.prototype.toString.call(t)===E;if(o!==(Object.prototype.toString.call(n)===E))return!1;if(!o&&!r)return t===n;var c=Object.keys(t),i=Object.keys(n);if(c.length!==i.length)return!1;for(var u={},a=0;a<c.length;a+=1)u[c[a]]=!0;for(var s=0;s<i.length;s+=1)u[i[s]]=!0;var l=Object.keys(u);return l.length===c.length&&l.every(function(r){return e(t[r],n[r])})},b=function(e,t,n){return g(e)?Object.keys(e).reduce(function(o,i){var u=!g(t)||!C(e[i],t[i]);return n.includes(i)?(u&&console.warn("Unsupported prop change: options.".concat(i," is not a mutable property.")),o):u?r(r({},o||{}),{},c({},i,e[i])):o},null):null},k="Invalid prop `stripe` supplied to `Elements`. We recommend using the `loadStripe` utility from `@stripe/stripe-js`. See https://stripe.com/docs/stripe-js/react#elements-props-stripe for details.",S=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:k;if(null===e||g(e)&&"function"==typeof e.elements&&"function"==typeof e.createToken&&"function"==typeof e.createPaymentMethod&&"function"==typeof e.confirmCardPayment)return e;throw Error(t)},w=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:k;
1if(g(e)&&"function"==typeof e.then)return{tag:"async",stripePromise:Promise.resolve(e).then(function(e){return S(e,t)})};var n=S(e,t);return null===n?{tag:"empty"}:{tag:"sync",stripe:n}},P=function(e){e&&e._registerWrapper&&e.registerAppInfo&&(e._registerWrapper({name:"react-stripe-js",version:"3.10.0"}),e.registerAppInfo({name:"react-stripe-js",version:"3.10.0",url:"https://stripe.com/docs/stripe-js/react"}))},j=t.createContext(null);j.displayName="ElementsContext";var O=function(e,t){if(!e)throw Error("Could not find Elements context; You need to wrap the part of your app that ".concat(t," in an <Elements> provider."));return e},x=function(e){var n=e.stripe,r=e.options,o=e.children,c=t.useMemo(function(){return w(n)},[n]),i=u(t.useState(function(){return{stripe:"sync"===c.tag?c.stripe:null,elements:"sync"===c.tag?c.stripe.elements(r):null}}),2),a=i[0],s=i[1];t.useEffect(function(){var e=!0,t=function(e){s(function(t){return t.stripe?t:{stripe:e,elements:e.elements(r)}})};return"async"!==c.tag||a.stripe?"sync"!==c.tag||a.stripe||t(c.stripe):c.stripePromise.then(function(n){n&&e&&t(n)}),function(){e=!1}},[c,a,r]);var l=y(n);t.useEffect(function(){null!==l&&l!==n&&console.warn("Unsupported prop change on Elements: You cannot change the `stripe` prop after setting it.")},[l,n]);var p=y(r);return t.useEffect(function(){if(a.elements){var e=b(r,p,["clientSecret","fonts"]);e&&a.elements.update(e)}},[r,p,a.elements]),t.useEffect(function(){P(a.stripe)},[a.stripe]),t.createElement(j.Provider,{value:a},o)};x.propTypes={stripe:h.any,options:h.object};var A=function(e){return O(t.useContext(j),e)},I=function(e){return(0,e.children)(A("mounts <ElementsConsumer>"))};I.propTypes={children:h.func.isRequired};var R=["on","session"],N=t.createContext(null);N.displayName="CheckoutSdkContext";var _=function(e,t){if(!e)throw Error("Could not find CheckoutProvider context; You need to wrap the part of your app that ".concat(t," in an <CheckoutProvider> provider."));return e},T=t.createContext(null);T.displayName="CheckoutContext";var M=function(e,t){if(!e)return null;e.on,e.session;var n=i(e,R);return t?Object.assign(t,n):Object.assign(e.session(),n)},L=function(e){var n=e.stripe,r=e.options,o=e.children,c=t.useMemo(function(){return w(n,"Invalid prop `stripe` supplied to `CheckoutProvider`. We recommend using the `loadStripe` utility from `@stripe/stripe-js`. See https://stripe.com/docs/stripe-js/react#elements-props-stripe for details.")},[n]),i=u(t.useState(null),2),a=i[0],s=i[1],l=u(t.useState(function(){return{stripe:"sync"===c.tag?c.stripe:null,checkoutSdk:null}}),2),p=l[0],d=l[1],f=function(e,t){d(function(n){return n.stripe&&n.checkoutSdk?n:{stripe:e,checkoutSdk:t}})},m=t.useRef(!1);t.useEffect(function(){var e=!0;return"async"!==c.tag||p.stripe?"sync"===c.tag&&c.stripe&&!m.current&&(m.current=!0,c.str
1ipe.initCheckout(r).then(function(e){e&&(f(c.stripe,e),e.on("change",s))})):c.stripePromise.then(function(t){t&&e&&!m.current&&(m.current=!0,t.initCheckout(r).then(function(e){e&&(f(t,e),e.on("change",s))}))}),function(){e=!1}},[c,p,r,s]);var h=y(n);t.useEffect(function(){null!==h&&h!==n&&console.warn("Unsupported prop change on CheckoutProvider: You cannot change the `stripe` prop after setting it.")},[h,n]);var v=y(r),g=y(p.checkoutSdk);t.useEffect(function(){if(p.checkoutSdk){var e,t,n,o,c=!!(!g&&p.checkoutSdk),i=null==v||null==(e=v.elementsOptions)?void 0:e.appearance,u=null==r||null==(t=r.elementsOptions)?void 0:t.appearance,a=!C(u,i);u&&(a||c)&&p.checkoutSdk.changeAppearance(u);var s=null==v||null==(n=v.elementsOptions)?void 0:n.fonts,l=null==r||null==(o=r.elementsOptions)?void 0:o.fonts,d=!C(s,l);l&&(d||c)&&p.checkoutSdk.loadFonts(l)}},[r,v,p.checkoutSdk,g]),t.useEffect(function(){P(p.stripe)},[p.stripe]);var E=t.useMemo(function(){return M(p.checkoutSdk,a)},[p.checkoutSdk,a]);return p.checkoutSdk?t.createElement(N.Provider,{value:p},t.createElement(T.Provider,{value:E},o)):null};L.propTypes={stripe:h.any,options:h.shape({fetchClientSecret:h.func.isRequired,elementsOptions:h.object}).isRequired};var U=function(e){var n=t.useContext(N),r=t.useContext(j);if(n&&r)throw Error("You cannot wrap the part of your app that ".concat(e," in both <CheckoutProvider> and <Elements> providers."));return n?_(n,e):O(r,e)},Y=["mode"],B=function(e,n){var r="".concat(e.charAt(0).toUpperCase()+e.slice(1),"Element"),o=n?function(e){U("mounts <".concat(r,">"));var n=e.id,o=e.className;return t.createElement("div",{id:n,className:o})}:function(n){var o,c=n.id,a=n.className,s=n.options,l=void 0===s?{}:s,p=n.onBlur,d=n.onFocus,f=n.onReady,m=n.onChange,h=n.onEscape,g=n.onClick,E=n.onLoadError,C=n.onLoaderStart,k=n.onNetworksChange,S=n.onConfirm,w=n.onCancel,P=n.onShippingAddressChange,j=n.onShippingRateChange,O=n.onSavedPaymentMethodRemove,x=n.onSavedPaymentMethodUpdate,A=U("mounts <".concat(r,">")),I="elements"in A?A.elements:null,R="checkoutSdk"in A?A.checkoutSdk:null,N=u(t.useState(null),2),_=N[0],T=N[1],M=t.useRef(null),L=t.useRef(null);v(_,"blur",p),v(_,"focus",d),v(_,"escape",h),v(_,"click",g),v(_,"loaderror",E),v(_,"loaderstart",C),v(_,"networkschange",k),v(_,"confirm",S),v(_,"cancel",w),v(_,"shippingaddresschange",P),v(_,"shippingratechange",j),v(_,"savedpaymentmethodremove",O),v(_,"savedpaymentmethodupdate",x),v(_,"change",m),f&&(o="expressCheckout"===e?f:function(){f(_)}),v(_,"ready",o),t.useLayoutEffect(function(){if(null===M.current&&null!==L.current&&(I||R)){var t=null;if(R)switch(e){case"payment":t=R.createPaymentElement(l);break;case"address":if("mode"in l){var n=l.mode,o=i(l,Y);if("shipping"===n)t=R.createShippingAddressElement(o);else if("billing"===n)t=R.createBillingAddressElement(o);else throw Error("Invalid options.mode. mode must be 'billing' or 'shipping'.")}else throw Error("You must supply options.mode. mode must be 'billing' or 'shipping'.");break;case"expressCheckout":t=R.createExpressCheckoutElement(l);break;case"currencySelector":t=R.createCurrencySelectorElement();break;case"taxId":t=R.createTaxIdElement(l);break;default:throw Error("Invalid Element type ".concat(r,". You must use either the <PaymentElement />, <AddressElement options={{mode: 'shipping'}} />, <AddressElement options={{mode: 'billing'}} />, or <ExpressCheckoutElement />."))}else I&&(t=I.create(e,l));M.current=t,T(t),t&&t.mount(L.current)}},[I,R,l]);var B=y(l);return t.useEffect(function(){if(M.current){var e=b(l,B,["paymentRequest"]);e&&"update"in M.current&&M.current.update(e)}},[l,B]),t.useLayoutEffect(function(){return function(){if(M.current&&"function"==typeof M.current.destroy)try{M.current.destroy(),M.current=null}catch(e){}}},[]),t.createElement("div",{id:c,className:a,ref:L})};return o.propTypes={id:h.string,className:h.string,onChange:h.func,onBlur:h.func,onFocus:h.func,onReady:h.func,onEscape:h.func,onClick:h.func,onLoadError:h.func,onLoaderStart:h.func,onNetworksChange:h.func,onConfirm:h.func,onCancel:h.func,onShippingAddressChange:h.func,onShippingRateChange:h.func,onSavedPaymentMethodRemove:h.func,onSavedPaymentMethodUpdate:h.func,options:h.object},o.displayName=r,o.__elementType=e,o},D="u"<typeof window,W=t.createContext(null);W.displayName="EmbeddedCheckoutProviderContext";var q=function(){var e=t.useContext(W);if(!e)throw Error("<EmbeddedCheckout> must be used within <EmbeddedCheckoutProvider>");return e},F=D?function(e){var n=e.id,r=e.className;return q(),t.createElement("div",{id:n,className:r})}:function(e){var n=e.id,r=e.className,o=q().embeddedCheckout,c=t.useRef(!1),i=t.useRef(null);return t.useLayoutEffect(function(){return!c.current&&o&&null!==i.current&&(o.mount(i.current),c.current=!0),function(){if(c.current&&o)try{o.unmount(),c.current=!1}catch(e){}}},[o]),t.createElement("div",{ref:i,id:n,className:r})},$=B("auBankAccount",D),z=B("card",D),H=B("cardNumber",D),V=B("cardExpiry",D),G=B("cardCvc",D),J=B("fpxBank",D),K=B("iban",D),Q=B("idealBank",D),X=B("p24Bank",D),Z=B("epsBank",D),ee=B("payment",D),et=B("expressCheckout",D),en=B("currencySelector",D),er=B("paymentRequestButton",D),eo=B("linkAuthentication",D),ec=B("address",D),ei=B("shippingAddress",D),eu=B("paymentMethodMessaging",D),ea=B("affirmMessage",D),es=B("afterpayClearpayMessage",D),el=B("taxId",D);e.AddressElement=ec,e.AffirmMessageElement=ea,e.AfterpayClearpayMessageElement=es,e.AuBankAccountElement=$,e.CardCvcElement=G,e.CardElement=z,e.CardExpiryElement=V,e.CardNumberElement=H,e.CheckoutProvider=L,e.CurrencySelectorElement=en,e.Elements=x,e.ElementsConsumer=I,e.EmbeddedCheckout=F,e.EmbeddedCheckoutProvider=function(e){var n=e.stripe,r=e.options,o=e.children,c=t.useMemo(function(){return w(n,"Invalid prop `stripe` supplied to `EmbeddedCheckoutProvider`. We recommend using the `loadStripe` utility from `@stripe/stripe-js`. See https://stripe.com/docs/stripe-js/react#elements-props-stripe for details.")},[n]),i=t.useRef(null),a=t.useRef(null),s=u(t.useState({embeddedCheckout:null}),2),l=s[0],p=s[1];t.useEffect(function(){if(!a.current&&!i.current){var e=function(e){a.current||i.current||(a.current=e,i.current=a.current.initEmbeddedCheckout(r).then(function(e){p({embeddedCheckout:e})}))};"async"===c.tag&&!a.current&&(r.clientSecret||r.fetchClientSecret)?c.stripePromise.then(function(t){t&&e(t)}):"sync"===c.tag&&!a.current&&(r.clientSecret||r.fetchClientSecret)&&e(c.stripe)}},[c,r,l,a]),t.useEffect(function(){return function(){l.embeddedCheckout?(i.current=null,l.embeddedCheckout.destroy()):i.current&&i.current.then(function(){i.current=null,l.embeddedCheckout&&l.embeddedCheckout.destroy()})}},[l.embeddedCheckout]),t.useEffect(function(){P(a)},[a]);var d=y(n);t.useEffect(function(){null!==d&&d!==n&&console.warn("Unsupported prop change on EmbeddedCheckoutProvider: You cannot change the `stripe` prop after setting it.")},[d,n]);var f=y(r);return t.useEffect(function(){if(null!=f){if(null==r)return void console.warn("Unsupported prop change on EmbeddedCheckoutProvider: You cannot unset options after setting them.");void 0===r.clientSecret&&void 0===r.fetchClientSecret&&console.warn("Invalid props passed to EmbeddedCheckoutProvider: You must provide one of either `options.fetchClientSecret` or `options.clientSecret`."),null!=f.clientSecret&&r.clientSecret!==f.clientSecret&&console.warn("Unsupported prop change on EmbeddedCheckoutProvider: You cannot change the client secret after setting it. Unmount and create a new instance of EmbeddedCheckoutProvider instead."),null!=f.fetchClientSecret&&r.fetchClientSecret!==f.fetchClientSecret&&console.warn("Unsupported prop change on EmbeddedCheckoutProvider: You cannot change fetchClientSecret after setting it. Unmount and create a new instance of EmbeddedCheckoutProvider instead."),null!=f.onComplete&&r.onComplete!==f.onComplete&&console.warn("Unsupported prop change on EmbeddedCheckoutProvider: You cannot change the onComplete option after setting it."),null!=f.onShippingDetailsChange&&r.onShippingDetailsChange!==f.onShippingDetailsChange&&console.warn("Unsupported prop change on EmbeddedCheckoutProvider: You cannot change the onShippingDetailsChange option after setting it."),null!=f.onLineItemsChange&&r.onLineItemsChange!==f.onLineItemsChange&&console.warn("Unsupported prop change on EmbeddedCheckoutProvider: You cannot change the onLineItemsChange option after setting it.")}},[f,r]),t.createElement(W.Provider,{value:l},o)},e.EpsBankElement=Z,e.ExpressCheckoutElement=et,e.FpxBankElement=J,e.IbanElement=K,e.IdealBankElement=Q,e.LinkAuthenticationElement=eo,e.P24BankElement=X,e.PaymentElement=ee,e.PaymentMethodMessagingElement=eu,e.PaymentRequestButtonElement=er,e.ShippingAddressElement=ei,e.TaxIdElement=el,e.useCheckout=function(){_(t.useContext(N),"calls useCheckout()");var e=t.useContext(T);if(!e)throw Error("Could not find Checkout Context; You need to wrap the part of your app that calls useCheckout() in an <CheckoutProvider> provider.");return e},e.useElements=function(){return A("calls useElements()").elements},e.useStripe=function(){return U("calls useStripe()").stripe}}(t,n(42413))},72779:(e,t,n)=>{"use strict";n.d(t,{c:()=>y});var r,o="https://js.stripe.com",c="".concat(o,"/v3"),i=/^https:\/\/js\.stripe\.com\/v3\/?(\?.*)?$/,u=/^https:\/\/js\.stripe\.com\/(v3|[a-z]+)\/stripe\.js(\?.*)?$/,a=function(){for(var e=document.querySelectorAll('script[src^="'.concat(o,'"]')),t=0;t<e.length;t++){var n,r=e[t];if(n=r.src,i.test(n)||u.test(n))return r}return null},s=function(e){var t=e&&!e.advancedFraudSignals?"?advancedFraudSignals=false":"",n=document.createElement("script");n.src="".concat(c).concat(t);var r=document.head||document.body;if(!r)throw Error("Expected document.body not to be null. Stripe.js requires a <body> element.");return r.appendChild(n),n},l=function(e,t){e&&e._registerWrapper&&e._registerWrapper({name:"stripe-js",version:"5.10.0",startTime:t})},p=null,d=null,f=null,m=function(e,t,n){if(null===e)return null;var r,o=t[0].match(/^pk_test/),c=3===(r=e.version)?"v3":r;o&&"v3"!==c&&console.warn("Stripe.js@".concat(c," was loaded on the page, but @stripe/stripe-js@").concat("5.10.0"," expected Stripe.js@").concat("v3",". This may result in unexpected behavior. For more information, see https://docs.stripe.com/sdks/stripejs-versioning"));var i=e.apply(void 0,t);return l(i,n),i},h=!1,v=function(){return r||(r=(null!==p?p:(p=new Promise(function(e,t){if("u"<typeof window||"u"<typeof document)return void e(null);if(window.Stripe,window.Stripe)return void e(window.Stripe);try{var n,r=a();r?r&&null!==f&&null!==d&&(r.removeEventListener("load",f),r.removeEventListener("error",d),null==(n=r.parentNode)||n.removeChild(r),r=s(null)):r=s(null),f=function(){window.Stripe?e(window.Stripe):t(Error("Stripe.js not available"))},d=function(e){t(Error("Failed to load Stripe.js",{cause:e}))},r.addEventListener("load",f),r.addEventListener("error",d)}catch(e){t(e);return}})).catch(function(e){return p=null,Promise.reject(e)})).catch(function(e){return r=null,Promise.reject(e)}))};Promise.resolve().then(function(){return v()}).catch(function(e){h||console.warn(e)});var y=function(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];h=!0;var r=Date.now();return v().then(function(e){return m(e,t,r)})}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.