{"version":3,"sources":["components/ProjectObjectType.js"],"names":["Vue","component","data","map","mapImage","mapContainer","listItems","objectPlots","jsonObjectPlots","plotList","mapAreas","accordionOpen","hoverVisible","plotIsOpen","statusFilters","activeStatusFilters","body","clickFromOutsideMap","mounted","_this","this","document","getElementsByTagName","querySelector","querySelectorAll","imagesLoaded","initializeMap","window","addEventListener","location","hash","filters","formatCurrency","input","toLocaleString","style","currency","minimumFractionDigits","methods","overlayColorHex","overlayOpacityValue","isSafari","test","navigator","userAgent","getComputedStyle","mixBlendMode","imageMapResize","$","maphilight","fill","fillColor","fillOpacity","stroke","strokeColor","strokeOpacity","strokeWidth","fade","alwaysOn","neverOn","groupBy","wrapClass","shadow","shadowX","shadowY","shadowRadius","shadowColor","shadowOpacity","shadowPosition","shadowFrom","overlay","overlayColor","overlayOpacity","togglePlotAccordion","e","plotNr","tooltip","currentTarget","tooltipText","getListItem","togglePlotPopup","plot","_this2","triggerclick","arguments","length","undefined","Coordinates","TooltipClick","PlotNr","qtip","content","text","button","classes","app","plotNotInInterestList","plotIsSold","position","container","effect","api","pos","viewport","animate","duration","easing","queue","my","at","adjust","screen","x","y","show","event","hide","events","not","_id","target","id","split","getListItemByPlotNr","removeMapHilights","showMapHilight","mouse","innerWidth","classList","contains","parentElement","removeData","set","testApi","attr","click","scrollTop","offset","top","outerHeight","togglePlotStatusPopup","_this3","triggerHover","showPopUp","Tooltip","StatusFriendly","Status","ready","mouseover","mouseleave","showAccordion","i","remove","getAttribute","accordion","accordionCollapse","dataset","accordionActive","type","removeAttribute","height","opacity","visibility","add","item","forEach","listItem","getPlotColor","_this4","isActiveFilter","includes","plotArea","trigger","_loop","area","status","objectData","hilightPlotsOnFilter","filterActive","s","index","indexOf","splice","push"],"mappings":"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","file":"../../components/ProjectObjectType.js","sourcesContent":["Vue.component('projectObjectType', {\r\n data() {\r\n return {\r\n map: null,\r\n mapImage: null,\r\n mapContainer: null,\r\n listItems: [],\r\n objectPlots: jsonObjectPlots,\r\n plotList: [],\r\n mapAreas: null,\r\n accordionOpen: false,\r\n hoverVisible: false,\r\n plotIsOpen: false,\r\n statusFilters: false,\r\n activeStatusFilters: [],\r\n body: null,\r\n clickFromOutsideMap: false\r\n }\r\n },\r\n mounted() {\r\n this.body = document.getElementsByTagName(\"BODY\")[0];\r\n this.map = document.querySelector('.js-objecttype-map');\r\n this.mapImage = document.querySelector('.js-objecttype-map-image');\r\n this.plotList = document.querySelectorAll('.js-plot-list-item');\r\n this.mapContainer = document.querySelector('.js-objectdetail-map');\r\n this.mapAreas = document.querySelectorAll('.objectdetail-map__area');\r\n this.statusFilters = document.querySelectorAll('.js-map-filter');\r\n\r\n imagesLoaded(this.map, () => {\r\n this.initializeMap();\r\n });\r\n\r\n window.addEventListener('resize', () => {\r\n this.initializeMap(false);\r\n });\r\n\r\n if(window.location.hash) {\r\n document.location.hash = window.location.hash\r\n }\r\n\r\n },\r\n filters: {\r\n //move to app.js\r\n formatCurrency(input) {\r\n return input.toLocaleString(\"nl-NL\", {style: 'currency', currency: 'EUR', minimumFractionDigits: 0});\r\n }\r\n },\r\n methods: {\r\n initializeMap() {\r\n let overlayColorHex = '704214';\r\n let overlayOpacityValue = 1;\r\n var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\r\n\r\n if (typeof window.getComputedStyle(document.body).mixBlendMode === 'undefined' || isSafari) {\r\n overlayColorHex = '6c6557';\r\n overlayOpacityValue = 0.6;\r\n // EDE6D8\r\n\r\n // overlayColorHex = '989183';\r\n // overlayOpacityValue = 0.75;\r\n }\r\n\r\n if(this.map !== null) {\r\n imageMapResize(this.map);\r\n\r\n $(this.mapImage).maphilight({\r\n fill: true,\r\n fillColor: '0be900',\r\n fillOpacity: 0.6,\r\n stroke: true,\r\n strokeColor: '002a5c',\r\n strokeOpacity: 1,\r\n strokeWidth: 1,\r\n fade: true,\r\n alwaysOn: false,\r\n neverOn: false,\r\n groupBy: false,\r\n wrapClass: true,\r\n shadow: true,\r\n shadowX: 0,\r\n shadowY: 0,\r\n shadowRadius: 6,\r\n shadowColor: '000000',\r\n shadowOpacity: 0.8,\r\n shadowPosition: 'outside',\r\n shadowFrom: false,\r\n overlay: true,\r\n overlayColor: overlayColorHex,\r\n overlayOpacity: overlayOpacityValue\r\n });\r\n }\r\n },\r\n togglePlotAccordion(e, plotNr) {\r\n const tooltip = e.currentTarget;\r\n const tooltipText = tooltip.querySelector(`.tooltiptext-${plotNr}`);\r\n\r\n //find tooltip for area\r\n if (tooltipText !== null) {\r\n this.getListItem(plotNr, true, e);\r\n } else {\r\n this.getListItem(plotNr, false, e);\r\n }\r\n },\r\n //qtip for click with parameters plot, if clicked on item outside map, closed\r\n togglePlotPopup(plot, triggerclick = false, event) {\r\n //make plot when it has coordinates and it does not excist yet\r\n if (plot.Coordinates !== \"\" && !plot.TooltipClick) {\r\n $(`#area-${plot.PlotNr}`).qtip({\r\n content: {\r\n text: $(`.tooltiptext-${plot.PlotNr}`),\r\n button: $(`.tooltip-delete-${plot.PlotNr}`)\r\n },\r\n style: {\r\n classes: `objectdetail-map-tooltip-${plot.PlotNr} objectdetail-map__qTip ${app.plotNotInInterestList(plot) && !app.plotIsSold(plot) ? `objectdetail-map__qTip--themecolor` : ``}`\r\n },\r\n position: {\r\n container: $('.js-objectdetail-map'),\r\n effect: function (api, pos, viewport) {\r\n $(this).animate(pos, {\r\n duration: 0,\r\n easing: 'linear',\r\n queue: false,\r\n viewport: true,\r\n });\r\n },\r\n my: 'bottom center',\r\n at: 'top center',\r\n adjust: {\r\n screen: true,\r\n x: 0,\r\n y: 0\r\n },\r\n },\r\n show: {\r\n event: `click`\r\n },\r\n hide: {\r\n //reset default hide event to nothing\r\n event: ''\r\n },\r\n events: {\r\n show: (e, api) => {\r\n // Hide all qtips except current one\r\n $('.qtip').not(`#${api._id}`).qtip('hide');\r\n const plotNr = api.target[0].id.split('-')[1];\r\n let listItem = this.getListItemByPlotNr(plotNr);\r\n\r\n // Remove Map Hilights\r\n this.removeMapHilights();\r\n // Keep the map hilight of open plot\r\n this.showMapHilight(plotNr);\r\n\r\n //Show when not clicked on trigger click\r\n //kijken of event een area is, ja? Dan triggerclick op false zetten\r\n if(!this.clickFromOutsideMap) {\r\n this.togglePlotAccordion(e, plotNr);\r\n }\r\n // if(!triggerclick && !listItem.dataset.accordionActive) {\r\n // this.togglePlotAccordion(e, plotNr);\r\n // }\r\n\r\n // console.log(event.target.id, api.target[0].id);\r\n // if(event.target.id === api.target[0].id) {\r\n // console.log('in if');\r\n // this.togglePlotAccordion(e, plotNr);\r\n // }\r\n },\r\n hide: (e, api) => {\r\n const plotNr = api.target[0].id.split('-')[1];\r\n\r\n // Only manually close accordion when close icon is clicked\r\n if((api.mouse && window.innerWidth > 765) &&\r\n (api.mouse.target.classList.contains(`tooltip-delete-${plotNr}`) ||\r\n api.mouse.target.parentElement.classList.contains(`tooltip-delete-${plotNr}`) ||\r\n api.mouse.target.parentElement.parentElement.classList.contains(`tooltip-delete-${plotNr}`)\r\n )) {\r\n this.togglePlotAccordion(e, plotNr);\r\n this.removeMapHilights();\r\n }\r\n }\r\n }\r\n })\r\n //remove data for other qtip\r\n .removeData('qtip');\r\n\r\n //set plot so it won't create one if it already exist\r\n Vue.set(plot, 'TooltipClick', true);\r\n this.testApi = $(`#area-${plot.PlotNr}`).qtip('api');\r\n }\r\n\r\n //if click is triggered outside map (accordion)\r\n if(triggerclick) {\r\n //open tooltip on click\r\n if($(`.objectdetail-map-tooltip-${plot.PlotNr}`).length) {\r\n //Remove Map Hilights\r\n this.removeMapHilights();\r\n\r\n if($(`.objectdetail-map-tooltip-${plot.PlotNr}`).attr('aria-hidden') === 'true') {\r\n // Keep the map hilight of open plot\r\n this.showMapHilight(plot.PlotNr);\r\n }\r\n\r\n $('.qtip').qtip('hide');\r\n $(`.objectdetail-map-tooltip-${plot.PlotNr}`).qtip('toggle');\r\n\r\n } else {\r\n $(`#area-${plot.PlotNr}`).click();\r\n this.clickFromOutsideMap = true;\r\n }\r\n\r\n if(window.innerWidth < 765 && plot.Coordinates !== \"\") {\r\n $('html, body').animate({\r\n scrollTop: $(this.mapImage).offset().top - $('.header').outerHeight(true)\r\n // $(this.mapImage).offset().top + ($(this.mapImage).outerHeight(true) - $('.header').outerHeight(true))\r\n }, 300);\r\n }\r\n }\r\n },\r\n togglePlotStatusPopup(plot, triggerHover = false, showPopUp = false) {\r\n if(this.body.classList.contains('non-touch-device')) {\r\n if (plot.Coordinates !== \"\" && !plot.Tooltip) {\r\n $(`#area-${plot.PlotNr}`).qtip({\r\n content: {\r\n text: `${plot.PlotNr}
${plot.StatusFriendly}
`\r\n },\r\n style: {\r\n classes: `objectdetail-map__status-qTip objectdetail-map-status-tooltip-${plot.PlotNr} objectdetail-map__status-qTip--${plot.Status}`,\r\n },\r\n position: {\r\n container: $('.js-objectdetail-map'),\r\n effect: function (api, pos, viewport) {\r\n $(this).animate(pos, {\r\n duration: 0,\r\n easing: 'linear',\r\n queue: false,\r\n viewport: true,\r\n });\r\n },\r\n my: 'bottom center',\r\n at: 'top center',\r\n adjust: {\r\n screen: true,\r\n x: 0,\r\n y: 0\r\n },\r\n },\r\n show: {\r\n event: `mouseover`,\r\n ready: true,\r\n },\r\n hide: {\r\n event: `click mouseleave`\r\n },\r\n events: {\r\n show: (e, api) => {\r\n if($(`.objectdetail-map-tooltip-${plot.PlotNr}`).attr('aria-hidden') === \"false\") {\r\n api.tooltip.qtip('hide');\r\n return false;\r\n }\r\n\r\n const plotNr = api.target[0].id.split('-')[1];\r\n this.togglePlotAccordion(e, plotNr);\r\n },\r\n hide: (e, api) => {\r\n const plotNr = api.target[0].id.split('-')[1];\r\n this.togglePlotAccordion(e, plotNr);\r\n }\r\n }\r\n })\r\n .removeData('qtip');\r\n\r\n Vue.set(plot, 'Tooltip', true);\r\n $(`#area-${plot.PlotNr}`).qtip('toggle', true);\r\n }\r\n\r\n //if hover is triggered outside map (accordion)\r\n if(triggerHover) {\r\n\r\n if(showPopUp) {\r\n $(`#area-${plot.PlotNr}`).mouseover();\r\n this.hoverVisible = true;\r\n\r\n if(plot.Tooltip) {\r\n this.showMapHilight(plot.PlotNr);\r\n }\r\n\r\n } else {\r\n this.removeMapHilights(plot);\r\n this.hoverVisible = false;\r\n $(`#area-${plot.PlotNr}`).mouseleave();\r\n }\r\n }\r\n }\r\n },\r\n getListItem(plotNr, showAccordion, e) {\r\n //loop through all items in list\r\n for(let i = 0; i < this.plotList.length; i+=1) {\r\n //remove hover or focus status from all the items\r\n this.plotList[i].classList.remove('hover');\r\n this.plotList[i].classList.remove('focus');\r\n\r\n //find correspondening item\r\n if(this.plotList[i].getAttribute('data-id') === plotNr) {\r\n const accordion = this.plotList[i].querySelector('.js-accordion-open');\r\n const accordionCollapse = this.plotList[i].querySelector('.js-accordion-collapse');\r\n\r\n //handle open accordion\r\n if(showAccordion) {\r\n //open accordion\r\n\r\n if(!this.plotList[i].dataset.accordionActive && e.type !== 'tooltiphide') {\r\n accordion.click();\r\n this.plotList[i].classList.add('focus');\r\n } else { //close accordion\r\n this.plotList[i].removeAttribute('data-accordion-active');\r\n accordionCollapse.style.height = '0px';\r\n accordionCollapse.style.position = 'relative';\r\n accordionCollapse.style.opacity = 1;\r\n accordionCollapse.style.visibility = 'visible';\r\n //close qtip\r\n }\r\n } else { //handle hover\r\n if(!this.hoverVisible) {\r\n //add hover state\r\n this.plotList[i].classList.add('hover');\r\n this.hoverVisible = true;\r\n } else {\r\n //remove hover state\r\n this.plotList[i].classList.remove('hover');\r\n this.hoverVisible = false;\r\n }\r\n }\r\n }\r\n }\r\n },\r\n getListItemByPlotNr(plotNr) {\r\n let item;\r\n this.plotList.forEach((listItem) => {\r\n if (listItem.dataset.id === plotNr) {\r\n item = listItem;\r\n }\r\n });\r\n\r\n return item;\r\n },\r\n getPlotColor(plot) {\r\n switch (plot.Status)\r\n {\r\n case \"IsSoonForSale\":\r\n return \"4184dd\";\r\n case \"IsForSale\":\r\n return \"4DFF9A\";\r\n case \"IsSold\":\r\n return \"FF4D5E\";\r\n case \"IsInOption\":\r\n return \"FFAC4D\";\r\n default:\r\n return \"0be900\";\r\n }\r\n },\r\n removeMapHilights(plot = null) {\r\n if (this.activeStatusFilters.length > 0) {\r\n // hovert plot\r\n if(plot !== null) {\r\n let isActiveFilter = this.activeStatusFilters.includes(plot.Status);\r\n\r\n if(!isActiveFilter) {\r\n let plotArea = $(`#area-${plot.PlotNr}`).data('maphilight') || {};\r\n plotArea.alwaysOn = false;\r\n $(`#area-${plot.PlotNr}`).data('maphilight', plotArea).trigger('alwaysOn.maphilight');\r\n }\r\n }\r\n\r\n for (let i = 0; i < this.activeStatusFilters.length; i += 1) {\r\n mapAreas.forEach((area) => {\r\n if (area.dataset.status !== this.activeStatusFilters[i]) {\r\n let objectData = $(area).data('maphilight') || {};\r\n objectData.alwaysOn = false;\r\n $(area).data('maphilight', objectData).trigger('alwaysOn.maphilight');\r\n } else {\r\n return;\r\n }\r\n });\r\n }\r\n } else {\r\n this.mapAreas.forEach((area) => {\r\n let objectData = $(area).data('maphilight') || {};\r\n objectData.alwaysOn = false;\r\n $(area).data('maphilight', objectData).trigger('alwaysOn.maphilight');\r\n });\r\n }\r\n },\r\n showMapHilight(plotNr) {\r\n let objectData = $(`#area-${plotNr}`).data('maphilight') || {};\r\n objectData.alwaysOn = true;\r\n $(`#area-${plotNr}`).data('maphilight', objectData).trigger('alwaysOn.maphilight');\r\n },\r\n hilightPlotsOnFilter(status) {\r\n let filterActive = false;\r\n for (let s = 0; s < this.statusFilters.length; s += 1) {\r\n if (this.statusFilters[s].dataset.status === status) {\r\n if (this.statusFilters[s].classList.contains('is-active')) {\r\n this.statusFilters[s].classList.remove('is-active');\r\n filterActive = false;\r\n\r\n let index = this.activeStatusFilters.indexOf(status);\r\n this.activeStatusFilters.splice(index);\r\n\r\n } else {\r\n this.statusFilters[s].classList.add('is-active');\r\n filterActive = true;\r\n\r\n this.activeStatusFilters.push(status);\r\n }\r\n }\r\n }\r\n\r\n for(let i = 0; i < this.objectPlots.length; i+=1) {\r\n if(this.objectPlots[i].Status === status) {\r\n if (filterActive) {\r\n this.showMapHilight(this.objectPlots[i].PlotNr);\r\n } else {\r\n let objectData = $(`#area-${this.objectPlots[i].PlotNr}`).data('maphilight') || {};\r\n objectData.alwaysOn = false;\r\n // objectData.neverOn = true;\r\n $(`#area-${this.objectPlots[i].PlotNr}`).data('maphilight', objectData).trigger('alwaysOn.maphilight');\r\n }\r\n }\r\n }\r\n }\r\n }\r\n});"]}