PageSourceSearch

https://www.perro.eu/theme/b40bb2fa75efb5c29b75ed372c629e21/js/new…/newsletter-sendinblue.js?1791372201

js perro.eu collected 2026-10-10 01:08:30 UTC 8,675 bytes, 9 lines download raw bytes

1(()=>{"use strict";var t={156(t){var e=function(t){var e;return!!t&&"object"==typeof t&&"[object RegExp]"!==(e=Object.prototype.toString.call(t))&&"[object Date]"!==e&&t.$$typeof!==i},i="function"==typeof Symbol&&Symbol.for?Symbol.for("react.element"):60103;function r(t,e){return!1!==e.clone&&e.isMergeableObject(t)?a(Array.isArray(t)?[]:{},t,e):t}function s(t,e,i){return t.concat(e).map(function(t){return r(t,i)})}function n(t){return Object.keys(t).concat(Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(t).filter(function(e){return Object.propertyIsEnumerable.call(t,e)}):[])}function o(t,e){try{return e in t}catch(t){return!1}}function a(t,i,l){(l=l||{}).arrayMerge=l.arrayMerge||s,l.isMergeableObject=l.isMergeableObject||e,l.cloneUnlessOtherwiseSpecified=r;var c,u,h=Array.isArray(i);return h!==Array.isArray(t)?r(i,l):h?l.arrayMerge(t,i,l):(u={},(c=l).isMergeableObject(t)&&n(t).forEach(function(e){u[e]=r(t[e],c)}),n(i).forEach(function(e){(!o(t,e)||Object.hasOwnProperty.call(t,e)&&Object.propertyIsEnumerable.call(t,e))&&(o(t,e)&&c.isMergeableObject(i[e])?u[e]=(function(t,e){if(!e.customMerge)return a;var i=e.customMerge(t);return"function"==typeof i?i:a})(e,c)(t[e],i[e],c):u[e]=r(i[e],c))}),u)}a.all=function(t,e){if(!Array.isArray(t))throw Error("first argument should be an array");return t.reduce(function(t,i){return a(t,i,e)},{})},t.exports=a},636(t,e,i){i.r(e),i.d(e,{default:()=>l});var r=i(156),s=i.n(r);class n{static ucFirst(t){return t.charAt(0).toUpperCase()+t.slice(1)}static lcFirst(t){return t.charAt(0).toLowerCase()+t.slice(1)}static toDashCase(t){return t.replace(/([A-Z])/g,"-$1").replace(/^-/,"").toLowerCase()}static toLowerCamelCase(t,e){let i=n.toUpperCamelCase(t,e);return n.lcFirst(i)}static toUpperCamelCase(t,e){return e?t.split(e).map(t=>n.ucFirst(t.toLowerCase())).join(""):n.ucFirst(t.toLowerCase())}static parsePrimitive(t){try{return/^\d+(.|,)\d+$/.test(t)&&(t=t.replace(",",".")),JSON.parse(t)}catch(e){return t.toString()}}}class o{constructor(t=document){this._el=t,t.$emitter=this,this._listeners=[]}publish(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=new CustomEvent(t,{detail:e,cancelable:i});return this.el.dispatchEvent(r),r}subscribe(t,e){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=this,s=t.split("."),n=i.scope?e.bind(i.scope):e;if(i.once&&!0===i.once){let e=n;n=function(i){r.unsubscribe(t),e(i)}}return this.el.addEventListener(s[0],n),this.listeners.push({splitEventName:s,opts:i,cb:n}),!0}unsubscribe(t){arguments.length>1&&"function"==typeof arguments[1]&&console.warn(`[NativeEventEmitter] Unsubscribing by passing the subscriber function as a second argument is not supported. By default, all listeners for the event will be removed. Use a suffix (separated by a dot) on the event name when subscribing/unsubscribing to identify/target your specific listener only, e.g. "${t}.MyCustomPlugin"`);let e=t.split(".");return this.listeners=this.listeners.reduce((t,i)=>([...i.splitEventName].sort().toString()===e.sort().toString()?this.el.removeEventListener(i.splitEventName[0],i.cb):t.push(i),t),[]),!0}reset(){return this.listeners.forEach(t=>{this.el.removeEventListener(t.splitEventName[0],t.cb)}),this.listeners=[],!0}get el(){return this._el}set el(t){this._el=t}get listeners(){return this._listeners}set listeners(t){this._listeners=t}}class a{constructor(t,e={},i=!1){if(!(t instanceof Node)){console.warn(`There is no valid element given while trying to create a plugin instance for "${i}".`);return}this.el=t,this.$emitter=new o(this.el),this._pluginName=this._getPluginName(i),this.options=this._mergeOptions(e),this._initialized=!1,this._registerInstance(),this._init()}init(){console.warn(`The "init" method for the plugin "${this._pluginName}" is not defined. The plugin will not be initialized.`)}update(){}destroy(){}_init(){this._initialized||(this.init(),this._initialized=!0)}_update(){this._initialized&&this.update()}_mergeOptions(t){let e=[this.constructor.options,this.options,t];return e.push(this._getConfigFromDataAttribute()),e.push(this._getOptionsFromDataAttribute()),s().all(e.filter(t=>t instanceof Object&&!(t instanceof Array)).map(t=>t||{}))}_getConfigFromDataAttribute(){let t={};if("function"!=typeof this.el.getAttribute)return t;let e=n.toDashCase(this._pluginName),i=this.el.getAttribute(`data-${e}-config`);return i?window.PluginConfigManager.get(this._pluginName,i):t}_getOptionsFromDataAttribute(){let t={};if("function"!=typeof this.el.getAttribute)return t;let e=n.toDashCase(this._pluginName),i=this.el.getAttribute(`data-${e}-options`);if(i)try{return JSON.parse(i)}catch(t){console.error(`The data attribute "data-${e}-options" could not be parsed to json: ${t.message}`)}return t}_registerInstance(){window.PluginManager.getPluginInstancesFromElement(this.el).set(this._pluginName,this),window.PluginManager.getPlugin(this._pluginName,!1).get("instances").push(this)}_getPluginName(t){return t||(t=this.constructor.name),t}}class l extends a{static #t=this.options={formSelector:"#brevo-stock-notification-form",formContainerSelector:"#brevo-stock-notification-form-container",messageSelector:"#brevo-stock-notification-message",submitButtonSelector:"#brevo-stock-notification-submit",emailInputSelector:"#brevo-stock-notification-email",productIdSelector:'input[name="productId"]',submitUrl:"",translations:{}};init(){if(this.form=this.el.querySelector(this.options.formSelector),this.form){if(!this.options.submitUrl){console.error("BackInStockNotificationPlugin: submitUrl is required");return}this.formContainer=this.el.querySelector(this.options.formContainerSelector),this.messageDiv=this.el.querySelector(this.options.messageSelector),this.submitBtn=this.el.querySelector(this.options.submitButtonSelector),this.emailInput=this.el.querySelector(this.options.emailInputSelector),this.productIdInput=this.el.querySelector(this.options.productIdSelector),this._registerEvents()}}_registerEvents(){this.form.addEventListener("submit",this._onFormSubmit.bind(this)),this.emailInput.addEventListener("input",this._onEmailInput.bind(this))}_onFormSubmit(t){t.preventDefault();let e=this.emailInput.value.trim();if(!e){this._showError(this.options.translations.emailRequired);return}
1this._setLoadingState(!0);let i=new URLSearchParams({email:e,productId:this.productIdInput.value});fetch(this.options.submitUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded","X-Requested-With":"XMLHttpRequest"},body:i}).then(t=>t.text()).then(t=>{this.messageDiv.innerHTML=t,this.messageDiv.style.display="block",t.includes("alert-success")&&(this.formContainer.style.display="none")}).catch(t=>{this._showError(this.options.translations.generalError)}).finally(()=>{this._setLoadingState(!1)})}_onEmailInput(){this.messageDiv.style.display="none"}_setLoadingState(t){this.submitBtn.disabled=t,this.submitBtn.textContent=t?this.options.translations.buttonLoading:this.options.translations.buttonText}_showError(t){this.messageDiv.innerHTML=`
2            <div role="alert" class="alert alert-danger alert-has-icon">
3                <div class="alert-content-container">
4                    <div class="alert-content">
5                        ${t}
6                    </div>
7                </div>
8            </div>
9        `,this.messageDiv.style.display="block",this.emailInput.focus()}}}},e={};function i(r){var s=e[r];if(void 0!==s)return s.exports;var n=e[r]={exports:{}};return t[r](n,n.exports,i),n.exports}i.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return i.d(e,{a:e}),e},i.d=(t,e)=>{for(var r in e)i.o(e,r)&&!i.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},i.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),i.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};let r=Object.freeze(new class{constructor(){this.flags={},window.features&&this.init(window.features)}init(t){Object.entries(t).forEach(t=>{let[e,i]=t;this.flags[e]=i})}isActive(t){return!!Object.prototype.hasOwnProperty.call(this.flags,t)&&this.flags[t]}});var s=i(636);(class{constructor(){window.Feature=this}static init(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};r.init(t)}static isActive(t){return r.isActive(t)}}).isActive("v6.6.0.0")?window.PluginManager.register("BrevoBackInStockNotification",()=>Promise.resolve().then(i.bind(i,636)),"[data-brevo-back-in-stock-notification]"):window.PluginManager.register("BrevoBackInStockNotification",s.default,"[data-brevo-back-in-stock-notification]")})();

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.