{"version":3,"file":"preview_controller-C0o10rai.js","sources":["../../../app/javascript/controllers/template/preview_controller.js"],"sourcesContent":["import CampaignPreviewController from '../campaign/preview_controller'\nimport {Piece} from '../compose/models/piece'\nimport {Loader} from \"@googlemaps/js-api-loader\";\n\nexport default class extends CampaignPreviewController {\n static values = {\n googleMapsApiKey: String,\n latitude: String,\n longitude: String,\n }\n\n static targets = ['header', 'footer', 'buttonContainer', 'buttonTemplate', 'map']\n\n connect() {\n super.connect()\n\n this.loader = new Loader({\n apiKey: window.googleMapsApiKey,\n version: \"weekly\",\n libraries: [\"places\"]\n });\n\n this.mapTarget.classList.add('hidden')\n this.loadMap()\n }\n\n loadMap() {\n this.loader.load().then((google) => {\n this.map = new google.maps.Map(this.mapTarget, this.mapOptions)\n this.marker = new google.maps.Marker({ map: this.map })\n\n if (this.latitudeValue && this.longitudeValue) {\n this.map.panTo({\n lat: parseFloat(this.latitudeValue),\n lng: parseFloat(this.longitudeValue)\n })\n\n this.marker.setPosition({\n lat: parseFloat(this.latitudeValue),\n lng: parseFloat(this.longitudeValue)\n })\n\n this.show(this.mapTarget)\n }\n });\n\n }\n\n previewAttachment({detail: attachmentElement}) {\n this.headerTarget.innerHTML = ''\n\n if (!attachmentElement) {\n return this.hide(this.headerTarget)\n }\n\n if (attachmentElement.querySelector('img')) {\n const img = attachmentElement.querySelector('img').cloneNode(true)\n this.addClass(img, 'w-full')\n this.headerTarget.appendChild(img)\n } else {\n const content = attachmentElement.querySelector('main').cloneNode(true)\n this.replaceClass(content, 'max-w-[11rem]', 'w-full')\n this.headerTarget.appendChild(content)\n }\n\n this.show(this.headerTarget)\n }\n\n previewBody({detail}) {\n if (detail.location) {\n this.map.panTo(detail.location)\n this.marker.setPosition(detail.location);\n this.show(this.mapTarget)\n } else {\n this.hide(this.mapTarget)\n }\n\n super.updatePreview({detail})\n }\n\n previewFooter({detail: body}) {\n this.footerTarget.innerHTML = body\n\n if (body) {\n this.show(this.footerTarget)\n } else {\n this.hide(this.footerTarget)\n }\n }\n\n previewButtons({detail: groups}) {\n if(!groups) {\n return this.buttonContainerTarget.classList.add('hidden')\n }\n\n this.buttonContainerTarget.innerHTML = ''\n\n const buttons = Object.values(groups).map(({buttons}) => buttons).flat()\n\n if(buttons.length === 0) {\n return this.buttonContainerTarget.classList.add('hidden')\n }\n\n buttons.forEach(button => {\n const element = this.buttonTemplateTargets.find(template => template.dataset.type === button.type).cloneNode(true)\n element.querySelector('[data-text]').innerText = button.title\n this.show(element)\n\n this.buttonContainerTarget.appendChild(element)\n })\n\n this.show(this.buttonContainerTarget)\n }\n\n get mapOptions() {\n return {\n center: {\n lat: 0,\n lng: 0\n },\n zoom: 15,\n disableDefaultUI: false,\n fullscreenControl: false,\n streetViewControl: false,\n mapTypeControl: false,\n zoomControl: false,\n scaleControl: false,\n rotateControl: false,\n clickableIcons: false,\n draggable: false,\n scrollwheel: false,\n disableDoubleClickZoom: true,\n }\n }\n}\n"],"names":["PreviewController","CampaignPreviewController","Loader","google","attachmentElement","img","content","detail","body","groups","buttons","button","element","template","__publicField"],"mappings":"iQAIe,MAAKA,UAASC,CAA0B,CASrD,SAAU,CACR,MAAM,QAAO,EAEb,KAAK,OAAS,IAAIC,EAAO,CACvB,OAAQ,OAAO,iBACf,QAAS,SACT,UAAW,CAAC,QAAQ,CAC1B,CAAK,EAED,KAAK,UAAU,UAAU,IAAI,QAAQ,EACrC,KAAK,QAAO,CAChB,CAEE,SAAU,CACR,KAAK,OAAO,KAAM,EAAC,KAAMC,GAAW,CAClC,KAAK,IAAM,IAAIA,EAAO,KAAK,IAAI,KAAK,UAAW,KAAK,UAAU,EAC9D,KAAK,OAAS,IAAIA,EAAO,KAAK,OAAO,CAAE,IAAK,KAAK,GAAK,CAAA,EAElD,KAAK,eAAiB,KAAK,iBAC7B,KAAK,IAAI,MAAM,CACb,IAAK,WAAW,KAAK,aAAa,EAClC,IAAK,WAAW,KAAK,cAAc,CACpC,CAAA,EAED,KAAK,OAAO,YAAY,CACtB,IAAK,WAAW,KAAK,aAAa,EAClC,IAAK,WAAW,KAAK,cAAc,CACpC,CAAA,EAED,KAAK,KAAK,KAAK,SAAS,EAEhC,CAAK,CAEL,CAEE,kBAAkB,CAAC,OAAQC,CAAiB,EAAG,CAG7C,GAFA,KAAK,aAAa,UAAY,GAE1B,CAACA,EACH,OAAO,KAAK,KAAK,KAAK,YAAY,EAGpC,GAAIA,EAAkB,cAAc,KAAK,EAAG,CAC1C,MAAMC,EAAMD,EAAkB,cAAc,KAAK,EAAE,UAAU,EAAI,EACjE,KAAK,SAASC,EAAK,QAAQ,EAC3B,KAAK,aAAa,YAAYA,CAAG,CACvC,KAAW,CACL,MAAMC,EAAUF,EAAkB,cAAc,MAAM,EAAE,UAAU,EAAI,EACtE,KAAK,aAAaE,EAAS,gBAAiB,QAAQ,EACpD,KAAK,aAAa,YAAYA,CAAO,CAC3C,CAEI,KAAK,KAAK,KAAK,YAAY,CAC/B,CAEE,YAAY,CAAC,OAAAC,CAAM,EAAG,CAChBA,EAAO,UACT,KAAK,IAAI,MAAMA,EAAO,QAAQ,EAC9B,KAAK,OAAO,YAAYA,EAAO,QAAQ,EACvC,KAAK,KAAK,KAAK,SAAS,GAExB,KAAK,KAAK,KAAK,SAAS,EAG1B,MAAM,cAAc,CAAC,OAAAA,CAAM,CAAC,CAChC,CAEE,cAAc,CAAC,OAAQC,CAAI,EAAG,CAC5B,KAAK,aAAa,UAAYA,EAE1BA,EACF,KAAK,KAAK,KAAK,YAAY,EAE3B,KAAK,KAAK,KAAK,YAAY,CAEjC,CAEE,eAAe,CAAC,OAAQC,CAAM,EAAG,CAC/B,GAAG,CAACA,EACF,OAAO,KAAK,sBAAsB,UAAU,IAAI,QAAQ,EAG1D,KAAK,sBAAsB,UAAY,GAEvC,MAAMC,EAAU,OAAO,OAAOD,CAAM,EAAE,IAAI,CAAC,CAAC,QAAAC,CAAO,IAAMA,CAAO,EAAE,KAAI,EAEtE,GAAGA,EAAQ,SAAW,EACpB,OAAO,KAAK,sBAAsB,UAAU,IAAI,QAAQ,EAG1DA,EAAQ,QAAQC,GAAU,CACxB,MAAMC,EAAU,KAAK,sBAAsB,KAAKC,GAAYA,EAAS,QAAQ,OAASF,EAAO,IAAI,EAAE,UAAU,EAAI,EACjHC,EAAQ,cAAc,aAAa,EAAE,UAAYD,EAAO,MACxD,KAAK,KAAKC,CAAO,EAEjB,KAAK,sBAAsB,YAAYA,CAAO,CAC/C,CAAA,EAED,KAAK,KAAK,KAAK,qBAAqB,CACxC,CAEE,IAAI,YAAa,CACf,MAAO,CACL,OAAQ,CACN,IAAK,EACL,IAAK,CACN,EACD,KAAM,GACN,iBAAkB,GAClB,kBAAmB,GACnB,kBAAmB,GACnB,eAAgB,GAChB,YAAa,GACb,aAAc,GACd,cAAe,GACf,eAAgB,GAChB,UAAW,GACX,YAAa,GACb,uBAAwB,EAC9B,CACA,CACA,CAjIEE,EADkBd,EACX,SAAS,CACd,iBAAkB,OAClB,SAAU,OACV,UAAW,MACf,GAEEc,EAPkBd,EAOX,UAAU,CAAC,SAAU,SAAU,kBAAmB,iBAAkB,KAAK"}