{"version":3,"sources":["webpack:///./src/helpers/customer/index.ts","webpack:///./src/components/MapSideLegend.vue?738b","webpack:///./src/components/StageMap.vue?0a42","webpack:///./src/components/ui/ToggleButton.vue?c635","webpack:///./src/components/ui/ToggleButton.vue","webpack:///./src/components/ui/ToggleButton.vue?09e8","webpack:///./src/components/ui/LottrackrPoweredIcon.vue?1f04","webpack:///./src/components/ui/LottrackrPoweredIcon.vue","webpack:///./src/components/ui/LottrackrPoweredIcon.vue?c7e4","webpack:///./src/components/MapSideLegend.vue?b0e1","webpack:///./src/components/MapSideLegend.vue","webpack:///./src/components/MapSideLegend.vue?47a4","webpack:///./src/helpers/fileUpload.ts","webpack:///./src/views/lot/LotDocuments.vue?e9e4","webpack:///./src/components/ui/input/CheckboxInput.vue?3fc0","webpack:///./src/components/ui/input/CheckboxInput.vue","webpack:///./src/components/ui/input/CheckboxInput.vue?bcd1","webpack:///./node_modules/core-js/modules/es.array.reduce.js","webpack:///./src/views/profile/landowner/LandownerEstateUpdate.vue?7928","webpack:///./src/components/maps/EstateSvgMap.vue?f604","webpack:///./src/features/useIsDesktop.ts","webpack:///./src/helpers/heightAnimation.ts","webpack:///./src/helpers/downloadFile.ts","webpack:///./src/components/ui/modals/ConfirmDeleteModal.vue?34c2","webpack:///./src/components/ui/modals/ConfirmDeleteModal.vue","webpack:///./src/components/ui/modals/ConfirmDeleteModal.vue?25ca","webpack:///./src/components/maps/EstateSvgMap.vue?52b6","webpack:///./src/components/maps/EstateSvgMap.vue","webpack:///./src/components/maps/EstateSvgMap.vue?c230","webpack:///./src/components/Lot/LotButtonLink.vue?65ff","webpack:///./src/features/plural.ts","webpack:///./src/helpers/vuelidate.ts","webpack:///./src/components/ui/modals/ShareLotsModal.vue?32bf","webpack:///./src/enums/MapPages.ts","webpack:///./src/helpers/documents.ts","webpack:///./src/helpers/debounce.ts","webpack:///./src/components/ui/DocumentItem.vue?4d19","webpack:///./src/components/ui/DocumentItem.vue","webpack:///./src/components/ui/DocumentItem.vue?fa1f","webpack:///./src/components/StageNavMobile.vue?cdcf","webpack:///./src/components/StageNavMobile.vue","webpack:///./src/components/StageNavMobile.vue?0ba0","webpack:///./src/components/ui/modals/ConfirmDeleteModal.vue?8f89","webpack:///./src/components/ui/modals/ShareLotsModal.vue?705c","webpack:///./src/components/ui/modals/ShareLotsModal.vue","webpack:///./src/components/ui/modals/ShareLotsModal.vue?211a","webpack:///./src/views/DocumentsView.vue?8f42","webpack:///./src/views/DocumentsView.vue","webpack:///./src/views/DocumentsView.vue?de79","webpack:///./src/helpers/user.ts","webpack:///./src/components/ui/modals/CreateFolderModal.vue?2a30","webpack:///./src/components/ui/modals/CreateFolderModal.vue","webpack:///./src/components/ui/modals/CreateFolderModal.vue?8218","webpack:///./src/components/ui/InfoWithIcon.vue?16af","webpack:///./src/components/ui/InfoWithIcon.vue","webpack:///./src/components/ui/InfoWithIcon.vue?f01e","webpack:///./src/components/stage/StageButtonLink.vue?d4f1","webpack:///./node_modules/dayjs/dayjs.min.js","webpack:///./node_modules/core-js/internals/engine-is-node.js","webpack:///./src/components/ui/modals/RemoveDocumentModal.vue?2b90","webpack:///./src/components/ui/modals/RemoveDocumentModal.vue","webpack:///./src/components/ui/modals/RemoveDocumentModal.vue?f750","webpack:///./src/components/maps/StageSvgMap.vue?e403","webpack:///./src/helpers/zoom.ts","webpack:///./src/types/EventTracking.ts","webpack:///./src/helpers/regex.ts","webpack:///./src/helpers/estateMap/mapsZoom.ts","webpack:///./src/components/EstateMap.vue?7012","webpack:///./src/components/EstateMap.vue","webpack:///./src/components/EstateMap.vue?b017","webpack:///./src/helpers/cleavePlugin.ts","webpack:///./src/components/ui/modals/ImagePeviewModal.vue?84a2","webpack:///./src/components/ui/modals/ImagePeviewModal.vue","webpack:///./src/components/ui/modals/ImagePeviewModal.vue?60b4","webpack:///./src/components/Lot/LotButtonLink.vue?8bf9","webpack:///./src/components/Lot/LotButtonLink.vue","webpack:///./src/components/Lot/LotButtonLink.vue?27e7","webpack:///./src/helpers/lot/isLotOwner.ts","webpack:///./src/components/StageMap.vue?a1bd","webpack:///./src/components/StageMap.vue","webpack:///./src/components/StageMap.vue?17eb","webpack:///./src/helpers/date.ts","webpack:///./src/components/MapSidePanel.vue?f6d8","webpack:///./src/views/DocumentsView.vue?5005","webpack:///./src/components/ui/DocumentItem.vue?a155","webpack:///./src/helpers/googleAnalyticsEventTracking.ts","webpack:///./node_modules/core-js/internals/array-method-is-strict.js","webpack:///./src/components/ui/modals/RemoveDocumentModal.vue?de12","webpack:///./src/components/EstateMap.vue?c3b0","webpack:///./src/components/ui/InfoWithIcon.vue?acc9","webpack:///./src/components/ui/modals/CreateFolderModal.vue?b8e5","webpack:///./src/components/ui/modals/ImagePeviewModal.vue?5a3f","webpack:///./node_modules/hammerjs/hammer.js","webpack:///./src/views/lot/LotDocuments.vue?8063","webpack:///./src/views/lot/LotDocuments.vue","webpack:///./src/views/lot/LotDocuments.vue?6be0","webpack:///./src/components/StageNavMobile.vue?5d3f","webpack:///./src/components/maps/StageSvgMap.vue?dc8d","webpack:///./src/components/maps/StageSvgMap.vue","webpack:///./src/components/maps/StageSvgMap.vue?7564","webpack:///./node_modules/core-js/internals/array-reduce.js","webpack:///./src/views/profile/landowner/LandownerEstateUpdate.vue?1018","webpack:///./src/views/profile/landowner/LandownerEstateUpdate.vue","webpack:///./src/views/profile/landowner/LandownerEstateUpdate.vue?862c","webpack:///./src/components/ui/LottrackrPoweredIcon.vue?7c26","webpack:///./src/components/stage/StageButtonLink.vue?6f33","webpack:///./src/components/stage/StageButtonLink.vue","webpack:///./src/components/stage/StageButtonLink.vue?a29c","webpack:///./src/helpers/transformation/price.ts","webpack:///./src/components/MapSidePanel.vue?5b08","webpack:///./src/components/MapSidePanel.vue","webpack:///./src/components/MapSidePanel.vue?0da2"],"names":["cov_p3byxmdcv","actualCoverage","lotTabs","s","label","value","customerEoiStatuses","background","badgeLabel","badgeBackground","customerLotStatuses","customerStatuses","Map","eoiPendingStatuses","_customerStatuses$get","get","_customerStatuses$get2","_customerStatuses$get3","_customerStatuses$get4","_customerStatuses$get5","_customerStatuses$get6","_customerStatuses$get7","_customerStatuses$get8","eoiApprovingStatuses","_customerStatuses$get9","_customerStatuses$get10","isEoiPendingStatus","status","f","includes","isEoiApprovingStatus","getEoiPendingStatus","eoiStatus","statuses","Array","from","values","b","getStatusByLabel","getFinishedStatus","_customerStatuses$get11","_customerStatuses$get12","EoiStatus","WITHDRAWN","dynamicStatuses","_s$get","_s$get2","_s$get3","find","item","getValueByStatus","field","_getStatusByLabel","getTabByUrl","path","tab","getLotStatus","lotStatus","APPROVED","LotStatus","EOI","PENDING_FOR_BILLING","DRAFT","PENDING","TERMINATED","showingEoiDetailControls","complete","decline","delete","withdraw","CONTRACT_EXECUTED","UNCONDITIONAL","eoiStatusesHavingBackground","DECLINED","WAITING_FOR_APPROVED","REFUND_DECLINED","REFUNDED","WAITING_FOR_PENDING","_hoisted_1","render","_ctx","_cache","$props","$setup","$data","$options","_openBlock","_createElementBlock","class","_normalizeClass","toggleClass","_createElementVNode","disabled","labelBold","labelClass","labelHidden","_createTextVNode","_toDisplayString","type","modelValue","checked","onClick","toggleSelection","additionalClass","_defineComponent","__name","props","Boolean","String","required","emits","setup","__props","expose","__expose","emit","event","__returned__","Object","defineProperty","enumerable","__exports__","_withScopeId","n","_pushScopeId","_popScopeId","_hoisted_2","src","_imports_0","_hoisted_3","noBg","href","redirectTo","target","default","key","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","isEstateMap","role","UserRoles","CUSTOMER","_Fragment","_createCommentVNode","_createVNode","LANDOWNER","LottrackrPoweredIcon","cov_tf4ol8p5k","MaxFileSize","toast","useToast","validDocumentsTypes","validImagesTypes","isValidDocumentType","file","showErrorToast","name","toLowerCase","endsWith","error","isValidImageType","isPngType","isXlsxType","isValidFileSize","size","Math","floor","onChange","$event","$emit","partial","checkedPartial","$","$reduce","left","arrayMethodIsStrict","CHROME_VERSION","IS_NODE","CHROME_BUG","FORCED","proto","forced","reduce","callbackfn","length","arguments","this","undefined","cov_n0n339fv7","MIN_DESKTOP_WIDTH","useIsDesktop","width","isDesktop","ref","handler","window","innerWidth","onMounted","addEventListener","onUnmounted","removeEventListener","cov_ctgzdzb6m","defaultActiveClass","heightAnimation","element","activeClass","resized","style","height","scrollHeight","classList","toggle","contains","removeHeightOfSiblings","elements","activeElementIndex","filter","index","forEach","filteredItem","remove","cov_2mnot0gxd5","downloadFile","filename","estateId","store","dispatch","id","then","res","open","data","isImage","_createBlock","isOpen","onClose","close","onConfirm","confirm","title","_withCtx","description","text","deleteItem","isLeadsPage","_","Number","customText","computed","router","currentRoute","LotAssignmentModal","_directive_tippy","_resolveDirective","map","version","xmlns","viewBox","_normalizeStyle","transform","zoom","mapImage","url","_renderList","stages","stage","x","binding","y","onMouseover","_stage$stageId","onStageHover","stageId","_id","onMouseleave","onStageLeave","_withDirectives","getItemPathClasses","onStage","d","content","getTooltipText","allowHTML","theme","appendtTo","arrow","Function","EstateMapInterface","StageMapInterface","getStageStatusClass","StageStatus","plural","number","word","withNumber","cov_1quwmciphk","toLocaleLowerCase","firstChar","resetVuelidateErrors","validation","cov_1ppw6llr9b","setTimeout","$reset","MapPages","cov_1nyu2dnt4r","cov_1aof72amhs","imageFormats","getFileType","imgLink","split","pop","fileName","previewIcon","fileLink","image","require","getDocumentName","parts","debounce","fn","delay","cov_2irbpckthq","immediate","timeout","args","clearTimeout","openFile","link","_withModifiers","download","showImg","ImagePreviewModal","loading","isMapModalView","isBuilderView","getAvailableStages","getStageClass","viewType","mapPage","isEmbedded","useStore","NOW_SELLING","sort","a","_a$stageId","_b$stageId","compareStrings","getStages","isCustomer","changeView","_router$currentRoute$","query","STAGE_MAP","embed","toString","ESTATE_MAP","replace","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_19","_hoisted_20","_hoisted_21","_hoisted_22","classes","searchQuery","placeholder","loadingLots","selectedLots","lots","onLotRow","groupedSelectAllCheckboxList","groupedLotCheckboxList","selected","selectAll","rotated","activeStagesIndex","opened","ref_for","el","tableRefs","groupedLots","lot","idx","_$setup$groupedLotChe","_$setup$groupedLotChe2","_$setup$groupedLots$i","_$setup$groupedLotChe3","isDocumentExist","documents","lotId","selectLot","lotTitle","stageTitle","formatPrice","lotSize","lotPrice","send","leadIds","fileData","grouped","push","previousValue","currentValue","concat","watch","debounceSearch","unselectCheckboxes","getLots","params","AVAILABLE","stageIndex","section","finally","isSelected","selectedLotIndex","findIndex","lotsId","action","payload","lotIds","success","catch","lotDocuments","ETag","CheckboxInput","InputSearch","Modal","StageInterface","LotBasicInfoInterface","_imports_1","_hoisted_23","_hoisted_24","_hoisted_25","_hoisted_26","_hoisted_27","_hoisted_28","_hoisted_29","_hoisted_30","_hoisted_31","_hoisted_32","_hoisted_33","_hoisted_34","_hoisted_35","_hoisted_36","_hoisted_37","_hoisted_38","_hoisted_39","_hoisted_40","_hoisted_41","_hoisted_42","_hoisted_43","_hoisted_44","_hoisted_45","_hoisted_46","_hoisted_47","_hoisted_48","_hoisted_49","_hoisted_50","_hoisted_51","onBack","_vShow","folderPath","activeFolder","docs","folders","files","placement","control","dropdown","showCreateFolder","for","uploadFile","accept","documentTypes","folder","toFolder","Prefix","getFolderName","showDeleteFileModal","Link","Key","getFileName","formatDate","LastModified","shareFile","isOpenRemoveDocumentsModal","deleteFile","getRemoveDocumentType","fileForDelete","onUpdate","addFolder","showShareModal","fileToShare","meta","access","SUPER_ADMIN","state","user","selectedEstateId","fileInput","join","getFolder","slice","foldername","pathParts","splice","filePath","e","FormData","append","localeCompare","numeric","sensitivity","caseFirst","modifiedDate","DropDown","RemoveDocumentsModal","CreateFolderModal","ShareLotsModal","getFirstLastName","cov_1fefz040v6","firstName","lastName","getFullName","middleName","showClose","onSubmit","v$","$error","form","onBlur","$touch","_vModelText","trim","create","reactive","rules","useVuelidate","clear","$invalid","t","module","exports","r","i","u","o","h","c","l","M","weekdays","months","ordinal","m","v","z","utcOffset","abs","date","year","month","clone","add","ceil","p","w","D","ms","Q","g","S","O","locale","$L","utc","$u","$x","$offset","parse","prototype","$d","Date","NaN","test","match","substring","UTC","init","$y","getFullYear","$M","getMonth","$D","getDate","$W","getDay","$H","getHours","$m","getMinutes","$s","getSeconds","$ms","getMilliseconds","$utils","isValid","isSame","startOf","endOf","isAfter","isBefore","$g","set","unix","valueOf","getTime","toDate","apply","$locale","weekStart","$set","min","daysInMonth","round","subtract","format","invalidDate","meridiem","YY","YYYY","MM","MMM","monthsShort","MMMM","DD","dd","weekdaysMin","ddd","weekdaysShort","dddd","H","HH","hh","A","mm","ss","SSS","Z","getTimezoneOffset","diff","toJSON","toISOString","toUTCString","T","extend","$i","isDayjs","en","Ls","process","classof","_renderSlot","$slots","cov_18ozsp5kxz","startDragging","isDragging","svgContainerMap","svgStartPosition","svgStartScrollPosition","clientX","clientY","scrollLeft","scrollTop","cursor","handleDragging","preventDefault","deltaX","deltaY","stopDragging","cov_d3xgxtsno","EventActionName","EventByCategory","EventByAction","EventLabelByName","getRegex","string","cov_1f6uyvd7xm","RegExp","hasLowerCaseRegex","hasUpperCaseRegex","hasSpecialCharsRegex","hasDigitsRegex","latinCharactersRegex","pinchZoomHammer","scale","callback","cov_22gnuhhobc","currentScale","smoothingFactor","targetScale","smoothScale","minScale","maxScale","smoothedScale","max","deltaScale","builderView","toEditMap","showConfirmDeleteModal","toCreateMap","deleteMap","onOnStage","onChangeView","isEmbeddedDesktop","hoverStageId","lotsByHouseDesigns","hideOptions","hideMapSidePanelOptions","onOnStageHover","onSidePanelStageHover","onOnStageClick","onSidePanelStageClick","onOnRegister","onOnMessage","zoomIn","zoomOut","onMousedown","startDrag","onMousemove","handleDrag","onMouseup","stopDrag","onOnStageLeave","mobileLayoutWidth","plansView","businessId","userId","getEstateId","stageSidePanelHover","isCustomerRole","getMap","_error$response","_error$response$data","response","statusCode","resolve","_stage$stageId2","_stage$stageId3","_stageSidePanelHover$","_stageSidePanelHover$2","_stage$stageId4","_stage$stageId5","stageMap","_props$lotsByHouseDes2","_props$lotsByHouseDes","toUpperCase","availableLotsCount","mc","Hammer","enable","on","delta","center","ConfirmDeleteModal","StageNavMobile","MapSidePanel","MapSideLegend","EstateSvgMap","phoneNumberOption","phone","cov_290zsd572f","blocks","startsWith","delimiter","phonePlaceholder","getCurrencyOptions","numeral","numeralThousandsGroupStyle","numeralPositiveOnly","noImmediatePrefix","showContainer","alt","_$props$lot$lotId","_$props$lot$lotId$off","_$props$lot$lotId2","_$props$lot$lotId2$of","hoverLotId","expanded","onHover","onMouseLeave","hover","isBuildersEnabled","onBuilderHover","onBuilderLeave","getLotCustomerMapStatusClass","OFFLINE","offlineSale","salePhase","spacing","price","builderHover","builderIconRef","LotMapInterface","cov_19c0auloig","isLotOwner","ownershipId","currentUser","getUser","userDetails","SALES_PERSON","detailsId","landownerId","_$setup$lots$","_$setup$lots$2","handleMouseMove","availableLotsPopUpShow","toMasterplan","getAvailableLots","isStageMap","onOnLotHover","onSidePanelLotHover","onOnLotClick","onSidePanelLotClick","onToMasterplan","onOnLotBuilderHover","onLotBuilderHover","back","grab","getSvgTooltipText","getItemWrClasses","getSvgItemWrClasses","getSvgItemPathClasses","getItemStatusPathClasses","getSvgItemStatusPathClasses","onLotHover","onOnLotLeave","onLotLeave","handleLotClickIfClickable","actualStageQuote","lotOnClick","lotSidePanelHover","_lot$lotId","_lotSidePanelHover$va","_lotSidePanelHover$va2","_lot$lotId2","_lot$lotId3","isNotClickableForBuilderView","_lot$lotId4","_lotSidePanelHover$va3","_lot$lotId5","_lot$lotId6","_lot$lotId7","getClassForCustomer","getLotStatusClass","PRE_CONTRACT","onLot","some","design","_lot$lotId8","getMapWithLots","lotForModal","showAvailableLotsPopUp","trackLotClickEvent","_lot$lotId9","_lot$lotId11","_lot$lotId12","_lot$lotId13","_lot$lotId10","_lot$lotId10$offlineS","HOLD","eventTracking","actionsName","LOT_ON_CLICK","eventByCategory","ON_CLICK","eventLabelByName","CLICK_LOT","eventByAction","CLICK","estateById","stageById","lotById","nextTick","InfoWithIcon","LotInterface","StageSvgMap","cov_4tnu0h68q","dayjs","formatDateMonthYear","formatDateMonthDayYear","formatDateDayMonthYear","formatDateCalendar","formatDateDayMonthYearWithTime","formatDateYYYYMMDD","formatDateToday","cov_e9tsun9tw","useGtag","houseDesignId","houseDesignName","event_category","event_label","event_action","estate_id","stage_id","stage_title","lot_id","lot_title","house_design_id","house_design_name","fails","METHOD_NAME","argument","method","call","document","exportName","assign","VENDOR_PREFIXES","TEST_ELEMENT","createElement","TYPE_FUNCTION","now","setTimeoutContext","context","bindFn","invokeArrayArg","arg","isArray","each","obj","iterator","hasOwnProperty","deprecate","message","deprecationMessage","Error","stack","log","console","warn","TypeError","output","source","nextKey","dest","merge","keys","inherit","child","base","properties","childP","baseP","constructor","_super","boolOrFn","val","ifUndefined","val1","val2","addEventListeners","types","splitStr","removeEventListeners","hasParent","node","parent","parentNode","inStr","str","indexOf","inArray","findByKey","toArray","uniqueArray","results","prefixed","property","prefix","prop","camelProp","_uniqueId","uniqueId","getWindowForElement","doc","ownerDocument","defaultView","parentWindow","MOBILE_REGEX","SUPPORT_TOUCH","SUPPORT_POINTER_EVENTS","SUPPORT_ONLY_TOUCH","navigator","userAgent","INPUT_TYPE_TOUCH","INPUT_TYPE_PEN","INPUT_TYPE_MOUSE","INPUT_TYPE_KINECT","COMPUTE_INTERVAL","INPUT_START","INPUT_MOVE","INPUT_END","INPUT_CANCEL","DIRECTION_NONE","DIRECTION_LEFT","DIRECTION_RIGHT","DIRECTION_UP","DIRECTION_DOWN","DIRECTION_HORIZONTAL","DIRECTION_VERTICAL","DIRECTION_ALL","PROPS_XY","PROPS_CLIENT_XY","Input","manager","self","options","inputTarget","domHandler","ev","createInputInstance","Type","inputClass","PointerEventInput","TouchInput","TouchMouseInput","MouseInput","inputHandler","eventType","input","pointersLen","pointers","changedPointersLen","changedPointers","isFirst","isFinal","session","computeInputData","recognize","prevInput","pointersLength","firstInput","simpleCloneInputData","firstMultiple","offsetCenter","getCenter","timeStamp","deltaTime","angle","getAngle","distance","getDistance","computeDeltaXY","offsetDirection","getDirection","overallVelocity","getVelocity","overallVelocityX","overallVelocityY","getScale","rotation","getRotation","maxPointers","computeIntervalInputData","srcEvent","offset","offsetDelta","prevDelta","velocity","velocityX","velocityY","direction","last","lastInterval","p1","p2","sqrt","atan2","PI","start","end","evEl","evTarget","evWin","destroy","MOUSE_INPUT_MAP","mousedown","mousemove","mouseup","MOUSE_ELEMENT_EVENTS","MOUSE_WINDOW_EVENTS","pressed","button","which","pointerType","POINTER_INPUT_MAP","pointerdown","pointermove","pointerup","pointercancel","pointerout","IE10_POINTER_TYPE_ENUM","2","3","4","5","POINTER_ELEMENT_EVENTS","POINTER_WINDOW_EVENTS","pointerEvents","MSPointerEvent","PointerEvent","removePointer","eventTypeNormalized","isTouch","storeIndex","pointerId","SINGLE_TOUCH_INPUT_MAP","touchstart","touchmove","touchend","touchcancel","SINGLE_TOUCH_TARGET_EVENTS","SINGLE_TOUCH_WINDOW_EVENTS","SingleTouchInput","started","normalizeSingleTouches","all","touches","changed","changedTouches","TOUCH_INPUT_MAP","TOUCH_TARGET_EVENTS","targetIds","getTouches","allTouches","identifier","targetTouches","changedTargetTouches","touch","DEDUP_TIMEOUT","DEDUP_DISTANCE","mouse","primaryTouch","lastTouches","recordTouches","eventData","setLastTouch","lastTouch","lts","removeLastTouch","isSyntheticEvent","dx","dy","inputEvent","inputData","isMouse","sourceCapabilities","firesTouchEvents","PREFIXED_TOUCH_ACTION","NATIVE_TOUCH_ACTION","TOUCH_ACTION_COMPUTE","TOUCH_ACTION_AUTO","TOUCH_ACTION_MANIPULATION","TOUCH_ACTION_NONE","TOUCH_ACTION_PAN_X","TOUCH_ACTION_PAN_Y","TOUCH_ACTION_MAP","getTouchActionProps","TouchAction","cleanTouchActions","actions","hasPanX","hasPanY","touchMap","cssSupports","CSS","supports","compute","update","touchAction","recognizers","recognizer","getTouchAction","preventDefaults","prevented","hasNone","isTapPointer","isTapMovement","isTapTouchTime","preventSrc","STATE_POSSIBLE","STATE_BEGAN","STATE_CHANGED","STATE_ENDED","STATE_RECOGNIZED","STATE_CANCELLED","STATE_FAILED","Recognizer","defaults","simultaneous","requireFail","stateStr","directionStr","getRecognizerByNameIfManager","otherRecognizer","AttrRecognizer","PanRecognizer","pX","pY","PinchRecognizer","PressRecognizer","_timer","_input","RotateRecognizer","SwipeRecognizer","TapRecognizer","pTime","pCenter","count","preset","Manager","recognizeWith","dropRecognizeWith","requireFailure","dropRequireFailure","hasRequireFailures","canRecognizeWith","additionalEvent","tryEmit","canEmit","inputDataClone","reset","attrTest","optionPointers","isRecognized","threshold","directionTest","hasMoved","inOut","time","validPointers","validMovement","validTime","taps","interval","posThreshold","validTouchTime","failTimeout","validInterval","validMultiTap","tapCount","VERSION","domEvents","cssProps","userSelect","touchSelect","touchCallout","contentZooming","userDrag","tapHighlightColor","STOP","FORCED_STOP","handlers","oldCssProps","toggleCssProps","triggerDomEvent","gestureEvent","createEvent","initEvent","gesture","dispatchEvent","stop","force","stopped","curRecognizer","existing","events","off","Tap","Pan","Swipe","Pinch","Rotate","Press","freeGlobal","_$setup$docs","inner","canManageLot","DocumentTypeEnum","DOCUMENTS","uploadDocument","CONTRACTS","isContactsPage","openDocument","isLotContractsTab","deleteDocument","isAdmin","contracts","documentType","downloadDocument","DocumentItem","onLotClick","statusPath","aCallable","toObject","IndexedObject","lengthOfArrayLike","$TypeError","createMethod","IS_RIGHT","that","argumentsLength","memo","right","_hoisted_52","_hoisted_53","_hoisted_54","_hoisted_55","_hoisted_56","_hoisted_57","_hoisted_58","_hoisted_59","_hoisted_60","_hoisted_61","_hoisted_62","_hoisted_63","_hoisted_64","_hoisted_65","_hoisted_66","_hoisted_67","_$setup$estate","_component_router_link","_resolveComponent","logoPreview","estate","selectFile","logoTypes","iconColor","isAdminEdit","readonly","$errors","$message","email","shortTitle","maxlength","address","initDepositCondition","setDepositAndRefundable","isTrustAccountConnected","tooltipText","initDeposit","modelModifiers","initDepositOptions","hidePrice","isSuperAdmin","showInitialHold","showDocusign","showDontHaveSolicitorEOI","isRefundable","updateEstate","to","getUserRole","rawValueTrimPrefix","latinCharacters","helpers","regex","minValue","getMinDepositValue","maxLength","minLength","withMessage","$autoDirty","selectedFile","reader","FileReader","onload","readerEvent","result","readAsDataURL","logoUrl","lawyerId","async","isFormCorrect","$validate","normalizedForm","position","POSITION","TOP_LEFT","Cleave","ToggleButton","EstateInterface","lotsAvailableAmount","UiBasicStageInterface","cov_243ma3iy2q","showCurrency","_priceArray$0$toStrin","priceArray","formatStripePrice","lastTwo","substr","firstCharacter","formatPriceToNumber","parseFloat","formatPriceTrim","trimText","formatPorcentageTrim","porcentage","integerValue","decimalValue","porcentageParts","trimPorcentage","updatePriceInput","priceField","_$setup$actualStage$","_$setup$actualStage$$","_$setup$actualStage$2","_$setup$actualStage$3","_$setup$props$lotsByH","_$setup$actualStage$4","actualStage","lotData","onOnClick","lotsList","onStageClick","getLotsList","getLotsListFiltered","houseDesignIds","matchingLotData","LotMapsWithStageInterface","StageButtonLink","LotButtonLink"],"mappings":"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","file":"js/admin.b9cf3db8.js","sourcesContent":["import {CustomerLotStatus, LotStatusMap, LotStatusObject, LotTab,} from \"@/types/CustomerLotDetails\";\nimport {EoiStatus} from \"@/enums/EoiStatus\";\nimport {LotStatus} from \"@/enums/LotStatus\";\n\nexport const lotTabs: LotTab[] = [\n { label: \"ACTIVITY\", value: \"activity\" },\n { label: \"DOCUMENTS\", value: \"documents\" },\n { label: \"CONTRACT INFORMATION FORM\", value: \"eoi-details\" },\n { label: \"CONTRACT\", value: \"contracts\" },\n { label: \"CONTACT US\", value: \"estate-contacts\" },\n];\n\nconst customerEoiStatuses: [string, LotStatusObject][] = [\n [\n \"PENDING\",\n {\n label: \"Submitted\",\n value: \"pending\",\n background: \"success-light\",\n badgeLabel: \"Submitted\",\n },\n ],\n [\n \"DRAFT\",\n {\n label: \"Submitted\",\n value: \"draft\",\n background: \"gray\",\n badgeLabel: \"Draft\",\n },\n ],\n [\n \"PENDING_FOR_BILLING\",\n {\n label: \"Submitted\",\n value: \"pending for billing\",\n background: \"gray\",\n badgeLabel: \"Pending For Billing\",\n },\n ],\n [\n \"APPROVED\",\n {\n label: \"Approved\",\n value: \"approved\",\n background: \"light-blue\",\n badgeLabel: \"Approved\",\n },\n ],\n [\n \"DECLINED\",\n {\n label: \"Declined\",\n value: \"declined\",\n background: \"warning-light\",\n badgeLabel: \"Declined\",\n },\n ],\n [\n \"TERMINATED\",\n {\n label: \"Submitted\",\n value: \"terminated\",\n background: \"gray-light\",\n badgeLabel: \"Terminated\",\n },\n ],\n [\n \"WAITING_FOR_APPROVED\",\n {\n label: \"Submitted\",\n value: \"waitingForApproved\",\n background: \"primary\",\n badgeLabel: \"Submitted\",\n },\n ],\n [\n \"WAITING_FOR_DECLINED\",\n {\n label: \"Submitted\",\n value: \"waitingForDeclined\",\n background: \"warning-light\",\n badgeLabel: \"EOI Declining\",\n },\n ],\n [\n \"TRANSACTION_ERROR\",\n {\n label: \"Submitted\",\n value: \"transaction_error\",\n background: \"warning\",\n badgeLabel: \"Transaction Error\",\n badgeBackground: \"warning\",\n },\n ],\n [\n \"WAITING_FOR_PENDING\",\n {\n label: \"Submitted\",\n value: \"waitingForPending\",\n background: \"blue\",\n badgeLabel: \"EOI Submitting\",\n badgeBackground: \"blue\",\n },\n ],\n];\nconst customerLotStatuses: [string, LotStatusObject][] = [\n [\n \"CONTRACT_EXECUTED\",\n {\n label: \"Contract Executed\",\n value: \"Contract Executed\",\n background: \"orange-light\",\n badgeLabel: \"Contract Executed\",\n },\n ],\n [\n \"EOI\",\n {\n label: \"Contract Executed\",\n value: \"EOI\",\n background: \"\",\n badgeLabel: \"Approved\",\n },\n ],\n [\n \"UNCONDITIONAL\",\n {\n label: \"Finance Unconditional\",\n value: \"Unconditional\",\n background: \"primary\",\n badgeLabel: \"Finance Unconditional\",\n },\n ],\n [\n \"SETTLED\",\n {\n label: \"Settled\",\n value: \"Settled\",\n background: \"warning\",\n badgeLabel: \"Settled\",\n },\n ],\n [\n \"WITHDRAWN\",\n {\n label: \"Withdrawn\",\n value: \"withdrawn\",\n background: \"orange\",\n badgeLabel: \"Withdrawn\",\n },\n ],\n [\n \"REFUNDED\",\n {\n label: \"Deposit refunded\",\n value: \"refunded\",\n background: \"warning-light\",\n badgeLabel: \"Deposit refunded\",\n },\n ],\n [\n \"REFUND_DECLINED\",\n {\n label: \"Deposit not refunded\",\n value: \"refundDeclined\",\n background: \"warning-light\",\n badgeLabel: \"Deposit not refunded\",\n },\n ],\n];\nexport const customerStatuses = new Map([\n ...customerEoiStatuses,\n ...customerLotStatuses,\n]);\n\nexport const eoiPendingStatuses = [\n customerStatuses.get(\"PENDING\")?.value,\n customerStatuses.get(\"DRAFT\")?.value,\n customerStatuses.get(\"PENDING_FOR_BILLING\")?.value,\n customerStatuses.get(\"TERMINATED\")?.value,\n customerStatuses.get(\"WAITING_FOR_APPROVED\")?.value,\n customerStatuses.get(\"WAITING_FOR_DECLINED\")?.value,\n customerStatuses.get(\"TRANSACTION_ERROR\")?.value,\n customerStatuses.get(\"WAITING_FOR_PENDING\")?.value,\n];\nconst eoiApprovingStatuses = [\n customerStatuses.get(\"APPROVED\")?.value,\n customerStatuses.get(\"DECLINED\")?.value,\n];\nexport const isEoiPendingStatus = (status: CustomerLotStatus): boolean =>\n eoiPendingStatuses.includes(status);\nexport const isEoiApprovingStatus = (status: CustomerLotStatus): boolean =>\n eoiApprovingStatuses.includes(status);\n\nfunction getEoiPendingStatus(eoiStatus: CustomerLotStatus) {\n const statuses = Array.from(customerStatuses.values()) as LotStatusObject[];\n if (isEoiPendingStatus(eoiStatus)) {\n return getStatusByLabel(statuses, eoiStatus);\n } else {\n return customerStatuses.get(\"PENDING\");\n }\n}\nfunction getFinishedStatus(eoiStatus: EoiStatus) {\n if (eoiStatus === customerStatuses.get(\"REFUND_DECLINED\")?.value) {\n return customerStatuses.get(\"REFUND_DECLINED\");\n }\n if (eoiStatus === customerStatuses.get(\"REFUNDED\")?.value) {\n return customerStatuses.get(\"REFUNDED\");\n }\n if (eoiStatus === EoiStatus.WITHDRAWN) {\n return {\n background: \"gray\",\n badgeLabel: \"Refunded\",\n label: \"Refunded\",\n value: \"Settled\",\n };\n }\n return customerStatuses.get(\"SETTLED\");\n}\n\nexport function dynamicStatuses(\n status: CustomerLotStatus,\n eoiStatus: CustomerLotStatus\n): LotStatusObject[] {\n const s = customerStatuses as LotStatusMap;\n return [\n getEoiPendingStatus(eoiStatus),\n eoiStatus === s.get(\"DECLINED\")?.value\n ? s.get(\"DECLINED\")\n : s.get(\"APPROVED\"),\n status === s.get(\"EOI\")?.value ? s.get(\"EOI\") : s.get(\"CONTRACT_EXECUTED\"),\n eoiStatus === s.get(\"WITHDRAWN\")?.value\n ? customerStatuses.get(\"WITHDRAWN\")\n : s.get(\"UNCONDITIONAL\"),\n getFinishedStatus(eoiStatus as EoiStatus),\n ] as LotStatusObject[];\n}\n\nconst getStatusByLabel = (\n statuses: LotStatusObject[],\n status: CustomerLotStatus\n): LotStatusObject | undefined =>\n statuses.find((item) => item.value === status);\n\nexport function getValueByStatus(\n status: CustomerLotStatus,\n field: keyof LotStatusObject\n): string | undefined {\n const statuses = customerStatuses.values();\n return getStatusByLabel(Array.from(statuses) as LotStatusObject[], status)?.[\n field\n ];\n}\n\nexport function getTabByUrl(path: string): LotTab | undefined {\n return lotTabs.find((tab) => path.includes(tab.value));\n}\n\nexport function getLotStatus(\n eoiStatus: EoiStatus,\n lotStatus: LotStatus\n): LotStatus | EoiStatus {\n if (eoiStatus === EoiStatus.APPROVED) {\n if (lotStatus === LotStatus.EOI) {\n return EoiStatus.APPROVED;\n }\n return lotStatus;\n }\n return eoiStatus;\n}\n\nconst { PENDING_FOR_BILLING, DRAFT, PENDING, APPROVED, TERMINATED } = EoiStatus;\n\nexport function showingEoiDetailControls(\n eoiStatus: EoiStatus,\n lotStatus: LotStatus\n): {\n complete(): boolean;\n delete(): boolean;\n withdraw(): boolean;\n decline(): boolean;\n} {\n return {\n complete() {\n return [PENDING_FOR_BILLING, DRAFT].includes(eoiStatus as EoiStatus);\n },\n decline() {\n return [PENDING].includes(eoiStatus as EoiStatus);\n },\n delete() {\n return [PENDING_FOR_BILLING, DRAFT, TERMINATED].includes(\n eoiStatus as EoiStatus\n );\n },\n withdraw() {\n return (\n [APPROVED].includes(eoiStatus as EoiStatus) &&\n [\n LotStatus.EOI,\n LotStatus.CONTRACT_EXECUTED,\n LotStatus.UNCONDITIONAL,\n ].includes(lotStatus)\n );\n },\n };\n}\n\nexport const eoiStatusesHavingBackground = [\n EoiStatus.PENDING,\n EoiStatus.APPROVED,\n EoiStatus.DECLINED,\n EoiStatus.WAITING_FOR_APPROVED,\n EoiStatus.WITHDRAWN,\n EoiStatus.REFUND_DECLINED,\n EoiStatus.REFUNDED,\n EoiStatus.WAITING_FOR_PENDING,\n];\n","export * from \"-!../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js??ref--1-1!./MapSideLegend.vue?vue&type=style&index=0&id=2dca6308&lang=scss&scoped=true\"","export * from \"-!../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js??ref--1-1!./StageMap.vue?vue&type=style&index=0&id=ddcdb672&lang=scss&scoped=true\"","import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, createTextVNode as _createTextVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = [\"value\", \"checked\", \"disabled\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\"toggle-wr\", [$props.toggleClass]])\n }, [\n _createElementVNode(\"label\", {\n class: _normalizeClass([{ disabled: $props.disabled }, $props.labelBold, $props.labelClass, $props.labelHidden])\n }, [\n _createTextVNode(_toDisplayString($props.label), 1),\n _createElementVNode(\"input\", {\n type: \"checkbox\",\n value: $props.modelValue,\n checked: $props.modelValue,\n onClick: $setup.toggleSelection,\n disabled: $props.disabled\n }, null, 8, _hoisted_1),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"slider\", $props.additionalClass])\n }, null, 2)\n ], 2)\n ], 2))\n}","import { defineComponent as _defineComponent } from 'vue'\n\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'ToggleButton',\n props: {\n modelValue: Boolean,\n label: String,\n disabled: Boolean,\n additionalClass: [String, Array],\n labelBold: String,\n labelClass: { type: String, required: false },\n labelHidden: { type: String, required: false },\n toggleClass: { type: String, required: false },\n },\n emits: [\"update:modelValue\"],\n setup(__props, { expose: __expose, emit: emits }) {\n __expose();\n\nconst props = __props;\n\n \n \n\n const toggleSelection = (event: Event) => {\n emits(\"update:modelValue\", !props.modelValue);\n };\n\nconst __returned__ = { props, emits, toggleSelection }\nObject.defineProperty(__returned__, '__isScriptSetup', { enumerable: false, value: true })\nreturn __returned__\n}\n\n})","import { render } from \"./ToggleButton.vue?vue&type=template&id=59ba2580&ts=true&lang=pug\"\nimport script from \"./ToggleButton.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./ToggleButton.vue?vue&type=script&lang=ts&setup=true\"\n\nimport exportComponent from \"/codebuild/output/src264950160/src/lottrackr-front/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\nimport _imports_0 from '@/assets/icons/icon-powered-by.svg'\n\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-353aed0c\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = [\"href\"]\nconst _hoisted_2 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", {\n class: \"powered-img\",\n src: _imports_0\n}, null, -1))\nconst _hoisted_3 = [\n _hoisted_2\n]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"a\", {\n class: _normalizeClass([\"lottrackr-link-container\", { noBg: $setup.props.noBg }]),\n href: $setup.props.redirectTo,\n target: \"_blank\"\n }, _hoisted_3, 10, _hoisted_1))\n}","import { defineComponent as _defineComponent } from 'vue'\n\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'LottrackrPoweredIcon',\n props: {\n redirectTo: {\n type: String,\n required: false,\n default: 'https://www.lottrackr.com.au/',\n },\n noBg: {\n type: Boolean,\n required: false,\n },\n },\n setup(__props, { expose: __expose }) {\n __expose();\n\nconst props = __props;\n\n \n\nconst __returned__ = { props }\nObject.defineProperty(__returned__, '__isScriptSetup', { enumerable: false, value: true })\nreturn __returned__\n}\n\n})","import { render } from \"./LottrackrPoweredIcon.vue?vue&type=template&id=353aed0c&scoped=true&ts=true&lang=pug\"\nimport script from \"./LottrackrPoweredIcon.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./LottrackrPoweredIcon.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./LottrackrPoweredIcon.vue?vue&type=style&index=0&id=353aed0c&lang=scss&scoped=true\"\n\nimport exportComponent from \"/codebuild/output/src264950160/src/lottrackr-front/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-353aed0c\"]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, Fragment as _Fragment, createVNode as _createVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-2dca6308\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"side-legend-container\" }\nconst _hoisted_2 = { class: \"side-legend-wr\" }\nconst _hoisted_3 = {\n key: 0,\n class: \"legend column\"\n}\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"status side-panel gray\" }, \"Not Released\", -1))\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"status side-panel success\" }, \"Now Selling\", -1))\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"status side-panel warning\" }, \"Sold Out\", -1))\nconst _hoisted_7 = [\n _hoisted_4,\n _hoisted_5,\n _hoisted_6\n]\nconst _hoisted_8 = {\n key: 1,\n class: \"legend column\"\n}\nconst _hoisted_9 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"status side-panel gray\" }, \"Not Released\", -1))\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"status side-panel success\" }, \"Available\", -1))\nconst _hoisted_11 = { class: \"status side-panel yellow\" }\nconst _hoisted_12 = { class: \"status side-panel warning\" }\nconst _hoisted_13 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"status side-panel\" }, \"Unconditional\", -1))\nconst _hoisted_14 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"status side-panel orange\" }, \"Option\", -1))\nconst _hoisted_15 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"status side-panel gray-middle\" }, \"Offline\", -1))\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n ($setup.props.isEstateMap)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, _hoisted_7))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [\n _hoisted_9,\n _hoisted_10,\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"status side-panel\", $setup.props.role === $setup.UserRoles.CUSTOMER ? 'light-blue' : 'blue'])\n }, _toDisplayString($setup.props.role === $setup.UserRoles.CUSTOMER ? \"Hold\" : \"Pre-Contract\"), 3),\n _createElementVNode(\"div\", _hoisted_11, _toDisplayString($setup.props.role === $setup.UserRoles.CUSTOMER ? \"Under Contract\" : \"Contract Executed\"), 1),\n _createElementVNode(\"div\", _hoisted_12, _toDisplayString($setup.props.role === $setup.UserRoles.CUSTOMER ? \"Sold\" : \"Settled\"), 1),\n ($setup.props.role !== $setup.UserRoles.CUSTOMER)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 0 }, [\n _hoisted_13,\n _hoisted_14,\n _hoisted_15\n ], 64))\n : _createCommentVNode(\"\", true)\n ])),\n _createVNode($setup[\"LottrackrPoweredIcon\"], { class: \"side-legend-link\" })\n ])\n ]))\n}","import { defineComponent as _defineComponent } from 'vue'\nimport { UserRoles } from \"@/enums/UserRoles\";\n \n import LottrackrPoweredIcon from \"./ui/LottrackrPoweredIcon.vue\";\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'MapSideLegend',\n props: {\n isEstateMap: Boolean,\n role: { type: String, default: () => UserRoles.LANDOWNER },\n },\n setup(__props, { expose: __expose }) {\n __expose();\n\nconst props = __props;\n\n \n\nconst __returned__ = { props, get UserRoles() { return UserRoles }, LottrackrPoweredIcon }\nObject.defineProperty(__returned__, '__isScriptSetup', { enumerable: false, value: true })\nreturn __returned__\n}\n\n})","import { render } from \"./MapSideLegend.vue?vue&type=template&id=2dca6308&scoped=true&ts=true&lang=pug\"\nimport script from \"./MapSideLegend.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./MapSideLegend.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./MapSideLegend.vue?vue&type=style&index=0&id=2dca6308&lang=scss&scoped=true\"\n\nimport exportComponent from \"/codebuild/output/src264950160/src/lottrackr-front/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-2dca6308\"]])\n\nexport default __exports__","import { useToast } from \"vue-toastification\";\n\nexport const MaxFileSize = 26214400;\nconst toast = useToast();\nexport const validDocumentsTypes = [\n \"image/png\",\n \"image/jpeg\",\n \"image/heic\",\n \"image/heif\",\n \".heic\",\n \"application/pdf\",\n];\nexport const validImagesTypes = [\n \"image/png\",\n \"image/jpeg\",\n \"image/heic\",\n \"image/heif\",\n \".heic\",\n];\n\nexport function isValidDocumentType(file: File, showErrorToast = true) {\n if (\n !validDocumentsTypes.includes(file.type) &&\n !file.name.toLowerCase().endsWith(\".heic\")\n ) {\n if (showErrorToast) {\n toast.error(\"Only png, jpg, jpeg, heic, pdf files allowed\");\n }\n return false;\n }\n return true;\n}\nexport function isValidImageType(file: File, showErrorToast = true) {\n if (\n !validImagesTypes.includes(file.type) &&\n !file.name.toLowerCase().endsWith(\".heic\")\n ) {\n if (showErrorToast) {\n toast.error(\"Only png, jpg, jpeg, heic files allowed\");\n }\n return false;\n }\n return true;\n}\nexport function isPngType(file: File, showErrorToast = true) {\n if (file.type !== \"image/png\") {\n if (showErrorToast) {\n toast.error(\"Only png files allowed\");\n }\n return false;\n }\n return true;\n}\nexport function isXlsxType(file: File, showErrorToast = true) {\n if (\n file.type !==\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\"\n ) {\n if (showErrorToast) {\n toast.error(\"Only xlsx files allowed\");\n }\n return false;\n }\n return true;\n}\nexport function isValidFileSize(file: File, showErrorToast = true) {\n if (file.size > MaxFileSize) {\n if (showErrorToast) {\n toast.error(\n `File size should not exceed ${Math.floor(\n MaxFileSize / 1024 / 1024\n )} MB`\n );\n }\n return false;\n }\n return true;\n}\n","export * from \"-!../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js??ref--1-1!./LotDocuments.vue?vue&type=style&index=0&id=2ec46dab&lang=scss&scoped=true\"","import { createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"checkbox-wr\" }\nconst _hoisted_2 = [\"value\", \"checked\", \"disabled\"]\nconst _hoisted_3 = {\n key: 0,\n class: \"label\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"label\", {\n class: _normalizeClass({ disabled: $props.disabled })\n }, [\n _createElementVNode(\"input\", {\n type: \"checkbox\",\n value: $props.modelValue,\n checked: $props.modelValue,\n onChange: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$emit('update:modelValue', !$props.modelValue))),\n disabled: $props.disabled\n }, null, 40, _hoisted_2),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"box\", { partial: $props.checkedPartial }])\n }, null, 2),\n ($props.label)\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_3, _toDisplayString($props.label), 1))\n : _createCommentVNode(\"\", true)\n ], 2)\n ]))\n}","import { defineComponent as _defineComponent } from 'vue'\n\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'CheckboxInput',\n props: {\n modelValue: Boolean,\n label: String,\n disabled: Boolean,\n checkedPartial: Boolean,\n},\n emits: [\"update:modelValue\"],\n setup(__props, { expose: __expose, emit: emits }) {\n __expose();\n\nconst props = __props;\n\n\n\n\nconst __returned__ = { props, emits }\nObject.defineProperty(__returned__, '__isScriptSetup', { enumerable: false, value: true })\nreturn __returned__\n}\n\n})","import { render } from \"./CheckboxInput.vue?vue&type=template&id=1d6c41a5&ts=true&lang=pug\"\nimport script from \"./CheckboxInput.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./CheckboxInput.vue?vue&type=script&lang=ts&setup=true\"\n\nimport exportComponent from \"/codebuild/output/src264950160/src/lottrackr-front/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","'use strict';\nvar $ = require('../internals/export');\nvar $reduce = require('../internals/array-reduce').left;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar CHROME_VERSION = require('../internals/engine-v8-version');\nvar IS_NODE = require('../internals/engine-is-node');\n\n// Chrome 80-82 has a critical bug\n// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982\nvar CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83;\nvar FORCED = CHROME_BUG || !arrayMethodIsStrict('reduce');\n\n// `Array.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-array.prototype.reduce\n$({ target: 'Array', proto: true, forced: FORCED }, {\n reduce: function reduce(callbackfn /* , initialValue */) {\n var length = arguments.length;\n return $reduce(this, callbackfn, length, length > 1 ? arguments[1] : undefined);\n }\n});\n","export * from \"-!../../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js??ref--1-1!./LandownerEstateUpdate.vue?vue&type=style&index=0&id=11692e3c&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js??ref--1-1!./EstateSvgMap.vue?vue&type=style&index=0&id=27bfa0f9&lang=scss&scoped=true\"","import { ref, onMounted, onUnmounted, Ref } from \"vue\";\n\nconst MIN_DESKTOP_WIDTH = 992;\n\nexport function useIsDesktop(width = MIN_DESKTOP_WIDTH): {\n isDesktop: Ref;\n} {\n const isDesktop = ref(true);\n const handler = () => {\n isDesktop.value = window.innerWidth >= width;\n };\n\n onMounted(() => {\n handler();\n window.addEventListener(\"resize\", handler);\n });\n\n onUnmounted(() => {\n window.removeEventListener(\"resize\", handler);\n });\n\n return { isDesktop };\n}\n","const defaultActiveClass = \"opened\";\n\nexport function heightAnimation(element: HTMLElement, activeClass= defaultActiveClass, resized=false) {\n element.style.height = element.scrollHeight + \"px\";\n if (resized) {\n return\n }\n element.classList.toggle(activeClass);\n element.style.height = element.classList.contains(activeClass)\n ? element.scrollHeight + \"px\"\n : \"0\";\n}\nexport function removeHeightOfSiblings(elements: HTMLElement[], activeElementIndex: number, activeClass = defaultActiveClass) {\n elements\n .filter((item, index) => index !== activeElementIndex)\n .forEach((filteredItem) => {\n filteredItem.classList.remove(activeClass);\n filteredItem.style.height = \"0\";\n })\n}\n\n// use to define and animate hidden elements\n// styles example:\n// .html-element {\n// height: 0;\n// transition: height 0.3s;\n// overflow: hidden;\n// }\n// .html-element.opened {\n// height: auto;\n// }\n","import store from \"@/store\";\nimport { isImage } from \"./documents\";\n\nexport function downloadFile(filename: string, estateId = \"\"): void {\n if (estateId) {\n store\n .dispatch(\"estate/getEstateFile\", { id: estateId, filename })\n .then((res) => {\n open(filename, res.data);\n });\n } else {\n open(filename);\n }\n}\n\nfunction open(filename: string, src = \"\") {\n window.open(src || filename, isImage(filename) ? \"_self\" : \"_blank\");\n}\n","import { createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createTextVNode as _createTextVNode, withCtx as _withCtx, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-68a6733c\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"text-semi-bold\" }, \"Confirm action\", -1))\nconst _hoisted_2 = { class: \"text-semi-bold\" }\nconst _hoisted_3 = { key: 0 }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createBlock($setup[\"LotAssignmentModal\"], {\n \"is-open\": $props.isOpen,\n onClose: $setup.close,\n onConfirm: $setup.confirm\n }, {\n title: _withCtx(() => [\n _hoisted_1\n ]),\n description: _withCtx(() => [\n _createElementVNode(\"span\", null, _toDisplayString($setup.text) + \" \", 1),\n _createElementVNode(\"span\", _hoisted_2, _toDisplayString($props.deleteItem), 1),\n ($setup.isLeadsPage)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_3, \" \" + _toDisplayString($props.deleteItem > 1 ? \"leads\" : \"lead\"), 1))\n : _createCommentVNode(\"\", true),\n _createTextVNode(\"?\")\n ]),\n _: 1\n }, 8, [\"is-open\"]))\n}","import { defineComponent as _defineComponent } from 'vue'\nimport LotAssignmentModal from \"@/components/ui/modals/LotAssignmentModal.vue\";\nimport { computed } from \"vue\";\nimport router from \"@/router\";\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'ConfirmDeleteModal',\n props: {\n isOpen: {\n type: Boolean,\n required: true,\n },\n deleteItem: {\n type: [Number, String],\n },\n customText: {\n type: String,\n required: false,\n },\n},\n emits: [\"close\", \"confirm\"],\n setup(__props, { expose: __expose, emit: emits }) {\n __expose();\n\nconst props = __props;\n\n\n\n\nconst text = computed(() => {\n if (props.customText) {\n return props.customText;\n }\n return \"Are you sure you want to delete\";\n});\n\nconst isLeadsPage = computed(() => {\n return router.currentRoute.value.name === \"Leads\";\n});\n\nconst close = () => {\n emits(\"close\");\n};\n\nconst confirm = () => {\n emits(\"confirm\");\n emits(\"close\");\n};\n\n\nconst __returned__ = { emits, props, text, isLeadsPage, close, confirm, LotAssignmentModal, computed, get router() { return router } }\nObject.defineProperty(__returned__, '__isScriptSetup', { enumerable: false, value: true })\nreturn __returned__\n}\n\n})","import { render } from \"./ConfirmDeleteModal.vue?vue&type=template&id=68a6733c&scoped=true&ts=true&lang=pug\"\nimport script from \"./ConfirmDeleteModal.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./ConfirmDeleteModal.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./ConfirmDeleteModal.vue?vue&type=style&index=0&id=68a6733c&lang=scss&scoped=true\"\n\nimport exportComponent from \"/codebuild/output/src264950160/src/lottrackr-front/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-68a6733c\"]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, normalizeClass as _normalizeClass, resolveDirective as _resolveDirective, withDirectives as _withDirectives, normalizeStyle as _normalizeStyle, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-27bfa0f9\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = [\"viewBox\"]\nconst _hoisted_2 = [\"xlink:href\"]\nconst _hoisted_3 = [\"x\", \"y\", \"onMouseover\"]\nconst _hoisted_4 = { class: \"scale\" }\nconst _hoisted_5 = [\"onClick\", \"d\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _directive_tippy = _resolveDirective(\"tippy\")!\n\n return ($setup.props.map)\n ? (_openBlock(), _createElementBlock(\"svg\", {\n key: 0,\n class: \"svg-map-scale\",\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n \"xmlns:xlink\": \"http://www.w3.org/1999/xlink\",\n viewBox: `0 0 ${$setup.props.map.size.width} ${$setup.props.map.size.height}`,\n style: _normalizeStyle({ transform: 'scale(' + $setup.props.zoom + ')' })\n }, [\n _createElementVNode(\"image\", {\n \"xlink:href\": $setup.props.map.mapImage.url\n }, null, 8, _hoisted_2),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList($setup.props.stages, (stage) => {\n return (_openBlock(), _createElementBlock(\"svg\", {\n class: \"item-wr\",\n xmlns: \"http://www.w3.org/2000/svg\",\n \"xmlns:xlink\": \"http://www.w3.org/1999/xlink\",\n version: \"1.1\",\n x: stage.binding.x,\n y: stage.binding.y,\n onMouseover: ($event: any) => ($setup.onStageHover(stage?.stageId?._id)),\n onMouseleave: $setup.onStageLeave\n }, [\n _createElementVNode(\"g\", _hoisted_4, [\n _withDirectives(_createElementVNode(\"path\", {\n class: _normalizeClass([\"item-path\", $setup.props.getItemPathClasses(stage)]),\n onClick: ($event: any) => ($setup.onStage(stage)),\n d: stage.path\n }, null, 10, _hoisted_5), [\n [_directive_tippy, { content: $props.getTooltipText(stage), allowHTML: true, theme: 'map-tippy', appendtTo: 'element', arrow: false }]\n ])\n ])\n ], 40, _hoisted_3))\n }), 256))\n ], 12, _hoisted_1))\n : _createCommentVNode(\"\", true)\n}","import { defineComponent as _defineComponent } from 'vue'\n\n import { EstateMapInterface } from \"@/types/EstateMapInterface\";\n import { StageMapInterface } from \"@/types/StageInterface\";\n import { getStageStatusClass } from \"@/helpers/status\";\n import { StageStatus } from \"@/enums/StageStatus\";\n import { UserRoles } from \"@/enums/UserRoles\";\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'EstateSvgMap',\n props: {\n map: {},\n stages: {},\n zoom: {},\n getTooltipText: { type: Function },\n getItemPathClasses: { type: Function }\n },\n emits: [\"onStageHover\", \"onStageLeave\", \"onStageClick\"],\n setup(__props: any, { expose: __expose, emit: emits }) {\n __expose();\n\nconst props = __props;\n\n \n\n \n\n const onStageHover = (id: string) => {\n emits(\"onStageHover\", id);\n };\n\n const onStageLeave = () => {\n emits(\"onStageLeave\");\n };\n\n const onStage = (stage: StageMapInterface) => {\n emits(\"onStageClick\", stage);\n };\n\nconst __returned__ = { props, emits, onStageHover, onStageLeave, onStage, get EstateMapInterface() { return EstateMapInterface }, get StageMapInterface() { return StageMapInterface }, get getStageStatusClass() { return getStageStatusClass }, get StageStatus() { return StageStatus }, get UserRoles() { return UserRoles } }\nObject.defineProperty(__returned__, '__isScriptSetup', { enumerable: false, value: true })\nreturn __returned__\n}\n\n})","import { render } from \"./EstateSvgMap.vue?vue&type=template&id=27bfa0f9&scoped=true&ts=true&lang=pug\"\nimport script from \"./EstateSvgMap.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./EstateSvgMap.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./EstateSvgMap.vue?vue&type=style&index=0&id=27bfa0f9&lang=scss&scoped=true\"\n\nimport exportComponent from \"/codebuild/output/src264950160/src/lottrackr-front/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-27bfa0f9\"]])\n\nexport default __exports__","export * from \"-!../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js??ref--1-1!./LotButtonLink.vue?vue&type=style&index=0&id=5f491709&lang=scss&scoped=true\"","const plural = (number: number, word: string, withNumber = true): string => {\n if (word.toLocaleLowerCase() === \"this\") {\n const firstChar = word[0];\n return number > 1 ? `${firstChar}hese` : `${firstChar}his`;\n }\n if (!number) {\n return `0 ${word}s`;\n } else return `${withNumber ? number : \"\"} ${word}${number < 2 ? \"\" : \"s\"}`;\n};\n\nexport default plural;\n","import { Validation } from \"@vuelidate/core\";\nimport { Ref } from \"vue\";\n\nexport function resetVuelidateErrors(validation: Ref): void {\n setTimeout(() => {\n validation.value.$reset();\n });\n}\n","export * from \"-!../../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js??ref--1-1!./ShareLotsModal.vue?vue&type=style&index=0&id=2177a84a&lang=scss&scoped=true\"","export enum MapPages {\n ESTATE_MAP = \"EstateMap\",\n STAGE_MAP = \"StageMap\",\n STAGE_LIST = \"StageList\",\n}\n","const imageFormats = [\"jpg\", \"jpeg\", \"svg\", \"png\", \"gif\"];\n\nexport const getFileType = (imgLink: string): string | undefined => {\n if (!imgLink) {\n return undefined;\n } else return imgLink.split(\".\").pop();\n};\n\nexport const isImage = (fileName: string): boolean => {\n const type = getFileType(fileName);\n return type ? imageFormats.includes(type) : false;\n};\n\nexport const previewIcon = (fileLink: string, fileName = \"\"): string => {\n const image = isImage(fileName || fileLink);\n return image ? fileLink : require(`@/assets/icons/icon-pdf.svg`);\n};\n\nexport function getDocumentName(name: string) {\n const parts = name.split(\"/\");\n return parts[parts.length - 1];\n}\n","export const debounce = (fn: any, delay = 400, immediate = false) => {\n let timeout: number | undefined;\n return (...args: any[]) => {\n if (immediate && !timeout) fn(...args);\n clearTimeout(timeout);\n\n timeout = setTimeout(() => {\n fn(...args);\n }, delay);\n };\n};\n","import { createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, withModifiers as _withModifiers, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\nimport _imports_0 from '@/assets/icons/icon-download-slim.svg'\n\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-a45e1952\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"document-item--container\" }\nconst _hoisted_2 = [\"src\"]\nconst _hoisted_3 = { class: \"document-item--name\" }\nconst _hoisted_4 = [\"onClick\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"document-item--wrapper\",\n onClick: $setup.openFile\n }, [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"img\", {\n class: \"document-item--preview\",\n src: $setup.previewIcon($props.link, $props.name)\n }, null, 8, _hoisted_2),\n _createElementVNode(\"span\", _hoisted_3, _toDisplayString($props.name), 1)\n ]),\n _createElementVNode(\"img\", {\n class: \"document-item--download\",\n src: _imports_0,\n onClick: _withModifiers($setup.download, [\"stop\",\"prevent\"])\n }, null, 8, _hoisted_4),\n _createVNode($setup[\"ImagePreviewModal\"], {\n showImg: $setup.showImg,\n onClose: _cache[0] || (_cache[0] = ($event: any) => ($setup.showImg = undefined))\n }, null, 8, [\"showImg\"])\n ]))\n}","import { defineComponent as _defineComponent } from 'vue'\nimport { ref } from \"vue\";\nimport ImagePreviewModal from \"@/components/ui/modals/ImagePeviewModal.vue\";\nimport { isImage, previewIcon } from \"@/helpers/documents\";\nimport { downloadFile } from \"@/helpers/downloadFile\";\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'DocumentItem',\n props: {\n link: {\n type: String,\n required: true,\n },\n name: String,\n estateId: String,\n},\n setup(__props, { expose: __expose }) {\n __expose();\n\nconst props = __props;\n\n\n\nconst showImg = ref(undefined);\nfunction openFile() {\n if (isImage(props.name || props.link)) {\n showImg.value = props.link;\n } else {\n window.open(props.link, \"_blank\");\n }\n}\nfunction download() {\n downloadFile(props.link)\n}\n\n\nconst __returned__ = { props, showImg, openFile, download, ref, ImagePreviewModal, get isImage() { return isImage }, get previewIcon() { return previewIcon }, get downloadFile() { return downloadFile } }\nObject.defineProperty(__returned__, '__isScriptSetup', { enumerable: false, value: true })\nreturn __returned__\n}\n\n})","import { render } from \"./DocumentItem.vue?vue&type=template&id=a45e1952&scoped=true&ts=true&lang=pug\"\nimport script from \"./DocumentItem.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./DocumentItem.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./DocumentItem.vue?vue&type=style&index=0&id=a45e1952&lang=scss&scoped=true\"\n\nimport exportComponent from \"/codebuild/output/src264950160/src/lottrackr-front/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-a45e1952\"]])\n\nexport default __exports__","import { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-0d2e86fe\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n key: 0,\n class: \"dropdown-wr\"\n}\nconst _hoisted_2 = [\"onClick\"]\nconst _hoisted_3 = {\n key: 1,\n class: \"list-view-btn-wrapper\"\n}\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"p\", { class: \"zoom-info\" }, \"Zoom in / out. Click stage to view available lots.\", -1))\nconst _hoisted_5 = [\n _hoisted_4\n]\nconst _hoisted_6 = {\n key: 1,\n class: \"spinner\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (!$setup.loading)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n class: _normalizeClass([\"stage-nav-wrapper\", {'not-margin': $setup.props.isMapModalView}]),\n id: \"stage-nav-wrapper\"\n }, [\n (!$props.isBuilderView)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList($setup.getAvailableStages, (stage) => {\n return (_openBlock(), _createElementBlock(\"button\", {\n class: _normalizeClass([\"button default primary icon-btn stage\", {'stage-selected': $setup.getStageClass(stage?.stageId?._id)}]),\n onClick: ($event: any) => ($setup.onStage(stage))\n }, \"Stage \" + _toDisplayString(stage.stageId.title), 11, _hoisted_2))\n }), 256))\n ]))\n : _createCommentVNode(\"\", true),\n (!$props.isBuilderView)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, _hoisted_5))\n : _createCommentVNode(\"\", true)\n ], 2))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_6))\n}","import { defineComponent as _defineComponent } from 'vue'\nimport { ref, computed, onMounted } from \"vue\";\nimport router from \"@/router\";\nimport { MapPages } from \"@/enums/MapPages\";\nimport { StageMapInterface } from \"@/types/StageMapInterface\";\nimport { StageStatus } from \"@/enums/StageStatus\";\nimport { useStore } from \"vuex\";\nimport { compareStrings } from \"@/helpers/transformation/string\";\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'StageNavMobile',\n props: {\n estateId: { type: String },\n viewType: { type: String },\n mapPage: { type: String },\n isEmbedded: { type: Boolean },\n isBuilderView: { type: Boolean, required: false },\n isMapModalView: { type: Boolean, required: false },\n},\n emits: [\"changeView\", \"onStage\"],\n setup(__props, { expose: __expose, emit }) {\n __expose();\n\nconst props = __props;\n\n\n\n\nconst stages = ref([]);\nconst store = useStore();\nconst loading = ref(true);\n\n\nconst getAvailableStages = computed(() => {\n return stages.value.filter(\n (value) => value.stageId.status === StageStatus.NOW_SELLING\n )\n .sort((a, b) => compareStrings(a?.stageId?.title, b?.stageId?.title));\n});\n\nonMounted(() => {\n getStages();\n});\n\nconst getStages = () => {\n store\n .dispatch(\"stage/getStagesMap\", { estateId: props.estateId, isCustomer: true })\n .then((res) => {\n stages.value = res.data;\n loading.value = false;\n });\n};\n\nconst changeView = () => {\n if (props.viewType !== \"list\") {\n emit(\"changeView\");\n }\n};\n\nconst getStageClass = (stageId: string) => {\n return router.currentRoute.value.query?.stageId === stageId\n && props.mapPage === MapPages.STAGE_MAP;\n};\n\nconst onStage = (stage: StageMapInterface) => {\n const embed = props.isEmbedded.toString();\n if (props.mapPage === MapPages.STAGE_MAP || props.mapPage === MapPages.ESTATE_MAP) {\n emit(\"onStage\", stage);\n } else {\n router.replace({\n path: router.currentRoute.value.path,\n query: { stageId: stage.stageId._id, embed },\n })\n .then(() => {\n emit(\"changeView\");\n });\n }\n};\n\nconst __returned__ = { props, emit, stages, store, loading, getAvailableStages, getStages, changeView, getStageClass, onStage, ref, computed, onMounted, get router() { return router }, get MapPages() { return MapPages }, get StageMapInterface() { return StageMapInterface }, get StageStatus() { return StageStatus }, get useStore() { return useStore }, get compareStrings() { return compareStrings } }\nObject.defineProperty(__returned__, '__isScriptSetup', { enumerable: false, value: true })\nreturn __returned__\n}\n\n})","import { render } from \"./StageNavMobile.vue?vue&type=template&id=0d2e86fe&scoped=true&ts=true&lang=pug\"\nimport script from \"./StageNavMobile.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./StageNavMobile.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./StageNavMobile.vue?vue&type=style&index=0&id=0d2e86fe&lang=scss&scoped=true\"\n\nimport exportComponent from \"/codebuild/output/src264950160/src/lottrackr-front/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-0d2e86fe\"]])\n\nexport default __exports__","export * from \"-!../../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js??ref--1-1!./ConfirmDeleteModal.vue?vue&type=style&index=0&id=68a6733c&lang=scss&scoped=true\"","import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, withModifiers as _withModifiers, normalizeClass as _normalizeClass, createTextVNode as _createTextVNode, withCtx as _withCtx, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-2177a84a\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"modal-wrapper\" }\nconst _hoisted_2 = { class: \"header\" }\nconst _hoisted_3 = { class: \"modal-title\" }\nconst _hoisted_4 = {\n key: 0,\n class: \"stages scroll-wrapper\"\n}\nconst _hoisted_5 = { class: \"stages-header\" }\nconst _hoisted_6 = {\n key: 0,\n class: \"items-count\"\n}\nconst _hoisted_7 = {\n key: 1,\n class: \"items-count\"\n}\nconst _hoisted_8 = [\"onClick\"]\nconst _hoisted_9 = { class: \"stage-row\" }\nconst _hoisted_10 = { class: \"stage-title-wr\" }\nconst _hoisted_11 = { class: \"stage-title\" }\nconst _hoisted_12 = { class: \"table-scroll\" }\nconst _hoisted_13 = { class: \"table-default\" }\nconst _hoisted_14 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"thead\", null, [\n /*#__PURE__*/_createElementVNode(\"tr\", null, [\n /*#__PURE__*/_createElementVNode(\"th\", { class: \"checkbox checkbox--wide\" }),\n /*#__PURE__*/_createElementVNode(\"th\", { class: \"lot-number\" }, \"Lot No.\"),\n /*#__PURE__*/_createElementVNode(\"th\", { class: \"stage-number\" }, \"Stage\"),\n /*#__PURE__*/_createElementVNode(\"th\", { class: \"size\" }, [\n /*#__PURE__*/_createTextVNode(\"Size, m\"),\n /*#__PURE__*/_createElementVNode(\"sup\", null, \"2\")\n ]),\n /*#__PURE__*/_createElementVNode(\"th\", { class: \"price\" }, \"Price\")\n ])\n], -1))\nconst _hoisted_15 = { class: \"checkbox\" }\nconst _hoisted_16 = { class: \"lot-number\" }\nconst _hoisted_17 = { class: \"stage-number\" }\nconst _hoisted_18 = { class: \"size\" }\nconst _hoisted_19 = { class: \"price\" }\nconst _hoisted_20 = {\n key: 1,\n class: \"spinner\"\n}\nconst _hoisted_21 = { class: \"controls\" }\nconst _hoisted_22 = [\"disabled\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createBlock($setup[\"Modal\"], {\n isOpen: $props.isOpen,\n onClose: $setup.close,\n classes: \"share-lots-modal height-limited\"\n }, {\n content: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, _toDisplayString($setup.props.type === \"leads\"? \"Choose the lot\"\n: \"Choose lots to attach this file\"), 1),\n _createVNode($setup[\"InputSearch\"], {\n class: \"search\",\n modelValue: $setup.searchQuery,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => (($setup.searchQuery) = $event)),\n placeholder: \"Search\",\n theme: \"filter\"\n }, null, 8, [\"modelValue\"])\n ]),\n (!$setup.loadingLots)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", _hoisted_5, [\n ($setup.selectedLots.length > 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_6, _toDisplayString($setup.plural($setup.selectedLots.length, \"lot\")) + \" selected\", 1))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_7, _toDisplayString($setup.plural($setup.lots.length, \"lot\")), 1))\n ]),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList($setup.stages, (stage, index) => {\n return (_openBlock(), _createElementBlock(\"div\", { key: index }, [\n _createElementVNode(\"div\", {\n class: \"stage-row-wrapper\",\n onClick: ($event: any) => ($setup.onLotRow(index))\n }, [\n _createElementVNode(\"div\", _hoisted_9, [\n _createVNode($setup[\"CheckboxInput\"], {\n disabled: $setup.props.type === 'leads',\n class: _normalizeClass({ 'hide': $setup.props.type === 'leads' }),\n checkedPartial: $setup.groupedSelectAllCheckboxList[index] && $setup.groupedSelectAllCheckboxList[index].selectedLots > 0 && $setup.groupedSelectAllCheckboxList[index].selectedLots !== $setup.groupedLotCheckboxList[index].length,\n modelValue: $setup.groupedSelectAllCheckboxList[index] ? $setup.groupedSelectAllCheckboxList[index].selected : false,\n \"onUpdate:modelValue\": ($event: any) => ($setup.selectAll($event, index)),\n onClick: _cache[1] || (_cache[1] = _withModifiers(() => {}, [\"stop\"]))\n }, null, 8, [\"disabled\", \"class\", \"checkedPartial\", \"modelValue\", \"onUpdate:modelValue\"]),\n _createElementVNode(\"div\", _hoisted_10, [\n _createElementVNode(\"div\", _hoisted_11, \"Stage \" + _toDisplayString(stage.title), 1),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"chevron\", { rotated: !$setup.activeStagesIndex[index] }])\n }, null, 2)\n ])\n ])\n ], 8, _hoisted_8),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"wrapper-table\", { opened: $setup.activeStagesIndex[index] }]),\n ref_for: true,\n ref: (el) => { if (el) { $setup.tableRefs[index] = el; } }\n }, [\n _createElementVNode(\"div\", _hoisted_12, [\n _createElementVNode(\"table\", _hoisted_13, [\n _hoisted_14,\n _createElementVNode(\"tbody\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList($setup.groupedLots[index], (lot, idx) => {\n return (_openBlock(), _createElementBlock(\"tr\", {\n key: idx,\n class: _normalizeClass({ disabled: $setup.isDocumentExist($setup.groupedLotCheckboxList && $setup.groupedLotCheckboxList[index] && $setup.groupedLotCheckboxList[index][idx] ? $setup.groupedLotCheckboxList[index][idx]?.documents : false) })\n }, [\n _createElementVNode(\"td\", _hoisted_15, [\n _createVNode($setup[\"CheckboxInput\"], {\n disabled: $setup.isDocumentExist($setup.groupedLotCheckboxList && $setup.groupedLotCheckboxList[index] && $setup.groupedLotCheckboxList[index][idx] ? $setup.groupedLotCheckboxList[index][idx]?.documents : false) || ($setup.props.type === 'leads' && $setup.selectedLots.length === 1 && $setup.groupedLots[index][idx]?.lotId !== $setup.selectedLots[0]),\n onClick: _cache[2] || (_cache[2] = _withModifiers(() => {}, [\"stop\"])),\n modelValue: $setup.groupedLotCheckboxList && $setup.groupedLotCheckboxList[index] && $setup.groupedLotCheckboxList[index][idx] ? $setup.groupedLotCheckboxList[index][idx]?.selected : false,\n \"onUpdate:modelValue\": ($event: any) => ($setup.selectLot($event, index, lot.lotId))\n }, null, 8, [\"disabled\", \"modelValue\", \"onUpdate:modelValue\"])\n ]),\n _createElementVNode(\"td\", _hoisted_16, _toDisplayString(lot.lotTitle), 1),\n _createElementVNode(\"td\", _hoisted_17, \"Stage \" + _toDisplayString(lot.stageTitle), 1),\n _createElementVNode(\"td\", _hoisted_18, _toDisplayString($setup.formatPrice(lot.lotSize, false)), 1),\n _createElementVNode(\"td\", _hoisted_19, _toDisplayString($setup.formatPrice(lot.lotPrice)), 1)\n ], 2))\n }), 128))\n ])\n ])\n ])\n ], 2)\n ]))\n }), 128))\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_20)),\n _createElementVNode(\"div\", _hoisted_21, [\n _createElementVNode(\"button\", {\n class: \"button default\",\n onClick: $setup.close\n }, \"Cancel\"),\n _createElementVNode(\"button\", {\n class: \"button default primary send\",\n onClick: $setup.send,\n disabled: !$setup.selectedLots.length\n }, _toDisplayString($setup.props.type === \"leads\" ? \"Send\" : \"Done\"), 9, _hoisted_22)\n ])\n ])\n ]),\n _: 1\n }, 8, [\"isOpen\"]))\n}","import { defineComponent as _defineComponent } from 'vue'\nimport CheckboxInput from \"@/components/ui/input/CheckboxInput.vue\";\nimport InputSearch from \"@/components/ui/input/InputSearch.vue\";\nimport Modal from \"@/components/ui/Modal.vue\";\nimport { useStore } from \"vuex\";\nimport { computed, onMounted, ref, watch } from \"vue\";\nimport { debounce } from \"@/helpers/debounce\";\nimport plural from \"@/features/plural\";\nimport { heightAnimation } from \"@/helpers/heightAnimation\";\nimport { StageInterface } from \"@/types/StageInterface\";\nimport { LotStatus } from \"@/enums/LotStatus\";\nimport { LotBasicInfoInterface } from \"@/types/LotBasicInfoInterface\";\nimport { formatPrice } from \"@/helpers/transformation/price\";\nimport { useToast } from \"vue-toastification\";\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'ShareLotsModal',\n props: {\n isOpen: {\n type: Boolean,\n required: true,\n },\n leadIds: {\n type: Array,\n default: () => {\n return [];\n },\n },\n fileData: {\n type: Object,\n default: () => {\n return {};\n },\n },\n type: {\n type: String,\n default: \"leads\",\n },\n estateId: {\n type: String,\n },\n},\n emits: [\"close\"],\n setup(__props, { expose: __expose, emit: emits }) {\n __expose();\n\nconst props = __props;\n\nconst toast = useToast();\nconst store = useStore();\n\n\nconst loadingLots = ref(true);\nconst searchQuery = ref(\"\");\n\nconst stages = ref([]);\nconst lots = ref([]);\nconst activeStagesIndex = ref([]);\nconst tableRefs = ref([]);\nconst groupedLots = computed(() => {\n const grouped: Array = [];\n stages.value.forEach((stage: StageInterface) => {\n grouped.push(\n lots.value.filter(\n (lot: LotBasicInfoInterface) => lot.stageId === stage._id\n )\n );\n });\n return grouped;\n});\nconst groupedLotCheckboxList = ref([]);\nconst groupedSelectAllCheckboxList = ref([]);\nconst selectedLots = computed(() => {\n return groupedLotCheckboxList.value.reduce(\n (previousValue: any[], currentValue: any[]) => {\n return previousValue.concat(\n currentValue.filter((lot: any) => lot.selected).map((item) => item.id)\n );\n },\n []\n );\n});\n\nonMounted(() => {\n getStages();\n});\n\nwatch(\n () => searchQuery.value,\n () => {\n loadingLots.value = true;\n debounceSearch();\n unselectCheckboxes();\n }\n);\n\nconst getStages = () => {\n store\n .dispatch(\"stage/getStages\", {\n estateId: props.estateId,\n })\n .then((res) => {\n stages.value = res.data;\n getLots();\n return res.data;\n });\n};\n\nconst debounceSearch = debounce(getStages);\n\nconst getLots = () => {\n groupedLotCheckboxList.value = [];\n groupedSelectAllCheckboxList.value = [];\n store\n .dispatch(\"lot/getEstateLots\", {\n estateId: props.estateId,\n params: {\n query: searchQuery.value,\n status: props.type === \"leads\" ? LotStatus.AVAILABLE : null,\n },\n })\n .then((res) => {\n lots.value = res.data;\n groupedLots.value.forEach((stage: LotBasicInfoInterface[], index) => {\n groupedLotCheckboxList.value.push(\n stage.map((lot: LotBasicInfoInterface) => {\n return {\n id: lot.lotId,\n selected: false,\n documents: lot.documents,\n };\n })\n );\n groupedSelectAllCheckboxList.value.push({\n stageIndex: index,\n selected: false,\n selectedLots: 0,\n });\n activeStagesIndex.value.push(true);\n tableRefs.value.forEach((section) => {\n heightAnimation(section, \"opened\", true);\n });\n });\n }).finally(() => {\n loadingLots.value = false;\n });\n};\nconst selectLot = (isSelected: boolean, stageIndex: number, lotId: string) => {\n const selectedLotIndex = groupedLotCheckboxList.value[stageIndex].findIndex(el => el.id === lotId);\n groupedLotCheckboxList.value[stageIndex][selectedLotIndex].selected = isSelected;\n groupedSelectAllCheckboxList.value[stageIndex].selectedLots += isSelected\n ? 1\n : -1;\n groupedSelectAllCheckboxList.value[stageIndex].selected =\n groupedSelectAllCheckboxList.value[stageIndex].selectedLots > 0;\n};\nconst selectAll = (isSelected: boolean, stageIndex: number) => {\n let lotsId = [] as unknown[];\n if (groupedLotCheckboxList.value[stageIndex] && groupedLotCheckboxList.value[stageIndex].length) {\n lotsId = groupedLotCheckboxList.value[stageIndex]\n .map((item: any) => item)\n .map((lot: any) => {\n if (!isDocumentExist(lot.documents)) {\n return lot.id;\n }\n return undefined;\n })\n .filter((id: string | undefined) => id);\n }\n\n if (groupedSelectAllCheckboxList.value[stageIndex]) {\n groupedSelectAllCheckboxList.value[stageIndex].selected = lotsId.length\n ? isSelected\n : false;\n groupedSelectAllCheckboxList.value[stageIndex].selectedLots = isSelected\n ? lotsId.length\n : 0;\n }\n\n if (groupedLotCheckboxList.value[stageIndex]) {\n groupedLotCheckboxList.value[stageIndex].forEach((item) => {\n if (lotsId.includes(item.id)) {\n item.selected = isSelected;\n }\n });\n }\n};\nfunction onLotRow(index: number) {\n activeStagesIndex.value[index] = !activeStagesIndex.value[index];\n const section = tableRefs.value[index];\n heightAnimation(section);\n}\nconst send = () => {\n if (!selectedLots.value.length) {\n return;\n }\n const action =\n props.type === \"leads\" ? \"contact/shareLeadsLinks\" : \"estate/shareDocument\";\n const payload =\n props.type === \"leads\"\n ? {\n leadIds: props.leadIds,\n lotIds: selectedLots.value,\n }\n : {\n fileData: props.fileData,\n lotIds: selectedLots.value,\n };\n store\n .dispatch(action, payload)\n .then(() => {\n toast.success(\n props.type === \"leads\"\n ? \"Emails were successfully sent\"\n : \"File was successfully shared\"\n );\n })\n .catch(() => {\n toast.error(\"Something went wrong\");\n })\n .finally(() => {\n close();\n });\n};\nconst close = () => {\n groupedLotCheckboxList.value = [];\n groupedSelectAllCheckboxList.value = [];\n searchQuery.value = \"\";\n getStages();\n emits(\"close\");\n};\nfunction unselectCheckboxes() {\n stages.value.forEach((stage: StageInterface, index: number) => {\n selectAll(false, index);\n });\n}\nconst isDocumentExist = (lotDocuments: any) => {\n if (lotDocuments) {\n return lotDocuments\n .map((item: any) => item.ETag)\n .includes(props.fileData.ETag);\n }\n return false;\n};\n\nconst __returned__ = { toast, store, emits, props, loadingLots, searchQuery, stages, lots, activeStagesIndex, tableRefs, groupedLots, groupedLotCheckboxList, groupedSelectAllCheckboxList, selectedLots, getStages, debounceSearch, getLots, selectLot, selectAll, onLotRow, send, close, unselectCheckboxes, isDocumentExist, CheckboxInput, InputSearch, Modal, get useStore() { return useStore }, computed, onMounted, ref, watch, get debounce() { return debounce }, get plural() { return plural }, get heightAnimation() { return heightAnimation }, get StageInterface() { return StageInterface }, get LotStatus() { return LotStatus }, get LotBasicInfoInterface() { return LotBasicInfoInterface }, get formatPrice() { return formatPrice }, get useToast() { return useToast } }\nObject.defineProperty(__returned__, '__isScriptSetup', { enumerable: false, value: true })\nreturn __returned__\n}\n\n})","import { render } from \"./ShareLotsModal.vue?vue&type=template&id=2177a84a&scoped=true&ts=true&lang=pug\"\nimport script from \"./ShareLotsModal.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./ShareLotsModal.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./ShareLotsModal.vue?vue&type=style&index=0&id=2177a84a&lang=scss&scoped=true\"\n\nimport exportComponent from \"/codebuild/output/src264950160/src/lottrackr-front/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-2177a84a\"]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, vShow as _vShow, withDirectives as _withDirectives, toDisplayString as _toDisplayString, withModifiers as _withModifiers, withCtx as _withCtx, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, createTextVNode as _createTextVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\nimport _imports_0 from '@/assets/icons/icon-arrow-back.svg'\nimport _imports_1 from '@/assets/icons/icon-plus-white.svg'\n\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-c1530dda\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"documents-view\" }\nconst _hoisted_2 = { class: \"documents-header\" }\nconst _hoisted_3 = { class: \"documents-header--container\" }\nconst _hoisted_4 = { class: \"back\" }\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", { src: _imports_0 }, null, -1))\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"back-title\" }, \"Back\", -1))\nconst _hoisted_7 = [\n _hoisted_5,\n _hoisted_6\n]\nconst _hoisted_8 = { class: \"documents-title\" }\nconst _hoisted_9 = { class: \"subtitle-main subtitle-main--documents\" }\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"button\", { class: \"button primary button-medium button-add\" }, [\n /*#__PURE__*/_createElementVNode(\"div\", { class: \"button-add--icon\" }, [\n /*#__PURE__*/_createElementVNode(\"img\", { src: _imports_1 })\n ]),\n /*#__PURE__*/_createElementVNode(\"div\", { class: \"button-add--text\" }, \"Add\")\n], -1))\nconst _hoisted_11 = { class: \"menu-option\" }\nconst _hoisted_12 = [\"accept\"]\nconst _hoisted_13 = {\n key: 0,\n class: \"spinner\"\n}\nconst _hoisted_14 = {\n key: 1,\n class: \"empty-block--wrapper\"\n}\nconst _hoisted_15 = [\"src\"]\nconst _hoisted_16 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"p\", null, \"You don't have any documents yet\", -1))\nconst _hoisted_17 = {\n key: 2,\n class: \"table-wrapper\"\n}\nconst _hoisted_18 = { class: \"table-default table--document\" }\nconst _hoisted_19 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"thead\", null, [\n /*#__PURE__*/_createElementVNode(\"tr\", null, [\n /*#__PURE__*/_createElementVNode(\"th\", null, \"Name\"),\n /*#__PURE__*/_createElementVNode(\"th\", { class: \"th--last-modified\" }, \"Created\"),\n /*#__PURE__*/_createElementVNode(\"th\", { class: \"th--menu\" })\n ])\n], -1))\nconst _hoisted_20 = [\"onClick\"]\nconst _hoisted_21 = { class: \"documents-wrapper-folder\" }\nconst _hoisted_22 = [\"src\"]\nconst _hoisted_23 = { class: \"documents-wrapper-folder__label\" }\nconst _hoisted_24 = { class: \"text-bordered\" }\nconst _hoisted_25 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"td\", { class: \"bold\" }, \"-\", -1))\nconst _hoisted_26 = { class: \"menu-wrapper\" }\nconst _hoisted_27 = { class: \"wrapper-dots\" }\nconst _hoisted_28 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"dots\" }, [\n /*#__PURE__*/_createElementVNode(\"div\", { class: \"actions\" })\n], -1))\nconst _hoisted_29 = { class: \"menu-option\" }\nconst _hoisted_30 = [\"onClick\"]\nconst _hoisted_31 = [\"onClick\"]\nconst _hoisted_32 = { class: \"documents-wrapper-folder\" }\nconst _hoisted_33 = [\"src\"]\nconst _hoisted_34 = { class: \"documents-wrapper-folder__label\" }\nconst _hoisted_35 = { class: \"text-bordered\" }\nconst _hoisted_36 = { class: \"bold\" }\nconst _hoisted_37 = { class: \"menu-wrapper\" }\nconst _hoisted_38 = { class: \"wrapper-dots\" }\nconst _hoisted_39 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"dots\" }, [\n /*#__PURE__*/_createElementVNode(\"div\", { class: \"actions\" })\n], -1))\nconst _hoisted_40 = { class: \"menu-option\" }\nconst _hoisted_41 = [\"onClick\"]\nconst _hoisted_42 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"menu-item delete\" }, \"Delete File\", -1))\nconst _hoisted_43 = [\n _hoisted_42\n]\nconst _hoisted_44 = [\"onClick\"]\nconst _hoisted_45 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"menu-item upload-file\" }, \"Download File\", -1))\nconst _hoisted_46 = [\n _hoisted_45\n]\nconst _hoisted_47 = [\"onClick\"]\nconst _hoisted_48 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"menu-item share\" }, \"Share File with lots\", -1))\nconst _hoisted_49 = [\n _hoisted_48\n]\nconst _hoisted_50 = { class: \"description--highlighted\" }\nconst _hoisted_51 = { class: \"description--highlighted\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"span\", {\n class: \"wrapper-back\",\n onClick: $setup.onBack\n }, [\n _withDirectives(_createElementVNode(\"div\", _hoisted_4, _hoisted_7, 512), [\n [_vShow, $setup.folderPath]\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_8, _toDisplayString($setup.activeFolder || \"Documents\"), 1),\n _createElementVNode(\"div\", _hoisted_9, _toDisplayString(`${$setup.plural($setup.docs.folders.length, \"folder\")} ${$setup.plural($setup.docs.files.length, \"file\")}`), 1)\n ]),\n _createVNode($setup[\"DropDown\"], { placement: 'right bottom' }, {\n control: _withCtx(() => [\n _hoisted_10\n ]),\n dropdown: _withCtx(() => [\n _createElementVNode(\"ul\", _hoisted_11, [\n _createElementVNode(\"li\", null, [\n _createElementVNode(\"div\", {\n class: \"menu-item add-folder\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => ($setup.showCreateFolder = true))\n }, \"Create Folder\")\n ]),\n _createElementVNode(\"li\", null, [\n _createElementVNode(\"label\", {\n class: \"menu-item upload-file\",\n for: \"upload-file\",\n onClick: _cache[1] || (_cache[1] = _withModifiers(() => {}, [\"stop\"]))\n }, \"Upload File\")\n ])\n ])\n ]),\n _: 1\n })\n ]),\n _createElementVNode(\"input\", {\n class: \"file-input\",\n id: \"upload-file\",\n type: \"file\",\n ref: \"fileInput\",\n onChange: _cache[2] || (_cache[2] = ($event: any) => ($setup.uploadFile($event))),\n accept: $setup.documentTypes\n }, null, 40, _hoisted_12),\n ($setup.loading)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_13))\n : ($setup.docs.folders.length + $setup.docs.files.length === 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_14, [\n _createElementVNode(\"img\", {\n class: \"empty-block--icon\",\n src: require('@/assets/icons/documents-slim.svg')\n }, null, 8, _hoisted_15),\n _hoisted_16\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_17, [\n _createElementVNode(\"table\", _hoisted_18, [\n _hoisted_19,\n _createElementVNode(\"tbody\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList($setup.docs.folders, (folder, idx) => {\n return (_openBlock(), _createElementBlock(\"tr\", { key: idx }, [\n _createElementVNode(\"td\", {\n class: \"column-folder-name bold cursor-pointer\",\n onClick: ($event: any) => ($setup.toFolder(folder.Prefix))\n }, [\n _createElementVNode(\"div\", _hoisted_21, [\n _createElementVNode(\"img\", {\n class: \"folder-icon\",\n src: require(`@/assets/icons/icon-folder.svg`)\n }, null, 8, _hoisted_22)\n ]),\n _createElementVNode(\"span\", _hoisted_23, [\n _createElementVNode(\"span\", _hoisted_24, _toDisplayString($setup.getFolderName(folder.Prefix)), 1)\n ])\n ], 8, _hoisted_20),\n _hoisted_25,\n _createElementVNode(\"td\", _hoisted_26, [\n _createElementVNode(\"div\", _hoisted_27, [\n _createVNode($setup[\"DropDown\"], { placement: 'right bottom' }, {\n control: _withCtx(() => [\n _hoisted_28\n ]),\n dropdown: _withCtx(() => [\n _createElementVNode(\"ul\", _hoisted_29, [\n _createElementVNode(\"li\", null, [\n _createElementVNode(\"div\", {\n class: \"menu-item delete\",\n onClick: ($event: any) => ($setup.showDeleteFileModal(folder.Prefix, idx))\n }, \"Delete Folder\", 8, _hoisted_30)\n ])\n ])\n ]),\n _: 2\n }, 1024)\n ])\n ])\n ]))\n }), 128)),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList($setup.docs.files, (file, idx) => {\n return (_openBlock(), _createElementBlock(\"tr\", { key: idx }, [\n _createElementVNode(\"td\", {\n class: \"column-folderName bold cursor-pointer\",\n onClick: ($event: any) => ($setup.openFile(file))\n }, [\n _createElementVNode(\"div\", _hoisted_32, [\n _createElementVNode(\"img\", {\n class: \"documents-image-preview\",\n src: $setup.previewIcon(file.Link, file?.Key)\n }, null, 8, _hoisted_33)\n ]),\n _createElementVNode(\"span\", _hoisted_34, [\n _createElementVNode(\"span\", _hoisted_35, _toDisplayString($setup.getFileName(file.Key)), 1)\n ])\n ], 8, _hoisted_31),\n _createElementVNode(\"td\", _hoisted_36, _toDisplayString($setup.formatDate(file.LastModified)), 1),\n _createElementVNode(\"td\", _hoisted_37, [\n _createElementVNode(\"div\", _hoisted_38, [\n _createVNode($setup[\"DropDown\"], {\n placement: idx < $setup.docs.files.length - 2 ? 'right bottom' : 'right top'\n }, {\n control: _withCtx(() => [\n _hoisted_39\n ]),\n dropdown: _withCtx(() => [\n _createElementVNode(\"ul\", _hoisted_40, [\n _createElementVNode(\"li\", {\n onClick: ($event: any) => ($setup.showDeleteFileModal(file.Key, idx))\n }, _hoisted_43, 8, _hoisted_41),\n _createElementVNode(\"li\", {\n onClick: ($event: any) => ($setup.downloadFile(file.Key, $setup.estateId))\n }, _hoisted_46, 8, _hoisted_44),\n _createElementVNode(\"li\", {\n onClick: ($event: any) => ($setup.shareFile(file))\n }, _hoisted_49, 8, _hoisted_47)\n ])\n ]),\n _: 2\n }, 1032, [\"placement\"])\n ])\n ])\n ]))\n }), 128))\n ])\n ]),\n _createVNode($setup[\"RemoveDocumentsModal\"], {\n isOpen: $setup.isOpenRemoveDocumentsModal,\n onClose: _cache[3] || (_cache[3] = ($event: any) => ($setup.isOpenRemoveDocumentsModal = false)),\n onConfirm: $setup.deleteFile\n }, {\n title: _withCtx(() => [\n _createElementVNode(\"span\", _hoisted_50, \"Confirm \" + _toDisplayString($setup.getRemoveDocumentType) + \" removal\", 1)\n ]),\n description: _withCtx(() => [\n _createTextVNode(\"Are you sure you want to delete \" + _toDisplayString($setup.getRemoveDocumentType) + \" '\", 1),\n _createElementVNode(\"span\", _hoisted_51, _toDisplayString($setup.getRemoveDocumentType === \"folder\" ? $setup.getFolderName($setup.fileForDelete.file) : $setup.getFileName($setup.fileForDelete.file)) + \"'\", 1),\n _createTextVNode(_toDisplayString($setup.getRemoveDocumentType === \"folder\" ? \" and all files in it?\" : \"?\"), 1)\n ]),\n _: 1\n }, 8, [\"isOpen\"])\n ])),\n _createVNode($setup[\"CreateFolderModal\"], {\n isOpen: $setup.showCreateFolder,\n folderPath: $setup.folderPath,\n estateId: $setup.estateId,\n onUpdate: _cache[4] || (_cache[4] = ($event: any) => ($setup.addFolder($event))),\n onClose: _cache[5] || (_cache[5] = ($event: any) => ($setup.showCreateFolder = false))\n }, null, 8, [\"isOpen\", \"folderPath\", \"estateId\"]),\n _createVNode($setup[\"ImagePreviewModal\"], {\n showImg: $setup.showImg,\n onClose: _cache[6] || (_cache[6] = ($event: any) => ($setup.showImg = undefined))\n }, null, 8, [\"showImg\"]),\n _createVNode($setup[\"ShareLotsModal\"], {\n isOpen: $setup.showShareModal,\n fileData: $setup.fileToShare,\n type: 'document',\n estateId: $setup.estateId,\n onClose: _cache[7] || (_cache[7] = ($event: any) => ($setup.showShareModal = false))\n }, null, 8, [\"isOpen\", \"fileData\", \"estateId\"])\n ]))\n}","import { defineComponent as _defineComponent } from 'vue'\nimport router from \"@/router\";\nimport { computed, onMounted, ref, watch } from \"vue\";\nimport { useStore } from \"vuex\";\nimport { formatDate } from \"@/helpers/date\";\nimport DropDown from \"@/components/ui/dropdown/DropDown.vue\";\nimport RemoveDocumentsModal from \"@/components/ui/modals/RemoveDocumentModal.vue\";\nimport CreateFolderModal from \"@/components/ui/modals/CreateFolderModal.vue\";\nimport ImagePreviewModal from \"@/components/ui/modals/ImagePeviewModal.vue\";\nimport ShareLotsModal from \"@/components/ui/modals/ShareLotsModal.vue\";\nimport { isImage, previewIcon } from \"@/helpers/documents\";\nimport { downloadFile } from \"@/helpers/downloadFile\";\nimport { UserRoles } from \"@/enums/UserRoles\";\nimport plural from \"@/features/plural\";\nimport {\n isValidFileSize,\n isValidDocumentType,\n validDocumentsTypes,\n} from \"@/helpers/fileUpload\";\nimport { useToast } from \"vue-toastification\";\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'DocumentsView',\n setup(__props, { expose: __expose }) {\n __expose();\n\nconst store = useStore();\nconst toast = useToast();\nconst estateId = computed(() => {\n return (router.currentRoute.value.meta.access as string[]).includes(\n UserRoles.SUPER_ADMIN\n )\n ? router.currentRoute.value.params.estateId\n : store.state.user.selectedEstateId;\n});\n\nconst folderPath = ref(\"\");\nconst docs = ref({\n folders: [],\n files: [],\n});\nconst fileForDelete = ref({ file: \"\", index: 0 });\nconst isOpenRemoveDocumentsModal = ref(false);\nconst getRemoveDocumentType = computed(() =>\n fileForDelete.value.file.endsWith(\"/\") ? \"folder\" : \"file\"\n);\nconst showCreateFolder = ref(false);\nconst fileInput = ref(null);\nconst documentTypes = validDocumentsTypes.join(\", \");\nconst showImg = ref(undefined);\n\nonMounted(() => {\n getFolder();\n});\nwatch(\n () => estateId.value,\n () => {\n getFolder();\n }\n);\n\nconst activeFolder = computed(() => {\n return folderPath.value\n .split(\"/\")\n .filter((element) => {\n return element !== \"\";\n })\n .slice(-1)[0];\n});\n\nconst loading = ref(false);\nconst getFolder = () => {\n if (estateId.value) {\n loading.value = true;\n store\n .dispatch(\"estate/getEstateFolder\", {\n estateId: estateId.value,\n foldername: folderPath.value,\n })\n .then((res) => {\n docs.value = res.data;\n })\n .finally(() => {\n loading.value = false;\n });\n }\n};\nfunction toFolder(folder: string) {\n folderPath.value = folder;\n getFolder();\n}\nfunction onBack() {\n const pathParts = folderPath.value.split(\"/\");\n pathParts.splice(pathParts.length - 2, 2);\n const path = pathParts.join(\"/\");\n folderPath.value = path + (path ? \"/\" : \"\");\n getFolder();\n}\nfunction getFolderName(folderPath: string) {\n const pathParts = folderPath.split(\"/\");\n return pathParts[pathParts.length - 2];\n}\nfunction getFileName(filePath: string) {\n const pathParts = filePath.split(\"/\");\n return pathParts[pathParts.length - 1];\n}\nconst uploadFile = (e: any) => {\n if (!e.target.files.length) {\n return;\n }\n const file = e.target.files[0];\n fileInput.value.value = \"\";\n if (!isValidDocumentType(file) || !isValidFileSize(file)) {\n return;\n }\n const data = new FormData();\n data.append(\"file\", file);\n if (folderPath.value) {\n data.append(\"foldername\", folderPath.value);\n }\n loading.value = true;\n store\n .dispatch(\"estate/uploadEstateFile\", {\n estateId: estateId.value,\n file: data\n })\n .then((res) => {\n toast.success(\"Your document was successfully uploaded\");\n docs.value.files.push(res.data);\n docs.value.files.sort((a: any, b: any) =>\n a.Key.localeCompare(b.Key, \"en-AU\", {\n numeric: true,\n sensitivity: \"base\",\n caseFirst: \"upper\",\n })\n );\n })\n .catch(() => toast.error(\"Something went wrong\"))\n .finally(() => (loading.value = false));\n};\nfunction addFolder(folder: any) {\n docs.value.folders.push(folder);\n docs.value.folders.sort((a: any, b: any) =>\n a.Prefix.localeCompare(b.Prefix, \"en-AU\", {\n numeric: true,\n sensitivity: \"base\",\n caseFirst: \"upper\",\n })\n );\n}\nfunction openFile(file: any) {\n if (isImage(file.Key)) {\n showImg.value = file.Link;\n } else {\n window.open(file.Link, \"_blank\");\n }\n}\nfunction showDeleteFileModal(file: string, index: number) {\n fileForDelete.value = { file, index };\n isOpenRemoveDocumentsModal.value = true;\n}\nconst deleteFile = () => {\n const data = {\n estateId: estateId.value,\n foldername:\n getRemoveDocumentType.value === \"folder\"\n ? fileForDelete.value.file\n : null,\n filename:\n getRemoveDocumentType.value === \"folder\"\n ? null\n : fileForDelete.value.file,\n };\n loading.value = true;\n store\n .dispatch(\"estate/deleteEstateFolder\", data)\n .then(() => {\n isOpenRemoveDocumentsModal.value = false;\n docs.value[`${getRemoveDocumentType.value}s`].splice(\n fileForDelete.value.index,\n 1\n );\n })\n .catch(() => toast.error(\"Something went wrong\"))\n .finally(() => (loading.value = false));\n};\nconst showShareModal = ref(false);\nconst fileToShare = ref({});\nconst shareFile = (file: any) => {\n showShareModal.value = true;\n fileToShare.value = {\n fileName: file.Key,\n url: file.Link,\n modifiedDate: file.LastModified,\n ETag: file.ETag,\n };\n}\n\nconst __returned__ = { store, toast, estateId, folderPath, docs, fileForDelete, isOpenRemoveDocumentsModal, getRemoveDocumentType, showCreateFolder, fileInput, documentTypes, showImg, activeFolder, loading, getFolder, toFolder, onBack, getFolderName, getFileName, uploadFile, addFolder, openFile, showDeleteFileModal, deleteFile, showShareModal, fileToShare, shareFile, get router() { return router }, computed, onMounted, ref, watch, get useStore() { return useStore }, get formatDate() { return formatDate }, DropDown, RemoveDocumentsModal, CreateFolderModal, ImagePreviewModal, ShareLotsModal, get isImage() { return isImage }, get previewIcon() { return previewIcon }, get downloadFile() { return downloadFile }, get UserRoles() { return UserRoles }, get plural() { return plural }, get isValidFileSize() { return isValidFileSize }, get isValidDocumentType() { return isValidDocumentType }, get validDocumentsTypes() { return validDocumentsTypes }, get useToast() { return useToast } }\nObject.defineProperty(__returned__, '__isScriptSetup', { enumerable: false, value: true })\nreturn __returned__\n}\n\n})","import { render } from \"./DocumentsView.vue?vue&type=template&id=c1530dda&scoped=true&ts=true&lang=pug\"\nimport script from \"./DocumentsView.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./DocumentsView.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./DocumentsView.vue?vue&type=style&index=0&id=c1530dda&lang=scss&scoped=true\"\n\nimport exportComponent from \"/codebuild/output/src264950160/src/lottrackr-front/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-c1530dda\"]])\n\nexport default __exports__","import { UserInterface } from \"@/types/UserInterface\";\n\nexport function getFirstLastName(user: UserInterface) {\n return user ? `${user.firstName ? user.firstName : \"\"} ${user.lastName ? user.lastName : \"\"}` : \"\";\n}\nexport function getFullName(user: UserInterface) {\n return user ? `${user.firstName} ${user.middleName} ${user.lastName}` : \"\";\n}\n","import { createElementVNode as _createElementVNode, vModelText as _vModelText, normalizeClass as _normalizeClass, withDirectives as _withDirectives, withModifiers as _withModifiers, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-55bd4879\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"modal-wrapper\" }\nconst _hoisted_2 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"modal-title\" }, \"Create Folder\", -1))\nconst _hoisted_3 = { class: \"input-row\" }\nconst _hoisted_4 = { class: \"input-wr input-price-wr\" }\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"label\", { class: \"label\" }, \"Folder Name\", -1))\nconst _hoisted_6 = [\"disabled\"]\nconst _hoisted_7 = [\"disabled\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createBlock($setup[\"Modal\"], {\n isOpen: $props.isOpen,\n showClose: false,\n onClose: $setup.close\n }, {\n content: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_1, [\n _hoisted_2,\n _createElementVNode(\"form\", {\n class: \"default-form\",\n onSubmit: _cache[2] || (_cache[2] = _withModifiers(() => {}, [\"prevent\"]))\n }, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _hoisted_5,\n _withDirectives(_createElementVNode(\"input\", {\n class: _normalizeClass([\"input\", { error: $setup.v$.foldername.$error }]),\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => (($setup.form.foldername) = $event)),\n type: \"text\",\n placeholder: \"Folder Name\",\n onBlur: _cache[1] || (_cache[1] = \n//@ts-ignore\n(...args) => ($setup.v$.foldername.$touch && $setup.v$.foldername.$touch(...args)))\n }, null, 34), [\n [\n _vModelText,\n $setup.form.foldername,\n void 0,\n { trim: true }\n ]\n ])\n ])\n ])\n ], 32),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"controls\", { 'disabled-block ': $setup.disabled }])\n }, [\n _createElementVNode(\"button\", {\n class: \"button default cancel\",\n onClick: $setup.close,\n disabled: $setup.disabled\n }, \"Cancel\", 8, _hoisted_6),\n _createElementVNode(\"button\", {\n class: \"button default primary save\",\n onClick: $setup.create,\n disabled: $setup.disabled\n }, \"Create\", 8, _hoisted_7)\n ], 2)\n ])\n ]),\n _: 1\n }, 8, [\"isOpen\"]))\n}","import { defineComponent as _defineComponent } from 'vue'\nimport { reactive, ref } from \"vue\";\nimport Modal from \"@/components/ui/Modal.vue\";\nimport useVuelidate from \"@vuelidate/core\";\nimport { required } from \"@vuelidate/validators\";\nimport { useStore } from \"vuex\";\nimport { resetVuelidateErrors } from \"@/helpers/vuelidate\";\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'CreateFolderModal',\n props: {\n isOpen: {\n type: Boolean,\n required: true,\n },\n estateId: {\n type: String,\n required: true,\n },\n folderPath: {\n type: String,\n required: true,\n },\n},\n emits: [\"update\", \"close\"],\n setup(__props, { expose: __expose, emit: emits }) {\n __expose();\n\nconst props = __props;\n\nconst store = useStore();\n\n\nconst form = reactive({\n foldername: \"\",\n});\nconst rules = {\n foldername: { required },\n};\nconst v$ = useVuelidate(rules, form);\n\nfunction close() {\n emits(\"close\");\n clear();\n}\n\nconst disabled = ref(false);\nconst create = () => {\n v$.value.$touch();\n if (v$.value.$invalid) {\n return;\n }\n disabled.value = true;\n store\n .dispatch(\"estate/createEstateFolder\", {\n estateId: props.estateId,\n foldername: props.folderPath + form.foldername + \"/\",\n })\n .then((res) => {\n clear();\n emits(\"update\", res.data);\n emits(\"close\");\n })\n .finally(() => {\n disabled.value = false;\n });\n};\n\nfunction clear() {\n form.foldername = \"\";\n resetVuelidateErrors(v$);\n}\n\nconst __returned__ = { store, emits, props, form, rules, v$, close, disabled, create, clear, reactive, ref, Modal, get useVuelidate() { return useVuelidate }, get required() { return required }, get useStore() { return useStore }, get resetVuelidateErrors() { return resetVuelidateErrors } }\nObject.defineProperty(__returned__, '__isScriptSetup', { enumerable: false, value: true })\nreturn __returned__\n}\n\n})","import { render } from \"./CreateFolderModal.vue?vue&type=template&id=55bd4879&scoped=true&ts=true&lang=pug\"\nimport script from \"./CreateFolderModal.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CreateFolderModal.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CreateFolderModal.vue?vue&type=style&index=0&id=55bd4879&lang=scss&scoped=true\"\n\nimport exportComponent from \"/codebuild/output/src264950160/src/lottrackr-front/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-55bd4879\"]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\nimport _imports_0 from '@/assets/icons/info-icon.svg'\n\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-4cef99d7\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"info-container\" }\nconst _hoisted_2 = { class: \"info-content\" }\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", {\n class: \"info-content-icon\",\n src: _imports_0\n}, null, -1))\nconst _hoisted_4 = { class: \"info-content-data\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _hoisted_3,\n _createElementVNode(\"div\", _hoisted_4, _toDisplayString($setup.props.text), 1)\n ])\n ]))\n}","import { defineComponent as _defineComponent } from 'vue'\n\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'InfoWithIcon',\n props: {\n text: String,\n},\n setup(__props, { expose: __expose }) {\n __expose();\n\nconst props = __props;\n\n\n\n\n\nconst __returned__ = { props }\nObject.defineProperty(__returned__, '__isScriptSetup', { enumerable: false, value: true })\nreturn __returned__\n}\n\n})","import { render } from \"./InfoWithIcon.vue?vue&type=template&id=4cef99d7&scoped=true&ts=true&lang=pug\"\nimport script from \"./InfoWithIcon.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./InfoWithIcon.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./InfoWithIcon.vue?vue&type=style&index=0&id=4cef99d7&lang=scss&scoped=true\"\n\nimport exportComponent from \"/codebuild/output/src264950160/src/lottrackr-front/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-4cef99d7\"]])\n\nexport default __exports__","export * from \"-!../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js??ref--1-1!./StageButtonLink.vue?vue&type=style&index=0&id=be393694&lang=scss&scoped=true\"","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",f=\"month\",h=\"quarter\",c=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},w=function(t,e){if(p(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},O=v;O.l=S,O.i=p,O.w=function(t,e){return w(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=S(t.locale,null,!0),this.parse(t)}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(O.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.$x=t.x||{},this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return O},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=w(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return w(t) (_pushScopeId(\"data-v-a376937e\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"modal-wrapper\" }\nconst _hoisted_2 = { class: \"modal-title\" }\nconst _hoisted_3 = { class: \"description\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createBlock($setup[\"Modal\"], {\n isOpen: $props.isOpen,\n onClose: $setup.close\n }, {\n content: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _renderSlot(_ctx.$slots, \"title\", {}, undefined, true)\n ]),\n _createElementVNode(\"div\", _hoisted_3, [\n _renderSlot(_ctx.$slots, \"description\", {}, undefined, true)\n ]),\n _createElementVNode(\"div\", { class: \"controls\" }, [\n _createElementVNode(\"button\", {\n class: \"button cancel\",\n onClick: $setup.close\n }, \"Cancel\"),\n _createElementVNode(\"button\", {\n class: \"button primary\",\n onClick: $setup.confirm\n }, \"Confirm\")\n ])\n ])\n ]),\n _: 3\n }, 8, [\"isOpen\"]))\n}","import { defineComponent as _defineComponent } from 'vue'\nimport { watch } from \"vue\";\nimport Modal from \"@/components/ui/Modal.vue\";\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'RemoveDocumentModal',\n props: {\n isOpen: {\n type: Boolean,\n required: true,\n },\n},\n emits: [\"close\", \"confirm\"],\n setup(__props, { expose: __expose, emit: emits }) {\n __expose();\n\nconst props = __props;\n\n\n\nfunction close() {\n emits(\"close\");\n}\nfunction confirm() {\n emits(\"confirm\");\n}\n\n\nconst __returned__ = { emits, props, close, confirm, watch, Modal }\nObject.defineProperty(__returned__, '__isScriptSetup', { enumerable: false, value: true })\nreturn __returned__\n}\n\n})","import { render } from \"./RemoveDocumentModal.vue?vue&type=template&id=a376937e&scoped=true&ts=true&lang=pug\"\nimport script from \"./RemoveDocumentModal.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./RemoveDocumentModal.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./RemoveDocumentModal.vue?vue&type=style&index=0&id=a376937e&lang=scss&scoped=true\"\n\nimport exportComponent from \"/codebuild/output/src264950160/src/lottrackr-front/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-a376937e\"]])\n\nexport default __exports__","export * from \"-!../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js??ref--1-1!./StageSvgMap.vue?vue&type=style&index=0&id=57fc788e&lang=scss&scoped=true\"","import { Ref } from \"vue\";\n\nexport const startDragging = (\n event : MouseEvent,\n zoom : number,\n isDragging : Ref,\n svgContainerMap : Ref,\n svgStartPosition : Ref,\n svgStartScrollPosition : Ref,\n) : void => {\n if(zoom !== 1){\n isDragging.value = true;\n svgStartPosition.value = { x: event.clientX, y: event.clientY};\n svgStartScrollPosition.value = {\n x : svgContainerMap.value.scrollLeft,\n y : svgContainerMap.value.scrollTop,\n };\n svgContainerMap.value.style.cursor = 'grabbing';\n }\n}\n\nexport const handleDragging = (\n event : MouseEvent,\n isDragging : Ref,\n svgContainerMap : Ref,\n svgStartPosition : Ref,\n svgStartScrollPosition : Ref,\n) : void => {\n event.preventDefault();\n if (isDragging.value) {\n const deltaX = event.clientX - svgStartPosition.value.x;\n const deltaY = event.clientY - svgStartPosition.value.y;\n svgContainerMap.value.scrollLeft = svgStartScrollPosition.value.x - deltaX;\n svgContainerMap.value.scrollTop = svgStartScrollPosition.value.y - deltaY;\n }\n}\n\nexport const stopDragging = (\n zoom : number,\n isDragging : Ref,\n svgContainerMap : Ref,\n) : void => {\n if(zoom !== 1){\n svgContainerMap.value.style.cursor = 'grab';\n }\n else{\n svgContainerMap.value.style.cursor = 'default';\n }\n isDragging.value = false;\n}\n","export enum EventActionName {\n CONVERT_TO_LEAD = \"convertToLead\",\n LOT_ON_CLICK = \"lotOnClick\",\n HOUSE_DESIGN_ON_CLICK = \"houseDesignOnClick\",\n}\n\nexport enum EventByCategory {\n ON_CLICK = \"onClick\",\n LEAD_CONVERSION = \"leadConversion\",\n}\n\nexport enum EventByAction {\n CLICK = \"click\",\n SUBMIT = \"submit\",\n}\n\nexport enum EventLabelByName {\n CLICK_LOT = \"Click lot\",\n CONTACT_US = \"Contact us\",\n CLICK_HOUSE_DESIGN = \"Click house design\",\n MAKE_ENQUIRY = \"Make enquiry\",\n REQUEST_INITIAL_HOLD = \"Request initial hold\",\n REQUEST_BUILDER_HOLD = \"Request hold\",\n}\n\nexport interface EventTracking {\n actionsName: EventActionName;\n eventByCategory: EventByCategory;\n eventLabelByName: EventLabelByName;\n eventByAction: EventByAction;\n estateById?: string;\n stageById?: string;\n stageTitle?: string;\n lotById?: string;\n lotTitle?: string;\n houseDesignId?: string;\n houseDesignName?: string;\n}\n","const getRegex = (string: string | RegExp) => new RegExp(string, \"u\");\n\nexport const hasLowerCaseRegex = getRegex(\"^.*[a-z].*$\");\nexport const hasUpperCaseRegex = getRegex(\"^.*[A-Z].*$\");\nexport const hasSpecialCharsRegex = getRegex(\n \"^.*[`!@#$%^&*()_+\\\\-=\\\\[\\\\]{};':\\\"\\\\\\\\|,.<>\\\\/?~].*$\"\n);\nexport const hasDigitsRegex = getRegex(\"^.*[+0-9].*$\");\nexport const latinCharactersRegex = getRegex(/^[A-Za-z0-9(),.`\\-&\\s]*$/);\n","\nconst pinchZoomHammer = (\n scale: number, callback: (deltaScale : number) => void\n) : void => {\n\n let currentScale = 1;\n const smoothingFactor = 0.2;\n const targetScale = currentScale * scale;\n const smoothScale = currentScale + (targetScale - currentScale) * smoothingFactor;\n \n const minScale = 0.5;\n const maxScale = 2;\n const smoothedScale = Math.min(Math.max(smoothScale, minScale), maxScale);\n\n const deltaScale = smoothedScale - currentScale;\n currentScale = smoothedScale;\n\n callback(deltaScale);\n}\n\nexport default pinchZoomHammer;","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, Fragment as _Fragment, createVNode as _createVNode, createBlock as _createBlock, normalizeClass as _normalizeClass, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-e7cf310c\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n key: 0,\n class: \"admin-header\"\n}\nconst _hoisted_2 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h3\", { class: \"title-main\" }, \"Map\", -1))\nconst _hoisted_3 = {\n key: 0,\n class: \"buttons\"\n}\nconst _hoisted_4 = {\n key: 0,\n class: \"legend\",\n id: \"legend-map\"\n}\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"status gray\" }, \"Not Released\", -1))\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"status success\" }, \"Now Selling\", -1))\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"status warning\" }, \"Sold Out\", -1))\nconst _hoisted_8 = [\n _hoisted_5,\n _hoisted_6,\n _hoisted_7\n]\nconst _hoisted_9 = {\n key: 0,\n class: \"map-info-block\"\n}\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", {\n class: \"legend\",\n id: \"legend-map\"\n}, [\n /*#__PURE__*/_createElementVNode(\"div\", { class: \"status gray\" }, \"Not Released\"),\n /*#__PURE__*/_createElementVNode(\"div\", { class: \"status success\" }, \"Now Selling\"),\n /*#__PURE__*/_createElementVNode(\"div\", { class: \"status warning\" }, \"Sold Out\")\n], -1))\nconst _hoisted_11 = [\n _hoisted_10\n]\nconst _hoisted_12 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"map-info-iframe\" }, null, -1))\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\"map-wr\", { isBuilderView: $setup.props.builderView }])\n }, [\n ($setup.props.role === $setup.UserRoles.SUPER_ADMIN)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _hoisted_2,\n ($setup.map !== null)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n (!$setup.map)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n class: \"button default primary add-btn-primary\",\n onClick: $setup.toCreateMap\n }, \"Add Map\"))\n : (_openBlock(), _createElementBlock(_Fragment, { key: 1 }, [\n _createElementVNode(\"button\", {\n class: \"button default outlined\",\n onClick: $setup.toEditMap\n }, \"Edit Map\"),\n _createElementVNode(\"button\", {\n class: \"button default outlined warning\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => ($setup.showConfirmDeleteModal = true))\n }, \"Delete Map\")\n ], 64))\n ]))\n : _createCommentVNode(\"\", true),\n _createVNode($setup[\"ConfirmDeleteModal\"], {\n isOpen: $setup.showConfirmDeleteModal,\n deleteItem: 'estate map',\n onClose: _cache[1] || (_cache[1] = ($event: any) => ($setup.showConfirmDeleteModal = false)),\n onConfirm: $setup.deleteMap\n }, null, 8, [\"isOpen\"])\n ]))\n : _createCommentVNode(\"\", true),\n (!$setup.isDesktop && $setup.props.role === $setup.UserRoles.CUSTOMER && !$setup.props.isEmbedded)\n ? (_openBlock(), _createBlock($setup[\"StageNavMobile\"], {\n key: 1,\n estateId: $setup.estateId,\n mapPage: $setup.props.mapPage,\n isEmbedded: $setup.props.isEmbedded,\n onOnStage: _cache[2] || (_cache[2] = ($event: any) => ($setup.onStage($event))),\n onChangeView: _cache[3] || (_cache[3] = ($event: any) => (_ctx.$emit('changeView')))\n }, null, 8, [\"estateId\", \"mapPage\", \"isEmbedded\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"svg-wrapper\", { isEmbeddedDesktop: $setup.isEmbeddedDesktop, isBuilderView: $setup.props.builderView }])\n }, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"svg-container-map\", { 'svg-map-embedded': $setup.isEmbeddedDesktop, isBuilderView: $setup.props.builderView }])\n }, [\n ($setup.isEmbeddedDesktop)\n ? (_openBlock(), _createBlock($setup[\"MapSidePanel\"], {\n key: 0,\n estateId: $setup.estateId,\n hoverStageId: $setup.hoverStageId,\n lotsByHouseDesigns: $setup.props.lotsByHouseDesigns,\n builderView: $setup.props.builderView,\n hideOptions: $setup.props.hideMapSidePanelOptions,\n onOnStageHover: $setup.onSidePanelStageHover,\n onOnStageClick: $setup.onSidePanelStageClick,\n onOnRegister: _cache[4] || (_cache[4] = ($event: any) => (_ctx.$emit('onRegister'))),\n onOnMessage: _cache[5] || (_cache[5] = ($event: any) => (_ctx.$emit('onMessage')))\n }, null, 8, [\"estateId\", \"hoverStageId\", \"lotsByHouseDesigns\", \"builderView\", \"hideOptions\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"map-elements-container\", { 'map-max-width': $setup.isEmbeddedDesktop }])\n }, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"map-elements-wr\", { isBuilderView: $setup.props.builderView }])\n }, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"zoom-container\", [{ 'zoom-active': $props.zoom !== 1 && $setup.isDesktop }, { 'zoom-desktop-embedded': $setup.isEmbeddedDesktop }, { 'zoom-hidden': $setup.props.builderView }]])\n }, [\n _createElementVNode(\"button\", {\n class: \"button zoom-btn\",\n onClick: $setup.zoomIn\n }, \"+\"),\n _createElementVNode(\"button\", {\n class: \"button zoom-btn\",\n onClick: $setup.zoomOut\n }, \"-\")\n ], 2),\n ($setup.props.role !== $setup.UserRoles.SUPER_ADMIN && $setup.isDesktop)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n class: _normalizeClass([\"map-info-block\", { 'map-info-embedded': $setup.isEmbeddedDesktop }])\n }, [\n (!$setup.isEmbeddedDesktop)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_4, _hoisted_8))\n : _createCommentVNode(\"\", true)\n ], 2))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"scroll-wrapper\", [{ 'svg-container grab': $setup.props.zoom !== 1 }, { 'map-container-side': $setup.isEmbeddedDesktop }]]),\n ref: \"svgContainerMap\",\n onMousedown: $setup.startDrag,\n onMousemove: $setup.handleDrag,\n onMouseup: $setup.stopDrag\n }, [\n _createVNode($setup[\"EstateSvgMap\"], {\n map: $setup.map,\n stages: $setup.stages,\n getTooltipText: $setup.getTooltipText,\n getItemPathClasses: $setup.getItemPathClasses,\n zoom: $setup.props.zoom,\n onOnStageHover: $setup.onStageHover,\n onOnStageLeave: $setup.onStageLeave,\n onOnStageClick: $setup.onStage\n }, null, 8, [\"map\", \"stages\", \"zoom\"])\n ], 34)\n ], 2)\n ], 2),\n ($setup.isEmbeddedDesktop && !$setup.props.builderView)\n ? (_openBlock(), _createBlock($setup[\"MapSideLegend\"], {\n key: 1,\n isEstateMap: true\n }))\n : _createCommentVNode(\"\", true)\n ], 2),\n ($setup.props.role !== $setup.UserRoles.SUPER_ADMIN && !$setup.isEmbeddedDesktop)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9, _hoisted_11))\n : _createCommentVNode(\"\", true),\n _hoisted_12\n ], 2)\n ], 2))\n}","import { defineComponent as _defineComponent } from 'vue'\nimport ConfirmDeleteModal from \"@/components/ui/modals/ConfirmDeleteModal.vue\";\n import router from \"@/router\";\n import {\n computed,\n onMounted,\n ref,\n watch,\n } from \"vue\";\n import { useStore } from \"vuex\";\n import { EstateMapInterface } from \"@/types/EstateMapInterface\";\n import { UserRoles } from \"@/enums/UserRoles\";\n import { StageMapInterface } from \"@/types/StageMapInterface\";\n import { getStageStatusClass } from \"@/helpers/status\";\n import { StageStatus } from \"@/enums/StageStatus\";\n import { StageInterface } from \"@/types/StageInterface\";\n import { useIsDesktop } from \"@/features/useIsDesktop\";\n import StageNavMobile from \"@/components/StageNavMobile.vue\";\n import MapSidePanel from \"@/components/MapSidePanel.vue\";\n import Hammer from \"hammerjs\";\n import type HammerInput from \"hammerjs\";\n import pinchZoomHammer from \"@/helpers/estateMap/mapsZoom\";\n import { handleDragging, startDragging, stopDragging } from \"@/helpers/zoom\";\n import MapSideLegend from \"./MapSideLegend.vue\";\n import EstateSvgMap from \"@/components/maps/EstateSvgMap.vue\";\n\n const mobileLayoutWidth = 680;\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'EstateMap',\n props: {\n role: { type: String, default: () => UserRoles.LANDOWNER },\n viewType: { type: String, default: \"\" },\n isEmbedded: { type: Boolean, default: false },\n mapPage: { type: String, default: \"\" },\n zoom: { type: Number, default: 1 },\n lotsByHouseDesigns: { type: Array, required: false, default: undefined },\n builderView: { type: Boolean, required: false },\n plansView: { type: Boolean, required: false, default: false },\n estateId: { type: String, required: false, default: undefined },\n hideMapSidePanelOptions: { type: Boolean, required: false },\n businessId: { type: String, required: false, default: undefined },\n },\n emits: [\n \"changeView\",\n \"updateZoom\",\n \"onRegister\",\n \"onMessage\",\n \"changeViewMap\",\n ],\n setup(__props, { expose: __expose, emit }) {\n __expose();\n\nconst props = __props;\n\n \n const store = useStore();\n const { isDesktop } = useIsDesktop(mobileLayoutWidth);\n const userId = router.currentRoute.value.params.userId;\n const estateId = computed(() => getEstateId());\n const map = ref(null);\n const stages = ref([]);\n \n const stageSidePanelHover = ref({\n value: false,\n id: \"\",\n });\n const showConfirmDeleteModal = ref(false);\n const getAvailableStages = computed(() => {\n return stages.value.filter(\n (value) => value.stageId.status === StageStatus.NOW_SELLING\n );\n });\n\n const isEmbeddedDesktop = computed(() => isDesktop.value);\n\n const getEstateId = () => {\n if (props.role === UserRoles.LANDOWNER) {\n return store.state.user.selectedEstateId;\n } else if (props.estateId) {\n return props.estateId;\n } else {\n return router.currentRoute.value.params.estateId;\n }\n };\n\n const onSidePanelStageHover = (value: boolean, id: string) => {\n stageSidePanelHover.value = { value, id };\n };\n\n const onSidePanelStageClick = (id: string) => {\n const stage = stages.value.filter((s) => s.stageId._id === id);\n onStage(stage[0]);\n };\n\n const isCustomerRole = computed(() => {\n return props.role === UserRoles.CUSTOMER;\n });\n\n onMounted(() => {\n getMap();\n getStages();\n });\n\n const hoverStageId = ref(\"\");\n\n const onStageHover = (id: string) => {\n hoverStageId.value = id;\n };\n\n const onStageLeave = () => {\n hoverStageId.value = \"\";\n };\n\n const isDragging = ref(false);\n const svgStartPosition = ref({ x: 0, y: 0 });\n const svgStartScrollPosition = ref({ x: 0, y: 0 });\n const svgContainerMap = ref();\n\n const zoomIn = () => {\n emit(\"updateZoom\", 0.2);\n };\n\n const zoomOut = () => {\n emit(\"updateZoom\", -0.2);\n };\n\n const startDrag = (event: MouseEvent) => {\n startDragging(\n event,\n props.zoom,\n isDragging,\n svgContainerMap,\n svgStartPosition,\n svgStartScrollPosition\n );\n };\n const handleDrag = (event: MouseEvent) => {\n handleDragging(\n event,\n isDragging,\n svgContainerMap,\n svgStartPosition,\n svgStartScrollPosition\n );\n };\n const stopDrag = () => {\n stopDragging(props.zoom, isDragging, svgContainerMap);\n };\n\n function getMap() {\n store\n .dispatch(\"estate/getEstateMap\", estateId.value)\n .then((res) => {\n map.value = res.data;\n })\n .catch((error) => {\n if (error.response?.data?.statusCode === 404) {\n map.value = \"\";\n }\n });\n }\n const getStages = () => {\n store\n .dispatch(\"stage/getStagesMap\", {\n estateId: estateId.value,\n isCustomer: isCustomerRole.value,\n })\n .then((res) => {\n stages.value = res.data;\n });\n };\n function toCreateMap() {\n router.push({\n name: \"AdminEstateMapCreate\",\n params: { userId, estateId: estateId.value },\n });\n }\n function toEditMap() {\n router.push({\n name: \"AdminEstateMapUpdate\",\n params: { userId, estateId: estateId.value },\n });\n }\n function deleteMap() {\n store.dispatch(\"estate/deleteEstateMap\", map.value._id).then(() => {\n getMap();\n });\n }\n function onStage(stage: StageMapInterface) {\n const embed = props.isEmbedded.toString();\n\n if (props.builderView) {\n emit(\"changeViewMap\");\n return;\n }\n if (props.isEmbedded && !isDesktop.value) {\n const { href } = router.resolve({\n name: \"EstateMap\",\n params: {\n estateId: estateId.value,\n },\n });\n window.open(`${href}?stageId=${stage.stageId._id}&embed=false`, \"_blank\");\n return;\n }\n if (props.role === UserRoles.LANDOWNER) {\n router.push({\n name: \"Lots\",\n params: { stageId: stage.stageId._id, embed },\n query: { map: \"true\" },\n });\n return;\n }\n if (props.role === UserRoles.SUPER_ADMIN) {\n router.push({\n name: \"AdminStageMap\",\n params: {\n userId,\n estateId: estateId.value,\n stageId: stage.stageId._id,\n },\n });\n return;\n }\n if (\n props.role === UserRoles.CUSTOMER &&\n stage.stageId.status === StageStatus.NOW_SELLING\n ) {\n router.push({\n path: router.currentRoute.value.path,\n query: {\n stageId: stage.stageId._id,\n embed,\n businessId: props.businessId,\n },\n });\n }\n }\n\n const getItemPathClasses = (stage: StageMapInterface) => [\n getStageStatusClass(stage.stageId?.status),\n { \"selling-animation\": stage.stageId?.status === StageStatus.NOW_SELLING },\n { \"admin-highlight\": props.role === UserRoles.SUPER_ADMIN },\n {\n \"not-clickable\":\n props.role === UserRoles.CUSTOMER &&\n stage.stageId?.status !== StageStatus.NOW_SELLING,\n },\n {\n \"stage-side-panel-hover\":\n stageSidePanelHover.value?.value &&\n stageSidePanelHover.value?.id === stage.stageId?._id,\n },\n {\n \"stage-side-panel\":\n stage.stageId?.status === StageStatus.NOW_SELLING && isEmbeddedDesktop,\n },\n { \"stage-plans-view\": props.plansView },\n ];\n\n const getTooltipText = (stageMap: StageMapInterface) => {\n const stage = stageMap.stageId;\n if (stage.status === StageStatus.NOW_SELLING) {\n return `

STAGE ${stage.title}

\n ${stage.status.toUpperCase()}\n

${\n props.builderView\n ? props.lotsByHouseDesigns?.length\n : stage.availableLotsCount\n } Available lots

\n

Click to view

`;\n }\n return `

STAGE ${stage.title}

\n ${stage.status.toUpperCase()}\n

${\n props.builderView\n ? props.lotsByHouseDesigns?.length\n : stage.availableLotsCount\n } Available lots

`;\n };\n\n onMounted(() => {\n const mc = new Hammer(svgContainerMap.value);\n\n mc.get(\"pinch\").set({ enable: true });\n mc.on(\"pinch\", (event: HammerInput) => {\n pinchZoomHammer(event.scale, (delta) => emit(\"updateZoom\", delta));\n });\n\n mc.on(\"panstart\", (event: HammerInput) => {\n svgStartPosition.value = { x: event.center.x, y: event.center.y };\n svgStartScrollPosition.value = {\n x: svgContainerMap.value.scrollLeft,\n y: svgContainerMap.value.scrollTop,\n };\n });\n\n mc.on(\"pan\", (event: HammerInput) => {\n const deltaX = event.center.x - svgStartPosition.value.x;\n const deltaY = event.center.y - svgStartPosition.value.y;\n\n svgContainerMap.value.scrollLeft =\n svgStartScrollPosition.value.x - deltaX;\n svgContainerMap.value.scrollTop = svgStartScrollPosition.value.y - deltaY;\n });\n });\n\nconst __returned__ = { emit, store, mobileLayoutWidth, isDesktop, userId, estateId, map, stages, props, stageSidePanelHover, showConfirmDeleteModal, getAvailableStages, isEmbeddedDesktop, getEstateId, onSidePanelStageHover, onSidePanelStageClick, isCustomerRole, hoverStageId, onStageHover, onStageLeave, isDragging, svgStartPosition, svgStartScrollPosition, svgContainerMap, zoomIn, zoomOut, startDrag, handleDrag, stopDrag, getMap, getStages, toCreateMap, toEditMap, deleteMap, onStage, getItemPathClasses, getTooltipText, ConfirmDeleteModal, get router() { return router }, computed, onMounted, ref, watch, get useStore() { return useStore }, get EstateMapInterface() { return EstateMapInterface }, get UserRoles() { return UserRoles }, get StageMapInterface() { return StageMapInterface }, get getStageStatusClass() { return getStageStatusClass }, get StageStatus() { return StageStatus }, get StageInterface() { return StageInterface }, get useIsDesktop() { return useIsDesktop }, StageNavMobile, MapSidePanel, get Hammer() { return Hammer }, get pinchZoomHammer() { return pinchZoomHammer }, get handleDragging() { return handleDragging }, get startDragging() { return startDragging }, get stopDragging() { return stopDragging }, MapSideLegend, EstateSvgMap }\nObject.defineProperty(__returned__, '__isScriptSetup', { enumerable: false, value: true })\nreturn __returned__\n}\n\n})","import { render } from \"./EstateMap.vue?vue&type=template&id=e7cf310c&scoped=true&ts=true&lang=pug\"\nimport script from \"./EstateMap.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./EstateMap.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./EstateMap.vue?vue&type=style&index=0&id=e7cf310c&lang=scss&scoped=true\"\n\nimport exportComponent from \"/codebuild/output/src264950160/src/lottrackr-front/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-e7cf310c\"]])\n\nexport default __exports__","export function phoneNumberOption(phone: string) {\n return {\n blocks: !phone || phone?.startsWith(\"+\") ? [3, 3, 3, 3] : [4, 3, 3],\n delimiter: \" \",\n };\n}\n\nexport const phonePlaceholder = \"0412 345 678\";\n\nexport const getCurrencyOptions = ({\n numeral = true,\n numeralThousandsGroupStyle = \"thousand\",\n numeralPositiveOnly = true,\n}: {\n numeral?: boolean;\n numeralThousandsGroupStyle?: NumeralThousandsGroupStyle;\n numeralPositiveOnly?: boolean;\n}): CurrencyOptions => ({\n numeral,\n numeralThousandsGroupStyle,\n numeralPositiveOnly,\n noImmediatePrefix: true,\n});\ntype NumeralThousandsGroupStyle = \"thousand\" | \"lakh\" | \"wan\";\n\ntype CurrencyOptions = {\n numeral: boolean;\n numeralThousandsGroupStyle: NumeralThousandsGroupStyle;\n numeralPositiveOnly: boolean;\n noImmediatePrefix: boolean;\n};\n","import { createElementVNode as _createElementVNode, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-857011de\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"modal-container\" }\nconst _hoisted_2 = { class: \"modal-wrapper\" }\nconst _hoisted_3 = [\"src\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createBlock($setup[\"Modal\"], {\n isOpen: $props.showImg,\n onClose: $setup.close,\n showContainer: false\n }, {\n content: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"button\", {\n class: \"close\",\n onClick: $setup.close\n }),\n _createElementVNode(\"img\", {\n src: $props.showImg,\n alt: \"Preview\"\n }, null, 8, _hoisted_3)\n ])\n ])\n ]),\n _: 1\n }, 8, [\"isOpen\"]))\n}","import { defineComponent as _defineComponent } from 'vue'\n\nimport Modal from \"@/components/ui/Modal.vue\";\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'ImagePeviewModal',\n props: {\n showImg: {\n type: String,\n },\n},\n emits: [\"close\"],\n setup(__props, { expose: __expose, emit: emits }) {\n __expose();\n\nconst props = __props;\n\n\n\nfunction close() {\n emits(\"close\");\n}\n\nconst __returned__ = { emits, props, close, Modal }\nObject.defineProperty(__returned__, '__isScriptSetup', { enumerable: false, value: true })\nreturn __returned__\n}\n\n})","import { render } from \"./ImagePeviewModal.vue?vue&type=template&id=857011de&scoped=true&ts=true&lang=pug\"\nimport script from \"./ImagePeviewModal.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./ImagePeviewModal.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./ImagePeviewModal.vue?vue&type=style&index=0&id=857011de&lang=scss&scoped=true\"\n\nimport exportComponent from \"/codebuild/output/src264950160/src/lottrackr-front/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-857011de\"]])\n\nexport default __exports__","import { toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\nimport _imports_0 from '@/assets/icons/builder-icon.svg'\nimport _imports_1 from '@/assets/icons/chevron-right-gray.svg'\n\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-5f491709\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"header-wr\" }\nconst _hoisted_2 = { class: \"lot-details-item\" }\nconst _hoisted_3 = { class: \"lot-details-item\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\"lot-btn-link-container\", { 'lot-btn-link-container-hover': $setup.props.hoverLotId === $setup.props.lot.lotId._id, expanded: $setup.props.builderView }]),\n onMouseover: $setup.onHover,\n onMouseleave: $setup.onMouseLeave,\n onClick: $setup.onClick\n }, [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"p\", {\n class: _normalizeClass([\"lot-btn-title lot\", { 'title-hover': $setup.hover }])\n }, \"Lot \" + _toDisplayString($setup.props.lot.lotId.title), 3),\n ($props.lot.lotId.isBuildersEnabled)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n class: \"builder-info-wr\",\n onMouseover: $setup.onBuilderHover,\n onMouseleave: $setup.onBuilderLeave\n }, [\n (!$setup.props.builderView)\n ? (_openBlock(), _createElementBlock(\"img\", {\n key: 0,\n class: _normalizeClass([\"builder-info\", { 'builder-icon-hover': $setup.hover }]),\n src: _imports_0,\n ref: \"builderIconRef\"\n }, null, 2))\n : _createCommentVNode(\"\", true)\n ], 32))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"badge\", $setup.getLotCustomerMapStatusClass($setup.getLotStatus($props.lot.lotId.status === $setup.LotStatus.OFFLINE ? $props.lot.lotId?.offlineSale?.salePhase : $props.lot.lotId.status))])\n }, _toDisplayString($setup.getLotStatus($props.lot.lotId.status === $setup.LotStatus.OFFLINE? $props.lot.lotId?.offlineSale?.salePhase\n: $props.lot.lotId.status)), 3)\n ]),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"lot-details-wr\", { spacing: $setup.props.builderView }])\n }, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"detail-header\", { 'title-hover': $setup.hover, 'builder-view': $setup.props.builderView }])\n }, \"Size\", 2),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"detail-data\", { 'title-hover': $setup.hover, 'builder-view': $setup.props.builderView }])\n }, _toDisplayString($props.lot.lotId.size) + \" sqm\", 3)\n ]),\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"detail-header\", { 'title-hover': $setup.hover, 'builder-view': $setup.props.builderView }])\n }, \"Price\", 2),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"detail-data\", { 'title-hover': $setup.hover, 'builder-view': $setup.props.builderView }])\n }, _toDisplayString($setup.formatPrice($props.lot.lotId.price)), 3)\n ]),\n (!$setup.props.builderView)\n ? (_openBlock(), _createElementBlock(\"img\", {\n key: 0,\n class: _normalizeClass([\"lot-btn-chevron\", { 'title-hover': $setup.hover }]),\n src: _imports_1\n }, null, 2))\n : _createCommentVNode(\"\", true)\n ], 2),\n ($setup.hover && $setup.props.builderView)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n class: \"button default primary select\",\n onClick: $setup.onClick\n }, \"Select Lot\"))\n : _createCommentVNode(\"\", true)\n ], 34))\n}","import { defineComponent as _defineComponent } from 'vue'\nimport { ref, watch } from \"vue\";\n import { LotMapInterface } from \"@/types/LotMapInterface\";\n import { getLotStatus } from \"@/helpers/customer\";\n import { getLotCustomerMapStatusClass } from \"@/helpers/status\";\n import { LotStatus } from \"@/enums/LotStatus\";\n import { formatPrice } from \"@/helpers/transformation/price\";\n\n type propsType = {\n lot: LotMapInterface;\n hoverLotId: string;\n builderView: boolean;\n };\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'LotButtonLink',\n props: {\n lot: {},\n hoverLotId: {},\n builderView: { type: Boolean }\n },\n emits: [\"onLotHover\", \"onLotBuilderHover\", \"onClick\"],\n setup(__props: any, { expose: __expose, emit: emits }) {\n __expose();\n\nconst props = __props;\n\n const hover = ref(false);\n const builderHover = ref(false);\n const builderIconRef = ref();\n\n \n\n \n\n const onHover = () => {\n hover.value = true;\n emits(\"onLotHover\", true, props.lot.lotId._id);\n };\n\n const onMouseLeave = () => {\n hover.value = false;\n emits(\"onLotHover\", false, props.lot.lotId._id);\n };\n\n const onBuilderHover = () => {\n builderHover.value = true;\n emits(\"onLotBuilderHover\", true, props.lot.lotId._id);\n };\n\n const onBuilderLeave = () => {\n builderHover.value = false;\n emits(\"onLotBuilderHover\", false, props.lot.lotId._id);\n };\n\n const onClick = () => {\n emits(\"onClick\", props.lot);\n };\n\n watch(\n () => props.hoverLotId,\n () => {\n if (props.hoverLotId === props.lot.lotId._id) {\n hover.value = true;\n } else {\n hover.value = false;\n }\n }\n );\n\nconst __returned__ = { hover, builderHover, builderIconRef, props, emits, onHover, onMouseLeave, onBuilderHover, onBuilderLeave, onClick, ref, watch, get LotMapInterface() { return LotMapInterface }, get getLotStatus() { return getLotStatus }, get getLotCustomerMapStatusClass() { return getLotCustomerMapStatusClass }, get LotStatus() { return LotStatus }, get formatPrice() { return formatPrice } }\nObject.defineProperty(__returned__, '__isScriptSetup', { enumerable: false, value: true })\nreturn __returned__\n}\n\n})","import { render } from \"./LotButtonLink.vue?vue&type=template&id=5f491709&scoped=true&ts=true&lang=pug\"\nimport script from \"./LotButtonLink.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./LotButtonLink.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./LotButtonLink.vue?vue&type=style&index=0&id=5f491709&lang=scss&scoped=true\"\n\nimport exportComponent from \"/codebuild/output/src264950160/src/lottrackr-front/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-5f491709\"]])\n\nexport default __exports__","import { getUser } from \"@/features/useUser\";\nimport { LotInterface } from \"@/types/LotInterface\";\nimport { UserRoles } from \"@/enums/UserRoles\";\nimport {\n LandownerDetailsInterface,\n SalesPersonDetailsInterface,\n} from \"@/types/UserInterface\";\n\nexport const isLotOwner = (lot: LotInterface | null): boolean => {\n if (!lot) return true;\n if(!lot?.ownershipId) return true;\n\n const currentUser = getUser();\n const userDetails =\n currentUser.role === UserRoles.SALES_PERSON\n ? (currentUser.detailsId as SalesPersonDetailsInterface)\n : (currentUser.detailsId as LandownerDetailsInterface);\n\n const landownerId =\n currentUser.role === UserRoles.SALES_PERSON\n ? userDetails.landownerId\n : currentUser._id;\n\n return lot.ownershipId === landownerId;\n};\n","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, Fragment as _Fragment, createVNode as _createVNode, createTextVNode as _createTextVNode, toDisplayString as _toDisplayString, createBlock as _createBlock, normalizeClass as _normalizeClass, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-ddcdb672\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n key: 0,\n class: \"admin-header\"\n}\nconst _hoisted_2 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h3\", { class: \"title-main\" }, \"Map\", -1))\nconst _hoisted_3 = {\n key: 0,\n class: \"buttons\"\n}\nconst _hoisted_4 = {\n key: 1,\n class: \"available-lots-pop-up\"\n}\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, [\n /*#__PURE__*/_createTextVNode(\"Click \"),\n /*#__PURE__*/_createElementVNode(\"strong\", null, \"Available\"),\n /*#__PURE__*/_createTextVNode(\" lots to view more information\")\n], -1))\nconst _hoisted_6 = {\n key: 2,\n class: \"stage-info-nav\"\n}\nconst _hoisted_7 = { class: \"stage-available-lots\" }\nconst _hoisted_8 = {\n key: 0,\n class: \"zoom-info\"\n}\nconst _hoisted_9 = {\n key: 1,\n class: \"legend\"\n}\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"status gray\" }, \"Not Released\", -1))\nconst _hoisted_11 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"status success\" }, \"Available\", -1))\nconst _hoisted_12 = { class: \"status yellow\" }\nconst _hoisted_13 = { class: \"status warning\" }\nconst _hoisted_14 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"status\" }, \"Unconditional\", -1))\nconst _hoisted_15 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"status orange\" }, \"Option\", -1))\nconst _hoisted_16 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"status gray-middle\" }, \"Offline\", -1))\nconst _hoisted_17 = {\n key: 0,\n class: \"legend\"\n}\nconst _hoisted_18 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"status gray\" }, \"Not Released\", -1))\nconst _hoisted_19 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"status success\" }, \"Available\", -1))\nconst _hoisted_20 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"status light-blue\" }, \"Hold\", -1))\nconst _hoisted_21 = { class: \"status yellow\" }\nconst _hoisted_22 = { class: \"status warning\" }\nconst _hoisted_23 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"status\" }, \"Unconditional\", -1))\nconst _hoisted_24 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"status orange\" }, \"Option\", -1))\nconst _hoisted_25 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"status gray-middle\" }, \"Offline\", -1))\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\"map-wr\", { isBuilderView: $setup.props.builderView }]),\n onMousemove: $setup.handleMouseMove\n }, [\n ($setup.props.role === $setup.UserRoles.SUPER_ADMIN)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _hoisted_2,\n ($setup.map !== null)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n (!$setup.map)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n class: \"button default primary add-btn-primary\",\n onClick: $setup.toCreateMap\n }, \"Add Map\"))\n : (_openBlock(), _createElementBlock(_Fragment, { key: 1 }, [\n _createElementVNode(\"button\", {\n class: \"button default outlined\",\n onClick: $setup.toEditMap\n }, \"Edit Map\"),\n _createElementVNode(\"button\", {\n class: \"button default outlined warning\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => ($setup.showConfirmDeleteModal = true))\n }, \"Delete Map\")\n ], 64))\n ]))\n : _createCommentVNode(\"\", true),\n _createVNode($setup[\"ConfirmDeleteModal\"], {\n isOpen: $setup.showConfirmDeleteModal,\n deleteItem: 'stage map',\n onClose: _cache[1] || (_cache[1] = ($event: any) => ($setup.showConfirmDeleteModal = false)),\n onConfirm: $setup.deleteMap\n }, null, 8, [\"isOpen\"])\n ]))\n : _createCommentVNode(\"\", true),\n ($setup.availableLotsPopUpShow && $setup.isDesktop && $setup.props.role === $setup.UserRoles.CUSTOMER && !$setup.isEmbeddedDesktop)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n _hoisted_5,\n _createElementVNode(\"div\", {\n class: \"close-btn\",\n onClick: _cache[2] || (_cache[2] = ($event: any) => ($setup.availableLotsPopUpShow = false))\n })\n ]))\n : _createCommentVNode(\"\", true),\n (!$setup.isDesktop)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_6, [\n _createElementVNode(\"div\", { class: \"masterplan-btn-wr\" }, [\n _createElementVNode(\"button\", {\n class: \"button-with-icon back\",\n onClick: $setup.toMasterplan\n }, \"BACK\")\n ]),\n _createElementVNode(\"div\", _hoisted_7, \"Stage \" + _toDisplayString($setup.lots[0]?.stageId.title) + \": \" + _toDisplayString($setup.props.builderView ? $setup.props.lotsByHouseDesigns.length : $setup.getAvailableLots.length) + \" lots available\", 1),\n (!$props.builderView)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8, \"Zoom in / out to view. Click any lot to view more info.\"))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"svg-wrapper\", { isEmbeddedDesktop: $setup.isEmbeddedDesktop, isBuilderView: $setup.props.builderView }])\n }, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"svg-container-map\", { 'svg-map-embedded': $setup.isEmbeddedDesktop, isBuilderView: $setup.props.builderView }]),\n ref: \"svgMapEmbedded\"\n }, [\n ($setup.isEmbeddedDesktop)\n ? (_openBlock(), _createBlock($setup[\"MapSidePanel\"], {\n key: 0,\n estateId: $setup.estateId,\n isStageMap: true,\n stageId: $setup.lots[0]?.stageId._id,\n hoverLotId: $setup.hoverLotId,\n lotsByHouseDesigns: $setup.props.lotsByHouseDesigns,\n builderView: $setup.props.builderView,\n hideOptions: $setup.props.hideMapSidePanelOptions,\n onOnLotHover: $setup.onSidePanelLotHover,\n onOnLotClick: $setup.onSidePanelLotClick,\n onToMasterplan: $setup.toMasterplan,\n onOnLotBuilderHover: $setup.onLotBuilderHover,\n onOnRegister: _cache[3] || (_cache[3] = ($event: any) => (_ctx.$emit('onRegister'))),\n onOnMessage: _cache[4] || (_cache[4] = ($event: any) => (_ctx.$emit('onMessage')))\n }, null, 8, [\"estateId\", \"stageId\", \"hoverLotId\", \"lotsByHouseDesigns\", \"builderView\", \"hideOptions\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"map-elements-container\", { 'map-max-width': $setup.isEmbeddedDesktop }])\n }, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"map-elements-wr\", { isBuilderView: $setup.props.builderView }])\n }, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"map-info-block\", { 'map-info-embedded': $setup.isEmbeddedDesktop }])\n }, [\n ($setup.props.role === $setup.UserRoles.CUSTOMER && !$setup.isEmbeddedDesktop)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n class: \"button icon back-btn\",\n onClick: $setup.back\n }))\n : _createCommentVNode(\"\", true),\n false\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9, [\n _hoisted_10,\n _hoisted_11,\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"status\", $setup.props.role === $setup.UserRoles.CUSTOMER ? 'light-blue' : 'blue'])\n }, _toDisplayString($setup.props.role === $setup.UserRoles.CUSTOMER ? \"Hold\" : \"Pre-Contract\"), 3),\n _createElementVNode(\"div\", _hoisted_12, _toDisplayString($setup.props.role === $setup.UserRoles.CUSTOMER ? \"Under Contract\" : \"Contract Executed\"), 1),\n _createElementVNode(\"div\", _hoisted_13, _toDisplayString($setup.props.role === $setup.UserRoles.CUSTOMER ? \"Sold\" : \"Settled\"), 1),\n ($setup.props.role !== $setup.UserRoles.CUSTOMER)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 0 }, [\n _hoisted_14,\n _hoisted_15,\n _hoisted_16\n ], 64))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true)\n ], 2),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"zoom-container\", [{ 'zoom-active': $props.zoom !== 1 && $setup.isDesktop }, { 'zoom-desktop-embedded': $setup.isEmbeddedDesktop }, { 'zoom-hidden': $setup.props.builderView }]])\n }, [\n _createElementVNode(\"button\", {\n class: \"button zoom-btn\",\n onClick: _cache[5] || (_cache[5] = ($event: any) => ($setup.emits('updateZoom', 0.2)))\n }, \"+\"),\n _createElementVNode(\"button\", {\n class: \"button zoom-btn\",\n onClick: _cache[6] || (_cache[6] = ($event: any) => ($setup.emits('updateZoom', -0.2)))\n }, \"-\")\n ], 2),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"scroll-wrapper svg-scroll-wr\", [{ 'svg-container grab': $setup.props.zoom !== 1 }, { grab: $setup.props.zoom !== 1 }]]),\n ref: \"svgContainerMap\",\n onMousedown: $setup.startDragging,\n onMousemove: $setup.handleDragging,\n onMouseup: $setup.stopDragging\n }, [\n _createVNode($setup[\"StageSvgMap\"], {\n map: $setup.map,\n lots: $setup.lots,\n zoom: $setup.props.zoom,\n getTooltipText: $setup.getSvgTooltipText,\n getItemWrClasses: $setup.getSvgItemWrClasses,\n getItemPathClasses: $setup.getSvgItemPathClasses,\n getItemStatusPathClasses: $setup.getSvgItemStatusPathClasses,\n onOnLotHover: $setup.onLotHover,\n onOnLotLeave: $setup.onLotLeave,\n onOnLotClick: $setup.handleLotClickIfClickable\n }, null, 8, [\"map\", \"lots\", \"zoom\"])\n ], 34)\n ], 2),\n (!$setup.isDesktop)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_17, [\n _hoisted_18,\n _hoisted_19,\n _hoisted_20,\n _createElementVNode(\"div\", _hoisted_21, _toDisplayString($setup.props.role === $setup.UserRoles.CUSTOMER ? \"Under Contract\" : \"Contract Executed\"), 1),\n _createElementVNode(\"div\", _hoisted_22, _toDisplayString($setup.props.role === $setup.UserRoles.CUSTOMER ? \"Sold\" : \"Settled\"), 1),\n ($setup.props.role !== $setup.UserRoles.CUSTOMER)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 0 }, [\n _hoisted_23,\n _hoisted_24,\n _hoisted_25\n ], 64))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true)\n ], 2),\n ($setup.isEmbeddedDesktop && !$setup.props.builderView)\n ? (_openBlock(), _createBlock($setup[\"MapSideLegend\"], {\n key: 1,\n isEstateMap: false,\n role: $setup.props.role\n }, null, 8, [\"role\"]))\n : _createCommentVNode(\"\", true)\n ], 2)\n ], 2)\n ], 34))\n}","import { defineComponent as _defineComponent } from 'vue'\nimport ConfirmDeleteModal from \"@/components/ui/modals/ConfirmDeleteModal.vue\";\n import router from \"@/router\";\n import {\n ref,\n onMounted,\n computed,\n nextTick,\n watch,\n } from \"vue\";\n import { useStore } from \"vuex\";\n import { StageMapInterface } from \"@/types/StageMapInterface\";\n import { LotMapInterface } from \"@/types/LotMapInterface\";\n import { UserRoles } from \"@/enums/UserRoles\";\n import {\n getLotCustomerMapStatusClass,\n getLotStatusClass,\n } from \"@/helpers/status\";\n import { LotStatus } from \"@/enums/LotStatus\";\n import { useIsDesktop } from \"@/features/useIsDesktop\";\n import StageNavMobile from \"@/components/StageNavMobile.vue\";\n import { StageStatus } from \"@/enums/StageStatus\";\n import { eventTracking } from \"@/helpers/googleAnalyticsEventTracking\";\n import {\n EventActionName,\n EventByAction,\n EventByCategory,\n EventLabelByName,\n } from \"@/types/EventTracking\";\n import Hammer from \"hammerjs\";\n import type HammerInput from \"hammerjs\";\n import pinchZoomHammer from \"@/helpers/estateMap/mapsZoom\";\n import MapSidePanel from \"./MapSidePanel.vue\";\n import InfoWithIcon from \"@/components/ui/InfoWithIcon.vue\";\n import MapSideLegend from \"./MapSideLegend.vue\";\n import { LotInterface } from \"@/types/LotInterface\";\n import StageSvgMap from \"@/components/maps/StageSvgMap.vue\";\n\n const mobileLayoutWidth = 680;\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'StageMap',\n props: {\n role: { type: String, default: () => UserRoles.LANDOWNER },\n viewType: { type: String, default: \"\" },\n isEmbedded: { type: Boolean },\n mapPage: { type: String, default: \"\" },\n zoom: {\n type: Number,\n default: 1,\n },\n builderView: { type: Boolean, required: false },\n actualStageQuote: { type: String, required: false, default: undefined },\n lotsByHouseDesigns: { type: Array, required: false, default: undefined },\n plansView: { type: Boolean, required: false, default: false },\n estateId: { type: String, required: false, default: undefined },\n hideMapSidePanelOptions: { type: Boolean, required: false },\n businessId: { type: String, required: false, default: undefined },\n },\n emits: [\n \"reserve\",\n \"changeView\",\n \"updateZoom\",\n \"onRegister\",\n \"onMessage\",\n \"selectLot\",\n \"changeViewMap\",\n \"onLotBuilderHover\",\n \"onMouseX\",\n \"onMouseY\",\n ],\n setup(__props, { expose: __expose, emit: emits }) {\n __expose();\n\nconst props = __props;\n\n const store = useStore();\n \n \n const userId = router.currentRoute.value.params.userId;\n const availableLotsPopUpShow = ref(false);\n const { isDesktop } = useIsDesktop(mobileLayoutWidth);\n const estateId = computed(() => getEstateId());\n const stageId = computed(() => {\n if (props.builderView && props.actualStageQuote) {\n return props.actualStageQuote;\n }\n if (props.role === UserRoles.CUSTOMER) {\n return router.currentRoute.value.query.stageId as string;\n }\n return router.currentRoute.value.params.stageId as string;\n });\n const map = ref(null);\n const lots = ref([]);\n const showConfirmDeleteModal = ref(false);\n const getAvailableLots = computed(() => {\n return lots.value.filter(\n (value) => value.lotId.status === LotStatus.AVAILABLE\n );\n });\n\n const lotOnClick = ref(\"\");\n\n const lotSidePanelHover = ref({\n value: false,\n id: \"\",\n });\n\n const getEstateId = () => {\n if (props.estateId) {\n return props.estateId;\n } else if (props.role === UserRoles.LANDOWNER) {\n return store.state.user.selectedEstateId;\n } else {\n return router.currentRoute.value.params.estateId;\n }\n };\n\n const isEmbeddedDesktop = computed(() => isDesktop.value);\n\n const getSvgItemWrClasses = (lot: LotMapInterface) => [\n {\n \"not-clickable\":\n props.role === UserRoles.CUSTOMER &&\n lot.lotId?.status !== LotStatus.AVAILABLE,\n },\n {\n \"lot-side-panel-hover\":\n lotSidePanelHover.value?.value &&\n lotSidePanelHover.value?.id === lot.lotId?._id,\n },\n {\n \"lot-side-panel\":\n lot.lotId?.status === LotStatus.AVAILABLE && isEmbeddedDesktop,\n },\n {\n \"lot-plans-view\": props.plansView,\n },\n {\n \"not-clickable-house-design\": isNotClickableForBuilderView(lot),\n },\n ];\n\n const getSvgItemPathClasses = (lot: LotMapInterface) => [\n {\n \"selling-animation\":\n lot.lotId?.status === LotStatus.AVAILABLE &&\n !isNotClickableForBuilderView(lot),\n },\n {\n \"selling-animation-side-panel\":\n lotSidePanelHover.value.value &&\n lotSidePanelHover.value?.id === lot.lotId?._id,\n },\n { \"admin-highlight\": props.role === UserRoles.SUPER_ADMIN },\n ];\n\n const getSvgTooltipText = (lot: LotMapInterface) =>\n isNotClickableForBuilderView(lot)\n ? \"\"\n : lot.lotId.status === LotStatus.AVAILABLE && isDesktop\n ? getTooltipText(lot)\n : \"\";\n\n const getSvgItemStatusPathClasses = (lot: LotMapInterface) => [\n props.role === UserRoles.CUSTOMER\n ? getLotCustomerMapStatusClass(getClassForCustomer(lot))\n : getLotStatusClass(\n lot.lotId?.status === LotStatus.EOI\n ? LotStatus.PRE_CONTRACT\n : lot.lotId?.status\n ),\n ];\n\n const onSidePanelLotHover = (value: boolean, id: string) => {\n lotSidePanelHover.value = { value, id };\n };\n\n const onSidePanelLotClick = (lot: LotMapInterface) => {\n if (props.builderView) {\n emits(\"selectLot\", lot);\n } else {\n onLot(lot);\n }\n };\n const isNotClickableForBuilderView = (lot: LotMapInterface) => {\n return (\n props.builderView &&\n !props.lotsByHouseDesigns.some((design) => design._id === lot.lotId?._id)\n );\n };\n\n const handleLotClickIfClickable = (lot: LotMapInterface) => {\n if (!isNotClickableForBuilderView(lot)) {\n onLot(lot);\n }\n };\n\n const onLotBuilderHover = (value: boolean) => {\n emits(\"onLotBuilderHover\", value);\n };\n\n const handleMouseMove = (e: MouseEvent) => {\n emits(\"onMouseX\", e.clientX + 15);\n emits(\"onMouseY\", e.clientY + 5);\n };\n\n const hoverLotId = ref(\"\");\n\n const onLotHover = (id: string) => {\n hoverLotId.value = id;\n };\n\n const onLotLeave = () => {\n hoverLotId.value = \"\";\n };\n\n const getTooltipText = (lot: LotMapInterface) => {\n const text = `
Lot ${lot.lotId.title}\n
${lot.lotId.status.toUpperCase()}

\n

${lot.lotId.size}m2

\n

Click to view more

`;\n return text;\n };\n\n onMounted(() => {\n getMapWithLots();\n });\n\n const onStage = (stage: StageMapInterface) => {\n const embed = props.isEmbedded.toString();\n router\n .replace({\n path: router.currentRoute.value.path,\n query: { stageId: stage.stageId._id, embed },\n })\n .then(() => {\n getMapWithLots();\n });\n };\n\n const toMasterplan = () => {\n if (props.builderView) {\n emits(\"changeViewMap\");\n } else if (props.plansView) {\n router.push({ name: \"LandingPlans\" });\n } else {\n back();\n }\n };\n\n const getMapWithLots = () => {\n getMap();\n getLots().then(() => {\n const lotId = router.currentRoute.value.query.lotId;\n if (lotId) {\n const lotForModal = lots.value.find(\n (value) => value.lotId._id === lotId\n );\n if (lotForModal) {\n emits(\"reserve\", lotForModal);\n }\n }\n });\n showAvailableLotsPopUp();\n };\n\n function getMap() {\n store\n .dispatch(\"stage/getStageMap\", stageId.value)\n .then((res) => {\n map.value = res.data;\n })\n .catch((error) => {\n if (error.response?.data?.statusCode === 404) {\n map.value = \"\";\n }\n });\n }\n function getLots() {\n return store\n .dispatch(\"lot/getLotsMap\", { stageId: stageId.value })\n .then((res) => {\n lots.value = res.data;\n });\n }\n function toCreateMap() {\n router.push({\n name: \"AdminStageMapCreate\",\n params: { userId, estateId: estateId.value, stageId: stageId.value },\n });\n }\n function toEditMap() {\n router.push({\n name: \"AdminStageMapUpdate\",\n params: { userId, estateId: estateId.value, stageId: stageId.value },\n });\n }\n function deleteMap() {\n store.dispatch(\"stage/deleteStageMap\", map.value._id).then(() => {\n getMap();\n });\n }\n\n function onLot(lot: LotMapInterface) {\n trackLotClickEvent(lot);\n\n if (props.builderView) {\n emits(\"selectLot\", lot);\n return;\n }\n\n if (props.role === UserRoles.LANDOWNER) {\n router.push({\n name: \"LotActions\",\n params: {\n stageId: stageId.value,\n lotId: lot.lotId._id,\n },\n });\n return;\n }\n\n if (props.role === UserRoles.SUPER_ADMIN) {\n router.push({\n name: \"AdminLot\",\n params: {\n userId,\n estateId: estateId.value,\n stageId: stageId.value,\n lotId: lot.lotId._id,\n },\n });\n return;\n }\n\n if (\n props.role === UserRoles.CUSTOMER &&\n lot.lotId.status === LotStatus.AVAILABLE\n ) {\n emits(\"reserve\", lot);\n }\n }\n\n function back() {\n const embed = props.isEmbedded.toString();\n router.replace({\n path: router.currentRoute.value.path,\n query: { embed, businessId: props.businessId },\n });\n }\n\n const showAvailableLotsPopUp = () => {\n setTimeout(() => {\n availableLotsPopUpShow.value = true;\n }, 3000);\n };\n\n const getClassForCustomer = (lot: LotMapInterface): LotStatus => {\n if (isNotClickableForBuilderView(lot)) {\n return LotStatus.PRE_CONTRACT;\n }\n if (lot.lotId?.status === LotStatus.OFFLINE) {\n return lot.lotId?.offlineSale?.salePhase as unknown as LotStatus;\n }\n if (\n lot.lotId?.status === LotStatus.HOLD ||\n lot.lotId?.status === LotStatus.PRE_CONTRACT\n ) {\n return LotStatus.HOLD;\n }\n return lot.lotId?.status;\n };\n const trackLotClickEvent = (lot: LotMapInterface) => {\n eventTracking({\n actionsName: EventActionName.LOT_ON_CLICK,\n eventByCategory: EventByCategory.ON_CLICK,\n eventLabelByName: EventLabelByName.CLICK_LOT,\n eventByAction: EventByAction.CLICK,\n estateById: estateId.value,\n stageById: stageId.value,\n stageTitle: lot.stageId.title,\n lotById: lot.lotId._id,\n lotTitle: lot.lotId.title,\n });\n };\n\n const isDragging = ref(false);\n const svgStartPosition = ref({ x: 0, y: 0 });\n const svgStartScrollPosition = ref({ x: 0, y: 0 });\n const svgContainerMap = ref();\n\n const startDragging = (event: MouseEvent) => {\n if (props.zoom !== 1) {\n isDragging.value = true;\n svgStartPosition.value = { x: event.clientX, y: event.clientY };\n svgStartScrollPosition.value = {\n x: svgContainerMap.value.scrollLeft,\n y: svgContainerMap.value.scrollTop,\n };\n svgContainerMap.value.style.cursor = \"grabbing\";\n }\n };\n const handleDragging = (event: MouseEvent) => {\n event.preventDefault();\n if (isDragging.value) {\n const deltaX = event.clientX - svgStartPosition.value.x;\n const deltaY = event.clientY - svgStartPosition.value.y;\n svgContainerMap.value.scrollLeft =\n svgStartScrollPosition.value.x - deltaX;\n svgContainerMap.value.scrollTop = svgStartScrollPosition.value.y - deltaY;\n }\n };\n const stopDragging = () => {\n if (props.zoom !== 1) {\n svgContainerMap.value.style.cursor = \"grab\";\n } else {\n svgContainerMap.value.style.cursor = \"default\";\n }\n\n isDragging.value = false;\n };\n\n onMounted(() => {\n const mc = new Hammer(svgContainerMap.value);\n\n mc.get(\"pinch\").set({ enable: true });\n mc.on(\"pinch\", (event: HammerInput) => {\n pinchZoomHammer(event.scale, (delta) => emits(\"updateZoom\", delta));\n });\n\n mc.on(\"panstart\", (event: HammerInput) => {\n svgStartPosition.value = { x: event.center.x, y: event.center.y };\n svgStartScrollPosition.value = {\n x: svgContainerMap.value.scrollLeft,\n y: svgContainerMap.value.scrollTop,\n };\n });\n\n mc.on(\"pan\", (event: HammerInput) => {\n const deltaX = event.center.x - svgStartPosition.value.x;\n const deltaY = event.center.y - svgStartPosition.value.y;\n\n svgContainerMap.value.scrollLeft =\n svgStartScrollPosition.value.x - deltaX;\n svgContainerMap.value.scrollTop = svgStartScrollPosition.value.y - deltaY;\n });\n });\n\nconst __returned__ = { store, props, emits, userId, mobileLayoutWidth, availableLotsPopUpShow, isDesktop, estateId, stageId, map, lots, showConfirmDeleteModal, getAvailableLots, lotOnClick, lotSidePanelHover, getEstateId, isEmbeddedDesktop, getSvgItemWrClasses, getSvgItemPathClasses, getSvgTooltipText, getSvgItemStatusPathClasses, onSidePanelLotHover, onSidePanelLotClick, isNotClickableForBuilderView, handleLotClickIfClickable, onLotBuilderHover, handleMouseMove, hoverLotId, onLotHover, onLotLeave, getTooltipText, onStage, toMasterplan, getMapWithLots, getMap, getLots, toCreateMap, toEditMap, deleteMap, onLot, back, showAvailableLotsPopUp, getClassForCustomer, trackLotClickEvent, isDragging, svgStartPosition, svgStartScrollPosition, svgContainerMap, startDragging, handleDragging, stopDragging, ConfirmDeleteModal, get router() { return router }, ref, onMounted, computed, nextTick, watch, get useStore() { return useStore }, get StageMapInterface() { return StageMapInterface }, get LotMapInterface() { return LotMapInterface }, get UserRoles() { return UserRoles }, get getLotCustomerMapStatusClass() { return getLotCustomerMapStatusClass }, get getLotStatusClass() { return getLotStatusClass }, get LotStatus() { return LotStatus }, get useIsDesktop() { return useIsDesktop }, StageNavMobile, get StageStatus() { return StageStatus }, get eventTracking() { return eventTracking }, get EventActionName() { return EventActionName }, get EventByAction() { return EventByAction }, get EventByCategory() { return EventByCategory }, get EventLabelByName() { return EventLabelByName }, get Hammer() { return Hammer }, get pinchZoomHammer() { return pinchZoomHammer }, MapSidePanel, InfoWithIcon, MapSideLegend, get LotInterface() { return LotInterface }, StageSvgMap }\nObject.defineProperty(__returned__, '__isScriptSetup', { enumerable: false, value: true })\nreturn __returned__\n}\n\n})","import { render } from \"./StageMap.vue?vue&type=template&id=ddcdb672&scoped=true&ts=true&lang=pug\"\nimport script from \"./StageMap.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./StageMap.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./StageMap.vue?vue&type=style&index=0&id=ddcdb672&lang=scss&scoped=true\"\n\nimport exportComponent from \"/codebuild/output/src264950160/src/lottrackr-front/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-ddcdb672\"]])\n\nexport default __exports__","import dayjs from \"dayjs\";\n\nexport function formatDate(date: string, format = \"D MMM YYYY\"): string {\n return date !== undefined && dayjs(date).isValid()\n ? dayjs(date).format(format)\n : \"-\";\n}\n\nexport function formatDateMonthYear(\n date: string | Date,\n format = \"MMM YYYY\"\n): string {\n return dayjs(date).format(format);\n}\nexport function formatDateMonthDayYear(date: Date): string {\n return dayjs(date).format(\"MMM D, YYYY\");\n}\nexport function formatDateDayMonthYear(date: Date): string {\n return dayjs(date).format(\"D MMM YYYY\");\n}\n\nexport function formatDateCalendar(date: Date): string {\n return dayjs(date).format(\"YYYY/M/D\");\n}\nexport function formatDateDayMonthYearWithTime(date: Date): string {\n return dayjs(date).format(\"D MMM YYYY, h:mm A\");\n}\n\nexport function formatDateYYYYMMDD(date: string | Date): string {\n return dayjs(date).format(\"YYYY-MM-DD\");\n}\n\nexport function formatDateToday(date: string | Date): string {\n return dayjs(date).format(\"DD MMMM YYYY\");\n}\n","export * from \"-!../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js??ref--1-1!./MapSidePanel.vue?vue&type=style&index=0&id=5ce7c444&lang=scss&scoped=true\"","export * from \"-!../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js??ref--1-1!./DocumentsView.vue?vue&type=style&index=0&id=c1530dda&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js??ref--1-1!./DocumentItem.vue?vue&type=style&index=0&id=a45e1952&lang=scss&scoped=true\"","import { EventTracking } from \"@/types/EventTracking\";\nimport { useGtag } from \"vue-gtag-next\";\n\nconst { event } = useGtag();\nexport const eventTracking = (data: EventTracking): void => {\n const {\n actionsName,\n eventByCategory,\n eventLabelByName,\n eventByAction,\n estateById = null,\n stageById = null,\n stageTitle = null,\n lotById = null,\n lotTitle = null,\n houseDesignId = null,\n houseDesignName = null,\n } = data;\n\n event(actionsName, {\n event_category: eventByCategory,\n event_label: eventLabelByName,\n value: 1,\n event_action: eventByAction,\n estate_id: estateById,\n stage_id: stageById,\n stage_title: stageTitle,\n lot_id: lotById,\n lot_title: lotTitle,\n house_design_id: houseDesignId,\n house_design_name: houseDesignName,\n });\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call -- required for testing\n method.call(null, argument || function () { return 1; }, 1);\n });\n};\n","export * from \"-!../../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js??ref--1-1!./RemoveDocumentModal.vue?vue&type=style&index=0&id=a376937e&lang=scss&scoped=true\"","export * from \"-!../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js??ref--1-1!./EstateMap.vue?vue&type=style&index=0&id=e7cf310c&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js??ref--1-1!./InfoWithIcon.vue?vue&type=style&index=0&id=4cef99d7&lang=scss&scoped=true\"","export * from \"-!../../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js??ref--1-1!./CreateFolderModal.vue?vue&type=style&index=0&id=55bd4879&lang=scss&scoped=true\"","export * from \"-!../../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js??ref--1-1!./ImagePeviewModal.vue?vue&type=style&index=0&id=857011de&lang=scss&scoped=true\"","/*! Hammer.JS - v2.0.7 - 2016-04-22\n * http://hammerjs.github.io/\n *\n * Copyright (c) 2016 Jorik Tangelder;\n * Licensed under the MIT license */\n(function(window, document, exportName, undefined) {\n 'use strict';\n\nvar VENDOR_PREFIXES = ['', 'webkit', 'Moz', 'MS', 'ms', 'o'];\nvar TEST_ELEMENT = document.createElement('div');\n\nvar TYPE_FUNCTION = 'function';\n\nvar round = Math.round;\nvar abs = Math.abs;\nvar now = Date.now;\n\n/**\n * set a timeout with a given scope\n * @param {Function} fn\n * @param {Number} timeout\n * @param {Object} context\n * @returns {number}\n */\nfunction setTimeoutContext(fn, timeout, context) {\n return setTimeout(bindFn(fn, context), timeout);\n}\n\n/**\n * if the argument is an array, we want to execute the fn on each entry\n * if it aint an array we don't want to do a thing.\n * this is used by all the methods that accept a single and array argument.\n * @param {*|Array} arg\n * @param {String} fn\n * @param {Object} [context]\n * @returns {Boolean}\n */\nfunction invokeArrayArg(arg, fn, context) {\n if (Array.isArray(arg)) {\n each(arg, context[fn], context);\n return true;\n }\n return false;\n}\n\n/**\n * walk objects and arrays\n * @param {Object} obj\n * @param {Function} iterator\n * @param {Object} context\n */\nfunction each(obj, iterator, context) {\n var i;\n\n if (!obj) {\n return;\n }\n\n if (obj.forEach) {\n obj.forEach(iterator, context);\n } else if (obj.length !== undefined) {\n i = 0;\n while (i < obj.length) {\n iterator.call(context, obj[i], i, obj);\n i++;\n }\n } else {\n for (i in obj) {\n obj.hasOwnProperty(i) && iterator.call(context, obj[i], i, obj);\n }\n }\n}\n\n/**\n * wrap a method with a deprecation warning and stack trace\n * @param {Function} method\n * @param {String} name\n * @param {String} message\n * @returns {Function} A new function wrapping the supplied method.\n */\nfunction deprecate(method, name, message) {\n var deprecationMessage = 'DEPRECATED METHOD: ' + name + '\\n' + message + ' AT \\n';\n return function() {\n var e = new Error('get-stack-trace');\n var stack = e && e.stack ? e.stack.replace(/^[^\\(]+?[\\n$]/gm, '')\n .replace(/^\\s+at\\s+/gm, '')\n .replace(/^Object.\\s*\\(/gm, '{anonymous}()@') : 'Unknown Stack Trace';\n\n var log = window.console && (window.console.warn || window.console.log);\n if (log) {\n log.call(window.console, deprecationMessage, stack);\n }\n return method.apply(this, arguments);\n };\n}\n\n/**\n * extend object.\n * means that properties in dest will be overwritten by the ones in src.\n * @param {Object} target\n * @param {...Object} objects_to_assign\n * @returns {Object} target\n */\nvar assign;\nif (typeof Object.assign !== 'function') {\n assign = function assign(target) {\n if (target === undefined || target === null) {\n throw new TypeError('Cannot convert undefined or null to object');\n }\n\n var output = Object(target);\n for (var index = 1; index < arguments.length; index++) {\n var source = arguments[index];\n if (source !== undefined && source !== null) {\n for (var nextKey in source) {\n if (source.hasOwnProperty(nextKey)) {\n output[nextKey] = source[nextKey];\n }\n }\n }\n }\n return output;\n };\n} else {\n assign = Object.assign;\n}\n\n/**\n * extend object.\n * means that properties in dest will be overwritten by the ones in src.\n * @param {Object} dest\n * @param {Object} src\n * @param {Boolean} [merge=false]\n * @returns {Object} dest\n */\nvar extend = deprecate(function extend(dest, src, merge) {\n var keys = Object.keys(src);\n var i = 0;\n while (i < keys.length) {\n if (!merge || (merge && dest[keys[i]] === undefined)) {\n dest[keys[i]] = src[keys[i]];\n }\n i++;\n }\n return dest;\n}, 'extend', 'Use `assign`.');\n\n/**\n * merge the values from src in the dest.\n * means that properties that exist in dest will not be overwritten by src\n * @param {Object} dest\n * @param {Object} src\n * @returns {Object} dest\n */\nvar merge = deprecate(function merge(dest, src) {\n return extend(dest, src, true);\n}, 'merge', 'Use `assign`.');\n\n/**\n * simple class inheritance\n * @param {Function} child\n * @param {Function} base\n * @param {Object} [properties]\n */\nfunction inherit(child, base, properties) {\n var baseP = base.prototype,\n childP;\n\n childP = child.prototype = Object.create(baseP);\n childP.constructor = child;\n childP._super = baseP;\n\n if (properties) {\n assign(childP, properties);\n }\n}\n\n/**\n * simple function bind\n * @param {Function} fn\n * @param {Object} context\n * @returns {Function}\n */\nfunction bindFn(fn, context) {\n return function boundFn() {\n return fn.apply(context, arguments);\n };\n}\n\n/**\n * let a boolean value also be a function that must return a boolean\n * this first item in args will be used as the context\n * @param {Boolean|Function} val\n * @param {Array} [args]\n * @returns {Boolean}\n */\nfunction boolOrFn(val, args) {\n if (typeof val == TYPE_FUNCTION) {\n return val.apply(args ? args[0] || undefined : undefined, args);\n }\n return val;\n}\n\n/**\n * use the val2 when val1 is undefined\n * @param {*} val1\n * @param {*} val2\n * @returns {*}\n */\nfunction ifUndefined(val1, val2) {\n return (val1 === undefined) ? val2 : val1;\n}\n\n/**\n * addEventListener with multiple events at once\n * @param {EventTarget} target\n * @param {String} types\n * @param {Function} handler\n */\nfunction addEventListeners(target, types, handler) {\n each(splitStr(types), function(type) {\n target.addEventListener(type, handler, false);\n });\n}\n\n/**\n * removeEventListener with multiple events at once\n * @param {EventTarget} target\n * @param {String} types\n * @param {Function} handler\n */\nfunction removeEventListeners(target, types, handler) {\n each(splitStr(types), function(type) {\n target.removeEventListener(type, handler, false);\n });\n}\n\n/**\n * find if a node is in the given parent\n * @method hasParent\n * @param {HTMLElement} node\n * @param {HTMLElement} parent\n * @return {Boolean} found\n */\nfunction hasParent(node, parent) {\n while (node) {\n if (node == parent) {\n return true;\n }\n node = node.parentNode;\n }\n return false;\n}\n\n/**\n * small indexOf wrapper\n * @param {String} str\n * @param {String} find\n * @returns {Boolean} found\n */\nfunction inStr(str, find) {\n return str.indexOf(find) > -1;\n}\n\n/**\n * split string on whitespace\n * @param {String} str\n * @returns {Array} words\n */\nfunction splitStr(str) {\n return str.trim().split(/\\s+/g);\n}\n\n/**\n * find if a array contains the object using indexOf or a simple polyFill\n * @param {Array} src\n * @param {String} find\n * @param {String} [findByKey]\n * @return {Boolean|Number} false when not found, or the index\n */\nfunction inArray(src, find, findByKey) {\n if (src.indexOf && !findByKey) {\n return src.indexOf(find);\n } else {\n var i = 0;\n while (i < src.length) {\n if ((findByKey && src[i][findByKey] == find) || (!findByKey && src[i] === find)) {\n return i;\n }\n i++;\n }\n return -1;\n }\n}\n\n/**\n * convert array-like objects to real arrays\n * @param {Object} obj\n * @returns {Array}\n */\nfunction toArray(obj) {\n return Array.prototype.slice.call(obj, 0);\n}\n\n/**\n * unique array with objects based on a key (like 'id') or just by the array's value\n * @param {Array} src [{id:1},{id:2},{id:1}]\n * @param {String} [key]\n * @param {Boolean} [sort=False]\n * @returns {Array} [{id:1},{id:2}]\n */\nfunction uniqueArray(src, key, sort) {\n var results = [];\n var values = [];\n var i = 0;\n\n while (i < src.length) {\n var val = key ? src[i][key] : src[i];\n if (inArray(values, val) < 0) {\n results.push(src[i]);\n }\n values[i] = val;\n i++;\n }\n\n if (sort) {\n if (!key) {\n results = results.sort();\n } else {\n results = results.sort(function sortUniqueArray(a, b) {\n return a[key] > b[key];\n });\n }\n }\n\n return results;\n}\n\n/**\n * get the prefixed property\n * @param {Object} obj\n * @param {String} property\n * @returns {String|Undefined} prefixed\n */\nfunction prefixed(obj, property) {\n var prefix, prop;\n var camelProp = property[0].toUpperCase() + property.slice(1);\n\n var i = 0;\n while (i < VENDOR_PREFIXES.length) {\n prefix = VENDOR_PREFIXES[i];\n prop = (prefix) ? prefix + camelProp : property;\n\n if (prop in obj) {\n return prop;\n }\n i++;\n }\n return undefined;\n}\n\n/**\n * get a unique id\n * @returns {number} uniqueId\n */\nvar _uniqueId = 1;\nfunction uniqueId() {\n return _uniqueId++;\n}\n\n/**\n * get the window object of an element\n * @param {HTMLElement} element\n * @returns {DocumentView|Window}\n */\nfunction getWindowForElement(element) {\n var doc = element.ownerDocument || element;\n return (doc.defaultView || doc.parentWindow || window);\n}\n\nvar MOBILE_REGEX = /mobile|tablet|ip(ad|hone|od)|android/i;\n\nvar SUPPORT_TOUCH = ('ontouchstart' in window);\nvar SUPPORT_POINTER_EVENTS = prefixed(window, 'PointerEvent') !== undefined;\nvar SUPPORT_ONLY_TOUCH = SUPPORT_TOUCH && MOBILE_REGEX.test(navigator.userAgent);\n\nvar INPUT_TYPE_TOUCH = 'touch';\nvar INPUT_TYPE_PEN = 'pen';\nvar INPUT_TYPE_MOUSE = 'mouse';\nvar INPUT_TYPE_KINECT = 'kinect';\n\nvar COMPUTE_INTERVAL = 25;\n\nvar INPUT_START = 1;\nvar INPUT_MOVE = 2;\nvar INPUT_END = 4;\nvar INPUT_CANCEL = 8;\n\nvar DIRECTION_NONE = 1;\nvar DIRECTION_LEFT = 2;\nvar DIRECTION_RIGHT = 4;\nvar DIRECTION_UP = 8;\nvar DIRECTION_DOWN = 16;\n\nvar DIRECTION_HORIZONTAL = DIRECTION_LEFT | DIRECTION_RIGHT;\nvar DIRECTION_VERTICAL = DIRECTION_UP | DIRECTION_DOWN;\nvar DIRECTION_ALL = DIRECTION_HORIZONTAL | DIRECTION_VERTICAL;\n\nvar PROPS_XY = ['x', 'y'];\nvar PROPS_CLIENT_XY = ['clientX', 'clientY'];\n\n/**\n * create new input type manager\n * @param {Manager} manager\n * @param {Function} callback\n * @returns {Input}\n * @constructor\n */\nfunction Input(manager, callback) {\n var self = this;\n this.manager = manager;\n this.callback = callback;\n this.element = manager.element;\n this.target = manager.options.inputTarget;\n\n // smaller wrapper around the handler, for the scope and the enabled state of the manager,\n // so when disabled the input events are completely bypassed.\n this.domHandler = function(ev) {\n if (boolOrFn(manager.options.enable, [manager])) {\n self.handler(ev);\n }\n };\n\n this.init();\n\n}\n\nInput.prototype = {\n /**\n * should handle the inputEvent data and trigger the callback\n * @virtual\n */\n handler: function() { },\n\n /**\n * bind the events\n */\n init: function() {\n this.evEl && addEventListeners(this.element, this.evEl, this.domHandler);\n this.evTarget && addEventListeners(this.target, this.evTarget, this.domHandler);\n this.evWin && addEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler);\n },\n\n /**\n * unbind the events\n */\n destroy: function() {\n this.evEl && removeEventListeners(this.element, this.evEl, this.domHandler);\n this.evTarget && removeEventListeners(this.target, this.evTarget, this.domHandler);\n this.evWin && removeEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler);\n }\n};\n\n/**\n * create new input type manager\n * called by the Manager constructor\n * @param {Hammer} manager\n * @returns {Input}\n */\nfunction createInputInstance(manager) {\n var Type;\n var inputClass = manager.options.inputClass;\n\n if (inputClass) {\n Type = inputClass;\n } else if (SUPPORT_POINTER_EVENTS) {\n Type = PointerEventInput;\n } else if (SUPPORT_ONLY_TOUCH) {\n Type = TouchInput;\n } else if (!SUPPORT_TOUCH) {\n Type = MouseInput;\n } else {\n Type = TouchMouseInput;\n }\n return new (Type)(manager, inputHandler);\n}\n\n/**\n * handle input events\n * @param {Manager} manager\n * @param {String} eventType\n * @param {Object} input\n */\nfunction inputHandler(manager, eventType, input) {\n var pointersLen = input.pointers.length;\n var changedPointersLen = input.changedPointers.length;\n var isFirst = (eventType & INPUT_START && (pointersLen - changedPointersLen === 0));\n var isFinal = (eventType & (INPUT_END | INPUT_CANCEL) && (pointersLen - changedPointersLen === 0));\n\n input.isFirst = !!isFirst;\n input.isFinal = !!isFinal;\n\n if (isFirst) {\n manager.session = {};\n }\n\n // source event is the normalized value of the domEvents\n // like 'touchstart, mouseup, pointerdown'\n input.eventType = eventType;\n\n // compute scale, rotation etc\n computeInputData(manager, input);\n\n // emit secret event\n manager.emit('hammer.input', input);\n\n manager.recognize(input);\n manager.session.prevInput = input;\n}\n\n/**\n * extend the data with some usable properties like scale, rotate, velocity etc\n * @param {Object} manager\n * @param {Object} input\n */\nfunction computeInputData(manager, input) {\n var session = manager.session;\n var pointers = input.pointers;\n var pointersLength = pointers.length;\n\n // store the first input to calculate the distance and direction\n if (!session.firstInput) {\n session.firstInput = simpleCloneInputData(input);\n }\n\n // to compute scale and rotation we need to store the multiple touches\n if (pointersLength > 1 && !session.firstMultiple) {\n session.firstMultiple = simpleCloneInputData(input);\n } else if (pointersLength === 1) {\n session.firstMultiple = false;\n }\n\n var firstInput = session.firstInput;\n var firstMultiple = session.firstMultiple;\n var offsetCenter = firstMultiple ? firstMultiple.center : firstInput.center;\n\n var center = input.center = getCenter(pointers);\n input.timeStamp = now();\n input.deltaTime = input.timeStamp - firstInput.timeStamp;\n\n input.angle = getAngle(offsetCenter, center);\n input.distance = getDistance(offsetCenter, center);\n\n computeDeltaXY(session, input);\n input.offsetDirection = getDirection(input.deltaX, input.deltaY);\n\n var overallVelocity = getVelocity(input.deltaTime, input.deltaX, input.deltaY);\n input.overallVelocityX = overallVelocity.x;\n input.overallVelocityY = overallVelocity.y;\n input.overallVelocity = (abs(overallVelocity.x) > abs(overallVelocity.y)) ? overallVelocity.x : overallVelocity.y;\n\n input.scale = firstMultiple ? getScale(firstMultiple.pointers, pointers) : 1;\n input.rotation = firstMultiple ? getRotation(firstMultiple.pointers, pointers) : 0;\n\n input.maxPointers = !session.prevInput ? input.pointers.length : ((input.pointers.length >\n session.prevInput.maxPointers) ? input.pointers.length : session.prevInput.maxPointers);\n\n computeIntervalInputData(session, input);\n\n // find the correct target\n var target = manager.element;\n if (hasParent(input.srcEvent.target, target)) {\n target = input.srcEvent.target;\n }\n input.target = target;\n}\n\nfunction computeDeltaXY(session, input) {\n var center = input.center;\n var offset = session.offsetDelta || {};\n var prevDelta = session.prevDelta || {};\n var prevInput = session.prevInput || {};\n\n if (input.eventType === INPUT_START || prevInput.eventType === INPUT_END) {\n prevDelta = session.prevDelta = {\n x: prevInput.deltaX || 0,\n y: prevInput.deltaY || 0\n };\n\n offset = session.offsetDelta = {\n x: center.x,\n y: center.y\n };\n }\n\n input.deltaX = prevDelta.x + (center.x - offset.x);\n input.deltaY = prevDelta.y + (center.y - offset.y);\n}\n\n/**\n * velocity is calculated every x ms\n * @param {Object} session\n * @param {Object} input\n */\nfunction computeIntervalInputData(session, input) {\n var last = session.lastInterval || input,\n deltaTime = input.timeStamp - last.timeStamp,\n velocity, velocityX, velocityY, direction;\n\n if (input.eventType != INPUT_CANCEL && (deltaTime > COMPUTE_INTERVAL || last.velocity === undefined)) {\n var deltaX = input.deltaX - last.deltaX;\n var deltaY = input.deltaY - last.deltaY;\n\n var v = getVelocity(deltaTime, deltaX, deltaY);\n velocityX = v.x;\n velocityY = v.y;\n velocity = (abs(v.x) > abs(v.y)) ? v.x : v.y;\n direction = getDirection(deltaX, deltaY);\n\n session.lastInterval = input;\n } else {\n // use latest velocity info if it doesn't overtake a minimum period\n velocity = last.velocity;\n velocityX = last.velocityX;\n velocityY = last.velocityY;\n direction = last.direction;\n }\n\n input.velocity = velocity;\n input.velocityX = velocityX;\n input.velocityY = velocityY;\n input.direction = direction;\n}\n\n/**\n * create a simple clone from the input used for storage of firstInput and firstMultiple\n * @param {Object} input\n * @returns {Object} clonedInputData\n */\nfunction simpleCloneInputData(input) {\n // make a simple copy of the pointers because we will get a reference if we don't\n // we only need clientXY for the calculations\n var pointers = [];\n var i = 0;\n while (i < input.pointers.length) {\n pointers[i] = {\n clientX: round(input.pointers[i].clientX),\n clientY: round(input.pointers[i].clientY)\n };\n i++;\n }\n\n return {\n timeStamp: now(),\n pointers: pointers,\n center: getCenter(pointers),\n deltaX: input.deltaX,\n deltaY: input.deltaY\n };\n}\n\n/**\n * get the center of all the pointers\n * @param {Array} pointers\n * @return {Object} center contains `x` and `y` properties\n */\nfunction getCenter(pointers) {\n var pointersLength = pointers.length;\n\n // no need to loop when only one touch\n if (pointersLength === 1) {\n return {\n x: round(pointers[0].clientX),\n y: round(pointers[0].clientY)\n };\n }\n\n var x = 0, y = 0, i = 0;\n while (i < pointersLength) {\n x += pointers[i].clientX;\n y += pointers[i].clientY;\n i++;\n }\n\n return {\n x: round(x / pointersLength),\n y: round(y / pointersLength)\n };\n}\n\n/**\n * calculate the velocity between two points. unit is in px per ms.\n * @param {Number} deltaTime\n * @param {Number} x\n * @param {Number} y\n * @return {Object} velocity `x` and `y`\n */\nfunction getVelocity(deltaTime, x, y) {\n return {\n x: x / deltaTime || 0,\n y: y / deltaTime || 0\n };\n}\n\n/**\n * get the direction between two points\n * @param {Number} x\n * @param {Number} y\n * @return {Number} direction\n */\nfunction getDirection(x, y) {\n if (x === y) {\n return DIRECTION_NONE;\n }\n\n if (abs(x) >= abs(y)) {\n return x < 0 ? DIRECTION_LEFT : DIRECTION_RIGHT;\n }\n return y < 0 ? DIRECTION_UP : DIRECTION_DOWN;\n}\n\n/**\n * calculate the absolute distance between two points\n * @param {Object} p1 {x, y}\n * @param {Object} p2 {x, y}\n * @param {Array} [props] containing x and y keys\n * @return {Number} distance\n */\nfunction getDistance(p1, p2, props) {\n if (!props) {\n props = PROPS_XY;\n }\n var x = p2[props[0]] - p1[props[0]],\n y = p2[props[1]] - p1[props[1]];\n\n return Math.sqrt((x * x) + (y * y));\n}\n\n/**\n * calculate the angle between two coordinates\n * @param {Object} p1\n * @param {Object} p2\n * @param {Array} [props] containing x and y keys\n * @return {Number} angle\n */\nfunction getAngle(p1, p2, props) {\n if (!props) {\n props = PROPS_XY;\n }\n var x = p2[props[0]] - p1[props[0]],\n y = p2[props[1]] - p1[props[1]];\n return Math.atan2(y, x) * 180 / Math.PI;\n}\n\n/**\n * calculate the rotation degrees between two pointersets\n * @param {Array} start array of pointers\n * @param {Array} end array of pointers\n * @return {Number} rotation\n */\nfunction getRotation(start, end) {\n return getAngle(end[1], end[0], PROPS_CLIENT_XY) + getAngle(start[1], start[0], PROPS_CLIENT_XY);\n}\n\n/**\n * calculate the scale factor between two pointersets\n * no scale is 1, and goes down to 0 when pinched together, and bigger when pinched out\n * @param {Array} start array of pointers\n * @param {Array} end array of pointers\n * @return {Number} scale\n */\nfunction getScale(start, end) {\n return getDistance(end[0], end[1], PROPS_CLIENT_XY) / getDistance(start[0], start[1], PROPS_CLIENT_XY);\n}\n\nvar MOUSE_INPUT_MAP = {\n mousedown: INPUT_START,\n mousemove: INPUT_MOVE,\n mouseup: INPUT_END\n};\n\nvar MOUSE_ELEMENT_EVENTS = 'mousedown';\nvar MOUSE_WINDOW_EVENTS = 'mousemove mouseup';\n\n/**\n * Mouse events input\n * @constructor\n * @extends Input\n */\nfunction MouseInput() {\n this.evEl = MOUSE_ELEMENT_EVENTS;\n this.evWin = MOUSE_WINDOW_EVENTS;\n\n this.pressed = false; // mousedown state\n\n Input.apply(this, arguments);\n}\n\ninherit(MouseInput, Input, {\n /**\n * handle mouse events\n * @param {Object} ev\n */\n handler: function MEhandler(ev) {\n var eventType = MOUSE_INPUT_MAP[ev.type];\n\n // on start we want to have the left mouse button down\n if (eventType & INPUT_START && ev.button === 0) {\n this.pressed = true;\n }\n\n if (eventType & INPUT_MOVE && ev.which !== 1) {\n eventType = INPUT_END;\n }\n\n // mouse must be down\n if (!this.pressed) {\n return;\n }\n\n if (eventType & INPUT_END) {\n this.pressed = false;\n }\n\n this.callback(this.manager, eventType, {\n pointers: [ev],\n changedPointers: [ev],\n pointerType: INPUT_TYPE_MOUSE,\n srcEvent: ev\n });\n }\n});\n\nvar POINTER_INPUT_MAP = {\n pointerdown: INPUT_START,\n pointermove: INPUT_MOVE,\n pointerup: INPUT_END,\n pointercancel: INPUT_CANCEL,\n pointerout: INPUT_CANCEL\n};\n\n// in IE10 the pointer types is defined as an enum\nvar IE10_POINTER_TYPE_ENUM = {\n 2: INPUT_TYPE_TOUCH,\n 3: INPUT_TYPE_PEN,\n 4: INPUT_TYPE_MOUSE,\n 5: INPUT_TYPE_KINECT // see https://twitter.com/jacobrossi/status/480596438489890816\n};\n\nvar POINTER_ELEMENT_EVENTS = 'pointerdown';\nvar POINTER_WINDOW_EVENTS = 'pointermove pointerup pointercancel';\n\n// IE10 has prefixed support, and case-sensitive\nif (window.MSPointerEvent && !window.PointerEvent) {\n POINTER_ELEMENT_EVENTS = 'MSPointerDown';\n POINTER_WINDOW_EVENTS = 'MSPointerMove MSPointerUp MSPointerCancel';\n}\n\n/**\n * Pointer events input\n * @constructor\n * @extends Input\n */\nfunction PointerEventInput() {\n this.evEl = POINTER_ELEMENT_EVENTS;\n this.evWin = POINTER_WINDOW_EVENTS;\n\n Input.apply(this, arguments);\n\n this.store = (this.manager.session.pointerEvents = []);\n}\n\ninherit(PointerEventInput, Input, {\n /**\n * handle mouse events\n * @param {Object} ev\n */\n handler: function PEhandler(ev) {\n var store = this.store;\n var removePointer = false;\n\n var eventTypeNormalized = ev.type.toLowerCase().replace('ms', '');\n var eventType = POINTER_INPUT_MAP[eventTypeNormalized];\n var pointerType = IE10_POINTER_TYPE_ENUM[ev.pointerType] || ev.pointerType;\n\n var isTouch = (pointerType == INPUT_TYPE_TOUCH);\n\n // get index of the event in the store\n var storeIndex = inArray(store, ev.pointerId, 'pointerId');\n\n // start and mouse must be down\n if (eventType & INPUT_START && (ev.button === 0 || isTouch)) {\n if (storeIndex < 0) {\n store.push(ev);\n storeIndex = store.length - 1;\n }\n } else if (eventType & (INPUT_END | INPUT_CANCEL)) {\n removePointer = true;\n }\n\n // it not found, so the pointer hasn't been down (so it's probably a hover)\n if (storeIndex < 0) {\n return;\n }\n\n // update the event in the store\n store[storeIndex] = ev;\n\n this.callback(this.manager, eventType, {\n pointers: store,\n changedPointers: [ev],\n pointerType: pointerType,\n srcEvent: ev\n });\n\n if (removePointer) {\n // remove from the store\n store.splice(storeIndex, 1);\n }\n }\n});\n\nvar SINGLE_TOUCH_INPUT_MAP = {\n touchstart: INPUT_START,\n touchmove: INPUT_MOVE,\n touchend: INPUT_END,\n touchcancel: INPUT_CANCEL\n};\n\nvar SINGLE_TOUCH_TARGET_EVENTS = 'touchstart';\nvar SINGLE_TOUCH_WINDOW_EVENTS = 'touchstart touchmove touchend touchcancel';\n\n/**\n * Touch events input\n * @constructor\n * @extends Input\n */\nfunction SingleTouchInput() {\n this.evTarget = SINGLE_TOUCH_TARGET_EVENTS;\n this.evWin = SINGLE_TOUCH_WINDOW_EVENTS;\n this.started = false;\n\n Input.apply(this, arguments);\n}\n\ninherit(SingleTouchInput, Input, {\n handler: function TEhandler(ev) {\n var type = SINGLE_TOUCH_INPUT_MAP[ev.type];\n\n // should we handle the touch events?\n if (type === INPUT_START) {\n this.started = true;\n }\n\n if (!this.started) {\n return;\n }\n\n var touches = normalizeSingleTouches.call(this, ev, type);\n\n // when done, reset the started state\n if (type & (INPUT_END | INPUT_CANCEL) && touches[0].length - touches[1].length === 0) {\n this.started = false;\n }\n\n this.callback(this.manager, type, {\n pointers: touches[0],\n changedPointers: touches[1],\n pointerType: INPUT_TYPE_TOUCH,\n srcEvent: ev\n });\n }\n});\n\n/**\n * @this {TouchInput}\n * @param {Object} ev\n * @param {Number} type flag\n * @returns {undefined|Array} [all, changed]\n */\nfunction normalizeSingleTouches(ev, type) {\n var all = toArray(ev.touches);\n var changed = toArray(ev.changedTouches);\n\n if (type & (INPUT_END | INPUT_CANCEL)) {\n all = uniqueArray(all.concat(changed), 'identifier', true);\n }\n\n return [all, changed];\n}\n\nvar TOUCH_INPUT_MAP = {\n touchstart: INPUT_START,\n touchmove: INPUT_MOVE,\n touchend: INPUT_END,\n touchcancel: INPUT_CANCEL\n};\n\nvar TOUCH_TARGET_EVENTS = 'touchstart touchmove touchend touchcancel';\n\n/**\n * Multi-user touch events input\n * @constructor\n * @extends Input\n */\nfunction TouchInput() {\n this.evTarget = TOUCH_TARGET_EVENTS;\n this.targetIds = {};\n\n Input.apply(this, arguments);\n}\n\ninherit(TouchInput, Input, {\n handler: function MTEhandler(ev) {\n var type = TOUCH_INPUT_MAP[ev.type];\n var touches = getTouches.call(this, ev, type);\n if (!touches) {\n return;\n }\n\n this.callback(this.manager, type, {\n pointers: touches[0],\n changedPointers: touches[1],\n pointerType: INPUT_TYPE_TOUCH,\n srcEvent: ev\n });\n }\n});\n\n/**\n * @this {TouchInput}\n * @param {Object} ev\n * @param {Number} type flag\n * @returns {undefined|Array} [all, changed]\n */\nfunction getTouches(ev, type) {\n var allTouches = toArray(ev.touches);\n var targetIds = this.targetIds;\n\n // when there is only one touch, the process can be simplified\n if (type & (INPUT_START | INPUT_MOVE) && allTouches.length === 1) {\n targetIds[allTouches[0].identifier] = true;\n return [allTouches, allTouches];\n }\n\n var i,\n targetTouches,\n changedTouches = toArray(ev.changedTouches),\n changedTargetTouches = [],\n target = this.target;\n\n // get target touches from touches\n targetTouches = allTouches.filter(function(touch) {\n return hasParent(touch.target, target);\n });\n\n // collect touches\n if (type === INPUT_START) {\n i = 0;\n while (i < targetTouches.length) {\n targetIds[targetTouches[i].identifier] = true;\n i++;\n }\n }\n\n // filter changed touches to only contain touches that exist in the collected target ids\n i = 0;\n while (i < changedTouches.length) {\n if (targetIds[changedTouches[i].identifier]) {\n changedTargetTouches.push(changedTouches[i]);\n }\n\n // cleanup removed touches\n if (type & (INPUT_END | INPUT_CANCEL)) {\n delete targetIds[changedTouches[i].identifier];\n }\n i++;\n }\n\n if (!changedTargetTouches.length) {\n return;\n }\n\n return [\n // merge targetTouches with changedTargetTouches so it contains ALL touches, including 'end' and 'cancel'\n uniqueArray(targetTouches.concat(changedTargetTouches), 'identifier', true),\n changedTargetTouches\n ];\n}\n\n/**\n * Combined touch and mouse input\n *\n * Touch has a higher priority then mouse, and while touching no mouse events are allowed.\n * This because touch devices also emit mouse events while doing a touch.\n *\n * @constructor\n * @extends Input\n */\n\nvar DEDUP_TIMEOUT = 2500;\nvar DEDUP_DISTANCE = 25;\n\nfunction TouchMouseInput() {\n Input.apply(this, arguments);\n\n var handler = bindFn(this.handler, this);\n this.touch = new TouchInput(this.manager, handler);\n this.mouse = new MouseInput(this.manager, handler);\n\n this.primaryTouch = null;\n this.lastTouches = [];\n}\n\ninherit(TouchMouseInput, Input, {\n /**\n * handle mouse and touch events\n * @param {Hammer} manager\n * @param {String} inputEvent\n * @param {Object} inputData\n */\n handler: function TMEhandler(manager, inputEvent, inputData) {\n var isTouch = (inputData.pointerType == INPUT_TYPE_TOUCH),\n isMouse = (inputData.pointerType == INPUT_TYPE_MOUSE);\n\n if (isMouse && inputData.sourceCapabilities && inputData.sourceCapabilities.firesTouchEvents) {\n return;\n }\n\n // when we're in a touch event, record touches to de-dupe synthetic mouse event\n if (isTouch) {\n recordTouches.call(this, inputEvent, inputData);\n } else if (isMouse && isSyntheticEvent.call(this, inputData)) {\n return;\n }\n\n this.callback(manager, inputEvent, inputData);\n },\n\n /**\n * remove the event listeners\n */\n destroy: function destroy() {\n this.touch.destroy();\n this.mouse.destroy();\n }\n});\n\nfunction recordTouches(eventType, eventData) {\n if (eventType & INPUT_START) {\n this.primaryTouch = eventData.changedPointers[0].identifier;\n setLastTouch.call(this, eventData);\n } else if (eventType & (INPUT_END | INPUT_CANCEL)) {\n setLastTouch.call(this, eventData);\n }\n}\n\nfunction setLastTouch(eventData) {\n var touch = eventData.changedPointers[0];\n\n if (touch.identifier === this.primaryTouch) {\n var lastTouch = {x: touch.clientX, y: touch.clientY};\n this.lastTouches.push(lastTouch);\n var lts = this.lastTouches;\n var removeLastTouch = function() {\n var i = lts.indexOf(lastTouch);\n if (i > -1) {\n lts.splice(i, 1);\n }\n };\n setTimeout(removeLastTouch, DEDUP_TIMEOUT);\n }\n}\n\nfunction isSyntheticEvent(eventData) {\n var x = eventData.srcEvent.clientX, y = eventData.srcEvent.clientY;\n for (var i = 0; i < this.lastTouches.length; i++) {\n var t = this.lastTouches[i];\n var dx = Math.abs(x - t.x), dy = Math.abs(y - t.y);\n if (dx <= DEDUP_DISTANCE && dy <= DEDUP_DISTANCE) {\n return true;\n }\n }\n return false;\n}\n\nvar PREFIXED_TOUCH_ACTION = prefixed(TEST_ELEMENT.style, 'touchAction');\nvar NATIVE_TOUCH_ACTION = PREFIXED_TOUCH_ACTION !== undefined;\n\n// magical touchAction value\nvar TOUCH_ACTION_COMPUTE = 'compute';\nvar TOUCH_ACTION_AUTO = 'auto';\nvar TOUCH_ACTION_MANIPULATION = 'manipulation'; // not implemented\nvar TOUCH_ACTION_NONE = 'none';\nvar TOUCH_ACTION_PAN_X = 'pan-x';\nvar TOUCH_ACTION_PAN_Y = 'pan-y';\nvar TOUCH_ACTION_MAP = getTouchActionProps();\n\n/**\n * Touch Action\n * sets the touchAction property or uses the js alternative\n * @param {Manager} manager\n * @param {String} value\n * @constructor\n */\nfunction TouchAction(manager, value) {\n this.manager = manager;\n this.set(value);\n}\n\nTouchAction.prototype = {\n /**\n * set the touchAction value on the element or enable the polyfill\n * @param {String} value\n */\n set: function(value) {\n // find out the touch-action by the event handlers\n if (value == TOUCH_ACTION_COMPUTE) {\n value = this.compute();\n }\n\n if (NATIVE_TOUCH_ACTION && this.manager.element.style && TOUCH_ACTION_MAP[value]) {\n this.manager.element.style[PREFIXED_TOUCH_ACTION] = value;\n }\n this.actions = value.toLowerCase().trim();\n },\n\n /**\n * just re-set the touchAction value\n */\n update: function() {\n this.set(this.manager.options.touchAction);\n },\n\n /**\n * compute the value for the touchAction property based on the recognizer's settings\n * @returns {String} value\n */\n compute: function() {\n var actions = [];\n each(this.manager.recognizers, function(recognizer) {\n if (boolOrFn(recognizer.options.enable, [recognizer])) {\n actions = actions.concat(recognizer.getTouchAction());\n }\n });\n return cleanTouchActions(actions.join(' '));\n },\n\n /**\n * this method is called on each input cycle and provides the preventing of the browser behavior\n * @param {Object} input\n */\n preventDefaults: function(input) {\n var srcEvent = input.srcEvent;\n var direction = input.offsetDirection;\n\n // if the touch action did prevented once this session\n if (this.manager.session.prevented) {\n srcEvent.preventDefault();\n return;\n }\n\n var actions = this.actions;\n var hasNone = inStr(actions, TOUCH_ACTION_NONE) && !TOUCH_ACTION_MAP[TOUCH_ACTION_NONE];\n var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y) && !TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_Y];\n var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X) && !TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_X];\n\n if (hasNone) {\n //do not prevent defaults if this is a tap gesture\n\n var isTapPointer = input.pointers.length === 1;\n var isTapMovement = input.distance < 2;\n var isTapTouchTime = input.deltaTime < 250;\n\n if (isTapPointer && isTapMovement && isTapTouchTime) {\n return;\n }\n }\n\n if (hasPanX && hasPanY) {\n // `pan-x pan-y` means browser handles all scrolling/panning, do not prevent\n return;\n }\n\n if (hasNone ||\n (hasPanY && direction & DIRECTION_HORIZONTAL) ||\n (hasPanX && direction & DIRECTION_VERTICAL)) {\n return this.preventSrc(srcEvent);\n }\n },\n\n /**\n * call preventDefault to prevent the browser's default behavior (scrolling in most cases)\n * @param {Object} srcEvent\n */\n preventSrc: function(srcEvent) {\n this.manager.session.prevented = true;\n srcEvent.preventDefault();\n }\n};\n\n/**\n * when the touchActions are collected they are not a valid value, so we need to clean things up. *\n * @param {String} actions\n * @returns {*}\n */\nfunction cleanTouchActions(actions) {\n // none\n if (inStr(actions, TOUCH_ACTION_NONE)) {\n return TOUCH_ACTION_NONE;\n }\n\n var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X);\n var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y);\n\n // if both pan-x and pan-y are set (different recognizers\n // for different directions, e.g. horizontal pan but vertical swipe?)\n // we need none (as otherwise with pan-x pan-y combined none of these\n // recognizers will work, since the browser would handle all panning\n if (hasPanX && hasPanY) {\n return TOUCH_ACTION_NONE;\n }\n\n // pan-x OR pan-y\n if (hasPanX || hasPanY) {\n return hasPanX ? TOUCH_ACTION_PAN_X : TOUCH_ACTION_PAN_Y;\n }\n\n // manipulation\n if (inStr(actions, TOUCH_ACTION_MANIPULATION)) {\n return TOUCH_ACTION_MANIPULATION;\n }\n\n return TOUCH_ACTION_AUTO;\n}\n\nfunction getTouchActionProps() {\n if (!NATIVE_TOUCH_ACTION) {\n return false;\n }\n var touchMap = {};\n var cssSupports = window.CSS && window.CSS.supports;\n ['auto', 'manipulation', 'pan-y', 'pan-x', 'pan-x pan-y', 'none'].forEach(function(val) {\n\n // If css.supports is not supported but there is native touch-action assume it supports\n // all values. This is the case for IE 10 and 11.\n touchMap[val] = cssSupports ? window.CSS.supports('touch-action', val) : true;\n });\n return touchMap;\n}\n\n/**\n * Recognizer flow explained; *\n * All recognizers have the initial state of POSSIBLE when a input session starts.\n * The definition of a input session is from the first input until the last input, with all it's movement in it. *\n * Example session for mouse-input: mousedown -> mousemove -> mouseup\n *\n * On each recognizing cycle (see Manager.recognize) the .recognize() method is executed\n * which determines with state it should be.\n *\n * If the recognizer has the state FAILED, CANCELLED or RECOGNIZED (equals ENDED), it is reset to\n * POSSIBLE to give it another change on the next cycle.\n *\n * Possible\n * |\n * +-----+---------------+\n * | |\n * +-----+-----+ |\n * | | |\n * Failed Cancelled |\n * +-------+------+\n * | |\n * Recognized Began\n * |\n * Changed\n * |\n * Ended/Recognized\n */\nvar STATE_POSSIBLE = 1;\nvar STATE_BEGAN = 2;\nvar STATE_CHANGED = 4;\nvar STATE_ENDED = 8;\nvar STATE_RECOGNIZED = STATE_ENDED;\nvar STATE_CANCELLED = 16;\nvar STATE_FAILED = 32;\n\n/**\n * Recognizer\n * Every recognizer needs to extend from this class.\n * @constructor\n * @param {Object} options\n */\nfunction Recognizer(options) {\n this.options = assign({}, this.defaults, options || {});\n\n this.id = uniqueId();\n\n this.manager = null;\n\n // default is enable true\n this.options.enable = ifUndefined(this.options.enable, true);\n\n this.state = STATE_POSSIBLE;\n\n this.simultaneous = {};\n this.requireFail = [];\n}\n\nRecognizer.prototype = {\n /**\n * @virtual\n * @type {Object}\n */\n defaults: {},\n\n /**\n * set options\n * @param {Object} options\n * @return {Recognizer}\n */\n set: function(options) {\n assign(this.options, options);\n\n // also update the touchAction, in case something changed about the directions/enabled state\n this.manager && this.manager.touchAction.update();\n return this;\n },\n\n /**\n * recognize simultaneous with an other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n recognizeWith: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'recognizeWith', this)) {\n return this;\n }\n\n var simultaneous = this.simultaneous;\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n if (!simultaneous[otherRecognizer.id]) {\n simultaneous[otherRecognizer.id] = otherRecognizer;\n otherRecognizer.recognizeWith(this);\n }\n return this;\n },\n\n /**\n * drop the simultaneous link. it doesnt remove the link on the other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n dropRecognizeWith: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'dropRecognizeWith', this)) {\n return this;\n }\n\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n delete this.simultaneous[otherRecognizer.id];\n return this;\n },\n\n /**\n * recognizer can only run when an other is failing\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n requireFailure: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'requireFailure', this)) {\n return this;\n }\n\n var requireFail = this.requireFail;\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n if (inArray(requireFail, otherRecognizer) === -1) {\n requireFail.push(otherRecognizer);\n otherRecognizer.requireFailure(this);\n }\n return this;\n },\n\n /**\n * drop the requireFailure link. it does not remove the link on the other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n dropRequireFailure: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'dropRequireFailure', this)) {\n return this;\n }\n\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n var index = inArray(this.requireFail, otherRecognizer);\n if (index > -1) {\n this.requireFail.splice(index, 1);\n }\n return this;\n },\n\n /**\n * has require failures boolean\n * @returns {boolean}\n */\n hasRequireFailures: function() {\n return this.requireFail.length > 0;\n },\n\n /**\n * if the recognizer can recognize simultaneous with an other recognizer\n * @param {Recognizer} otherRecognizer\n * @returns {Boolean}\n */\n canRecognizeWith: function(otherRecognizer) {\n return !!this.simultaneous[otherRecognizer.id];\n },\n\n /**\n * You should use `tryEmit` instead of `emit` directly to check\n * that all the needed recognizers has failed before emitting.\n * @param {Object} input\n */\n emit: function(input) {\n var self = this;\n var state = this.state;\n\n function emit(event) {\n self.manager.emit(event, input);\n }\n\n // 'panstart' and 'panmove'\n if (state < STATE_ENDED) {\n emit(self.options.event + stateStr(state));\n }\n\n emit(self.options.event); // simple 'eventName' events\n\n if (input.additionalEvent) { // additional event(panleft, panright, pinchin, pinchout...)\n emit(input.additionalEvent);\n }\n\n // panend and pancancel\n if (state >= STATE_ENDED) {\n emit(self.options.event + stateStr(state));\n }\n },\n\n /**\n * Check that all the require failure recognizers has failed,\n * if true, it emits a gesture event,\n * otherwise, setup the state to FAILED.\n * @param {Object} input\n */\n tryEmit: function(input) {\n if (this.canEmit()) {\n return this.emit(input);\n }\n // it's failing anyway\n this.state = STATE_FAILED;\n },\n\n /**\n * can we emit?\n * @returns {boolean}\n */\n canEmit: function() {\n var i = 0;\n while (i < this.requireFail.length) {\n if (!(this.requireFail[i].state & (STATE_FAILED | STATE_POSSIBLE))) {\n return false;\n }\n i++;\n }\n return true;\n },\n\n /**\n * update the recognizer\n * @param {Object} inputData\n */\n recognize: function(inputData) {\n // make a new copy of the inputData\n // so we can change the inputData without messing up the other recognizers\n var inputDataClone = assign({}, inputData);\n\n // is is enabled and allow recognizing?\n if (!boolOrFn(this.options.enable, [this, inputDataClone])) {\n this.reset();\n this.state = STATE_FAILED;\n return;\n }\n\n // reset when we've reached the end\n if (this.state & (STATE_RECOGNIZED | STATE_CANCELLED | STATE_FAILED)) {\n this.state = STATE_POSSIBLE;\n }\n\n this.state = this.process(inputDataClone);\n\n // the recognizer has recognized a gesture\n // so trigger an event\n if (this.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED | STATE_CANCELLED)) {\n this.tryEmit(inputDataClone);\n }\n },\n\n /**\n * return the state of the recognizer\n * the actual recognizing happens in this method\n * @virtual\n * @param {Object} inputData\n * @returns {Const} STATE\n */\n process: function(inputData) { }, // jshint ignore:line\n\n /**\n * return the preferred touch-action\n * @virtual\n * @returns {Array}\n */\n getTouchAction: function() { },\n\n /**\n * called when the gesture isn't allowed to recognize\n * like when another is being recognized or it is disabled\n * @virtual\n */\n reset: function() { }\n};\n\n/**\n * get a usable string, used as event postfix\n * @param {Const} state\n * @returns {String} state\n */\nfunction stateStr(state) {\n if (state & STATE_CANCELLED) {\n return 'cancel';\n } else if (state & STATE_ENDED) {\n return 'end';\n } else if (state & STATE_CHANGED) {\n return 'move';\n } else if (state & STATE_BEGAN) {\n return 'start';\n }\n return '';\n}\n\n/**\n * direction cons to string\n * @param {Const} direction\n * @returns {String}\n */\nfunction directionStr(direction) {\n if (direction == DIRECTION_DOWN) {\n return 'down';\n } else if (direction == DIRECTION_UP) {\n return 'up';\n } else if (direction == DIRECTION_LEFT) {\n return 'left';\n } else if (direction == DIRECTION_RIGHT) {\n return 'right';\n }\n return '';\n}\n\n/**\n * get a recognizer by name if it is bound to a manager\n * @param {Recognizer|String} otherRecognizer\n * @param {Recognizer} recognizer\n * @returns {Recognizer}\n */\nfunction getRecognizerByNameIfManager(otherRecognizer, recognizer) {\n var manager = recognizer.manager;\n if (manager) {\n return manager.get(otherRecognizer);\n }\n return otherRecognizer;\n}\n\n/**\n * This recognizer is just used as a base for the simple attribute recognizers.\n * @constructor\n * @extends Recognizer\n */\nfunction AttrRecognizer() {\n Recognizer.apply(this, arguments);\n}\n\ninherit(AttrRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof AttrRecognizer\n */\n defaults: {\n /**\n * @type {Number}\n * @default 1\n */\n pointers: 1\n },\n\n /**\n * Used to check if it the recognizer receives valid input, like input.distance > 10.\n * @memberof AttrRecognizer\n * @param {Object} input\n * @returns {Boolean} recognized\n */\n attrTest: function(input) {\n var optionPointers = this.options.pointers;\n return optionPointers === 0 || input.pointers.length === optionPointers;\n },\n\n /**\n * Process the input and return the state for the recognizer\n * @memberof AttrRecognizer\n * @param {Object} input\n * @returns {*} State\n */\n process: function(input) {\n var state = this.state;\n var eventType = input.eventType;\n\n var isRecognized = state & (STATE_BEGAN | STATE_CHANGED);\n var isValid = this.attrTest(input);\n\n // on cancel input and we've recognized before, return STATE_CANCELLED\n if (isRecognized && (eventType & INPUT_CANCEL || !isValid)) {\n return state | STATE_CANCELLED;\n } else if (isRecognized || isValid) {\n if (eventType & INPUT_END) {\n return state | STATE_ENDED;\n } else if (!(state & STATE_BEGAN)) {\n return STATE_BEGAN;\n }\n return state | STATE_CHANGED;\n }\n return STATE_FAILED;\n }\n});\n\n/**\n * Pan\n * Recognized when the pointer is down and moved in the allowed direction.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction PanRecognizer() {\n AttrRecognizer.apply(this, arguments);\n\n this.pX = null;\n this.pY = null;\n}\n\ninherit(PanRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof PanRecognizer\n */\n defaults: {\n event: 'pan',\n threshold: 10,\n pointers: 1,\n direction: DIRECTION_ALL\n },\n\n getTouchAction: function() {\n var direction = this.options.direction;\n var actions = [];\n if (direction & DIRECTION_HORIZONTAL) {\n actions.push(TOUCH_ACTION_PAN_Y);\n }\n if (direction & DIRECTION_VERTICAL) {\n actions.push(TOUCH_ACTION_PAN_X);\n }\n return actions;\n },\n\n directionTest: function(input) {\n var options = this.options;\n var hasMoved = true;\n var distance = input.distance;\n var direction = input.direction;\n var x = input.deltaX;\n var y = input.deltaY;\n\n // lock to axis?\n if (!(direction & options.direction)) {\n if (options.direction & DIRECTION_HORIZONTAL) {\n direction = (x === 0) ? DIRECTION_NONE : (x < 0) ? DIRECTION_LEFT : DIRECTION_RIGHT;\n hasMoved = x != this.pX;\n distance = Math.abs(input.deltaX);\n } else {\n direction = (y === 0) ? DIRECTION_NONE : (y < 0) ? DIRECTION_UP : DIRECTION_DOWN;\n hasMoved = y != this.pY;\n distance = Math.abs(input.deltaY);\n }\n }\n input.direction = direction;\n return hasMoved && distance > options.threshold && direction & options.direction;\n },\n\n attrTest: function(input) {\n return AttrRecognizer.prototype.attrTest.call(this, input) &&\n (this.state & STATE_BEGAN || (!(this.state & STATE_BEGAN) && this.directionTest(input)));\n },\n\n emit: function(input) {\n\n this.pX = input.deltaX;\n this.pY = input.deltaY;\n\n var direction = directionStr(input.direction);\n\n if (direction) {\n input.additionalEvent = this.options.event + direction;\n }\n this._super.emit.call(this, input);\n }\n});\n\n/**\n * Pinch\n * Recognized when two or more pointers are moving toward (zoom-in) or away from each other (zoom-out).\n * @constructor\n * @extends AttrRecognizer\n */\nfunction PinchRecognizer() {\n AttrRecognizer.apply(this, arguments);\n}\n\ninherit(PinchRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof PinchRecognizer\n */\n defaults: {\n event: 'pinch',\n threshold: 0,\n pointers: 2\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_NONE];\n },\n\n attrTest: function(input) {\n return this._super.attrTest.call(this, input) &&\n (Math.abs(input.scale - 1) > this.options.threshold || this.state & STATE_BEGAN);\n },\n\n emit: function(input) {\n if (input.scale !== 1) {\n var inOut = input.scale < 1 ? 'in' : 'out';\n input.additionalEvent = this.options.event + inOut;\n }\n this._super.emit.call(this, input);\n }\n});\n\n/**\n * Press\n * Recognized when the pointer is down for x ms without any movement.\n * @constructor\n * @extends Recognizer\n */\nfunction PressRecognizer() {\n Recognizer.apply(this, arguments);\n\n this._timer = null;\n this._input = null;\n}\n\ninherit(PressRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof PressRecognizer\n */\n defaults: {\n event: 'press',\n pointers: 1,\n time: 251, // minimal time of the pointer to be pressed\n threshold: 9 // a minimal movement is ok, but keep it low\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_AUTO];\n },\n\n process: function(input) {\n var options = this.options;\n var validPointers = input.pointers.length === options.pointers;\n var validMovement = input.distance < options.threshold;\n var validTime = input.deltaTime > options.time;\n\n this._input = input;\n\n // we only allow little movement\n // and we've reached an end event, so a tap is possible\n if (!validMovement || !validPointers || (input.eventType & (INPUT_END | INPUT_CANCEL) && !validTime)) {\n this.reset();\n } else if (input.eventType & INPUT_START) {\n this.reset();\n this._timer = setTimeoutContext(function() {\n this.state = STATE_RECOGNIZED;\n this.tryEmit();\n }, options.time, this);\n } else if (input.eventType & INPUT_END) {\n return STATE_RECOGNIZED;\n }\n return STATE_FAILED;\n },\n\n reset: function() {\n clearTimeout(this._timer);\n },\n\n emit: function(input) {\n if (this.state !== STATE_RECOGNIZED) {\n return;\n }\n\n if (input && (input.eventType & INPUT_END)) {\n this.manager.emit(this.options.event + 'up', input);\n } else {\n this._input.timeStamp = now();\n this.manager.emit(this.options.event, this._input);\n }\n }\n});\n\n/**\n * Rotate\n * Recognized when two or more pointer are moving in a circular motion.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction RotateRecognizer() {\n AttrRecognizer.apply(this, arguments);\n}\n\ninherit(RotateRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof RotateRecognizer\n */\n defaults: {\n event: 'rotate',\n threshold: 0,\n pointers: 2\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_NONE];\n },\n\n attrTest: function(input) {\n return this._super.attrTest.call(this, input) &&\n (Math.abs(input.rotation) > this.options.threshold || this.state & STATE_BEGAN);\n }\n});\n\n/**\n * Swipe\n * Recognized when the pointer is moving fast (velocity), with enough distance in the allowed direction.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction SwipeRecognizer() {\n AttrRecognizer.apply(this, arguments);\n}\n\ninherit(SwipeRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof SwipeRecognizer\n */\n defaults: {\n event: 'swipe',\n threshold: 10,\n velocity: 0.3,\n direction: DIRECTION_HORIZONTAL | DIRECTION_VERTICAL,\n pointers: 1\n },\n\n getTouchAction: function() {\n return PanRecognizer.prototype.getTouchAction.call(this);\n },\n\n attrTest: function(input) {\n var direction = this.options.direction;\n var velocity;\n\n if (direction & (DIRECTION_HORIZONTAL | DIRECTION_VERTICAL)) {\n velocity = input.overallVelocity;\n } else if (direction & DIRECTION_HORIZONTAL) {\n velocity = input.overallVelocityX;\n } else if (direction & DIRECTION_VERTICAL) {\n velocity = input.overallVelocityY;\n }\n\n return this._super.attrTest.call(this, input) &&\n direction & input.offsetDirection &&\n input.distance > this.options.threshold &&\n input.maxPointers == this.options.pointers &&\n abs(velocity) > this.options.velocity && input.eventType & INPUT_END;\n },\n\n emit: function(input) {\n var direction = directionStr(input.offsetDirection);\n if (direction) {\n this.manager.emit(this.options.event + direction, input);\n }\n\n this.manager.emit(this.options.event, input);\n }\n});\n\n/**\n * A tap is ecognized when the pointer is doing a small tap/click. Multiple taps are recognized if they occur\n * between the given interval and position. The delay option can be used to recognize multi-taps without firing\n * a single tap.\n *\n * The eventData from the emitted event contains the property `tapCount`, which contains the amount of\n * multi-taps being recognized.\n * @constructor\n * @extends Recognizer\n */\nfunction TapRecognizer() {\n Recognizer.apply(this, arguments);\n\n // previous time and center,\n // used for tap counting\n this.pTime = false;\n this.pCenter = false;\n\n this._timer = null;\n this._input = null;\n this.count = 0;\n}\n\ninherit(TapRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof PinchRecognizer\n */\n defaults: {\n event: 'tap',\n pointers: 1,\n taps: 1,\n interval: 300, // max time between the multi-tap taps\n time: 250, // max time of the pointer to be down (like finger on the screen)\n threshold: 9, // a minimal movement is ok, but keep it low\n posThreshold: 10 // a multi-tap can be a bit off the initial position\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_MANIPULATION];\n },\n\n process: function(input) {\n var options = this.options;\n\n var validPointers = input.pointers.length === options.pointers;\n var validMovement = input.distance < options.threshold;\n var validTouchTime = input.deltaTime < options.time;\n\n this.reset();\n\n if ((input.eventType & INPUT_START) && (this.count === 0)) {\n return this.failTimeout();\n }\n\n // we only allow little movement\n // and we've reached an end event, so a tap is possible\n if (validMovement && validTouchTime && validPointers) {\n if (input.eventType != INPUT_END) {\n return this.failTimeout();\n }\n\n var validInterval = this.pTime ? (input.timeStamp - this.pTime < options.interval) : true;\n var validMultiTap = !this.pCenter || getDistance(this.pCenter, input.center) < options.posThreshold;\n\n this.pTime = input.timeStamp;\n this.pCenter = input.center;\n\n if (!validMultiTap || !validInterval) {\n this.count = 1;\n } else {\n this.count += 1;\n }\n\n this._input = input;\n\n // if tap count matches we have recognized it,\n // else it has began recognizing...\n var tapCount = this.count % options.taps;\n if (tapCount === 0) {\n // no failing requirements, immediately trigger the tap event\n // or wait as long as the multitap interval to trigger\n if (!this.hasRequireFailures()) {\n return STATE_RECOGNIZED;\n } else {\n this._timer = setTimeoutContext(function() {\n this.state = STATE_RECOGNIZED;\n this.tryEmit();\n }, options.interval, this);\n return STATE_BEGAN;\n }\n }\n }\n return STATE_FAILED;\n },\n\n failTimeout: function() {\n this._timer = setTimeoutContext(function() {\n this.state = STATE_FAILED;\n }, this.options.interval, this);\n return STATE_FAILED;\n },\n\n reset: function() {\n clearTimeout(this._timer);\n },\n\n emit: function() {\n if (this.state == STATE_RECOGNIZED) {\n this._input.tapCount = this.count;\n this.manager.emit(this.options.event, this._input);\n }\n }\n});\n\n/**\n * Simple way to create a manager with a default set of recognizers.\n * @param {HTMLElement} element\n * @param {Object} [options]\n * @constructor\n */\nfunction Hammer(element, options) {\n options = options || {};\n options.recognizers = ifUndefined(options.recognizers, Hammer.defaults.preset);\n return new Manager(element, options);\n}\n\n/**\n * @const {string}\n */\nHammer.VERSION = '2.0.7';\n\n/**\n * default settings\n * @namespace\n */\nHammer.defaults = {\n /**\n * set if DOM events are being triggered.\n * But this is slower and unused by simple implementations, so disabled by default.\n * @type {Boolean}\n * @default false\n */\n domEvents: false,\n\n /**\n * The value for the touchAction property/fallback.\n * When set to `compute` it will magically set the correct value based on the added recognizers.\n * @type {String}\n * @default compute\n */\n touchAction: TOUCH_ACTION_COMPUTE,\n\n /**\n * @type {Boolean}\n * @default true\n */\n enable: true,\n\n /**\n * EXPERIMENTAL FEATURE -- can be removed/changed\n * Change the parent input target element.\n * If Null, then it is being set the to main element.\n * @type {Null|EventTarget}\n * @default null\n */\n inputTarget: null,\n\n /**\n * force an input class\n * @type {Null|Function}\n * @default null\n */\n inputClass: null,\n\n /**\n * Default recognizer setup when calling `Hammer()`\n * When creating a new Manager these will be skipped.\n * @type {Array}\n */\n preset: [\n // RecognizerClass, options, [recognizeWith, ...], [requireFailure, ...]\n [RotateRecognizer, {enable: false}],\n [PinchRecognizer, {enable: false}, ['rotate']],\n [SwipeRecognizer, {direction: DIRECTION_HORIZONTAL}],\n [PanRecognizer, {direction: DIRECTION_HORIZONTAL}, ['swipe']],\n [TapRecognizer],\n [TapRecognizer, {event: 'doubletap', taps: 2}, ['tap']],\n [PressRecognizer]\n ],\n\n /**\n * Some CSS properties can be used to improve the working of Hammer.\n * Add them to this method and they will be set when creating a new Manager.\n * @namespace\n */\n cssProps: {\n /**\n * Disables text selection to improve the dragging gesture. Mainly for desktop browsers.\n * @type {String}\n * @default 'none'\n */\n userSelect: 'none',\n\n /**\n * Disable the Windows Phone grippers when pressing an element.\n * @type {String}\n * @default 'none'\n */\n touchSelect: 'none',\n\n /**\n * Disables the default callout shown when you touch and hold a touch target.\n * On iOS, when you touch and hold a touch target such as a link, Safari displays\n * a callout containing information about the link. This property allows you to disable that callout.\n * @type {String}\n * @default 'none'\n */\n touchCallout: 'none',\n\n /**\n * Specifies whether zooming is enabled. Used by IE10>\n * @type {String}\n * @default 'none'\n */\n contentZooming: 'none',\n\n /**\n * Specifies that an entire element should be draggable instead of its contents. Mainly for desktop browsers.\n * @type {String}\n * @default 'none'\n */\n userDrag: 'none',\n\n /**\n * Overrides the highlight color shown when the user taps a link or a JavaScript\n * clickable element in iOS. This property obeys the alpha value, if specified.\n * @type {String}\n * @default 'rgba(0,0,0,0)'\n */\n tapHighlightColor: 'rgba(0,0,0,0)'\n }\n};\n\nvar STOP = 1;\nvar FORCED_STOP = 2;\n\n/**\n * Manager\n * @param {HTMLElement} element\n * @param {Object} [options]\n * @constructor\n */\nfunction Manager(element, options) {\n this.options = assign({}, Hammer.defaults, options || {});\n\n this.options.inputTarget = this.options.inputTarget || element;\n\n this.handlers = {};\n this.session = {};\n this.recognizers = [];\n this.oldCssProps = {};\n\n this.element = element;\n this.input = createInputInstance(this);\n this.touchAction = new TouchAction(this, this.options.touchAction);\n\n toggleCssProps(this, true);\n\n each(this.options.recognizers, function(item) {\n var recognizer = this.add(new (item[0])(item[1]));\n item[2] && recognizer.recognizeWith(item[2]);\n item[3] && recognizer.requireFailure(item[3]);\n }, this);\n}\n\nManager.prototype = {\n /**\n * set options\n * @param {Object} options\n * @returns {Manager}\n */\n set: function(options) {\n assign(this.options, options);\n\n // Options that need a little more setup\n if (options.touchAction) {\n this.touchAction.update();\n }\n if (options.inputTarget) {\n // Clean up existing event listeners and reinitialize\n this.input.destroy();\n this.input.target = options.inputTarget;\n this.input.init();\n }\n return this;\n },\n\n /**\n * stop recognizing for this session.\n * This session will be discarded, when a new [input]start event is fired.\n * When forced, the recognizer cycle is stopped immediately.\n * @param {Boolean} [force]\n */\n stop: function(force) {\n this.session.stopped = force ? FORCED_STOP : STOP;\n },\n\n /**\n * run the recognizers!\n * called by the inputHandler function on every movement of the pointers (touches)\n * it walks through all the recognizers and tries to detect the gesture that is being made\n * @param {Object} inputData\n */\n recognize: function(inputData) {\n var session = this.session;\n if (session.stopped) {\n return;\n }\n\n // run the touch-action polyfill\n this.touchAction.preventDefaults(inputData);\n\n var recognizer;\n var recognizers = this.recognizers;\n\n // this holds the recognizer that is being recognized.\n // so the recognizer's state needs to be BEGAN, CHANGED, ENDED or RECOGNIZED\n // if no recognizer is detecting a thing, it is set to `null`\n var curRecognizer = session.curRecognizer;\n\n // reset when the last recognizer is recognized\n // or when we're in a new session\n if (!curRecognizer || (curRecognizer && curRecognizer.state & STATE_RECOGNIZED)) {\n curRecognizer = session.curRecognizer = null;\n }\n\n var i = 0;\n while (i < recognizers.length) {\n recognizer = recognizers[i];\n\n // find out if we are allowed try to recognize the input for this one.\n // 1. allow if the session is NOT forced stopped (see the .stop() method)\n // 2. allow if we still haven't recognized a gesture in this session, or the this recognizer is the one\n // that is being recognized.\n // 3. allow if the recognizer is allowed to run simultaneous with the current recognized recognizer.\n // this can be setup with the `recognizeWith()` method on the recognizer.\n if (session.stopped !== FORCED_STOP && ( // 1\n !curRecognizer || recognizer == curRecognizer || // 2\n recognizer.canRecognizeWith(curRecognizer))) { // 3\n recognizer.recognize(inputData);\n } else {\n recognizer.reset();\n }\n\n // if the recognizer has been recognizing the input as a valid gesture, we want to store this one as the\n // current active recognizer. but only if we don't already have an active recognizer\n if (!curRecognizer && recognizer.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED)) {\n curRecognizer = session.curRecognizer = recognizer;\n }\n i++;\n }\n },\n\n /**\n * get a recognizer by its event name.\n * @param {Recognizer|String} recognizer\n * @returns {Recognizer|Null}\n */\n get: function(recognizer) {\n if (recognizer instanceof Recognizer) {\n return recognizer;\n }\n\n var recognizers = this.recognizers;\n for (var i = 0; i < recognizers.length; i++) {\n if (recognizers[i].options.event == recognizer) {\n return recognizers[i];\n }\n }\n return null;\n },\n\n /**\n * add a recognizer to the manager\n * existing recognizers with the same event name will be removed\n * @param {Recognizer} recognizer\n * @returns {Recognizer|Manager}\n */\n add: function(recognizer) {\n if (invokeArrayArg(recognizer, 'add', this)) {\n return this;\n }\n\n // remove existing\n var existing = this.get(recognizer.options.event);\n if (existing) {\n this.remove(existing);\n }\n\n this.recognizers.push(recognizer);\n recognizer.manager = this;\n\n this.touchAction.update();\n return recognizer;\n },\n\n /**\n * remove a recognizer by name or instance\n * @param {Recognizer|String} recognizer\n * @returns {Manager}\n */\n remove: function(recognizer) {\n if (invokeArrayArg(recognizer, 'remove', this)) {\n return this;\n }\n\n recognizer = this.get(recognizer);\n\n // let's make sure this recognizer exists\n if (recognizer) {\n var recognizers = this.recognizers;\n var index = inArray(recognizers, recognizer);\n\n if (index !== -1) {\n recognizers.splice(index, 1);\n this.touchAction.update();\n }\n }\n\n return this;\n },\n\n /**\n * bind event\n * @param {String} events\n * @param {Function} handler\n * @returns {EventEmitter} this\n */\n on: function(events, handler) {\n if (events === undefined) {\n return;\n }\n if (handler === undefined) {\n return;\n }\n\n var handlers = this.handlers;\n each(splitStr(events), function(event) {\n handlers[event] = handlers[event] || [];\n handlers[event].push(handler);\n });\n return this;\n },\n\n /**\n * unbind event, leave emit blank to remove all handlers\n * @param {String} events\n * @param {Function} [handler]\n * @returns {EventEmitter} this\n */\n off: function(events, handler) {\n if (events === undefined) {\n return;\n }\n\n var handlers = this.handlers;\n each(splitStr(events), function(event) {\n if (!handler) {\n delete handlers[event];\n } else {\n handlers[event] && handlers[event].splice(inArray(handlers[event], handler), 1);\n }\n });\n return this;\n },\n\n /**\n * emit event to the listeners\n * @param {String} event\n * @param {Object} data\n */\n emit: function(event, data) {\n // we also want to trigger dom events\n if (this.options.domEvents) {\n triggerDomEvent(event, data);\n }\n\n // no handlers, so skip it all\n var handlers = this.handlers[event] && this.handlers[event].slice();\n if (!handlers || !handlers.length) {\n return;\n }\n\n data.type = event;\n data.preventDefault = function() {\n data.srcEvent.preventDefault();\n };\n\n var i = 0;\n while (i < handlers.length) {\n handlers[i](data);\n i++;\n }\n },\n\n /**\n * destroy the manager and unbinds all events\n * it doesn't unbind dom events, that is the user own responsibility\n */\n destroy: function() {\n this.element && toggleCssProps(this, false);\n\n this.handlers = {};\n this.session = {};\n this.input.destroy();\n this.element = null;\n }\n};\n\n/**\n * add/remove the css properties as defined in manager.options.cssProps\n * @param {Manager} manager\n * @param {Boolean} add\n */\nfunction toggleCssProps(manager, add) {\n var element = manager.element;\n if (!element.style) {\n return;\n }\n var prop;\n each(manager.options.cssProps, function(value, name) {\n prop = prefixed(element.style, name);\n if (add) {\n manager.oldCssProps[prop] = element.style[prop];\n element.style[prop] = value;\n } else {\n element.style[prop] = manager.oldCssProps[prop] || '';\n }\n });\n if (!add) {\n manager.oldCssProps = {};\n }\n}\n\n/**\n * trigger dom event\n * @param {String} event\n * @param {Object} data\n */\nfunction triggerDomEvent(event, data) {\n var gestureEvent = document.createEvent('Event');\n gestureEvent.initEvent(event, true, true);\n gestureEvent.gesture = data;\n data.target.dispatchEvent(gestureEvent);\n}\n\nassign(Hammer, {\n INPUT_START: INPUT_START,\n INPUT_MOVE: INPUT_MOVE,\n INPUT_END: INPUT_END,\n INPUT_CANCEL: INPUT_CANCEL,\n\n STATE_POSSIBLE: STATE_POSSIBLE,\n STATE_BEGAN: STATE_BEGAN,\n STATE_CHANGED: STATE_CHANGED,\n STATE_ENDED: STATE_ENDED,\n STATE_RECOGNIZED: STATE_RECOGNIZED,\n STATE_CANCELLED: STATE_CANCELLED,\n STATE_FAILED: STATE_FAILED,\n\n DIRECTION_NONE: DIRECTION_NONE,\n DIRECTION_LEFT: DIRECTION_LEFT,\n DIRECTION_RIGHT: DIRECTION_RIGHT,\n DIRECTION_UP: DIRECTION_UP,\n DIRECTION_DOWN: DIRECTION_DOWN,\n DIRECTION_HORIZONTAL: DIRECTION_HORIZONTAL,\n DIRECTION_VERTICAL: DIRECTION_VERTICAL,\n DIRECTION_ALL: DIRECTION_ALL,\n\n Manager: Manager,\n Input: Input,\n TouchAction: TouchAction,\n\n TouchInput: TouchInput,\n MouseInput: MouseInput,\n PointerEventInput: PointerEventInput,\n TouchMouseInput: TouchMouseInput,\n SingleTouchInput: SingleTouchInput,\n\n Recognizer: Recognizer,\n AttrRecognizer: AttrRecognizer,\n Tap: TapRecognizer,\n Pan: PanRecognizer,\n Swipe: SwipeRecognizer,\n Pinch: PinchRecognizer,\n Rotate: RotateRecognizer,\n Press: PressRecognizer,\n\n on: addEventListeners,\n off: removeEventListeners,\n each: each,\n merge: merge,\n extend: extend,\n assign: assign,\n inherit: inherit,\n bindFn: bindFn,\n prefixed: prefixed\n});\n\n// this prevents errors when Hammer is loaded in the presence of an AMD\n// style loader but by script tag, not by the loader.\nvar freeGlobal = (typeof window !== 'undefined' ? window : (typeof self !== 'undefined' ? self : {})); // jshint ignore:line\nfreeGlobal.Hammer = Hammer;\n\nif (typeof define === 'function' && define.amd) {\n define(function() {\n return Hammer;\n });\n} else if (typeof module != 'undefined' && module.exports) {\n module.exports = Hammer;\n} else {\n window[exportName] = Hammer;\n}\n\n})(window, document, 'Hammer');\n","import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, withCtx as _withCtx, createVNode as _createVNode, createBlock as _createBlock, normalizeClass as _normalizeClass, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-2ec46dab\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n key: 0,\n class: \"header\"\n}\nconst _hoisted_2 = { class: \"title\" }\nconst _hoisted_3 = {\n key: 0,\n class: \"upload button default primary add-btn-primary\"\n}\nconst _hoisted_4 = [\"accept\"]\nconst _hoisted_5 = {\n key: 1,\n class: \"rows\"\n}\nconst _hoisted_6 = { key: 0 }\nconst _hoisted_7 = [\"onClick\"]\nconst _hoisted_8 = {\n key: 0,\n class: \"preview\"\n}\nconst _hoisted_9 = [\"src\"]\nconst _hoisted_10 = {\n key: 1,\n class: \"pdf-icon\"\n}\nconst _hoisted_11 = { class: \"name\" }\nconst _hoisted_12 = { class: \"date\" }\nconst _hoisted_13 = { class: \"wrapper-dots\" }\nconst _hoisted_14 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"dots\" }, [\n /*#__PURE__*/_createElementVNode(\"div\", { class: \"actions\" })\n], -1))\nconst _hoisted_15 = { class: \"menu-option\" }\nconst _hoisted_16 = [\"onClick\"]\nconst _hoisted_17 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"menu-item delete\" }, \"Delete File\", -1))\nconst _hoisted_18 = [\n _hoisted_17\n]\nconst _hoisted_19 = [\"onClick\"]\nconst _hoisted_20 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"menu-item upload-file\" }, \"Download File\", -1))\nconst _hoisted_21 = [\n _hoisted_20\n]\nconst _hoisted_22 = { key: 1 }\nconst _hoisted_23 = {\n key: 2,\n class: \"row\"\n}\nconst _hoisted_24 = {\n key: 0,\n class: \"name\"\n}\nconst _hoisted_25 = {\n key: 1,\n class: \"name\"\n}\nconst _hoisted_26 = {\n key: 2,\n class: \"spinner\"\n}\nconst _hoisted_27 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"description--highlighted\" }, \"Confirm action\", -1))\nconst _hoisted_28 = { class: \"description--highlighted\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\"card card-documents\", { inner: $props.inner }])\n }, [\n ($setup.lotId)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, _toDisplayString($props.tab), 1),\n ($setup.canManageLot)\n ? (_openBlock(), _createElementBlock(\"label\", _hoisted_3, [\n _createTextVNode(\"Add \" + _toDisplayString($props.tab === $setup.DocumentTypeEnum.DOCUMENTS ? \"Document\" : \"Contract\"), 1),\n _createElementVNode(\"input\", {\n type: \"file\",\n ref: \"fileInput\",\n onChange: _cache[0] || (_cache[0] = ($event: any) => ($setup.uploadDocument($event))),\n accept: $setup.documentTypes\n }, null, 40, _hoisted_4)\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true),\n (!$setup.loading)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, [\n (($props.tab === $setup.DocumentTypeEnum.DOCUMENTS || $props.tab === $setup.DocumentTypeEnum.CONTRACTS) && !$setup.isContactsPage)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_6, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList($setup.docs, (doc, index) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"row\",\n key: index\n }, [\n _createElementVNode(\"div\", {\n class: \"clicked-wr\",\n onClick: ($event: any) => ($setup.openDocument(doc))\n }, [\n ($setup.isImage(doc.fileName))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [\n _createElementVNode(\"img\", {\n src: doc.link,\n alt: \"Preview\"\n }, null, 8, _hoisted_9)\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_10)),\n _createElementVNode(\"div\", _hoisted_11, _toDisplayString($setup.getDocumentName(doc.fileName)), 1)\n ], 8, _hoisted_7),\n _createElementVNode(\"div\", _hoisted_12, _toDisplayString($setup.formatDate(doc.modifiedDate)), 1),\n _createElementVNode(\"div\", _hoisted_13, [\n _createVNode($setup[\"DropDown\"], { placement: 'right bottom' }, {\n control: _withCtx(() => [\n _hoisted_14\n ]),\n dropdown: _withCtx(() => [\n _createElementVNode(\"ul\", _hoisted_15, [\n ($setup.lotId)\n ? (_openBlock(), _createElementBlock(\"li\", {\n key: 0,\n onClick: ($event: any) => ($setup.showDeleteFileModal(doc.fileName, index))\n }, _hoisted_18, 8, _hoisted_16))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"li\", {\n onClick: ($event: any) => ($setup.downloadFile(doc.fileName, doc.link))\n }, _hoisted_21, 8, _hoisted_19)\n ])\n ]),\n _: 2\n }, 1024)\n ])\n ]))\n }), 128))\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_22, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList($setup.docs, (item, index) => {\n return (_openBlock(), _createBlock($setup[\"DocumentItem\"], {\n class: \"block-documents--item\",\n key: index,\n link: item.link,\n name: item.fileName\n }, null, 8, [\"link\", \"name\"]))\n }), 128))\n ])),\n (!$setup.docs?.length)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_23, [\n ($setup.props.tab === $setup.DocumentTypeEnum.CONTRACTS)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_24, \"You have not \" + _toDisplayString($setup.isLotContractsTab ? \"uploaded\" : \"signed\") + \" any \" + _toDisplayString($props.tab) + \" \" + _toDisplayString($setup.isLotContractsTab ? \"for\" : \"with\") + \" this \" + _toDisplayString($setup.isLotContractsTab ? \"lot\" : \"buyer\") + \" yet\", 1))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_25, \"You have not uploaded any \" + _toDisplayString($props.tab) + \" for this lot yet\", 1))\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_26)),\n _createVNode($setup[\"ImagePreviewModal\"], {\n showImg: $setup.showImg,\n onClose: _cache[1] || (_cache[1] = ($event: any) => ($setup.showImg = null))\n }, null, 8, [\"showImg\"]),\n _createVNode($setup[\"RemoveDocumentsModal\"], {\n \"is-open\": $setup.isOpenRemoveDocumentsModal,\n onClose: _cache[2] || (_cache[2] = ($event: any) => ($setup.isOpenRemoveDocumentsModal = false)),\n onConfirm: $setup.deleteDocument\n }, {\n title: _withCtx(() => [\n _hoisted_27\n ]),\n description: _withCtx(() => [\n _createTextVNode(\"Are you sure you want to delete file '\"),\n _createElementVNode(\"span\", _hoisted_28, _toDisplayString($setup.getDocumentName($setup.fileForDelete.file)) + \"' ?\", 1)\n ]),\n _: 1\n }, 8, [\"is-open\"])\n ], 2))\n}","import { defineComponent as _defineComponent } from 'vue'\nimport { computed, ref } from \"vue\";\n import DropDown from \"@/components/ui/dropdown/DropDown.vue\";\n import RemoveDocumentsModal from \"@/components/ui/modals/RemoveDocumentModal.vue\";\n import ImagePreviewModal from \"@/components/ui/modals/ImagePeviewModal.vue\";\n import router from \"@/router\";\n import store from \"@/store\";\n import { formatDate } from \"@/helpers/date\";\n import { DocumentTypeEnum } from \"@/enums/DocumentTypeEnum\";\n import { useToast } from \"vue-toastification\";\n import {\n isValidFileSize,\n isValidDocumentType,\n validDocumentsTypes,\n } from \"@/helpers/fileUpload\";\n import { getDocumentName, isImage } from \"@/helpers/documents\";\n import { downloadFile as downloadDocument } from \"@/helpers/downloadFile\";\n import DocumentItem from \"@/components/ui/DocumentItem.vue\";\n import { isLotOwner } from \"@/helpers/lot/isLotOwner\";\n import { LotInterface } from \"@/types/LotInterface\";\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'LotDocuments',\n props: {\n tab: {\n type: String,\n default() {\n return DocumentTypeEnum.DOCUMENTS;\n },\n },\n lot: {\n type: Object,\n },\n isAdmin: {\n type: Boolean,\n },\n inner: {\n type: Boolean,\n default: false,\n },\n },\n emits: [\"addDocument\", \"deleteDocument\"],\n setup(__props, { expose: __expose, emit }) {\n __expose();\n\nconst props = __props;\n\n const toast = useToast();\n \n \n const showImg = ref(null);\n const lotId = router.currentRoute.value.params.lotId;\n const docs = computed(() => {\n if (props.tab === DocumentTypeEnum.CONTRACTS) {\n return props.lot ? props.lot.contracts : [];\n }\n return props.lot ? props.lot.documents : [];\n });\n const estateId = computed(() => {\n return store.state.user.selectedEstateId;\n });\n const fileInput = ref(null);\n const fileForDelete = ref({ file: \"\", index: 0 });\n const isOpenRemoveDocumentsModal = ref(false);\n const documentTypes = validDocumentsTypes.join(\", \");\n const loading = ref(false);\n const isContactsPage = computed(() => {\n return router.currentRoute.value.name === \"ContactDetails\";\n });\n const isLotContractsTab = computed(() => {\n return router.currentRoute.value.name === \"LotContracts\";\n });\n const canManageLot = computed(() => isLotOwner(props.lot as LotInterface));\n\n const uploadDocument = (e: any) => {\n if (!canManageLot.value) {\n toast.error(\"You don't have permission to add documents to this lot\");\n return;\n }\n if (!e.target.files.length) {\n return;\n }\n const file = e.target.files[0];\n fileInput.value.value = \"\";\n if (!isValidDocumentType(file) || !isValidFileSize(file)) {\n return;\n }\n loading.value = true;\n const data = new FormData();\n data.append(\"file\", file);\n data.append(\"documentType\", props.tab);\n data.append(\"lotId\", lotId as string);\n data.append(\"estateId\", estateId.value);\n store\n .dispatch(\"lot/uploadLotDocuments\", data)\n .then((res) => {\n toast.success(\"Your document was successfully uploaded\");\n emit(\"addDocument\", { file: res.data, documentType: props.tab });\n })\n .catch(() => toast.error(\"Something went wrong\"))\n .finally(() => (loading.value = false));\n };\n function openDocument(doc: { fileName: string; link: string }) {\n if (isImage(doc.fileName)) {\n showImg.value = doc.link;\n } else {\n window.open(doc.link, \"_blank\");\n }\n }\n const deleteDocument = () => {\n loading.value = true;\n store\n .dispatch(\"lot/deleteLotDocument\", {\n lotId: lotId,\n fileName: fileForDelete.value.file,\n documentType: props.tab,\n })\n .then(() => {\n emit(\"deleteDocument\", {\n index: fileForDelete.value.index,\n documentType: props.tab,\n });\n })\n .catch(() => toast.error(\"Something went wrong\"))\n .finally(() => (loading.value = false));\n isOpenRemoveDocumentsModal.value = false;\n };\n function downloadFile(filename: string, link = \"\") {\n if (link) {\n downloadDocument(link);\n return;\n }\n store\n .dispatch(\"lot/downloadLotDocument\", {\n id: lotId,\n filename,\n documentType: props.tab,\n })\n .then((res) => {\n window.open(res.data, \"_blank\");\n });\n }\n function showDeleteFileModal(file: string, index: number) {\n fileForDelete.value = { file, index };\n isOpenRemoveDocumentsModal.value = true;\n }\n\nconst __returned__ = { toast, props, emit, showImg, lotId, docs, estateId, fileInput, fileForDelete, isOpenRemoveDocumentsModal, documentTypes, loading, isContactsPage, isLotContractsTab, canManageLot, uploadDocument, openDocument, deleteDocument, downloadFile, showDeleteFileModal, computed, ref, DropDown, RemoveDocumentsModal, ImagePreviewModal, get router() { return router }, get store() { return store }, get formatDate() { return formatDate }, get DocumentTypeEnum() { return DocumentTypeEnum }, get useToast() { return useToast }, get isValidFileSize() { return isValidFileSize }, get isValidDocumentType() { return isValidDocumentType }, get validDocumentsTypes() { return validDocumentsTypes }, get getDocumentName() { return getDocumentName }, get isImage() { return isImage }, get downloadDocument() { return downloadDocument }, DocumentItem, get isLotOwner() { return isLotOwner }, get LotInterface() { return LotInterface } }\nObject.defineProperty(__returned__, '__isScriptSetup', { enumerable: false, value: true })\nreturn __returned__\n}\n\n})","import { render } from \"./LotDocuments.vue?vue&type=template&id=2ec46dab&scoped=true&ts=true&lang=pug\"\nimport script from \"./LotDocuments.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./LotDocuments.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./LotDocuments.vue?vue&type=style&index=0&id=2ec46dab&lang=scss&scoped=true\"\n\nimport exportComponent from \"/codebuild/output/src264950160/src/lottrackr-front/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-2ec46dab\"]])\n\nexport default __exports__","export * from \"-!../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js??ref--1-1!./StageNavMobile.vue?vue&type=style&index=0&id=0d2e86fe&lang=scss&scoped=true\"","import { createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, normalizeClass as _normalizeClass, resolveDirective as _resolveDirective, withDirectives as _withDirectives, normalizeStyle as _normalizeStyle, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-57fc788e\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = [\"viewBox\"]\nconst _hoisted_2 = [\"xlink:href\"]\nconst _hoisted_3 = [\"x\", \"y\", \"onMouseover\"]\nconst _hoisted_4 = { class: \"scale\" }\nconst _hoisted_5 = [\"onClick\", \"d\"]\nconst _hoisted_6 = [\"d\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _directive_tippy = _resolveDirective(\"tippy\")!\n\n return ($props.map)\n ? (_openBlock(), _createElementBlock(\"svg\", {\n key: 0,\n class: \"svg-map-scale\",\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n \"xmlns:xlink\": \"http://www.w3.org/1999/xlink\",\n viewBox: `0 0 ${$setup.props.map.size.width} ${$setup.props.map.size.height}`,\n style: _normalizeStyle({ transform: 'scale(' + $setup.props.zoom + ')' })\n }, [\n _createElementVNode(\"image\", {\n \"xlink:href\": $setup.props.map.mapImage.url\n }, null, 8, _hoisted_2),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList($setup.props.lots, (lot) => {\n return (_openBlock(), _createElementBlock(\"svg\", {\n class: _normalizeClass([\"item-wr\", $setup.props.getItemWrClasses(lot)]),\n xmlns: \"http://www.w3.org/2000/svg\",\n \"xmlns:xlink\": \"http://www.w3.org/1999/xlink\",\n version: \"1.1\",\n x: lot.binding.x,\n y: lot.binding.y,\n onMouseover: ($event: any) => ($setup.onLotHover(lot?.lotId?._id)),\n onMouseleave: $setup.onLotLeave\n }, [\n _createElementVNode(\"g\", _hoisted_4, [\n _withDirectives(_createElementVNode(\"path\", {\n class: _normalizeClass([\"item-path\", $setup.props.getItemPathClasses(lot)]),\n onClick: ($event: any) => ($setup.onLotClick(lot)),\n d: lot.path\n }, null, 10, _hoisted_5), [\n [_directive_tippy, { content: $setup.props.getTooltipText(lot), allowHTML: 'true', theme: 'map-tippy', appendtTo: 'element', arrow: false }]\n ]),\n _createElementVNode(\"path\", {\n class: _normalizeClass([\"item-status-path\", $setup.props.getItemStatusPathClasses(lot)]),\n d: lot.statusPath\n }, null, 10, _hoisted_6)\n ])\n ], 42, _hoisted_3))\n }), 256))\n ], 12, _hoisted_1))\n : _createCommentVNode(\"\", true)\n}","import { defineComponent as _defineComponent } from 'vue'\n\n import { EstateMapInterface } from \"@/types/EstateMapInterface\";\n import { getStageStatusClass } from \"@/helpers/status\";\n import { StageStatus } from \"@/enums/StageStatus\";\n import { UserRoles } from \"@/enums/UserRoles\";\n import { LotMapInterface } from \"@/types/LotMapInterface\";\n import { LotStatus } from \"@/enums/LotStatus\";\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'StageSvgMap',\n props: {\n map: {},\n lots: {},\n zoom: {},\n getTooltipText: { type: Function },\n getItemWrClasses: { type: Function },\n getItemPathClasses: { type: Function },\n getItemStatusPathClasses: { type: Function }\n },\n emits: [\"onLotHover\", \"onLotLeave\", \"onLotClick\"],\n setup(__props: any, { expose: __expose, emit: emits }) {\n __expose();\n\nconst props = __props;\n\n \n\n \n\n const onLotHover = (id: string) => {\n emits(\"onLotHover\", id);\n };\n\n const onLotLeave = () => {\n emits(\"onLotLeave\");\n };\n\n const onLotClick = (stage: LotMapInterface) => {\n emits(\"onLotClick\", stage);\n };\n\nconst __returned__ = { props, emits, onLotHover, onLotLeave, onLotClick, get EstateMapInterface() { return EstateMapInterface }, get getStageStatusClass() { return getStageStatusClass }, get StageStatus() { return StageStatus }, get UserRoles() { return UserRoles }, get LotMapInterface() { return LotMapInterface }, get LotStatus() { return LotStatus } }\nObject.defineProperty(__returned__, '__isScriptSetup', { enumerable: false, value: true })\nreturn __returned__\n}\n\n})","import { render } from \"./StageSvgMap.vue?vue&type=template&id=57fc788e&scoped=true&ts=true&lang=pug\"\nimport script from \"./StageSvgMap.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./StageSvgMap.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./StageSvgMap.vue?vue&type=style&index=0&id=57fc788e&lang=scss&scoped=true\"\n\nimport exportComponent from \"/codebuild/output/src264950160/src/lottrackr-front/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-57fc788e\"]])\n\nexport default __exports__","var aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\nvar $TypeError = TypeError;\n\n// `Array.prototype.{ reduce, reduceRight }` methods implementation\nvar createMethod = function (IS_RIGHT) {\n return function (that, callbackfn, argumentsLength, memo) {\n aCallable(callbackfn);\n var O = toObject(that);\n var self = IndexedObject(O);\n var length = lengthOfArrayLike(O);\n var index = IS_RIGHT ? length - 1 : 0;\n var i = IS_RIGHT ? -1 : 1;\n if (argumentsLength < 2) while (true) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (IS_RIGHT ? index < 0 : length <= index) {\n throw $TypeError('Reduce of empty array with no initial value');\n }\n }\n for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.reduce` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduce\n left: createMethod(false),\n // `Array.prototype.reduceRight` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduceright\n right: createMethod(true)\n};\n","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, vModelText as _vModelText, withDirectives as _withDirectives, normalizeStyle as _normalizeStyle, normalizeClass as _normalizeClass, createVNode as _createVNode, resolveDirective as _resolveDirective, createBlock as _createBlock, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-11692e3c\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"page-wr\" }\nconst _hoisted_2 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h2\", { class: \"title-main\" }, \"Edit Estate\", -1))\nconst _hoisted_3 = {\n key: 0,\n class: \"card\"\n}\nconst _hoisted_4 = { class: \"default-form\" }\nconst _hoisted_5 = { class: \"input-row with-double\" }\nconst _hoisted_6 = { class: \"logo-wr\" }\nconst _hoisted_7 = [\"src\"]\nconst _hoisted_8 = {\n key: 1,\n class: \"logo-title\"\n}\nconst _hoisted_9 = [\"accept\"]\nconst _hoisted_10 = { class: \"input-row double\" }\nconst _hoisted_11 = { class: \"input-wr double\" }\nconst _hoisted_12 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"label\", { class: \"label\" }, \"Estate icon color\", -1))\nconst _hoisted_13 = {\n key: 0,\n class: \"input-wr double\"\n}\nconst _hoisted_14 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"label\", { class: \"label\" }, \"Contact Person\", -1))\nconst _hoisted_15 = [\"value\"]\nconst _hoisted_16 = { class: \"input-row\" }\nconst _hoisted_17 = { class: \"input-wr\" }\nconst _hoisted_18 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"label\", { class: \"label\" }, \"Estate Name\", -1))\nconst _hoisted_19 = {\n key: 0,\n class: \"error-hint\"\n}\nconst _hoisted_20 = { class: \"input-wr\" }\nconst _hoisted_21 = {\n key: 0,\n class: \"input-wr\"\n}\nconst _hoisted_22 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"label\", { class: \"label\" }, \"Email\", -1))\nconst _hoisted_23 = [\"value\"]\nconst _hoisted_24 = { class: \"input-row\" }\nconst _hoisted_25 = { class: \"input-wr\" }\nconst _hoisted_26 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"label\", { class: \"label\" }, \"Short Estate Name (9 characters)\", -1))\nconst _hoisted_27 = {\n key: 0,\n class: \"error-hint\"\n}\nconst _hoisted_28 = {\n key: 0,\n class: \"input-wr\"\n}\nconst _hoisted_29 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"label\", { class: \"label\" }, \"Phone\", -1))\nconst _hoisted_30 = { class: \"input-row\" }\nconst _hoisted_31 = { class: \"input-wr\" }\nconst _hoisted_32 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"label\", { class: \"label\" }, \"Estate address\", -1))\nconst _hoisted_33 = {\n key: 0,\n class: \"error-hint\"\n}\nconst _hoisted_34 = { class: \"input-row bordered\" }\nconst _hoisted_35 = { class: \"input-wr input-price-wr\" }\nconst _hoisted_36 = { class: \"initial-deposit-wrapper\" }\nconst _hoisted_37 = { class: \"input-row\" }\nconst _hoisted_38 = { class: \"input-wr\" }\nconst _hoisted_39 = { class: \"toggle-block toggle-title-bold\" }\nconst _hoisted_40 = {\n key: 0,\n class: \"toggle-description\"\n}\nconst _hoisted_41 = {\n key: 1,\n class: \"toggle-description\"\n}\nconst _hoisted_42 = {\n key: 1,\n class: \"error-hint\"\n}\nconst _hoisted_43 = { class: \"input-wr input-price-wr\" }\nconst _hoisted_44 = { class: \"show-price-wrapper\" }\nconst _hoisted_45 = { class: \"input-row\" }\nconst _hoisted_46 = { class: \"input-wr\" }\nconst _hoisted_47 = { class: \"toggle-block toggle-title-bold\" }\nconst _hoisted_48 = { class: \"toggle-description\" }\nconst _hoisted_49 = {\n key: 0,\n class: \"input-wr\"\n}\nconst _hoisted_50 = { class: \"input-row\" }\nconst _hoisted_51 = { class: \"input-wr\" }\nconst _hoisted_52 = { class: \"toggle-block toggle-title-bold\" }\nconst _hoisted_53 = {\n key: 1,\n class: \"input-wr\"\n}\nconst _hoisted_54 = { class: \"input-row\" }\nconst _hoisted_55 = { class: \"input-wr\" }\nconst _hoisted_56 = { class: \"toggle-block toggle-title-bold\" }\nconst _hoisted_57 = { class: \"input-row\" }\nconst _hoisted_58 = {\n key: 0,\n class: \"input-wr\"\n}\nconst _hoisted_59 = { class: \"input-row\" }\nconst _hoisted_60 = { class: \"input-wr\" }\nconst _hoisted_61 = { class: \"toggle-block toggle-title-bold\" }\nconst _hoisted_62 = {\n key: 0,\n class: \"input-row refundable\"\n}\nconst _hoisted_63 = { class: \"toggle-block\" }\nconst _hoisted_64 = {\n key: 0,\n class: \"toggle-description\"\n}\nconst _hoisted_65 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_66 = { class: \"buttons\" }\nconst _hoisted_67 = {\n key: 1,\n class: \"spinner\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _directive_tippy = _resolveDirective(\"tippy\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _hoisted_2,\n (!$setup.loading)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _createElementVNode(\"form\", _hoisted_4, [\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"label\", _hoisted_6, [\n ($setup.logoPreview)\n ? (_openBlock(), _createElementBlock(\"img\", {\n key: 0,\n class: \"preview\",\n src: $setup.logoPreview\n }, null, 8, _hoisted_7))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_8, _toDisplayString($setup.estate?.title), 1)),\n _createElementVNode(\"input\", {\n class: \"file-input\",\n type: \"file\",\n onChange: _cache[0] || (_cache[0] = ($event: any) => ($setup.selectFile($event))),\n accept: $setup.logoTypes\n }, null, 40, _hoisted_9)\n ]),\n _createElementVNode(\"div\", _hoisted_10, [\n _createElementVNode(\"div\", _hoisted_11, [\n _hoisted_12,\n _createElementVNode(\"label\", {\n class: \"input-color\",\n style: _normalizeStyle({ 'background-color': $setup.form.iconColor })\n }, [\n _withDirectives(_createElementVNode(\"input\", {\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => (($setup.form.iconColor) = $event)),\n type: \"color\"\n }, null, 512), [\n [_vModelText, $setup.form.iconColor]\n ])\n ], 4)\n ]),\n (!$setup.isAdminEdit)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_13, [\n _hoisted_14,\n _createElementVNode(\"input\", {\n class: \"input\",\n value: $setup.getFirstLastName($setup.estate.landownerId),\n type: \"text\",\n readonly: \"\",\n placeholder: \"Contact Person\"\n }, null, 8, _hoisted_15)\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_16, [\n _createElementVNode(\"div\", _hoisted_17, [\n _hoisted_18,\n _withDirectives(_createElementVNode(\"input\", {\n class: _normalizeClass([\"input\", { error: $setup.v$.title.$error }]),\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => (($setup.form.title) = $event)),\n type: \"text\",\n placeholder: \"Estate Name\"\n }, null, 2), [\n [_vModelText, $setup.form.title]\n ]),\n ($setup.v$.title.$error)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_19, _toDisplayString($setup.v$.title.$errors[0].$message), 1))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_20, [\n (!$setup.isAdminEdit)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_21, [\n _hoisted_22,\n _createElementVNode(\"input\", {\n class: \"input\",\n value: $setup.estate.landownerId.email,\n type: \"email\",\n readonly: \"\",\n placeholder: \"Email\"\n }, null, 8, _hoisted_23)\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_24, [\n _createElementVNode(\"div\", _hoisted_25, [\n _hoisted_26,\n _withDirectives(_createElementVNode(\"input\", {\n class: _normalizeClass([\"input\", { error: $setup.v$.shortTitle.$error }]),\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event: any) => (($setup.form.shortTitle) = $event)),\n type: \"text\",\n placeholder: \"Estate Name\",\n maxlength: \"9\"\n }, null, 2), [\n [_vModelText, $setup.form.shortTitle]\n ]),\n ($setup.v$.shortTitle.$error)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_27, _toDisplayString($setup.v$.shortTitle.$errors[0].$message), 1))\n : _createCommentVNode(\"\", true)\n ]),\n (!$setup.isAdminEdit)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_28, [\n _hoisted_29,\n _createVNode($setup[\"Cleave\"], {\n class: \"input\",\n modelValue: $setup.estate.landownerId.phone,\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = ($event: any) => (($setup.estate.landownerId.phone) = $event)),\n options: $setup.phoneNumberOption($setup.estate.landownerId.phone),\n type: \"text\",\n readonly: \"\",\n placeholder: \"0412 345 678\"\n }, null, 8, [\"modelValue\", \"options\"])\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_30, [\n _createElementVNode(\"div\", _hoisted_31, [\n _hoisted_32,\n _withDirectives(_createElementVNode(\"input\", {\n class: _normalizeClass([\"input\", { error: $setup.v$.address.$error }]),\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = ($event: any) => (($setup.form.address) = $event)),\n type: \"text\",\n placeholder: \"Estate address\"\n }, null, 2), [\n [_vModelText, $setup.form.address]\n ]),\n ($setup.v$.address.$error)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_33, _toDisplayString($setup.v$.address.$errors[0].$message), 1))\n : _createCommentVNode(\"\", true)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_34, [\n _createElementVNode(\"div\", _hoisted_35, [\n _createElementVNode(\"div\", _hoisted_36, [\n _createElementVNode(\"div\", _hoisted_37, [\n _createElementVNode(\"div\", _hoisted_38, [\n _createElementVNode(\"div\", _hoisted_39, [\n _withDirectives(_createVNode($setup[\"ToggleButton\"], {\n modelValue: $setup.initDepositCondition,\n \"onUpdate:modelValue\": [\n _cache[6] || (_cache[6] = ($event: any) => (($setup.initDepositCondition) = $event)),\n $setup.setDepositAndRefundable\n ],\n disabled: !$setup.isTrustAccountConnected && !$setup.isAdminEdit,\n additionalClass: 'large',\n labelBold: 'toggle-title-font bolder',\n label: \"Initial deposit\"\n }, null, 8, [\"modelValue\", \"disabled\"]), [\n [_directive_tippy, { content: !$setup.isTrustAccountConnected && !$setup.isAdminEdit ? $setup.tooltipText : '', theme: 'light-border', placement: 'top' }]\n ]),\n ($setup.initDepositCondition)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_40, \"Buyers will be required to pay an initial holding deposit when completing a Contract information form.\"))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_41, \"Buyers will not be required to pay an initial holding deposit when completing a Contract information form.\"))\n ])\n ])\n ])\n ]),\n ($setup.initDepositCondition)\n ? (_openBlock(), _createBlock($setup[\"Cleave\"], {\n key: 0,\n class: _normalizeClass([\"input deposit\", [{ error: $setup.v$.initDeposit.$error }]]),\n id: \"deposit\",\n modelValue: $setup.form.initDeposit,\n \"onUpdate:modelValue\": _cache[7] || (_cache[7] = ($event: any) => (($setup.form.initDeposit) = $event)),\n modelModifiers: { trim: true },\n type: \"text\",\n placeholder: \"Initial deposit\",\n onBlur: $setup.v$.initDeposit.$touch,\n options: $setup.initDepositOptions\n }, null, 8, [\"modelValue\", \"class\", \"onBlur\"]))\n : _createCommentVNode(\"\", true),\n ($setup.v$.initDeposit.$error)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_42, _toDisplayString($setup.v$.initDeposit.$errors[0].$message), 1))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_43, [\n _createElementVNode(\"div\", _hoisted_44, [\n _createElementVNode(\"div\", _hoisted_45, [\n _createElementVNode(\"div\", _hoisted_46, [\n _createElementVNode(\"div\", _hoisted_47, [\n _createVNode($setup[\"ToggleButton\"], {\n modelValue: $setup.form.hidePrice,\n \"onUpdate:modelValue\": _cache[8] || (_cache[8] = ($event: any) => (($setup.form.hidePrice) = $event)),\n additionalClass: 'large',\n labelBold: 'toggle-title-font bolder',\n label: \"Hide pricing\"\n }, null, 8, [\"modelValue\"]),\n _createElementVNode(\"div\", _hoisted_48, \"Pricing information will be \" + _toDisplayString($setup.form.hidePrice ? 'hidden' : 'visibleable') + \" on the interactive masterplan.\", 1)\n ])\n ])\n ])\n ])\n ]),\n ($setup.isSuperAdmin)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_49, [\n _createElementVNode(\"div\", _hoisted_50, [\n _createElementVNode(\"div\", _hoisted_51, [\n _createElementVNode(\"div\", _hoisted_52, [\n _createVNode($setup[\"ToggleButton\"], {\n class: \"disable-initial-hold\",\n additionalClass: 'large',\n modelValue: $setup.form.showInitialHold,\n \"onUpdate:modelValue\": _cache[9] || (_cache[9] = ($event: any) => (($setup.form.showInitialHold) = $event)),\n labelBold: 'toggle-title-font bolder',\n label: \"Show Initial Hold Functionality\"\n }, null, 8, [\"modelValue\"])\n ])\n ])\n ])\n ]))\n : _createCommentVNode(\"\", true),\n ($setup.isSuperAdmin)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_53, [\n _createElementVNode(\"div\", _hoisted_54, [\n _createElementVNode(\"div\", _hoisted_55, [\n _createElementVNode(\"div\", _hoisted_56, [\n _createVNode($setup[\"ToggleButton\"], {\n class: \"disable-initial-hold\",\n additionalClass: 'large',\n modelValue: $setup.form.showDocusign,\n \"onUpdate:modelValue\": _cache[10] || (_cache[10] = ($event: any) => (($setup.form.showDocusign) = $event)),\n labelBold: 'toggle-title-font bolder',\n label: \"Show Docusign Functionality\"\n }, null, 8, [\"modelValue\"])\n ])\n ])\n ])\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_57, [\n ($setup.isSuperAdmin)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_58, [\n _createElementVNode(\"div\", _hoisted_59, [\n _createElementVNode(\"div\", _hoisted_60, [\n _createElementVNode(\"div\", _hoisted_61, [\n _createVNode($setup[\"ToggleButton\"], {\n class: \"disable-initial-hold\",\n additionalClass: 'large',\n modelValue: $setup.form.showDontHaveSolicitorEOI,\n \"onUpdate:modelValue\": _cache[11] || (_cache[11] = ($event: any) => (($setup.form.showDontHaveSolicitorEOI) = $event)),\n labelBold: 'toggle-title-font bolder',\n label: \"Show Solicitor Option\"\n }, null, 8, [\"modelValue\"])\n ])\n ])\n ])\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n ($setup.initDepositCondition)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_62, [\n _createElementVNode(\"div\", _hoisted_63, [\n _createVNode($setup[\"ToggleButton\"], {\n modelValue: $setup.form.isRefundable,\n \"onUpdate:modelValue\": _cache[12] || (_cache[12] = ($event: any) => (($setup.form.isRefundable) = $event)),\n additionalClass: 'large',\n labelBold: 'toggle-title-font bold',\n label: \"Refundable\"\n }, null, 8, [\"modelValue\"]),\n ($setup.initDepositCondition)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_64, [\n _createTextVNode(\"Buyers will be notified before submitting a Contract information\"),\n _hoisted_65,\n _createTextVNode(\" form that the holding deposit is \" + _toDisplayString(`${$setup.form.isRefundable ? \"\" : \" not\"} refundable.`), 1)\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_66, [\n _createElementVNode(\"button\", {\n class: \"button default primary\",\n onClick: $setup.updateEstate\n }, \"Save Changes\"),\n _createVNode(_component_router_link, {\n class: \"button default cancel\",\n to: { name: !$setup.isAdminEdit ? 'LandownerProfileEstates' : 'AdminEstate' }\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"Cancel\")\n ]),\n _: 1\n }, 8, [\"to\"])\n ])\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_67))\n ]))\n}","import { defineComponent as _defineComponent } from 'vue'\nimport Cleave from \"vue-cleave-component\";\nimport ToggleButton from \"@/components/ui/ToggleButton.vue\";\nimport { reactive, computed, onMounted, ref } from \"vue\";\nimport useVuelidate from \"@vuelidate/core\";\nimport {\n helpers,\n maxLength,\n minLength,\n required,\n minValue,\n} from \"@vuelidate/validators\";\nimport router from \"@/router\";\nimport { useStore } from \"vuex\";\nimport { EstateInterface } from \"@/types/EstateInterface\";\nimport { getFirstLastName } from \"@/helpers/user\";\nimport { POSITION, useToast } from \"vue-toastification\";\nimport {\n isValidFileSize,\n isValidImageType,\n validImagesTypes,\n} from \"@/helpers/fileUpload\";\nimport { phoneNumberOption } from \"@/helpers/cleavePlugin\";\nimport { latinCharactersRegex } from \"@/helpers/regex\";\nimport getUserRole from \"@/helpers/getUserRole\";\n\nconst tooltipText =\n \"To connect a trust account and start accepting deposits for this project, please contact Customer Support.\";\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'LandownerEstateUpdate',\n setup(__props, { expose: __expose }) {\n __expose();\n\nconst store = useStore();\nconst toast = useToast();\nconst estateId = router.currentRoute.value.params.estateId;\nconst logoPreview = ref(\"\");\nconst file = ref(null);\nconst estate = ref();\nconst loading = ref(true);\nconst { isSuperAdmin } = getUserRole();\nconst isAdminEdit = computed(() => {\n return [\"AdminEstateUpdate\", \"AdminEstateUpdateLawyer\"].includes(\n router.currentRoute.value.name\n );\n});\nconst isTrustAccountConnected = ref(false);\nconst form = reactive>({\n title: \"\",\n shortTitle: \"\",\n address: \"\",\n isRefundable: true,\n iconColor: \"#ffffff\",\n initDeposit: 0,\n hidePrice: true,\n showInitialHold: false,\n showDocusign: false,\n});\nconst initDepositOptions = {\n numeral: true,\n numeralThousandsGroupStyle: \"thousand\",\n prefix: \"$\",\n rawValueTrimPrefix: true,\n};\nconst latinCharacters = helpers.regex(latinCharactersRegex);\nconst rules = computed(() => {\n return {\n initDeposit: {\n required,\n minValue: minValue(getMinDepositValue.value),\n },\n shortTitle: {\n required,\n maxLength: maxLength(9),\n minLength: minLength(1),\n },\n title: {\n required,\n latinCharacters: helpers.withMessage(\"Invalid value\", latinCharacters),\n $autoDirty: true,\n },\n address: { required, $autoDirty: true },\n };\n});\n\nconst getMinDepositValue = computed(() => {\n return initDepositCondition.value ? 1 : 0;\n});\n\nconst initDepositCondition = ref(true);\n\nconst v$ = useVuelidate(rules, form);\nconst logoTypes = validImagesTypes.join(\", \");\n\nonMounted(() => {\n store\n .dispatch(\"estate/getEstate\", estateId)\n .then((res) => {\n estate.value = res.data;\n logoPreview.value = res.data.logoUrl;\n form.title = res.data.title;\n form.shortTitle = res.data.shortTitle;\n form.address = res.data.address;\n form.isRefundable = res.data.isRefundable;\n form.iconColor = res.data.iconColor;\n form.initDeposit = res.data.initDeposit / 100;\n form.hidePrice = res.data.hidePrice;\n isTrustAccountConnected.value = res.data.lawyerId;\n form.showInitialHold = res.data.showInitialHold;\n form.showDontHaveSolicitorEOI = res.data.showDontHaveSolicitorEOI;\n form.showDocusign = res.data.showDocusign;\n if (form.initDeposit > 0) {\n initDepositCondition.value = true;\n } else {\n initDepositCondition.value = false;\n }\n })\n .finally(() => {\n loading.value = false;\n });\n});\n\nfunction selectFile(e: any) {\n if (!e.target.files.length) {\n return;\n }\n const selectedFile = e.target.files[0];\n if (!isValidImageType(selectedFile) || !isValidFileSize(selectedFile)) {\n return;\n }\n file.value = selectedFile;\n const reader = new FileReader();\n reader.onload = (readerEvent: any) => {\n logoPreview.value = readerEvent.target.result;\n };\n reader.readAsDataURL(file.value as File);\n}\nconst uploadFile = () => {\n const data = new FormData();\n data.append(\"file\", file.value as File);\n return store.dispatch(\"estate/uploadEstateLogo\", { estateId, file: data });\n};\nconst updateEstate = async () => {\n v$.value.$touch();\n const isFormCorrect = await v$.value.$validate();\n if (!isFormCorrect) {\n return;\n }\n if (file.value) {\n await uploadFile();\n }\n const { initDeposit, ...props } = form;\n const normalizedForm = {\n initDeposit: initDeposit * 100,\n ...props,\n };\n store\n .dispatch(\"estate/updateEstate\", { id: estateId, data: normalizedForm })\n .then(() => {\n if (!isAdminEdit.value) {\n router.push({\n name: \"LandownerProfileEstates\",\n });\n } else {\n router.push({\n name: \"AdminEstate\",\n });\n }\n }).catch((error) => {\n toast.error(error.response?.data?.message, {\n position: POSITION.TOP_LEFT,\n });\n });\n};\n\nconst setDepositAndRefundable = () => {\n if (initDepositCondition.value) {\n form.isRefundable = true;\n } else {\n form.initDeposit = 0;\n form.isRefundable = false;\n }\n};\n\nconst __returned__ = { store, toast, estateId, logoPreview, file, estate, loading, isSuperAdmin, isAdminEdit, isTrustAccountConnected, tooltipText, form, initDepositOptions, latinCharacters, rules, getMinDepositValue, initDepositCondition, v$, logoTypes, selectFile, uploadFile, updateEstate, setDepositAndRefundable, get Cleave() { return Cleave }, ToggleButton, reactive, computed, onMounted, ref, get useVuelidate() { return useVuelidate }, get helpers() { return helpers }, get maxLength() { return maxLength }, get minLength() { return minLength }, get required() { return required }, get minValue() { return minValue }, get router() { return router }, get useStore() { return useStore }, get EstateInterface() { return EstateInterface }, get getFirstLastName() { return getFirstLastName }, get POSITION() { return POSITION }, get useToast() { return useToast }, get isValidFileSize() { return isValidFileSize }, get isValidImageType() { return isValidImageType }, get validImagesTypes() { return validImagesTypes }, get phoneNumberOption() { return phoneNumberOption }, get latinCharactersRegex() { return latinCharactersRegex }, get getUserRole() { return getUserRole } }\nObject.defineProperty(__returned__, '__isScriptSetup', { enumerable: false, value: true })\nreturn __returned__\n}\n\n})","import { render } from \"./LandownerEstateUpdate.vue?vue&type=template&id=11692e3c&scoped=true&ts=true&lang=pug\"\nimport script from \"./LandownerEstateUpdate.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./LandownerEstateUpdate.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./LandownerEstateUpdate.vue?vue&type=style&index=0&id=11692e3c&lang=scss&scoped=true\"\n\nimport exportComponent from \"/codebuild/output/src264950160/src/lottrackr-front/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-11692e3c\"]])\n\nexport default __exports__","export * from \"-!../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js??ref--1-1!./LottrackrPoweredIcon.vue?vue&type=style&index=0&id=353aed0c&lang=scss&scoped=true\"","import { toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\nimport _imports_0 from '@/assets/icons/chevron-right-gray.svg'\n\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\"stage-btn-link-container\", { 'stage-btn-link-container-hover': $setup.props.hoverStageId === $setup.props.stage.id }]),\n onMouseover: $setup.onHover,\n onMouseleave: $setup.onMouseLeave,\n onClick: $setup.onClick\n }, [\n _createElementVNode(\"p\", {\n class: _normalizeClass([\"stage-btn-title stage\", { 'title-hover': $setup.hover }])\n }, \"Stage \" + _toDisplayString($setup.props.stage.title), 3),\n _createElementVNode(\"p\", {\n class: _normalizeClass([\"stage-btn-title available-lots\", { 'title-hover': $setup.hover }])\n }, _toDisplayString($setup.props.lotsAvailableAmount) + \" Available Lots\", 3),\n _createElementVNode(\"img\", {\n class: _normalizeClass([\"stage-btn-chevron\", { 'title-hover': $setup.hover }]),\n src: _imports_0\n }, null, 2)\n ], 34))\n}","import { defineComponent as _defineComponent } from 'vue'\nimport { ref, watch } from \"vue\";\n import { UiBasicStageInterface } from \"@/types/StageInterface\";\n\n type propsType = {\n stage: UiBasicStageInterface;\n lotsAvailableAmount: string | number;\n hoverStageId: string;\n };\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'StageButtonLink',\n props: {\n stage: {},\n lotsAvailableAmount: {},\n hoverStageId: {}\n },\n emits: [\"onStageHover\", \"onClick\"],\n setup(__props: any, { expose: __expose, emit: emits }) {\n __expose();\n\nconst props = __props;\n\n const hover = ref(false);\n\n \n\n \n\n const onHover = () => {\n hover.value = true;\n emits(\"onStageHover\", true, props.stage.id);\n };\n\n const onMouseLeave = () => {\n hover.value = false;\n emits(\"onStageHover\", false, props.stage.id);\n };\n\n const onClick = () => {\n emits(\"onClick\", props.stage.id);\n };\n\n watch(\n () => props.hoverStageId,\n () => {\n if (props.hoverStageId === props.stage.id) {\n hover.value = true;\n } else {\n hover.value = false;\n }\n }\n );\n\nconst __returned__ = { hover, props, emits, onHover, onMouseLeave, onClick, ref, watch, get UiBasicStageInterface() { return UiBasicStageInterface } }\nObject.defineProperty(__returned__, '__isScriptSetup', { enumerable: false, value: true })\nreturn __returned__\n}\n\n})","import { render } from \"./StageButtonLink.vue?vue&type=template&id=be393694&scoped=true&ts=true&lang=pug\"\nimport script from \"./StageButtonLink.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./StageButtonLink.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./StageButtonLink.vue?vue&type=style&index=0&id=be393694&lang=scss&scoped=true\"\n\nimport exportComponent from \"/codebuild/output/src264950160/src/lottrackr-front/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-be393694\"]])\n\nexport default __exports__","export function formatPrice(\n price: number | string = 0,\n showCurrency = true\n): string {\n const priceArray = `${price}`.split(\".\");\n return (\n (showCurrency ? \"$\" : \"\") +\n priceArray[0]\n .toString()\n .match(/.{1,3}(?=(.{3})*$)/g)\n ?.join(\",\") +\n (priceArray[1] ? \".\" + priceArray[1] : \"\")\n );\n}\n\nexport const formatStripePrice = (value = 0, showCurrency = true): string => {\n let string = String(value);\n string = string.slice(0, -2) + \".\" + string.slice(-2);\n const lastTwo = string.substr(string.length - 2);\n const firstCharacter = string.substr(0, 1);\n if (firstCharacter === \".\") {\n string = \"0\" + string;\n }\n if (lastTwo === \"00\") {\n return formatPrice(string.slice(0, -3), showCurrency);\n }\n return formatPrice(string, showCurrency);\n};\n\nexport const formatPriceToNumber = (price: string): number => {\n return parseFloat(price.replace(/,/g, '').replace(/\\$/g, ''));\n}\n\n\nexport const formatPriceTrim = (price: number | string = 0,) : string => {\n const trimText = price ? price.toString()\n .replace(/[^\\d.]/g, '')\n : undefined;\n if(!trimText || trimText === '$') {\n return '$0';\n }\n return formatPrice(trimText);\n};\n\nexport const formatPorcentageTrim = (porcentage: number | string = 0, max ?: number) : string => {\n let integerValue = porcentage;\n let decimalValue = '';\n if(typeof porcentage === 'string' && porcentage.includes('.')) {\n const porcentageParts = porcentage.split('.');\n integerValue = porcentageParts[0];\n decimalValue = '.' + porcentageParts[1];\n }\n const trimPorcentage = formatPriceTrim(integerValue).replace(/\\$/g, '');\n if(!trimPorcentage) {\n return '0.0';\n }\n if(max && trimPorcentage.replace(/,/g, '') as unknown as number >= max) {\n return max.toString();\n }\n return integerValue + decimalValue;\n};\n\nexport const updatePriceInput = (e : Event, form: Record, priceField: string) => {\n e.preventDefault();\n const target = e.target as HTMLInputElement;\n const value = formatPriceTrim(target.value);\n form[priceField] = formatPriceToNumber(value);\n}\n","import { openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, Fragment as _Fragment, renderList as _renderList, createBlock as _createBlock, normalizeClass as _normalizeClass, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\nimport _imports_0 from '@/assets/icons/builder-icon.svg'\nimport _imports_1 from '@/assets/icons/iframe-lots-icon.png'\n\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-5ce7c444\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n key: 0,\n class: \"spinner\"\n}\nconst _hoisted_2 = {\n key: 1,\n class: \"side-panel-content\"\n}\nconst _hoisted_3 = {\n key: 0,\n class: \"stage-panel-header\"\n}\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h5\", { class: \"side-panel-title bold\" }, \"Masterplan\", -1))\nconst _hoisted_5 = {\n key: 0,\n class: \"side-panel-title mt\"\n}\nconst _hoisted_6 = {\n key: 0,\n class: \"side-panel-title mt\"\n}\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"divider stages\" }, null, -1))\nconst _hoisted_8 = {\n key: 1,\n class: \"lots-panel-header\"\n}\nconst _hoisted_9 = { class: \"lots-panel-back\" }\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h6\", { class: \"lots-panel-back__title\" }, \"Masterplan\", -1))\nconst _hoisted_11 = { class: \"side-panel-title bold stage\" }\nconst _hoisted_12 = {\n key: 0,\n class: \"side-panel-title available-lots\"\n}\nconst _hoisted_13 = {\n key: 1,\n class: \"side-panel-title available-lots\"\n}\nconst _hoisted_14 = {\n key: 2,\n class: \"lots-builder-info\"\n}\nconst _hoisted_15 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", {\n class: \"builder-info-icon\",\n src: _imports_0\n}, null, -1))\nconst _hoisted_16 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"p\", null, \"Create your home and land package\", -1))\nconst _hoisted_17 = [\n _hoisted_15,\n _hoisted_16\n]\nconst _hoisted_18 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"divider\" }, null, -1))\nconst _hoisted_19 = { class: \"content-container\" }\nconst _hoisted_20 = {\n key: 0,\n class: \"stages-container\"\n}\nconst _hoisted_21 = {\n key: 0,\n class: \"no-stages-info-wr\"\n}\nconst _hoisted_22 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", {\n class: \"no-stages-icon\",\n src: _imports_1\n}, null, -1))\nconst _hoisted_23 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"no-stages-info\" }, \"Currently, there is no land available. Join our waitlist to get notified about the next release.\", -1))\nconst _hoisted_24 = [\n _hoisted_22,\n _hoisted_23\n]\nconst _hoisted_25 = {\n key: 1,\n class: \"lots-container\"\n}\nconst _hoisted_26 = {\n key: 2,\n class: \"estate-map-blocks-side-panel\"\n}\nconst _hoisted_27 = { class: \"estate-map-block\" }\nconst _hoisted_28 = { class: \"estate-map-block\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\"map-side-panel-container\", { builderView: $setup.props.builderView }])\n }, [\n ($setup.loading)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n (!$setup.props.isStageMap)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _hoisted_4,\n (!$setup.props.builderView)\n ? (_openBlock(), _createElementBlock(\"h5\", _hoisted_5, \"Land for sale\"))\n : (_openBlock(), _createElementBlock(_Fragment, { key: 1 }, [\n ($setup.props.lotsByHouseDesigns)\n ? (_openBlock(), _createElementBlock(\"h5\", _hoisted_6, _toDisplayString($setup.props.lotsByHouseDesigns.length) + \" Suitable lots\", 1))\n : _createCommentVNode(\"\", true)\n ], 64)),\n _hoisted_7\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [\n _createElementVNode(\"div\", _hoisted_9, [\n _createElementVNode(\"button\", {\n class: \"button-with-icon back no-text\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$emit('toMasterplan')))\n }),\n _hoisted_10\n ]),\n _createElementVNode(\"h5\", _hoisted_11, \"Stage \" + _toDisplayString($setup.actualStage[0]?.stage?.title), 1),\n (!$setup.props.builderView)\n ? (_openBlock(), _createElementBlock(\"h5\", _hoisted_12, _toDisplayString($setup.actualStage[0]?.lotData?.length) + \" Available lots\", 1))\n : (_openBlock(), _createElementBlock(\"h5\", _hoisted_13, _toDisplayString($setup.props.lotsByHouseDesigns?.length) + \" Suitable lots\", 1)),\n (!$setup.props.builderView)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_14, _hoisted_17))\n : _createCommentVNode(\"\", true),\n _hoisted_18\n ])),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"side-panel-wrapper scroll-wrapper\", { 'lots-side-panel': $setup.props.isStageMap }])\n }, [\n _createElementVNode(\"div\", _hoisted_19, [\n (!$setup.props.isStageMap)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_20, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList($setup.lotsList, (stage) => {\n return (_openBlock(), _createBlock($setup[\"StageButtonLink\"], {\n key: stage.stage.id,\n stage: stage.stage,\n lotsAvailableAmount: stage.lotData.length,\n hoverStageId: $setup.props.hoverStageId,\n onOnStageHover: $setup.onStageHover,\n onOnClick: $setup.onStageClick\n }, null, 8, [\"stage\", \"lotsAvailableAmount\", \"hoverStageId\"]))\n }), 128)),\n ($setup.lotsList.length === 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_21, _hoisted_24))\n : _createCommentVNode(\"\", true)\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_25, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList($setup.actualStage[0]?.lotData, (lot) => {\n return (_openBlock(), _createBlock($setup[\"LotButtonLink\"], {\n lot: lot,\n hoverLotId: $setup.props.hoverLotId,\n builderView: $setup.props.builderView,\n onOnLotHover: $setup.onLotHover,\n onOnLotBuilderHover: $setup.onLotBuilderHover,\n onOnClick: $setup.onLotClick\n }, null, 8, [\"lot\", \"hoverLotId\", \"builderView\"]))\n }), 256))\n ]))\n ])\n ], 2),\n (!$setup.props.builderView && !$setup.props.hideOptions)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_26, [\n _createElementVNode(\"div\", _hoisted_27, [\n _createElementVNode(\"button\", {\n class: \"button primary w-100\",\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.$emit('onRegister')))\n }, \"Join Waitlist\")\n ]),\n _createElementVNode(\"div\", _hoisted_28, [\n _createElementVNode(\"button\", {\n class: \"button primary w-100\",\n onClick: _cache[2] || (_cache[2] = ($event: any) => (_ctx.$emit('onMessage')))\n }, \"Message\")\n ])\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n ], 2))\n}","import { defineComponent as _defineComponent } from 'vue'\nimport { computed, onMounted, ref } from \"vue\";\n import LotMapsWithStageInterface from \"@/types/LotMapsWithStageInterface\";\n import { useStore } from \"vuex\";\n import StageButtonLink from \"@/components/stage/StageButtonLink.vue\";\n import LotButtonLink from \"./Lot/LotButtonLink.vue\";\n import { LotInterface } from \"@/types/LotInterface\";\n import { LotMapInterface } from \"@/types/LotMapInterface\";\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'MapSidePanel',\n props: {\n estateId: { type: String, required: true, default: \"\" },\n isStageMap: { type: Boolean, required: false, default: false },\n stageId: { type: String, required: false, default: \"\" },\n hoverStageId: { type: String, required: false, default: \"\" },\n hoverLotId: { type: String, required: false, default: \"\" },\n lotsByHouseDesigns: { type: Array, required: false, default: undefined },\n builderView: { type: Boolean, required: false },\n hideOptions: { type: Boolean, required: false },\n },\n emits: [\n \"onMessage\",\n \"onStageHover\",\n \"onStageClick\",\n \"onLotHover\",\n \"onLotClick\",\n \"onRegister\",\n \"onMessage\",\n \"toMasterplan\",\n \"onLotBuilderHover\",\n ],\n setup(__props, { expose: __expose, emit: emits }) {\n __expose();\n\nconst props = __props;\n\n const loading = ref(true);\n const store = useStore();\n const lotsList = ref([]);\n\n \n\n \n\n const actualStage = computed(() =>\n lotsList.value.filter((l) => l.stage.id === props.stageId)\n );\n\n const onStageClick = (id: string) => {\n emits(\"onStageClick\", id);\n };\n\n const onStageHover = (value: boolean, id: string) => {\n emits(\"onStageHover\", value, id);\n };\n\n const onLotClick = (lot: LotMapInterface) => {\n emits(\"onLotClick\", lot);\n };\n\n const onLotHover = (value: boolean, id: string) => {\n emits(\"onLotHover\", value, id);\n };\n\n const onLotBuilderHover = (value: boolean, id: string) => {\n emits(\"onLotBuilderHover\", value, id);\n };\n\n const getLotsList = () => {\n store\n .dispatch(\"lot/getLotsList\", {\n estateId: props.estateId,\n isCustomer: true,\n })\n .then(async (res) => {\n lotsList.value = res.data;\n await getLotsListFiltered();\n })\n .finally(() => {\n loading.value = false;\n });\n };\n\n const getLotsListFiltered = async () => {\n if (props.lotsByHouseDesigns) {\n let houseDesignIds: string[] = props.lotsByHouseDesigns.map(\n (design) => design._id\n );\n\n lotsList.value = lotsList.value.map((lot) => {\n const matchingLotData = lot.lotData.filter((lotData) =>\n houseDesignIds.includes(lotData.lotId._id)\n );\n return { ...lot, lotData: matchingLotData };\n });\n }\n };\n\n onMounted(() => {\n getLotsList();\n });\n\nconst __returned__ = { loading, store, lotsList, props, emits, actualStage, onStageClick, onStageHover, onLotClick, onLotHover, onLotBuilderHover, getLotsList, getLotsListFiltered, computed, onMounted, ref, get LotMapsWithStageInterface() { return LotMapsWithStageInterface }, get useStore() { return useStore }, StageButtonLink, LotButtonLink, get LotInterface() { return LotInterface }, get LotMapInterface() { return LotMapInterface } }\nObject.defineProperty(__returned__, '__isScriptSetup', { enumerable: false, value: true })\nreturn __returned__\n}\n\n})","import { render } from \"./MapSidePanel.vue?vue&type=template&id=5ce7c444&scoped=true&ts=true&lang=pug\"\nimport script from \"./MapSidePanel.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./MapSidePanel.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./MapSidePanel.vue?vue&type=style&index=0&id=5ce7c444&lang=scss&scoped=true\"\n\nimport exportComponent from \"/codebuild/output/src264950160/src/lottrackr-front/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-5ce7c444\"]])\n\nexport default __exports__"],"sourceRoot":""}