{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/components/AccountSignin.vue?1653","webpack:///./src/components/StatusPanelItem.vue?76d3","webpack:///./src/icons.js","webpack:///./src/App.vue?8d4e","webpack:///./src/components/Dialog.vue?f051","webpack:///src/components/Dialog.vue","webpack:///./src/components/Dialog.vue?61e4","webpack:///./src/components/Dialog.vue","webpack:///src/App.vue","webpack:///./src/App.vue?1160","webpack:///./src/App.vue","webpack:///./src/MapApp.vue?3f16","webpack:///./src/mixins/gtag-event.js","webpack:///./src/components/SearchModal.vue?d06f","webpack:///src/components/SearchModal.vue","webpack:///./src/components/SearchModal.vue?3cc3","webpack:///./src/components/SearchModal.vue?f32d","webpack:///./src/components/StatusPanel.vue?2c30","webpack:///./src/components/StatusPanelItem.vue?77d8","webpack:///src/components/StatusPanelItem.vue","webpack:///./src/components/StatusPanelItem.vue?f989","webpack:///./src/components/StatusPanelItem.vue?43ba","webpack:///src/components/StatusPanel.vue","webpack:///./src/components/StatusPanel.vue?354d","webpack:///./src/components/StatusPanel.vue?5f15","webpack:///./src/components/MeasureMap.vue?0e00","webpack:///src/components/MeasureMap.vue","webpack:///./src/components/MeasureMap.vue?73db","webpack:///./src/components/MeasureMap.vue?f296","webpack:///./src/components/ControlPanel.vue?4486","webpack:///./src/components/UserAvatar.vue?21f2","webpack:///src/components/UserAvatar.vue","webpack:///./src/components/UserAvatar.vue?24a9","webpack:///./src/components/UserAvatar.vue?4a86","webpack:///./src/components/SearchCounter.vue?5419","webpack:///src/components/SearchCounter.vue","webpack:///./src/components/SearchCounter.vue?b663","webpack:///./src/components/SearchCounter.vue?b54d","webpack:///src/components/ControlPanel.vue","webpack:///./src/components/ControlPanel.vue?9f33","webpack:///./src/components/ControlPanel.vue?8610","webpack:///./src/components/MeasurementUnitPanel.vue?74d9","webpack:///src/components/MeasurementUnitPanel.vue","webpack:///./src/components/MeasurementUnitPanel.vue?6d5f","webpack:///./src/components/MeasurementUnitPanel.vue","webpack:///./src/components/SaveModal.vue?4849","webpack:///src/components/SaveModal.vue","webpack:///./src/components/SaveModal.vue?cd60","webpack:///./src/components/SaveModal.vue?2692","webpack:///./src/components/IntroTutorialModal.vue?a382","webpack:///src/components/IntroTutorialModal.vue","webpack:///./src/components/IntroTutorialModal.vue?c3eb","webpack:///./src/components/IntroTutorialModal.vue?961d","webpack:///./src/components/AffiliateModal.vue?8df5","webpack:///./src/components/ProductEstimater.vue?d138","webpack:///./src/utilities.js","webpack:///src/components/ProductEstimater.vue","webpack:///./src/components/ProductEstimater.vue?7809","webpack:///./src/components/ProductEstimater.vue?ae3e","webpack:///src/components/AffiliateModal.vue","webpack:///./src/components/AffiliateModal.vue?5c8d","webpack:///./src/components/AffiliateModal.vue?04c2","webpack:///./src/components/EstimateBanner.vue?730a","webpack:///src/components/EstimateBanner.vue","webpack:///./src/components/EstimateBanner.vue?0ed7","webpack:///./src/components/EstimateBanner.vue?ab31","webpack:///./src/components/PartnerBanner.vue?ab60","webpack:///src/components/PartnerBanner.vue","webpack:///./src/components/PartnerBanner.vue?0844","webpack:///./src/components/PartnerBanner.vue?99c9","webpack:///src/MapApp.vue","webpack:///./src/MapApp.vue?3b09","webpack:///./src/MapApp.vue","webpack:///./src/AccountApp.vue?fa4e","webpack:///src/AccountApp.vue","webpack:///./src/AccountApp.vue?3771","webpack:///./src/AccountApp.vue?f29a","webpack:///./src/components/AccountSignup.vue?72c6","webpack:///src/components/AccountSignup.vue","webpack:///./src/components/AccountSignup.vue?b1ec","webpack:///./src/components/AccountSignup.vue","webpack:///./src/components/AccountSignin.vue?c2ed","webpack:///src/components/AccountSignin.vue","webpack:///./src/components/AccountSignin.vue?4cd1","webpack:///./src/components/AccountSignin.vue?e7c2","webpack:///./src/components/AccountChangePassword.vue?d8f9","webpack:///src/components/AccountChangePassword.vue","webpack:///./src/components/AccountChangePassword.vue?e0b2","webpack:///./src/components/AccountChangePassword.vue","webpack:///./src/components/AccountConfig.vue?3dc7","webpack:///src/components/AccountConfig.vue","webpack:///./src/components/AccountConfig.vue?145a","webpack:///./src/components/AccountConfig.vue","webpack:///./src/components/AccountSubscription.vue?878a","webpack:///src/components/AccountSubscription.vue","webpack:///./src/components/AccountSubscription.vue?8c4d","webpack:///./src/components/AccountSubscription.vue","webpack:///./src/components/AccountSubscribe.vue?faea","webpack:///src/components/AccountSubscribe.vue","webpack:///./src/components/AccountSubscribe.vue?4e19","webpack:///./src/components/AccountSubscribe.vue?01ba","webpack:///./src/components/SearchWedge.vue?9533","webpack:///src/components/SearchWedge.vue","webpack:///./src/components/SearchWedge.vue?03c0","webpack:///./src/components/SearchWedge.vue","webpack:///./src/app.js","webpack:///./src/events.js","webpack:///./src/components/ControlPanel.vue?c2c1","webpack:///./src/components/SearchModal.vue?3e59","webpack:///./src/AccountApp.vue?29d8","webpack:///./src/store/getters.js","webpack:///./src/store/actions.js","webpack:///./src/store/mutations.js","webpack:///./src/store/plugins/UserWatcherPlugin.js","webpack:///./src/store/plugins/SaveSlotWatcherPlugin.js","webpack:///./src/store/modules/tooltips.js","webpack:///./src/store/modules/product-estimater.js","webpack:///./src/store/modules/payments.js","webpack:///./src/store/modules/user.js","webpack:///./src/store/modules/storage.js","webpack:///./src/store/modules/banners.js","webpack:///./src/store/modules/backend.js","webpack:///./src/store/modules/dialogs.js","webpack:///./src/store/index.js","webpack:///./src/components/TooltipWrapper.vue?c9f4","webpack:///src/components/TooltipWrapper.vue","webpack:///./src/components/TooltipWrapper.vue?de1b","webpack:///./src/components/TooltipWrapper.vue","webpack:///./src/components/IntroTutorialModal.vue?d7bb","webpack:///./src/components/AccountSubscribe.vue?9796","webpack:///./src/constants.js","webpack:///./src/components/MeasureMap.vue?64dc","webpack:///./src/components/shape_styles/AreaStyles.js","webpack:///./src/components/Area.js","webpack:///./src/components/ProductEstimater.vue?3775","webpack:///./src/components/ControlOverlay.js","webpack:///./src/components/behaviors/ClickableBehavior.js","webpack:///./src/components/shape_styles/StyleManager.js","webpack:///./src/components/OverlayWrapper.js","webpack:///./src/components/Shapes.js","webpack:///./src/components/StatusPanel.vue?cceb","webpack:///./src/app-config.yml","webpack:///./src/components/PathSegmentMeasurementOverlay.js","webpack:///./src/components/behaviors/DraggableBehavior.js","webpack:///./src/components/MapShape.js","webpack:///./node_modules/moment/locale sync \\b\\B","webpack:///./src/components/SearchCounter.vue?71a4","webpack:///./src/components/UserAvatar.vue?6093","webpack:///./src/components/AffiliateModal.vue?3957","webpack:///./src/components/SaveModal.vue?cbe2","webpack:///./src/components/shape_styles/DistanceStyles.js","webpack:///./src/components/Distance.js","webpack:///./src/components/EstimateBanner.vue?1496","webpack:///./src/components/PartnerBanner.vue?b32f"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","Vue","component","MapPlus","Magnify","ContentSave","Draw","CloseCircle","TapeMeasure","ShapePolygonPlus","ShapeRectanglePlus","Check","Help","ChevronDown","ChevronUp","Edit","Delete","Move","Done","Ruler","Open","Seed","Sprout","Cart","Calculator","ArrowLeft","ArrowRight","Information","Menu","Account","AccountCheck","Logout","Alert","PodiumBronze","PodiumSilver","PodiumGold","Cog","Polygon","ArrowExpand","_vm","this","_h","$createElement","_c","_self","staticStyle","attrs","loading","on","initStore","staticRenderFns","computed","watch","queue","queueItem","console","log","message","active","priority","inst","close","config","onConfirm","onCancel","type","$store","dispatch","components","throttledSave","lastActivity","inited","methods","throttleSave","localStorage","setItem","JSON","stringify","copy","subscribe","params","address","state","introTipsShown","beforeCreate","mounted","staticClass","appClick","$route","_e","ref","addMapShape","gTagEvent","a","v","gtag","class","searchModalVisible","_v","hide","directives","rawName","expression","domProps","$event","indexOf","_k","keyCode","search","target","composing","inputAddress","currentSlotName","currentUser","preventDefault","showSaveModal","_s","currentSlotMeta","getSaveAge","_g","click","showAccountSignin","hidden","minimized","model","callback","$$v","currentTab","areas","_l","area","indexID","currentShape","convertedCalculated","distanceVisible","measureSuffix","labelText","cutout","selectShape","deleteShape","setShapeLabelText","toggleShapeDistanceVisible","toggleShapeCutout","nativeOn","hoverShape","hoverOffShape","distances","distance","showUnitModal","activeStatusTabName","totalShapeCalculatedConverted","shapes","toggleMinimized","selected","$emit","scopedSlots","_u","fn","fillColor","proxy","map","addressEl","addressMarker","latLng","oldRoute","handler","newAddress","mapCenter","updateAddress","setAddressMarkerVisible","setCursor","$buefy","snackbar","open","initedShapes","forEach","currentInitedShape","setMode","immediate","newLatLng","lat","lng","fromMap","fromSave","nextTick","setCenter","mapZoom","newZoom","number","setZoom","shape","setMapZoom","existingShape","updateFromState","newCfg","removedShape","deep","initedShape","getShapeById","cursor","setOptions","setShapeSelectOverlayVisibility","shapeSelectOverlay","ControlOverlay","options","prefix","iconsOnly","buttons","icon","text","title","behavior","ClickableBehavior","tooltipPlacement","dispatcher","off","setPosition","event","setVisible","visible","cursorNormal","cursorDraw","find","getBounds","lastBounds","union","bounds","getNewPaths","updateMapCenter","initShape","cls","paths","loadState","handleMapClick","toolType","getters","lastMapClickLatLng","addCoordinate","isLatLngClickMatch","getType","clickedDistanceShape","clickedShapes","setMap","updateAddressMarker","google","maps","Marker","position","label","addressMarkerLabel","geocodeAddress","then","Map","$el","center","zoom","zoomControl","mapTypeId","MapTypeId","SATELLITE","disableDefaultUI","gestureHandling","zoomControlOptions","ControlPosition","LEFT_BOTTOM","tilt","addListener","handleMapRightClick","Overlay","$this","zoomFn","OverlayView","overlay","slot","manageAccount","tag","saveButtonClick","logout","newMap","showSearchModal","clearCurrentShape","addLayer","cancelFreeDraw","setIntroTipsModalVisibility","userInitials","maxSearchText","searchCount","TooltipWrapper","UserAvatar","SearchCounter","$mq","unitModalVisible","imperialStatus","toggleMetric","tableData","props","row","display","primaryUnit","currentPrimaryUnit","filteredUnits","u","set","unitPayload","currentDefaultUnit","debug","evt","status","saveModalVisible","slotSaved","saveSlot","slotName","convertedSaveSlots","saved","loadSlot","deleteSlot","introTipsModalVisible","carouselUpdated","item","carousel","publicPath","carousels","prevTip","nextTip","setAffiliateModalVisibility","affiliateModalVisible","estimate","stats","sqft","this$1","prev","currentProduct","next","filteredProducts","idx","product","refInFor","adCode","columns","convertedQuantities","parseFloat","convertedCoverage","toFixed","cost","toLocaleString","buy","truncate","str","num","field","centered","renderHtml","$refs","$children","querySelector","convertedProducts","filter","temp","totalSqft","filteredProductIdsAsList","reduce","acc","id","created","dialogActive","hasActiveSubscription","ad","url","fullBannerImgUrl","breakpoints","xs","sm","md","lg","Infinity","SearchModal","StatusPanel","MeasureMap","ControlPanel","SaveModal","IntroTutorialModal","AffiliateModal","EstimateBanner","PartnerBanner","MeasurementUnitPanel","shapeCfg","updateEstimate","currentRouteLabel","currentRouteName","showMessage","$router","replace","submit","email","password","confirmPassword","tosAgree","emailAgree","submitted","logoSrc","_m","resetPassword","userSubscriptions","plan_id","meta_data","max_searches","plan_unit_price","currency_code","userDetails","customer_id","primarySubscription","openCheckout","planId","openPortal","nextSubscriptionUpgrade","plan","plan_order","primarySubscriptionIndex","cancelledSubscription","selectPlan","description","price","period_unit","require","productionTip","use","Sidebar","Snackbar","Modal","Icon","Carousel","Switch","Dialog","Notification","Tabs","Table","Button","Tooltip","Select","Input","Checkbox","Dropdown","Field","Upload","Loading","VueRouter","router","addRoutes","path","MapApp","default","SearchWedge","dialog","AccountApp","children","AccountSignup","AccountSignin","AccountChangePassword","AccountConfig","AccountSubscription","AccountSubscribe","beforeEach","to","from","store","includes","render","h","App","$mount","DispatcherEvent","eventName","callbacks","Dispatcher","events","registerCallback","once","unRegisterCallback","index","findIndex","def","fire","clearCallbacks","unregisterCallback","roundTo","places","Math","round","sType","unit","primaryUnits","units","default_units","baseDistanceUnit","base_units","distanceUnit","baseUnitName","convert","calculated","decimals","convertedSegmentLengths","segmentLengths","distanceSuffix","suffix","imperial","lastMapClickEvent","isFunction","LatLng","largestShape","hoveredShape","group","activeTab","currentBaseUnit","rawCalculated","totalShapeCalculatedRaw","converted","accum","current","activeStatusTab","meta","assign","moment","fromNow","getSavedHuman","format","legacySaveSlots","saveSlots","keys","initializeStore","commit","initializeBackend","searchAddress","setTimeout","refreshShape","debounce","getState","trailing","refreshAllShapes","context","highlight","setCurrentControlOverlay","payload","currentControlOverlay","uuid","setToolType","setMapCenter","setShapeCutout","cfg","setShapeDistanceVisible","setCurrentShape","skipConfirm","has","getLabelText","removeFn","confirmText","cancelText","clearShapes","replaceShape","repl","clearAddress","initNewMap","initNewShape","NEW_AREA","addShape","setSaveModalVisibility","visibility","setSearchModalVisibility","setUnitModalVisibility","increaseGlobalZIndex","globalZIndex","setIntroTipsShown","setPublicComputerWarningShown","setImperialState","setPrimaryUnit","setLastMapClickEvent","delayedClear","setActiveStatusTab","tab","setAppClicked","clicked","root","Error","load","process","save","copiedState","cloneDeep","pick","Date","now","schemaVersion","sessionUuid","WARNINGS","INITIALIZE_STORE","newState","getItem","originalWarnings","storageState","parse","loadedState","omit","_","loadedShapes","defaults","shapeDefaults","affiliateModalShown","appClicked","uuidv4","CLEAR_LEGACY_SAVE_SLOTS","SET_MODE","SET_CURRENT_CONTROL_OVERLAY","SET_TOOL_TYPE","SET_IMPERIAL","SET_PRIMARY_UNIT","SET_ADDRESS","SET_SHAPES","REFRESH_SHAPE","SET_CURRENT_SHAPE","newId","k","SET_CURRENT_SLOT","SET_SHAPE_CUTOUT","SET_SHAPE_DISTANCE_VISIBILE","SET_SHAPE_LABEL_TEXT","REMOVE_SHAPE","ADD_SHAPE","REPLACE_SHAPE","SET_SHAPE_HIGHLIGHT","highlighted","SET_SEARCH_MODAL_VISIBLE","SET_SAVE_MODAL_VISIBLE","SET_INTRO_TIPS_MODAL_VISIBLE","SET_AFFILIATE_MODAL_VISIBLE","SET_ACTIVE_STATUS_TAB","SET_UNIT_MODAL_VISIBLE","SET_GLOBAL_ZINDEX","zIndex","SET_MAP_CENTER","SET_MAP_ZOOM","SET_APP_CLICKED","SET_INTRO_COMPLETED","introCompleted","SET_PUBLIC_COMPUTER_WARNING_SHOWN","publicComputerWarningShown","SET_INTRO_TIPS_SHOWN","SET_AFFILIATE_MODAL_SHOWN","SET_LAST_MAP_CLICK_EVENT","SET_LOADING","SET_GEOCODING_IN_PROGRESS","geocoding","geocodingInProgress","newUser","oldUser","newSubscriptions","oldSubscriptions","handleLegacySaveSlots","slots","migrateFn","newSlots","oldSlots","newSlotMeta","oldSlotMeta","user","lastAction","timers","mutations","SET_TOOLTIP_VISIBILITY","uniqueName","SET_LAST_ACTION","actions","setTooltipVisibility","setVisibility","useTimeout","parseInt","getMatchingCoverage","match","waste","matches","areaLeft","totalAreaRaw","coverage","cov","category","categoryInfo","seed","fertilizer","products","region","size","sku","SET_SELECTED_PRODUCT","SET_SELECTED_CATEGORY","coverageStats","quantities","quantityList","currentCategoryInfo","currentCategory","totals","el","count","sort","fEl","sEl","formatted","quantity","setSelectedProduct","setSelectedCategory","namespaced","cbInstance","plans","subEvent","SET_SUBSCRIPTIONS","subscriptions","SET_PLANS","SET_CB_INSTANCE","SET_SUB_EVENT","init","Chargebee","site","setPortalSession","response","setCustomerId","rootState","rootGetters","customerId","backend","db","collection","doc","uid","getPlans","retrievePlans","firebase","functions","httpsCallable","getHostedPageDetails","hostedPageId","retrieveHostedPage","hosted_page_id","hostedPageContent","generateCheckoutUrl","reactivate","subscriptionId","subscription_id","first_name","displayName","split","last_name","phone","generatePortalSession","cbPortal","createChargebeePortal","sub","subId","hostedPage","loaded","success","customer","step","setSubEvent","debouncedGetSearchCount","test","planDetails","maxSearches","e","leading","currentJSON","details","refreshTimer","SET_CURRENT_USER","toJSON","SET_REFRESH_TIMER","setInterval","CLEAR_REFRESH_TIMER","clearInterval","SET_DETAILS","SET_SEARCH_COUNT","SET_MAX_SEARCHES","Promise","resolve","auth","onAuthStateChanged","userDoc","onSnapshot","snapshot","docs","reload","ok","login","signInWithEmailAndPassword","signOut","register","createUserWithEmailAndPassword","sendPasswordResetEmail","sendVerificationEmail","userObj","sendEmailVerification","update","properties","updateEmail","updateProfile","updatePassword","getSubscriptions","retrieveSubscriptions","getSearchCount","updateSearchCount","nameParts","part","substring","toUpperCase","join","searchesLeft","primary_subscription","subscription","primary","next_upgrade","getNextSaveName","total","findAvailable","val","toLowerCase","CLEAR_SAVE_SLOTS","CLEAR_USER_DOC","SET_SAVE_SLOTS","tmp","full","skeleton","SET_SAVE_SLOT","DELETE_SAVE_SLOT","SET_USER_DOC","moveLegacySavesToStorage","saves","newName","all","reset","banners","SET_BANNERS","refreshBanners","retrieveBanners","list","banner","shortName","payments","storage","app","initing","firebaseConfig","apiKey","authDomain","databaseURL","VUE_APP_FIREBASE_DATABASE","projectId","storageBucket","messagingSenderId","appId","SET_APP","SET_DB","SET_INITING","initialize","initializeApp","firestore","newSearchCount","isIniting","promptDefaults","confirmDefaults","alertDefaults","snackbarDefaults","duration","actionText","0","1","2","addToQueue","removeFromQueue","setActive","queueDialog","md5","fnKey","_this","args","entries","alert","mergedConfig","__type","confirm","prompt","Vuex","Store","nextLatLngPan","tooltips","estimater","dialogs","plugins","UserWatcherPlugin","SaveSlotWatcherPlugin","changeVisibleState","_t","delay","triggerWhenVisible","Boolean","placement","theme","justOnce","trigger","String","hideOnClick","touch","triggerTargetClass","instance","oldV","displayedWhenVisible","triggerTargets","content","allowHTML","appendTo","document","body","triggerTarget","interactive","selectedHandleIdx","startEndHandleZoomFormulas","22","z","21","20","19","18","17","16","15","14","13","12","11","10","9","8","7","6","5","4","3","midPointZoomFormulas","normal","handles","draggable","SymbolPath","CIRCLE","scale","strokeColor","startHandles","endHandles","centerMarkers","edgeAddCoordIcon","anchor","Point","scaledSize","Size","clickable","marker","geodesic","strokeWeight","fillOpacity","editable","styleMgr","StyleManager","styles","Area","defaultsDeep","getTime","initialZoom","_type","_poly","MapShape","_initEvents","_handleModeChanged","getPath","_customGetHandleVisibility","_selected","_mode","getArray","_distanceVisible","_cutout","_highlighted","getCalculated","getSegmentLengths","_initialZoom","force","curState","setSelected","setHighlighted","setCutOut","setDistanceVisible","setLabelText","_updatePathFromArray","geometry","poly","containsLocation","getPoly","spherical","computeArea","abs","cmp","template","Number","Array","classList","add","remove","getUUID","handleBehavior","btn","items","querySelectorAll","style","left","cos","PI","top","sin","classes","OverlayWrapper","touchstart","getMap","setup","parent","handleEvent","NORMAL_STATE","_styles","_cmpInstance","unshift","_additionalClasses","onAdd","panes","getPanes","float","floatPane","container","createElement","ComponentClass","extend","propsData","$on","handleOverlayEvent","appendChild","_container","_visible","mappedEvent","onRemove","parentNode","removeChild","draw","projection","getProjection","fromLatLngToDivPixel","x","y","$setProp","attempts","maxAttempts","$props","_timer","clearTimeout","Distance","shapeIndexID","measurement","segmentIdx","DraggableBehavior","dragstart","dragmove","origin","stopPropagation","_get","clientX","clientY","pos","fromDivPixelToLatLng","dragstop","getDiv","addEventListener","_labelText","_map","_styleMgr","_drawingLine","_edgeData","_hideDrawingLine","_hideHandles","_shapeControlOverlay","_handleControlOverlay","_selectedHandleIdx","_dragTimer","_editVertex","_markers","_segmentTextOverlays","_lastCenter","getCenter","_lastHandleControlOverlayPosition","_zoom","updateHandles","_updateEdgeCenterMarkers","_setSelectedHandle","getSelectedStatus","getHighlightedStatus","getPathVertexCount","getLength","_getAngle","latLngFrom","latLngTo","fromLatLngToContainerPixel","pixelX1","pixelY1","pixelX2","pixelY2","atan2","prevItem","curItem","getAt","toString","_handleLineBoundsChanged","_handleInspectLine","_handleMouseOver","_handleMouseOut","_handleMapZoomChange","_updateHandleRotations","_resetEdgeCenterMarkers","_updateAreaControlPosition","_setHandleControlVisible","_handleMarkerDrag","pathIdx","setAt","_handleMarkerClick","_handleMarkerMouseOver","_handleShapeControlOverlayDrag","_shapeControlOverlaylay","_handleShapeControlOverlayDragEnd","targetLatLng","oldPath","oldX","oldY","newX","newY","diffX","diffY","pathLatLng","pathX","pathY","tempPoint","fromContainerPixelToLatLng","handleParentMapMouseOut","handleParentMapMouseOver","handleParentMapMouseMove","_removeVertex","vertex","_deletePathSegmentText","previousVertex","removeAt","_handleEdgeCenterMouseOver","edge","_handleEdgeCenterMouseOut","_handleEdgeCenterClick","pairIdx","getPosition","_handleHandleControlDrag","_handleHandleControlAddClick","_handleHandleControlTrashClick","_checkMouseOver","pairs","getSegmentPairs","pair","geolib","latitude","longitude","pairCenter","pairLength","computeLength","tooShort","_updatePathSegmentText","_setEdgeCentersVisible","getCutOutStatus","_refreshPolyOptions","zoomNumber","overlayPosition","_setAreaControlVisible","shapeControlOverlay","latLngs","clear","_getHandleStyle","forceDeselect","entity","start","end","_customGetHandleRotation","rotation","_getHandleZoom","_getHandleAnchor","newPath","setZIndex","setIcon","textOverlay","PathSegmentMeasurementOverlay","controlOverlay","parentMarker","previousHandle","_updateDrawingLines","line","Polyline","handle","computeDistanceBetween","b","setPath","_setDrawingLinesVisible","_setShadowPolyVisible","setDraggable","insertAt","undefined","LatLngBounds","_handleControlMarker","resetOptions","webpackEmptyContext","req","code","checkNearLine","checkX","checkY","x0","y0","x1","y1","threshold","coords","lineLow","dx","dy","yi","D","lineHigh","xi","coord","xMatch","yMatch","alwaysDisplayHandles","constructor","anchors","formulas","vertexCount","getPrev","fromIdx","toIdx","getNext","prevAngle","nextAngle","finalAngle","diff","clickX","clickY","startX","startY","endX","endY"],"mappings":"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","file":"js/app.de3c2a08.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([1,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccountSignin.vue?vue&type=style&index=0&id=eea19604&scoped=true&lang=css&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StatusPanelItem.vue?vue&type=style&index=0&id=4a2ac651&scoped=true&lang=css&\"","/* icons.js */\r\n\r\nimport Vue from 'vue';\r\nimport 'vue-material-design-icons/styles.css';\r\n\r\n/* used in control panel */\r\nimport MapPlus from 'vue-material-design-icons/MapPlus.vue';\r\nimport Magnify from 'vue-material-design-icons/Magnify.vue';\r\nimport ContentSave from 'vue-material-design-icons/ContentSave.vue';\r\nimport TapeMeasure from 'vue-material-design-icons/TapeMeasure.vue';\r\nimport Draw from 'vue-material-design-icons/Draw.vue';\r\nimport CloseCircle from 'vue-material-design-icons/CloseCircle.vue';\r\nimport ShapePolygonPlus from 'vue-material-design-icons/ShapePolygonPlus.vue';\r\nimport ShapeRectanglePlus from 'vue-material-design-icons/ShapeRectanglePlus.vue';\r\nimport Check from 'vue-material-design-icons/Check.vue';\r\nimport Help from 'vue-material-design-icons/Help.vue';\r\nimport Ruler from 'vue-material-design-icons/Ruler.vue';\r\n\r\n/* used on status panel */\r\nimport ChevronDown from 'vue-material-design-icons/ChevronDown.vue';\r\nimport ChevronUp from 'vue-material-design-icons/ChevronUp.vue';\r\nimport Information from 'vue-material-design-icons/Information.vue';\r\n\r\n/* used on control and handle overlays */\r\nimport Edit from 'vue-material-design-icons/VectorPolylineEdit.vue'\r\nimport Delete from 'vue-material-design-icons/Delete.vue'\r\nimport Move from 'vue-material-design-icons/CursorMove.vue'\r\nimport Done from 'vue-material-design-icons/Check.vue'\r\n\r\n/* used on open/save modal */\r\nimport Open from 'vue-material-design-icons/OpenInNew.vue'\r\n\r\n/* used on product estimater */\r\nimport Seed from 'vue-material-design-icons/Seed.vue'\r\nimport Sprout from 'vue-material-design-icons/Sprout.vue'\r\nimport Cart from 'vue-material-design-icons/Cart.vue'\r\nimport Calculator from 'vue-material-design-icons/Calculator.vue'\r\nimport ArrowLeft from 'vue-material-design-icons/ArrowLeftCircleOutline.vue'\r\nimport ArrowRight from 'vue-material-design-icons/ArrowRightCircleOutline.vue'\r\n\r\nimport Account from 'vue-material-design-icons/Account.vue'\r\nimport AccountCheck from 'vue-material-design-icons/AccountCheck.vue'\r\nimport Menu from 'vue-material-design-icons/Menu.vue'\r\nimport Logout from 'vue-material-design-icons/Logout.vue'\r\n\r\nimport Polygon from 'vue-material-design-icons/VectorPolygon.vue'\r\nimport ArrowExpand from 'vue-material-design-icons/ArrowExpand.vue'\r\n\r\n/* used on local save dialog */\r\nimport Alert from 'vue-material-design-icons/Alert.vue'\r\n\r\n/* used on subscribe modal */\r\nimport PodiumBronze from 'vue-material-design-icons/PodiumBronze.vue'\r\nimport PodiumSilver from 'vue-material-design-icons/PodiumSilver.vue'\r\nimport PodiumGold from 'vue-material-design-icons/PodiumGold.vue'\r\n\r\nimport Cog from 'vue-material-design-icons/Cog.vue'\r\n\r\nVue.component('map-plus-icon', MapPlus);\r\nVue.component('magnify-icon', Magnify);\r\nVue.component('content-save-icon', ContentSave);\r\nVue.component('draw-icon', Draw);\r\nVue.component('close-circle-icon', CloseCircle);\r\nVue.component('tape-measure-icon', TapeMeasure);\r\nVue.component('shape-polygon-plus-icon', ShapePolygonPlus);\r\nVue.component('shape-rectangle-plus-icon', ShapeRectanglePlus);\r\nVue.component('check-icon', Check);\r\nVue.component('help-icon', Help);\r\nVue.component('chevron-down-icon', ChevronDown);\r\nVue.component('chevron-up-icon', ChevronUp);\r\nVue.component('vector-polyline-edit-icon', Edit);\r\nVue.component('delete-icon', Delete);\r\nVue.component('cursor-move-icon', Move);\r\nVue.component('check-icon', Done);\r\nVue.component('ruler-icon', Ruler);\r\n\r\nVue.component('open-icon', Open);\r\n\r\nVue.component('seed-icon', Seed);\r\nVue.component('sprout-icon', Sprout);\r\nVue.component('cart-icon', Cart);\r\nVue.component('calculator-icon', Calculator);\r\nVue.component('arrow-left-icon', ArrowLeft);\r\nVue.component('arrow-right-icon', ArrowRight);\r\nVue.component('information-icon', Information);\r\n\r\nVue.component('menu-icon', Menu);\r\nVue.component('account', Account);\r\nVue.component('account-check', AccountCheck);\r\nVue.component('logout-icon', Logout);\r\n\r\nVue.component('alert-icon', Alert);\r\n\r\nVue.component('podiumbronze-icon', PodiumBronze);\r\nVue.component('podiumsilver-icon', PodiumSilver);\r\nVue.component('podiumgold-icon', PodiumGold);\r\n\r\nVue.component('cog-icon', Cog);\r\n\r\nVue.component('vector-polygon-icon', Polygon);\r\nVue.component('arrow-expand-icon', ArrowExpand);\r\n\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"display\":\"contents\"}},[_c('b-loading',{attrs:{\"active\":_vm.loading}}),_c('dialog-manager'),_c('router-view',{on:{\"map-init\":_vm.initStore}}),_c('router-view',{attrs:{\"name\":\"dialog\"}}),_c('router-view',{attrs:{\"name\":\"search\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div')}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Dialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Dialog.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Dialog.vue?vue&type=template&id=bec41e2c&\"\nimport script from \"./Dialog.vue?vue&type=script&lang=js&\"\nexport * from \"./Dialog.vue?vue&type=script&lang=js&\"\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 null,\n null\n \n)\n\nexport default component.exports","/* App.vue */\r\n\r\n\r\n\r\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=922b0232&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\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 null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"map-root-ct\",attrs:{\"id\":\"app\"},on:{\"click\":_vm.appClick}},[(this.$route.name == 'Map')?_c('estimate-banner'):_vm._e(),_c('measure-map',{ref:\"map\"}),_c('status-panel',{on:{\"add-shape-click\":_vm.addMapShape}}),_c('search-modal'),_c('save-modal'),_c('control-panel',{on:{\"add-shape-click\":_vm.addMapShape}}),_c('intro-tutorial-modal'),_c('measurement-unit-panel')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default {\r\n methods: {\r\n gTagEvent({ a = 'Click', c, l, v = 1 } = {}) {\r\n if (typeof gtag === 'function') {\r\n console.log('sendtag: ', a, c, l, v);\r\n gtag('event', a, {\r\n 'event_category': c,\r\n 'event_label': l,\r\n 'value': v\r\n });\r\n }\r\n }\r\n }\r\n}","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:['modal', {'is-active': _vm.searchModalVisible}]},[_c('div',{staticClass:\"modal-background\"}),_c('div',{staticClass:\"modal-card\"},[_c('header',{staticClass:\"modal-card-head\"},[_c('p',{staticClass:\"modal-card-title\"},[_vm._v(\"Search for a new address\")]),_c('button',{staticClass:\"delete\",attrs:{\"aria-label\":\"close\"},on:{\"click\":_vm.hide}})]),_c('section',{staticClass:\"modal-card-body\"},[_c('div',{staticClass:\"field\"},[_c('div',{staticClass:\"control is-expanded detail\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.inputAddress),expression:\"inputAddress\"}],ref:\"address\",staticClass:\"input\",attrs:{\"type\":\"text\",\"id\":\"address\"},domProps:{\"value\":(_vm.inputAddress)},on:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.search($event)},\"input\":function($event){if($event.target.composing){ return; }_vm.inputAddress=$event.target.value}}})])]),_c('div',{staticClass:\"field\"},[_c('div',{staticClass:\"control detail\"},[_c('button',{staticClass:\"button is-primary is-fullwidth\",attrs:{\"id\":\"search\"},on:{\"click\":_vm.search}},[_vm._v(\"Search\")])])])]),_c('footer',{staticClass:\"modal-card-foot\"},[_c('p',{staticClass:\"help\"},[_c('span',{staticClass:\"is-size-6\"},[_c('alert-icon'),_vm._v(\"Notice\")],1),_c('br'),_vm._v(\"Measure My Lawn does not currently support searching for non-US and Canada addresses.\")])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchModal.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchModal.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SearchModal.vue?vue&type=template&id=1438157d&scoped=true&\"\nimport script from \"./SearchModal.vue?vue&type=script&lang=js&\"\nexport * from \"./SearchModal.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SearchModal.vue?vue&type=style&index=0&id=1438157d&scoped=true&lang=css&\"\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 \"1438157d\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('section',{staticClass:\"section status-panel is-marginless is-paddingless\"},[_c('div',{staticClass:\"save-status\"},[(_vm.currentSlotName && _vm.currentUser)?_c('span',[_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.showSaveModal($event)}}},[_vm._v(_vm._s(_vm.currentSlotName))]),_c('span',{staticClass:\"is-italic\"},[_c('br'),_vm._v(\"(saved \"+_vm._s(_vm.currentSlotMeta.getSaveAge())+\")\")])]):_c('span',[_c('a',_vm._g({attrs:{\"href\":\"#\"}},(_vm.currentUser) ? { click: function () { return _vm.showSaveModal(); } } : { click: function () { return _vm.showAccountSignin(); } }),[_vm._v(\"Not saved\")])])]),_c('div',{staticClass:\"box has-background-light\"},[_c('div',[_c('b-tabs',{class:{ hidden: !_vm.minimized },attrs:{\"size\":\"is-small\",\"animated\":false},model:{value:(_vm.currentTab),callback:function ($$v) {_vm.currentTab=$$v},expression:\"currentTab\"}},[_c('b-tab-item',{attrs:{\"label\":\"Area\"}},[(_vm.areas.length)?_c('ul',{staticClass:\"area-list\"},_vm._l((_vm.areas),function(area){return _c('status-panel-item',{key:area.indexID,attrs:{\"selected\":(area.indexID == _vm.currentShape.indexID),\"value\":area.convertedCalculated,\"distance-visible\":area.distanceVisible,\"measure-suffix\":_vm.measureSuffix,\"label-text\":area.labelText,\"enable-cutout\":true,\"cutout\":area.cutout},on:{\"select\":function($event){return _vm.selectShape(area)},\"delete\":function($event){return _vm.deleteShape(area)},\"label-change\":function($event){return _vm.setShapeLabelText($event, area)},\"distance-visible-change\":function($event){return _vm.toggleShapeDistanceVisible($event, area)},\"cutout-change\":function($event){return _vm.toggleShapeCutout($event, area)}},nativeOn:{\"mouseover\":function($event){return _vm.hoverShape(area)},\"mouseup\":function($event){return _vm.hoverOffShape($event)},\"mouseout\":function($event){return _vm.hoverOffShape($event)}}})}),1):_vm._e()]),_c('b-tab-item',{attrs:{\"label\":\"Distance\"}},[(_vm.distances.length)?_c('ul',{staticClass:\"area-list\"},_vm._l((_vm.distances),function(distance){return _c('status-panel-item',{key:distance.indexID,attrs:{\"selected\":(distance.indexID == _vm.currentShape.indexID),\"value\":distance.convertedCalculated,\"distance-visible\":distance.distanceVisible,\"measure-suffix\":_vm.measureSuffix,\"label-text\":distance.labelText},on:{\"select\":function($event){return _vm.selectShape(distance)},\"delete\":function($event){return _vm.deleteShape(distance)},\"label-change\":function($event){return _vm.setShapeLabelText($event, distance)},\"distance-visible-change\":function($event){return _vm.toggleShapeDistanceVisible($event, distance)}},nativeOn:{\"mouseover\":function($event){return _vm.hoverShape(distance)},\"mouseup\":function($event){return _vm.hoverOffShape($event)},\"mouseout\":function($event){return _vm.hoverOffShape($event)}}})}),1):_vm._e()])],1)],1),_c('div',{staticClass:\"level is-mobile\"},[_c('div',{staticClass:\"level-left\"},[_c('div',{staticClass:\"level-item total-area\",attrs:{\"id\":\"total-area\"}},[_c('a',{staticClass:\"button is-small\",attrs:{\"href\":\"javascript:void(0)\"},on:{\"click\":function($event){return _vm.showUnitModal()}}},[_c('span',[_vm._v(\"Total \"+_vm._s(_vm.activeStatusTabName)+\": \"),_c('span',{staticClass:\"has-text-weight-bold\"},[_vm._v(_vm._s(_vm.totalShapeCalculatedConverted)+\" \"),_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.measureSuffix)}})])])])])]),_c('div',{staticClass:\"level-right\"},[_c('div',{staticClass:\"level-item\"},[_c('div',{staticClass:\"field\"},[_c('p',{staticClass:\"control\"},[(_vm.shapes.length)?_c('a',{staticClass:\"button is-small\",attrs:{\"href\":\"javascript:void(0)\",\"title\":\"Show / Hide details\"},on:{\"click\":function($event){return _vm.toggleMinimized()}}},[(_vm.minimized)?[_c('span',[_vm._v(\"Hide details\")]),_c('chevron-down-icon')]:[_c('span',{staticClass:\"text\"},[_vm._v(\"Show details\")]),_c('chevron-up-icon')]],2):_vm._e()])])])])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('li',{class:['status-item', { 'selected': _vm.selected }]},[_c('div',{staticClass:\"level is-mobile\"},[_c('div',{staticClass:\"level-left\"},[_c('div',{staticClass:\"level-item\"},[_c('a',{attrs:{\"href\":\"javascript:void(0);\"},on:{\"click\":function($event){return _vm.$emit('select')}}},[_vm._v(_vm._s(_vm.value)+\" \"),_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.measureSuffix)}})])]),_c('div',{staticClass:\"level-item\"},[_vm._v(\" \"+_vm._s(_vm.labelText)+\" \")])]),_c('div',{staticClass:\"level-right status-controls\"},[_c('tooltip-wrapper',{attrs:{\"name\":\"layer-controls\",\"placement\":\"top\",\"hideOnClick\":true,\"trigger\":\"click\",\"triggerTargetClass\":\"custom-trigger\",\"touch\":true,\"delay\":false},scopedSlots:_vm._u([{key:\"tooltip-content\",fn:function(){return [_c('b-field',{attrs:{\"label\":\"Label\",\"label-position\":\"inside\"}},[_c('b-input',{attrs:{\"name\":\"label\",\"type\":\"text\",\"value\":_vm.labelText},on:{\"input\":function($event){return _vm.$emit('label-change', $event)}}})],1),(_vm.enableFillColor)?_c('b-field',{attrs:{\"label\":\"Color\",\"label-position\":\"inside\"}},[_c('b-input',{attrs:{\"name\":\"color\",\"type\":\"color\",\"value\":_vm.fillColor},on:{\"input\":function($event){return _vm.$emit('fill-color-change', $event)}}})],1):_vm._e(),(_vm.enableCutout)?_c('b-switch',{staticClass:\"level-item\",attrs:{\"value\":_vm.cutout,\"size\":\"is-small\"},on:{\"input\":function($event){return _vm.$emit('cutout-change', $event)}}},[_vm._v(\"Subtract\")]):_vm._e(),_c('b-switch',{staticClass:\"level-item\",attrs:{\"value\":_vm.distanceVisible,\"size\":\"is-small\"},on:{\"input\":function($event){return _vm.$emit('distance-visible-change', $event)}}},[_vm._v(\"Show Segment Lengths\")]),_c('a',{staticClass:\"button is-success custom-trigger\"},[_c('check-icon')],1)]},proxy:true}])},[_c('a',{staticClass:\"level-item\"},[_c('cog-icon',{staticClass:\"icon-2x\"})],1)]),_c('a',{staticClass:\"level-item\",attrs:{\"title\":\"Delete this measurement\"},on:{\"click\":function($event){return _vm.$emit('delete')}}},[_c('delete-icon',{staticClass:\"icon-2x\"})],1)],1)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StatusPanelItem.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StatusPanelItem.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./StatusPanelItem.vue?vue&type=template&id=4a2ac651&scoped=true&\"\nimport script from \"./StatusPanelItem.vue?vue&type=script&lang=js&\"\nexport * from \"./StatusPanelItem.vue?vue&type=script&lang=js&\"\nimport style0 from \"./StatusPanelItem.vue?vue&type=style&index=0&id=4a2ac651&scoped=true&lang=css&\"\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 \"4a2ac651\",\n null\n \n)\n\nexport default component.exports","/* status-panel.js */\r\n\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StatusPanel.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StatusPanel.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./StatusPanel.vue?vue&type=template&id=0dee6b22&\"\nimport script from \"./StatusPanel.vue?vue&type=script&lang=js&\"\nexport * from \"./StatusPanel.vue?vue&type=script&lang=js&\"\nimport style0 from \"./StatusPanel.vue?vue&type=style&index=0&lang=css&\"\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 null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:\"container\",attrs:{\"id\":\"map\"}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MeasureMap.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MeasureMap.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MeasureMap.vue?vue&type=template&id=6e7aab98&\"\nimport script from \"./MeasureMap.vue?vue&type=script&lang=js&\"\nexport * from \"./MeasureMap.vue?vue&type=script&lang=js&\"\nimport style0 from \"./MeasureMap.vue?vue&type=style&index=0&lang=css&\"\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 null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"side-pane\"}},[_c('div',{class:{hidden: !_vm.visible},attrs:{\"id\":\"controls\"}},[_c('div',{staticClass:\"field avatar-ct\"},[_c('b-dropdown',{attrs:{\"position\":\"is-bottom-left\"}},[_c('a',{attrs:{\"slot\":\"trigger\"},on:{\"click\":function($event){$event.preventDefault();}},slot:\"trigger\"},[(_vm.currentUser)?_c('user-avatar'):_c('span',{staticClass:\"button\"},[_c('span',{staticClass:\"icon\"},[_c('menu-icon')],1)])],1),_c('b-dropdown-item',{on:{\"click\":_vm.manageAccount}},[_c('span',{staticClass:\"icon\"},[_c((_vm.currentUser) ? 'account-check' : 'account',{tag:\"component\"})],1),(_vm.currentUser)?_c('span',[_vm._v(\"Manage Account\")]):_c('span',[_vm._v(\"Login / Signup\")])]),_c('b-dropdown-item',{on:{\"click\":_vm.saveButtonClick}},[_c('span',{staticClass:\"icon\"},[_c('content-save-icon')],1),_c('span',[_vm._v(\"Save / Load\")])]),(_vm.currentUser)?_c('b-dropdown-item',{on:{\"click\":_vm.logout}},[_c('span',{staticClass:\"icon\"},[_c('logout-icon')],1),_c('span',[_vm._v(\"Logout\")])]):_vm._e()],1)],1),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.currentShape.indexID && _vm.mode != 'free'),expression:\"!currentShape.indexID && mode != 'free'\"}],staticClass:\"field\"},[_c('tooltip-wrapper',{attrs:{\"label\":\"Start from scratch\",\"name\":\"startOver\"}},[_c('a',{staticClass:\"button\",on:{\"click\":_vm.newMap}},[_c('span',{staticClass:\"icon\"},[_c('map-plus-icon')],1)])])],1),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.currentShape.indexID && _vm.mode != 'free'),expression:\"!currentShape.indexID && mode != 'free'\"}],staticClass:\"field\"},[_c('tooltip-wrapper',{attrs:{\"label\":\"Search for a new address\",\"name\":\"addressSearch\"}},[_c('a',{staticClass:\"button\",on:{\"click\":_vm.showSearchModal}},[_c('span',{staticClass:\"icon\"},[_c('magnify-icon')],1)])])],1),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.mode == 'move' && _vm.currentShape.indexID),expression:\"mode == 'move' && currentShape.indexID\"}],staticClass:\"field\"},[_c('tooltip-wrapper',{attrs:{\"label\":\"Done with this layer\",\"name\":\"finishEditingLayer\",\"trigger-when-visible\":\"\",\"just-once\":\"\"}},[_c('a',{staticClass:\"button\",on:{\"click\":function($event){return _vm.clearCurrentShape()}}},[_c('span',{staticClass:\"icon\"},[_c('check-icon')],1)])])],1),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.mode == 'draw' && _vm.currentShape.paths && (_vm.currentShape.type == 'area' && _vm.currentShape.paths.length > 2 || _vm.currentShape.type == 'distance' && _vm.currentShape.paths.length > 1)),expression:\"mode == 'draw' && currentShape.paths && (currentShape.type == 'area' && currentShape.paths.length > 2 || currentShape.type == 'distance' && currentShape.paths.length > 1)\"}],staticClass:\"field\"},[_c('tooltip-wrapper',{attrs:{\"label\":\"Done changing points\",\"name\":\"finishEditingMarker\",\"trigger-when-visible\":\"\",\"just-once\":\"\"}},[_c('a',{staticClass:\"button\",on:{\"click\":function($event){return _vm.setMode('move')}}},[_c('span',{staticClass:\"icon\"},[_c('check-icon')],1)])])],1),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.mode == 'move'),expression:\"mode == 'move'\"}],staticClass:\"field\"},[_c('b-dropdown',{attrs:{\"position\":\"is-bottom-left\"}},[_c('a',{attrs:{\"slot\":\"trigger\"},on:{\"click\":function($event){$event.preventDefault();}},slot:\"trigger\"},[_c('tooltip-wrapper',{attrs:{\"label\":\"Create a new measurement\",\"name\":\"createNewMeasurement\",\"trigger-when-visible\":\"\",\"just-once\":\"\"}},[_c('span',{staticClass:\"button\"},[_c('span',{staticClass:\"icon\"},[_c('tape-measure-icon')],1)])])],1),_c('b-dropdown-item',{class:{'is-primary is-active': _vm.mode == 'free'},on:{\"click\":function($event){return _vm.addLayer('distance')}}},[_c('span',{staticClass:\"icon\"},[_c('ruler-icon')],1),_c('span',[_vm._v(\"Distance\")])]),_c('b-dropdown-item',{class:{'is-primary is-active': _vm.mode == 'free'},on:{\"click\":function($event){return _vm.addLayer('area','free')}}},[_c('span',{staticClass:\"icon\"},[_c('draw-icon')],1),_c('span',[_vm._v(\"Area (free draw)\")])]),_c('b-dropdown-item',{on:{\"click\":function($event){return _vm.addLayer('area','rectangle')}}},[_c('span',{staticClass:\"icon\"},[_c('shape-rectangle-plus-icon')],1),_c('span',[_vm._v(\"Area (rectangle)\")])])],1)],1),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.mode == 'free' || (_vm.currentShape.paths && (_vm.currentShape.type == 'area' && _vm.currentShape.paths.length < 3 || _vm.currentShape.type == 'distance' && _vm.currentShape.paths.length < 2))),expression:\"mode == 'free' || (currentShape.paths && (currentShape.type == 'area' && currentShape.paths.length < 3 || currentShape.type == 'distance' && currentShape.paths.length < 2))\"}],staticClass:\"field\"},[_c('tooltip-wrapper',{attrs:{\"label\":\"Cancel drawing\",\"name\":\"cancelDrawing\",\"trigger-when-visible\":\"\",\"just-once\":\"\"}},[_c('a',{staticClass:\"button\",on:{\"click\":_vm.cancelFreeDraw}},[_c('span',{staticClass:\"icon\"},[_c('close-circle-icon')],1)])])],1),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.mode == 'move'),expression:\"mode == 'move'\"}],staticClass:\"field\"},[_c('tooltip-wrapper',{attrs:{\"label\":\"Get help\",\"name\":\"getHelp\"}},[_c('a',{staticClass:\"button\",attrs:{\"title\":\"Helpful tips\"},on:{\"click\":function($event){return _vm.setIntroTipsModalVisibility(true)}}},[_c('span',{staticClass:\"icon\"},[_c('help-icon')],1)])])],1),_c('div',{staticClass:\"field\"},[_c('tooltip-wrapper',{attrs:{\"label\":\"Searches remaining\",\"name\":\"getHelp\"}},[_c('search-counter')],1)],1)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_vm._v(_vm._s(_vm.userInitials))])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserAvatar.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserAvatar.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./UserAvatar.vue?vue&type=template&id=37dae5f9&scoped=true&\"\nimport script from \"./UserAvatar.vue?vue&type=script&lang=js&\"\nexport * from \"./UserAvatar.vue?vue&type=script&lang=js&\"\nimport style0 from \"./UserAvatar.vue?vue&type=style&index=0&id=37dae5f9&scoped=true&lang=css&\"\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 \"37dae5f9\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"search-counter\"},[_c('router-link',{attrs:{\"to\":\"/account/subscription\"}},[(_vm.maxSearchText == '∞')?_c('span',{staticClass:\"unlimited\"},[_vm._v(\" ∞ \")]):_c('span',[_c('span',[_vm._v(_vm._s(_vm.searchCount))]),_c('hr'),_c('span',[_vm._v(_vm._s(_vm.maxSearchText))])])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchCounter.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchCounter.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SearchCounter.vue?vue&type=template&id=0f40922e&scoped=true&\"\nimport script from \"./SearchCounter.vue?vue&type=script&lang=js&\"\nexport * from \"./SearchCounter.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SearchCounter.vue?vue&type=style&index=0&id=0f40922e&scoped=true&lang=css&\"\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 \"0f40922e\",\n null\n \n)\n\nexport default component.exports","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ControlPanel.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ControlPanel.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ControlPanel.vue?vue&type=template&id=233f10b2&\"\nimport script from \"./ControlPanel.vue?vue&type=script&lang=js&\"\nexport * from \"./ControlPanel.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ControlPanel.vue?vue&type=style&index=0&lang=css&\"\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 null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-modal',{attrs:{\"full-screen\":_vm.$mq === 'sm',\"active\":_vm.unitModalVisible,\"on-cancel\":_vm.hide,\"width\":\"400px\",\"can-cancel\":['escape']}},[_c('div',{staticClass:\"modal-card\",staticStyle:{\"width\":\"auto\"}},[_c('header',{staticClass:\"modal-card-head\"},[_c('p',{staticClass:\"modal-card-title\"},[_vm._v(\"Units (\"+_vm._s(this.activeStatusTabName)+\")\")]),_c('button',{staticClass:\"delete\",attrs:{\"aria-label\":\"close\"},on:{\"click\":_vm.hide}})]),_c('section',{staticClass:\"modal-card-body\"},[_c('div',{staticClass:\"level\"},[_c('p',{staticClass:\"level-item has-text-centered\"},[_vm._v(\" View your measurements in other units.\"),_c('br'),_vm._v(\"Set a primary to display it on the main screen. \")])]),_c('div',{staticClass:\"level\"},[_c('div',{staticClass:\"level-item\"},[_c('b-switch',{attrs:{\"value\":!_vm.imperialStatus},on:{\"input\":function($event){return _vm.toggleMetric($event)}}},[_vm._v(\"Show metric units\")])],1)]),_c('b-table',{attrs:{\"data\":_vm.tableData,\"show-header\":true,\"mobile-cards\":false}},[_c('b-table-column',{attrs:{\"numeric\":true,\"field\":\"value\",\"label\":\"Value\"},scopedSlots:_vm._u([{key:\"default\",fn:function(props){return [_vm._v(\" \"+_vm._s(props.row.value)+\" \")]}}])}),_c('b-table-column',{attrs:{\"field\":\"unit\",\"label\":\"Unit\"},scopedSlots:_vm._u([{key:\"default\",fn:function(props){return [_vm._v(\" \"+_vm._s(props.row.display)+\" \")]}}])}),_c('b-table-column',{attrs:{\"label\":\"Primary\"},scopedSlots:_vm._u([{key:\"default\",fn:function(props){return [_c('b-switch',{attrs:{\"value\":_vm.primaryUnit.name == props.row.name},on:{\"input\":function($event){_vm.currentPrimaryUnit = ($event) ? props.row : null}}})]}}])})],1)],1),_c('footer',{staticClass:\"modal-card-foot\"},[_c('b-button',{attrs:{\"type\":\"is-primary\"},on:{\"click\":_vm.hide}},[_vm._v(\"OK\")])],1)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MeasurementUnitPanel.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MeasurementUnitPanel.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MeasurementUnitPanel.vue?vue&type=template&id=0d9d392c&\"\nimport script from \"./MeasurementUnitPanel.vue?vue&type=script&lang=js&\"\nexport * from \"./MeasurementUnitPanel.vue?vue&type=script&lang=js&\"\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 null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-modal',{attrs:{\"full-screen\":(_vm.$mq === 'sm' || _vm.$mq == 'xs'),\"active\":_vm.saveModalVisible,\"on-cancel\":_vm.hide,\"width\":\"50%\"}},[_c('div',{staticClass:\"modal-card\",staticStyle:{\"width\":\"auto\"}},[_c('section',{staticClass:\"modal-card-body\"},[_c('b-tabs',{attrs:{\"type\":\"is-toggle-rounded\",\"position\":\"is-centered\"}},[_c('b-tab-item',{attrs:{\"label\":\"Save\"}},[_c('div',{staticClass:\"field\"},[_c('p',[_vm._v(\"Last saved: \"+_vm._s(this.slotSaved))])]),_c('div',{staticClass:\"field\"},[_c('div',{staticClass:\"control is-expanded detail\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.slotName),expression:\"slotName\"}],ref:\"nameField\",staticClass:\"input\",attrs:{\"placeholder\":\"Descriptive name for this map\",\"type\":\"text\",\"id\":\"slotName\"},domProps:{\"value\":(_vm.slotName)},on:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.saveSlot($event)},\"input\":function($event){if($event.target.composing){ return; }_vm.slotName=$event.target.value}}})])]),_c('div',{staticClass:\"field is-grouped is-grouped-right\"},[_c('div',{staticClass:\"control\"},[_c('button',{staticClass:\"button is-primary is-fullwidth\",attrs:{\"id\":\"save\"},on:{\"click\":_vm.saveSlot}},[_vm._v(\"Save\")])]),_c('div',{staticClass:\"control\"},[_c('button',{staticClass:\"button is-fullwidth\",attrs:{\"id\":\"cancel\"},on:{\"click\":_vm.hide}},[_vm._v(\"Cancel\")])])])]),_c('b-tab-item',{attrs:{\"label\":\"Load\"}},[_c('b-table',{attrs:{\"data\":_vm.convertedSaveSlots},scopedSlots:_vm._u([{key:\"empty\",fn:function(){return [_c('div',{staticClass:\"level\"},[_c('span',{staticClass:\"level-item is-size-6\"},[_vm._v(\"No maps have been saved.\")])])]},proxy:true}])},[_c('b-table-column',{attrs:{\"field\":\"name\",\"label\":\"Name\"},scopedSlots:_vm._u([{key:\"default\",fn:function(props){return [_vm._v(\" \"+_vm._s(props.row.name)+\" \")]}}])}),_c('b-table-column',{attrs:{\"field\":\"address\",\"label\":\"Address\"},scopedSlots:_vm._u([{key:\"default\",fn:function(props){return [_vm._v(\" \"+_vm._s(props.row.address)+\" \")]}}])}),_c('b-table-column',{attrs:{\"field\":\"saved\",\"label\":\"Saved\"},scopedSlots:_vm._u([{key:\"default\",fn:function(props){return [_vm._v(\" \"+_vm._s(props.row.saved)+\" \")]}}])}),_c('b-table-column',{attrs:{\"label\":\"Action\"},scopedSlots:_vm._u([{key:\"default\",fn:function(props){return [_c('div',{staticClass:\"level is-mobile\"},[_c('div',{staticClass:\"level-right\"},[_c('a',{staticClass:\"button level-item\",attrs:{\"title\":\"Load saved map\"},on:{\"click\":function($event){return _vm.loadSlot(props.row.name)}}},[_c('span',{staticClass:\"icon is-medium\"},[_c('open-icon')],1),_c('span',[_vm._v(\"Open\")])]),_c('a',{staticClass:\"button level-item\",attrs:{\"title\":\"Delete saved map\"},on:{\"click\":function($event){return _vm.deleteSlot(props.row.name)}}},[_c('span',{staticClass:\"icon is-medium\"},[_c('delete-icon')],1),_c('span',[_vm._v(\"Delete\")])])])])]}}])})],1),_c('div',{staticClass:\"field is-grouped is-grouped-right\"},[_c('div',{staticClass:\"control\"},[_c('button',{staticClass:\"button is-fullwidth\",attrs:{\"id\":\"cancel\"},on:{\"click\":_vm.hide}},[_vm._v(\"Cancel\")])])])],1)],1)],1)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","// SaveModal.vue\r\n\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SaveModal.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SaveModal.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SaveModal.vue?vue&type=template&id=cb9d076c&\"\nimport script from \"./SaveModal.vue?vue&type=script&lang=js&\"\nexport * from \"./SaveModal.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SaveModal.vue?vue&type=style&index=0&lang=css&\"\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 null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-modal',{attrs:{\"can-cancel\":false,\"has-modal-card\":true,\"scroll\":\"clip\",\"active\":_vm.introTipsModalVisible,\"width\":\"465\"}},[_c('div',{staticClass:\"modal-card intro-tips\"},[_c('header',{staticClass:\"modal-card-head\"},[_c('p',{staticClass:\"modal-card-title has-text-centered\"},[_vm._v(\"Getting Started Tips\")]),_c('a',{staticClass:\"card-header-icon\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){return _vm.setIntroTipsModalVisibility(false)}}},[_c('span',{staticClass:\"icon\"},[_c('b-icon',{attrs:{\"icon\":\"close\"}})],1)])]),_c('div',{staticClass:\"modal-card-body\"},[_c('b-carousel',{ref:\"carousel\",attrs:{\"arrow\":false,\"pause-info\":false,\"pause-hover\":false,\"autoplay\":false},on:{\"hook:mounted\":_vm.carouselUpdated},model:{value:(_vm.item),callback:function ($$v) {_vm.item=$$v},expression:\"item\"}},_vm._l((_vm.carousels),function(carousel,i){return _c('b-carousel-item',{key:i},[(carousel.tipSrc)?_c('div',{staticClass:\"tip-ct content has-text-centered\"},[_c('p',{domProps:{\"innerHTML\":_vm._s(carousel.text)}}),_c('video',{attrs:{\"id\":(\"tip-\" + i),\"loop\":\"\",\"playsinline\":\"\",\"muted\":\"\"},domProps:{\"muted\":true}},[_c('source',{attrs:{\"src\":(\"\" + _vm.publicPath + (carousel.tipSrc)),\"type\":\"video/mp4\"}})])]):_c('div',[_c('p',{domProps:{\"innerHTML\":_vm._s(carousel.text)}})])])}),1)],1),_c('footer',{staticClass:\"modal-card-foot\"},[(_vm.item < _vm.carousels.length)?_c('b-button',{attrs:{\"type\":\"is-text\"},on:{\"click\":function($event){return _vm.setIntroTipsModalVisibility(false)}}},[_vm._v(\"Skip Tips\")]):_vm._e(),(_vm.item > 0)?_c('b-button',{attrs:{\"type\":\"is-text\"},on:{\"click\":_vm.prevTip}},[_vm._v(\"Previous Tip\")]):_vm._e(),(_vm.item < _vm.carousels.length - 1)?_c('b-button',{attrs:{\"type\":\"is-primary\"},on:{\"click\":_vm.nextTip}},[_vm._v(\"Next Tip\")]):_vm._e(),(_vm.item == _vm.carousels.length - 1)?_c('b-button',{attrs:{\"type\":\"is-primary\"},on:{\"click\":function($event){return _vm.setIntroTipsModalVisibility(false)}}},[_vm._v(\"Finish\")]):_vm._e()],1)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IntroTutorialModal.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IntroTutorialModal.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./IntroTutorialModal.vue?vue&type=template&id=0a60dc0c&\"\nimport script from \"./IntroTutorialModal.vue?vue&type=script&lang=js&\"\nexport * from \"./IntroTutorialModal.vue?vue&type=script&lang=js&\"\nimport style0 from \"./IntroTutorialModal.vue?vue&type=style&index=0&lang=css&\"\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 null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-modal',{attrs:{\"can-cancel\":['outside','escape'],\"full-screen\":_vm.$mq == 'xs',\"on-cancel\":_vm.setAffiliateModalVisibility,\"has-modal-card\":true,\"active\":_vm.affiliateModalVisible,\"width\":\"465\"}},[_c('div',{staticClass:\"modal-card estimate-details\"},[_c('header',{staticClass:\"modal-card-head\"},[_c('div',{staticClass:\"modal-card-title has-text-centered\"},[_c('p',{staticClass:\"title is-size-4 is-size-5-mobile\"},[_vm._v(\"Product estimates\")])])]),_c('div',{staticClass:\"modal-card-body\"},[(_vm.estimate.stats.sqft > 0)?_c('div',{staticClass:\"level is-mobile\"},[_c('product-estimater')],1):_c('div',{staticClass:\"has-text-centered\"},[_c('h5',{staticClass:\"is-size-5\"},[_vm._v(\"Nothing has been measured yet.\")])])]),_c('footer',{staticClass:\"modal-card-foot affiliate-details\"},[_c('p',{class:{ 'is-size-7': true, 'extra-small': _vm.$mq == 'xs'}},[_vm._v(\" We participate in The Home Depot's Affiliate Marketing program. We may earn commission from purchases made through these links.\"),_c('br'),(_vm.$mq != 'xs')?_c('br'):_vm._e(),_vm._v(\" *Estimate only. Confirm accuracy before ordering.**No guarantee prices will match those on homedepot.com. \")]),_c('b-button',{attrs:{\"type\":\"is-primary\"},on:{\"click\":function($event){return _vm.setAffiliateModalVisibility(false)}}},[_vm._v(\"Close\")])],1)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {\nvar this$1 = this;\nvar _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"level is-mobile\"},[_c('div',{staticClass:\"level-left\"},[_c('button',{staticClass:\"button is-info level-item\",on:{\"click\":_vm.prev}},[_c('span',{staticClass:\"icon\"},[_c('arrow-left-icon')],1),(['xs','sm'].indexOf(_vm.$mq) == -1)?_c('span',[_vm._v(\"Prev\")]):_vm._e()])]),_c('div',{staticClass:\"level-item product-name\"},[_c('p',{staticClass:\"has-text-weight-bold\"},[_vm._v(_vm._s(_vm.currentProduct.name))])]),_c('div',{staticClass:\"level-right\"},[_c('button',{staticClass:\"button is-info level-item\",on:{\"click\":_vm.next}},[(['xs','sm'].indexOf(_vm.$mq) == -1)?_c('span',[_vm._v(\"Next\")]):_vm._e(),_c('span',{staticClass:\"icon\"},[_c('arrow-right-icon')],1)])])]),_c('b-carousel',{ref:\"carousel\",attrs:{\"arrow\":false,\"pause-info\":false,\"pause-hover\":false,\"autoplay\":false,\"indicator\":_vm.filteredProducts.length > 1,\"indicator-inside\":false},on:{\"change\":function (idx) { return this$1.selected = idx; }},model:{value:(_vm.selected),callback:function ($$v) {_vm.selected=$$v},expression:\"selected\"}},_vm._l((_vm.filteredProducts),function(product,i){return _c('b-carousel-item',{key:i,ref:\"carousel\",refInFor:true,staticClass:\"product-details\"},[_c('div',{staticClass:\"level is-mobile\"},[_c('div',{ref:\"ad\",refInFor:true,class:{ 'level-item': true, 'product-image': true, 'extra-small': _vm.$mq == 'xs'},domProps:{\"innerHTML\":_vm._s(product.adCode)}}),_c('div',{staticClass:\"level-item tile is-ancestor is-vertical coverage-table\"},[_c('b-table',{attrs:{\"columns\":_vm.columns,\"data\":_vm.convertedQuantities,\"mobile-cards\":false}})],1)]),_c('div',{staticClass:\"tile is-ancestor\"},[_c('div',{staticClass:\"title is-parent\"},[_c('div',{staticClass:\"is-child box has-text-centered is-size-6 coverage-summary\"},[_c('span',[_vm._v(\"Covers up to \"+_vm._s(parseFloat(_vm.convertedCoverage).toFixed(0))+\" \"),_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.measureSuffix)}}),_vm._v(\"*\"),_c('br'),_vm._v(\"for \"),_c('span',{staticClass:\"is-size-5\"},[_vm._v(\"$\"+_vm._s(_vm.estimate.stats.cost.toLocaleString()))]),_vm._v(\"**\")])]),_c('div',{staticClass:\"is-child field is-grouped is-grouped-centered\"},[_c('a',{staticClass:\"button homedepot\",on:{\"click\":_vm.buy}},[_c('span',{staticClass:\"icon\"},[_c('cart-icon')],1),_c('span',[_vm._v(\"Buy at The Home Depot\"),_c('span',{staticClass:\"disclosure\"},[_vm._v(\"ad\")])])])])])])])}),1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export const truncate = (str, num) => { \r\n // If the length of str is less than or equal to num\r\n // just return str--don't truncate it.\r\n if (str.length <= num) {\r\n return str\r\n }\r\n // Return str truncated with '...' concatenated to the end of str.\r\n return str.slice(0, num) + '...'\r\n}\r\n\r\nexport const toBase64 = file => new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n reader.onload = () => resolve(reader.result);\r\n reader.onerror = error => reject(error);\r\n});","/* ProductSelector.vue */\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductEstimater.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductEstimater.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ProductEstimater.vue?vue&type=template&id=08de6304&\"\nimport script from \"./ProductEstimater.vue?vue&type=script&lang=js&\"\nexport * from \"./ProductEstimater.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ProductEstimater.vue?vue&type=style&index=0&lang=css&\"\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 null,\n null\n \n)\n\nexport default component.exports","\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AffiliateModal.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AffiliateModal.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AffiliateModal.vue?vue&type=template&id=2d78ed3d&\"\nimport script from \"./AffiliateModal.vue?vue&type=script&lang=js&\"\nexport * from \"./AffiliateModal.vue?vue&type=script&lang=js&\"\nimport style0 from \"./AffiliateModal.vue?vue&type=style&index=0&lang=css&\"\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 null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.estimate != null && !_vm.affiliateModalVisible && !_vm.introTipsModalVisible && !_vm.saveModalVisible && !_vm.searchModalVisible && !_vm.unitModalVisible && !_vm.dialogActive && !_vm.hasActiveSubscription),expression:\"estimate != null && !affiliateModalVisible && !introTipsModalVisible && !saveModalVisible && !searchModalVisible && !unitModalVisible && !dialogActive && !hasActiveSubscription\"}],staticClass:\"ad-container\",class:['section', _vm.$mq]},[_c('div',{staticClass:\"ad-carousel-container has-text-centered\"},[_c('b-carousel',{ref:\"carousel\",attrs:{\"arrow\":false,\"autoplay\":true,\"interval\":7000,\"pause-info\":false,\"pause-hover\":true,\"indicator\":false,\"indicator-inside\":false},model:{value:(_vm.selected),callback:function ($$v) {_vm.selected=$$v},expression:\"selected\"}},_vm._l((_vm.ads),function(ad,i){return _c('b-carousel-item',{key:i,ref:\"carousel\",refInFor:true,staticClass:\"ad-item-container\"},[(ad.fullBannerImgUrl)?_c('div',{staticClass:\"full-banner is-size-7-mobile\"},[_c('a',{attrs:{\"href\":ad.url,\"target\":\"_blank\"}},[_c('img',{attrs:{\"src\":ad.fullBannerImgUrl}})])]):_vm._e()])}),1)],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EstimateBanner.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EstimateBanner.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./EstimateBanner.vue?vue&type=template&id=e8de3176&scoped=true&\"\nimport script from \"./EstimateBanner.vue?vue&type=script&lang=js&\"\nexport * from \"./EstimateBanner.vue?vue&type=script&lang=js&\"\nimport style0 from \"./EstimateBanner.vue?vue&type=style&index=0&id=e8de3176&scoped=true&lang=css&\"\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 \"e8de3176\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('section',{staticClass:\"section partner-container\"},[_c('div',{staticClass:\"logo has-text-centered\"},[_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://thelawnbox.co.uk\"}},[_c('img',{attrs:{\"src\":(_vm.publicPath + \"images/lawnbox-logo.png\")}})])]),_c('div',{class:{ 'navigation': true, 'margin-control': _vm.$mq == 'xs' || _vm.$mq == 'sm' }},[_c('div',{staticClass:\"level is-mobile\"},[_c('button',{staticClass:\"level-item button is-size-7-mobile\"},[_c('span',{staticClass:\"icon\"},[_c('arrow-left-icon')],1),_c('span',[_vm._v(\"Back\")])]),_c('tooltip-wrapper',{attrs:{\"label\":\"When you're all done measuring, click to go back to The Lawn Box\",\"name\":\"partnerDone\",\"trigger-when-visible\":\"\"}},[_c('button',{staticClass:\"level-item button is-size-7-mobile is-primary\"},[_c('span',{staticClass:\"icon\"},[_c('check-icon')],1),_c('span',[_vm._v(\"I'm done measuring\")])])])],1)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PartnerBanner.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PartnerBanner.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PartnerBanner.vue?vue&type=template&id=1e3d2eff&scoped=true&\"\nimport script from \"./PartnerBanner.vue?vue&type=script&lang=js&\"\nexport * from \"./PartnerBanner.vue?vue&type=script&lang=js&\"\nimport style0 from \"./PartnerBanner.vue?vue&type=style&index=0&id=1e3d2eff&scoped=true&lang=css&\"\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 \"1e3d2eff\",\n null\n \n)\n\nexport default component.exports","\r\n\r\n\r\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./MapApp.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./MapApp.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MapApp.vue?vue&type=template&id=6169d256&\"\nimport script from \"./MapApp.vue?vue&type=script&lang=js&\"\nexport * from \"./MapApp.vue?vue&type=script&lang=js&\"\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 null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"modal is-active\"},[_c('div',{staticClass:\"modal-background\"}),_c('div',{staticClass:\"modal-card\"},[_c('header',{staticClass:\"modal-card-head\"},[_c('p',{staticClass:\"modal-card-title\"},[_vm._v(_vm._s(_vm.currentRouteLabel))]),_c('button',{staticClass:\"delete\",attrs:{\"aria-label\":\"close\"},on:{\"click\":_vm.hide}})]),_c('section',{staticClass:\"modal-card-body\"},[_c('div',{staticClass:\"tile is-ancestor\"},[_c('div',{staticClass:\"tile is-parent is-vertical\"},[(_vm.currentRouteName == 'Account')?_c('aside',{staticClass:\"tile is-child is-12 box\"},[_c('ul',{staticClass:\"menu-list\"},[(!_vm.currentUser)?_c('li',[_c('router-link',{attrs:{\"to\":\"/account/signup\"}},[_vm._v(\"Signup\")])],1):_vm._e(),(!_vm.currentUser)?_c('li',[_c('router-link',{attrs:{\"to\":\"/account/signin\"}},[_vm._v(\"Signin\")])],1):_vm._e(),(_vm.currentUser)?_c('li',[_c('router-link',{attrs:{\"to\":\"/account/changePassword\"}},[_vm._v(\"Change Password\")])],1):_vm._e(),(_vm.currentUser)?_c('li',[_c('router-link',{attrs:{\"to\":\"/account/config\"}},[_vm._v(\"Change Account\")])],1):_vm._e(),(_vm.currentUser)?_c('li',[_c('router-link',{attrs:{\"to\":\"/account/subscription\"}},[_vm._v(\"Account Subscription\")])],1):_vm._e(),(_vm.currentUser)?_c('li',[_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.logout($event)}}},[_vm._v(\"Logout\")])]):_vm._e()])]):_vm._e(),_c('div',{staticClass:\"tile is-child is-12 main-content\"},[_c('router-view',{on:{\"message\":_vm.showMessage,\"error\":_vm.showMessage}})],1)])])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccountApp.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccountApp.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AccountApp.vue?vue&type=template&id=1233fcaa&scoped=true&\"\nimport script from \"./AccountApp.vue?vue&type=script&lang=js&\"\nexport * from \"./AccountApp.vue?vue&type=script&lang=js&\"\nimport style0 from \"./AccountApp.vue?vue&type=style&index=0&id=1233fcaa&scoped=true&lang=css&\"\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 \"1233fcaa\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.submit($event)}}},[_c('b-field',{attrs:{\"label\":\"Email\"}},[_c('b-input',{attrs:{\"name\":\"email\",\"type\":\"email\",\"required\":\"\"},model:{value:(_vm.email),callback:function ($$v) {_vm.email=$$v},expression:\"email\"}})],1),_c('b-field',{attrs:{\"label\":\"Name\"}},[_c('b-input',{attrs:{\"name\":\"name\",\"type\":\"text\",\"required\":\"\"},model:{value:(_vm.name),callback:function ($$v) {_vm.name=$$v},expression:\"name\"}})],1),_c('b-field',{attrs:{\"label\":\"Password\"}},[_c('b-input',{attrs:{\"name\":\"password\",\"type\":\"password\",\"required\":\"\"},model:{value:(_vm.password),callback:function ($$v) {_vm.password=$$v},expression:\"password\"}})],1),_c('b-field',{attrs:{\"label\":\"Confirm Password\"}},[_c('b-input',{attrs:{\"name\":\"confirm_password\",\"type\":\"password\",\"required\":\"\"},model:{value:(_vm.confirmPassword),callback:function ($$v) {_vm.confirmPassword=$$v},expression:\"confirmPassword\"}})],1),_c('b-field',[_c('b-checkbox',{model:{value:(_vm.tosAgree),callback:function ($$v) {_vm.tosAgree=$$v},expression:\"tosAgree\"}},[_vm._v(\"I have read and agree to MeasureMyLawn's \"),_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://www.measuremylawn.com/terms.html\"}},[_vm._v(\"Terms of Service\")]),_vm._v(\" and \"),_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://www.measuremylawn.com/terms.html#privacy\"}},[_vm._v(\"Privacy Policy\")])])],1),_c('b-field',[_c('b-checkbox',{model:{value:(_vm.emailAgree),callback:function ($$v) {_vm.emailAgree=$$v},expression:\"emailAgree\"}},[_vm._v(\"I understand that MeasureMyLawn may send me periodic emails about my account.\")])],1),_c('p',{staticClass:\"help\"},[_vm._v(\"We will not sell your email to anyone or send marketing messages to you.\")]),_c('b-field',{attrs:{\"grouped\":\"\"}},[_c('div',{class:['control', {'is-loading': _vm.submitted}]},[_c('b-button',{attrs:{\"disabled\":!_vm.tosAgree || !_vm.emailAgree || _vm.submitted,\"native-type\":\"submit\",\"type\":\"is-primary is-medium\"}},[_vm._v(\"Sign up\")])],1)])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccountSignup.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccountSignup.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AccountSignup.vue?vue&type=template&id=3697f22e&\"\nimport script from \"./AccountSignup.vue?vue&type=script&lang=js&\"\nexport * from \"./AccountSignup.vue?vue&type=script&lang=js&\"\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 null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.submit($event)}}},[_c('div',{staticClass:\"section\",attrs:{\"id\":\"signup\"}},[_c('div',{staticClass:\"content\",attrs:{\"id\":\"signin-text\"}},[_c('img',{attrs:{\"src\":_vm.logoSrc}}),_vm._m(0)]),_c('div',{staticClass:\"control\"},[_c('router-link',{staticClass:\"button is-success is-large is-fullwidth\",attrs:{\"to\":\"Signup\"}},[_vm._v(\"Signup here!\")])],1)]),_vm._m(1),_c('div',{attrs:{\"id\":\"field-container\"}},[_c('b-field',{attrs:{\"label\":\"Email\"}},[_c('b-input',{ref:\"email\",attrs:{\"name\":\"email\",\"type\":\"email\"},model:{value:(_vm.email),callback:function ($$v) {_vm.email=$$v},expression:\"email\"}})],1),_c('b-field',{attrs:{\"label\":\"Password\"}},[_c('div',{staticClass:\"control\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.password),expression:\"password\"}],staticClass:\"input\",attrs:{\"type\":\"password\",\"name\":\"password\"},domProps:{\"value\":(_vm.password)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.password=$event.target.value}}})])]),_c('div',{staticClass:\"level\"},[_c('div',{staticClass:\"level-left\"},[_c('b-field',{attrs:{\"custom-class\":\"level-item\"}},[_c('div',{staticClass:\"control\"},[_c('b-button',{attrs:{\"native-type\":\"submit\",\"type\":\"is-primary is-medium\"}},[_vm._v(\"Sign In\")]),_c('p',{staticClass:\"help\"},[_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.resetPassword($event)}}},[_vm._v(\"Forgot password?\")])]),_c('p',{staticClass:\"help\"},[_vm._v(\"Email \"),_c('a',{attrs:{\"href\":\"mailto:support@measuremylawn.com\"}},[_vm._v(\"support@measuremylawn.com\")]),_vm._v(\" with account questions.\")])],1)])],1)])],1)])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('p',{staticClass:\"content\"},[_c('span',{staticClass:\"has-text-weight-bold\"},[_vm._v(\"Want more out of MeasureMyLawn?\")]),_c('br'),_vm._v(\"Create a free account to gain access to map saving and paid subscriptions.\")])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"hr content has-text-centered\"},[_c('span',{staticClass:\"is-italic\"},[_vm._v(\"- or signin with an existing account -\")])])}]\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccountSignin.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccountSignin.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AccountSignin.vue?vue&type=template&id=eea19604&scoped=true&\"\nimport script from \"./AccountSignin.vue?vue&type=script&lang=js&\"\nexport * from \"./AccountSignin.vue?vue&type=script&lang=js&\"\nimport style0 from \"./AccountSignin.vue?vue&type=style&index=0&id=eea19604&scoped=true&lang=css&\"\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 \"eea19604\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('form',{ref:\"form\",on:{\"submit\":function($event){$event.preventDefault();return _vm.submit($event)}}},[_c('b-field',{attrs:{\"label\":\"New Password\"}},[_c('b-input',{attrs:{\"name\":\"password\",\"type\":\"password\",\"required\":\"\"},model:{value:(_vm.password),callback:function ($$v) {_vm.password=$$v},expression:\"password\"}})],1),_c('b-field',{attrs:{\"label\":\"Confirm New Password\"}},[_c('b-input',{attrs:{\"name\":\"confirm_password\",\"type\":\"password\",\"required\":\"\"},model:{value:(_vm.confirmPassword),callback:function ($$v) {_vm.confirmPassword=$$v},expression:\"confirmPassword\"}})],1),_c('b-field',{attrs:{\"grouped\":\"\"}},[_c('div',{staticClass:\"control\"},[_c('router-link',{staticClass:\"button\",attrs:{\"to\":\"/account\"}},[_vm._v(\"Back\")])],1),_c('div',{staticClass:\"control\"},[_c('b-button',{attrs:{\"type\":\"is-primary\",\"native-type\":\"submit\",\"disabled\":_vm.loading}},[_vm._v(\"Change password\")])],1)])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccountChangePassword.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccountChangePassword.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AccountChangePassword.vue?vue&type=template&id=4e40a89d&\"\nimport script from \"./AccountChangePassword.vue?vue&type=script&lang=js&\"\nexport * from \"./AccountChangePassword.vue?vue&type=script&lang=js&\"\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 null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.submit($event)}}},[_c('b-field',{attrs:{\"label\":\"Email\"}},[_c('b-input',{attrs:{\"name\":\"email\",\"type\":\"email\"},model:{value:(_vm.email),callback:function ($$v) {_vm.email=$$v},expression:\"email\"}})],1),_c('b-field',{attrs:{\"label\":\"Name\"}},[_c('b-input',{attrs:{\"name\":\"name\",\"type\":\"text\"},model:{value:(_vm.name),callback:function ($$v) {_vm.name=$$v},expression:\"name\"}})],1),_c('b-field',{attrs:{\"grouped\":\"\"}},[_c('div',{staticClass:\"control\"},[_c('router-link',{staticClass:\"button\",attrs:{\"to\":\"/account\"}},[_vm._v(\"Back\")])],1),_c('div',{staticClass:\"control\"},[_c('b-button',{attrs:{\"type\":\"is-primary\",\"native-type\":\"submit\",\"disabled\":_vm.loading}},[_vm._v(\"Save\")])],1)])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccountConfig.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccountConfig.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AccountConfig.vue?vue&type=template&id=13db46ac&\"\nimport script from \"./AccountConfig.vue?vue&type=script&lang=js&\"\nexport * from \"./AccountConfig.vue?vue&type=script&lang=js&\"\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 null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"section\"},[(!_vm.userSubscriptions.length)?_c('div',{staticClass:\"level\"},[_vm._m(0)]):_vm._e(),(_vm.userSubscriptions.length)?_c('div',{staticClass:\"level\"},_vm._l((_vm.userSubscriptions),function(item){return _c('div',{key:item.id,staticClass:\"level-item\"},[_c('div',{staticClass:\"card\"},[_c('div',{staticClass:\"card-header\"},[_c('div',{staticClass:\"card-header-title\"},[_c('span',[_vm._v(_vm._s(item.plan_id)+\" - \"),(item.meta_data.unlimited)?_c('span',[_vm._v(\"∞\")]):_c('span',[_vm._v(_vm._s(item.meta_data.max_searches))]),_vm._v(\" searches/month\")])])]),_c('div',{staticClass:\"card-content\"},[_vm._v(\" $\"+_vm._s(item.plan_unit_price / 100)+\" / month \"+_vm._s(item.currency_code)+\" (\"+_vm._s(item.status)+\") \")]),(_vm.userDetails && _vm.userDetails.customer_id && _vm.primarySubscription && _vm.primarySubscription.status == 'cancelled')?_c('div',{staticClass:\"card-footer\"},[_c('div',{staticClass:\"card-footer-item\"},[_c('a',{staticClass:\"button\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.openCheckout({ planId: item.plan_id })}}},[_vm._v(\"Reactivate Subscription\")])])]):_vm._e()])])}),0):_vm._e(),_c('div',{staticClass:\"level\"},[_c('div',{staticClass:\"level-item\"},[_c('b-field',{attrs:{\"grouped\":\"\"}},[_c('div',{staticClass:\"control\"},[(_vm.userDetails && _vm.userDetails.customer_id)?_c('b-button',{attrs:{\"type\":\"is-normal\"},on:{\"click\":_vm.openPortal}},[_vm._v(\"Manage Subscriptions\")]):_vm._e()],1),(_vm.userDetails && _vm.userDetails.customer_id && _vm.nextSubscriptionUpgrade && _vm.userSubscriptions.length)?_c('div',{staticClass:\"control\"},[_c('router-link',{staticClass:\"button is-primary\",attrs:{\"to\":\"/account/subscribe\"}},[_vm._v(\"Upgrade\")])],1):(!_vm.userSubscriptions.length)?_c('div',[_c('router-link',{staticClass:\"button is-primary\",attrs:{\"to\":\"/account/subscribe\"}},[_vm._v(\"Subscribe\")])],1):_vm._e()])],1)]),_c('div',{staticClass:\"level\"},[_c('div',{staticClass:\"level-item\"},[_c('div',{staticClass:\"control\"},[_c('router-link',{staticClass:\"button\",attrs:{\"to\":\"/account\"}},[_vm._v(\"Back\")])],1)])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"level-item has-text-centered\"},[_c('h5',{staticClass:\"is-size-6\"},[_vm._v(\"Not currently subscribed to anything.\")])])}]\n\nexport { render, staticRenderFns }","\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccountSubscription.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccountSubscription.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AccountSubscription.vue?vue&type=template&id=20831e68&\"\nimport script from \"./AccountSubscription.vue?vue&type=script&lang=js&\"\nexport * from \"./AccountSubscription.vue?vue&type=script&lang=js&\"\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 null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"block\"},[_c('div',{staticClass:\"tile is-ancestor\"},_vm._l((_vm.plans),function(plan){return _c('div',{key:plan.id,staticClass:\"tile\"},[_c('div',{staticClass:\"card\",class:[{active: ((plan.meta_data.plan_order > _vm.primarySubscriptionIndex && !_vm.cancelledSubscription) || _vm.cancelledSubscription == plan.id)}, 'card'],on:{\"click\":function($event){return _vm.selectPlan(plan.id, $event)}}},[_c('div',{staticClass:\"card-header\"},[_c('span',{staticClass:\"card-header-title\"},[_vm._v(_vm._s(plan.name))]),_c('span',{staticClass:\"card-header-icon\"},[_c(plan.meta_data.icon,{tag:\"component\"})],1)]),_c('div',{staticClass:\"card-content has-text-centered\"},[_c('ul',[_c('li',[_c('ul',[_c('li',{staticClass:\"has-text-weight-bold\"},[_vm._v(_vm._s(plan.description))]),_c('li',[_vm._v(\"$\"+_vm._s(plan.price)+\"/\"+_vm._s(plan.period_unit))])])])]),(_vm.cancelledSubscription == plan.id)?_c('b-button',[_vm._v(\"Reactivate\")]):_vm._e()],1)])])}),0),_c('div',{staticClass:\"level\"},[_c('div',{staticClass:\"level-item\"},[_c('b-field',{attrs:{\"grouped\":\"\"}},[_c('div',{staticClass:\"control\"},[_c('router-link',{staticClass:\"button\",attrs:{\"to\":\"/account/subscription\"}},[_vm._v(\"Back\")])],1)])],1)]),_vm._m(0)])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('p',{staticClass:\"has-text-centered\"},[_vm._v(\" Need more monthly searches? Email us at \"),_c('a',{attrs:{\"href\":\"mailto:support@measuremylawn.com\"}},[_vm._v(\"support@measuremylawn.com\")]),_c('br'),_c('span',{staticClass:\"is-italic\"},[_vm._v(\"No commitment. Upgrade or cancel at any time.\")])])}]\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccountSubscribe.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccountSubscribe.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AccountSubscribe.vue?vue&type=template&id=66d682ab&scoped=true&\"\nimport script from \"./AccountSubscribe.vue?vue&type=script&lang=js&\"\nexport * from \"./AccountSubscribe.vue?vue&type=script&lang=js&\"\nimport style0 from \"./AccountSubscribe.vue?vue&type=style&index=0&id=66d682ab&scoped=true&lang=css&\"\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 \"66d682ab\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(\"div\")}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchWedge.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchWedge.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SearchWedge.vue?vue&type=template&id=6b689eb6&\"\nimport script from \"./SearchWedge.vue?vue&type=script&lang=js&\"\nexport * from \"./SearchWedge.vue?vue&type=script&lang=js&\"\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 null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nwindow.Vue = require('vue').default;\r\n\r\nVue.config.productionTip = false\r\n\r\nimport './styles/global-styles-v1.css'\r\nimport '@/icons'\r\n\r\nimport 'buefy/dist/buefy.css'\r\nimport { Menu, Sidebar, Snackbar, Modal, Icon, Carousel, Switch, Dialog, Notification, Tabs, Table, Button, Tooltip, Select, Input, Checkbox, Dropdown, Field, Upload, Loading } from 'buefy'\r\n\r\nimport { findLastIndex, get } from 'lodash'\r\n\r\nVue.use(require('vue-script2'))\r\n\r\nVue.use(Menu);\r\nVue.use(Sidebar);\r\nVue.use(Snackbar);\r\nVue.use(Modal);\r\nVue.use(Icon);\r\nVue.use(Carousel);\r\nVue.use(Switch);\r\nVue.use(Dialog);\r\nVue.use(Notification);\r\nVue.use(Tabs);\r\nVue.use(Table);\r\nVue.use(Button);\r\nVue.use(Tooltip);\r\nVue.use(Select);\r\nVue.use(Input);\r\nVue.use(Checkbox);\r\nVue.use(Dropdown);\r\nVue.use(Field);\r\nVue.use(Upload);\r\nVue.use(Loading);\r\n\r\nimport store from '@/store/index.js'\r\n\r\nimport VueRouter from 'vue-router'\r\nimport App from './App.vue'\r\n\r\nimport MapApp from './MapApp.vue'\r\n\r\nimport AccountApp from './AccountApp.vue'\r\nimport AccountSignup from '@/components/AccountSignup'\r\nimport AccountSignin from '@/components/AccountSignin'\r\nimport AccountChangePassword from '@/components/AccountChangePassword'\r\nimport AccountConfig from '@/components/AccountConfig'\r\nimport AccountSubscription from '@/components/AccountSubscription'\r\nimport AccountSubscribe from '@/components/AccountSubscribe'\r\n\r\nimport SearchWedge from '@/components/SearchWedge'\r\n\r\nVue.use(VueRouter);\r\n\r\n\r\nconst router = new VueRouter();\r\n\r\nrouter.addRoutes([{\r\n path: '/', \r\n component: MapApp,\r\n name: 'Map'\r\n},{\r\n name: 'Search',\r\n path: '/address/:address',\r\n components: {\r\n default: MapApp,\r\n search: SearchWedge \r\n } \r\n},{\r\n name: 'Account',\r\n path: '/account', \r\n components: {\r\n default: MapApp,\r\n dialog: AccountApp\r\n },\r\n children: [{\r\n path: 'signup',\r\n name: 'Signup', \r\n component: AccountSignup\r\n },{\r\n path: 'signin',\r\n name: 'Signin',\r\n component: AccountSignin\r\n },{\r\n path: 'changePassword',\r\n name: 'Change Password',\r\n component: AccountChangePassword \r\n },{\r\n path: 'config',\r\n name: 'Account settings',\r\n component: AccountConfig\r\n },{\r\n path: 'subscription',\r\n name: 'Manage Subscriptions', \r\n component: AccountSubscription\r\n },{\r\n path: 'subscribe',\r\n name: 'Subscribe',\r\n component: AccountSubscribe\r\n }]\r\n}]); \r\n\r\nrouter.beforeEach((to, from, next) => { \r\n return store.dispatch('initializeBackend').then(() => {\r\n if (!get(store, \"getters['backend/user/current']\", false) && !['Signin','Signup','Map','Search'].includes(to.name)) {\r\n console.log('redirecting to signin')\r\n next({ name: 'Signin' });\r\n } else if (get(store, \"getters['backend/user/current']\", false) && ['Signin','Signup'].includes(to.name)) {\r\n next({ name: 'Account'}); \r\n } else {\r\n next();\r\n }\r\n });\r\n});\r\n\r\nnew Vue({\r\n render: h => h(App),\r\n router,\r\n store\r\n}).$mount('#app')\r\n","/* events.js */\r\n\r\nfunction DispatcherEvent(eventName) {\r\n this.eventName = eventName;\r\n this.callbacks = [];\r\n}\r\n\r\nDispatcherEvent.prototype.registerCallback = function(callback, once = false) {\r\n this.callbacks.push({\r\n fn: callback,\r\n once: once\r\n });\r\n}\r\n\r\nDispatcherEvent.prototype.unRegisterCallback = function(callback) {\r\n // Get the index of the callback in the callbacks array\r\n const index = this.callbacks.findIndex(def => def.fn == callback);\r\n // If the callback is in the array then remove it\r\n if (index > -1) {\r\n this.callbacks.splice(index, 1);\r\n return true;\r\n }\r\n\r\n return false;\r\n}\r\n\r\nDispatcherEvent.prototype.fire = function(data) {\r\n const callbacks = this.callbacks.slice(0);\r\n // loop through the callbacks and call each one\r\n callbacks.forEach((def) => {\r\n def.fn(data);\r\n\r\n if (def.once) {\r\n this.unRegisterCallback(def.fn); \r\n }\r\n });\r\n}\r\n\r\nDispatcherEvent.prototype.clearCallbacks = function() {\r\n this.callbacks = [];\r\n}\r\n\r\nfunction Dispatcher() {\r\n this.events = {};\r\n}\r\n\r\nDispatcher.prototype.dispatch = function(eventName, data) {\r\n const event = this.events[eventName];\r\n\r\n if (event) {\r\n event.fire(data);\r\n }\r\n}\r\n\r\nDispatcher.prototype.on = function(eventName, callback, once = false) {\r\n let event = this.events[eventName];\r\n\r\n if (!event) {\r\n event = new DispatcherEvent(eventName);\r\n this.events[eventName] = event;\r\n }\r\n\r\n event.registerCallback(callback, once);\r\n}\r\n\r\nDispatcher.prototype.off = function(eventName, callback) {\r\n // First get the correct event\r\n const event = this.events[eventName];\r\n // Check that the event exists and it we successfully unregistered the callback\r\n if (event && ((callback && event.unregisterCallback(callback)) || (!callback && event.clearCallbacks()))) {\r\n // if the event has no callbacks left, delete the event\r\n if (event.callbacks.length === 0) {\r\n delete this.events[eventName];\r\n }\r\n }\r\n}\r\n\r\nexport default Dispatcher;","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ControlPanel.vue?vue&type=style&index=0&lang=css&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchModal.vue?vue&type=style&index=0&id=1438157d&scoped=true&lang=css&\"","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccountApp.vue?vue&type=style&index=0&id=1233fcaa&scoped=true&lang=css&\"","/* getters.js */\r\n\r\nimport { get, isFunction, cloneDeep } from 'lodash'\r\nimport { sqMetersInSqFt } from '@/constants.js'\r\n\r\nimport moment from 'moment'\r\nimport convert from 'convert-units'\r\n\r\nimport { units, default_units, base_units } from '@/app-config'\r\n\r\nfunction roundTo(number, places) {\r\n return +(Math.round(number + \"e+\" + places) + \"e-\" + places);\r\n}\r\n\r\nexport default {\r\n shapes: (state, getters) => {\r\n return state.shapes.map(s => {\r\n // console.log('default unit: ', getters.currentDefaultUnit.name);\r\n // if type is not set on shape, it's likely this was a pre-distance supporting state, assume area\r\n const sType = get(s, 'type', 'area');\r\n const unit = state.primaryUnits[sType] || units.find(u => u.name == default_units[sType]);\r\n \r\n const baseDistanceUnit = base_units['distance'];\r\n const distanceUnit = state.primaryUnits['distance'] || units.find(u => u.name == default_units['distance']);\r\n\r\n const baseUnitName = base_units[sType]; \r\n \r\n return { \r\n ...s,\r\n convertedCalculated: roundTo(convert(s.calculated).from(baseUnitName).to(unit.name), unit.decimals),\r\n // convertedSegmentLengths: [],\r\n // convertedSegmentLengths: s.segmentLengths,\r\n convertedSegmentLengths: s.segmentLengths.map(l => roundTo(convert(l).from(baseDistanceUnit).to(distanceUnit.name), distanceUnit.decimals)),\r\n distanceSuffix: distanceUnit.suffix,\r\n suffix: unit.suffix\r\n }\r\n }); \r\n },\r\n measureSuffix: (state, getters) => getters.primaryUnit.suffix,\r\n imperialStatus: state => state.imperial ? true : false, \r\n lastMapClickLatLng: state => {\r\n if (state.lastMapClickEvent) {\r\n let { lat, lng } = state.lastMapClickEvent.latLng;\r\n \r\n if (isFunction(lat)) {\r\n lat = lat(); \r\n lng = lng(); \r\n } \r\n\r\n\r\n return new google.maps.LatLng(lat, lng);\r\n }\r\n\r\n return false;\r\n },\r\n largestShape: state => {\r\n return state.shapes.reduce((largestShape, shape) => {\r\n if (shape.calculated > largestShape.calculated) {\r\n return shape;\r\n }\r\n\r\n return largestShape;\r\n }, state.shapes.length ? state.shapes[0] : { calculated: 0 });\r\n },\r\n currentShape: state => {\r\n let shape = state.shapes.find(s => s.selected);\r\n return (shape) ? shape : { indexID: null };\r\n },\r\n hoveredShape: state => {\r\n // return state.areas.find(a => a.getHighlightedStatus())\r\n },\r\n filteredUnits: (state, getters) => { \r\n console.log('activestatustabname: ', getters.activeStatusTabName);\r\n return units.filter(u => u.type == getters.activeStatusTabName && u.group == ((getters.imperialStatus == true) ? 'imperial' : 'metric'));\r\n },\r\n primaryUnit: (state, getters) => { \r\n const activeTab = getters.activeStatusTabName;\r\n if (!state.primaryUnits[activeTab] || !units.find(u => u.name == state.primaryUnits[activeTab].name)) {\r\n return units.find(u => u.name == getters.currentDefaultUnit.name);\r\n }\r\n\r\n return state.primaryUnits[activeTab];\r\n }, \r\n currentDefaultUnit: (state, getters) => {\r\n return units.find(u => u.name == default_units[getters.activeStatusTabName] && u.type == getters.activeStatusTabName);\r\n },\r\n currentBaseUnit: (state, getters) => {\r\n return units.find(u => u.name == base_units[getters.activeStatusTabName] && u.type == getters.activeStatusTabName);\r\n },\r\n totalShapeCalculatedConverted: (state, getters) => {\r\n let rawCalculated = getters.totalShapeCalculatedRaw; \r\n let converted = roundTo(convert(rawCalculated).from(getters.currentBaseUnit.name).to(getters.primaryUnit.name), getters.primaryUnit.decimals);\r\n return converted;\r\n },\r\n totalShapeCalculatedRaw: (state, getters) => { \r\n let shape = state.shapes.reduce((accum, current) => {\r\n if (current.type == getters.activeStatusTabName) { \r\n return accum + current.calculated;\r\n }\r\n\r\n return accum;\r\n }, 0);\r\n\r\n return shape;\r\n },\r\n activeStatusTabName: state => { \r\n return (state.activeStatusTab == 0 || state.activeStatusTab == null) ? 'area' : 'distance';\r\n },\r\n currentSlotMeta: (state, getters) => { \r\n let meta = get(getters['backend/storage/saveSlots'], `${state.currentSlotName}].meta`, {\r\n saved: null,\r\n name: ''\r\n });\r\n \r\n return Object.assign(meta, {\r\n getSaveAge() {\r\n if (this.saved) {\r\n return moment(this.saved).fromNow();\r\n }\r\n \r\n return 'Never saved';\r\n },\r\n getSavedHuman() {\r\n return (this.saved) ? moment(this.saved).format('l @ LT') : 'Never';\r\n }\r\n });\r\n },\r\n legacySaveSlots(state) {\r\n if (state.saveSlots && Object.keys(state.saveSlots).length > 0) {\r\n return state.saveSlots;\r\n }\r\n \r\n return null;\r\n },\r\n saveSlots(state, getters) { \r\n return get(getters, ['backend/storage/saveSlots'], {});\r\n },\r\n loading(state) {\r\n return state.loading;\r\n },\r\n}","/* actions.js */\r\nimport { cloneDeep, pick, get, has, debounce } from 'lodash'\r\nimport { NEW_AREA } from '@/constants.js'\r\nimport { units, default_units } from '@/app-config'\r\nimport getters from './getters';\r\n\r\nexport default {\r\n initializeStore ({ commit }) { \r\n commit('INITIALIZE_STORE');\r\n },\r\n async initializeBackend ({ dispatch }) {\r\n await dispatch('backend/initialize');\r\n },\r\n searchAddress ({commit}, address) {\r\n // reset the address\r\n \r\n commit('SET_ADDRESS', null);\r\n commit('SET_MAP_CENTER', null);\r\n setTimeout(() => { \r\n commit('SET_ADDRESS', address);\r\n }, 500);\r\n }, \r\n refreshShape: debounce(({commit}, shape) => {\r\n commit('REFRESH_SHAPE', shape.getState());\r\n }, 100, { trailing: true }),\r\n refreshAllShapes (context) { \r\n context.state.shapes.forEach((shape) => { \r\n context.commit('REFRESH_SHAPE', shape)\r\n }); \r\n },\r\n hoverShape ({state, commit}, shape) {\r\n state.shapes.forEach((s, idx) => {\r\n commit('SET_SHAPE_HIGHLIGHT', {\r\n idx,\r\n highlight: (shape && shape.indexID == s.indexID) ? true : false\r\n })\r\n });\r\n },\r\n setMode ({commit}, mode) {\r\n commit('SET_MODE', mode);\r\n },\r\n setCurrentControlOverlay ({ commit, state }, payload) {\r\n if (payload.hasOwnProperty('current')) {\r\n if (get(state, 'currentControlOverlay.current') && state.currentControlOverlay.uuid != payload.uuid) {\r\n console.log('set visible: false');\r\n state.currentControlOverlay.current.setVisible(false);\r\n }\r\n\r\n commit('SET_CURRENT_CONTROL_OVERLAY', payload)\r\n }\r\n },\r\n setToolType ({commit}, type) {\r\n commit('SET_TOOL_TYPE', type);\r\n },\r\n setMapCenter ({ commit }, latLng) {\r\n commit('SET_MAP_CENTER', latLng);\r\n },\r\n setShapeCutout ({commit}, cfg) {\r\n if (cfg.shape && cfg.hasOwnProperty('cutout')) {\r\n commit('SET_SHAPE_CUTOUT', {\r\n indexID: cfg.shape.indexID,\r\n cutout: cfg.cutout\r\n });\r\n }\r\n },\r\n setShapeDistanceVisible ({ commit }, cfg) {\r\n if (cfg.shape && cfg.hasOwnProperty('visible')) {\r\n commit('SET_SHAPE_DISTANCE_VISIBILE', {\r\n indexID: cfg.shape.indexID,\r\n visible: cfg.visible\r\n });\r\n }\r\n },\r\n setShapeLabelText ({ commit }, cfg) {\r\n if (cfg.shape && cfg.hasOwnProperty('labelText')) {\r\n commit('SET_SHAPE_LABEL_TEXT', {\r\n indexID: cfg.shape.indexID,\r\n labelText: cfg.labelText\r\n });\r\n }\r\n },\r\n setCurrentShape ({commit, state}, shape) {\r\n commit('SET_CURRENT_SHAPE', (shape) ? shape.indexID : null);\r\n },\r\n deleteShape ({commit, dispatch}, { shape, skipConfirm=false }={}) { \r\n console.log('in deleteshape');\r\n if (shape) { \r\n const labelText = ((shape.indexID) ? (has(shape, 'labelText') ? shape.labelText : shape.getLabelText()) : '');\r\n const type = ((shape.indexID) ? (has(shape, 'type') ? shape.type : shape.getType()) : '');\r\n\r\n const removeFn = () => {\r\n commit('REMOVE_SHAPE', shape);\r\n commit('SET_CURRENT_SHAPE', null);\r\n commit('SET_MODE', 'move');\r\n }\r\n\r\n // only ask for confirmation if a real shape exists\r\n if (shape.indexID && !skipConfirm) {\r\n dispatch('dialogs/confirm', { \r\n priority: 0, \r\n message: ((labelText.length > 0) ? `Are you sure you want to delete the ${labelText} ${type} measurement?` : `Are you sure you want to delete this ${type} measurement?`) + ' This cannot be undone.',\r\n config: {\r\n title: 'Confirm',\r\n confirmText: 'Delete',\r\n cancelText: 'Don\\'t delete',\r\n type: 'is-danger',\r\n onConfirm: removeFn \r\n }\r\n }); \r\n\r\n return;\r\n } \r\n\r\n removeFn();\r\n }\r\n },\r\n clearShapes ({commit, state}) {\r\n state.shapes.map(a => a.indexID).forEach(indexID => commit('REMOVE_SHAPE', indexID));\r\n },\r\n replaceShape ({commit}, repl) {\r\n commit('REPLACE_SHAPE', repl);\r\n },\r\n clearAddress ({commit}) {\r\n commit('SET_ADDRESS', '');\r\n },\r\n initNewMap ({ commit, dispatch }) {\r\n commit('SET_CURRENT_SLOT', '');\r\n\r\n return dispatch('clearShapes')\r\n .then(() => dispatch('clearAddress')); \r\n },\r\n initNewShape ({commit, state}, shape) {\r\n commit('REPLACE_SHAPE', {\r\n idx: state.shapes.findIndex((shape) => shape instanceof NEW_AREA),\r\n shape\r\n });\r\n },\r\n addShape ({commit}, shape) {\r\n if (shape) {\r\n commit('ADD_SHAPE', shape);\r\n }\r\n },\r\n setSaveModalVisibility ({commit}, visibility) {\r\n commit('SET_SAVE_MODAL_VISIBLE', visibility);\r\n },\r\n setIntroTipsModalVisibility ({commit}, visibility) {\r\n commit('SET_INTRO_TIPS_MODAL_VISIBLE', visibility);\r\n },\r\n setAffiliateModalVisibility ({commit}, visibility) {\r\n commit('SET_AFFILIATE_MODAL_VISIBLE', visibility);\r\n commit('SET_AFFILIATE_MODAL_SHOWN');\r\n },\r\n setSearchModalVisibility ({commit}, visibility) {\r\n commit('SET_SEARCH_MODAL_VISIBLE', visibility);\r\n },\r\n setUnitModalVisibility ({commit}, visibility) {\r\n commit('SET_UNIT_MODAL_VISIBLE', visibility);\r\n },\r\n increaseGlobalZIndex ({commit, state}) {\r\n commit('SET_GLOBAL_ZINDEX', state.globalZIndex + 1);\r\n },\r\n setIntroTipsShown ({commit}) {\r\n commit('SET_INTRO_TIPS_SHOWN');\r\n },\r\n setPublicComputerWarningShown ({commit}) { \r\n commit('SET_PUBLIC_COMPUTER_WARNING_SHOWN');\r\n },\r\n setImperialState (context, status) {\r\n context.commit('SET_IMPERIAL', status);\r\n },\r\n setPrimaryUnit (context, unitPayload) {\r\n if (!unitPayload.name || !units.find(u => unitPayload.name == u.name && unitPayload.type == u.type)) {\r\n unitPayload = context.getters.currentDefaultUnit;\r\n }\r\n \r\n context.commit('SET_PRIMARY_UNIT', unitPayload); \r\n },\r\n setLastMapClickEvent ({commit}, { event, delayedClear=false }) {\r\n commit('SET_LAST_MAP_CLICK_EVENT', event);\r\n\r\n if (delayedClear) {\r\n setTimeout(() => commit('SET_LAST_MAP_CLICK_EVENT', null), 500);\r\n }\r\n },\r\n setActiveStatusTab ({commit}, payload) {\r\n console.log('tab', payload);\r\n commit('SET_ACTIVE_STATUS_TAB', payload.tab);\r\n },\r\n setAppClicked ({ commit }) { \r\n commit('SET_APP_CLICKED', { clicked: true });\r\n setTimeout(() => commit('SET_APP_CLICKED', { clicked: false }), 100);\r\n },\r\n async delete({ dispatch, commit }, { name }) {\r\n commit('SET_LOADING', { loading: true });\r\n try { \r\n await dispatch('backend/storage/deleteSlot', { name }, { root: true });\r\n } catch (e) {\r\n throw new Error(e); \r\n } finally {\r\n commit('SET_LOADING', { loading: false });\r\n }\r\n },\r\n async load({ dispatch, commit }, { name }) {\r\n commit('SET_LOADING', { loading: true });\r\n try {\r\n const slot = await dispatch('backend/storage/loadSlot', { name }, { root: true });\r\n\r\n if (get(slot, 'meta.schemaVersion', 0) != process.env.VUE_APP_SAVE_SCHEMA_VERSION) { \r\n throw new Error('This map has an invalid schema version and cannot be loaded.'); \r\n }\r\n\r\n commit('INITIALIZE_STORE', {...slot, 'currentSlotName': name });\r\n } catch (e) {\r\n throw new Error(e);\r\n } finally {\r\n commit('SET_LOADING', { loading: false });\r\n } \r\n },\r\n async save({ dispatch, commit, state }, { name, data=null }) {\r\n commit('SET_LOADING', { loading: true });\r\n try {\r\n let copiedState = copiedState = cloneDeep(pick(data || state, [\r\n 'mode',\r\n 'address',\r\n 'shapes', \r\n 'globalZIndex',\r\n 'mapZoom',\r\n 'mapCenter'\r\n ]));\r\n\r\n delete copiedState.mapCenter['fromMap'];\r\n delete copiedState.mapZoom['fromMap'];\r\n\r\n copiedState.meta = {\r\n saved: Date.now(), \r\n name: name, \r\n schemaVersion: (data) ? data.meta.schemaVersion : process.env.VUE_APP_SAVE_SCHEMA_VERSION,\r\n sessionUuid: state.uuid \r\n } \r\n \r\n await dispatch('backend/storage/saveSlot', { name, data: copiedState }, { root: true });\r\n state.currentSlotName = name;\r\n } catch (e) {\r\n throw new Error(e);\r\n } finally {\r\n commit('SET_LOADING', { loading: false });\r\n }\r\n }\r\n}","/* mutations.js */\r\nimport { get, pick, omit, defaults } from 'lodash'\r\nimport { v4 as uuidv4 } from 'uuid';\r\nimport { shapeDefaults } from '../constants';\r\n\r\nimport config from '@/app-config'\r\nimport Vue from 'vue';\r\n\r\nconst WARNINGS = ['publicComputerWarningShown'];\r\n\r\nexport default {\r\n INITIALIZE_STORE (state, newState = null) {\r\n console.log('initializing store'); \r\n if (localStorage.getItem('store')) {\r\n console.log('loading store');\r\n // extract\r\n let originalWarnings = pick(state, WARNINGS);\r\n // if a newState is passed, use that, otherwise use local storage, strip warnings and meta data \r\n let storageState = JSON.parse(localStorage.getItem('store'));\r\n \r\n let loadedState = omit({\r\n ...storageState,\r\n ...(newState) ? newState : {}\r\n },\r\n [\r\n ...WARNINGS, \r\n 'meta'\r\n ]\r\n );\r\n\r\n // modify areas to ensure none are loaded with a \"selected\" state\r\n if (loadedState.hasOwnProperty('areas')) {\r\n // migrate users with old 'areas' property to shapes\r\n loadedState.shapes = _.cloneDeep(loadedState.areas);\r\n delete loadedState.areas;\r\n }\r\n\r\n // migrate users with old 'primaryUnit' property\r\n if (loadedState.hasOwnProperty('primaryUnit')) {\r\n delete loadedState.primaryUnit;\r\n }\r\n\r\n let loadedShapes = loadedState.shapes.map((s) => defaults({...s, selected: false }, shapeDefaults));\r\n \r\n // reset modal states\r\n Object.assign(loadedState, {\r\n ...(newState) ? originalWarnings : {}, // if a state is being loaded, include the original warning statuses, otherwise don't\r\n saveModalVisible: false,\r\n searchModalVisible: false,\r\n introTipsModalVisible: false, \r\n introTipsShown: false,\r\n affiliateModalVisible: false,\r\n affiliateModalShown: false,\r\n unitModalVisible: false,\r\n activeStatusTab: 0,\r\n currentControlOverlay: null,\r\n primaryUnits: {},\r\n mode: 'move', \r\n shapes: loadedShapes, \r\n mapCenter: {\r\n fromSave: (loadedState.mapCenter) ? loadedState.mapCenter.fromSave : false,\r\n fromMap: false,\r\n lat: (loadedState.mapCenter) ? loadedState.mapCenter.lat : null,\r\n lng: (loadedState.mapCenter) ? loadedState.mapCenter.lng : null\r\n },\r\n mapZoom: {\r\n fromMap: false,\r\n number: loadedState.mapZoom.number\r\n },\r\n loading: false,\r\n // used to notify tooltips the focus was lost\r\n appClicked: false,\r\n uuid: loadedState.uuid ? loadedState.uuid : uuidv4()\r\n });\r\n\r\n // set all warnings that don't exist in the loaded state to false, avoiding undefined errors\r\n loadedState = defaults(loadedState, WARNINGS.reduce((prev, v) => { prev[v] = false; return prev; }, {}));\r\n\r\n Object.assign(state, loadedState); \r\n }\r\n },\r\n CLEAR_LEGACY_SAVE_SLOTS (state) {\r\n Vue.set(state, 'saveSlots', {});\r\n },\r\n SET_MODE (state, mode) {\r\n state.mode = mode;\r\n },\r\n SET_CURRENT_CONTROL_OVERLAY (state, overlay) {\r\n state.currentControlOverlay = overlay;\r\n },\r\n SET_TOOL_TYPE (state, type) {\r\n state.toolType = type;\r\n },\r\n SET_IMPERIAL (state, status) {\r\n state.imperial = status;\r\n },\r\n SET_PRIMARY_UNIT (state, unit) {\r\n Vue.set(state.primaryUnits, unit.type, unit); \r\n },\r\n SET_ADDRESS (state, address) {\r\n state.address = address;\r\n },\r\n SET_SHAPES (state, shapes) {\r\n state.shapes = shapes;\r\n },\r\n REFRESH_SHAPE (state, shape) { \r\n let idx = state.shapes.findIndex(s => s.indexID == shape.indexID);\r\n state.shapes.splice(idx, 1, shape);\r\n },\r\n SET_CURRENT_SHAPE (state, newId) {\r\n state.shapes.forEach((s, k) => {\r\n s.selected = ((s.indexID != newId) || !newId) ? false : true;\r\n state.shapes.splice(k, 1, s);\r\n });\r\n },\r\n SET_CURRENT_SLOT (state, slotName) {\r\n state.currentSlotName = slotName;\r\n },\r\n SET_SHAPE_CUTOUT (state, { indexID, cutout }) {\r\n let idx = state.shapes.findIndex(s => s.indexID == indexID);\r\n state.shapes.splice(idx, 1, Object.assign(state.shapes[idx], { cutout }));\r\n },\r\n SET_SHAPE_DISTANCE_VISIBILE (state, { indexID, visible}) {\r\n let idx = state.shapes.findIndex(s => s.indexID == indexID);\r\n state.shapes.splice(idx, 1, Object.assign(state.shapes[idx], { 'distanceVisible': visible }));\r\n },\r\n SET_SHAPE_LABEL_TEXT (state, { indexID, labelText }) {\r\n let idx = state.shapes.findIndex(s => s.indexID == indexID);\r\n state.shapes.splice(idx, 1, Object.assign(state.shapes[idx], { 'labelText': labelText }));\r\n },\r\n REMOVE_SHAPE (state, shape) {\r\n let indexID = get(shape, 'indexID', shape);\r\n let idx = state.shapes.findIndex(s => s.indexID == indexID);\r\n if (idx > -1) state.shapes.splice(idx, 1);\r\n },\r\n ADD_SHAPE (state, cfg) {\r\n state.shapes.push(cfg);\r\n },\r\n REPLACE_SHAPE (state, repl) {\r\n state.shapes.splice(repl.idx, 1, repl.shape);\r\n },\r\n SET_SHAPE_HIGHLIGHT (state, { idx, highlight }) {\r\n state.shapes.splice(idx, 1, Object.assign(state.shapes[idx], { highlighted: highlight }));\r\n },\r\n SET_SEARCH_MODAL_VISIBLE (state, visible) {\r\n state.searchModalVisible = (visible === true) ? true : false;\r\n },\r\n SET_SAVE_MODAL_VISIBLE (state, visible) {\r\n state.saveModalVisible = (visible === true) ? true : false;\r\n },\r\n SET_INTRO_TIPS_MODAL_VISIBLE (state, visible) {\r\n state.introTipsModalVisible = (visible === true) ? true : false;\r\n },\r\n SET_AFFILIATE_MODAL_VISIBLE (state, visible) {\r\n state.affiliateModalVisible = (visible === true) ? true : false;\r\n },\r\n SET_ACTIVE_STATUS_TAB (state, tab) {\r\n state.activeStatusTab = tab;\r\n },\r\n SET_UNIT_MODAL_VISIBLE (state, visible) {\r\n state.unitModalVisible = (visible === true) ? true : false;\r\n },\r\n SET_GLOBAL_ZINDEX (state, zIndex) {\r\n state.globalZIndex = zIndex;\r\n },\r\n SET_MAP_CENTER (state, latLng) {\r\n if (latLng && latLng.lat && latLng.lng) {\r\n state.mapCenter = latLng;\r\n } else {\r\n state.mapCenter = null;\r\n }\r\n },\r\n SET_MAP_ZOOM (state, zoom) {\r\n if (zoom.number) {\r\n state.mapZoom = zoom;\r\n }\r\n },\r\n SET_APP_CLICKED(state, { clicked=true }={}) {\r\n state.appClicked = clicked;\r\n },\r\n SET_INTRO_COMPLETED (state) {\r\n state.introCompleted = true;\r\n },\r\n SET_PUBLIC_COMPUTER_WARNING_SHOWN (state) {\r\n state.publicComputerWarningShown = true;\r\n },\r\n SET_INTRO_TIPS_SHOWN (state) {\r\n state.introTipsShown = true;\r\n },\r\n SET_AFFILIATE_MODAL_SHOWN (state) {\r\n state.affiliateModalShown = true;\r\n },\r\n SET_LAST_MAP_CLICK_EVENT (state, event) {\r\n state.lastMapClickEvent = event;\r\n },\r\n SET_LOADING(state, { loading }) {\r\n state.loading = (loading) ? true : false;\r\n },\r\n SET_GEOCODING_IN_PROGRESS (state, { geocoding }) {\r\n state.geocodingInProgress = (geocoding) ? true : false;\r\n }\r\n}","/* UserWatcherPlugin.js */\r\n\r\nexport default store => {\r\n store.watch((state, getters) => getters['backend/user/current'], (newUser, oldUser) => { \r\n if (!newUser) {\r\n console.log('new user: ', newUser);\r\n // ensure that user data is cleared when user logs out\r\n store.dispatch('initNewMap').then(() => {\r\n return store.dispatch('backend/storage/reset', null, { root: true });\r\n });\r\n } else if (!oldUser) {\r\n // initialize storage for the new user\r\n store.dispatch('backend/storage/init', null, { root: true }); \r\n } \r\n });\r\n\r\n // watch for subscription changes\r\n store.watch((state, getters) => getters['backend/user/subscriptions'], (newSubscriptions, oldSubscriptions) => { \r\n store.dispatch('backend/user/getSearchCount', null, { root: true });\r\n });\r\n}","/* SaveSlotWatcherPlugin.js */\r\nimport { get } from 'lodash';\r\nimport getters from '../getters';\r\n\r\nfunction handleLegacySaveSlots(store, slots) {\r\n if (slots && Object.keys(slots).length) { \r\n if (store.getters['backend/user/current']) {\r\n // legacy save slots exist and there is current user. Prompt the user to migrate their saves.\r\n const migrateFn = () => store.dispatch('backend/storage/moveLegacySavesToStorage', null, { root: true });\r\n store.dispatch('dialogs/alert', { \r\n priority: 2, \r\n message: 'It looks like you have saved maps to this web browsers\\'s local storage. These will now be moved to your MeasureMyLawn account.', \r\n config: { \r\n title: 'Move saved maps', \r\n type: 'is-danger',\r\n confirmText: 'Continue',\r\n onConfirm: migrateFn\r\n }\r\n }, { root: true }); \r\n } else {\r\n store.dispatch('dialogs/confirm', { \r\n priority: 2, \r\n message: 'Good news! Measuring projects can now be saved permanently server-side. Signup for a free account to migrate your existing saves automatically.
Notice: To keep our code simple, your existing saves are no longer available without a free account. Please signup to access them.
', \r\n config: { \r\n title: 'Important update!', \r\n type: 'is-danger',\r\n confirmText: 'Signup free now',\r\n cancelText: 'Cancel',\r\n onConfirm: function() { \r\n this.$router.replace({ name: 'Signup' });\r\n }\r\n }\r\n }, { root: true }); \r\n } \r\n }\r\n}\r\n\r\nexport default store => {\r\n store.watch((state, getters) => getters['saveSlots'], (newSlots, oldSlots) => { \r\n let slotName = store.state.currentSlotName;\r\n\r\n let newSlotMeta = get(newSlots, `${slotName}.meta`);\r\n let oldSlotMeta = get(oldSlots, `${slotName}.meta`);\r\n\r\n if (newSlotMeta && oldSlotMeta) {\r\n if (newSlotMeta.saved > oldSlotMeta.saved && newSlotMeta.sessionUuid != store.state.uuid) {\r\n store.dispatch('dialogs/confirm', { \r\n priority: 2, \r\n message: 'This map was recently saved elsewhere.
Would you like to load the newer version?', \r\n config: { \r\n title: 'Notice', \r\n type: 'is-danger',\r\n confirmText: 'Load the newer map',\r\n cancelText: 'Keep what I have',\r\n onConfirm: function() { \r\n return this.$store.dispatch('load', { name: this.$store.state.currentSlotName });\r\n }\r\n }\r\n }, { root: true }); \r\n }\r\n }\r\n });\r\n\r\n // watch for saveslot state changes. This will likely be triggered on initial page load\r\n store.watch((state, getters) => getters.legacySaveSlots, slots => { \r\n if (!getters['backend/user/current']) {\r\n handleLegacySaveSlots(store, slots);\r\n }\r\n });\r\n\r\n // watch for changes in current user. If a user logs in, run then handle function which checks for legacy save slots\r\n store.watch((state, getters) => getters['backend/user/current'], user => {\r\n if (user) { \r\n setTimeout(() => {\r\n handleLegacySaveSlots(store, store.getters.legacySaveSlots);\r\n }, 4000);\r\n }\r\n });\r\n}","import { get } from 'lodash'\r\nimport Vue from 'vue'\r\n\r\nexport default { \r\n state: {\r\n lastAction: {},\r\n timers: {}\r\n },\r\n mutations: {\r\n SET_TOOLTIP_VISIBILITY (state, payload) {\r\n Vue.set(state, payload.uniqueName, payload.visible);\r\n },\r\n SET_LAST_ACTION (state, payload) { \r\n state.lastAction = { ...state.lastAction, [payload.uniqueName]: payload.visible }\r\n },\r\n },\r\n actions: {\r\n setTooltipVisibility ({ state, commit }, payload) { \r\n let setVisibility = (function(payload, visible) { \r\n commit('SET_TOOLTIP_VISIBILITY', { ...payload, visible }); \r\n commit('SET_LAST_ACTION', { ...payload, visible }); \r\n }).bind(this, payload);\r\n\r\n if (!payload.visible) { \r\n setVisibility(false);\r\n return;\r\n }\r\n \r\n if (payload.visible == true && (get(state, `lastAction.${payload.uniqueName}`, false) == false)) { \r\n Vue.nextTick(() => setVisibility(true));\r\n\r\n if (payload.useTimeout) {\r\n setTimeout(() => setVisibility(false), parseInt(process.env.VUE_APP_DEFAULT_TOOLTIP_TIMEOUT));\r\n }\r\n\r\n return;\r\n }\r\n }, \r\n },\r\n}","import convert from 'convert-units'\r\nimport { v4 as uuid } from 'uuid'\r\n\r\nimport { forEach, uniqBy } from 'lodash'\r\n\r\nfunction getMatchingCoverage(state, getters, waste=.01) {\r\n let matches = [];\r\n let areaLeft = getters.totalAreaRaw;\r\n let match; \r\n \r\n if (getters.currentProduct) {\r\n while (areaLeft > 0) {\r\n match = getters.currentProduct.coverage.reduce((acc, cov) => {\r\n if (areaLeft > cov['sqft'] - (cov['sqft'] * waste)) return cov;\r\n return acc; \r\n });\r\n\r\n matches.push(match);\r\n areaLeft -= match['sqft'];\r\n }\r\n }\r\n\r\n return matches;\r\n}\r\n\r\nexport default {\r\n state: {\r\n estimate: null,\r\n category: null,\r\n selected: null,\r\n categoryInfo: {\r\n default: {\r\n icon: 'calculator-icon',\r\n name: 'Default'\r\n },\r\n seed: {\r\n icon: 'seed-icon',\r\n name: 'Seed'\r\n },\r\n fertilizer: {\r\n icon: 'sprout-icon',\r\n name: 'Fertilizer'\r\n }\r\n },\r\n products: [{\r\n name: 'Scotts Turf Builder Weed and Feed Lawn Fertilizer',\r\n id: 'scottsweedandfeed',\r\n type: 'fertilizer',\r\n region: 'any',\r\n adCode: '\"\"/',\r\n coverage: [{\r\n sqft: 5000,\r\n size: '15lb',\r\n sku: '205546050',\r\n price: 29.38\r\n },{\r\n sqft: 15000,\r\n size: '43lb',\r\n sku: '205546051',\r\n price: 58.98\r\n }]\r\n },{\r\n name: 'Vigoro Weed and Feed',\r\n id: 'vigoroweedandfeed',\r\n type: 'fertilizer',\r\n region: 'any',\r\n adCode: '\"\"/',\r\n coverage: [{\r\n sqft: 2500,\r\n size: '7lb',\r\n sku: '204750011',\r\n price: 11.67\r\n },{\r\n sqft: 5000,\r\n size: '14.96lb',\r\n sku: '204750011',\r\n price: 17.48\r\n },{\r\n sqft: 15000,\r\n size: '44lb',\r\n sku: '204750010',\r\n price: 42.98\r\n }]\r\n },{ \r\n name: 'Scotts Turf Builder Sun and Shade Mix',\r\n id: 'sunshade',\r\n type: 'seed',\r\n region: 'midwest',\r\n adCode: '\"\"/',\r\n coverage: [{\r\n sqft: 1200,\r\n size: '3lb',\r\n sku: '203760874',\r\n price: 16.48\r\n },{\r\n sqft: 2800,\r\n size: '7lb',\r\n sku: '203760892',\r\n price: 32.98\r\n },{\r\n sqft: 8000,\r\n size: '20lb',\r\n sku: '203760880',\r\n price: 78.48\r\n },{\r\n sqft: 16000,\r\n size: '40lb',\r\n sku: '203760900',\r\n price: 89.98\r\n }]\r\n },\r\n {\r\n name: 'Scotts Turf Builder Kentucky Bluegrass Mix Seed',\r\n id: 'kentbluegrass',\r\n type: 'seed',\r\n region: 'midwest',\r\n adCode: '\"\"/',\r\n coverage: [{\r\n sqft: 2025,\r\n size: '3lb',\r\n sku: '203760935',\r\n price: 19.98\r\n },{\r\n sqft: 4725,\r\n size: '7lb',\r\n sku: '203760929',\r\n price: 45.48\r\n }]\r\n }, \r\n {\r\n name: `Scotts Turf Builder Thick'R Lawn Sun and Shade Seed, Fertizilizer, Soil Improver`,\r\n id: 'thickrlawn',\r\n type: 'seed',\r\n region: 'midwest',\r\n adCode: '\"\"/',\r\n coverage: [{\r\n sqft: 1200,\r\n sku: '302685005',\r\n price: 20.48,\r\n size: '12lb'\r\n },{\r\n sqft: 4000,\r\n sku: '302684994',\r\n price: 51.48,\r\n size: '40lb'\r\n }]\r\n }]\r\n },\r\n mutations: {\r\n SET_SELECTED_PRODUCT(state, payload) {\r\n state.selected = payload.id;\r\n },\r\n SET_SELECTED_CATEGORY(state, payload) {\r\n state.category = payload.category;\r\n }\r\n },\r\n getters: {\r\n estimate(state, getters) {\r\n return {\r\n product: getters.currentProduct,\r\n stats: getters.coverageStats,\r\n quantities: getters.quantityList\r\n } \r\n },\r\n currentCategoryInfo(state, getters) {\r\n if (getters.currentCategory) {\r\n return state.categoryInfo[getters.currentCategory];\r\n }\r\n\r\n return state.categoryInfo['default'];\r\n },\r\n currentCategory(state, getters) { \r\n return state.category;\r\n },\r\n currentProduct(state, getters) { \r\n if (!getters.currentCategory) return null;\r\n if (!state.selected) return getters.convertedProducts.find(p => p.type == getters.currentCategory);\r\n return getters.convertedProducts.find(p => p.id == state.selected);\r\n },\r\n convertedProducts(state) {\r\n return state.products.map(p => ({...p, coverage: p.coverage.map(c => {\r\n return {\r\n ...c, \r\n sqft: convert(c.sqft).from('ft2').to('m2') \r\n }\r\n })}));\r\n }, \r\n coverageStats(state, getters) {\r\n let coverage, totals = [];\r\n for (let waste = .05; waste <= .5; waste += .01) {\r\n coverage = getMatchingCoverage(state, getters, waste);\r\n\r\n totals.push(coverage.reduce((acc, cov) => { \r\n return {\r\n cost: acc.cost + cov['price'],\r\n sqft: acc.sqft + cov['sqft'],\r\n waste,\r\n quantities: coverage.reduce((acc, el) => {\r\n if (!(el.size in acc)) {\r\n acc[el.size] = { \r\n ...el, count: 0\r\n };\r\n }\r\n acc[el.size].count++; \r\n \r\n return acc;\r\n }, {})\r\n }\r\n }, { cost: 0, sqft: 0 }));\r\n }\r\n\r\n totals.sort((fEl, sEl) => {\r\n return (fEl.cost < sEl.cost) ? -1 : ((fEl.cost > sEl.cost) ? 1 : 0);\r\n });\r\n \r\n let { cost, sqft, waste, quantities } = totals[0];\r\n \r\n return {\r\n cost: cost.toFixed(2),\r\n sqft, \r\n waste,\r\n quantities\r\n }\r\n },\r\n quantityList(state, getters) { \r\n let formatted = [];\r\n forEach(getters.coverageStats.quantities, (data, size) => formatted.push({ size, quantity: data.count, sqft: data.sqft })); \r\n return formatted;\r\n }\r\n },\r\n actions: {\r\n setSelectedProduct({ commit }, payload) {\r\n commit('SET_SELECTED_PRODUCT', payload);\r\n },\r\n setSelectedCategory({ commit, getters }, payload) { \r\n commit('SET_SELECTED_CATEGORY', payload);\r\n\r\n if (payload.category) {\r\n commit('SET_SELECTED_PRODUCT', {\r\n id: getters.convertedProducts.find((p) => p.type == payload.category).id\r\n });\r\n }\r\n }\r\n }\r\n}","import firebase from 'firebase/app'\r\nimport 'firebase/functions'\r\n\r\nimport { get, initial, startCase } from 'lodash'\r\n\r\nexport default {\r\n namespaced: true,\r\n state: {\r\n cbInstance: null,\r\n plans: [],\r\n subEvent: ''\r\n },\r\n mutations: {\r\n SET_SUBSCRIPTIONS (state, payload) {\r\n state.subscriptions = payload.subscriptions;\r\n },\r\n SET_PLANS (state, payload) {\r\n console.log(payload);\r\n state.plans = payload.plans;\r\n },\r\n SET_CB_INSTANCE (state, inst) {\r\n state.cbInstance = inst;\r\n },\r\n SET_SUB_EVENT(state, event) {\r\n state.subEvent = event;\r\n }\r\n },\r\n actions: {\r\n async init({ commit, state, dispatch }) {\r\n if (!state.cbInstance) { \r\n const cbInstance = window.Chargebee.init({site: process.env.VUE_APP_CHARGEBEE_SITE });\r\n cbInstance.setPortalSession(() => {\r\n return dispatch('generatePortalSession').then((response) => response.data);\r\n });\r\n\r\n commit('SET_CB_INSTANCE', cbInstance);\r\n }\r\n },\r\n async setCustomerId({ commit, rootState, rootGetters }, { customerId }) {\r\n commit('SET_LOADING', {\r\n loading: true\r\n }, {\r\n root: true\r\n });\r\n\r\n try {\r\n await rootState.backend.db.collection('users').doc(rootGetters['backend/user/current'].uid).set({\r\n customer_id: customerId\r\n }); \r\n } catch (e) {\r\n throw Error(e);\r\n } finally {\r\n commit('SET_LOADING', {\r\n loading: false\r\n }, {\r\n root: true\r\n });\r\n }\r\n },\r\n async getPlans({ commit }) {\r\n commit('SET_LOADING', {\r\n loading: true\r\n }, {\r\n root: true\r\n });\r\n\r\n try {\r\n const retrievePlans = firebase.functions().httpsCallable('retrieveChargebeePlans');\r\n const result = await retrievePlans();\r\n \r\n if (result.data) { \r\n commit('SET_PLANS', {\r\n plans: result.data\r\n });\r\n }\r\n } catch (e) { \r\n throw new Error(e);\r\n } finally {\r\n commit('SET_LOADING', {\r\n loading: false\r\n }, {\r\n root: true\r\n });\r\n }\r\n }, \r\n async getHostedPageDetails({ rootGetters, commit }, { hostedPageId }) {\r\n commit('SET_LOADING', {\r\n loading: true\r\n }, {\r\n root: true\r\n });\r\n\r\n try {\r\n if (!rootGetters['backend/user/current']) {\r\n throw 'No user is logged in';\r\n }\r\n\r\n const retrieveHostedPage = firebase.functions().httpsCallable('retrieveHostedPage');\r\n const result = await retrieveHostedPage({\r\n hosted_page_id: hostedPageId\r\n });\r\n\r\n console.log(result);\r\n const hostedPageContent = get(result, 'data.content');\r\n if (!hostedPageContent) throw 'Invalid response from retrieveHostedPage';\r\n \r\n return hostedPageContent;\r\n } catch (e) {\r\n throw Error(e);\r\n } finally {\r\n commit('SET_LOADING', {\r\n loading: false\r\n }, {\r\n root: true\r\n });\r\n }\r\n },\r\n async generateCheckoutUrl({ commit, rootGetters }, { customerId, planId, reactivate=false, subscriptionId=null } = {}) {\r\n commit('SET_LOADING', {\r\n loading: true\r\n }, { \r\n root: true \r\n });\r\n\r\n try {\r\n if (!rootGetters['backend/user/current']) {\r\n throw 'No user is logged in';\r\n } \r\n\r\n const generateCheckoutUrl = firebase.functions().httpsCallable((subscriptionId) ? 'generateCheckoutExistingUrl' : 'generateCheckoutUrl');\r\n return (await generateCheckoutUrl({\r\n customer_id: customerId || get(rootGetters['backend/user/details'], 'customer_id', null) || null,\r\n reactivate,\r\n plan_id: planId,\r\n subscription_id: subscriptionId,\r\n first_name: rootGetters['backend/user/current'].displayName.split(' ')[0],\r\n last_name: rootGetters['backend/user/current'].displayName.split(' ')[1],\r\n email: rootGetters['backend/user/current'].email,\r\n phone: rootGetters['backend/user/current'].phone\r\n }));\r\n } catch (e) {\r\n throw Error(e);\r\n } finally {\r\n commit('SET_LOADING', {\r\n loading: false\r\n }, {\r\n root: true\r\n }); \r\n } \r\n },\r\n async generatePortalSession({ commit, rootGetters }) {\r\n commit('SET_LOADING', {\r\n loading: true\r\n }, { \r\n root: true \r\n });\r\n\r\n try {\r\n if (!rootGetters['backend/user/current']) {\r\n throw 'No user is logged in';\r\n } \r\n\r\n const generatePortalSession = firebase.functions().httpsCallable('generatePortalSession');\r\n return (await generatePortalSession({\r\n customer_id: rootGetters['backend/user/details'].customer_id\r\n }));\r\n } catch (e) {\r\n throw Error(e);\r\n } finally {\r\n commit('SET_LOADING', {\r\n loading: false\r\n }, {\r\n root: true\r\n }); \r\n } \r\n },\r\n async openPortal({ state }) {\r\n if (state.cbInstance) {\r\n const cbPortal = state.cbInstance.createChargebeePortal();\r\n cbPortal.open({\r\n close() {\r\n console.log('portal closed');\r\n }\r\n });\r\n }\r\n },\r\n async openCheckout({ dispatch, state, rootGetters, commit }, { planId=null }={}) { \r\n if (state.cbInstance) { \r\n const sub = rootGetters['backend/user/primarySubscription'];\r\n const subId = (sub) ? sub.id : null;\r\n\r\n let reactivate = (sub && sub.status == 'cancelled') ? true : reactivate; \r\n \r\n state.cbInstance.openCheckout({\r\n hostedPage() {\r\n return dispatch('generateCheckoutUrl', { planId, subscriptionId: subId, reactivate }).then((response) => response.data);\r\n },\r\n loaded() {\r\n console.log('checkout opened');\r\n },\r\n close() {\r\n console.log('checkout closed');\r\n },\r\n success(hostedPageId) {\r\n return dispatch('getHostedPageDetails', {\r\n hostedPageId\r\n }).then(hostedPage => { \r\n dispatch('setSubEvent', { event: 'purchased'});\r\n return hostedPage;\r\n }).then(hostedPage => dispatch('setCustomerId', { \r\n customerId: hostedPage.customer.id\r\n })); \r\n },\r\n step(value) {\r\n console.log('step', value);\r\n } \r\n });\r\n }\r\n },\r\n setSubEvent({ commit }, { event='' }={}) {\r\n console.log('event', event);\r\n commit('SET_SUB_EVENT', event);\r\n }\r\n },\r\n\r\n getters: {\r\n subEvent(state) {\r\n return state.subEvent;\r\n },\r\n plans(state) {\r\n return state.plans;\r\n }\r\n }\r\n}","import firebase from 'firebase/app'\r\nimport 'firebase/auth'\r\nimport { debounce } from 'lodash';\r\n\r\nconst debouncedGetSearchCount = debounce(function({ rootState, commit, dispatch }) { \r\n if (rootState.geocodingInProgress) { \r\n return\r\n }\r\n\r\n const fn = firebase.functions().httpsCallable('getSearchCount');\r\n fn({ test: (process.env.VUE_APP_IP_TEST_MODE == 'true') }).then((result) => {\r\n if (result.data) { \r\n commit('SET_SEARCH_COUNT', result.data.count);\r\n commit('SET_MAX_SEARCHES', result.data.planDetails.maxSearches);\r\n }\r\n }).catch((e) => {\r\n dispatch('dialogs/alert', {\r\n priority: 0, \r\n message: `Unable to retrieve your current search count: ${e.message}`,\r\n config: { title: 'Error', type: 'is-error' }\r\n }, { root: true });\r\n }); \r\n}, 2000, { leading: false });\r\n\r\nexport default {\r\n namespaced: true,\r\n state: {\r\n currentJSON: null,\r\n current: null,\r\n details: null,\r\n subscriptions: [],\r\n refreshTimer: null,\r\n searchCount: 0,\r\n maxSearches: 0,\r\n subscriptions: []\r\n },\r\n mutations: {\r\n SET_CURRENT_USER(state, user) {\r\n if (user) {\r\n state.current = user;\r\n state.currentJSON = user.toJSON();\r\n } else {\r\n state.current = state.currentJSON = null;\r\n }\r\n },\r\n SET_REFRESH_TIMER(state, fn) {\r\n state.refreshTimer = setInterval(fn, 10000);\r\n },\r\n CLEAR_REFRESH_TIMER(state) {\r\n clearInterval(state.refreshTimer);\r\n },\r\n SET_DETAILS(state, doc) {\r\n state.details = doc;\r\n },\r\n SET_SUBSCRIPTIONS(state, payload) {\r\n state.subscriptions = payload.subscriptions.map(sub => {\r\n if (!sub.meta_data) {\r\n sub.meta_data = {};\r\n }\r\n\r\n return sub;\r\n });\r\n },\r\n SET_SEARCH_COUNT(state, count) {\r\n state.searchCount = count;\r\n },\r\n SET_MAX_SEARCHES(state, maxSearches) {\r\n state.maxSearches = maxSearches;\r\n }\r\n },\r\n actions: {\r\n async init({ commit, dispatch, rootState, rootGetters }) {\r\n return new Promise((resolve) => {\r\n firebase.auth().onAuthStateChanged(function(user) {\r\n user = user || null; \r\n console.log('user state change');\r\n if (user) {\r\n // watch for changes in this user's document\r\n let userDoc = rootState.backend.db.collection('users').doc(user.uid);\r\n userDoc.collection('subscriptions').onSnapshot((snapshot) => {\r\n commit('SET_SUBSCRIPTIONS', { \r\n subscriptions: snapshot.docs.map((v) => v.data())\r\n });\r\n });\r\n\r\n userDoc.onSnapshot((doc) => {\r\n console.log('user details', doc.data());\r\n commit('SET_DETAILS', doc.data());\r\n });\r\n }\r\n\r\n // User is signed in.\r\n if (user) {\r\n // set up timer to check for user changes\r\n commit('SET_REFRESH_TIMER', () => {\r\n user.reload().then(ok => {\r\n // console.log('checking for user changes');\r\n let user = firebase.auth().currentUser; \r\n commit('SET_CURRENT_USER', user);\r\n });\r\n }); \r\n }\r\n \r\n commit('SET_CURRENT_USER', user); \r\n if (!user) {\r\n // clear subscription data\r\n commit('SET_SUBSCRIPTIONS', { subscriptions: [] }); \r\n } \r\n \r\n dispatch('getSearchCount');\r\n resolve();\r\n });\r\n\r\n if (!rootGetters['backend/isIniting']) resolve();\r\n });\r\n\r\n // return new Promise((resolve, reject) => {\r\n // let timer = setInterval(() => {\r\n // if (state.current !== false) {\r\n // clearInterval(timer);\r\n // resolve(state.current);\r\n // }\r\n // }, 100);\r\n // });\r\n },\r\n\r\n async login({ commit }, { email=null, password=null } = {}) { \r\n commit('SET_LOADING', {\r\n loading: true\r\n }, {\r\n root: true\r\n }); \r\n\r\n try {\r\n await firebase.auth().signInWithEmailAndPassword(email, password);\r\n } catch (e) { \r\n throw Error(e);\r\n } finally {\r\n commit('SET_LOADING', {\r\n loading: false\r\n }, {\r\n root: true\r\n });\r\n }\r\n },\r\n\r\n async logout({ commit, state }) {\r\n console.log('logout');\r\n commit('SET_LOADING', {\r\n loading: false\r\n }, {\r\n root: true\r\n });\r\n\r\n try {\r\n if (state.current) {\r\n // shut off user refresh timer\r\n commit('CLEAR_REFRESH_TIMER');\r\n firebase.auth().signOut();\r\n }\r\n } catch(e) {\r\n throw Error(e);\r\n } finally {\r\n commit('SET_LOADING', {\r\n loading: false\r\n }, {\r\n root: true\r\n });\r\n }\r\n }, \r\n\r\n async register({ commit, dispatch, getters }, { email, password, displayName }) { \r\n commit('SET_LOADING', {\r\n loading: true\r\n }, {\r\n root: true\r\n });\r\n\r\n let newUser;\r\n try {\r\n await firebase.auth().createUserWithEmailAndPassword(email, password);\r\n await dispatch('update', {\r\n displayName,\r\n email\r\n });\r\n\r\n // migrate from a free account \r\n const fn = firebase.functions().httpsCallable('migrateFromFreeAccount');\r\n await fn({ test: (process.env.VUE_APP_IP_TEST_MODE == 'true') });\r\n } catch (e) {\r\n throw Error(e);\r\n } finally {\r\n commit('SET_LOADING', {\r\n loading: false\r\n }, {\r\n root: true\r\n });\r\n }\r\n \r\n return newUser;\r\n },\r\n \r\n async sendPasswordResetEmail({ commit }, { email }) {\r\n commit('SET_LOADING', {\r\n loading: true\r\n }, {\r\n root: true\r\n });\r\n\r\n try {\r\n await firebase.auth().sendPasswordResetEmail(email);\r\n } catch (e) {\r\n throw e;\r\n } finally {\r\n commit('SET_LOADING', {\r\n loading: false\r\n }, {\r\n root: true\r\n });\r\n }\r\n },\r\n async sendVerificationEmail({ getters, commit }) {\r\n commit('SET_LOADING', {\r\n loading: true\r\n }, {\r\n root: true\r\n });\r\n\r\n try {\r\n await getters.current.userObj.sendEmailVerification();\r\n } catch(e) {\r\n throw Error(e);\r\n } finally {\r\n commit('SET_LOADING', {\r\n loading: false\r\n });\r\n }\r\n }, \r\n \r\n async update({ commit, getters, dispatch }, properties = {}) {\r\n commit('SET_LOADING', {\r\n loading: true\r\n }, {\r\n root: true\r\n });\r\n\r\n try {\r\n if (getters.current.email != properties.email) { \r\n await getters.current.userObj.updateEmail(properties.email);\r\n await dispatch('sendVerificationEmail');\r\n }\r\n\r\n await getters.current.userObj.updateProfile(properties);\r\n\r\n \r\n } catch (e) {\r\n throw Error(e);\r\n } finally {\r\n commit('SET_LOADING', {\r\n loading: false\r\n }, {\r\n root: true\r\n });\r\n }\r\n },\r\n\r\n async updatePassword({ commit, getters }, { password }) {\r\n commit('SET_LOADING', {\r\n loading: true\r\n }, {\r\n root: true\r\n });\r\n\r\n try {\r\n await getters.current.userObj.updatePassword(password);\r\n } catch (e) {\r\n throw Error(e);\r\n } finally {\r\n commit('SET_LOADING', {\r\n loading: false\r\n }, {\r\n root: true\r\n });\r\n }\r\n },\r\n async getSubscriptions({ rootGetters, commit }, { customerId = null } = {}) {\r\n commit('SET_LOADING', {\r\n loading: true\r\n }, {\r\n root: true\r\n });\r\n\r\n try {\r\n if (!customerId && !rootGetters['backend/user/details'].customer_id) {\r\n throw 'No customer ID exists';\r\n }\r\n\r\n const retrieveSubscriptions = firebase.functions().httpsCallable('retrieveSubscriptions');\r\n const result = await retrieveSubscriptions({\r\n customer_id: customerId || rootGetters['backend/user/details'].customer_id\r\n });\r\n\r\n commit('SET_SUBSCRIPTIONS', {\r\n subscriptions: result.data\r\n });\r\n \r\n return result;\r\n } catch (e) {\r\n throw Error(e);\r\n } finally {\r\n commit('SET_LOADING', {\r\n loading: false\r\n }, {\r\n root: true\r\n });\r\n }\r\n },\r\n getSearchCount: debouncedGetSearchCount,\r\n async updateSearchCount({ commit, dispatch }, { searchCount, maxSearches }) {\r\n commit('SET_SEARCH_COUNT', searchCount);\r\n commit('SET_MAX_SEARCHES', maxSearches);\r\n }\r\n },\r\n getters: {\r\n current(state) { \r\n return (state.currentJSON) ? {...state.currentJSON, ...{ userObj: state.current }} : null;\r\n }, \r\n userInitials(state, getters) {\r\n if (getters.current) { \r\n if (getters.current.displayName) {\r\n const nameParts = getters.current.displayName.split(' ');\r\n\r\n if (nameParts.length > 2) {\r\n nameParts.splice(1, nameParts.length - 2);\r\n }\r\n\r\n return nameParts.map(part => part.substring(0, 1).toUpperCase()).join('');\r\n }\r\n\r\n return '~';\r\n }\r\n\r\n return '';\r\n },\r\n details(state) { \r\n return state.details || {};\r\n },\r\n searchesLeft(state) {\r\n return state.maxSearches - state.searchCount;\r\n },\r\n maxSearchText(state, getters) {\r\n const maxSearches = getters.maxSearches;\r\n return (maxSearches == -1) ? '∞' : maxSearches; \r\n },\r\n maxSearches(state) { \r\n return state.maxSearches;\r\n },\r\n searchCount(state) {\r\n return state.searchCount;\r\n },\r\n subscriptions(state) {\r\n return (state.subscriptions) ? state.subscriptions : [];\r\n }, \r\n hasActiveSubscription(state, getters) {\r\n const sub = getters.primarySubscription;\r\n return (sub && ['active','non_renewing'].includes(sub.status));\r\n },\r\n primarySubscription(state) {\r\n if (state.subscriptions) {\r\n return state.subscriptions.find(sub => sub.meta_data.primary_subscription == true);\r\n }\r\n\r\n return null;\r\n },\r\n subscriptionId(state, getters) {\r\n const subscription = getters.primarySubscription;\r\n return (subscription) ? subscription.id : null;\r\n },\r\n nextSubscriptionUpgrade(state, getters) {\r\n const primary = getters.primarySubscription; \r\n\r\n if (!primary) return 'starter'; \r\n if (primary.status != 'active') return null;\r\n if (primary.meta_data.next_upgrade) return primary.meta_data.next_upgrade;\r\n return null;\r\n }\r\n }\r\n}","import Vue from 'vue'\r\nimport { get, cloneDeep, forEach } from 'lodash'\r\n\r\nfunction getNextSaveName({ saveSlots, name }) {\r\n let total = 0; \r\n \r\n forEach(saveSlots, (val, key) => {\r\n const match = key.match(/^([\\w\\d ]+)( - version #\\([\\d]+\\))?$/); \r\n if (match && match[1].toLowerCase() == name.toLowerCase()) {\r\n total++;\r\n }\r\n });\r\n\r\n function findAvailable(idx) {\r\n const slotName = `${name} - version #(${idx})`;\r\n if (Object.keys(saveSlots).find(key => slotName == key)) {\r\n return findAvailable(idx + 1);\r\n }\r\n\r\n return slotName;\r\n }\r\n \r\n return (total > 0) ? findAvailable(total + 1) : name;\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state: {\r\n userDoc: null,\r\n saveSlots: {}\r\n },\r\n mutations: {\r\n CLEAR_SAVE_SLOTS(state) {\r\n Vue.set(state, 'saveSlots', {});\r\n },\r\n CLEAR_USER_DOC(state) {\r\n state.userDoc = null;\r\n },\r\n SET_SAVE_SLOTS(state, { slots, full=false }) {\r\n let tmp = {};\r\n slots.forEach((slot) => {\r\n tmp[slot.meta.name] = { skeleton: true, meta: slot.meta, address: slot.address };\r\n });\r\n\r\n Vue.set(state, 'saveSlots', {...tmp}); \r\n },\r\n SET_SAVE_SLOT (state, { name, data }) { \r\n Vue.set(state.saveSlots, name, data);\r\n },\r\n DELETE_SAVE_SLOT (state, { name }) {\r\n Vue.delete(state.saveSlots, name);\r\n },\r\n SET_USER_DOC (state, { userDoc }) {\r\n state.userDoc = userDoc;\r\n }\r\n },\r\n actions: {\r\n async init({ commit, rootState, dispatch }) { \r\n let user = rootState.backend.user.current; \r\n if (user) { \r\n await dispatch('backend/storage/reset', null, { root: true });\r\n\r\n let userDoc = rootState.backend.db.collection('users').doc(user.uid);\r\n commit('SET_USER_DOC', { userDoc });\r\n\r\n userDoc.collection('save_slots').onSnapshot((snapshot) => {\r\n console.log('new save data');\r\n commit('SET_SAVE_SLOTS', { \r\n slots: snapshot.docs.map((v) => v.data())\r\n });\r\n });\r\n }\r\n },\r\n async saveSlot ({commit, state, rootState}, { name, data }) {\r\n if (!name && rootState.currentSlotName) {\r\n name = rootState.currentSlotName;\r\n }\r\n \r\n if (name && state.userDoc) { \r\n await state.userDoc.collection('save_slots').doc(name).set(data);\r\n commit('SET_SAVE_SLOT', { name, data });\r\n } \r\n },\r\n async loadSlot ({ state, commit }, { name }) { \r\n let data = get(state.saveSlots, name);\r\n console.log('load slot: ', name); \r\n\r\n if (data) {\r\n if (data.skeleton) {\r\n let result = await state.userDoc.collection('save_slots').doc(name).get(); \r\n data = result.data();\r\n }\r\n\r\n data.mapCenter = { ...data.mapCenter, fromSave: true }\r\n \r\n commit('SET_SAVE_SLOT', { name, data });\r\n return data;\r\n }\r\n\r\n throw new Error('Slot not found'); \r\n },\r\n async deleteSlot ({commit, state }, { name }) {\r\n if (state.saveSlots[name] && state.userDoc) {\r\n await state.userDoc.collection('save_slots').doc(name).delete();\r\n commit('DELETE_SAVE_SLOT', { name });\r\n }\r\n }, \r\n moveLegacySavesToStorage ({ commit, rootState, getters, dispatch }) {\r\n if (rootState.saveSlots) {\r\n let saves = [];\r\n _.forEach(rootState.saveSlots, (data, name) => {\r\n const newName = getNextSaveName({ saveSlots: getters.saveSlots, name });\r\n saves.push(dispatch('save', { name: newName, data }, { root: true }));\r\n });\r\n\r\n Promise.all(saves).then(() => {\r\n commit('CLEAR_LEGACY_SAVE_SLOTS', null, { root: true });\r\n \r\n dispatch('dialogs/alert', { \r\n priority: 2,\r\n config: { title: 'Success' },\r\n message: 'Your locally saved maps have been moved to your account. You may now load them from any device!', \r\n }, { root: true }); \r\n });\r\n }\r\n },\r\n reset ({ commit }) {\r\n console.log('reseting storage');\r\n\r\n commit('CLEAR_SAVE_SLOTS');\r\n commit('CLEAR_USER_DOC');\r\n }\r\n },\r\n getters: {\r\n saveSlots(state) {\r\n return state.saveSlots;\r\n }\r\n }\r\n}","import Vue from 'vue'\r\n\r\nimport firebase from 'firebase/app'\r\nimport 'firebase/functions'\r\n\r\n\r\nexport default {\r\n namespaced: true,\r\n state: {\r\n banners: []\r\n },\r\n mutations: {\r\n SET_BANNERS(state, payload) {\r\n state.banners = payload.banners;\r\n }\r\n },\r\n actions: {\r\n async init({ commit, rootGetters, rootState, dispatch }) { \r\n // if (!rootGetters['backend/user/hasActiveSubscription']) {\r\n // dispatch('refreshBanners');\r\n // }\r\n },\r\n async refreshBanners({ commit }) {\r\n commit('SET_LOADING', {\r\n loading: true\r\n }, {\r\n root: true\r\n });\r\n\r\n try {\r\n const retrieveBanners = firebase.functions().httpsCallable('retrieveBannerFeed');\r\n const result = await retrieveBanners();\r\n \r\n if (result.data) { \r\n commit('SET_BANNERS', {\r\n banners: result.data\r\n });\r\n }\r\n } catch (e) { \r\n throw new Error(e);\r\n } finally {\r\n commit('SET_LOADING', {\r\n loading: false\r\n }, {\r\n root: true\r\n });\r\n }\r\n\r\n }\r\n },\r\n getters: {\r\n list(state) {\r\n return state.banners.map(banner => {\r\n banner.shortName = (banner.name.length > 45) ? banner.name.substring(0, 42) + '...' : banner.name;\r\n return banner;\r\n }); \r\n }\r\n }\r\n}","import firebase from 'firebase/app'\r\nimport 'firebase/auth'\r\nimport 'firebase/functions'\r\nimport 'firebase/firestore'\r\n\r\nimport payments from './payments'\r\nimport user from './user'\r\nimport storage from './storage'\r\nimport banners from './banners'\r\n\r\nimport { result } from 'lodash'\r\n\r\nexport default {\r\n namespaced: true,\r\n modules: {\r\n payments,\r\n user,\r\n storage,\r\n banners\r\n },\r\n state: { \r\n db: null,\r\n app: null,\r\n initing: true, \r\n firebaseConfig: {\r\n apiKey: process.env.VUE_APP_FIREBASE_APIKEY,\r\n authDomain: process.env.VUE_APP_FIREBASE_AUTHDOMAIN,\r\n databaseURL: process.env.VUE_APP_FIREBASE_DATABASE,\r\n projectId: process.env.VUE_APP_FIREBASE_PROJECT_ID,\r\n storageBucket: process.env.VUE_APP_FIREBASE_STORAGE_BUCKET,\r\n messagingSenderId: process.env.VUE_APP_FIREBASE_MESSAGING_SENDER_ID,\r\n appId: process.env.VUE_APP_FIREBASE_APP_ID\r\n }\r\n },\r\n mutations: {\r\n SET_APP(state, app) {\r\n state.app = app;\r\n },\r\n SET_DB(state, db) {\r\n state.db = db;\r\n },\r\n SET_INITING(state, initing = true) {\r\n state.initing = initing;\r\n }\r\n },\r\n actions: {\r\n async initialize({ state, commit, dispatch }) {\r\n console.log('init backend');\r\n if (!state.app) {\r\n console.log(state.app);\r\n console.log('initializing firebase');\r\n \r\n commit('SET_APP', firebase.initializeApp(state.firebaseConfig));\r\n\r\n if (process.env.VUE_APP_EMULATOR_IP) {\r\n firebase.functions().useEmulator(process.env.VUE_APP_EMULATOR_IP, 5001); \r\n }\r\n \r\n commit('SET_DB', firebase.firestore());\r\n console.log(state.app);\r\n \r\n await dispatch('user/init');\r\n await dispatch('storage/init');\r\n await dispatch('payments/init');\r\n await dispatch('banners/init');\r\n\r\n commit('SET_INITING', false);\r\n } \r\n }, \r\n async geocodeAddress({ dispatch, commit }, address) { \r\n commit('SET_LOADING', {\r\n loading: true\r\n }, {\r\n root: true\r\n });\r\n\r\n commit('SET_GEOCODING_IN_PROGRESS', {\r\n geocoding: true\r\n }, {\r\n root: true\r\n });\r\n\r\n try {\r\n const fn = firebase.functions().httpsCallable('geocodeAddress');\r\n const result = await fn({ address, test: (process.env.VUE_APP_IP_TEST_MODE == 'true') });\r\n \r\n if (!result.data || result.data.status != 200 || !result.data.latLng) { \r\n throw new Error('Unable to geocode address: ' + result.data.status);\r\n }\r\n\r\n dispatch('backend/user/updateSearchCount', { \r\n searchCount: result.data.newSearchCount,\r\n maxSearches: result.data.maxSearches\r\n }, { root: true });\r\n\r\n return result.data; \r\n } catch (e) {\r\n throw new Error(e.message);\r\n } finally {\r\n commit('SET_LOADING', {\r\n loading: false\r\n }, {\r\n root: true\r\n });\r\n\r\n commit('SET_GEOCODING_IN_PROGRESS', {\r\n geocoding: false\r\n }, {\r\n root: true\r\n });\r\n }\r\n } \r\n },\r\n getters: {\r\n isIniting(state) {\r\n return state.initing;\r\n }\r\n }\r\n}","import md5 from 'md5';\r\nimport { omit } from 'lodash';\r\n\r\nconst promptDefaults = {\r\n title: 'Notice',\r\n type: 'is-danger'\r\n}\r\n\r\nconst confirmDefaults = {\r\n title: 'Notice',\r\n type: 'is-danger'\r\n}\r\n\r\nconst alertDefaults = {\r\n title: 'Alert',\r\n type: 'is-success' \r\n}\r\n\r\nconst snackbarDefaults = {\r\n duration: 4000,\r\n position: 'is-bottom',\r\n actionText: null\r\n}\r\n \r\nexport default {\r\n namespaced: true,\r\n state: {\r\n 0: [], \r\n 1: [],\r\n 2: [],\r\n active: null\r\n },\r\n mutations: {\r\n addToQueue(state, { priority, config }) {\r\n config.priority = priority;\r\n \r\n Vue.set(state, priority, [...state[priority], config]);\r\n },\r\n\r\n removeFromQueue(state, { priority, uuid }) {\r\n const idx = state[priority].findIndex(c => c.uuid == uuid);\r\n \r\n if (idx > -1) { \r\n state[priority].splice(idx, 1); \r\n }\r\n },\r\n\r\n setActive(state, { active }) {\r\n state.active = active;\r\n }\r\n },\r\n actions: {\r\n setActive({ commit }, { active }) {\r\n commit('setActive', { active });\r\n },\r\n queueDialog({ commit, state, getters }, { priority, config }) { \r\n config.uuid = md5(JSON.stringify(omit(config, ['onConfirm','onCancel']))); \r\n console.log('queued', config, priority);\r\n if (getters.active && getters.active.uuid == config.uuid) {\r\n return;\r\n }\r\n\r\n if (state.hasOwnProperty(priority) && !state[priority].find(c => c.uuid == config.uuid)) { \r\n for (let [fnKey, fn] of Object.entries({ onConfirm: config.onConfirm, onCancel: config.onCancel})) { \r\n config[fnKey] = function (...args) {\r\n const _this = this; \r\n commit('removeFromQueue', { priority, uuid: config.uuid });\r\n commit('setActive', { active: null });\r\n if (fn) fn.call(_this, ...args);\r\n }\r\n } \r\n }\r\n\r\n commit('addToQueue', { priority, config })\r\n },\r\n alert({ dispatch }, { priority, message, config = {}}) {\r\n const mergedConfig = { ...alertDefaults, ...config, message, __type: 'alert' };\r\n dispatch('queueDialog', { priority, config: mergedConfig }); \r\n },\r\n \r\n confirm({ dispatch }, { priority, message, config }) {\r\n const mergedConfig = { ...confirmDefaults, message, ...config, __type: 'confirm' };\r\n dispatch('queueDialog', { priority, config: mergedConfig });\r\n },\r\n\r\n prompt({ dispatch }, { priority = 0, config }) {\r\n const mergedConfig = { ...promptDefaults, ...config, __type: 'prompt'};\r\n dispatch('queueDialog', { priority, config: mergedConfig });\r\n },\r\n\r\n snackbar({ dispatch }, { priority = 0, message, config = {}}) {\r\n const mergedConfig = { ...snackbarDefaults, ...config, __type: 'snackbar', message };\r\n dispatch('queueDialog', { priority, config: mergedConfig });\r\n }\r\n },\r\n getters: {\r\n queue(state) { \r\n return [state[2], state[1], state[0]].reduce((accum, queue) => {\r\n if (queue.length && !accum) {\r\n accum = queue[0];\r\n return accum;\r\n }\r\n\r\n return accum;\r\n }, null);\r\n },\r\n active(state) {\r\n return state.active;\r\n } \r\n }\r\n}","window.Vue = require('vue').default;\r\nimport Vuex from 'vuex'\r\nimport Vue from 'vue'\r\n\r\nimport actions from './actions'\r\nimport mutations from './mutations'\r\nimport getters from './getters'\r\n\r\nimport UserWatcherPlugin from './plugins/UserWatcherPlugin';\r\nimport SaveSlotWatcherPlugin from './plugins/SaveSlotWatcherPlugin';\r\n\r\nimport tooltips from './modules/tooltips'\r\nimport estimater from './modules/product-estimater'\r\n\r\nimport backend from './modules/backend'\r\nimport dialogs from './modules/dialogs'\r\n\r\nVue.use(Vuex);\r\n\r\nexport default new Vuex.Store({\r\n state: {\r\n mode: 'move',\r\n toolType: 'area',\r\n imperial: true,\r\n primaryUnits: {},\r\n activeStatusTab: 0,\r\n address: '', \r\n shapes: [],\r\n lastMapClickEvent: null,\r\n nextLatLngPan: false,\r\n searchModalVisible: false,\r\n saveModalVisible: false, \r\n introTipsModalVisible: false,\r\n affiliateModalVisible: false, \r\n unitModalVisible: false, \r\n globalZIndex: 0,\r\n mapCenter: {},\r\n mapZoom: {},\r\n geocodingInProgress: false,\r\n currentSlotName: '', \r\n saveSlots: {},\r\n introCompleted: false,\r\n publicComputerWarningShown: false,\r\n introTipsShown: false,\r\n affiliateModalShown: false,\r\n currentControlOverlay: null,\r\n loading: false,\r\n appClicked: false,\r\n uuid: null\r\n },\r\n modules: { \r\n backend,\r\n tooltips,\r\n estimater,\r\n dialogs\r\n },\r\n plugins: [\r\n UserWatcherPlugin,\r\n SaveSlotWatcherPlugin\r\n ],\r\n mutations,\r\n actions,\r\n getters\r\n});","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{directives:[{name:\"observe-visibility\",rawName:\"v-observe-visibility\",value:({\n callback: this.changeVisibleState,\n once: false\n }),expression:\"{\\n callback: this.changeVisibleState,\\n once: false\\n }\"}],staticClass:\"tooltip-ct\"},[_c('span',{staticClass:\"trigger\"},[_vm._t(\"default\")],2),_c('div',{staticClass:\"content\"},[_vm._t(\"tooltip-content\")],2)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TooltipWrapper.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TooltipWrapper.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TooltipWrapper.vue?vue&type=template&id=18aba7a4&scoped=true&\"\nimport script from \"./TooltipWrapper.vue?vue&type=script&lang=js&\"\nexport * from \"./TooltipWrapper.vue?vue&type=script&lang=js&\"\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 \"18aba7a4\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IntroTutorialModal.vue?vue&type=style&index=0&lang=css&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccountSubscribe.vue?vue&type=style&index=0&id=66d682ab&scoped=true&lang=css&\"","/* constants.js */\r\n\r\nexport const NEW_AREA = function({ \r\n type='area',\r\n shape='rectangle',\r\n paths=null,\r\n selectedHandleIdx=null,\r\n mode=null\r\n}) { \r\n this.type = type;\r\n this.shape = shape;\r\n this.paths = paths;\r\n this.mode = mode;\r\n this.selectedHandleIdx = selectedHandleIdx;\r\n}\r\n\r\nexport const snackbarDefaults = {\r\n duration: 3000,\r\n position: 'is-bottom',\r\n actionText: null\r\n}\r\n\r\nexport const shapeDefaults = {\r\n type: 'area',\r\n distanceVisible: false,\r\n segmentLengths: [],\r\n labelText: '',\r\n fillColor: ''\r\n}\r\n\r\nexport const startEndHandleZoomFormulas = {\r\n 22: (z) => (.1 * z) - 1,\r\n 21: (z) => (.1 * z) - 1.1,\r\n 20: (z) => (.1 * z) - 1,\r\n 19: (z) => (.1 * z) - .9,\r\n 18: (z) => (.1 * z) - .8,\r\n 17: (z) => (.1 * z) - .7,\r\n 16: (z) => (.1 * z) - .6,\r\n 15: (z) => (.1 * z) - .5,\r\n 14: (z) => (.1 * z) - .4,\r\n 13: (z) => (.1 * z) - .3,\r\n 12: (z) => (.1 * z) - .2,\r\n 11: (z) => (.1 * z) - .1,\r\n 10: (z) => (.1 * z),\r\n 9: (z) => (.1 * z) + .1,\r\n 8: (z) => (.1 * z) + .2,\r\n 7: (z) => (.1 * z) + .3,\r\n 6: (z) => (.1 * z) + .4,\r\n 5: (z) => (.1 * z) + .5,\r\n 4: (z) => (.1 * z) + .6,\r\n 3: (z) => (.1 * z) + .7,\r\n 2: (z) => (.1 * z) + .8,\r\n 1: (z) => (.1 * z) + .9 \r\n}\r\n\r\nexport const midPointZoomFormulas = {\r\n 22: (z) => (.7 * z) - 11.73,\r\n 21: (z) => (.7 * z) - 11.3,\r\n 20: (z) => (.7 * z) - 10.87,\r\n 19: (z) => (.7 * z) - 10.44,\r\n 18: (z) => (.7 * z) - 10.01,\r\n 17: (z) => (.7 * z) - 9.15,\r\n 16: (z) => (.7 * z) - 8.72,\r\n 15: (z) => (.7 * z) - 8.29,\r\n 14: (z) => (.7 * z) - 7.86,\r\n 13: (z) => (.7 * z) - 7.43,\r\n 12: (z) => (.7 * z) - 7.09,\r\n 11: (z) => (.7 * z) - 5.3,\r\n 10: (z) => (.7 * z) - 4,\r\n 9: (z) => (.7 * z) - 3.5,\r\n 8: (z) => (.7 * z) - 3,\r\n 7: (z) => (.7 * z) - 2,\r\n 6: (z) => (.7 * z) - 1,\r\n 5: (z) => (.7 * z),\r\n 4: (z) => (.7 * z) + 1,\r\n 3: (z) => (.7 * z) + 2,\r\n 2: (z) => (.7 * z) + 3,\r\n 1: (z) => (.7 * z) + 3.5,\r\n}","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MeasureMap.vue?vue&type=style&index=0&lang=css&\"","export default {\r\n normal: {\r\n handles: {\r\n draggable: true, \r\n icon: {\r\n path: google.maps.SymbolPath.CIRCLE,\r\n scale: 5,\r\n strokeColor: '#000'\r\n }\r\n },\r\n startHandles: {\r\n draggable: true, \r\n icon: {\r\n path: google.maps.SymbolPath.CIRCLE,\r\n scale: 5,\r\n strokeColor: '#000'\r\n }\r\n },\r\n endHandles: {\r\n draggable: true, \r\n icon: {\r\n path: google.maps.SymbolPath.CIRCLE,\r\n scale: 5,\r\n strokeColor: '#000'\r\n }\r\n },\r\n centerMarkers: {\r\n icon: {\r\n url: edgeAddCoordIcon,\r\n anchor: new google.maps.Point(10, 10),\r\n scaledSize: new google.maps.Size(20, 20)\r\n }\r\n },\r\n shape: {\r\n strokeColor: '#000',\r\n // draggable: true,\r\n clickable: false,\r\n marker: null,\r\n geodesic: true,\r\n strokeWeight: 2,\r\n fillOpacity: .4,\r\n fillColor: '#f7f709',\r\n editable: false \r\n } \r\n },\r\n selected: {\r\n handles: {\r\n draggable: true,\r\n icon: {\r\n path: google.maps.SymbolPath.CIRCLE,\r\n scale: 5,\r\n strokeColor: 'yellow'\r\n }\r\n },\r\n startHandles: {\r\n draggable: true, \r\n icon: {\r\n path: google.maps.SymbolPath.CIRCLE,\r\n scale: 5,\r\n strokeColor: 'yellow'\r\n }\r\n },\r\n endHandles: {\r\n draggable: true, \r\n icon: {\r\n path: google.maps.SymbolPath.CIRCLE,\r\n scale: 5,\r\n strokeColor: 'yellow'\r\n }\r\n },\r\n shape: { \r\n strokeWeight: 3,\r\n strokeColor: '#fff',\r\n fillColor: '#f7f709',\r\n fillOpacity: .2\r\n }\r\n },\r\n highlighted: {\r\n shape: {\r\n strokeWeight: 5\r\n }\r\n },\r\n cutout: {\r\n shape: {\r\n strokeColor: '#D20011',\r\n fillColor: '#D20011',\r\n fillOpacity: .4\r\n }\r\n }\r\n}","/* area.js */\r\nimport { MapShape } from './MapShape';\r\nimport store from '@/store/index.js'\r\n\r\nimport { defaultsDeep, get } from 'lodash';\r\nimport { NotificationProgrammatic } from 'buefy';\r\n\r\nimport styles from './shape_styles/AreaStyles';\r\nimport StyleManager from './shape_styles/StyleManager';\r\n\r\nconst styleMgr = new StyleManager(styles);\r\n\r\nfunction Area(map, params) { \r\n defaultsDeep(params, {\r\n indexID: new Date().getTime(),\r\n labelText: '',\r\n highlighted: false,\r\n cutout: false,\r\n distanceVisible: false,\r\n paths: null,\r\n selected: false,\r\n selectedHandleIdx: null,\r\n mode: null,\r\n initialZoom: null,\r\n styleMgr\r\n });\r\n\r\n this._type = 'area';\r\n this._poly = new google.maps.Polygon({\r\n paths: params.paths\r\n });\r\n \r\n // this._poly.set('zIndex', store.state.globalZIndex); \r\n this._poly.setOptions(params.styleMgr.get('shape')); \r\n MapShape.call(this, map, params); \r\n}\r\n\r\nArea.prototype = Object.create(MapShape.prototype);\r\n\r\nArea.prototype._initEvents = function() {\r\n MapShape.prototype._initEvents.call(this);\r\n\r\n this.dispatcher.on('modechanged', this._handleModeChanged.bind(this));\r\n}\r\n\r\nArea.prototype._handleModeChanged = function(mode) {\r\n if (mode == 'move') {\r\n // if the area contains less than 3 vertices, it can no longer be a polygon. If the user leaves edit mode in this state, delete the area.\r\n if (this._poly.getPath().length < 3) {\r\n store.dispatch('deleteShape', { shape: this, skipConfirm: true });\r\n } \r\n }\r\n}\r\n\r\nArea.prototype._customGetHandleVisibility = function(idx) {\r\n if (this._selected && this._mode == 'draw') {\r\n return true;\r\n }\r\n\r\n return false;\r\n}\r\n\r\nArea.prototype.getState = function() {\r\n let state = {\r\n type: this.getType(),\r\n labelText: this.getLabelText(),\r\n paths: this._poly.getPath().getArray().reduce((accum, val) => {\r\n accum.push(val.toJSON());\r\n return accum;\r\n }, []),\r\n distanceVisible: this._distanceVisible,\r\n cutout: this._cutout,\r\n selected: this._selected,\r\n highlighted: this._highlighted, \r\n indexID: this.indexID, \r\n calculated: this.getCalculated(),\r\n segmentLengths: this.getSegmentLengths(),\r\n initialZoom: this._initialZoom\r\n } \r\n\r\n return state;\r\n}\r\n\r\nArea.prototype.updateFromState = function(state, force = false) { \r\n let curState = this.getState();\r\n\r\n if (force || (JSON.stringify(curState) != JSON.stringify(state))) {\r\n if (force || state.selected != this._selected) this.setSelected(state.selected);\r\n if (force || state.highlighted != this._highlighted) this.setHighlighted(state.highlighted);\r\n if (force || state.cutout != this._cutout) this.setCutOut(state.cutout);\r\n if (force || state.distanceVisible != this._distanceVisible) this.setDistanceVisible(state.distanceVisible);\r\n if (force || state.labelText != curState.labelText) this.setLabelText(state.labelText);\r\n if (force || state.calculated != curState.calculated) this.dispatcher.dispatch('updated', this); \r\n \r\n this._updatePathFromArray(state.paths);\r\n }\r\n}\r\n\r\nArea.prototype.isLatLngClickMatch = function(latLng) {\r\n return google.maps.geometry.poly.containsLocation(latLng, this.getPoly());\r\n}\r\n\r\nArea.prototype.getCalculated = function() { \r\n let area = google.maps.geometry.spherical.computeArea(this.getPoly().getPath()); \r\n return (this._cutout) ? -Math.abs(area) : Math.abs(area);\r\n}\r\n\r\nexport {\r\n Area\r\n}","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductEstimater.vue?vue&type=style&index=0&lang=css&\"","import OverlayWrapper from './OverlayWrapper'\r\nimport TooltipWrapper from '@/components/TooltipWrapper.vue'\r\nimport ControlOverlayStyles from '../styles/ControlOverlay.css'\r\nimport store from '@/store/index.js'\r\n\r\nimport { v4 as uuidv4 } from 'uuid'\r\nimport { defaultsDeep } from 'lodash'\r\n\r\nconst cmp = {\r\n template: `\r\n \r\n `,\r\n components: {\r\n TooltipWrapper\r\n },\r\n props: {\r\n 'x': Number,\r\n 'y': Number, \r\n 'buttons': Array,\r\n 'overlay': Object,\r\n 'options': {\r\n type: Object,\r\n default: {}\r\n },\r\n 'visible': {\r\n type: Boolean,\r\n default: false\r\n }\r\n },\r\n watch: {\r\n visible: {\r\n handler: function(visible) {\r\n if (visible) {\r\n this.$el.querySelector('.menu-ct').classList.add('open'); \r\n store.dispatch('setCurrentControlOverlay', { current: this.overlay, uuid: this.uuid, prefix: this.options.prefix });\r\n // console.log('visible');\r\n return;\r\n }\r\n \r\n // store.dispatch('setCurrentControlOverlay', { current: null, uuid: '', prefix: '' });\r\n this.$el.querySelector('.menu-ct').classList.remove('open'); \r\n } \r\n }\r\n },\r\n methods: {\r\n getUUID() {\r\n return uuidv4();\r\n },\r\n handleBehavior(btn, eventName, e) {\r\n this.$emit(`overlay-event`, eventName, btn, e);\r\n return false;\r\n }\r\n },\r\n mounted() { \r\n let items = this.$el.querySelectorAll('.menu-ct a');\r\n \r\n for(var i = 0, l = items.length; i < l; i++) {\r\n items[i].style.left = (50 - this.options.distance*Math.cos(-0.5 * Math.PI - 2*(1/l)*i*Math.PI)).toFixed(4) + \"%\"; \r\n items[i].style.top = (50 + this.options.distance*Math.sin(-0.5 * Math.PI - 2*(1/l)*i*Math.PI)).toFixed(4) + \"%\";\r\n }\r\n },\r\n data() {\r\n return {\r\n uuid: uuidv4()\r\n }\r\n }, \r\n name: 'MarkerControlOverlay'\r\n}\r\n\r\nfunction Overlay(map, config = {}) {\r\n const defaults = {\r\n options: {\r\n distance: 50,\r\n prefix: '',\r\n iconsOnly: true\r\n },\r\n classes: [],\r\n buttons: []\r\n };\r\n\r\n config = defaultsDeep(config, defaults);\r\n // config = Object.assign(defaults, config);\r\n if (config.options.prefix) config.options.prefix += '-';\r\n \r\n OverlayWrapper.call(this, map, config);\r\n this.cmp = cmp; \r\n}\r\n\r\nOverlay.prototype = Object.create(OverlayWrapper.prototype);\r\nexport default Overlay;","function ClickableBehavior() { \r\n this.events = {\r\n 'click': 'click',\r\n 'touchend': 'click',\r\n 'touchstart': 'touchstart'\r\n }\r\n}\r\n\r\nClickableBehavior.prototype.touchstart = function(btn, e) {\r\n this.getMap().set('_noclicks', true);\r\n return false;\r\n}\r\n\r\nClickableBehavior.prototype.click = function(btn, e) {\r\n this.getMap().set('_noclicks', false);\r\n return true;\r\n}\r\n\r\nClickableBehavior.prototype.setup = function(parent) {\r\n this.parent = parent;\r\n // parent.$on('button-click', (e, btn) => parent.overlay.dispatcher.dispatch(`${btn.name}-click`));\r\n // parent.$on('button-click', (e, btn) => parent.overlay.dispatcher.dispatch(`${btn.name}-click`));\r\n}\r\n\r\nClickableBehavior.prototype.handleEvent = function(eventName, e) {\r\n if (this.events[eventName]) { \r\n return this.events[eventName];\r\n }\r\n}\r\n\r\nexport default ClickableBehavior;","import { cloneDeep, get } from 'lodash'\r\n\r\nexport default function StyleManager(styles) {\r\n const NORMAL_STATE = 'normal';\r\n const _styles = styles;\r\n\r\n return {\r\n get(name, state = NORMAL_STATE) {\r\n return cloneDeep(get(_styles, `${state}.${name}`, NORMAL_STATE));\r\n }\r\n }\r\n}","import Dispatcher from '../events.js'\r\nimport store from '@/store/index.js'\r\n\r\nfunction OverlayWrapper(map, {buttons=[], options={}, classes=[]} = {}) { \r\n this._cmpInstance = null; \r\n\r\n this.buttons = buttons;\r\n this.options = options;\r\n\r\n classes.unshift('custom-overlay');\r\n this._additionalClasses = classes;\r\n\r\n this.dispatcher = new Dispatcher();\r\n this.setMap(map);\r\n}\r\n\r\n// OverlayWrapper.prototype = new google.maps.OverlayView();\r\nOverlayWrapper.prototype = Object.create(google.maps.OverlayView.prototype);\r\n\r\nOverlayWrapper.prototype.onAdd = function() {\r\n let panes = this.getPanes();\r\n let float = panes.floatPane;\r\n\r\n let container = document.createElement('div');\r\n container.style.position = 'absolute';\r\n container.draggable = true;\r\n \r\n let ComponentClass = Vue.extend(this.cmp);\r\n let instance = new ComponentClass({\r\n propsData: {\r\n overlay: this,\r\n buttons: this.buttons,\r\n options: this.options\r\n }\r\n });\r\n\r\n instance.$on('overlay-event', this.handleOverlayEvent.bind(this));\r\n\r\n instance.$mount();\r\n container.appendChild(instance.$el);\r\n container.classList.add(...this._additionalClasses);\r\n\r\n float.appendChild(container);\r\n\r\n this._container = container; \r\n this._cmpInstance = instance;\r\n\r\n this.buttons.forEach((btn) => {\r\n btn.behavior.setup.call(this, btn); \r\n });\r\n\r\n this.dispatcher.dispatch('add');\r\n}\r\n\r\nOverlayWrapper.prototype.handleOverlayEvent = function(eventName, btn, e) { \r\n if (this._visible) {\r\n // console.log('in overlayevent', e);\r\n\r\n let mappedEvent = btn.behavior.handleEvent(eventName, e);\r\n let data = e;\r\n \r\n if (mappedEvent) { \r\n if (mappedEvent in btn.behavior) {\r\n data = btn.behavior[mappedEvent].call(this, btn, e);\r\n }\r\n \r\n if (data !== false) {\r\n this.dispatcher.dispatch(`${btn.name}-${mappedEvent}`, data);\r\n // console.log(`eventName: ${eventName} btn: ${btn.name}`);\r\n }\r\n }\r\n }\r\n}\r\n\r\nOverlayWrapper.prototype.onRemove = function() {\r\n if (this._container) {\r\n this._container.parentNode.removeChild(this._container);\r\n delete this._container;\r\n }\r\n}\r\n\r\nOverlayWrapper.prototype.draw = function() {\r\n if (this._container && this.get('position')) {\r\n let projection = this.getProjection();\r\n \r\n \r\n let {x, y} = projection.fromLatLngToDivPixel(this.get('position'));\r\n\r\n this._container.style.top = y + 'px';\r\n this._container.style.left = x + 'px';\r\n\r\n this.$setProp('x', x);\r\n this.$setProp('y', y);\r\n } \r\n}\r\n\r\nOverlayWrapper.prototype.$setProp = function(key, val) {\r\n let attempts = 0;\r\n let maxAttempts = 10;\r\n\r\n const fn = () => {\r\n if (this._cmpInstance) {\r\n this._cmpInstance.$props[key] = val;\r\n return;\r\n }\r\n\r\n if (attempts < maxAttempts) {\r\n attempts++;\r\n setTimeout(fn, 100);\r\n }\r\n }\r\n\r\n fn();\r\n}\r\n\r\nOverlayWrapper.prototype.setPosition = function(latLng) {\r\n this.set('position', latLng); \r\n let fn = () => this.draw();\r\n \r\n if (this._container) return fn(); \r\n}\r\n\r\nOverlayWrapper.prototype.setVisible = function(visible) {\r\n this._visible = ((visible === null || visible)) ? true : false;\r\n // console.log(visible);\r\n let fn = () => { \r\n this.draw();\r\n\r\n setTimeout(() => this.$setProp('visible', (this._visible)), 100);\r\n\r\n if (this._visible) {\r\n this._container.style.display = 'block'\r\n this.set('visible', true);\r\n\r\n if (this._timer) clearTimeout(this._timer); \r\n } else { \r\n this._timer = setTimeout(() => {\r\n this.set('visible', false);\r\n this._container.style.display = 'none';\r\n }, 400);\r\n } \r\n }\r\n\r\n if (this._container) return fn();\r\n this.dispatcher.on('add', fn, true);\r\n}\r\n\r\nexport default OverlayWrapper;","/* Shapes.js */\r\n\r\nconst { Area } = require('./Area');\r\nconst { Distance } = require('./Distance');\r\n\r\nmodule.exports = {\r\n Area,\r\n Distance\r\n}","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StatusPanel.vue?vue&type=style&index=0&lang=css&\"","module.exports = {\"base_units\":{\"area\":\"m2\",\"distance\":\"m\"},\"default_units\":{\"area\":\"ft2\",\"distance\":\"ft\"},\"units\":[{\"name\":\"in\",\"group\":\"imperial\",\"type\":\"distance\",\"display\":\"in\",\"suffix\":\"in\",\"decimals\":2},{\"name\":\"ft\",\"group\":\"imperial\",\"type\":\"distance\",\"display\":\"ft\",\"suffix\":\"ft\",\"decimals\":2},{\"name\":\"yd\",\"group\":\"imperial\",\"type\":\"distance\",\"display\":\"yd\",\"suffix\":\"yd\",\"decimals\":2},{\"name\":\"mi\",\"group\":\"imperial\",\"type\":\"distance\",\"display\":\"mi\",\"suffix\":\"mi\",\"decimals\":2},{\"name\":\"mm\",\"group\":\"metric\",\"type\":\"distance\",\"display\":\"mm\",\"suffix\":\"mm\",\"decimals\":0},{\"name\":\"m\",\"group\":\"metric\",\"type\":\"distance\",\"display\":\"m\",\"suffix\":\"m\",\"decimals\":2},{\"name\":\"km\",\"group\":\"metric\",\"type\":\"distance\",\"display\":\"km\",\"suffix\":\"km\",\"decimals\":4},{\"name\":\"in2\",\"group\":\"imperial\",\"type\":\"area\",\"suffix\":\"in²\",\"display\":\"in²\",\"decimals\":2},{\"name\":\"ft2\",\"group\":\"imperial\",\"type\":\"area\",\"suffix\":\"ft²\",\"display\":\"ft²\",\"decimals\":2},{\"name\":\"yd2\",\"group\":\"imperial\",\"type\":\"area\",\"suffix\":\"yd²\",\"display\":\"yd²\",\"decimals\":2},{\"name\":\"mi2\",\"group\":\"imperial\",\"type\":\"area\",\"suffix\":\"mi²\",\"display\":\"mi²\",\"decimals\":4},{\"name\":\"ac\",\"group\":\"imperial\",\"type\":\"area\",\"suffix\":\"acres\",\"display\":\"acres\",\"decimals\":4},{\"name\":\"cm2\",\"group\":\"metric\",\"type\":\"area\",\"suffix\":\"cm²\",\"display\":\"cm²\",\"decimals\":2},{\"name\":\"m2\",\"group\":\"metric\",\"type\":\"area\",\"suffix\":\"m²\",\"display\":\"m²\",\"decimals\":2},{\"name\":\"ha\",\"group\":\"metric\",\"type\":\"area\",\"suffix\":\"ha\",\"display\":\"ha\",\"decimals\":4},{\"name\":\"km2\",\"group\":\"metric\",\"type\":\"area\",\"suffix\":\"km²\",\"display\":\"km²\",\"decimals\":4}]}","import OverlayWrapper from './OverlayWrapper'\r\nimport PathSegmentMeasurementOverlayStyles from '../styles/PathSegmentMeasurementOverlay.css'\r\nimport store from '@/store/index.js'\r\n\r\nimport { v4 as uuidv4 } from 'uuid'\r\nimport { defaultsDeep } from 'lodash'\r\n\r\nconst cmp = {\r\n template: `\r\n {{measurement}} {{suffix}}\r\n `, \r\n props: {\r\n 'x': Number,\r\n 'y': Number, \r\n 'overlay': Object,\r\n 'options': {\r\n type: Object,\r\n default: {}\r\n },\r\n 'text': {\r\n type: String,\r\n default: ''\r\n },\r\n 'visible': {\r\n type: Boolean,\r\n default: false\r\n }\r\n },\r\n computed: {\r\n shape() {\r\n return store.getters.shapes.find(s => s.indexID == this.options.shapeIndexID);\r\n },\r\n measurement() {\r\n if (this.shape) {\r\n return this.shape.convertedSegmentLengths[this.options.segmentIdx];\r\n }\r\n },\r\n suffix() {\r\n if (this.shape) {\r\n return this.shape.distanceSuffix;\r\n }\r\n }\r\n },\r\n watch: { \r\n visible: {\r\n handler: function(visible) {\r\n if (visible) {\r\n return;\r\n } \r\n } \r\n }\r\n },\r\n methods: {\r\n getUUID() {\r\n return uuidv4();\r\n },\r\n handleBehavior(btn, eventName, e) {\r\n this.$emit(`overlay-event`, eventName, btn, e);\r\n return false;\r\n }\r\n },\r\n mounted() { \r\n \r\n },\r\n data() {\r\n return {\r\n uuid: uuidv4() \r\n }\r\n }, \r\n name: 'TextOverlay'\r\n}\r\n\r\nfunction Overlay(map, config = {}) {\r\n const defaults = {\r\n options: {\r\n prefix: '',\r\n iconsOnly: true\r\n },\r\n classes: []\r\n };\r\n\r\n config = defaultsDeep(config, defaults);\r\n // config = Object.assign(defaults, config);\r\n if (config.options.prefix) config.options.prefix += '-';\r\n \r\n OverlayWrapper.call(this, map, config);\r\n this.cmp = cmp; \r\n}\r\n\r\nOverlay.prototype = Object.create(OverlayWrapper.prototype);\r\nexport default Overlay;","import { get as _get } from 'lodash'\r\n\r\nfunction DraggableBehavior() { \r\n this.events = { \r\n 'mousedown':'dragstart',\r\n 'touchstart':'dragstart',\r\n 'touchmove':'dragmove',\r\n 'touchend':'dragstop',\r\n 'mouseup':'dragstop',\r\n 'mousemove':'dragmove'\r\n }\r\n}\r\n\r\nDraggableBehavior.prototype.dragstart = function(btn, e) {\r\n // start the move, set up the origin\r\n // console.log('drag start');\r\n this.set('origin', e);\r\n this.getMap().set('draggable', false); \r\n this.getMap().set('_noclicks', true);\r\n\r\n return false;\r\n}\r\n\r\nDraggableBehavior.prototype.dragmove = function(btn, e) { \r\n let origin = this.get('origin'); \r\n\r\n if (origin) {\r\n // console.log('drag move');\r\n // if the drag has already started\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n \r\n // get the cursor/touch event x/y and convert to latlang coords on the map\r\n let left = _get(origin, 'targetTouches[0].clientX', origin.clientX) - _get(e, 'targetTouches[0].clientX', e.clientX),\r\n top = _get(origin, 'targetTouches[0].clientY', origin.clientY) - _get(e, 'targetTouches[0].clientY', e.clientY),\r\n pos = this.getProjection()\r\n .fromLatLngToDivPixel(this.get('position')),\r\n latLng = this.getProjection()\r\n .fromDivPixelToLatLng(new google.maps.Point(pos.x - left, pos.y - top));\r\n\r\n \r\n // reset the current origin to the current position\r\n this.set('origin', e);\r\n // update the overlay position\r\n this.set('position', latLng);\r\n // console.log('position: ' + this.get('position'));\r\n this.draw();\r\n \r\n return latLng; \r\n }\r\n\r\n return false;\r\n}\r\n\r\nDraggableBehavior.prototype.dragstop = function(btn, e) { \r\n // console.log('drag stop');\r\n this.getMap().set('_noclicks', false);\r\n \r\n if (this.get('origin')) {\r\n this.getMap().set('draggable', true);\r\n this.set('origin', null); \r\n\r\n return this.get('position'); \r\n }\r\n\r\n return false;\r\n}\r\n\r\nDraggableBehavior.prototype.setup = function(btn) { \r\n let fn = (function (e) {\r\n if (this.get('origin')) {\r\n this._cmpInstance.$emit('overlay-event', e.type, btn, e);\r\n }\r\n }).bind(this);\r\n\r\n this.getMap().getDiv().addEventListener('touchmove', fn);\r\n this.getMap().getDiv().addEventListener('mousemove', fn);\r\n\r\n this.getMap().getDiv().addEventListener('touchend', fn);\r\n this.getMap().getDiv().addEventListener('mouseup', fn);\r\n}\r\n\r\nDraggableBehavior.prototype.handleEvent = function(eventName, e) {\r\n if (this.events[eventName]) {\r\n return this.events[eventName]; \r\n }\r\n}\r\n\r\nexport default DraggableBehavior;","/* MapShape.js */\r\nimport Dispatcher from '../events.js'\r\nimport store from '@/store/index.js'\r\n\r\nimport ControlOverlay from './ControlOverlay.js'\r\nimport PathSegmentMeasurementOverlay from './PathSegmentMeasurementOverlay.js'\r\n\r\nimport ClickableBehavior from './behaviors/ClickableBehavior';\r\nimport DraggableBehavior from './behaviors/DraggableBehavior';\r\n\r\nimport geolib from 'geolib'\r\nimport { cloneDeep, get, takeWhile, isFunction, debounce } from 'lodash'\r\n\r\nfunction MapShape(map, {\r\n indexID=new Date().getTime(),\r\n labelText='',\r\n highlighted=false,\r\n cutout=false,\r\n distanceVisible=false,\r\n paths=null,\r\n selected=false,\r\n selectedHandleIdx=null, \r\n mode=null, \r\n initialZoom=null,\r\n zoom=null,\r\n styleMgr\r\n} = {}) {\r\n this.dispatcher = new Dispatcher();\r\n \r\n this._labelText = labelText;\r\n this._map = map;\r\n this._mode = mode;\r\n this._cutout = cutout; \r\n this._distanceVisible = distanceVisible;\r\n \r\n this._styleMgr = styleMgr;\r\n\r\n this._drawingLine = null;\r\n this._edgeData = [];\r\n this._hideDrawingLine = false;\r\n this._hideHandles = false;\r\n this._shapeControlOverlay = null;\r\n this._handleControlOverlay = null;\r\n\r\n this._highlighted = highlighted;\r\n this._selected = selected;\r\n this._selectedHandleIdx = selectedHandleIdx; \r\n \r\n this._dragTimer = null;\r\n\r\n this._editVertex = null;\r\n this._markers = new Map();\r\n this._segmentTextOverlays = [];\r\n\r\n this.indexID = indexID; \r\n \r\n this._lastCenter = this.getCenter();\r\n this._lastHandleControlOverlayPosition = null;\r\n\r\n\r\n // console.log('in constructor, initial zoom:', this._initialZoom);\r\n this._initialZoom = initialZoom;\r\n this._zoom = zoom;\r\n\r\n store.dispatch('increaseGlobalZIndex');\r\n\r\n this._initEvents();\r\n\r\n this.updateHandles(); \r\n this._updateEdgeCenterMarkers();\r\n\r\n // if (this._cutout) store.dispatch('setAreaCutout', { area: { indexID }, cutout: true });\r\n this.updateFromState(this.getState(), true);\r\n if (this._selectedHandleIdx !== null) {\r\n this._setSelectedHandle(this._selectedHandleIdx);\r\n }\r\n}\r\n\r\nMapShape.prototype.getType = function() {\r\n return this._type;\r\n}\r\n\r\nMapShape.prototype.getLabelText = function() {\r\n return this._labelText;\r\n}\r\n\r\nMapShape.prototype.setLabelText = function(labelText) {\r\n this._labelText = labelText;\r\n}\r\n\r\nMapShape.prototype.getSelectedStatus = function() {\r\n return this._selected;\r\n}\r\n\r\nMapShape.prototype.getHighlightedStatus = function() {\r\n return this._highlighted;\r\n}\r\n\r\nMapShape.prototype.getPathVertexCount = function() {\r\n return this._poly.getPath().getLength();\r\n}\r\n\r\nMapShape.prototype._getAngle = function(latLngFrom, latLngTo) {\r\n if (!latLngFrom || !latLngTo) return 0; \r\n const projection = this._map.overlay.getProjection();\r\n \r\n if (!projection) return 0;\r\n\r\n let {x: pixelX1, y: pixelY1} = projection.fromLatLngToContainerPixel(latLngFrom);\r\n let {x: pixelX2, y: pixelY2} = projection.fromLatLngToContainerPixel(latLngTo);\r\n\r\n return (Math.atan2(pixelY2 - pixelY1, pixelX2 - pixelX1) * 180 / Math.PI - 90);\r\n}\r\n\r\nMapShape.prototype._initEvents = function () {\r\n let poly = this._poly;\r\n let path = poly.getPath();\r\n\r\n path.addListener('set_at', (idx, prevItem) => {\r\n let curItem = path.getAt(idx);\r\n \r\n if (!poly.getMap() || (curItem.toString() != prevItem.toString())) {\r\n this._handleLineBoundsChanged.apply(this, path);\r\n }\r\n });\r\n\r\n path.addListener('insert_at', this._handleLineBoundsChanged.bind(this, path));\r\n path.addListener('remove_at', this._handleLineBoundsChanged.bind(this, path));\r\n\r\n poly.addListener('click', this._handleInspectLine.bind(this));\r\n\r\n // custom events are being used for these\r\n this.dispatcher.on('mouseover', this._handleMouseOver.bind(this));\r\n this.dispatcher.on('mouseout', this._handleMouseOut.bind(this));\r\n\r\n this.dispatcher.on('mapzoomchanged', this._handleMapZoomChange.bind(this));\r\n\r\n this._map.addListener('idle', this._updateHandleRotations.bind(this));\r\n\r\n poly.setMap(this._map);\r\n}\r\n\r\nMapShape.prototype._handleLineBoundsChanged = function(path, event) {\r\n this.dispatcher.dispatch('boundschanged', this);\r\n this.dispatcher.dispatch('updated', this);\r\n\r\n if (!this._selected) this.dispatcher.dispatch('shapeselected', this);\r\n\r\n this.updateHandles(); \r\n\r\n debounce(() => { \r\n this._resetEdgeCenterMarkers();\r\n this._updateEdgeCenterMarkers(); \r\n this._updateAreaControlPosition(); \r\n this._updateHandleRotations();\r\n }, 250, { trailing: true })();\r\n\r\n if (this._selectedHandleIdx !== null && this._mode == 'draw') {\r\n this._setHandleControlVisible(true, this._selectedHandleIdx);\r\n } \r\n},\r\n\r\nMapShape.prototype._handleInspectLine = function() {\r\n this.dispatcher.dispatch('updated', this);\r\n this.dispatcher.dispatch('shapeselected', this);\r\n},\r\n\r\nMapShape.prototype._handleMouseOver = function(event)\r\n{\r\n // console.log('mouse over');\r\n // this._setEdgeCentersVisible(true);\r\n // this._setDrawingLinesVisible(false);\r\n // this._setAreaControlVisible(true);\r\n}\r\n\r\nMapShape.prototype._handleMouseOut = function(event)\r\n{\r\n // console.log('mouse out');\r\n // this._setEdgeCentersVisible(false);\r\n // this._setDrawingLinesVisible(true);\r\n}\r\n\r\nMapShape.prototype._handleMarkerDrag = function(pathIdx, event)\r\n{\r\n this._poly.getPath().setAt(pathIdx, event.latLng);\r\n\r\n // if (pathIdx != this._selectedHandleIdx) {\r\n // this._setSelectedHandle(null);\r\n // return;\r\n // }\r\n\r\n this._setSelectedHandle(pathIdx);\r\n}\r\n\r\nMapShape.prototype._handleMarkerClick = function(pathIdx, event)\r\n{ \r\n if (this._mode == 'draw') {\r\n if (pathIdx == this._selectedHandleIdx) {\r\n this._setSelectedHandle(null);\r\n return;\r\n }\r\n\r\n this._setSelectedHandle(pathIdx);\r\n } else if (store.state.mode == 'move') {\r\n store.dispatch('setLastMapClickEvent', { event, delayedClear: true });\r\n store.dispatch('setCurrentShape', this);\r\n } \r\n}\r\n\r\nMapShape.prototype._handleMarkerMouseOver = function(pathIdx)\r\n{ \r\n if (pathIdx == this._selectedHandleIdx) {\r\n // this._setHandleControlVisible(true, pathIdx);\r\n return;\r\n } \r\n}\r\n\r\n// MapShape.prototype._handleMarkerMouseOut = function(pathIdx)\r\n// {\r\n// this._setHandleControlVisible(pathIdx, false);\r\n// }\r\n\r\nMapShape.prototype._handleShapeControlOverlayDrag = function() {\r\n if (this._selected) {\r\n this._lastCenter = this._shapeControlOverlaylay.get('position');\r\n // this._updateShadowPoly(); \r\n }\r\n}\r\n\r\nMapShape.prototype._handleShapeControlOverlayDragEnd = function(latLng) {\r\n if (latLng && this._selected) { \r\n let targetLatLng = latLng;\r\n let oldPath = this._poly.getPath();\r\n\r\n let projection = this._map.overlay.getProjection();\r\n\r\n let {x: oldX, y: oldY} = projection.fromLatLngToContainerPixel(this._lastCenter);\r\n let {x: newX, y: newY} = projection.fromLatLngToContainerPixel(targetLatLng);\r\n // console.log(targetLatLng.toString());\r\n let diffX = newX - oldX;\r\n let diffY = newY - oldY;\r\n\r\n oldPath.forEach((pathLatLng, idx) => {\r\n let {x: pathX, y: pathY} = projection.fromLatLngToContainerPixel(pathLatLng);\r\n let tempPoint = new google.maps.Point(pathX + diffX, pathY + diffY);\r\n\r\n oldPath.setAt(idx, projection.fromContainerPixelToLatLng(tempPoint));\r\n });\r\n \r\n this._lastCenter = targetLatLng;\r\n }\r\n}\r\n\r\nMapShape.prototype._handleMapZoomChange = function(newZoom) { \r\n // console.log('inhandlemapzoomchange');\r\n this._zoom = newZoom; \r\n this.updateHandles();\r\n}\r\n\r\nMapShape.prototype.handleParentMapMouseOut = function(event)\r\n{\r\n // this._setDrawingLinesVisible(false);\r\n}\r\n\r\nMapShape.prototype.handleParentMapMouseOver = function(event)\r\n{\r\n // if (this._mode == 'draw') this._setDrawingLinesVisible(true);\r\n}\r\n\r\n/**\r\n * handleMapMouseMove\r\n *\r\n * Receive parent map mouse move events\r\n */\r\nMapShape.prototype.handleParentMapMouseMove = function(event)\r\n{\r\n // this._checkMouseOver(event.latLng);\r\n // this._updateDrawingLines(event.latLng);\r\n}\r\n\r\nMapShape.prototype._removeVertex = function(vertex)\r\n{\r\n this._deletePathSegmentText();\r\n\r\n let path = this._poly.getPath();\r\n let previousVertex = null;\r\n\r\n path.removeAt(vertex); \r\n this.updateHandles();\r\n\r\n if (path.getLength() > 0) {\r\n previousVertex = (vertex == 0) ? path.getLength() - 1 : vertex - 1;\r\n } \r\n\r\n if (path.getLength() == 0) {\r\n store.dispatch('deleteShape', { shape: this });\r\n return;\r\n }\r\n\r\n this._setSelectedHandle(previousVertex); \r\n},\r\n\r\nMapShape.prototype._handleEdgeCenterMouseOver = function(marker, edge) {\r\n marker.setOptions(this._styleMgr.get('centerMarkers','highlighted'));\r\n // this._setDrawingLinesVisible(false);\r\n}\r\n\r\nMapShape.prototype._handleEdgeCenterMouseOut = function(marker, edge) {\r\n // this._setDrawingLinesVisible(true);\r\n marker.setOptions(this._styleMgr.get('centerMarkers'));\r\n}\r\n\r\nMapShape.prototype._handleEdgeCenterClick = function(marker, edge) {\r\n this._editVertex = edge.pairIdx[0];\r\n this.addCoordinate(marker.getPosition());\r\n\r\n this._setSelectedHandle(this._editVertex); \r\n}\r\n\r\nMapShape.prototype._handleHandleControlDrag = function(latLng) {\r\n if (this._selectedHandleIdx !== null) this._poly.getPath().setAt(this._selectedHandleIdx, latLng);\r\n}\r\n\r\nMapShape.prototype._handleHandleControlAddClick = function() {\r\n if (this._selectedHandleIdx !== null) {\r\n this._setHandleControlVisible(false);\r\n store.dispatch('setMode', 'draw');\r\n }\r\n}\r\n\r\nMapShape.prototype._handleHandleControlTrashClick = function() {\r\n this._removeVertex(this._selectedHandleIdx); \r\n}\r\n\r\nMapShape.prototype._resetEdgeCenterMarkers = function() { \r\n this._edgeData.forEach((e) => {\r\n e.marker.setMap(null);\r\n delete e.marker;\r\n });\r\n\r\n this._edgeData = []; \r\n}\r\n\r\n/**\r\n * _checkMouseOver\r\n *\r\n * Since our poly is not dispatching normal mouseover events, we\r\n * need to check them on our own and fire them.\r\n */\r\nMapShape.prototype._checkMouseOver = function(latLng)\r\n{\r\n if (google.maps.geometry.poly.containsLocation(latLng, this._poly)) {\r\n this.dispatcher.dispatch('mouseover', this._handleMouseOver.bind(this));\r\n return;\r\n }\r\n\r\n this.dispatcher.dispatch('mouseout', this._handleMouseOut.bind(this));\r\n}\r\n\r\nMapShape.prototype._updateEdgeCenterMarkers = function() {\r\n let path = this._poly.getPath();\r\n const pairs = this.getSegmentPairs();\r\n\r\n pairs.forEach((pair, idx) => {\r\n let {latitude: lat, longitude: lng} = geolib.getCenter([\r\n { latitude: pair[0].lat(), longitude: pair[0].lng() },\r\n { latitude: pair[1].lat(), longitude: pair[1].lng() }\r\n ]);\r\n\r\n let pairCenter = new google.maps.LatLng(lat, lng);\r\n let pairLength = google.maps.geometry.spherical.computeLength(pair);\r\n\r\n let edge = this._edgeData[idx];\r\n\r\n if (!edge) {\r\n let marker = new google.maps.Marker({\r\n visible: false,\r\n map: this._map,\r\n draggable: false\r\n });\r\n\r\n marker.setOptions(this._styleMgr.get('centerMarkers'));\r\n\r\n edge = {\r\n pair: pair,\r\n pairIdx: [idx, idx + 1],\r\n marker: marker,\r\n tooShort: false\r\n }\r\n\r\n // marker.addListener('mouseover', this._handleEdgeCenterMouseOver.bind(this, marker, edge));\r\n marker.addListener('mouseout', this._handleEdgeCenterMouseOut.bind(this, marker, edge));\r\n marker.addListener('click', this._handleEdgeCenterClick.bind(this, marker, edge));\r\n }\r\n\r\n edge['tooShort'] = pairLength < 2;\r\n edge.marker.setPosition(pairCenter); \r\n\r\n this._edgeData[idx] = edge;\r\n this._updatePathSegmentText(idx, pairCenter);\r\n });\r\n\r\n if (this._mode == 'draw') this._setEdgeCentersVisible(true);\r\n}\r\n\r\nMapShape.prototype.getCutOutStatus = function () {\r\n return this._cutout;\r\n}\r\n\r\nMapShape.prototype.setCutOut = function (cutout) {\r\n this._cutout = (cutout !== false) ? true : false;\r\n\r\n this._refreshPolyOptions(); \r\n this.dispatcher.dispatch('updated', this);\r\n}\r\n\r\nMapShape.prototype.setMapZoom = function(zoomNumber) { \r\n // console.log('setmapzoom number', zoomNumber);\r\n this.dispatcher.dispatch('mapzoomchanged', zoomNumber);\r\n}\r\n\r\nMapShape.prototype._setEdgeCentersVisible = function(visible)\r\n{\r\n // console.log('edge centers visible: ' + visible);\r\n let hide = ((visible === null || visible) && this._selected) ? false : true;\r\n this._edgeData.forEach((data) => {\r\n data.marker.setVisible(this._mode == 'draw' && !data.tooShort && !hide);\r\n\r\n if (hide) {\r\n data.marker.setOptions(this._styleMgr.get('centerMarkers'));\r\n }\r\n });\r\n}\r\n\r\nMapShape.prototype._updateAreaControlPosition = function()\r\n{ \r\n let overlayPosition = this._shapeControlOverlay.get('position');\r\n let position = overlayPosition || this._lastCenter;\r\n\r\n // only update if the overlay doesn't yet have a position or if the lat or lng are different\r\n if (overlayPosition && (position.lat() != overlayPosition.lat() || position.lng() != overlayPosition.lng()) || !overlayPosition) { \r\n this._shapeControlOverlay.setPosition(position);\r\n }\r\n}\r\n\r\nMapShape.prototype._setAreaControlVisible = function(visible)\r\n{\r\n let hide = ((visible === null || visible) && this._selected) ? false : true;\r\n\r\n let shapeControlOverlay = this._shapeControlOverlay;\r\n\r\n // did the marker control overlay recently close (it would have set this._lastHandleControlOverlayPosition).\r\n // If it's set, use that as the new area control overlay.\r\n // Otherwise...\r\n // set the control's new latlng to the map's last click latlng if it exists, otherwise set to center of polygon\r\n // also, only set if we're set the control visible\r\n let latLng;\r\n\r\n if (this._lastHandleControlOverlayPosition) {\r\n latLng = this._lastHandleControlOverlayPosition;\r\n this._lastHandleControlOverlayPosition = null;\r\n } else {\r\n latLng = (store.getters.lastMapClickLatLng && !hide) ? store.getters.lastMapClickLatLng : this.getCenter(); \r\n }\r\n\r\n if (!shapeControlOverlay) {\r\n shapeControlOverlay = new ControlOverlay(this._map, { \r\n options: {\r\n distance: 30,\r\n prefix: 'areacontrol' \r\n },\r\n buttons: [{\r\n icon: 'vector-polyline-edit-icon',\r\n title: 'Edit layer',\r\n name: 'edit',\r\n behavior: new ClickableBehavior(),\r\n tooltipPlacement: 'top'\r\n },{\r\n icon: 'delete-icon',\r\n title: 'Delete layer',\r\n name: 'delete',\r\n behavior: new ClickableBehavior(),\r\n tooltipPlacement: 'right'\r\n },{\r\n icon: 'cursor-move-icon',\r\n title: 'Drag & release to move',\r\n name: 'move',\r\n behavior: new DraggableBehavior(),\r\n tooltipPlacement: 'bottom'\r\n },{\r\n icon: 'check-icon',\r\n title: 'Done when this layer',\r\n name: 'done',\r\n behavior: new ClickableBehavior(),\r\n tooltipPlacement: 'left'\r\n }] \r\n });\r\n \r\n shapeControlOverlay.dispatcher.on('move-dragstart', this._handleShapeControlOverlayDrag.bind(this));\r\n shapeControlOverlay.dispatcher.on('move-dragstop', this._handleShapeControlOverlayDragEnd.bind(this));\r\n shapeControlOverlay.dispatcher.on('edit-click', () => store.dispatch('setMode', 'draw'));\r\n shapeControlOverlay.dispatcher.on('done-click', () => store.dispatch('setCurrentShape', null));\r\n shapeControlOverlay.dispatcher.on('delete-click', () => store.dispatch('deleteShape', { shape: this }));\r\n \r\n this._shapeControlOverlay = shapeControlOverlay; \r\n }\r\n \r\n if(!hide) shapeControlOverlay.setPosition(latLng);\r\n shapeControlOverlay.setVisible(!hide); \r\n \r\n this._lastCenter = latLng;\r\n}\r\n\r\nMapShape.prototype._updatePathFromArray = function(latLngs) {\r\n let path = this._poly.getPath();\r\n \r\n if (latLngs.length != path.getLength()) {\r\n path.clear();\r\n }\r\n\r\n latLngs.forEach((latLng, idx) => {\r\n path.setAt(idx, new google.maps.LatLng(latLng));\r\n });\r\n}\r\n\r\nMapShape.prototype._getHandleStyle = function(idx, { path, forceDeselect=false }={}) { \r\n let state = 'normal';\r\n let entity = 'handles';\r\n\r\n if (this._selectedHandleIdx == idx && !forceDeselect) {\r\n state = 'selected';\r\n } \r\n\r\n const start = (idx == 0);\r\n const end = (idx == this.getPathVertexCount() - 1); \r\n\r\n if (start || end) {\r\n entity = (start) ? 'startHandles' : 'endHandles';\r\n }\r\n\r\n let style = this._styleMgr.get(entity, state);\r\n \r\n if (style.icon.path && this._customGetHandleRotation) {\r\n let rotation = this._customGetHandleRotation(idx, { start, end });\r\n if (rotation) {\r\n style.icon.rotation = rotation;\r\n }\r\n }\r\n\r\n const zoom = this._getHandleZoom({ start, end });\r\n // console.log('gethandlezoom', zoom);\r\n if (zoom) {\r\n style.icon.scale = zoom;\r\n }\r\n\r\n const anchor = this._getHandleAnchor({ start, end });\r\n if (anchor) {\r\n style.icon.anchor = anchor;\r\n }\r\n \r\n return style;\r\n}\r\n\r\nMapShape.prototype._getHandleZoom = function() {}\r\nMapShape.prototype._getHandleAnchor = function() {}\r\n\r\nMapShape.prototype.updateHandles = function(newPath)\r\n{\r\n let path = newPath || this._poly.getPath();\r\n\r\n if (path.length != this._markers.size) {\r\n this._markers.forEach((m) => {\r\n m.setMap(null);\r\n });\r\n\r\n this._markers.clear();\r\n }\r\n\r\n path.forEach((latLng, idx) => {\r\n let marker = this._markers.get(idx);\r\n\r\n if (!marker) {\r\n let style = this._getHandleStyle(idx);\r\n let options = cloneDeep(style);\r\n \r\n options.title = `marker_${this.indexID}_${idx}`;\r\n options.visible = false;\r\n \r\n marker = new google.maps.Marker(options);\r\n marker.setMap(this._map);\r\n\r\n marker.addListener('drag', this._handleMarkerDrag.bind(this, idx));\r\n // marker.addListener('rightclick', this._handleMarkerRightClick.bind(this, idx));\r\n marker.addListener('click', this._handleMarkerClick.bind(this, idx));\r\n marker.addListener('mouseover', this._handleMarkerMouseOver.bind(this, idx));\r\n\r\n this._markers.set(idx, marker);\r\n }\r\n\r\n marker.setPosition(latLng); \r\n marker.setZIndex(store.state.globalZIndex); \r\n\r\n if (isFunction(this._customGetHandleVisibility)) {\r\n marker.setVisible(this._customGetHandleVisibility(idx));\r\n } \r\n }); \r\n \r\n this._updateHandleRotations(path);\r\n}\r\n\r\nMapShape.prototype._updateHandleRotations = function(path) {\r\n if (this._poly) {\r\n (path || this._poly.getPath() || []).forEach((latLng, idx) => {\r\n let marker = this._markers.get(idx);\r\n \r\n const style = this._getHandleStyle(idx, { path });\r\n if (style.icon.path) {\r\n marker.setIcon(style.icon);\r\n }\r\n });\r\n }\r\n}\r\n\r\nMapShape.prototype.setDistanceVisible = function(visible)\r\n{\r\n console.log('set distance visible');\r\n this._distanceVisible = visible;\r\n this._updateEdgeCenterMarkers(); \r\n this.updateHandles();\r\n}\r\n\r\nMapShape.prototype._updatePathSegmentText = function(idx, latLng) { \r\n let path = this._poly.getPath();\r\n \r\n \r\n let textOverlay = this._segmentTextOverlays[idx];\r\n \r\n if (!textOverlay && this._distanceVisible) {\r\n textOverlay = new PathSegmentMeasurementOverlay(this._map, { \r\n classes: [\r\n 'path-segment-text'\r\n ],\r\n options: { \r\n shapeIndexID: this.indexID,\r\n segmentIdx: idx,\r\n prefix: 'segmenttext' \r\n }\r\n });\r\n }\r\n \r\n if (textOverlay) {\r\n textOverlay.setPosition(latLng);\r\n textOverlay.setVisible(this._distanceVisible); \r\n\r\n this._segmentTextOverlays[idx] = textOverlay; \r\n }\r\n}\r\n\r\nMapShape.prototype._deletePathSegmentText = function() { \r\n this._segmentTextOverlays.forEach((overlay, idx) => { \r\n overlay.setMap(null);\r\n delete this._segmentTextOverlays[idx];\r\n });\r\n}\r\n\r\nMapShape.prototype._setHandleControlVisible = function(visible, idx)\r\n{ \r\n let hide = ((visible === null || visible) && this._selected) ? false : true;\r\n\r\n let controlOverlay = this._handleControlOverlay;\r\n let parentMarker = this._markers.get(idx);\r\n\r\n if (idx !== null && parentMarker) {\r\n let latLng = parentMarker.getPosition();\r\n\r\n if (!controlOverlay) {\r\n controlOverlay = new ControlOverlay(this._map, {\r\n options: {\r\n prefix: 'handlecontrol',\r\n distance: 83\r\n },\r\n buttons: [{\r\n icon: 'delete-icon',\r\n title: 'Delete this point',\r\n name: 'delete',\r\n behavior: new ClickableBehavior(),\r\n tooltipPlacement: 'top'\r\n },\r\n {\r\n icon: 'cursor-move-icon',\r\n title: 'Drag to move this point',\r\n name: 'move',\r\n behavior: new DraggableBehavior(),\r\n tooltipPlacement: 'bottom'\r\n },\r\n {\r\n icon: 'check-icon',\r\n title: 'Done changing points',\r\n name: 'done',\r\n behavior: new ClickableBehavior(),\r\n tooltipPlacement: 'bottom'\r\n } \r\n ]\r\n });\r\n controlOverlay.dispatcher.on('move-dragmove', this._handleHandleControlDrag.bind(this));\r\n controlOverlay.dispatcher.on('delete-click', this._handleHandleControlTrashClick.bind(this));\r\n controlOverlay.dispatcher.on('done-click', () => {\r\n this._lastHandleControlOverlayPosition = this._handleControlOverlay.get('position');\r\n store.dispatch('setMode', 'move')\r\n });\r\n \r\n this._handleControlOverlay = controlOverlay;\r\n }\r\n\r\n controlOverlay.setPosition(latLng);\r\n }\r\n\r\n if (controlOverlay) {\r\n // console.log('set control overlay visible: ' + (!hide));\r\n controlOverlay.setVisible(!hide);\r\n }\r\n}\r\n\r\nMapShape.prototype._setSelectedHandle = function(idx)\r\n{ \r\n if (idx == null) {\r\n // unhighlight all markers \r\n this._markers.forEach((marker, idx) => { \r\n marker.setOptions(this._getHandleStyle(idx));\r\n });\r\n\r\n // hide controls\r\n this._setHandleControlVisible(false);\r\n this._selectedHandleIdx = null;\r\n this._editVertex = null;\r\n\r\n this.dispatcher.dispatch('handledeselected');\r\n return;\r\n }\r\n\r\n if (this._selectedHandleIdx !== null) {\r\n // unhighlight old marker\r\n let previousHandle = this._markers.get(this._selectedHandleIdx);\r\n if (previousHandle) { \r\n previousHandle.setOptions(this._getHandleStyle(this._selectedHandleIdx, { forceDeselect: true }));\r\n this._setHandleControlVisible(false, this._selectedHandleIdx);\r\n }\r\n }\r\n\r\n // highlight new marker, regardless of mode\r\n this._selectedHandleIdx = idx;\r\n this._editVertex = idx;\r\n\r\n let marker = this._markers.get(idx);\r\n marker.setOptions(this._getHandleStyle(idx));\r\n\r\n if (this._mode == 'draw' || this._mode == 'free') {\r\n // if mode is move, show the controls\r\n this._setHandleControlVisible(true, idx);\r\n }\r\n\r\n if (this._mode == 'move') {\r\n // ... and hide the handle controls\r\n this._setHandleControlVisible(false);\r\n }\r\n \r\n this.dispatcher.dispatch('handleselected', idx);\r\n}\r\n\r\nMapShape.prototype._updateDrawingLines = function(latLng)\r\n{\r\n if (this._selected) {\r\n let line = this._drawingLine;\r\n\r\n if (!line) {\r\n line = new google.maps.Polyline({clickable:false, strokeColor: 'white'});;\r\n line.setMap(this._map);\r\n\r\n this._drawingLine = line;\r\n }\r\n\r\n let path = this._poly.getPath();\r\n if (this._selectedHandleIdx === null) {\r\n let distances = [];\r\n\r\n path.forEach((handle, idx) => {\r\n let d = google.maps.geometry.spherical.computeDistanceBetween(handle, latLng); \r\n distances.push([d, handle, idx]);\r\n });\r\n\r\n distances = distances\r\n .sort((a, b) => a[0] - b[0])\r\n .slice(0, 2);\r\n\r\n line.setPath([distances[0][1], latLng]);\r\n this._editVertex = distances[0][2];\r\n } else {\r\n this._editVertex = this._selectedHandleIdx;\r\n line.setPath([path.getAt(this._editVertex), latLng]);\r\n }\r\n\r\n this._drawingLine.setVisible(!this._hideDrawingLine);\r\n }\r\n}\r\n\r\nMapShape.prototype._setDrawingLinesVisible = function(visible)\r\n{\r\n let hide = ((visible === null || visible) && this._selected && this._mode == 'draw') ? false : true;\r\n this._hideDrawingLine = hide;\r\n\r\n if (this._drawingLine) {\r\n this._drawingLine.setVisible(!hide);\r\n this._editVertex = null;\r\n }\r\n}\r\n\r\nMapShape.prototype._setShadowPolyVisible = function (visible) {\r\n // let hide = ((visible === null || visible) && this._selected) ? false : true;\r\n\r\n // let controlOverlay = this._handleControlOverlay;\r\n // let parentMarker = this._markers.get(idx);\r\n\r\n // if (idx !== null && parentMarker) {\r\n // let latLng = parentMarker.getPosition();\r\n\r\n // if (!controlOverlay) {\r\n // controlOverlay = new ControlsOverlay(this._map);\r\n // controlOverlay.dispatcher.on('drag', this._handleHandleControlDrag.bind(this));\r\n // controlOverlay.dispatcher.on('add-click', this._handleHandleControlAddClick.bind(this));\r\n // controlOverlay.dispatcher.on('trash-click', this._handleHandleControlTrashClick.bind(this));\r\n\r\n // this._handleControlOverlay = controlOverlay;\r\n // }\r\n\r\n // controlOverlay.setPosition(latLng);\r\n // }\r\n\r\n // if (controlOverlay) {\r\n // console.log('set control overlay visible: ' + (!hide));\r\n // controlOverlay.setVisible(!hide);\r\n // }\r\n // this._shadowPoly = new google.maps.Polygon({\r\n // paths: this._poly.getPaths(),\r\n // strokeColor: '#000000',\r\n // strokeOpacity: 0.8,\r\n // fillOpacity: 1,\r\n // // draggable: true,\r\n // clickable: false,\r\n // editable: false,\r\n // marker: null,\r\n // geodesic: true\r\n // });\r\n\r\n // this._shadowPoly.setMap(this._map);\r\n}\r\n\r\nMapShape.prototype.setMode = function (mode) {\r\n let oldMode = this._mode;\r\n this._mode = mode;\r\n\r\n switch (this._mode) { \r\n case 'free':\r\n this.updateHandles();\r\n break;\r\n\r\n case 'draw':\r\n this.updateHandles();\r\n this._setEdgeCentersVisible(true);\r\n // this._setDrawingLinesVisible(true);\r\n this._setAreaControlVisible(false);\r\n this._setHandleControlVisible(true, 0);\r\n this._setSelectedHandle(0);\r\n this._poly.setDraggable(false);\r\n \r\n break;\r\n\r\n case 'move':\r\n this.updateHandles();\r\n this._setEdgeCentersVisible(false);\r\n // this._setDrawingLinesVisible(false);\r\n this._setAreaControlVisible(true);\r\n\r\n // this._setHandleControlVisible(false);\r\n \r\n this._poly.setDraggable(true);\r\n this._setSelectedHandle(null);\r\n }\r\n\r\n this.dispatcher.dispatch('modechanged', mode);\r\n}\r\n\r\nMapShape.prototype.addCoordinate = function(latLng)\r\n{\r\n if (this._mode == 'draw') {\r\n let path = this._poly.getPath();\r\n \r\n if (this._editVertex !== null) {\r\n let insertAt = this._editVertex + 1;\r\n // console.log('Inserting at: ' + insertAt);\r\n path.insertAt(insertAt, latLng);\r\n\r\n this._setSelectedHandle(insertAt);\r\n this.dispatcher.dispatch('coordinateadded', path.getLength());\r\n }\r\n\r\n this.updateHandles();\r\n }\r\n}\r\n\r\nMapShape.prototype.getSegmentPairs = function() {\r\n let path = this._poly.getPath();\r\n const pairs = [];\r\n\r\n path.forEach((pathLatLng, idx) => {\r\n let pair = [pathLatLng, path.getAt(idx + 1)];\r\n if (pair[1] === undefined) {\r\n if (this._type == 'distance') {\r\n return;\r\n }\r\n\r\n pair[1] = path.getAt(0);\r\n }\r\n \r\n pairs.push(pair);\r\n });\r\n\r\n return pairs;\r\n}\r\n\r\nMapShape.prototype.getSegmentLengths = function() { \r\n return this.getSegmentPairs().map(pair => google.maps.geometry.spherical.computeLength(pair));\r\n}\r\n\r\nMapShape.prototype.getPoly = function()\r\n{\r\n return this._poly;\r\n}\r\n\r\nMapShape.prototype.getCenter = function()\r\n{\r\n return this.getBounds().getCenter();\r\n}\r\n\r\nMapShape.prototype.getBounds = function() {\r\n let bounds = new google.maps.LatLngBounds();\r\n let path = this._poly.getPath();\r\n\r\n path.forEach(function(latLng) {\r\n bounds.extend(latLng);\r\n });\r\n\r\n return bounds;\r\n}\r\n\r\nMapShape.prototype.delete = function()\r\n{\r\n this._edgeData.forEach((e) => {\r\n e.marker.setMap(null);\r\n delete e.marker;\r\n });\r\n\r\n this._markers.forEach((marker, key) => {\r\n marker.setMap(null);\r\n this._markers.delete(key);\r\n });\r\n\r\n // drawing line may have never been rendered, so we have to check for its existence\r\n if (this._drawingLine) {\r\n this._drawingLine.setMap(null);\r\n delete this._drawingLine;\r\n }\r\n\r\n // if (this._areaControlMarker) {\r\n // this._areaControlMarker.setMap(null);\r\n // delete this._areaControlMarker;\r\n // }\r\n\r\n if (this._handleControlMarker) {\r\n this._handleControlMarker.setMap(null);\r\n delete this._handleControlMarker;\r\n }\r\n\r\n if (this._handleControlOverlay) {\r\n this._setHandleControlVisible(false);\r\n }\r\n\r\n if (this._shapeControlOverlay) {\r\n this._setAreaControlVisible(false);\r\n delete this._shapeControlOverlay;\r\n }\r\n\r\n // remove segment measurements\r\n this._deletePathSegmentText();\r\n\r\n this._poly.setMap(null);\r\n delete this._poly;\r\n}\r\n\r\nMapShape.prototype._refreshPolyOptions = function() {\r\n let state = 'normal';\r\n let options;\r\n\r\n if (this._selected) state = 'selected'; \r\n options = this._styleMgr.get('shape', state);\r\n\r\n if (this._cutout) options = {...options, ...this._styleMgr.get('shape', 'cutout') };\r\n if (this._highlighted) options = {...options, ...this._styleMgr.get('shape', 'highlighted')};\r\n \r\n this._poly.setOptions(options);\r\n}\r\n\r\nMapShape.prototype.setHighlighted = function(highlight)\r\n{\r\n this._highlighted = (highlight !== false);\r\n this._refreshPolyOptions();\r\n}\r\n\r\nMapShape.prototype.setSelected = function(selected)\r\n{\r\n // if (this._selected && this._handleControlMarker && this._handleControlMarker.getVisible()) {\r\n // this._setSelectedHandle(false);\r\n // return;\r\n // }\r\n\r\n store.dispatch('increaseGlobalZIndex'); \r\n this._poly.setOptions({\r\n zIndex: store.state.globalZIndex\r\n });\r\n\r\n this._selected = (selected !== false) ? true : false;\r\n // this._setDrawingLinesVisible(this._selected);\r\n this._setAreaControlVisible(this._selected);\r\n\r\n this._refreshPolyOptions();\r\n this._setSelectedHandle(null);\r\n this.updateHandles();\r\n\r\n this.dispatcher.dispatch('updated', this);\r\n}\r\n\r\nMapShape.prototype.resetOptions = function()\r\n{\r\n let options = (this._selected) ? this._styleMgr.get('shape','selected') : this._styleMgr.get('shape');\r\n this._poly.setOptions(options);\r\n}\r\n\r\nexport {\r\n MapShape\r\n}\r\n","function webpackEmptyContext(req) {\n\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\te.code = 'MODULE_NOT_FOUND';\n\tthrow e;\n}\nwebpackEmptyContext.keys = function() { return []; };\nwebpackEmptyContext.resolve = webpackEmptyContext;\nmodule.exports = webpackEmptyContext;\nwebpackEmptyContext.id = \"be5e\";","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchCounter.vue?vue&type=style&index=0&id=0f40922e&scoped=true&lang=css&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserAvatar.vue?vue&type=style&index=0&id=37dae5f9&scoped=true&lang=css&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AffiliateModal.vue?vue&type=style&index=0&lang=css&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SaveModal.vue?vue&type=style&index=0&lang=css&\"","export default {\r\n normal: {\r\n handles: {\r\n draggable: false, \r\n icon: {\r\n // path: google.maps.SymbolPath.CIRCLE,\r\n path: 'M1,1,L6,1Z',\r\n anchor: new google.maps.Point(3, 1),\r\n scale: 5,\r\n strokeColor: '#000'\r\n }\r\n }, \r\n startHandles: {\r\n clickable: false,\r\n draggable: false,\r\n icon: {\r\n path: 'M12,2L4.5,20.29L5.21,21L12,18L18.79,21L19.5,20.29L12,2Z', \r\n anchor: new google.maps.Point(12, 20),\r\n scale: 1, \r\n fillOpacity: 1,\r\n fillColor: '#C8DF52',\r\n strokeColor: '#C8DF52'\r\n }\r\n },\r\n endHandles: {\r\n clickable: false,\r\n draggable: false, \r\n icon: {\r\n path: 'M12,2L4.5,20.29L5.21,21L12,18L18.79,21L19.5,20.29L12,2Z',\r\n anchor: new google.maps.Point(12, 20),\r\n scale: 1, \r\n fillOpacity: 1,\r\n fillColor: '#C8DF52',\r\n strokeColor: '#C8DF52'\r\n }\r\n },\r\n centerMarkers: {\r\n icon: {\r\n url: edgeAddCoordIcon,\r\n anchor: new google.maps.Point(10, 10),\r\n scaledSize: new google.maps.Size(20, 20)\r\n }\r\n },\r\n shape: {\r\n strokeColor: '#C8DF52',\r\n // draggable: true,\r\n clickable: false, \r\n geodesic: true,\r\n strokeWeight: 3,\r\n fillColor: '#C8DF52 ',\r\n editable: false\r\n } \r\n },\r\n selected: {\r\n handles: {\r\n draggable: true,\r\n clickable: true,\r\n cursor: 'pointer',\r\n icon: {\r\n // path: google.maps.SymbolPath.CIRCLE,\r\n path: 'M1,1,L6,1Z',\r\n anchor: new google.maps.Point(3, 1),\r\n scale: 5,\r\n fillColor: '#fff',\r\n strokeColor: '#fff'\r\n }\r\n },\r\n startHandles: {\r\n draggable: true,\r\n clickable: true,\r\n cursor: 'pointer',\r\n icon: {\r\n path: 'M12,2L4.5,20.29L5.21,21L12,18L18.79,21L19.5,20.29L12,2Z', \r\n scale: 1, \r\n fillOpacity: 1,\r\n fillColor: '#fff',\r\n strokeColor: '#fff',\r\n anchor: new google.maps.Point(12, 20)\r\n }\r\n },\r\n endHandles: {\r\n clickable: true,\r\n draggable: true,\r\n cursor: 'pointer',\r\n icon: {\r\n path: 'M12,2L4.5,20.29L5.21,21L12,18L18.79,21L19.5,20.29L12,2Z',\r\n anchor: new google.maps.Point(12, 20),\r\n scale: 1, \r\n fillOpacity: 1,\r\n fillColor: '#fff',\r\n strokeColor: '#fff' \r\n }\r\n },\r\n shape: { \r\n strokeWeight: 5,\r\n strokeColor: '#C8DF52',\r\n fillColor: '#C8DF52'\r\n }\r\n },\r\n highlighted: {\r\n centerMarkers: {\r\n icon: {\r\n scaledSize: new google.maps.Size(20, 20),\r\n anchor: new google.maps.Point(10, 10),\r\n url: edgeAddCoordIcon\r\n }\r\n },\r\n shape: { \r\n strokeWeight: 5\r\n }\r\n }\r\n}","/* Distance.js */\r\nimport { MapShape } from './MapShape';\r\nimport { defaultsDeep, has } from 'lodash';\r\n\r\nimport { startEndHandleZoomFormulas, midPointZoomFormulas } from '../constants';\r\n\r\nimport styles from './shape_styles/DistanceStyles';\r\nimport StyleManager from './shape_styles/StyleManager';\r\n\r\nimport store from '@/store/index.js'\r\n\r\nconst styleMgr = new StyleManager(styles);\r\n\r\nfunction checkNearLine(checkX, checkY, x0 , y0 , x1, y1, threshold = 5)\r\n{\r\n\tconst coords = [];\r\n const lineLow = (x0, y0, x1, y1) => {\r\n const dx = x1 - x0\r\n let dy = y1 - y0\r\n let yi = 1\r\n\r\n if (dy < 0) {\r\n yi = -1\r\n dy = -dy\r\n }\r\n\r\n let D = 2 * dy - dx\r\n let y = y0\r\n\r\n for (let x = x0; x < x1; x++) {\r\n \tcoords.push({x, y});\r\n\r\n if (D > 0) {\r\n y = y + yi\r\n D = D - 2 * dx\r\n }\r\n\r\n D = D + 2 * dy\r\n }\r\n }\r\n\r\n const lineHigh = (x0, y0, x1, y1) => {\r\n let dx = x1 - x0\r\n const dy = y1 - y0\r\n let xi = 1\r\n\r\n if (dx < 0) {\r\n xi = -1\r\n dx = -dx\r\n }\r\n\r\n let D = 2 * dx - dy\r\n let x = x0\r\n\r\n for (let y = y0; y < y1; y++) {\r\n coords.push({x, y});\r\n\r\n if (D > 0) {\r\n x = x + xi\r\n D = D - 2 * dy\r\n }\r\n\r\n D = D + 2 * dx\r\n }\r\n }\r\n\r\n const { abs } = Math\r\n\r\n if (abs(y1 - y0) < abs(x1 - x0)) {\r\n if (x0 > x1) {\r\n lineLow(x1, y1, x0, y0)\r\n } else {\r\n lineLow(x0, y0, x1, y1)\r\n }\r\n } else {\r\n if (y0 > y1) {\r\n lineHigh(x1, y1, x0, y0)\r\n } else {\r\n lineHigh(x0, y0, x1, y1)\r\n }\r\n }\r\n \r\n return (coords.filter(coord => {\r\n \tconst xMatch = (checkX >= (coord.x - threshold) && checkX <= (coord.x + threshold));\r\n const yMatch = (checkY >= (coord.y - threshold) && checkY <= (coord.y + threshold));\r\n \r\n return (xMatch && yMatch);\r\n }).length > 0);\r\n}\r\n\r\nfunction Distance(map, params) {\r\n defaultsDeep(params, {\r\n indexID: new Date().getTime(),\r\n labelText: '',\r\n highlighted: false,\r\n distanceVisible: true,\r\n cutout: false,\r\n paths: null,\r\n selected: false,\r\n selectedHandleIdx: null, \r\n mode: null,\r\n alwaysDisplayHandles: true, \r\n styleMgr,\r\n initialZoom: null\r\n });\r\n\r\n this._type = 'distance'; \r\n this._poly = new google.maps.Polyline({\r\n path: params.paths\r\n });\r\n \r\n this._poly.setOptions(params.styleMgr.get('shape')); \r\n MapShape.call(this, map, params);\r\n}\r\n\r\nDistance.prototype = Object.create(MapShape.prototype);\r\nDistance.prototype.constructor = Distance;\r\n\r\nDistance.prototype.getState = function() {\r\n let state = {\r\n type: this.getType(),\r\n labelText: this.getLabelText(),\r\n paths: this._poly.getPath().getArray().reduce((accum, val) => {\r\n accum.push(val.toJSON());\r\n return accum;\r\n }, []),\r\n cutout: this._cutout,\r\n distanceVisible: this._distanceVisible,\r\n selected: this._selected,\r\n highlighted: this._highlighted, \r\n indexID: this.indexID, \r\n calculated: this.getCalculated(),\r\n segmentLengths: this.getSegmentLengths(),\r\n initialZoom: this._initialZoom\r\n } \r\n \r\n return state;\r\n}\r\n\r\nDistance.prototype._handleMapZoomChange = function(newZoom) {\r\n MapShape.prototype._handleMapZoomChange.call(this, newZoom);\r\n}\r\n\r\nDistance.prototype._getHandleAnchor = function({ start=false, end=false }) {\r\n if (start || end) {\r\n let anchors = {\r\n 22: [12, 3],\r\n 21: [12, 3],\r\n 20: [12, 3],\r\n 19: [12, 3],\r\n 18: [12, 3],\r\n 17: [12, 3]\r\n }\r\n\r\n return (anchors[this._zoom]) ? new google.maps.Point(...anchors[this._zoom]) : ((this._zoom <= 17) ? new google.maps.Point(...anchors[19]) : new google.maps.Point(...anchors[17]));\r\n }\r\n \r\n return null;\r\n}\r\n\r\nDistance.prototype._getHandleZoom = function({ start, end }) { \r\n const formulas = (start || end) ? startEndHandleZoomFormulas : midPointZoomFormulas;\r\n // console.log('initial zoom: ', this._initialZoom, 'new zoom: ', this._zoom, 'difference: ', this._initialZoom - this._zoom); \r\n const size = formulas[this._initialZoom](this._zoom);\r\n\r\n return (size < .1) ? .1 : size;\r\n}\r\n\r\nDistance.prototype._customGetHandleVisibility = function(idx) { \r\n if ((store.state.mode == 'draw' || store.state.mode == 'free') && store.getters.currentShape.indexID != this.indexID) return false;\r\n if (this._distanceVisible || this._mode == 'draw') {\r\n return true;\r\n }\r\n \r\n if (idx == 0 || idx == this.getPathVertexCount() - 1) { \r\n return true;\r\n }\r\n \r\n return false;\r\n}\r\n\r\nDistance.prototype._customGetHandleRotation = function(idx, { start, end } = {}) { \r\n const path = (path || this._poly.getPath());\r\n const vertexCount = this.getPathVertexCount();\r\n \r\n const getPrev = () => {\r\n let fromIdx = idx - 1;\r\n let toIdx = idx;\r\n \r\n if (start) {\r\n fromIdx = 0;\r\n toIdx = 1;\r\n }\r\n \r\n return this._getAngle(path.getAt(fromIdx), path.getAt(toIdx)) + ((end) ? 180 : 0); \r\n }\r\n\r\n const getNext = () => {\r\n let fromIdx = idx;\r\n let toIdx = idx + 1;\r\n \r\n if (end) {\r\n fromIdx = vertexCount - 2;\r\n toIdx = vertexCount - 1;\r\n }\r\n \r\n return this._getAngle(path.getAt(fromIdx), path.getAt(toIdx)) + ((end) ? 180 : 0); \r\n }\r\n\r\n \r\n const prevAngle = getPrev();\r\n const nextAngle = getNext();\r\n \r\n let finalAngle = (prevAngle != nextAngle) ? (prevAngle + nextAngle) / 2 : prevAngle;\r\n \r\n const diff = Math.abs(prevAngle - nextAngle % 360);\r\n // console.log('angle: ', diff);\r\n if(!(start || end) && (diff / 360) > .25) {\r\n finalAngle += 90;\r\n }\r\n\r\n return finalAngle;\r\n}\r\n\r\nDistance.prototype.updateFromState = function(state, force = false) {\r\n // console.log(state);\r\n let curState = this.getState();\r\n \r\n if (force || (JSON.stringify(curState) != JSON.stringify(state))) {\r\n if (force || state.selected != this._selected) this.setSelected(state.selected);\r\n if (force || state.highlighted != this._highlighted) this.setHighlighted(state.highlighted);\r\n if (force || state.cutout != this._cutout) this.setCutOut(state.cutout);\r\n if (force || state.distanceVisible != this._distanceVisible) this.setDistanceVisible(state.distanceVisible);\r\n if (force || state.labelText != curState.labelText) this.setLabelText(state.labelText);\r\n if (force || state.calculated != curState.calculated) this.dispatcher.dispatch('updated', this);\r\n \r\n\r\n this._updatePathFromArray(state.paths); \r\n }\r\n}\r\n\r\nDistance.prototype.getCalculated = function() { \r\n let area = google.maps.geometry.spherical.computeLength(this.getPoly().getPath()); \r\n return (this._cutout) ? -Math.abs(area) : Math.abs(area);\r\n}\r\n\r\nDistance.prototype.isLatLngClickMatch = function(latLng) {\r\n let projection = this._map.overlay.getProjection();\r\n let path = this._poly.getPath();\r\n\r\n let {x: clickX, y: clickY} = projection.fromLatLngToContainerPixel(latLng);\r\n let match = false;\r\n\r\n path.forEach((pathLatLng, idx) => {\r\n if (!match) {\r\n let pair = [pathLatLng, path.getAt(idx + 1)];\r\n if (pair[1] === undefined) {\r\n if (this._type == 'distance') {\r\n return;\r\n }\r\n\r\n pair[1] = path.getAt(0);\r\n }\r\n\r\n let {x: startX, y: startY } = projection.fromLatLngToContainerPixel(pair[0]);\r\n let {x: endX, y: endY } = projection.fromLatLngToContainerPixel(pair[1]);\r\n // console.log('startx', startX, 'starty', startY)\r\n // console.log('endx', endX, 'endy', endY)\r\n // console.log('clickx', clickX, 'clicky', clickY);\r\n\r\n if (checkNearLine(clickX, clickY, startX, startY, endX, endY, 10)) {\r\n match = true;\r\n }\r\n }\r\n });\r\n \r\n return match;\r\n // return google.maps.geometry.poly.isLocationOnEdge(latLng, this.getPoly(), 10e-6);\r\n}\r\n\r\nexport {\r\n Distance\r\n}\r\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EstimateBanner.vue?vue&type=style&index=0&id=e8de3176&scoped=true&lang=css&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PartnerBanner.vue?vue&type=style&index=0&id=1e3d2eff&scoped=true&lang=css&\""],"sourceRoot":""}