{"version":3,"sources":["webpack:///D:/a/1/s/frontend/src/views/blocks/parkingDetailsHeroBlock/js/parkingDetailsHeroBlock.js","webpack:///D:/a/1/s/frontend/node_modules/babel-runtime/core-js/json/stringify.js","webpack:///D:/a/1/s/frontend/node_modules/core-js/library/fn/json/stringify.js","webpack:///./api.js"],"names":["Api","__webpack_require__","ParkingDetailsHeroBlock","el","_classCallCheck3","default","this","$el","$","$openinghours","$accordion","api","data","lat","lng","zoom","iconBookOnline","dataset","iconMonthlyParking","iconParkingCard","iconEvCharger","iconLabelBookOnline","iconLabelMonthlyParking","iconLabelParkingCard","iconLabelEvCharger","submitButtonLabel","setParkingDetailsHeroBlock","fetchData","_this","getApi","then","response","length","showMap","_this2","find","on","window","trigger","Event","dispatchEvent","$target","delta","deltaAttr","attr","height","offsetHeader","offset","top","stop","animate","scrollTop","e","triggerAcc","currentTarget","collapseId","openingTime","each","index","element","_val","value","split","currentDay","Date","getDay","html","addClass","$headingEl","siblings","_this3","$blk","mapCenter","google","maps","LatLng","map","Map","document","getElementById","center","disableDefaultUI","gestureHandling","clickableIcons","bounds","LatLngBounds","Marker","position","icon","url","scaledSize","Size","extend","surroundingIcon","infowindow","InfoWindow","i","externalCarParkInfo","pinUrl","_marker","addListener","contentString","renderWindow","setContent","open","googleMapUrl","openGoogleMapUrl","carParkName","address","distance","price","services","includes","bookUrl","detailUrl","module","exports","__esModule","core","$JSON","JSON","stringify","it","apply","arguments","fetch","headers","Content-Type","json","_promise2","resolve","catch","error","reject","callApi","undefined","method","body","_stringify2","Headers","credentials","isSuccessful","status","successful"],"mappings":"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","file":"block-69.b9f88d4cffa17521b332.js","sourcesContent":["// CONSTANTS are all caps.\nconst NS = 'ParkingDetailsHeroBlock';\nconst CLS = 'parkingDetailsHeroBlock';\nconst BLK = '.' + CLS + '-';\n\n// Import stuff here if you need to or even better to import them dynamically\n// for ex. of dynamic import check out ./loadBlk.js using Webpack dynamic imports as chunks.\n// import $ from 'jquery'\n// import rParkingDetailsHeroBlock from './ParkingDetailsHeroBlock.jsx';\n// import React from 'react';\n// import ReactDOM from 'react-dom';\nimport {utils} from 'global/js/utils';\nimport * as Api from '../../../../global/js/api';\n\nexport class ParkingDetailsHeroBlock {\n\tconstructor(el) {\n\t\t// $el is the blk node return by the loadParkingDetailsHeroBlock function\n\t\tthis.$el = $(el);\n\t\tthis.$openinghours = $('#parkingServiceBlock-openinghours');\n\t\tthis.$accordion = $('#parkingServiceBlock-accordion');\n\t\tthis.api = $(el).data('api');\n\t\tthis.lat = $(el).data('lat');\n\t\tthis.lng = $(el).data('lng');\n\t\tthis.zoom = $(el).data('zoom');\n\t\tthis.iconBookOnline = el.dataset.iconBookOnline;\n\t\tthis.iconMonthlyParking = el.dataset.iconMonthlyParking;\n\t\tthis.iconParkingCard = el.dataset.iconParkingCard;\n\t\tthis.iconEvCharger = el.dataset.iconEvCharger;\n\t\tthis.iconLabelBookOnline = el.dataset.iconLabelBookOnline || 'Book Online';\n\t\tthis.iconLabelMonthlyParking = el.dataset.iconLabelMonthlyParking || 'Monthly Parking';\n\t\tthis.iconLabelParkingCard = el.dataset.iconLabelParkingCard || 'Parking Card';\n\t\tthis.iconLabelEvCharger = el.dataset.iconLabelEvCharger || 'EV Charging';\n\t\tthis.submitButtonLabel = el.dataset.submitButtonLabel || 'Book Now';\n\t}\n\n\tinit() {\n\t\t// this.loadGoogleMapsJs();\n\t\tthis.setParkingDetailsHeroBlock();\n\t\tthis.fetchData();\n\t}\n\n\tfetchData() {\n\t\tconsole.log(123123123, this.api);\n\n\t\tApi.getApi(this.api).then((response) => {\n\t\t\tconsole.log(response);\n\n\t\t\tif (response &&\n\t\t\t\tresponse.data &&\n\t\t\t\tresponse.data.length >= 0) {\n\t\t\t\t\tconsole.log(response);\n\t\t\t\t\tthis.showMap(response.data);\n\n\t\t\t} else {\n\t\t\t\tconsole.log('return response is null');\n\t\t\t}\n\t\t});\n\t}\n\n\tsetParkingDetailsHeroBlock() {\n\t\t// Add Some logic here\n\t\tconst $blk = $(this.$el);\n\n\t\t// to recalculate slick's slider width\n\t\t$blk.find('#parkingGallery').on('shown.bs.modal', () => {\n\t\t\t// not supported on all browsers\n\t\t\t$(window).trigger('resize');\n\t\t\t// preferred (native)\n\t\t\tif (typeof (Event) === 'function') {\n\t\t\t\twindow.dispatchEvent(new Event('resize'));\n\t\t\t}\n\t\t});\n\n\t\t// this.$el.find('.parkingServiceBlock-accordion-anchor').on('click', () => {\n\t\t// \tthis.scrollToAccordion();\n\t\t// });\n\n\t\tthis.$el.find('.parkingServiceBlock-openinghours-anchor').on('click', () => {\n\t\t\tlet $target = $(`.parkingServiceBlock-openinghours`);\n let delta = 0;\n let deltaAttr = $('.siteHeader').attr('data-sticky');\n if (typeof deltaAttr !== 'undefined' && deltaAttr !== 'false')\n {\n delta = $('.siteHeader').height();\n }\n let offsetHeader = $target.offset().top - (delta * 2) - 16;\n if( $target.length ) {\n $('html, body').stop().animate({\n scrollTop: offsetHeader,\n }, 1000);\n }\n\t\t});\n\n\t\tthis.$el.find('.direction-btn').on('click', () => {\n\t\t\t// let newUrl = this.openGoogleMapUrl(this.lat, this.lng);\n\t\t\t// window.location.href = newUrl;\n\t\t\t// window.open(newUrl, '_blank');\n\n\t\t\t$('html, body').stop().animate({\n\t\t\t\tscrollTop: $('.directionsBlock').offset().top,\n\t\t\t}, 1000);\n\t\t})\n\n\t\tthis.$el.find(`.parkingDetailsHeroBlock-accordion-trigger`).on('click', (e) => {\n\t\t\tthis.triggerAcc(e.currentTarget.dataset.collapseId);\n\t\t});\n\n\t\tconst daysOfWeek = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];\n\t\tconst openingTime = {};\n\t\t$('#openingTimeList input:hidden').each((index, element)=> {\n\t\t\tconst _val = element.value.split('|');\n\t\t\topeningTime[_val[0]] = _val[1];\n\t\t});\n\t\tconst currentDay = daysOfWeek[new Date().getDay()];\n\t\tthis.$el.find('.opening-time').html(openingTime[currentDay]);\n\t}\n\n\ttriggerAcc(collapseId) {\n\t\tif(collapseId && collapseId.length > 0) {\n\t\t\t$(`#${collapseId}`).addClass('show');\n\t\t\tlet $headingEl = $(`#${collapseId}`).siblings();\n\t\t\tlet delta = 0;\n let deltaAttr = $('.siteHeader').attr('data-sticky');\n if (typeof deltaAttr !== 'undefined' && deltaAttr !== 'false') {\n delta = $('.siteHeader').height();\n }\n\t\t\tlet offsetHeader = $headingEl.offset().top - (delta * 2) - 16;\n\t\t\tif( $headingEl.length ) {\n\t\t\t\t$('html, body').stop().animate({\n\t\t\t\t\tscrollTop: offsetHeader,\n\t\t\t\t}, 1000);\n\t\t\t}\n\t\t}\n\t}\n\n\tshowMap(data) {\n\t\tconsole.log(data);\n\n\t\tconst $blk = $(this.$el);\n\t\tconst This = this;\n\t\tlet lat = $blk.data('lat');\n\t\tlet lng = $blk.data('lng');\n\t\tlet mapCenter = new google.maps.LatLng(lat, lng);\n\n\t\tlet map = new google.maps.Map(\n\t\t\tdocument.getElementById('map-holder'), {\n\t\t\t\tcenter: mapCenter,\n\t\t\t\tzoom: this.zoom,\n\t\t\t\tdisableDefaultUI: true,\n\t\t\t\tgestureHandling: 'greedy',\n\t\t\t\tclickableIcons: false,\n\t\t});\n\t\tlet bounds = new google.maps.LatLngBounds();\n\n\t\t// map center location\n\t\tlet centerMarker = new google.maps.Marker({\n\t\t\tposition: mapCenter,\n\t\t\ticon: {\n\t\t\t\turl: $blk.find('.map-red-icon').attr('src'),\n\t\t\t\tscaledSize: new google.maps.Size(36, 48),\n\t\t\t},\n\t\t\tmap: map,\n\t\t});\n\t\tbounds.extend(mapCenter);\n\n\n\t\tlet redIcon = {\n\t\t\turl: $blk.find('.map-red-icon').attr('src'),\n\t\t\tscaledSize: new google.maps.Size(25, 33),\n\t\t};\n\n\t\tlet purpleIcon = {\n\t\t\turl: $blk.find('.map-purple-icon').attr('src'),\n\t\t\tscaledSize: new google.maps.Size(25, 33),\n\t\t};\n\n\t\tlet surroundingIcon = {\n\t\t\turl: '/assets/images/map/pin.png',\n\t\t\tscaledSize: new google.maps.Size(25, 33),\n\t\t};\n\n\t\tlet infowindow = new google.maps.InfoWindow({\n\t\t\t// content: contentString,\n\t\t});\n\n\n\t\tdata.map((e, i) => {\n\t\t\tlet position = new google.maps.LatLng(e.lat, e.lng);\n\t\t\tbounds.extend(position);\n\n\t\t\tif (e.externalCarParkInfo) {\n\t\t\t\tsurroundingIcon.url = e.externalCarParkInfo.pinUrl;\n\t\t\t} else {\n\t\t\t\tsurroundingIcon.url = '/assets/images/map/pin.png';\n\t\t\t}\n\n\t\t\tlet _marker = new google.maps.Marker({\n\t\t\t\tposition: position,\n\t\t\t\ticon: surroundingIcon,\n\t\t\t\tmap: map,\n\t\t\t});\n\n\t\t\t_marker.addListener('click', () => {\n\t\t\t\tlet contentString = this.renderWindow(e);\n\t\t\t\tinfowindow.setContent(contentString);\n\t\t\t\tinfowindow.open(map, _marker);\n\t\t\t});\n\t\t});\n\n\t\t// console.log(map);\n\t\t// to cover all markers\n\t\t// map.fitBounds(bounds);\n\t}\n\n\t// Add more functions like on above here\n\topenGoogleMapUrl(lat, lng) {\n\t\treturn `https://maps.google.com/?q=${lat},${lng}`;\n\t}\n\n\trenderWindow(e) {\n\t\tconsole.log('ParkingDetailsHeroBlock ~ renderWindow ~ e', e);\n\t\t// {\n\t\t// \t\"lat\": -36.84928,\n\t\t// \t\"lng\": 174.749,\n\t\t// \t\"icon\": \"Other\",\n\t\t// \t\"carParkName\": \"CarParkName1\",\n\t\t// \t\"address\": \"181 Little Collins St, Melbourne\",\n\t\t// \t\"bookUrl\": \"#\",\n\t\t// \t\"detailUrl\": \"#\",\n\t\t// \t\"price\": \"12.00\",\n\t\t// \t\"distance\": \"0.8\",\n\t\t// \t\"services\":[\"book a bay\", \"montly\"]\n\t\t// },\n\t\tlet googleMapUrl = this.openGoogleMapUrl(e.lat, e.lng);\n\t\tconst iconBookOnline = this.iconBookOnline ? `style=\"background-image:url(${this.iconBookOnline})\"` : '';\n\t\tconst iconMonthlyParking = this.iconMonthlyParking ? `style=\"background-image:url(${this.iconMonthlyParking})\"` : '';\n\t\tconst iconParkingCard = this.iconParkingCard ? `style=\"background-image:url(${this.iconParkingCard})\"` : '';\n\t\tconst iconEvCharger = this.iconEvCharger? `style=\"background-image:url(${this.iconEvCharger})\"` : '';\n\t\tvar contentString =\n\t\t`\n\t\t