PageSourceSearch

https://www.tomshardware.com/vite/assets/Newsletter/MultiSubscribe/MultiSubscribe.ts-CazV70zN.js

js tomshardware.com collected 2026-09-24 08:27:04 UTC 4,937 bytes, 1 lines download raw bytes

1import{b as e,s as t}from"../NewsletterAnalytics.ts-CbW70NX0.js";document.addEventListener("alpine:init",(()=>{Alpine.store("newsletter",{newsletterFormSubmitted:!1,selectedNewsletterBoxes:0}),Alpine.data("multiSubscribeWrapper",(e=>({selectedIds:[],isAllSubscribed:!1,init(){this.selectedIds=[...e.split(",")],this.$watch("$store.newsletter.newsletterFormSubmitted",(t=>{t&&!this.isAllSubscribed&&(this.$dispatch("reset-form",{}),Alpine.store("newsletter").newsletterFormSubmitted=!1,Alpine.store("newsletter").selectedNewsletterBoxes=0,this.selectedIds=[...e.split(",")])}))}}))),Alpine.data("multiSubscribeSection",((s,l)=>({newslettersData:{},areAllNewslettersSelected:!1,openDialogueAnalyticsSent:!1,alreadySubmittedNewsletters:new Set,currentSlide:0,itemsToShow:2,itemsLength:l,init(){this.itemsToShow=window.innerWidth<900?2:3,e(this.$el,"multiSubscribe",s)},async toggleSubscribeToAll(){const e=Object.values(this.newslettersData).filter((e=>""!==e.newsletterId));if(this.alreadySubmittedNewsletters.size===e.length)return this.$el.disabled=!0,this.areAllNewslettersSelected=!0,Alpine.store("newsletter").selectedNewsletterBoxes=0,this.$dispatch("open-dialog",{open:!1,data:{selectedNewsletters:[]}}),void(this.isAllSubscribed=!0);this.areAllNewslettersSelected=!this.areAllNewslettersSelected;const t=[];let s=Alpine.store("newsletter").selectedNewsletterBoxes;e.forEach((e=>{const l=e;this.alreadySubmittedNewsletters.has(l.domElement)||(this.areAllNewslettersSelected?(l.selected||s++,this.selectedIds=[...this.selectedIds,...l.newsletterId.split(",")]):(l.selected&&s--,l.newsletterId.split(",").forEach((e=>{const t=this.selectedIds.findIndex((t=>t===e));-1!==t&&this.selectedIds.splice(t,1)}))),l.selected=this.areAllNewslettersSelected,t.push(l.domElement))})),await Promise.all(t.map((async e=>{Alpine.$data(e).isNewsletterSelected=this.areAllNewslettersSelected}))),Alpine.store("newsletter").selectedNewsletterBoxes=s,queueMicrotask((()=>{this.openDialog()}))},openDialog(){this.selectedIds&&0!==Alpine.store("newsletter").selectedNewsletterBoxes&&this.$dispatch("open-dialog",{open:!0,data:{selectedNewsletters:this.selectedIds}}),this.openDialogueAnalyticsSent||(t("formtriggered","multiSubscribe",s,this.selectedIds.size),this.openDialogueAnalyticsSent=!0)},next(){this.currentSlide<this.itemsLength-this.itemsToShow&&this.currentSlide++},prev(){this.currentSlide>0&&this.currentSlide--},goToSlide(e){this.currentSlide!=e&&(this.currentSlide=e)}}))),Alpine.data("subscribeBox",((e,t)=>({isNewsletterSelected:!1,alreadySubmittedNewsletter:!1,init(){this.newslettersData[e]={selected:!1,domElement:this.$el,newsletterId:this.$el.getAttribute("data-code-id")}},toggleSubscribeButton(){this.$el.disabled||(this.newslettersData[e].selected=!this.newslettersData[e].selected,this.isNewsletterSelected=this.newslettersData[e].selected,this.isNewsletterSelected?(this.selectedIds=[...this.selectedIds,...this.newslettersData[e].newsletterId.split(",")],Alpine.store("newsletter").selectedNewsletterBoxes++):(this.newslettersData[e].newsletterId.split(",").forEach((e=>{const t=this.selectedIds.findIndex((t=>t===e));-1!==t&&this.selectedIds.splice(t,1)})),Alpine.store("newsletter").selectedNewsletterBoxes--),this.checkIfAllNewslettersAreSelected(),this.openDialog())},checkIfAllNewslettersAreSelected(){this.areAllNewslettersSelected=Object.values(this.newslettersData).every((e=>{const t=e;return""===t.newsletterId||!0===t.selected}))},getSubscribeButtonHtml(){this.$watch("$store.newsletter.newsletterFormSubmitted",(t=>{t&&this.isNewsletterSelected&&(this.isNewsletterSelected&&(this.alreadySubmittedNewsletters.add(this.newslettersData[e].domElement),this.alreadySubmittedNewsletter=!0,this.$el.disabled=!0),this.isNewsletterSelected=!1)}));const s=this.alreadySubmittedNewsletter?"Subscribed":t.trim()??"Subscribe +";return this.isNewsletterSelected?"Selected <svg width='12' height='10' viewBox='0 0 12 10' fill='inherit' class='inline ml-2'><path d='M4.27124 7.60333L1.9379 5.27C1.6779 5.01 1.26457 5.01 1.00457 5.27C0.74457 5.53 0.74457 5.94333 1.00457 6.20333L3.7979 8.99667C4.0579 9.25667 4.4779 9.25667 4.7379 8.99667L11.8046 1.93667C12.0646 1.67667 12.0646 1.26333 11.8046 1.00333C11.5446 0.743334 11.1312 0.743334 10.8712 1.00333L4.27124 7.60333Z' fill='inherit'/></svg>":s}}))),Alpine.data("newsletterDialog",(()=>({openDialog:!1,dialogTitle:"1 Newsletter Selected",getDataFromNewsletterBox(){this.openDialog=this.$event.detail.open;const e=1===Alpine.store("newsletter").selectedNewsletterBoxes?"":"s";this.dialogTitle=`${Alpine.store("newsletter").selectedNewsletterBoxes} Newsletter${e} Selected`,this.$watch("$store.newsletter.selectedNewsletterBoxes",(t=>{this.dialogTitle=`${t} Newsletter${e} Selected`,t||(this.openDialog=!1)})),this.$watch("$store.newsletter.newsletterFormSubmitted",(e=>{e&&(this.dialogTitle="")})),Alpine.store("newsletter").selectedNewsletterBoxes||(this.openDialog=!1)}})))}));

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.