{"version":3,"file":"audience_count_controller-CAF-_aF6.js","sources":["../../../app/javascript/controllers/campaign/audience_count_controller.js"],"sourcesContent":["import { Controller } from \"@hotwired/stimulus\"\nimport { get } from \"@rails/request.js\"\n\nexport default class extends Controller {\n static targets = [\"container\", \"select\", \"whatsappNotice\"]\n\n static values = {\n count: Number,\n includeAll: Boolean,\n allSubscribersCount: Number,\n lists: Number,\n url: String,\n technology: String,\n whatsappLimit: Number,\n }\n\n initialize() {\n this.allSubscribersCountValue = this.countValue\n this.audience = {}\n }\n\n incrementCount(e) {\n this.countValue += Number.parseInt(e.target.dataset.subscribersCount)\n }\n\n decrementCount(e) {\n this.countValue -= Number.parseInt(e.target.dataset.subscribersCount)\n }\n\n // These will be called in response to an action from\n // select_controller\n onAudienceInclusion(e) {\n this.includeAllValue = false\n if (this.listsValue > 1) {\n this.countValue += Number.parseInt(e.subscribersCount)\n this.audience[e.listId] = Number.parseInt(e.subscribersCount)\n } else {\n this.audience[e.listId] = Number.parseInt(e.subscribersCount)\n }\n\n this.countValueChange()\n }\n\n onAudienceExclusion(e) {\n this.countValue -= Number.parseInt(e.subscribersCount)\n\n if (this.includeAllValue) {\n this.audience[e.listId] = -e.subscribersCount\n } else {\n delete this.audience[e.listId]\n }\n this.countValueChange()\n }\n\n reset(e) {\n this.audience[\"all\"] = Number.parseInt(e.subscribersCount)\n this.countValueChange()\n this.includeAllValue = true\n }\n\n // new list was appended to the DOM, select_controller.js\n onListAppend(e) {\n this.listsValue += 1\n this.audience = {\n ...this.audience,\n [e.listId]: e.subscribersCount || 0,\n }\n }\n\n // a list was removed from the DOM, select_controller.js\n onListRemove(e) {\n this.listsValue -= 1\n delete this.audience[e.listId]\n this.countValueChange()\n }\n\n countValueChange() {\n const total = Object.values(this.audience).reduce(\n (total, num) => total + num,\n 0\n )\n\n this.containerTarget.innerText = total\n\n if(this.technologyValue === 'whatsapp' && total > this.whatsappLimitValue) {\n this.whatsappNoticeTarget.classList.remove('hidden')\n } else {\n this.whatsappNoticeTarget.classList.add('hidden')\n }\n }\n\n append() {\n const url = new URL(this.urlValue)\n\n Array.from(\n document.querySelectorAll(\n \"input[type=checkbox][name='included_list[]']:checked\"\n )\n ).forEach((input) => {\n url.searchParams.append(\"included_list[]\", input.value)\n })\n\n Array.from(\n document.querySelectorAll(\n \"input[type=checkbox][name='included_segment[]']:checked\"\n )\n ).forEach((input) => {\n url.searchParams.append(\"included_segment[]\", input.value)\n })\n\n Array.from(\n document.querySelectorAll(\n \"input[type=checkbox][name='excluded_list[]']:checked\"\n )\n ).forEach((input) => {\n url.searchParams.append(\"excluded_list[]\", input.value)\n })\n\n Array.from(\n document.querySelectorAll(\n \"input[type=checkbox][name='excluded_segment[]']:checked\"\n )\n ).forEach((input) => {\n url.searchParams.append(\"excluded_list[]\", input.value)\n })\n\n get(url.toString(), {\n responseKind: \"turbo-stream\",\n })\n }\n}\n"],"names":["audience_count_controller","Controller","total","num","url","input","get","__publicField"],"mappings":"+PAGe,MAAKA,UAASC,CAAW,CAatC,YAAa,CACX,KAAK,yBAA2B,KAAK,WACrC,KAAK,SAAW,CAAA,CACpB,CAEE,eAAe,EAAG,CAChB,KAAK,YAAc,OAAO,SAAS,EAAE,OAAO,QAAQ,gBAAgB,CACxE,CAEE,eAAe,EAAG,CAChB,KAAK,YAAc,OAAO,SAAS,EAAE,OAAO,QAAQ,gBAAgB,CACxE,CAIE,oBAAoB,EAAG,CACrB,KAAK,gBAAkB,GACnB,KAAK,WAAa,GACpB,KAAK,YAAc,OAAO,SAAS,EAAE,gBAAgB,EACrD,KAAK,SAAS,EAAE,MAAM,EAAI,OAAO,SAAS,EAAE,gBAAgB,GAE5D,KAAK,SAAS,EAAE,MAAM,EAAI,OAAO,SAAS,EAAE,gBAAgB,EAG9D,KAAK,iBAAgB,CACzB,CAEE,oBAAoB,EAAG,CACrB,KAAK,YAAc,OAAO,SAAS,EAAE,gBAAgB,EAEjD,KAAK,gBACP,KAAK,SAAS,EAAE,MAAM,EAAI,CAAC,EAAE,iBAE7B,OAAO,KAAK,SAAS,EAAE,MAAM,EAE/B,KAAK,iBAAgB,CACzB,CAEE,MAAM,EAAG,CACP,KAAK,SAAS,IAAS,OAAO,SAAS,EAAE,gBAAgB,EACzD,KAAK,iBAAgB,EACrB,KAAK,gBAAkB,EAC3B,CAGE,aAAa,EAAG,CACd,KAAK,YAAc,EACnB,KAAK,SAAW,CACd,GAAG,KAAK,SACR,CAAC,EAAE,MAAM,EAAG,EAAE,kBAAoB,CACxC,CACA,CAGE,aAAa,EAAG,CACd,KAAK,YAAc,EACnB,OAAO,KAAK,SAAS,EAAE,MAAM,EAC7B,KAAK,iBAAgB,CACzB,CAEE,kBAAmB,CACjB,MAAMC,EAAS,OAAO,OAAO,KAAK,QAAQ,EAAE,OAC1C,CAACA,EAAOC,IAAQD,EAAQC,EACxB,CACN,EAEI,KAAK,gBAAgB,UAAYD,EAE9B,KAAK,kBAAoB,YAAcA,EAAQ,KAAK,mBACrD,KAAK,qBAAqB,UAAU,OAAO,QAAQ,EAEnD,KAAK,qBAAqB,UAAU,IAAI,QAAQ,CAEtD,CAEE,QAAS,CACP,MAAME,EAAM,IAAI,IAAI,KAAK,QAAQ,EAEjC,MAAM,KACJ,SAAS,iBACP,sDACR,CACA,EAAM,QAASC,GAAU,CACnBD,EAAI,aAAa,OAAO,kBAAmBC,EAAM,KAAK,CACvD,CAAA,EAED,MAAM,KACJ,SAAS,iBACP,yDACR,CACA,EAAM,QAASA,GAAU,CACnBD,EAAI,aAAa,OAAO,qBAAsBC,EAAM,KAAK,CAC1D,CAAA,EAED,MAAM,KACJ,SAAS,iBACP,sDACR,CACA,EAAM,QAASA,GAAU,CACnBD,EAAI,aAAa,OAAO,kBAAmBC,EAAM,KAAK,CACvD,CAAA,EAED,MAAM,KACJ,SAAS,iBACP,yDACR,CACA,EAAM,QAASA,GAAU,CACnBD,EAAI,aAAa,OAAO,kBAAmBC,EAAM,KAAK,CACvD,CAAA,EAEDC,EAAIF,EAAI,WAAY,CAClB,aAAc,cACf,CAAA,CACL,CACA,CA9HEG,EADkBP,EACX,UAAU,CAAC,YAAa,SAAU,gBAAgB,GAEzDO,EAHkBP,EAGX,SAAS,CACd,MAAO,OACP,WAAY,QACZ,oBAAqB,OACrB,MAAO,OACP,IAAK,OACL,WAAY,OACZ,cAAe,MACnB"}