{"version":3,"sources":["webpack:///./node_modules/core-js/internals/engine-ff-version.js","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack:///./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack:///./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack:///./node_modules/core-js/internals/array-from.js","webpack:///./node_modules/core-js/modules/es.array.sort.js","webpack:///./node_modules/core-js/internals/engine-webkit-version.js","webpack:///./node_modules/@babel/runtime/helpers/esm/objectSpread2.js","webpack:///./src/client/ClusterSpotsModal.vue?ae5b","webpack:///./src/client/satellite_map.vue","webpack:///src/client/satellite_map.vue","webpack:///./src/client/satellite_map.vue?92f6","webpack:///./src/client/satellite_map.vue?b738","webpack:///./src/client/ClusterSpotsModal.vue","webpack:///src/client/ClusterSpotsModal.vue","webpack:///./src/client/ClusterSpotsModal.vue?ab21","webpack:///./src/client/ClusterSpotsModal.vue?e2ad","webpack:///./node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack:///./node_modules/core-js/modules/es.array.from.js","webpack:///./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack:///./node_modules/core-js/modules/es.object.keys.js","webpack:///./src/client/satellite_map.vue?93cc","webpack:///./node_modules/core-js/internals/engine-is-ie-or-edge.js","webpack:///./node_modules/core-js/modules/es.object.get-own-property-descriptors.js","webpack:///./node_modules/core-js/modules/es.object.get-own-property-descriptor.js"],"names":["userAgent","firefox","match","module","exports","_arrayLikeToArray","arr","len","length","i","arr2","Array","_arrayWithoutHoles","isArray","arrayLikeToArray","_iterableToArray","iter","Symbol","iterator","from","_unsupportedIterableToArray","o","minLen","n","Object","prototype","toString","call","slice","constructor","name","test","_nonIterableSpread","TypeError","_toConsumableArray","arrayWithoutHoles","iterableToArray","unsupportedIterableToArray","nonIterableSpread","bind","toObject","callWithSafeIterationClosing","isArrayIteratorMethod","isConstructor","lengthOfArrayLike","createProperty","getIterator","getIteratorMethod","$Array","arrayLike","O","IS_CONSTRUCTOR","this","argumentsLength","arguments","mapfn","undefined","mapping","result","step","next","value","iteratorMethod","index","done","$","uncurryThis","aCallable","deletePropertyOrThrow","fails","internalSort","arrayMethodIsStrict","FF","IE_OR_EDGE","V8","WEBKIT","un$Sort","sort","push","FAILS_ON_UNDEFINED","FAILS_ON_NULL","STRICT_METHOD","STABLE_SORT","code","chr","String","fromCharCode","k","v","a","b","charAt","FORCED","getSortCompare","comparefn","x","y","target","proto","forced","array","itemsLength","items","arrayLength","webkit","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","apply","_objectSpread2","source","forEach","key","defineProperty","getOwnPropertyDescriptors","defineProperties","render","_vm","_c","_self","staticClass","_v","_s","$t","attrs","directives","rawName","default_map","expression","domProps","_q","on","$event","saveMapStyle","openSiderBar","mapLoaded","openFilters","_e","version_id","is_pro_sync","model","selectedProjectId","callback","$$v","onProjectClick","ref","staticStyle","_l","displayedProjects","project","id","countableQuestions","totalSpots","_m","spotsData","openAdminSpotDetail","applyFilter","getClientAdminSpots","staticRenderFns","toast","position","Vue","props","data","routeTracks","accessToken","spotData","map","features","mapFeatures","spotForm","requireLatLong","spot_type_id","location_id","detail","spot_date","latitude","longitude","questions","client_url","client_id","adminMapStyle","default_map_zoom","default_latitude","default_longitude","appImage","spotDetailImages","spotDetail","markerColor","projectOptions","loading","currentPage","perPage","components","ClusterSpotsModal","FiltersModal","TotalCategoryCount","SpotDetailsModal","beforeMount","watch","newProjectId","created","mounted","methods","API","type","properties","title","spot_id","description","spotted_by","spotted_username","iconUrl","geometry","coordinates","getClientProjectSpots","projectID","project_id","initMap","lngLat","mapboxgl","container","style","center","zoom","maxZoom","attributionControl","draggable","setLngLat","addTo","positionOptions","enableHighAccuracy","trackUserLocation","showUserHeading","cluster","clusterMaxZoom","clusterRadius","paint","layout","trackCoordinates","markerElement","coord","setPopup","offset","setHTML","console","categoryColors","feature","layers","clusterId","clusterSource","logo","event","params","date_from","date_to","categories","locations","spotTypes","surveys","selectedQuestions","countRangeFilter","countRangeValues","openClusterSpotDetail","aFeatures","formatDate","date","getAppSettings","getNames","page","default_dashboard","defaultProject","localStorage","component","spot","openDetils","formatDateMM","mixins","isDisabled","validations","computed","beforeDestroy","anObject","iteratorClose","fn","ENTRIES","error","checkCorrectnessOfIteration","INCORRECT_ITERATION","iterable","stat","_defineProperty","obj","configurable","writable","nativeKeys","FAILS_ON_PRIMITIVES","it","UA","DESCRIPTORS","toIndexedObject","getOwnPropertyDescriptorModule","sham","descriptor","f","nativeGetOwnPropertyDescriptor"],"mappings":"qGAAA,IAAIA,EAAY,EAAQ,QAEpBC,EAAUD,EAAUE,MAAM,mBAE9BC,EAAOC,UAAYH,IAAYA,EAAQ,I,kCCJxB,SAASI,EAAkBC,EAAKC,IAClC,MAAPA,GAAeA,EAAMD,EAAIE,UAAQD,EAAMD,EAAIE,QAE/C,IAAK,IAAIC,EAAI,EAAGC,EAAO,IAAIC,MAAMJ,GAAME,EAAIF,EAAKE,IAC9CC,EAAKD,GAAKH,EAAIG,GAGhB,OAAOC,ECNM,SAASE,EAAmBN,GACzC,GAAIK,MAAME,QAAQP,GAAM,OAAOQ,EAAiBR,G,wGCFnC,SAASS,EAAiBC,GACvC,GAAsB,qBAAXC,QAAmD,MAAzBD,EAAKC,OAAOC,WAA2C,MAAtBF,EAAK,cAAuB,OAAOL,MAAMQ,KAAKH,G,wCCAvG,SAASI,EAA4BC,EAAGC,GACrD,GAAKD,EAAL,CACA,GAAiB,kBAANA,EAAgB,OAAOP,EAAiBO,EAAGC,GACtD,IAAIC,EAAIC,OAAOC,UAAUC,SAASC,KAAKN,GAAGO,MAAM,GAAI,GAEpD,MADU,WAANL,GAAkBF,EAAEQ,cAAaN,EAAIF,EAAEQ,YAAYC,MAC7C,QAANP,GAAqB,QAANA,EAAoBZ,MAAMQ,KAAKE,GACxC,cAANE,GAAqB,2CAA2CQ,KAAKR,GAAWT,EAAiBO,EAAGC,QAAxG,G,UCPa,SAASU,IACtB,MAAM,IAAIC,UAAU,wICGP,SAASC,EAAmB5B,GACzC,OAAO6B,EAAkB7B,IAAQ8B,EAAgB9B,IAAQ+B,EAA2B/B,IAAQgC,M,oCCJ9F,IAAIC,EAAO,EAAQ,QACfZ,EAAO,EAAQ,QACfa,EAAW,EAAQ,QACnBC,EAA+B,EAAQ,QACvCC,EAAwB,EAAQ,QAChCC,EAAgB,EAAQ,QACxBC,EAAoB,EAAQ,QAC5BC,EAAiB,EAAQ,QACzBC,EAAc,EAAQ,QACtBC,EAAoB,EAAQ,QAE5BC,EAASrC,MAIbR,EAAOC,QAAU,SAAc6C,GAC7B,IAAIC,EAAIV,EAASS,GACbE,EAAiBR,EAAcS,MAC/BC,EAAkBC,UAAU9C,OAC5B+C,EAAQF,EAAkB,EAAIC,UAAU,QAAKE,EAC7CC,OAAoBD,IAAVD,EACVE,IAASF,EAAQhB,EAAKgB,EAAOF,EAAkB,EAAIC,UAAU,QAAKE,IACtE,IAEIhD,EAAQkD,EAAQC,EAAMzC,EAAU0C,EAAMC,EAFtCC,EAAiBf,EAAkBG,GACnCa,EAAQ,EAGZ,IAAID,GAAoBV,OAASJ,GAAUN,EAAsBoB,GAW/D,IAFAtD,EAASoC,EAAkBM,GAC3BQ,EAASP,EAAiB,IAAIC,KAAK5C,GAAUwC,EAAOxC,GAC9CA,EAASuD,EAAOA,IACpBF,EAAQJ,EAAUF,EAAML,EAAEa,GAAQA,GAASb,EAAEa,GAC7ClB,EAAea,EAAQK,EAAOF,QAThC,IAHA3C,EAAW4B,EAAYI,EAAGY,GAC1BF,EAAO1C,EAAS0C,KAChBF,EAASP,EAAiB,IAAIC,KAAS,KAC/BO,EAAOhC,EAAKiC,EAAM1C,IAAW8C,KAAMD,IACzCF,EAAQJ,EAAUhB,EAA6BvB,EAAUqC,EAAO,CAACI,EAAKE,MAAOE,IAAQ,GAAQJ,EAAKE,MAClGhB,EAAea,EAAQK,EAAOF,GAWlC,OADAH,EAAOlD,OAASuD,EACTL,I,oCC3CT,IAAIO,EAAI,EAAQ,QACZC,EAAc,EAAQ,QACtBC,EAAY,EAAQ,QACpB3B,EAAW,EAAQ,QACnBI,EAAoB,EAAQ,QAC5BwB,EAAwB,EAAQ,QAChC1C,EAAW,EAAQ,QACnB2C,EAAQ,EAAQ,QAChBC,EAAe,EAAQ,QACvBC,EAAsB,EAAQ,QAC9BC,EAAK,EAAQ,QACbC,EAAa,EAAQ,QACrBC,EAAK,EAAQ,QACbC,EAAS,EAAQ,QAEjB5C,EAAO,GACP6C,EAAUV,EAAYnC,EAAK8C,MAC3BC,EAAOZ,EAAYnC,EAAK+C,MAGxBC,EAAqBV,GAAM,WAC7BtC,EAAK8C,UAAKrB,MAGRwB,EAAgBX,GAAM,WACxBtC,EAAK8C,KAAK,SAGRI,EAAgBV,EAAoB,QAEpCW,GAAeb,GAAM,WAEvB,GAAIK,EAAI,OAAOA,EAAK,GACpB,KAAIF,GAAMA,EAAK,GAAf,CACA,GAAIC,EAAY,OAAO,EACvB,GAAIE,EAAQ,OAAOA,EAAS,IAE5B,IACIQ,EAAMC,EAAKvB,EAAOE,EADlBL,EAAS,GAIb,IAAKyB,EAAO,GAAIA,EAAO,GAAIA,IAAQ,CAGjC,OAFAC,EAAMC,OAAOC,aAAaH,GAElBA,GACN,KAAK,GAAI,KAAK,GAAI,KAAK,GAAI,KAAK,GAAItB,EAAQ,EAAG,MAC/C,KAAK,GAAI,KAAK,GAAIA,EAAQ,EAAG,MAC7B,QAASA,EAAQ,EAGnB,IAAKE,EAAQ,EAAGA,EAAQ,GAAIA,IAC1BhC,EAAK+C,KAAK,CAAES,EAAGH,EAAMrB,EAAOyB,EAAG3B,IAMnC,IAFA9B,EAAK8C,MAAK,SAAUY,EAAGC,GAAK,OAAOA,EAAEF,EAAIC,EAAED,KAEtCzB,EAAQ,EAAGA,EAAQhC,EAAKvB,OAAQuD,IACnCqB,EAAMrD,EAAKgC,GAAOwB,EAAEI,OAAO,GACvBjC,EAAOiC,OAAOjC,EAAOlD,OAAS,KAAO4E,IAAK1B,GAAU0B,GAG1D,MAAkB,gBAAX1B,MAGLkC,EAASb,IAAuBC,IAAkBC,IAAkBC,EAEpEW,EAAiB,SAAUC,GAC7B,OAAO,SAAUC,EAAGC,GAClB,YAAUxC,IAANwC,GAAyB,OACnBxC,IAANuC,EAAwB,OACVvC,IAAdsC,GAAiCA,EAAUC,EAAGC,IAAM,EACjDtE,EAASqE,GAAKrE,EAASsE,GAAK,GAAK,IAM5C/B,EAAE,CAAEgC,OAAQ,QAASC,OAAO,EAAMC,OAAQP,GAAU,CAClDf,KAAM,SAAciB,QACAtC,IAAdsC,GAAyB3B,EAAU2B,GAEvC,IAAIM,EAAQ5D,EAASY,MAErB,GAAI8B,EAAa,YAAqB1B,IAAdsC,EAA0BlB,EAAQwB,GAASxB,EAAQwB,EAAON,GAElF,IAEIO,EAAatC,EAFbuC,EAAQ,GACRC,EAAc3D,EAAkBwD,GAGpC,IAAKrC,EAAQ,EAAGA,EAAQwC,EAAaxC,IAC/BA,KAASqC,GAAOtB,EAAKwB,EAAOF,EAAMrC,IAGxCO,EAAagC,EAAOT,EAAeC,IAEnCO,EAAcC,EAAM9F,OACpBuD,EAAQ,EAER,MAAOA,EAAQsC,EAAaD,EAAMrC,GAASuC,EAAMvC,KACjD,MAAOA,EAAQwC,EAAanC,EAAsBgC,EAAOrC,KAEzD,OAAOqC,M,uBCvGX,IAAIpG,EAAY,EAAQ,QAEpBwG,EAASxG,EAAUE,MAAM,wBAE7BC,EAAOC,UAAYoG,IAAWA,EAAO,I,0JCFrC,SAASC,EAAQC,EAAQC,GACvB,IAAIC,EAAOpF,OAAOoF,KAAKF,GAEvB,GAAIlF,OAAOqF,sBAAuB,CAChC,IAAIC,EAAUtF,OAAOqF,sBAAsBH,GAC3CC,IAAmBG,EAAUA,EAAQC,QAAO,SAAUC,GACpD,OAAOxF,OAAOyF,yBAAyBP,EAAQM,GAAKE,eACjDN,EAAK9B,KAAKqC,MAAMP,EAAME,GAG7B,OAAOF,EAGM,SAASQ,EAAenB,GACrC,IAAK,IAAIxF,EAAI,EAAGA,EAAI6C,UAAU9C,OAAQC,IAAK,CACzC,IAAI4G,EAAS,MAAQ/D,UAAU7C,GAAK6C,UAAU7C,GAAK,GACnDA,EAAI,EAAIgG,EAAQjF,OAAO6F,IAAS,GAAIC,SAAQ,SAAUC,GACpDC,eAAevB,EAAQsB,EAAKF,EAAOE,OAChC/F,OAAOiG,0BAA4BjG,OAAOkG,iBAAiBzB,EAAQzE,OAAOiG,0BAA0BJ,IAAWZ,EAAQjF,OAAO6F,IAASC,SAAQ,SAAUC,GAC5J/F,OAAOgG,eAAevB,EAAQsB,EAAK/F,OAAOyF,yBAAyBI,EAAQE,OAI/E,OAAOtB,I,qCCzBT,W,2DCAI0B,G,UAAS,WAAkB,IAAIC,EAAIxE,KAAKyE,EAAGD,EAAIE,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACE,YAAY,mDAAmD,CAACF,EAAG,eAAeA,EAAG,MAAM,CAACE,YAAY,OAAO,CAACF,EAAG,MAAM,CAACE,YAAY,uBAAuB,CAACF,EAAG,MAAM,CAACE,YAAY,QAAQ,CAACF,EAAG,MAAM,CAACE,YAAY,eAAe,CAACF,EAAG,KAAK,CAACE,YAAY,cAAc,CAACH,EAAII,GAAGJ,EAAIK,GAAGL,EAAIM,GAAG,0BAA0BL,EAAG,MAAM,CAACE,YAAY,2BAA2B,CAACF,EAAG,MAAM,CAACE,YAAY,iCAAiC,CAACF,EAAG,MAAM,CAACM,MAAM,CAAC,GAAK,SAAS,CAACN,EAAG,MAAM,CAACA,EAAG,QAAQ,CAACO,WAAW,CAAC,CAACtG,KAAK,QAAQuG,QAAQ,UAAUxE,MAAO+D,EAAIU,YAAaC,WAAW,gBAAgBJ,MAAM,CAAC,GAAK,eAAe,KAAO,QAAQ,MAAQ,uCAAuCK,SAAQ,gBAAE,QAA8B,wCAApBZ,EAAIU,aAAhB,UAAgFV,EAAIa,GAAGb,EAAIU,YAAY,wCAAwCI,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOf,EAAIgB,aAAa,iBAAiB,OAAS,SAASD,GAAQf,EAAIU,YAAY,0CAA0CT,EAAG,QAAQ,CAACE,YAAY,YAAYI,MAAM,CAAC,IAAM,iBAAiB,CAACP,EAAII,GAAGJ,EAAIK,GAAGL,EAAIM,GAAG,mBAAmBL,EAAG,MAAM,CAACA,EAAG,QAAQ,CAACO,WAAW,CAAC,CAACtG,KAAK,QAAQuG,QAAQ,UAAUxE,MAAO+D,EAAIU,YAAaC,WAAW,gBAAgBR,YAAY,OAAOI,MAAM,CAAC,GAAK,YAAY,KAAO,QAAQ,MAAQ,oCAAoCK,SAAQ,gBAAE,QAA8B,qCAApBZ,EAAIU,aAAhB,UAA6EV,EAAIa,GAAGb,EAAIU,YAAY,qCAAqCI,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOf,EAAIgB,aAAa,cAAc,OAAS,SAASD,GAAQf,EAAIU,YAAY,uCAAuCT,EAAG,QAAQ,CAACE,YAAY,YAAYI,MAAM,CAAC,IAAM,cAAc,CAACP,EAAII,GAAGJ,EAAIK,GAAGL,EAAIM,GAAG,eAAeL,EAAG,MAAM,CAACA,EAAG,QAAQ,CAACO,WAAW,CAAC,CAACtG,KAAK,QAAQuG,QAAQ,UAAUxE,MAAO+D,EAAIU,YAAaC,WAAW,gBAAgBR,YAAY,OAAOI,MAAM,CAAC,GAAK,WAAW,KAAO,QAAQ,MAAQ,mCAAmCK,SAAQ,gBAAE,QAA8B,oCAApBZ,EAAIU,aAAhB,UAA4EV,EAAIa,GAAGb,EAAIU,YAAY,oCAAoCI,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOf,EAAIgB,aAAa,aAAa,OAAS,SAASD,GAAQf,EAAIU,YAAY,sCAAsCT,EAAG,QAAQ,CAACE,YAAY,YAAYI,MAAM,CAAC,IAAM,aAAa,CAACP,EAAII,GAAGJ,EAAIK,GAAGL,EAAIM,GAAG,cAAcL,EAAG,MAAM,CAACA,EAAG,QAAQ,CAACO,WAAW,CAAC,CAACtG,KAAK,QAAQuG,QAAQ,UAAUxE,MAAO+D,EAAIU,YAAaC,WAAW,gBAAgBR,YAAY,YAAYI,MAAM,CAAC,GAAK,eAAe,KAAO,QAAQ,MAAQ,uCAAuCK,SAAQ,gBAAE,QAA8B,wCAApBZ,EAAIU,aAAhB,UAAgFV,EAAIa,GAAGb,EAAIU,YAAY,wCAAwCI,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOf,EAAIgB,aAAa,iBAAiB,OAAS,SAASD,GAAQf,EAAIU,YAAY,0CAA0CT,EAAG,QAAQ,CAACE,YAAY,YAAYI,MAAM,CAAC,IAAM,iBAAiB,CAACP,EAAII,GAAGJ,EAAIK,GAAGL,EAAIM,GAAG,kBAAkBL,EAAG,MAAM,CAACE,YAAY,YAAY,CAACF,EAAG,WAAW,CAACE,YAAY,6BAA6BI,MAAM,CAAC,KAAO,MAAMO,GAAG,CAAC,MAAQd,EAAIiB,eAAe,CAACjB,EAAII,GAAGJ,EAAIK,GAAGL,EAAIM,GAAG,6BAA8BN,EAAIkB,UAAWjB,EAAG,WAAW,CAACE,YAAY,6BAA6BI,MAAM,CAAC,KAAO,MAAMO,GAAG,CAAC,MAAQd,EAAImB,cAAc,CAACnB,EAAII,GAAGJ,EAAIK,GAAGL,EAAIM,GAAG,mBAAmBN,EAAIoB,KAA0B,IAApB5F,KAAK6F,YAAyC,IAArB7F,KAAK8F,YAAmBrB,EAAG,aAAa,CAACE,YAAY,mBAAmBI,MAAM,CAAC,QAAU,UAAU,KAAO,KAAK,KAAOP,EAAIM,GAAG,0BAA0BiB,MAAM,CAACtF,MAAO+D,EAAIwB,kBAAmBC,SAAS,SAAUC,GAAM1B,EAAIwB,kBAAkBE,GAAKf,WAAW,sBAAsB,CAACV,EAAG,kBAAkB,CAACN,IAAI,SAASY,MAAM,CAAC,OAAmC,WAA1BP,EAAIwB,mBAAgCV,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOf,EAAI2B,eAAe,SAAS,CAAC3B,EAAII,GAAG,IAAIJ,EAAIK,GAAGL,EAAIM,GAAG,aAAa,OAAOL,EAAG,MAAM,CAAC2B,IAAI,eAAeC,YAAY,CAAC,aAAa,QAAQ,aAAa,SAAS7B,EAAI8B,GAAI9B,EAAI+B,mBAAmB,SAASC,GAAS,OAAO/B,EAAG,kBAAkB,CAACN,IAAIqC,EAAQC,GAAG1B,MAAM,CAAC,OAASyB,EAAQC,KAAOjC,EAAIwB,mBAAmBV,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOf,EAAI2B,eAAeK,EAAQC,OAAO,CAACjC,EAAII,GAAG,IAAIJ,EAAIK,GAAG2B,EAAQ9H,MAAM,UAAS,IAAI,GAAG8F,EAAIoB,MAAM,KAAKnB,EAAG,MAAM,CAACE,YAAY,mBAAmB,CAACF,EAAG,qBAAqB,CAAC2B,IAAI,UAAUrB,MAAM,CAAC,mBAAqBP,EAAIkC,mBAAmB,WAAalC,EAAImC,WAAW,UAAY,YAAY,GAAGnC,EAAIoC,GAAG,aAAanC,EAAG,mBAAmB,CAAC2B,IAAI,gBAAgB3B,EAAG,UAAU,CAACM,MAAM,CAAC,GAAK,iBAAiB,MAAQP,EAAIM,GAAG,iBAAiB,WAAa,GAAG,KAAO,KAAK,eAAc,IAAO,CAACL,EAAG,oBAAoB,CAACM,MAAM,CAAC,UAAYP,EAAIqC,WAAWvB,GAAG,CAAC,eAAiBd,EAAIsC,wBAAwB,GAAGrC,EAAG,eAAe,CAAC2B,IAAI,kBAAkBrB,MAAM,CAAC,UAAY,SAASO,GAAG,CAAC,YAAcd,EAAIuC,YAAY,SAAWvC,EAAIwC,wBAAwB,KAEnvJC,EAAkB,CAAC,WAAY,IAAIzC,EAAIxE,KAAKyE,EAAGD,EAAIE,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACE,YAAY,gBAAgBI,MAAM,CAAC,GAAK,iBAAiB,CAACN,EAAG,MAAM,CAAC4B,YAAY,CAAC,QAAU,QAAQtB,MAAM,CAAC,GAAK,qB,0RCwGhM,GACAmC,OACAC,2BAGAC,2BACA,OACAC,2CACAC,KAFA,WAGA,OACAzB,gBACAC,iBACAyB,eACAC,+GACAC,YACAC,OACAC,YACAC,eACAC,UACAC,iBACAC,gBACAC,eACAC,UACAC,aACAC,YACAC,aACAC,aACAC,8CACAC,yDAEAC,iBACAtD,eACAuD,oBACAC,oBACAC,qBACAC,cACAC,oBACAC,cACAjC,aAEAnB,aACAiB,aACAoC,eACAC,kBACAhD,uBACAO,qBACA0C,WACAC,cACAC,YAGAC,YACAC,yBACAC,oBACAC,0BACAC,yBAEAC,YAnDA,WAoDA,gBACA,kDACA,eACA,qCACA,oDAEA,4BAGAC,OACA1D,kBADA,SACA2D,GACA,UAKA,kBAGA,EACA,8BAEA,6BAIAC,QA9EA,WA8EA,WACA,wDACA,qDAEA,kDACA,eACA,4BAGAC,QAvFA,WAwFA,uBAEAC,SACA9C,oBADA,WACA,WACA,GACAuB,yDAEAwB,2BACAzC,GACA,YACA,sBACA,2BAEAA,4BACA,sEACA,OACA,OACA0C,eACAC,YACAxD,QACAyD,sCAEAC,kBACAC,0CACAC,iDACAC,4DACApC,oCACAqC,wDACAxB,uGAEAyB,UACAR,aACAS,uCAGA,0BAiBA,uDAGA,iBAIAC,sBAzDA,SAyDAC,GAAA,WACA,GACApC,wDACAqC,cAEAb,2BACAzC,GACA,YACA,iBACA,sBAuBA,GAtBA,2BACAA,4BACA,OACA0C,eACAC,YACAxD,QACAyD,sCACAC,kBACAC,0CACAC,sEACAC,4DACApC,oCACAqC,wDACAxB,uGAEAyB,UACAR,aACAS,uCAGA,yBAEA,wBACA,uBACA,qEAGA,iBAKAI,QAnGA,SAmGAC,GAAA,WACA,kBACAC,iCACA,sBACAC,yBACAC,2EACAC,SACAC,2BACAC,WACAC,wBAGA,6BACA,oBACA,4BACA,mBACA,4BACAC,eACAC,UAAAT,GAAAU,MAAA,UACA,6CACAf,wBACAA,yHAEA,sCACA,2BAGAA,mFAIA,iBAGA,iBAHA,IAMA,4BACA,mCACA,oBACA,0BACAgB,iBACAC,uBAEAC,qBACAC,sBAKA,+BACA,SACA,yBACA,KACA,YACA,YACA,uCAGA,wBAEA,+BACA5B,eACA1C,aACAuE,WACAC,kBACAC,mBAGA,gBACAtF,cACAuD,cACA/F,qBACAN,6BACAqI,OACA,gBACA,OACA,sBACA,UACA,IACA,UACA,IACA,WAEA,iBACA,OACA,sBACA,GACA,IACA,GACA,IACA,OAKA,gBACAvF,mBACAuD,cACA/F,qBACAN,6BACAsI,QACA,yCACA,4DACA,eACA,yBAEAD,OACA,0BAKA,OACAzD,yDA8DA,GA5DAwB,qBACAzC,GACA,YAEA,2DAGA,+BACA0C,eACA1C,MACA0C,yBACArC,WACAqC,eACAQ,UACAR,kBACAS,eAEAR,mBAMA,gBACAxD,WACAuD,YACA/F,qBACAgI,QACA,mBACA,qBAEAD,OACA,oBACA,eACA,0BAKAE,yBACA,oCACAC,kCACAA,qBACAA,sBACAA,2BACAA,iCAGA,kBACAZ,UAAAa,GACAC,SAAA,eAAAC,YACAC,QADA,mBACA5L,IADA,qBACAyL,KADA,kBACAA,KADA,UAEAZ,MAAA,aAGA,YACAgB,mDAIA,oCACA,gBACA,YACA,cACA,aAEA,wBACA,gBAGA,SAGA,mCACAC,wCAGA,gBACAhG,uBACAuD,cACA/F,qBACAN,mCACAsI,QACA,cACA,0BACA,+JACA,OAEA,cACA,iBACA,uBACA,sBACA,OACA,OACA,OACA,QACA,WAIAD,OACA,cACA,MACA,cAEA,mBACA,mBACA,MACA,mBAEA,uBAKA,uCACA,wCACAU,GADA,IAEAzC,4CACAyC,cADA,IAEA,sBACA,kCAKA,wCACA1C,yBACArC,kBAIA,gBACA,YACA,cACA,aAEA,2BAEA,gBACAlB,uBACAuD,cACA/F,qBACAN,mCAUAsI,QACA,cACA,QACA,kBACA,yDACA,uDACA,sBACA,yBACA,OAEA,iBAEA,uBACA,sBACA,OACA,OACA,OACA,QACA,aAMA,yCACA,2CACAU,sBAEA,6BACA,kBACA,QACA,uDACAC,GACA,cACA,GACA,cACA1B,iCACAC,gBAIA,CACA,2CACA,iCAEA0B,wCACA,cACA,gCACA,4EAEA,4CAiCA,kDACA,iDAEA,GADA,+BACA,6BACA,iCACA,iCACA,oCACA,0CACA,mCACA,qCACA,sCACApC,iCAGA,iDAEA,6CACA,4CAEA,6CACA,qCAGA,kBAEA,oDACA,GACAqC,YAGAhG,oBAjeA,SAieAL,EAAAsG,GACA,kDAEApH,YApeA,WAqeA,yDAGAF,aAxeA,WAyeA,8DAEAsB,YA3eA,SA2eAiG,GAAA,WACA,GACA7C,iBACA8C,qBACAC,iBACA7E,sBACA8E,wBACAC,sBACAC,sBACAC,kBACAC,sCACAhF,wDACAiF,oCACAC,oCACA7C,mCAEAb,iCACA,YACA,mBACA,8BA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","file":"js/chunk-3042e084.76388fdb.js","sourcesContent":["var userAgent = require('../internals/engine-user-agent');\n\nvar firefox = userAgent.match(/firefox\\/(\\d+)/i);\n\nmodule.exports = !!firefox && +firefox[1];\n","export default function _arrayLikeToArray(arr, len) {\n  if (len == null || len > arr.length) len = arr.length;\n\n  for (var i = 0, arr2 = new Array(len); i < len; i++) {\n    arr2[i] = arr[i];\n  }\n\n  return arr2;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n  if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n  if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n  if (!o) return;\n  if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n  var n = Object.prototype.toString.call(o).slice(8, -1);\n  if (n === \"Object\" && o.constructor) n = o.constructor.name;\n  if (n === \"Map\" || n === \"Set\") return Array.from(o);\n  if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n  return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar isConstructor = require('../internals/is-constructor');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $Array = Array;\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n  var O = toObject(arrayLike);\n  var IS_CONSTRUCTOR = isConstructor(this);\n  var argumentsLength = arguments.length;\n  var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n  var mapping = mapfn !== undefined;\n  if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined);\n  var iteratorMethod = getIteratorMethod(O);\n  var index = 0;\n  var length, result, step, iterator, next, value;\n  // if the target is not iterable or it's an array with the default iterator - use a simple case\n  if (iteratorMethod && !(this === $Array && isArrayIteratorMethod(iteratorMethod))) {\n    iterator = getIterator(O, iteratorMethod);\n    next = iterator.next;\n    result = IS_CONSTRUCTOR ? new this() : [];\n    for (;!(step = call(next, iterator)).done; index++) {\n      value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n      createProperty(result, index, value);\n    }\n  } else {\n    length = lengthOfArrayLike(O);\n    result = IS_CONSTRUCTOR ? new this(length) : $Array(length);\n    for (;length > index; index++) {\n      value = mapping ? mapfn(O[index], index) : O[index];\n      createProperty(result, index, value);\n    }\n  }\n  result.length = index;\n  return result;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar deletePropertyOrThrow = require('../internals/delete-property-or-throw');\nvar toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar internalSort = require('../internals/array-sort');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar FF = require('../internals/engine-ff-version');\nvar IE_OR_EDGE = require('../internals/engine-is-ie-or-edge');\nvar V8 = require('../internals/engine-v8-version');\nvar WEBKIT = require('../internals/engine-webkit-version');\n\nvar test = [];\nvar un$Sort = uncurryThis(test.sort);\nvar push = uncurryThis(test.push);\n\n// IE8-\nvar FAILS_ON_UNDEFINED = fails(function () {\n  test.sort(undefined);\n});\n// V8 bug\nvar FAILS_ON_NULL = fails(function () {\n  test.sort(null);\n});\n// Old WebKit\nvar STRICT_METHOD = arrayMethodIsStrict('sort');\n\nvar STABLE_SORT = !fails(function () {\n  // feature detection can be too slow, so check engines versions\n  if (V8) return V8 < 70;\n  if (FF && FF > 3) return;\n  if (IE_OR_EDGE) return true;\n  if (WEBKIT) return WEBKIT < 603;\n\n  var result = '';\n  var code, chr, value, index;\n\n  // generate an array with more 512 elements (Chakra and old V8 fails only in this case)\n  for (code = 65; code < 76; code++) {\n    chr = String.fromCharCode(code);\n\n    switch (code) {\n      case 66: case 69: case 70: case 72: value = 3; break;\n      case 68: case 71: value = 4; break;\n      default: value = 2;\n    }\n\n    for (index = 0; index < 47; index++) {\n      test.push({ k: chr + index, v: value });\n    }\n  }\n\n  test.sort(function (a, b) { return b.v - a.v; });\n\n  for (index = 0; index < test.length; index++) {\n    chr = test[index].k.charAt(0);\n    if (result.charAt(result.length - 1) !== chr) result += chr;\n  }\n\n  return result !== 'DGBEFHACIJK';\n});\n\nvar FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD || !STABLE_SORT;\n\nvar getSortCompare = function (comparefn) {\n  return function (x, y) {\n    if (y === undefined) return -1;\n    if (x === undefined) return 1;\n    if (comparefn !== undefined) return +comparefn(x, y) || 0;\n    return toString(x) > toString(y) ? 1 : -1;\n  };\n};\n\n// `Array.prototype.sort` method\n// https://tc39.es/ecma262/#sec-array.prototype.sort\n$({ target: 'Array', proto: true, forced: FORCED }, {\n  sort: function sort(comparefn) {\n    if (comparefn !== undefined) aCallable(comparefn);\n\n    var array = toObject(this);\n\n    if (STABLE_SORT) return comparefn === undefined ? un$Sort(array) : un$Sort(array, comparefn);\n\n    var items = [];\n    var arrayLength = lengthOfArrayLike(array);\n    var itemsLength, index;\n\n    for (index = 0; index < arrayLength; index++) {\n      if (index in array) push(items, array[index]);\n    }\n\n    internalSort(items, getSortCompare(comparefn));\n\n    itemsLength = items.length;\n    index = 0;\n\n    while (index < itemsLength) array[index] = items[index++];\n    while (index < arrayLength) deletePropertyOrThrow(array, index++);\n\n    return array;\n  }\n});\n","var userAgent = require('../internals/engine-user-agent');\n\nvar webkit = userAgent.match(/AppleWebKit\\/(\\d+)\\./);\n\nmodule.exports = !!webkit && +webkit[1];\n","import defineProperty from \"./defineProperty.js\";\n\nfunction ownKeys(object, enumerableOnly) {\n  var keys = Object.keys(object);\n\n  if (Object.getOwnPropertySymbols) {\n    var symbols = Object.getOwnPropertySymbols(object);\n    enumerableOnly && (symbols = symbols.filter(function (sym) {\n      return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n    })), keys.push.apply(keys, symbols);\n  }\n\n  return keys;\n}\n\nexport default function _objectSpread2(target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = null != arguments[i] ? arguments[i] : {};\n    i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n      defineProperty(target, key, source[key]);\n    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n      Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n    });\n  }\n\n  return target;\n}","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClusterSpotsModal.vue?vue&type=style&index=0&id=808e0828&prod&scoped=true&lang=scss&\"","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"google-map new-updated-design google-map-design\"},[_c('vue-snotify'),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-12 col-lg-12\"},[_c('div',{staticClass:\"card\"},[_c('div',{staticClass:\"card-header\"},[_c('h4',{staticClass:\"card-title\"},[_vm._v(_vm._s(_vm.$t('interactive-maps')))])]),_c('div',{staticClass:\"card-body new-card-body\"},[_c('div',{staticClass:\"google-map new-updated-design\"},[_c('div',{attrs:{\"id\":\"menu\"}},[_c('div',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.default_map),expression:\"default_map\"}],attrs:{\"id\":\"satellite-v9\",\"type\":\"radio\",\"value\":\"mapbox://styles/mapbox/satellite-v9\"},domProps:{\"checked\":_vm.default_map === 'mapbox://styles/mapbox/satellite-v9',\"checked\":_vm._q(_vm.default_map,\"mapbox://styles/mapbox/satellite-v9\")},on:{\"click\":function($event){return _vm.saveMapStyle('satellite-v9')},\"change\":function($event){_vm.default_map=\"mapbox://styles/mapbox/satellite-v9\"}}}),_c('label',{staticClass:\"map-label\",attrs:{\"for\":\"satellite-v9\"}},[_vm._v(_vm._s(_vm.$t('satellite')))])]),_c('div',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.default_map),expression:\"default_map\"}],staticClass:\"ml-2\",attrs:{\"id\":\"light-v10\",\"type\":\"radio\",\"value\":\"mapbox://styles/mapbox/light-v10\"},domProps:{\"checked\":_vm.default_map === 'mapbox://styles/mapbox/light-v10',\"checked\":_vm._q(_vm.default_map,\"mapbox://styles/mapbox/light-v10\")},on:{\"click\":function($event){return _vm.saveMapStyle('light-v10')},\"change\":function($event){_vm.default_map=\"mapbox://styles/mapbox/light-v10\"}}}),_c('label',{staticClass:\"map-label\",attrs:{\"for\":\"light-v10\"}},[_vm._v(_vm._s(_vm.$t('light')))])]),_c('div',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.default_map),expression:\"default_map\"}],staticClass:\"ml-2\",attrs:{\"id\":\"dark-v10\",\"type\":\"radio\",\"value\":\"mapbox://styles/mapbox/dark-v10\"},domProps:{\"checked\":_vm.default_map === 'mapbox://styles/mapbox/dark-v10',\"checked\":_vm._q(_vm.default_map,\"mapbox://styles/mapbox/dark-v10\")},on:{\"click\":function($event){return _vm.saveMapStyle('dark-v10')},\"change\":function($event){_vm.default_map=\"mapbox://styles/mapbox/dark-v10\"}}}),_c('label',{staticClass:\"map-label\",attrs:{\"for\":\"dark-v10\"}},[_vm._v(_vm._s(_vm.$t('dark')))])]),_c('div',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.default_map),expression:\"default_map\"}],staticClass:\"ml-2 m-ml\",attrs:{\"id\":\"outdoors-v11\",\"type\":\"radio\",\"value\":\"mapbox://styles/mapbox/outdoors-v11\"},domProps:{\"checked\":_vm.default_map === 'mapbox://styles/mapbox/outdoors-v11',\"checked\":_vm._q(_vm.default_map,\"mapbox://styles/mapbox/outdoors-v11\")},on:{\"click\":function($event){return _vm.saveMapStyle('outdoors-v11')},\"change\":function($event){_vm.default_map=\"mapbox://styles/mapbox/outdoors-v11\"}}}),_c('label',{staticClass:\"map-label\",attrs:{\"for\":\"outdoors-v11\"}},[_vm._v(_vm._s(_vm.$t('outdoors')))])]),_c('div',{staticClass:\"map-btns\"},[_c('b-button',{staticClass:\"ml-5 new-ml variant-orange\",attrs:{\"size\":\"sm\"},on:{\"click\":_vm.openSiderBar}},[_vm._v(_vm._s(_vm.$t('total-category-counts')))]),(_vm.mapLoaded)?_c('b-button',{staticClass:\"ml-5 new-ml variant-orange\",attrs:{\"size\":\"sm\"},on:{\"click\":_vm.openFilters}},[_vm._v(_vm._s(_vm.$t('filters-btn')))]):_vm._e(),(this.version_id === 2 && this.is_pro_sync === 1)?_c('b-dropdown',{staticClass:\"btn-primary ml-2\",attrs:{\"variant\":\"primary\",\"size\":\"sm\",\"text\":_vm.$t('Project (Survey Name)')},model:{value:(_vm.selectedProjectId),callback:function ($$v) {_vm.selectedProjectId=$$v},expression:\"selectedProjectId\"}},[_c('b-dropdown-item',{key:'select',attrs:{\"active\":_vm.selectedProjectId === 'select'},on:{\"click\":function($event){return _vm.onProjectClick(null)}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"All Data\"))+\" \")]),_c('div',{ref:\"dropdownMenu\",staticStyle:{\"max-height\":\"300px\",\"overflow-y\":\"auto\"}},_vm._l((_vm.displayedProjects),function(project){return _c('b-dropdown-item',{key:project.id,attrs:{\"active\":project.id === _vm.selectedProjectId},on:{\"click\":function($event){return _vm.onProjectClick(project.id)}}},[_vm._v(\" \"+_vm._s(project.name)+\" \")])}),1)],1):_vm._e()],1)]),_c('div',{staticClass:\"sidebar-counter\"},[_c('TotalCategoryCount',{ref:\"sidebar\",attrs:{\"countableQuestions\":_vm.countableQuestions,\"totalSpots\":_vm.totalSpots,\"user_type\":\"admin\"}})],1),_vm._m(0)])])])])]),_c('SpotDetailsModal',{ref:\"spotDetails\"}),_c('b-modal',{attrs:{\"id\":\"modal-clusters\",\"title\":_vm.$t('cluster-spots'),\"scrollable\":\"\",\"size\":\"md\",\"hide-footer\":true}},[_c('ClusterSpotsModal',{attrs:{\"spotsData\":_vm.spotsData},on:{\"openParentSpot\":_vm.openAdminSpotDetail}})],1),_c('FiltersModal',{ref:\"filterComponent\",attrs:{\"user_type\":\"admin\"},on:{\"applyFilter\":_vm.applyFilter,\"resetMap\":_vm.getClientAdminSpots}})],1)\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"map-container\",attrs:{\"id\":\"mapContainer\"}},[_c('div',{staticStyle:{\"display\":\"none\"},attrs:{\"id\":\"coordinates\"}})])\n}]\n\nexport { render, staticRenderFns }","<template>\r\n    <div class=\"google-map new-updated-design google-map-design\">\r\n        <vue-snotify></vue-snotify>\r\n        <div class=\"row\">\r\n\r\n            <div class=\"col-md-12 col-lg-12\">\r\n                <div class=\"card\">\r\n                    <div class=\"card-header\">\r\n                        <h4 class=\"card-title\">{{ $t('interactive-maps') }}</h4>\r\n                    </div>\r\n                    <div class=\"card-body new-card-body\">\r\n                        <div class=\"google-map new-updated-design\">\r\n                            <div id=\"menu\">\r\n                                <div>\r\n                                    <input id=\"satellite-v9\" type=\"radio\" v-model=\"default_map\" @click=\"saveMapStyle('satellite-v9')\"\r\n                                    value=\"mapbox://styles/mapbox/satellite-v9\"\r\n                                    :checked=\"default_map === 'mapbox://styles/mapbox/satellite-v9'\">\r\n                                    <label class=\"map-label\" for=\"satellite-v9\">{{ $t('satellite') }}</label>\r\n                                </div>\r\n                                <div>   \r\n                                    <input id=\"light-v10\" class=\"ml-2\" type=\"radio\" v-model=\"default_map\" @click=\"saveMapStyle('light-v10')\"\r\n                                    value=\"mapbox://styles/mapbox/light-v10\"\r\n                                    :checked=\"default_map === 'mapbox://styles/mapbox/light-v10'\">\r\n                                    <label class=\"map-label\" for=\"light-v10\">{{ $t('light') }}</label>\r\n                                </div>\r\n                                <div>\r\n                                    <input id=\"dark-v10\" type=\"radio\" class=\"ml-2\" v-model=\"default_map\" @click=\"saveMapStyle('dark-v10')\"\r\n                                    value=\"mapbox://styles/mapbox/dark-v10\" :checked=\"default_map === 'mapbox://styles/mapbox/dark-v10'\">\r\n                                    <label class=\"map-label\" for=\"dark-v10\">{{ $t('dark') }}</label>\r\n                                    <!--            <input id=\"streets-v11\" type=\"radio\" v-model=\"default_map\" @click=\"saveMapStyle('streets-v11')\" value=\"streets\">-->\r\n                                    <!--            <label for=\"streets-v11\">streets</label>-->\r\n                                </div>\r\n                                <div>\r\n                                    <input id=\"outdoors-v11\" type=\"radio\" class=\"ml-2 m-ml\" v-model=\"default_map\"\r\n                                    @click=\"saveMapStyle('outdoors-v11')\"\r\n                                    value=\"mapbox://styles/mapbox/outdoors-v11\"\r\n                                    :checked=\"default_map === 'mapbox://styles/mapbox/outdoors-v11'\">\r\n                                    <label class=\"map-label\" for=\"outdoors-v11\">{{ $t('outdoors') }}</label>\r\n                                </div>\r\n                                <div class=\"map-btns\"> \r\n                                    <b-button class=\"ml-5 new-ml variant-orange\" size=\"sm\" @click=\"openSiderBar\">{{ $t('total-category-counts') }}</b-button>\r\n                                    <b-button v-if=\"mapLoaded\" class=\"ml-5 new-ml variant-orange\" size=\"sm\" @click=\"openFilters\">{{ $t('filters-btn') }}</b-button>\r\n                                    <b-dropdown\r\n                                        v-if=\"this.version_id === 2 && this.is_pro_sync === 1\"\r\n                                            class=\"btn-primary ml-2\"\r\n                                            variant=\"primary\"\r\n                                            size=\"sm\"\r\n                                            :text=\"$t('Project (Survey Name)')\"\r\n                                            v-model=\"selectedProjectId\"\r\n                                        >\r\n                                        <!-- Add the \"Select\" option -->\r\n                                        <b-dropdown-item\r\n                                            :key=\"'select'\"\r\n                                            :active=\"selectedProjectId === 'select'\"\r\n                                            @click=\"onProjectClick(null)\" \r\n                                        >\r\n                                            {{ $t(\"All Data\") }}\r\n                                        </b-dropdown-item>\r\n\r\n                                        <!-- Render the limited number of projects -->\r\n                                        <div ref=\"dropdownMenu\" style=\"max-height: 300px; overflow-y: auto;\">\r\n                                            <b-dropdown-item\r\n                                                v-for=\"project in displayedProjects\"\r\n                                                :key=\"project.id\"\r\n                                                :active=\"project.id === selectedProjectId\"\r\n                                                @click=\"onProjectClick(project.id)\"\r\n                                            >\r\n                                                {{ project.name }}\r\n                                            </b-dropdown-item>\r\n                                        </div>\r\n                                    </b-dropdown>\r\n                                </div>\r\n                                \r\n                            </div>\r\n                            \r\n                            <div class=\"sidebar-counter\">\r\n                                <TotalCategoryCount  ref=\"sidebar\" :countableQuestions=\"countableQuestions\" :totalSpots=\"totalSpots\" user_type=\"admin\"/>\r\n                            </div>\r\n                            <div class=\"map-container\" id=\"mapContainer\">\r\n                                <div style=\"display: none;\" id=\"coordinates\">\r\n                                </div>\r\n                            <!--    <button v-if=\"mapLoaded\" class=\"filter-group\" variant=\"info\" size=\"sm\" @click=\"openFilters\">{{ $t('filters-btn') }}</button> -->\r\n                            </div>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n        </div>\r\n        <SpotDetailsModal ref=\"spotDetails\"></SpotDetailsModal>\r\n        <b-modal id=\"modal-clusters\" :title=\"$t('cluster-spots')\" scrollable size=\"md\" :hide-footer=\"true\">\r\n            <ClusterSpotsModal :spotsData=\"spotsData\" @openParentSpot=\"openAdminSpotDetail\"></ClusterSpotsModal>\r\n        </b-modal>\r\n        <FiltersModal @applyFilter=\"applyFilter\"  @resetMap=\"getClientAdminSpots\" ref=\"filterComponent\" user_type=\"admin\"></FiltersModal>\r\n    \r\n    </div>\r\n</template>\r\n<script>\r\n    import Vue from \"vue\";\r\n    import mapboxgl from \"mapbox-gl\";\r\n    import Snotify, {SnotifyPosition} from 'vue-snotify'\r\n    import API from '@/api';\r\n    import moment from 'moment';\r\n    import ClusterSpotsModal from './ClusterSpotsModal.vue';\r\n    import FiltersModal from \"../citizen/FiltersModal.vue\";\r\n    import TotalCategoryCount from '../client/TotalCategoryCounts';\r\n    import SpotDetailsModal from '../citizen/SpotDetailsModal.vue';\r\n    const options = {\r\n        toast: {\r\n            position: SnotifyPosition.rightTop,\r\n        }\r\n    }\r\n    Vue.use(Snotify, options)\r\n    export default {\r\n        props: ['countableQuestions', 'total_spots'],\r\n        data() {\r\n            return {\r\n                version_id: null,\r\n                is_pro_sync: null,\r\n                routeTracks: [],\r\n                accessToken: 'pk.eyJ1Ijoid2F0Y2hzcG90dGVyIiwiYSI6ImNsMmY0OTgxdzA3MW0zYm1jMmY5MGY5OG4ifQ.vEle7r52YhgPJ8D-MVlZ2A',\r\n                spotData: [],\r\n                map: [],\r\n                features: [],\r\n                mapFeatures: [],\r\n                spotForm: {\r\n                    requireLatLong: 1,\r\n                    spot_type_id: '',\r\n                    location_id: '',\r\n                    detail: '',\r\n                    spot_date: '',\r\n                    latitude: '',\r\n                    longitude: '',\r\n                    questions: [],\r\n                    client_url: window.location.href.split('#')[0],\r\n                    client_id: JSON.parse(localStorage.getItem(\"client_id\")),\r\n                },\r\n                adminMapStyle: '',\r\n                default_map: '',\r\n                default_map_zoom: '',\r\n                default_latitude: '',\r\n                default_longitude: '',\r\n                appImage: null,\r\n                spotDetailImages: [],\r\n                spotDetail: [],\r\n                spotsData: [],\r\n                // showBackButton:false,\r\n                mapLoaded: false,\r\n                totalSpots: 0,\r\n                markerColor: '',\r\n                projectOptions: [],\r\n                selectedProjectId: null,\r\n                displayedProjects: [], // Initially visible projects\r\n                loading: false,\r\n                currentPage: 1,\r\n                perPage: 5 \r\n            };\r\n        },\r\n        components: {\r\n            ClusterSpotsModal,\r\n            FiltersModal,\r\n            TotalCategoryCount,\r\n            SpotDetailsModal\r\n        },\r\n        beforeMount(){\r\n            this.getNames();\r\n            const storedProjectId = localStorage.getItem(\"selected_project_id\");\r\n            if (storedProjectId && storedProjectId !== \"null\") {\r\n                this.selectedProjectId = JSON.parse(storedProjectId);\r\n                this.getClientProjectSpots(this.selectedProjectId);\r\n            } else {\r\n                this.getClientAdminSpots();\r\n            }\r\n        },\r\n        watch: {\r\n            selectedProjectId(newProjectId) {\r\n                if (this.map) {\r\n                    // if (this.map.getSource(\"spotsSource\")) {\r\n                    //     this.map.removeLayer(\"spotsLayer\");\r\n                    //     this.map.removeSource(\"spotsSource\");\r\n                    // }\r\n                    this.map.remove(); // Remove the map instance\r\n                }\r\n\r\n                if (newProjectId) {\r\n                    this.getClientProjectSpots(newProjectId);\r\n                } else {\r\n                    this.getClientAdminSpots();\r\n                }\r\n            }\r\n        },\r\n        created() {\r\n            this.$EventBus.$on(\"showAdminClusterSpots\", (data) => {\r\n                this.$root.$emit(\"bv::show::modal\", \"modal-clusters\");\r\n            });\r\n            this.$EventBus.$on(\"reinitializeMap\", (data) => {\r\n                this.map.remove();\r\n                this.getClientAdminSpots();\r\n            });\r\n        },\r\n        mounted() {\r\n            this.getAppSettings();\r\n            // this.getClientAdminSpots();\r\n        }, methods: {\r\n            getClientAdminSpots() {\r\n                const data = {\r\n                    client_id: JSON.parse(localStorage.getItem('client_id')),\r\n                }\r\n                API.getClientAdminSpots(\r\n                    data,\r\n                    data => {\r\n                        const spot_dImage = data.default_image;\r\n                        this.totalSpots = data.total_spots;\r\n\r\n                        data.data.forEach(data => {\r\n                            let exists = this.mapFeatures.find(p => p.properties.id == data.id)\r\n                            if (!exists) {\r\n                                const d1 = {\r\n                                    type: \"Feature\",\r\n                                    properties: {\r\n                                        id: data.id,\r\n                                        title: (data.spot_type) ? data.spot_type.name : '',\r\n                                        // spot_id: data.spot_type_id,\r\n                                        spot_id: data.spot_id,\r\n                                        description: (data.location) ? data.location.name : '',\r\n                                        spotted_by: (data.spotter_user) ? data.spotter_user.name : '',\r\n                                        spotted_username: (data.spotter_user) ? data.spotter_user.user_name : '',\r\n                                        spot_date: this.formatDate(data.spot_date),\r\n                                        iconUrl: (data.primary_image) ? this.$server_url + data.primary_image : spot_dImage,\r\n                                        markerColor: (data.single_question && data.single_question.category) ? data.single_question.category.hash_color : 'Red'\r\n                                    },\r\n                                    geometry: {\r\n                                        type: \"Point\",\r\n                                        coordinates: [data.longitude, data.latitude]\r\n                                    }\r\n                                }\r\n                                this.mapFeatures.push(d1);\r\n                            }\r\n                        })\r\n\r\n                        // alert('working')\r\n\r\n                        // if (navigator.geolocation) {\r\n                        //     var self = this;\r\n                        //     navigator.geolocation.getCurrentPosition(e => {\r\n                        //         this.initMap([e.coords.longitude, e.coords.latitude])\r\n                        //     }, function (error) {\r\n                        //         if (error.code == error.PERMISSION_DENIED) {\r\n                        //             // pop up dialog asking for location\r\n                        //             self.initMap([self.default_longitude, self.default_latitude]);\r\n                        //         }\r\n                        //     })\r\n                        // } else {\r\n                            this.initMap([this.default_longitude, this.default_latitude]);\r\n                        // }\r\n                    },\r\n                    err => {\r\n                    }\r\n                )\r\n            },\r\n            getClientProjectSpots(projectID) {\r\n                const data = {\r\n                    client_id: JSON.parse(localStorage.getItem('client_id')),\r\n                    project_id: projectID\r\n                }\r\n                API.getClientAdminSpots(\r\n                    data,\r\n                    data => {\r\n                    this.mapFeatures = []; // Clear the mapFeatures array\r\n                    const spot_dImage = data.default_image;\r\n                    this.totalSpots = data.total_spots;\r\n                    data.data.forEach(data => {\r\n                        const d1 = {\r\n                        type: \"Feature\",\r\n                        properties: {\r\n                            id: data.id,\r\n                            title: (data.spot_type) ? data.spot_type.name : '',\r\n                            spot_id: data.spot_id,\r\n                            description: (data.location) ? data.location.name : '',\r\n                            spotted_by: (data.spotter_user && data.spotter_user.name) ? data.spotter_user.name : '',\r\n                            spotted_username: (data.spotter_user) ? data.spotter_user.user_name : '',\r\n                            spot_date: this.formatDate(data.spot_date),\r\n                            iconUrl: (data.primary_image) ? this.$server_url + data.primary_image : spot_dImage,\r\n                            markerColor: (data.single_question && data.single_question.category) ? data.single_question.category.hash_color : 'Red'\r\n                        },\r\n                        geometry: {\r\n                            type: \"Point\",\r\n                            coordinates: [data.longitude, data.latitude]\r\n                        }\r\n                        }\r\n                        this.mapFeatures.push(d1);\r\n                    })\r\n                    if (this.mapFeatures.length > 0) {\r\n                        const firstSpot = this.mapFeatures[0];\r\n                        this.initMap([firstSpot.geometry.coordinates[0], firstSpot.geometry.coordinates[1]]);\r\n                    }\r\n                    },\r\n                    err => {\r\n                    // Handle error\r\n                    }\r\n                )\r\n            },\r\n            initMap(lngLat) {\r\n                this.mapLoaded = false;\r\n                mapboxgl.accessToken = this.accessToken;\r\n                this.map = new mapboxgl.Map({\r\n                    container: \"mapContainer\",\r\n                    style: (this.default_map) ? this.default_map : 'mapbox://styles/mapbox/light-v10',\r\n                    center: lngLat,\r\n                    zoom: this.default_map_zoom,\r\n                    maxZoom: 14,\r\n                    attributionControl: false\r\n                });\r\n                // more initialization\r\n                this.spotForm.longitude = lngLat[0];\r\n                this.longitude = lngLat[0];\r\n                this.spotForm.latitude = lngLat[1];\r\n                this.latitude = lngLat[1];\r\n                this.marker = new mapboxgl.Marker({\r\n                    draggable: true\r\n                }).setLngLat(lngLat).addTo(this.map);\r\n                var coordinates = document.getElementById('coordinates');\r\n                coordinates.style.display = 'block';\r\n                coordinates.innerHTML = `Lat: ${parseFloat(this.latitude).toFixed(6)}, Lng: ${parseFloat(this.longitude).toFixed(6)}`; \r\n                var ref = this;\r\n                this.marker.on('dragend', (e) => {\r\n                    var lngLat = e.target.getLngLat();\r\n                    // this.$refs.marker.mapObject.getLatLng();\r\n                    // ref.getLatLong(lngLat)\r\n                    coordinates.innerHTML = `Lat: ${lngLat.lat.toFixed(6)}, Lng: ${lngLat.lng.toFixed(6)}`;\r\n                })\r\n\r\n\r\n                var loadFeatures = this.mapFeatures;\r\n                const geojson = {\r\n                    'type': 'FeatureCollection',\r\n                    'features': this.mapFeatures\r\n                };\r\n\r\n                const nav = new mapboxgl.NavigationControl();\r\n                this.map.addControl(nav, \"top-right\");\r\n                this.map.addControl(\r\n                    new mapboxgl.GeolocateControl({\r\n                        positionOptions: {\r\n                        enableHighAccuracy: true\r\n                    },\r\n                        trackUserLocation: true,\r\n                        showUserHeading: true\r\n                    })\r\n                );\r\n\r\n\r\n                this.map.on('load', () => {\r\n                    this.data2 = {\r\n                        \"type\": \"FeatureCollection\",\r\n                        \"crs\": {\r\n                            \"type\": \"name\",\r\n                            \"properties\": {\r\n                                \"name\": \"urn:ogc:def:crs:OGC:1.3:CRS84\"\r\n                            }\r\n                        },\r\n                        \"features\": this.mapFeatures\r\n                    }\r\n                    this.map.addSource('earthquakes', {\r\n                        type: 'geojson',\r\n                        data: this.data2,\r\n                        cluster: true,\r\n                        clusterMaxZoom: 14,\r\n                        clusterRadius: 50\r\n                    });\r\n\r\n                    this.map.addLayer({\r\n                        id: 'clusters',\r\n                        type: 'circle',\r\n                        source: 'earthquakes',\r\n                        filter: ['has', 'point_count'],\r\n                        paint: {\r\n                            'circle-color': [\r\n                                'step',\r\n                                ['get', 'point_count'],\r\n                                '#FF7F50',\r\n                                100,\r\n                                '#003366',\r\n                                750,\r\n                                '#ff414e'\r\n                            ],\r\n                            'circle-radius': [\r\n                                'step',\r\n                                ['get', 'point_count'],\r\n                                20,\r\n                                100,\r\n                                30,\r\n                                750,\r\n                                40\r\n                            ]\r\n                        }\r\n                    });\r\n\r\n                    this.map.addLayer({\r\n                        id: 'cluster-count',\r\n                        type: 'symbol',\r\n                        source: 'earthquakes',\r\n                        filter: ['has', 'point_count'],\r\n                        layout: {\r\n                            'text-field': '{point_count_abbreviated}',\r\n                            'text-font': ['DIN Offc Pro Medium', 'Arial Unicode MS Bold'],\r\n                            'text-size': 12,\r\n                            \"text-allow-overlap\" : true\r\n                        },\r\n                        paint: {\r\n                            \"text-color\": \"#ffffff\"\r\n                        }\r\n                    });\r\n\r\n                    // Fetch and add the route track data\r\n                    const data = {\r\n                        client_id: JSON.parse(localStorage.getItem('client_id')),\r\n                    }\r\n                    API.getTracksData(\r\n                        data,\r\n                        (data) => {\r\n                            // Prepare the track data for the map\r\n                            const trackCoordinates = data.map(track => [track.longitude, track.latitude]);\r\n\r\n                            // Add a new source for the route tracks\r\n                            this.map.addSource('routeTracks', {\r\n                                type: 'geojson',\r\n                                data: {\r\n                                    type: 'FeatureCollection',\r\n                                    features: [{\r\n                                        type: 'Feature',\r\n                                        geometry: {\r\n                                            type: 'LineString',\r\n                                            coordinates: trackCoordinates\r\n                                        },\r\n                                        properties: {}\r\n                                    }]\r\n                                }\r\n                            });\r\n\r\n                            // Add a layer to display the route tracks with a curved, dotted style\r\n                            this.map.addLayer({\r\n                                id: 'route',\r\n                                type: 'line',\r\n                                source: 'routeTracks',\r\n                                layout: {\r\n                                    'line-cap': 'round',  // Rounded end for smoother curves\r\n                                    'line-join': 'round'  // Rounded join for smoother corners\r\n                                },\r\n                                paint: {\r\n                                    'line-color': '#888',  // Line color\r\n                                    'line-width': 4,       // Line width\r\n                                    'line-dasharray': [4, 4]  // Dash pattern: 4px dash, 4px space\r\n                                }\r\n                            });\r\n\r\n                            // Add markers at each point along the route\r\n                            trackCoordinates.forEach((coord, index) => {\r\n                                const markerElement = document.createElement('div');\r\n                                markerElement.style.backgroundColor = '#FF0000'; // Red color for the marker\r\n                                markerElement.style.width = '20px';\r\n                                markerElement.style.height = '20px';\r\n                                markerElement.style.borderRadius = '50%'; // Make it circular\r\n                                markerElement.style.border = '2px solid white'; // Add a white border for better visibility\r\n                                \r\n                                // Add marker to the map\r\n                                new mapboxgl.Marker(markerElement)\r\n                                    .setLngLat(coord)\r\n                                    .setPopup(new mapboxgl.Popup({ offset: 25 }) // Add a popup\r\n                                        .setHTML(`<p>Point ${index + 1}:<br>Lat: ${coord[1]}, Lng: ${coord[0]}</p>`)) // Popup content\r\n                                    .addTo(this.map);\r\n                            });\r\n                        },\r\n                        (error) => {\r\n                            console.error('Error fetching route tracks:', error);\r\n                        }\r\n                    );\r\n\r\n                    if(this.version_id === 2 || this.version_id === 3){\r\n                        this.map.loadImage(\r\n                            this.appImage,\r\n                            (error, image) => {\r\n                            if (error) throw error;\r\n                            // Add the image to the map style.\r\n                            this.map.addImage('cat', image,{\r\n                                \"sdf\": \"true\"\r\n                            });\r\n                        });\r\n                        let categoryColors = [];\r\n\r\n                        // Populate categoryColors array with actual colors\r\n                        this.mapFeatures.forEach((feature) => {\r\n                            categoryColors.push(feature.properties.markerColor || '');\r\n                        });\r\n\r\n                        this.map.addLayer({\r\n                            id: 'unclustered-point',\r\n                            type: 'symbol',\r\n                            source: 'earthquakes', // reference the data source\r\n                            filter: ['!', ['has', 'point_count']],\r\n                            layout: {\r\n                                \"icon-image\": [\r\n                                    \"match\", [\"get\", \"spot_id\"],\r\n                                    [\"CD\", \"HP\", \"BD\", \"KW\", \"RD\", \"UD\", \"WB\", \"WS\", \"SD\"], \"dolphin\", [\"MW\", \"UB\", \"HU\", \"PW\", \"SP\", \"NB\", \"FW\", \"CB\", \"SW\"], \"whale\", [\"BS\"], \"baskingshark\", [\"UC\", \"UN\", \"OR\", \"SU\"], \"\",\r\n                                    \"cat\"\r\n                                ],\r\n                                \"icon-size\": 1,\r\n                                \"icon-padding\": 2,\r\n                                \"icon-anchor\": \"bottom\",\r\n                                \"icon-allow-overlap\": {\r\n                                    \"base\": 1,\r\n                                    \"stops\": [\r\n                                        [0, true],\r\n                                        [12, true],\r\n                                        [22, true]\r\n                                    ]\r\n                                },\r\n                            },\r\n                            paint: {\r\n                                \"icon-color\": [\r\n                                    \"get\",\r\n                                    \"icon-color\"\r\n                                ],\r\n                                \"icon-halo-blur\": 0,\r\n                                \"icon-halo-color\": [\r\n                                    \"get\",\r\n                                    \"icon-halo-color\"\r\n                                ],\r\n                                \"icon-halo-width\": 4\r\n                            }\r\n                        });\r\n\r\n                        // Set the GeoJSON source data with individual colors for each feature\r\n                        const featuresWithColors = this.mapFeatures.map((feature, index) => {\r\n                            return {\r\n                                ...feature,\r\n                                properties: {\r\n                                    ...feature.properties,\r\n                                    'icon-color': categoryColors[index] || '',\r\n                                    'icon-halo-color': categoryColors[index] || ''\r\n                                }\r\n                            };\r\n                        });\r\n\r\n                        this.map.getSource('earthquakes').setData({\r\n                            type: 'FeatureCollection',\r\n                            features: featuresWithColors\r\n                        });\r\n                    }\r\n                    else{\r\n                        this.map.loadImage(\r\n                            this.appImage,\r\n                            (error, image) => {\r\n                            if (error) throw error;\r\n                            // Add the image to the map style.\r\n                            this.map.addImage('cat', image);\r\n                        });\r\n                        this.map.addLayer({\r\n                            id: 'unclustered-point',\r\n                            type: 'symbol',\r\n                            source: 'earthquakes', // reference the data source\r\n                            filter: ['!', ['has', 'point_count']],\r\n                            // layout: {\r\n                            //     'icon-image': 'cat', // reference the image\r\n                            //     'icon-size': 0.25\r\n                            // }\r\n                            // paint: {\r\n                            //     \"text-color\": \"#d21010\",\r\n                            //     \"icon-halo-color\": \"#d21010\",\r\n                            //     \"icon-halo-width\": 2\r\n                            // },\r\n                            layout: {\r\n                                \"icon-image\": [\r\n                                    \"match\",\r\n                                    [\"get\", \"spot_id\"],\r\n                                    [\"CD\", \"HP\", \"BD\", \"KW\", \"RD\", \"UD\", \"WB\", \"WS\", \"SD\"], \"dolphin\",\r\n                                    [\"MW\", \"UB\", \"HU\", \"PW\", \"SP\", \"NB\", \"FW\", \"CB\", \"SW\"], \"whale\",\r\n                                    [\"BS\"], \"baskingshark\",\r\n                                    [\"UC\", \"UN\", \"OR\", \"SU\"], \"\",\r\n                                    \"cat\"\r\n                                ],\r\n                                \"icon-padding\": 2,\r\n                                // 'icon-size': 0.05,\r\n                                \"icon-anchor\": \"bottom\",\r\n                                \"icon-allow-overlap\": {\r\n                                    \"base\": 1,\r\n                                    \"stops\": [\r\n                                        [0, true],\r\n                                        [12, true],\r\n                                        [22, true]\r\n                                    ]\r\n                                },\r\n                            },\r\n                        });\r\n                    }\r\n                    this.map.on('click', 'clusters', (e) => {\r\n                        const features = this.map.queryRenderedFeatures(e.point, {\r\n                            layers: ['clusters']\r\n                        });\r\n                        var clusterId = features[0].properties.cluster_id;\r\n                        var zoom = this.map.getZoom();\r\n                        if(zoom < 14) {\r\n                            this.map.getSource('earthquakes').getClusterExpansionZoom(\r\n                                clusterId,\r\n                                (err, zoom) => {\r\n                                    if (err) return;\r\n                                    this.map.easeTo({\r\n                                        center: features[0].geometry.coordinates,\r\n                                        zoom: zoom\r\n                                    });\r\n                                }\r\n                            );\r\n                        } else {\r\n                            var point_count = e.features[0].properties.point_count;\r\n                            var clusterSource = this.map.getSource(\"earthquakes\");\r\n\r\n                            clusterSource.getClusterLeaves(clusterId, point_count, 0, (err, aFeatures) => {\r\n                                this.spotsData = aFeatures;\r\n                                this.spotsData.sort(function(a,b) {\r\n                                    return new Date(b.properties.spot_date) - new Date(a.properties.spot_date);\r\n                                });\r\n                                this.openClusterSpotDetail(this.spotsData);\r\n                            });\r\n                        }\r\n                    });\r\n\r\n                    // if(this.version_id === 2 || this.version_id === 3){\r\n                    //     this.mapFeatures.forEach((feature) =>{\r\n                    //         this.map.on('click', `unclustered-point-${feature.properties.id}`, (e) => {\r\n                    //             const coordinates = e.features[0].geometry.coordinates.slice();\r\n                    //             const spot_type = e.features[0].properties.title;\r\n                    //             const id = e.features[0].properties.id;\r\n                    //             const spot_id = e.features[0].properties.spot_id;\r\n                    //             const iconUrl = e.features[0].properties.iconUrl;\r\n                    //             const spotted_by = e.features[0].properties.spotted_by;\r\n                    //             const spotted_username = e.features[0].properties.spotted_username;\r\n                    //             const spot_date = e.features[0].properties.spot_date;\r\n                    //             const description = e.features[0].properties.description;\r\n                    //             while (Math.abs(e.lngLat.lng - coordinates[0]) > 180) {\r\n                    //                 coordinates[0] += e.lngLat.lng > coordinates[0] ? 360 : -360;\r\n                    //             }\r\n                    //             // this.openSpotDetail(id,false);\r\n                    //             this.$refs.spotDetails.openAdminSpotDetail(id, false);\r\n                    //         });\r\n                    //     });\r\n\r\n                    //     this.map.on('mouseenter', 'clusters', () => {\r\n                    //         this.map.getCanvas().style.cursor = 'pointer';\r\n                    //     });\r\n                    //     this.map.on('mouseleave', 'clusters', () => {\r\n                    //         this.map.getCanvas().style.cursor = '';\r\n                    //     });\r\n                    // }\r\n                    // else{\r\n                        this.map.on('click', 'unclustered-point', (e) => {\r\n                                const coordinates = e.features[0].geometry.coordinates.slice();\r\n                                const spot_type = e.features[0].properties.title;\r\n                                const id = e.features[0].properties.id;\r\n                                const spot_id = e.features[0].properties.spot_id;\r\n                                const iconUrl = e.features[0].properties.iconUrl;\r\n                                const spotted_by = e.features[0].properties.spotted_by;\r\n                                const spotted_username = e.features[0].properties.spotted_username;\r\n                                const spot_date = e.features[0].properties.spot_date;\r\n                                const description = e.features[0].properties.description;\r\n                                while (Math.abs(e.lngLat.lng - coordinates[0]) > 180) {\r\n                                    coordinates[0] += e.lngLat.lng > coordinates[0] ? 360 : -360;\r\n                                }\r\n                                // this.openSpotDetail(id,false);\r\n                                this.$refs.spotDetails.openAdminSpotDetail(id, false);\r\n                            });\r\n                        this.map.on('mouseenter', 'clusters', () => {\r\n                            this.map.getCanvas().style.cursor = 'pointer';\r\n                        });\r\n                        this.map.on('mouseleave', 'clusters', () => {\r\n                            this.map.getCanvas().style.cursor = '';\r\n                        });\r\n                    // }\r\n                    this.mapLoaded = true;\r\n                })\r\n                const logo = document.querySelector('.mapboxgl-ctrl-logo');\r\n                if (logo) {\r\n                    logo.remove();\r\n                }\r\n            },\r\n            openAdminSpotDetail(id,event) {\r\n                this.$refs.spotDetails.openAdminSpotDetail(id,true)\r\n            },\r\n            openFilters() {\r\n                this.$root.$emit(\"bv::show::modal\", \"modal-map-filters\");\r\n                // this.$refs.filterComponent.getFiltersData();\r\n            },\r\n            openSiderBar() {\r\n                this.$root.$emit(\"bv::toggle::collapse\", \"sidebar-no-header\");\r\n            },\r\n            applyFilter(params) {\r\n                let data = {\r\n                    spot_id: params.spotId,\r\n                    date_from: params.dateFrom,\r\n                    date_to: params.dateTo,\r\n                    questions: params.questions,\r\n                    categories: params.categories,\r\n                    locations: params.locations,\r\n                    spotTypes: params.spotTypes,\r\n                    surveys: params.surveys,\r\n                    selectedQuestions: params.selectedQuestions,\r\n                    client_id: JSON.parse(localStorage.getItem('client_id')),\r\n                    countRangeFilter: params.countRangeFilter,\r\n                    countRangeValues: params.countRangeValues,\r\n                    project_id: this.selectedProjectId\r\n                }\r\n                API.getSpotsByAdminFilters(data,\r\n                    data => {\r\n                        if(data.status === 200) {\r\n                            this.$snotify.success(data.message);\r\n                            this.data2.features = [];\r\n                            this.mapFeatures = [];\r\n                            this.totalSpots = data.total_spots;\r\n                            this.$refs.sidebar.assignQuestions(data.countableQuestions);\r\n                            this.$refs.filterComponent.StopFilterLoading();\r\n                            this.$refs.filterComponent.StopResetLoading();\r\n                            this.$refs.filterComponent.changeSliderValue(data.range);\r\n                            const spot_dImage = data.default_image;\r\n                            data.data.forEach(data => {\r\n                                let exists = this.mapFeatures.find(p => p.properties.id == data.id)\r\n                                if (!exists) {\r\n                                    const d1 = {\r\n                                        type: \"Feature\",\r\n                                        properties: {\r\n                                            id: data.id,\r\n                                            title: (data.spot_type) ? data.spot_type.name : '',\r\n                                            // spot_id: data.spot_type_id,\r\n                                            spot_id: data.spot_id,\r\n                                            description: (data.location) ? data.location.name : '',\r\n                                            spotted_by: (data.spotter_user && data.spotter_user.name) ? data.spotter_user.name : '',\r\n                                            spotted_username: (data.spotter_user && data.spotter_user.user_name) ? data.spotter_user.user_name : '',\r\n                                            spot_date: this.formatDate(data.spot_date),\r\n                                            iconUrl: (data.primary_image) ? this.$server_url + data.primary_image : spot_dImage,\r\n                                            markerColor: (data.single_question && data.single_question.category) ? data.single_question.category.hash_color : 'Red'\r\n                                        },\r\n                                        geometry: {\r\n                                            type: \"Point\",\r\n                                            coordinates: [data.longitude, data.latitude]\r\n                                        }\r\n                                    }\r\n                                    this.mapFeatures.push(d1);\r\n                                }\r\n                            })\r\n                            let categoryColors = [];\r\n\r\n                            this.mapFeatures.forEach((feature) => {\r\n                                // Collect all category colors\r\n                                categoryColors.push(feature.properties.markerColor || '');\r\n                            });\r\n                            // Set the GeoJSON source data with individual colors for each feature\r\n                            const featuresWithColors = this.mapFeatures.map((feature, index) => {\r\n                                return {\r\n                                    ...feature,\r\n                                    properties: {\r\n                                        ...feature.properties,\r\n                                        'icon-color': categoryColors[index] || '',\r\n                                        'icon-halo-color': categoryColors[index] || ''\r\n                                    }\r\n                                };\r\n                            });\r\n\r\n                            this.map.getSource('earthquakes').setData({\r\n                                type: 'FeatureCollection',\r\n                                features: featuresWithColors\r\n                            });\r\n                            // this.data2 = {\r\n                            //     \"type\": \"FeatureCollection\",\r\n                            //     \"crs\": {\r\n                            //         \"type\": \"name\",\r\n                            //         \"properties\": {\r\n                            //             \"name\": \"urn:ogc:def:crs:OGC:1.3:CRS84\"\r\n                            //         }\r\n                            //     },\r\n                            //     \"features\": this.mapFeatures\r\n                            // }\r\n                            // this.map.getSource(\"earthquakes\").setData(this.data2);\r\n                        } else if(data.status === 500) {\r\n                            this.$snotify.error(data.message);\r\n                            this.$refs.filterComponent.StopFilterLoading();\r\n                            this.$refs.filterComponent.StopResetLoading();\r\n                        }\r\n                    },\r\n                    err => {\r\n                        console.log(err);\r\n                        this.$refs.filterComponent.StopFilterLoading();\r\n                        this.$refs.filterComponent.StopResetLoading();\r\n                    }\r\n                );\r\n            },\r\n            openClusterSpotDetail(aFeatures) {\r\n                this.$EventBus.$emit('showAdminClusterSpots');\r\n            },\r\n            formatDate(date) {\r\n                return moment(String(date)).format('MM-DD-YYYY HH:mm')\r\n            },\r\n            saveMapStyle(value) {\r\n                this.map.remove();\r\n                this.default_map = 'mapbox://styles/mapbox/' + value;\r\n                this.getClientAdminSpots();\r\n            },\r\n            getAppSettings() {\r\n                const data = {\r\n                    client_id: JSON.parse(localStorage.getItem('client_id')),\r\n                }\r\n                API.getAppSettings(\r\n                    data,\r\n                    data => {\r\n                        this.version_id = data.version_id;\r\n                        this.is_pro_sync = data.is_pro_sync;\r\n                        this.appImage = this.$server_url + data.data.stock_image;\r\n                        this.adminMapStyle = data.data.default_map;\r\n                        this.default_map = data.data.default_map;\r\n                        this.default_map_zoom = data.data.default_map_zoom;\r\n\r\n                        this.default_latitude = (data.data.latitude) ? data.data.latitude : 39.452717;\r\n                        this.default_longitude = (data.data.longitude) ? data.data.longitude : -123.813866;\r\n\r\n                    },\r\n                    err => {\r\n                    }\r\n                )\r\n            },\r\n            getNames() {\r\n                const savedProjectId = localStorage.getItem(\"selected_project_id\"); // Retrieve last selected project ID\r\n\r\n                this.selectedProjectId = savedProjectId ? JSON.parse(savedProjectId) : null; // Set active project\r\n\r\n                const data = {\r\n                    client_id: JSON.parse(localStorage.getItem(\"client_id\")),\r\n                    page: this.currentPage,\r\n                    perPage: this.perPage,\r\n                };\r\n\r\n                this.loading = true;\r\n\r\n                API.getProjectName(\r\n                    data,\r\n                    (response) => {\r\n                    this.loading = false;\r\n\r\n                    // Append new projects to the projectOptions list\r\n                    const newProjects = response.data.map((project) => ({\r\n                        id: project.id,\r\n                        name: project.project_name,\r\n                        default_dashboard: project.default_dashboard,\r\n                    }));\r\n                    this.projectOptions = [...this.projectOptions, ...newProjects];\r\n\r\n                    // Add the new projects to the displayed list\r\n                    this.displayedProjects = [...this.displayedProjects, ...newProjects];\r\n\r\n                    // Update currentPage for the next load\r\n                    this.currentPage++;\r\n\r\n                    // Set the default selected project\r\n                    if (!this.selectedProjectId && this.projectOptions.length > 0) {\r\n                        const defaultProject = this.projectOptions.find(\r\n                        (project) => project.default_dashboard == 1\r\n                        );\r\n                        this.selectedProjectId = defaultProject\r\n                        ? defaultProject.id\r\n                        : \"select\";\r\n                    }\r\n                    },\r\n                    (err) => {\r\n                    this.loading = false;\r\n                    console.error(\"Error fetching project names:\", err);\r\n                    }\r\n                );\r\n            },\r\n            onProjectClick(id) {\r\n                if (this.selectedProjectId !== id) {\r\n                    this.selectedProjectId = id;\r\n                    localStorage.setItem(\"selected_project_id\", JSON.stringify(id));\r\n                    this.map.remove();\r\n                    // If id is null or undefined, fetch all spots\r\n                    if (id) {\r\n                        this.getClientProjectSpots(id);\r\n                    } else {\r\n                        this.getClientAdminSpots();\r\n                    }\r\n\r\n                    this.$store.dispatch('updateProjectID', id);\r\n                }\r\n            },\r\n        }\r\n    };\r\n</script>\r\n<style scoped lang=\"scss\">\r\n   #coordinates {\r\n        position: absolute !important;\r\n        bottom: 10px !important;\r\n    }\r\n    .basemap {\r\n        width: 100%;\r\n        height: 100%;\r\n    }\r\n\r\n    .mapboxgl-canvas {\r\n        width: 1200px;\r\n        height: 689.15px;\r\n        position: static !important;\r\n    }\r\n\r\n    .mapboxgl-canvas-container {\r\n        position: static !important;\r\n        width: 1200px !important;\r\n    }\r\n\r\n    #menu {\r\n        display: flex;\r\n        position: absolute;\r\n        background: #efefef;\r\n        padding: 10px;\r\n        font-family: 'Open Sans', sans-serif;\r\n        z-index: 1;\r\n        align-items: center;\r\n    }\r\n\r\n    #menu label {\r\n        margin-bottom: 0px;\r\n    }\r\n    .google-map-design {\r\n        min-height: calc(100vh - 184px);\r\n        height: 100%;\r\n    }\r\n    .google-map-design #mapContainer {\r\n        height: calc(100vh - 285px);\r\n    }\r\n\r\n    /* .google-map-design #mapContainer {\r\n        min-height: calc(100vh - 254px);\r\n        height: 100%;\r\n    } */\r\n    .new-table-responsive  tr td span {\r\n        white-space: pre-wrap;\r\n        line-height: 1.2;\r\n    }\r\n    @media (max-width: 767px) {\r\n        .map-btns button:nth-child(1) {\r\n            margin-right: 0px !important;\r\n        }\r\n    }\r\n    @media (max-width: 705px) {\r\n        #menu {\r\n            width: 80%;\r\n            flex-wrap: wrap;\r\n        }\r\n        .map-btns button:nth-child(1) {\r\n            margin-left: 0px !important;\r\n        }\r\n    }\r\n    @media (max-width: 500px) {\r\n        #menu {\r\n            width: 73%;\r\n            flex-wrap: wrap;\r\n        }\r\n    }\r\n    @media (max-width: 450px) {\r\n        .m-ml {\r\n            margin-left: 0px !important;\r\n        }\r\n    }\r\n    @media (max-width: 375px) {\r\n        .map-label {\r\n            font-size: 13px;\r\n        }\r\n        .new-card-body {\r\n            padding: 1.25rem 1.437rem !important;\r\n        }\r\n    }\r\n    @media (max-width: 341px) {\r\n        .map-btns button:nth-child(2) {\r\n            margin-top: 5px;\r\n            margin-left: 0px !important;\r\n        }\r\n        .map-btns button:nth-child(1) {\r\n            margin-right: 5px !important;\r\n        }\r\n    }\r\n    .b-sidebar.b-sidebar-right {\r\n        margin-top: 105px !important;\r\n    }\r\n    .sidebar-counter #sidebar-no-header {\r\n        margin-top: 105px !important;\r\n    }\r\n    .new-ml {\r\n        margin-left: 10px !important;\r\n        color: #fff !important;\r\n    }\r\n    .variant-orange {\r\n        color: #fff !important;\r\n        background-color: #fa6400;\r\n        border-color: #fa6400;\r\n    }\r\n\r\n</style>\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./satellite_map.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./satellite_map.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./satellite_map.vue?vue&type=template&id=27419bb0&scoped=true&\"\nimport script from \"./satellite_map.vue?vue&type=script&lang=js&\"\nexport * from \"./satellite_map.vue?vue&type=script&lang=js&\"\nimport style0 from \"./satellite_map.vue?vue&type=style&index=0&id=27419bb0&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"27419bb0\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('section',[_c('vue-snotify'),_c('div',{staticClass:\"row p-3 d-block\"},[_c('b-container',{attrs:{\"fluid\":\"\"}},[_c('div',[_c('h5',[_vm._v(_vm._s(_vm.$t('Following are spots in this cluster'))+\": \")])]),_c('div',[_c('h5',[_vm._v(_vm._s(_vm.$t('total-spots'))+\": \"+_vm._s(_vm.spotsData.length))])]),_vm._l((_vm.spotsData),function(spot){return _c('div',{key:spot.id,staticClass:\"full-width mt-3\"},[_c('b-card',[_c('b-card-text',[_c('div',{staticClass:\"row w-100\"},[_c('div',{staticClass:\"col-md-6 col-sm-6 col-xs-6\"},[_vm._v(\" \"+_vm._s(_vm.$t('spot-id'))+\" \")]),_c('div',{staticClass:\"col-md-6 col-sm-6 col-xs-6\"},[_c('a',{attrs:{\"href\":\"javascript:void(0)\"},on:{\"click\":function($event){return _vm.openDetils(spot.properties.id)}}},[_vm._v(\" \"+_vm._s(spot.properties.spot_id)+\" \")])])]),_c('div',{staticClass:\"row w-100\"},[_c('div',{staticClass:\"col-md-6 col-sm-6 col-xs-6\"},[_vm._v(\" \"+_vm._s(_vm.$t('spot'))+\" \")]),_c('div',{staticClass:\"col-md-6 col-sm-6 col-xs-6\"},[_vm._v(\" \"+_vm._s(spot.properties.title)+\" \")])]),_c('div',{staticClass:\"row w-100\"},[_c('div',{staticClass:\"col-md-6 col-sm-6 col-xs-6\"},[_vm._v(\" \"+_vm._s(_vm.$t('spot-date'))+\" \")]),_c('div',{staticClass:\"col-md-6 col-sm-6 col-xs-6\"},[_vm._v(\" \"+_vm._s(_vm.formatDateMM(spot.properties.spot_date))+\" \")])]),_c('div',{staticClass:\"row w-100\"},[_c('div',{staticClass:\"col-md-6 col-sm-6 col-xs-6\"},[_vm._v(\" \"+_vm._s(_vm.$t('spotted-by'))+\" \")]),_c('div',{staticClass:\"col-md-6 col-sm-6 col-xs-6\"},[_vm._v(\" \"+_vm._s(spot.properties.spotted_username)+\" \")])])])],1)],1)})],2)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n    <section>\r\n        <vue-snotify></vue-snotify>\r\n        <div class=\"row p-3 d-block\">\r\n            <b-container fluid>\r\n                <div>\r\n                    <h5>{{ $t('Following are spots in this cluster') }}: </h5>\r\n                </div>\r\n                <div>\r\n                    <h5>{{ $t('total-spots') }}: {{ spotsData.length }}</h5>\r\n                </div>\r\n                <div class=\"full-width mt-3\" v-for=\"spot in spotsData\" :key=\"spot.id\" >\r\n                    <!-- <b-card :img-src=\"spot.properties.iconUrl\" img-height=\"150\" img-width=\"200\" img-alt=\"Card image\" img-left class=\"mb-3\"> -->\r\n                        <b-card>\r\n                            <b-card-text>\r\n                                <div class=\"row w-100\">\r\n                                <div class=\"col-md-6 col-sm-6 col-xs-6\">\r\n                                    {{ $t('spot-id') }}\r\n                                    </div>\r\n                                    <div class=\"col-md-6 col-sm-6 col-xs-6\" >\r\n                                        <a href=\"javascript:void(0)\" @click=\"openDetils(spot.properties.id)\"> {{ spot.properties.spot_id }} </a>\r\n                                       \r\n                                    </div>\r\n                                </div>\r\n                                <div class=\"row w-100\">\r\n                                    <div class=\"col-md-6 col-sm-6 col-xs-6\">\r\n                                        {{ $t('spot') }}\r\n                                    </div>\r\n                                    <div class=\"col-md-6 col-sm-6 col-xs-6\">\r\n                                        {{ spot.properties.title }}\r\n                                    </div>\r\n                                </div>\r\n                                <div class=\"row w-100\">\r\n                                    <div class=\"col-md-6 col-sm-6 col-xs-6\">\r\n                                        {{ $t('spot-date') }}\r\n                                    </div>\r\n                                    <div class=\"col-md-6 col-sm-6 col-xs-6\">\r\n                                        {{ formatDateMM(spot.properties.spot_date) }}\r\n                                    </div>\r\n                                </div>\r\n                                <div class=\"row w-100\">\r\n                                    <div class=\"col-md-6 col-sm-6 col-xs-6\">\r\n                                        {{ $t('spotted-by') }}\r\n                                    </div>\r\n                                    <div class=\"col-md-6 col-sm-6 col-xs-6\">\r\n                                        {{ spot.properties.spotted_username }}\r\n                                    </div>\r\n                                </div>\r\n                                <!-- <div class=\"row w-100\">\r\n                                    <div class=\"col-md-6 col-sm-6 col-xs-6\">\r\n                                        Spotter Username:\r\n                                    </div>\r\n                                    <div class=\"col-md-6 col-sm-6 col-xs-6\"> \r\n                                        {{ spot.properties.spotted_username }}\r\n                                    </div>\r\n                                </div> -->\r\n                            </b-card-text>\r\n                    </b-card>\r\n                </div>\r\n            </b-container>\r\n        </div>\r\n    </section>\r\n</template>\r\n\r\n<script>\r\n    import Vue from \"vue\";\r\n    import\r\n    API from \"@/api\";\r\n    import Snotify, {\r\n        SnotifyPosition\r\n    } from \"vue-snotify\";\r\n    import {\r\n        validationMixin\r\n    } from \"vuelidate\";\r\n    import {\r\n        required,\r\n        minLength,\r\n        email,\r\n        requiredIf,\r\n        sameAs\r\n    } from \"vuelidate/lib/validators\";\r\n    import moment from 'moment';\r\n    \r\n    const options = {\r\n        toast: {\r\n            position: SnotifyPosition.rightTop\r\n        }\r\n    };\r\n    Vue.use(Snotify, options);\r\n    \r\n    export default {\r\n        name: \"openClusterSpotDetail\",\r\n        props: [\"spotsData\"],\r\n        components: {},\r\n        mixins: [validationMixin],\r\n        data() {\r\n            return {\r\n                isDisabled: false,\r\n                //  form: {\r\n                //   subscriptions:{\r\n                //     name: '',\r\n                //     description: '',\r\n                //   },\r\n                //   principals: [],\r\n                //   name: \"\",\r\n                //   stream_desc: \"\",\r\n                // },\r\n            };\r\n        },\r\n        validations: {\r\n            // form: {\r\n            //   subscriptions: {\r\n            //     name: {\r\n            //       required\r\n            //     },\r\n            //     description: {\r\n            //       required\r\n            //     }\r\n            //   },\r\n            // }\r\n        },\r\n        methods: {\r\n            openDetils(id) {\r\n                console.log('open,' , id);\r\n                this.$emit('openParentSpot', id, true);\r\n\r\n            },\r\n            formatDateMM(date) {\r\n                // return moment(new Date(date)).format('MM-DD-YYYY')\r\n                return moment(date, \"MM-DD-YYYY HH:mm:ss A\").format(\"MM-DD-YYYY\")\r\n            },\r\n        },\r\n        computed: {},\r\n        async created() {},\r\n        async beforeMount() {},\r\n        async mounted() {\r\n            console.log('spotsData in modal', this.spotsData);\r\n        },\r\n        beforeDestroy() {}\r\n    };\r\n</script>\r\n\r\n<style scoped lang=\"scss\">\r\n    .full-width {\r\n        width: 100% !important;\r\n    }\r\n    .full-width .row div:nth-child(2) {\r\n        text-align: right;\r\n    }\r\n    .full-width .row div {\r\n        padding: 0;\r\n    }\r\n    .full-width .row {\r\n        margin: 0;\r\n        flex-wrap: inherit;\r\n    }\r\n</style>","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClusterSpotsModal.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClusterSpotsModal.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ClusterSpotsModal.vue?vue&type=template&id=808e0828&scoped=true&\"\nimport script from \"./ClusterSpotsModal.vue?vue&type=script&lang=js&\"\nexport * from \"./ClusterSpotsModal.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ClusterSpotsModal.vue?vue&type=style&index=0&id=808e0828&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"808e0828\",\n  null\n  \n)\n\nexport default component.exports","var anObject = require('../internals/an-object');\nvar iteratorClose = require('../internals/iterator-close');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n  try {\n    return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n  } catch (error) {\n    iteratorClose(iterator, 'throw', error);\n  }\n};\n","var $ = require('../internals/export');\nvar from = require('../internals/array-from');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n  // eslint-disable-next-line es-x/no-array-from -- required for testing\n  Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.es/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n  from: from\n});\n","export default function _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n}","var $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar nativeKeys = require('../internals/object-keys');\nvar fails = require('../internals/fails');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); });\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n  keys: function keys(it) {\n    return nativeKeys(toObject(it));\n  }\n});\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./satellite_map.vue?vue&type=style&index=0&id=27419bb0&prod&scoped=true&lang=scss&\"","var UA = require('../internals/engine-user-agent');\n\nmodule.exports = /MSIE|Trident/.test(UA);\n","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar ownKeys = require('../internals/own-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar createProperty = require('../internals/create-property');\n\n// `Object.getOwnPropertyDescriptors` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptors\n$({ target: 'Object', stat: true, sham: !DESCRIPTORS }, {\n  getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) {\n    var O = toIndexedObject(object);\n    var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n    var keys = ownKeys(O);\n    var result = {};\n    var index = 0;\n    var key, descriptor;\n    while (keys.length > index) {\n      descriptor = getOwnPropertyDescriptor(O, key = keys[index++]);\n      if (descriptor !== undefined) createProperty(result, key, descriptor);\n    }\n    return result;\n  }\n});\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar nativeGetOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetOwnPropertyDescriptor(1); });\nvar FORCED = !DESCRIPTORS || FAILS_ON_PRIMITIVES;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\n$({ target: 'Object', stat: true, forced: FORCED, sham: !DESCRIPTORS }, {\n  getOwnPropertyDescriptor: function getOwnPropertyDescriptor(it, key) {\n    return nativeGetOwnPropertyDescriptor(toIndexedObject(it), key);\n  }\n});\n"],"sourceRoot":""}