{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/App.vue?9b05","webpack:///./src/components/calendar/TheCalendarSubscribeModal.vue?08cc","webpack:///./src/components/calendar/TheCalendarAddPlantModal.vue?e19b","webpack:///./src/components/general/Accordeon.vue?8907","webpack:///./src/components/calendar/TheGardenContestModal.vue?d6a0","webpack:///./src/components/general/DropDownActivities.vue?3f84","webpack:///./src/components/general/DropDownMultiSelect.vue?51b4","webpack:///./src/components/plant/TheLandiPlantEdit.vue?e278","webpack:///./src/components/general/DropDown.vue?55d3","webpack:///./node_modules/moment/locale sync de|fr","webpack:///./src/components/calendar/PlantContextMenu.vue?70c8","webpack:///./src/components/calendar/TheCalendarAddPlantModal.vue?a74c","webpack:///./src/components/general/FileUpload.vue?de6e","webpack:///./src/components/weather/WeekCalendar.vue?7170","webpack:///./src/components/entry/TheEntryPage.vue?3509","webpack:///./src/components/calendar/CalendarMonthsWeeks.vue?165c","webpack:///./src/components/calendar/CalendarMonths.vue?f9c4","webpack:///./src/components/weather/TheWeatherBar.vue?b59a","webpack:///./src/components/calendar/CalendarActivityBar.vue?a254","webpack:///./src/components/calendar/GardenContextMenu.vue?4ade","webpack:///./src/components/plant/TheCustomPlantEdit.vue?b87b","webpack:///./src/components/general/ActivityDate.vue?fa59","webpack:///./src/components/calendar/TheCalendarBody.vue?b630","webpack:///./src/components/weather/DailyWeather.vue?4f26","webpack:///./src/entities/entities.ts","webpack:///./src/App.vue?5c93","webpack:///./src/components/calendar/TheCalendarBody.vue?f50a","webpack:///./src/mixins/CalendarMonthDrawMode.ts","webpack:///./src/store/storeActions.ts","webpack:///./src/components/calendar/CalendarMonths.vue?82cf","webpack:///./src/components/calendar/CalendarMonthsWeeks.vue?94f4","webpack:///./src/components/calendar/CalendarActivityBar.vue?0966","webpack:///./src/helpers/calendarHelper.ts","webpack:///./src/helpers/activityHelper.ts","webpack:///./src/store/storeMutations.ts","webpack:///./src/components/calendar/CalendarActivityBar.vue?0adf","webpack:///./src/components/calendar/CalendarActivityBar.vue?0196","webpack:///./src/components/calendar/CalendarActivityBar.vue?2367","webpack:///./src/components/calendar/CalendarActivityBarEndpoint.vue?0c42","webpack:///./src/components/calendar/CalendarActivityBarEndpoint.vue?dfc0","webpack:///./src/components/calendar/CalendarActivityBarEndpoint.vue?d2ae","webpack:///./src/components/calendar/CalendarActivityBarEndpoint.vue","webpack:///./src/components/calendar/CalendarMonthsWeeks.vue?6078","webpack:///./src/components/calendar/CalendarMonthsWeeks.vue?c2a0","webpack:///./src/components/calendar/CalendarMonthsWeeks.vue?4dd3","webpack:///./src/components/calendar/CalendarMonths.vue?311c","webpack:///./src/components/calendar/CalendarMonths.vue?8272","webpack:///./src/components/calendar/CalendarMonths.vue","webpack:///./src/helpers/screenHelper.ts","webpack:///./src/helpers/tutorialHelper.ts","webpack:///./src/components/calendar/PlantContextMenu.vue?fd82","webpack:///./src/components/calendar/PlantContextMenu.vue?ae26","webpack:///./src/components/calendar/PlantContextMenu.vue?1802","webpack:///./src/components/calendar/PlantContextMenu.vue","webpack:///./src/components/calendar/GardenContextMenu.vue?3736","webpack:///./src/components/calendar/GardenContextMenu.vue?d035","webpack:///./src/components/calendar/GardenContextMenu.vue?1468","webpack:///./src/components/calendar/GardenContextMenu.vue?fbdf","webpack:///./src/helpers/debounce.ts","webpack:///./src/components/general/TheModal.vue?4922","webpack:///./src/components/general/TheModal.vue?75db","webpack:///./src/components/general/TheModal.vue?e5b0","webpack:///./src/components/general/TheModal.vue","webpack:///./src/components/plant/ThePlantEdit.vue?4dfb","webpack:///./src/components/plant/TheLandiPlantEdit.vue?90fb","webpack:///./src/helpers/jQueryHelper.ts","webpack:///./src/components/general/ActivityDate.vue?5773","webpack:///./src/components/general/ActivityDate.vue?f745","webpack:///./src/components/general/ActivityDate.vue?fd98","webpack:///./src/components/general/ActivityDate.vue?b9ec","webpack:///./src/helpers/toastrHelper.ts","webpack:///./src/components/general/Accordeon.vue?8a09","webpack:///./src/components/general/Accordeon.vue?3b77","webpack:///./src/components/general/Accordeon.vue?616b","webpack:///./src/components/general/Accordeon.vue?3ea4","webpack:///./src/components/general/ActivityDateWithIcon.vue?945f","webpack:///./src/components/general/ActivityDateWithIcon.vue?6c53","webpack:///./src/components/general/ActivityDateWithIcon.vue?d683","webpack:///./src/components/general/ActivityDateWithIcon.vue?ad8c","webpack:///./src/components/plant/TheLandiPlantEdit.vue?1edd","webpack:///./src/components/plant/TheLandiPlantEdit.vue?7c41","webpack:///./src/components/plant/TheLandiPlantEdit.vue?f151","webpack:///./src/components/plant/TheCustomPlantEdit.vue?b45e","webpack:///./src/components/general/DropDown.vue?2871","webpack:///./src/components/general/DropDown.vue?4140","webpack:///./src/components/general/DropDown.vue?db77","webpack:///./src/components/general/DropDown.vue","webpack:///./src/components/general/DropDownMultiSelect.vue?a732","webpack:///./src/components/general/DropDownMultiSelect.vue?da9b","webpack:///./src/components/general/DropDownMultiSelect.vue?a06d","webpack:///./src/components/general/DropDownMultiSelect.vue","webpack:///./src/components/general/FileUpload.vue?e856","webpack:///./src/components/general/FileUpload.vue?6fef","webpack:///./src/components/general/FileUpload.vue?fe5e","webpack:///./src/components/general/FileUpload.vue?3b00","webpack:///./src/components/plant/TheCustomPlantEdit.vue?584f","webpack:///./src/components/plant/TheCustomPlantEdit.vue?9e01","webpack:///./src/components/plant/TheCustomPlantEdit.vue?b1f9","webpack:///./src/components/plant/ThePlantEdit.vue?7f4a","webpack:///./src/components/plant/ThePlantEdit.vue?d6b7","webpack:///./src/components/plant/ThePlantEdit.vue","webpack:///./src/components/calendar/TheCalendarAddPlantModal.vue?736c","webpack:///./src/components/calendar/TheCalendarAddPlantModal.vue?8334","webpack:///./src/components/calendar/TheCalendarAddPlantModal.vue?7b96","webpack:///./src/components/calendar/TheCalendarAddPlantModal.vue?a4a4","webpack:///./src/components/calendar/TheGardenModal.vue?1a71","webpack:///./src/components/calendar/TheGardenModal.vue?0b37","webpack:///./src/components/calendar/TheGardenModal.vue?230e","webpack:///./src/components/calendar/TheGardenModal.vue","webpack:///./src/components/calendar/TheMovePlantModal.vue?4ccb","webpack:///./src/components/calendar/TheMovePlantModal.vue?d5b2","webpack:///./src/components/calendar/TheMovePlantModal.vue?7efb","webpack:///./src/components/calendar/TheMovePlantModal.vue?7e5a","webpack:///./src/components/calendar/TheActivityInfoModal.vue?fc90","webpack:///./src/components/calendar/TheActivityInfoModal.vue?d5d9","webpack:///./src/components/calendar/TheActivityInfoModal.vue?755f","webpack:///./src/components/calendar/TheActivityInfoModal.vue","webpack:///./src/components/calendar/TheCalendarBuyPlantModal.vue?ac25","webpack:///./src/components/calendar/TheCalendarBuyPlantModal.vue?38e4","webpack:///./src/components/calendar/TheCalendarBuyPlantModal.vue?d11d","webpack:///./src/components/calendar/TheCalendarBuyPlantModal.vue","webpack:///./src/components/calendar/TheGardenContestModal.vue?2b5d","webpack:///./src/components/calendar/TheGardenContestModal.vue?edf4","webpack:///./src/components/calendar/TheGardenContestModal.vue?8d99","webpack:///./src/components/calendar/TheGardenContestModal.vue?a306","webpack:///./src/components/calendar/TheTutorialConsentModal.vue?b871","webpack:///./src/components/calendar/TheTutorialConsentModal.vue?5d53","webpack:///./src/components/calendar/TheTutorialConsentModal.vue?5f74","webpack:///./src/components/calendar/TheTutorialConsentModal.vue","webpack:///./src/components/calendar/TheTutorialEndModal.vue?f0af","webpack:///./src/components/calendar/TheTutorialEndModal.vue?94ef","webpack:///./src/components/calendar/TheTutorialEndModal.vue?6a28","webpack:///./src/components/calendar/TheTutorialEndModal.vue","webpack:///./src/components/calendar/TheBadNeighborsModal.vue?d781","webpack:///./src/components/calendar/TheBadNeighborsModal.vue?ec3c","webpack:///./src/components/calendar/TheBadNeighborsModal.vue?159c","webpack:///./src/components/calendar/TheBadNeighborsModal.vue","webpack:///./src/components/calendar/TheCalendarBody.component.ts","webpack:///./src/components/calendar/TheCalendarBody.component.ts?51d2","webpack:///./src/components/calendar/TheCalendarBody.vue?28d2","webpack:///./src/components/calendar/TheCalendarHeader.vue?1cdb","webpack:///./src/components/calendar/CalendarFilters.vue?0c66","webpack:///./src/components/general/SearchTextbox.vue?c2bc","webpack:///./src/components/general/SearchTextbox.vue?9952","webpack:///./src/components/general/SearchTextbox.vue?6dcd","webpack:///./src/components/general/SearchTextbox.vue","webpack:///./src/components/general/DropDownActivities.vue?810a","webpack:///./src/components/general/DropDownActivities.vue?ca39","webpack:///./src/components/general/DropDownActivities.vue?fa1e","webpack:///./src/components/general/DropDownActivities.vue","webpack:///./src/components/calendar/TheCalendarSubscribeModal.vue?72aa","webpack:///./src/components/calendar/TheCalendarSubscribeModal.vue?2394","webpack:///./src/components/calendar/TheCalendarSubscribeModal.vue?da5a","webpack:///./src/components/calendar/TheCalendarSubscribeModal.vue?bcc9","webpack:///./src/components/calendar/TheSaveGardenModal.vue?48ad","webpack:///./src/components/calendar/TheSaveGardenModal.vue?d79c","webpack:///./src/components/calendar/TheSaveGardenModal.vue?e13d","webpack:///./src/components/calendar/TheSaveGardenModal.vue","webpack:///./src/components/calendar/CalendarFilters.vue?0660","webpack:///./src/components/calendar/CalendarFilters.vue?e173","webpack:///./src/components/calendar/CalendarFilters.vue","webpack:///./src/components/calendar/TheCalendarHeader.vue?b1de","webpack:///./src/components/calendar/TheCalendarHeader.vue?79c5","webpack:///./src/components/calendar/TheCalendarHeader.vue?19c6","webpack:///./src/components/weather/TheWeatherBar.vue?2c75","webpack:///./src/components/weather/WeekCalendar.vue?4807","webpack:///./src/components/weather/DailyWeather.vue?ef62","webpack:///./src/components/weather/DailyWeather.vue?26cb","webpack:///./src/components/weather/DailyWeather.vue?9748","webpack:///./src/components/weather/DailyWeather.vue?7586","webpack:///./src/components/weather/DailyWeatherHeader.vue?566a","webpack:///./src/components/weather/DailyWeatherHeader.vue?97b8","webpack:///./src/components/weather/DailyWeatherHeader.vue?5506","webpack:///./src/components/weather/DailyWeatherHeader.vue?b3bb","webpack:///./src/components/weather/WeekCalendar.vue?cdb8","webpack:///./src/components/weather/WeekCalendar.vue?0405","webpack:///./src/components/weather/WeekCalendar.vue?f0ac","webpack:///./src/components/weather/TheWeatherBar.vue?c174","webpack:///./src/components/weather/TheWeatherBar.vue?3abf","webpack:///./src/components/weather/TheWeatherBar.vue?db75","webpack:///./src/components/entry/TheEntryPage.vue?5b43","webpack:///./src/components/entry/TheEntryPage.vue?e7bc","webpack:///./src/components/entry/TheEntryPage.vue?1710","webpack:///./src/components/entry/TheEntryPage.vue?2e2c","webpack:///./src/App.vue?ec60","webpack:///./src/App.vue?640d","webpack:///./src/App.vue?a938","webpack:///./src/store/actions.ts","webpack:///./src/store/mutations.ts","webpack:///./src/store/index.ts","webpack:///./src/languages.ts","webpack:///./src/main.ts","webpack:///./src/components/calendar/TheMovePlantModal.vue?365b","webpack:///./src/components/calendar/CalendarFilters.vue?5899","webpack:///./src/components/calendar/TheCalendarHeader.vue?9ae4","webpack:///./src/components/weather/DailyWeatherHeader.vue?7ce7","webpack:///./src/components/general/ActivityDateWithIcon.vue?0a65","webpack:///./src/components/calendar/TheCalendarBody.vue?8d5c"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","map","webpackContext","req","id","webpackContextResolve","e","Error","code","keys","resolve","ActivityType","CalendarView","GardenMode","PlantMoveMode","ScreenResolution","_vm","this","_h","$createElement","_c","_self","attrs","directives","rawName","expression","isLoggedIn","hasGarden","showEntryPage","_e","staticRenderFns","staticClass","ref","drawGardenModal","drawMoveModal","drawTutorialConsentModal","drawTutorialEndModal","drawEditModalView","drawBuyPlantModal","drawGardenContestModal","on","handleAddPlantLoaded","handleEditPlantLoaded","handleAcceptTutorial","handleDenyTutorial","staticStyle","newGardenModal","$ml","_v","_s","gotoPrevPage","calendar","CalendarMonthDrawMode_MonthName","goToMonth","gotoNextPage","_l","garden","gardenIdx","Id","$event","toggleGarden","openGardensIndex","indexOf","Name","Plants","CalendarMonthDrawMode_ActivitySummary","activitiesForCurrentCalendarView","refInFor","BadNeighborsPlants","placeholderImg","showModal4GardenId","isMobile","openBadNeighborsModal","openModalAddPlant","menuClick","deleteGarden","editGarden","duplicateGarden","showWeeksHeader","CalendarMonthDrawMode_WeekNamesAndEmptyMonth","getRelevantPlants","plant","plantIdx","class","cssClassPlant","ImageUrl","plantDetail","editPlant","duplicatePlant","movePlant","deletePlant","activitiesByPlantId","CompositionId","activity","activityIdx","CalendarMonthDrawMode_ActivityBars","Description","City","Zip","GardenId","ProductPlantId","CustomPlantId","SeedingDate","Date","Activities","PlantBelongToUser","EndWeek","StartWeek","Title","PeriodInWeeks","WeeksFromSeedingDate","StartYear","OriginStartWeek","OriginEndWeek","Year","Month","MonthName","Weeks","Week","GardenNotificationType","GardenNotificationMedia","AttributeGroups","UsedAttributesIds","UsedAttributes","State","CareTips","PlantProtection","Attributes","PlantGroupIdentifier","activityType","startWeek","endWeek","weeksFromSeedingDate","Period","UserCompetitionType","UserCompetitionAnswer","NotificationType","NotificationMedia","Recipient","Zipcode","CalendarMonthDrawMode","STORE_ACTIONS","LOAD_GARDEN","LOAD_ACTIVITIES","LOAD_CALENDAR","MOVE_CALENDAR_NEXT","MOVE_CALENDAR_PREV","GENERATE_CALENDAR_MONTH","SWITCH_VIEW","SET_SELECTED_ACTIVITY_TYPE","SEARCH_PLANT_BY_TEXT","ADD_PLANT","UPDATE_LANDI_PLANT","LOAD_FORECAST","LOAD_ATTRIUBTES","SAVE_CUSTOMPLANT","UPDATE_CUSTOMPLANT","UPLOAD_CUSTOMPLANT_FILE","REMOVE_CUSTOMPLANT_FILE","DELETE_GARDEN","ADD_GARDEN","LOAD_USER_ADDRESS","EDIT_GARDEN","DUPLICATE_GARDEN","DELETE_PLANT","MOVE_PLANT","DUPLICATE_PLANT","CREATE_NEW_GARDEN_FROM_ENTRYPAGE","LOAD_USER_COMPETITION","ANSWER_USER_COMPETITION","LOAD_PLANT_CONFLICTS","LOAD_PRODUCT_GROUPS","style","width","drawMode","cal","calendarIdx","cssClass","justifyContent","placeActivityBarsOnMonth","gardenId","isMonthView","_t","cssClassMonth","$emit","calendarEntry","week","eligibleToPlaceActivityBar","eligibleToDrawActivityBar","cssClassActivityType","cursor","showActivityModal","activityIcon","domProps","activityBarActivityText","activityBarText","with","date","today","firstDayOfYear","getFullYear","pastDaysOfYear","getTime","Math","ceil","getDay","getMonth","num","MonthNames","ActivitySummary","ActivityBars","WeekNamesAndEmptyMonth","ml","allWeeks","allWeekNumbers","x","w","Array","concat","amountOfMonthToGenerate","moveToNextMonth","currentCalendarEntry","generateCalendarEntry","startMonth","startYear","generateCalendarEntries","calendarEntries","calIdx","year","month","generateWeeksForCalendarEntry","weeksInStartMonth","getAmountOfWeeksInMonth","lastSavedWeek","lastSavedDay","index","day","weeknumber","pad2","isoWeek","month_number","firstOfMonth","lastOfMonth","used","getDate","currentMonth","searchMonth","lastWNumber","weeksFromSearchMonth","filter","ce","weekNumber","startOf","format","substring","UTC","isNaN","eligibleToStartinCalendarEntry","placeOnMonth","activityLastOverYearChange","currentStartMonth","endMonth","activityStart","Number","parseInt","activityEnd","calendarPosition","currentMonthIsFirstMonth","eligible","prevMonth","mod","acticity","activityStartedLastYear","endYear","getMonthByWeekAndYear","STORE_MUTATIONS","SET_GARDEN","SET_GARDEN_BAD_NEIGHBOURS","GENERATE_CALENDAR","MOVE_CALENDAR_TO","SET_MONTH_TO_SHOW","SWITCH_CALENDAR_VIEW","SET_GARDEN_GEOID","SET_GARDEN_WEATHER","SET_GARDEN_WEEK_WEATHER","SET_ATTRIBUTES","SET_USER_IS_LOGGED_IN","SHOW_ACTIVITY_MODAL","SET_PLACEHOLDER_IMAGE_URL","SET_HAS_ANSWERED_USER_COMPETITION","SET_PLANT_CONFLICTS","SET_DESTINATION_ID","SET_PRODUCT_GROUPS","$nextTick","calcultateAndSetWith","removeEventListener","addEventListener","endPointClassname","generateActivityEndpointClassName","endpoint","document","getElementsByClassName","forEach","parentElement","offsetLeft","offsetWidth","$el","$store","commit","$","detach","appendTo","modal","css","eligibleToPlaceinCalendarEntry","getActivityIcon","monthNameStart","monthNameEnd","component","lastMonthinView","eligibleByWeek","eliglbleByMonth","eligibleByEndOfYearEdgeCase","shouldDraw","eligibleByWeekInOneMonthView","getNumberOfWeek","toString","components","getNumberOfMonth","a","eligibleToOccurCalendarEntry","currentView","mixins","computed","resulution","Desktop","max","documentElement","clientWidth","innerWidth","Phone","Tablet","steps","hasConsent","started","setDone","console","debug","stepAsAbsolute","anno","target","annoElement","attr","children","first","trigger","addClass","positionAnnoElem","setTimeout","isDone","removeClass","enrichedSteps","step","onShow","asAbsolute","onHide","_chainNext","Anno","show","remove","item","localStorage","getItem","SHOW_TUTORIAL_KEY","setItem","json","DONE_TUTORIAL_KEY","obj","JSON","parse","stringify","openContextMenu","menu","getElementById","display","menus","el","element","screenResulution","required","Icon","openGardenContextMenu","debounce","cb","wait","h","callable","args","clearTimeout","modalCssClass","_m","title","parent","modalsize","default","customPlant","composing","seedingDate","$set","fertilizing","_q","isValid","model","callback","$$v","sortedActivities","valid","updateLandiPlant","language","weekHeader","prevText","prevStatus","prevJumpText","prevJumpStatus","nextText","nextStatus","nextJumpText","nextJumpStatus","monthNames","monthNamesShort","dayNames","dayNamesShort","dayNamesMin","firstDay","inputElement","self","dataMapping","getAttribute","dataMappingArray","split","assignable","count","q","dateText","inst","input","val","datepicker","iso8601Week","JQueryHelper","vueAttibuteMapping","jQueryLocalizationFowCalendarWeek","assign","localeOptions","onSelect","addCalendarWeekFromDate","optionsCalendarWeek","extend","regional","dateFormat","showWeek","jQueryLocalization","options","validateNumber","getCalendarOptionsForCalendarWeek","currentLanguage","click","event","parentIg","closest","$Language","Fertilizing","toastr","message","SetToastrOptions","success","error","toggle","iconName","text","chevronLeft","isOpenInternal","isOpen","uniqueClass","comp","customActivities","newVal","oldVal","String","set","validateActivity","fillActivities","getCalendarOptionsForDate","change","onPlantChange","activites","idx","validateFertilizing","getDateByString","plantUpdated","dispatch","Success","sort","b","invalidAactivities","accordeon","filterAttribute","isFileRemove","cssClassFertilizing","attributeGroup","Group","GroupType","translateName","attributeList","selectedValueByAttributeGroup","shouldShowLabel","selectedValuesByAttributeGroup","productGroupsDropDown","isArray","addToCommunity","_i","$$a","$$el","$$c","checked","$$i","allowToUpload","clickedOnceOnSave","saveCustomPlant","selectedItem","Key","triggerDropdown","getSelectedItemByValue","Value","noSelectionText","selectedValue","mouseup","closeMenu","$menu","is","has","list","selectedItems","join","isChecked","selectedValues","values","isImageSet","selectFile","acceptFileTypes","fileSelected","filename","previewImageUrl","removeFile","localFilename","localFiles","localPreviewImageUrl","imageUrl","$refs","hiddenFileUpload","clear","fileuploadInput","files","previewImage","reader","FileReader","onload","readAsDataURL","accept","showImagePreview","showImage","initSeedingDate","filterAct","customPlantId","fileupload","file","singleSelectAttributes","attributes","multiSelectAttributes","flatMap","AttributeId","selectedProductGroupIdentifier","productGroupsRef","copyCustomPlant","cpResponse","upload","addPlant","clearForm","updatePlant","compositionId","plantId","description","myPlant","attributGroup","usedAttributes","AttributeGroupId","translatedName","multiLangageString","filteredAttributeGroup","attribute","isStringValidDate","productGroups","Identifier","dropdown","stop","newPlant","oldPlant","toCustomPlant","response","status","isCustomPlantOpen","scopedSlots","_u","fn","proxy","isCustomCommunityPlantOpen","gardenName","isLoadingGardenBerater","isCustomPlantsLoading","loaded","loadLandiPlants","loadCustomplants","$CategoryIds","then","res","landiPlantContainer","html","Landi","GardenPlantProductFilter","searchUrl","find","replace","addPlantToGarden","customPlantContainer","events","_data","addCustomPlantToGarden","addCustomPlant","allCustomPlants","userIsLoggedIn","getTooltipText","gardenMode","createNewGarden","Create","tooltip","plantMoveMode","gardenIndex","plantMoveDestinationId","currentConflicts","gardens","Move","unbind","moveParam","DestinationGarden","state","activityForModal","QuantityInput","ProductTeaserBy","init","deny","userCompetitionType","GardenContest","consentTutorial","refuseTutorial","ok","modalId","openModal","drawModalView","internalmodalTitle","ensureTutorialOverlay","container","overlay","tutorialDefaultMethods","pageContentContainer","tutorialDefaultOptions","position","buttons","switchToChainNext","tutorialDefaultModalMethods","modalDialog","tutorialDefaultModalOptions","outsideClickListener","navigationRow","landiHeader","subNavigationContainer","debouncedScroll","offset","top","height","off","tryShowTutorial","mainAddress","updatedGarden","selectedActivityTypes","plants","activities","stopPropagation","filteredGarden","hideModals","modalView","addPlantModal","openCustomPlant","editPlantModal","resposnse","spinner","innerHTML","buyModal","initFunction","moveOrDuplicatePlant","Duplicate","moveModal","gardenModal","newGarden","Edit","g","searchPlantText","relevantPlants","toLowerCase","gardenWrapper","Answered","openGardenContestModal","isShown","hasAnsweredConsent","showTutorial","openTutorialConsentModal","firstGarden","showTutorialPart1","tryOpenModalForTutorialPart2","showTutorialPart3","tryOpenModalForTutorialPart4","showTutorialPart5","tryOpenModalForTutorialPart6","hasDone","startTutorial","content","isTheModalOpen","showTutorialPart2","filters","showTutorialPart4","openModalAddCustomPlant","plantMenu","editButton","showTutorialPart6","editActivities","editDetailInformation","hasDetailInformation","openTutorialEndModal","relevantActivities","filteredActivities","filteredGardens","filteredGardensWithFilteredPlants","filterPlantsBySearchtext","TheModal","TheGardenContestModal","monthToShow","createNewGardenFromEntryPage","hasAnsweredGardenContest","gardenIds","submitSearch","activityDropdownlist","selectedActivitiesChanged","openModalSubscribe","showHelpingTippsPage","saveCalendarForNotloggedIn","cssClassCalendarViewMonth","switchView","cssClassCalendarViewYear","isYearView","onKeyUpEnter","submit","keyCode","searchTextbox","areAllSelected","triggerSelectAll","isLoading","monthlyGardenOverview","handleMonthlyGardenOverviewClick","weatherWarnings","handleWeatherWarningClick","isSMSToggled","isEMailToggled","isWhatsappToggled","isPhonenumberValid","phoneNumber","canSave","subscribe","isLoadingSubscription","isUpdatingSubscription","reset","fetchNotifications","some","MonthlyActivitiesRemainder","WeatherWarnings","Sms","WhatsApp","Email","nonEmptyRecipient","notifications","getNotifications","post","toNotification","evt","currentTarget","checkbox","re","RegExp","test","notificationType","notificationMedia","recipient","login","currentlocation","location","pathname","href","subscribeModalView","saveGardenModalView","selectedCalendarView","calendarview","resolution","activityTypes","open","k","todayWeather","gardenCityName","extendedDate","imagePath","uebersicht","mintemp","maxtemp","wind","geschwindigkeit","niederschlag","wahrscheinlichkeit","triggerWeekCalendar","isWeekCalendarOpen","weatherWeek","weatherDay","indexDay","datum","weather","symb","weekDay","toUpperCase","deMoment","locale","entryPageImageClass","HasGarden","createGarden","IsLoggedIn","appobj","currentInitLanguage","rootPath","categoryIds","$BaseUrl","handleScreensizeSpecificActions","TheCalendarBody","TheCalendarHeader","TheWeatherBar","entry","actions","zipCode","geoId","gardenGeoId","responsezip","wforecast","searchText","param","BadNeighbours","config","headers","delete","movePlantParam","answered","NotAnswered","plantCompositionId","Map","conflicts","Promise","all","async","incompatiblePlants","mcp","PlantId","mapActivityAndGarden","mapPlantAndGarden","mutations","payload","plantsFlat","calendarHelper","currentCalendarMonth","currentCalendarYear","moveCalendar","moveCalendarTo","alreadyExistingPlant","indexPlant","weekForecast","tagesprognosen","isUserLoggedIn","url","hasAnsweredToUserCompetition","plantConflictsByGarden","use","Store","calendarLoaded","activitiesLoaded","gardensLoaded","getters","allLandiPlants","answer","Unknown","current","initial","save","languages","monthName1","monthName2","monthName3","monthName4","monthName5","monthName6","monthName7","monthName8","monthName9","monthName10","monthName11","monthName12","monthNameLong1","monthNameLong2","monthNameLong3","monthNameLong4","monthNameLong5","monthNameLong6","monthNameLong7","monthNameLong8","monthNameLong9","monthNameLong10","monthNameLong11","monthNameLong12","activityType1","activityType2","activityType3","activityType4","activityType5","activityType6","activityType7","activityType8","activityType9","calendarFiltersYearLetter","occuranceEveryAmountWeek","modalAddPlantsTitle","modalAddPlantsSelectFromLandi","modalAddPlantsSelectCustom","customPlantFormName","landiPlantName","landiPlantComment","customPlantFormDescription","customPlantFormSeedingDate","customPlantFormCaretips","customPlantFormPlantProtection","customPlantFormAddActivities","customPlantFormAddDetailInformation","customPlantFormAddToLandiCommunity","customPlantFormSubmitImage","customPlantFormAddToCalendar","customPlantFormSavePlant","customPlantFormStartCalendarWeek","customPlantFormEndCalendarWeek","customPlantFormWeeksFromSeedingDate","customPlantFormErrorActivity","customPlantFormErrorDate","customPlantFormErrorInvalidForm","customPlantFormFertilizingNever","customPlantFormFertilizingWeekly","customPlantFormFertilizingEvery2Weeks","customPlantFormFertilizingEvery3Weeks","customPlantFormFertilizingMonthly","addPlantToCalendarSuccessMessage","successSaveMessage","addNewGarden","entryPageTitle1","entryPageTitle2","entryPageTitle3","entryPageTitle4","entryPageBtnLoggin","entryPageBtnCreateGarden","modalSubscribeTitle","modalSubscribeSave","saveDisclaimer","modalSubscribeSubscriptionType","modalSubscribeGardenOverview","modalSubscribeWeatherWarnings","modalSubscribeCommunicationChannel","modalSubscribeNotValidPhonenumber","modalSubscribeSMS","modalSubscribeWhatsapp","modalSubscribeEMail","modalPhoneNumber","modalSubscribeError","plantMenuOrder","plantMenuDetail","plantMenuEdit","plantMenuDuplicate","plantMenuMove","plantMenuDelete","gardenMenuOrder","gardenMenuDuplicate","gardenMenuDelete","landiPlantEditSave","gardenModalCreateButton","gardenModalDuplicateButton","gardenModalEditButton","plzTooltipLogged","plzTooltipNotLogged","gardenModalCreateTitle","gardenModalDuplicateTitle","gardenModalEditTitle","gardenModalNameLabel","gardenModalPlaceLabel","gardenModalDescriptionLabel","movePlantModalMoveTitle","movePlantModalDuplicateTitle","movePlantModalMoveButton","movePlantModalDuplicateButton","movePlantModalMoveLabel","movePlantModalDuplicateLabel","movePlantModalBadNeighbors","filtersAccordion","modalSavGardenTitle","modalSaveGardenInfoText","actionTitleOpenCloseGarden","actionTitleAddPlant","actionTitleAddGarden","actionTitleNavigateBack","actionTitleNavigateForward","weatherWeekview","weatherAnonymusMessage","weatherClose","createGardenErrorInvalidName","dropDownNoSelection","labelYourSearch","gardenFilterActivities","gardenPrint","calendarAddPlantCreateCustomPlant","calendarAddPlantAddCommunityCustomPlant","calendarFilterNoSelectionText","calendarWeekShort","calendarFilterAllActivitu","modalGardenContestTitle","modalGardenContestText","modalGardenContestDeny","modalGardenContestAccept","modalTutorialConsentTitle","modalTutorialConsentText","modalTutorialConsentDeny","modalTutorialConsentAccept","modalTutorialEndTitle","modalTutorialEndText","modalTutorialEndOk","tutorialNext","tutorialAddGarden","tutorialAddPlantFromLandiCatalog","tutorialAddPlantFilters","tutorialAddPlantClose","tutorialCalendarFilterOnActivity","tutorialCalendarPeriodView","tutorialCalendarMeteo","tutorialCalendarMeteoAlerts","tutorialAddPlant","tutorialAddCustomPlant","tutorialAddCustomPlantShare","tutorialAddCustomPlantAddToCalendar","tutorialAddCustomPlantClose","tutorialEditPlant","tutorialEditCustomActivities","tutorialEditDetailInformations","titleBadNeighborsModal","textBadNeighborsModalBody","closeModal","plantGroupDropdownTitle","msg","productionTip","store","render","$mount"],"mappings":"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","file":"js/app.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"frontend/landi/gardenplaner/dist/\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","import mod from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheCalendarSubscribeModal.vue?vue&type=style&index=0&id=c6ec7e0c&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheCalendarSubscribeModal.vue?vue&type=style&index=0&id=c6ec7e0c&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheCalendarAddPlantModal.vue?vue&type=style&index=1&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheCalendarAddPlantModal.vue?vue&type=style&index=1&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Accordeon.vue?vue&type=style&index=0&id=17ed65ca&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Accordeon.vue?vue&type=style&index=0&id=17ed65ca&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheGardenContestModal.vue?vue&type=style&index=0&id=01bc4469&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheGardenContestModal.vue?vue&type=style&index=0&id=01bc4469&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DropDownActivities.vue?vue&type=style&index=0&id=94417bd2&lang=less&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DropDownActivities.vue?vue&type=style&index=0&id=94417bd2&lang=less&scoped=true&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DropDownMultiSelect.vue?vue&type=style&index=0&id=6f710230&lang=less&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DropDownMultiSelect.vue?vue&type=style&index=0&id=6f710230&lang=less&scoped=true&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheLandiPlantEdit.vue?vue&type=style&index=0&id=473f05ac&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheLandiPlantEdit.vue?vue&type=style&index=0&id=473f05ac&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DropDown.vue?vue&type=style&index=0&id=04ee5c1a&lang=less&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DropDown.vue?vue&type=style&index=0&id=04ee5c1a&lang=less&scoped=true&\"","var map = {\n\t\"./de\": \"b469\",\n\t\"./de-at\": \"b3eb\",\n\t\"./de-at.js\": \"b3eb\",\n\t\"./de-ch\": \"bb71\",\n\t\"./de-ch.js\": \"bb71\",\n\t\"./de.js\": \"b469\",\n\t\"./fr\": \"9f26\",\n\t\"./fr-ca\": \"d9f8\",\n\t\"./fr-ca.js\": \"d9f8\",\n\t\"./fr-ch\": \"0e49\",\n\t\"./fr-ch.js\": \"0e49\",\n\t\"./fr.js\": \"9f26\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"4516\";","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PlantContextMenu.vue?vue&type=style&index=0&id=ffffcf6c&lang=less&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PlantContextMenu.vue?vue&type=style&index=0&id=ffffcf6c&lang=less&scoped=true&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheCalendarAddPlantModal.vue?vue&type=style&index=0&id=7711f8db&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheCalendarAddPlantModal.vue?vue&type=style&index=0&id=7711f8db&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileUpload.vue?vue&type=style&index=0&id=fc184498&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileUpload.vue?vue&type=style&index=0&id=fc184498&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WeekCalendar.vue?vue&type=style&index=0&id=562ae7e3&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WeekCalendar.vue?vue&type=style&index=0&id=562ae7e3&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheEntryPage.vue?vue&type=style&index=0&id=638fa85d&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheEntryPage.vue?vue&type=style&index=0&id=638fa85d&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CalendarMonthsWeeks.vue?vue&type=style&index=0&id=14759d7a&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CalendarMonthsWeeks.vue?vue&type=style&index=0&id=14759d7a&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CalendarMonths.vue?vue&type=style&index=0&id=2f3a5d8a&lang=less&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CalendarMonths.vue?vue&type=style&index=0&id=2f3a5d8a&lang=less&scoped=true&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheWeatherBar.vue?vue&type=style&index=0&id=6ffe080f&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheWeatherBar.vue?vue&type=style&index=0&id=6ffe080f&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CalendarActivityBar.vue?vue&type=style&index=0&id=1abecd43&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CalendarActivityBar.vue?vue&type=style&index=0&id=1abecd43&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GardenContextMenu.vue?vue&type=style&index=0&id=c6e79b42&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GardenContextMenu.vue?vue&type=style&index=0&id=c6e79b42&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheCustomPlantEdit.vue?vue&type=style&index=0&id=5a18f222&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheCustomPlantEdit.vue?vue&type=style&index=0&id=5a18f222&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ActivityDate.vue?vue&type=style&index=0&id=6d4aa1c2&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ActivityDate.vue?vue&type=style&index=0&id=6d4aa1c2&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheCalendarBody.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheCalendarBody.vue?vue&type=style&index=0&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DailyWeather.vue?vue&type=style&index=0&id=6220fc5e&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DailyWeather.vue?vue&type=style&index=0&id=6220fc5e&scoped=true&lang=css&\"","import CalendarHelper from '@/helpers/calendarHelper';\r\nexport interface IGarden {\r\n Id: number;\r\n Name: string;\r\n Description: string;\r\n City: string;\r\n Zip: string;\r\n Plants: IPlant[];\r\n BadNeighborsPlants: IPlant[];\r\n}\r\n\r\nexport class Garden implements IGarden {\r\n public Id: number;\r\n public Name: string;\r\n public Description: string;\r\n public City: string;\r\n public Zip: string;\r\n public Plants: IPlant[];\r\n public BadNeighborsPlants: IPlant[];\r\n\r\n constructor() {\r\n this.Id = -1;\r\n this.Name = '';\r\n this.Description = '';\r\n this.City = '';\r\n this.Zip = '';\r\n this.Plants = [];\r\n this.BadNeighborsPlants = [];\r\n }\r\n}\r\n\r\nexport interface IPlant {\r\n CompositionId: number;\r\n GardenId: number;\r\n Name: string;\r\n ImageUrl: string;\r\n ProductPlantId: number | null;\r\n CustomPlantId: number | null;\r\n Description: string;\r\n SeedingDate: Date | null;\r\n Activities: IActivity[];\r\n PlantBelongToUser: boolean;\r\n}\r\n\r\nexport interface IMovePlantParam {\r\n DestinationGarden: number;\r\n CompositionId: number;\r\n}\r\n\r\nexport class Plant implements IPlant {\r\n CompositionId: number;\r\n GardenId: number;\r\n Name: string;\r\n ImageUrl: string;\r\n ProductPlantId: number | null;\r\n CustomPlantId: number | null;\r\n Description: string;\r\n SeedingDate: Date | null;\r\n Activities: IActivity[];\r\n PlantBelongToUser: boolean;\r\n\r\n constructor() {\r\n this.CompositionId = -1;\r\n this.GardenId = -1;\r\n this.Name = '';\r\n this.ImageUrl = '';\r\n this.ProductPlantId = null;\r\n this.CustomPlantId = null;\r\n this.Description = '';\r\n this.SeedingDate = new Date();\r\n this.Activities = [];\r\n this.PlantBelongToUser= true;\r\n }\r\n}\r\n\r\nexport interface IActivity {\r\n CompositionId: number;\r\n GardenId: number;\r\n Title: string;\r\n ActivityType: ActivityType;\r\n StartYear: number;\r\n StartWeek: number;\r\n EndWeek: number;\r\n PeriodInWeeks: number | undefined | null;\r\n WeeksFromSeedingDate: number | undefined | null;\r\n OriginStartWeek: number | undefined | null;\r\n OriginEndWeek: number | undefined | null;\r\n}\r\n\r\nexport class Activity implements IActivity {\r\n public CompositionId: number;\r\n public GardenId: number;\r\n public Title: string;\r\n public ActivityType!: ActivityType;\r\n public StartYear: number;\r\n public StartWeek: number;\r\n public EndWeek: number;\r\n public PeriodInWeeks: number | undefined | null;\r\n public WeeksFromSeedingDate: number | undefined| null;\r\n public OriginStartWeek: number | undefined| null;\r\n public OriginEndWeek: number | undefined| null;\r\n\r\n constructor() {\r\n this.EndWeek = -1;\r\n this.CompositionId = -1;\r\n this.GardenId = -1;\r\n this.StartWeek = -1;\r\n this.Title = '';\r\n this.PeriodInWeeks = null;\r\n this.WeeksFromSeedingDate = null;\r\n this.StartYear = -1;\r\n this.OriginStartWeek = null;\r\n this.OriginEndWeek = null;\r\n }\r\n}\r\n\r\nexport interface ICalendarEntry {\r\n Year: number;\r\n Month: number;\r\n MonthName: string;\r\n Weeks: IWeek[];\r\n}\r\n\r\nexport class CalendarEntry implements ICalendarEntry {\r\n public Year: number;\r\n public Month: number;\r\n public MonthName: string;\r\n public Weeks: IWeek[];\r\n\r\n constructor() {\r\n this.Year = -1;\r\n this.Month = -1;\r\n this.MonthName = '';\r\n this.Weeks = [];\r\n }\r\n}\r\n\r\nexport interface IWeek {\r\n Week: number;\r\n Name: string;\r\n}\r\n\r\nexport class Week implements IWeek {\r\n public Week: number;\r\n public Name: string;\r\n\r\n constructor() {\r\n this.Name = '';\r\n this.Week = -1;\r\n }\r\n}\r\n\r\nexport enum ActivityType {\r\n Cultivation = 1,\r\n Seeding = 2,\r\n Transplant = 3,\r\n Heyday = 4,\r\n Fertilizing = 5,\r\n Harvest = 6,\r\n CutBack = 7,\r\n WinterIn = 8,\r\n WinterOut = 9\r\n}\r\n\r\nexport enum CalendarView {\r\n Month = 'Month',\r\n Year = 'Year'\r\n}\r\n\r\nexport enum GardenMode {\r\n Create = 'Create',\r\n Duplicate = 'Duplicate',\r\n Edit = 'Edit'\r\n}\r\n\r\nexport enum PlantMoveMode {\r\n Move = 'Move',\r\n Duplicate = 'Duplicate',\r\n}\r\n\r\n\r\nexport interface KeyValuePair {\r\n Key: string;\r\n Value: T;\r\n}\r\n\r\nexport enum ScreenResolution {\r\n Phone = 'Phone',\r\n Tablet = 'Tablet',\r\n Desktop = 'Desktop'\r\n}\r\n\r\nexport interface IZipResult {\r\n Id: string;\r\n\r\n Name: string;\r\n\r\n Country: string;\r\n}\r\n\r\nexport interface IWeekForecastLight {\r\n tagesprognosen: IDayForecastLight[];\r\n}\r\n\r\nexport interface IDayForecastLight {\r\n datum: string;\r\n uebersicht: IOverview;\r\n wind: IWind;\r\n niederschlag: ICondensation;\r\n}\r\n\r\nexport interface IOverview {\r\n mintemp: string;\r\n maxtemp: string;\r\n symb: string;\r\n}\r\n\r\nexport interface IWind {\r\n geschwindigkeit: string;\r\n spitzen: string;\r\n richtung: string;\r\n}\r\n\r\nexport interface ICondensation {\r\n wolken: string;\r\n verdunstung: string;\r\n menge: string;\r\n wahrscheinlichkeit: string;\r\n schneefallgrenze: string;\r\n}\r\n\r\nexport class FilterAttribute implements IFilterAttribute {\r\n AttributeGroups = [];\r\n UsedAttributesIds = [];\r\n UsedAttributes = [];\r\n}\r\nexport interface IFilterAttribute {\r\n AttributeGroups: IAttributeGroup[];\r\n UsedAttributesIds: number[];\r\n UsedAttributes: IAttribute[];\r\n}\r\n\r\nexport interface IAttributeGroup {\r\n Id: number;\r\n CategoryId: number;\r\n AttributeGroupId: number;\r\n SortNumber: number;\r\n Name: IMultiLanguageString;\r\n Group: IGroup;\r\n IsSelectionGroup: boolean;\r\n IsTextGroup: boolean;\r\n}\r\n\r\nexport interface IAttribute {\r\n AttributeGroupId: number;\r\n Name: IMultiLanguageString;\r\n Id: number;\r\n}\r\n\r\nexport interface IMultiLanguageString {\r\n de: string;\r\n fr: string;\r\n}\r\n\r\nexport interface IGroup {\r\n Id: number;\r\n GroupType: number;\r\n IsSearchable: false;\r\n ParentGroupId: number | null;\r\n ExternalId: string;\r\n DefaultAttributeId: number | null;\r\n Name: IMultiLanguageString;\r\n}\r\n\r\nexport class CustomPlant implements ICustomPlant{\r\n Id = -1;\r\n Name = '';\r\n Description = '';\r\n State = -1; // enumeration\r\n CareTips = '';\r\n PlantProtection = '';\r\n ImageUrl = '';\r\n Activities = [];\r\n Attributes: any[] = [];\r\n PlantGroupIdentifier = '';\r\n}\r\nexport interface ICustomPlant {\r\n Id: number;\r\n Name: string;\r\n Description: string;\r\n State: number; // enumeration\r\n CareTips: string;\r\n PlantProtection: string;\r\n ImageUrl: string;\r\n Activities: ICustomPlantActivity[];\r\n Attributes: any[];\r\n PlantGroupIdentifier: string;\r\n}\r\n\r\nexport interface ICustomPlantActivity {\r\n ActivityType: ActivityType;\r\n StartWeek: number;\r\n EndWeek: number;\r\n WeeksFromSeedingDate: number;\r\n Period: number;\r\n OriginStartWeek: number;\r\n OriginEndWeek: number;\r\n}\r\n\r\nexport class CustomPlantActivity implements ICustomPlantActivity {\r\n ActivityType: ActivityType;\r\n StartWeek: number;\r\n EndWeek: number;\r\n WeeksFromSeedingDate: number;\r\n Period: number;\r\n OriginStartWeek: number;\r\n OriginEndWeek: number;\r\n\r\n constructor(\r\n activityType: ActivityType,\r\n startWeek: number = 0,\r\n endWeek: number = 0,\r\n weeksFromSeedingDate: number = 0\r\n ) {\r\n this.ActivityType = activityType;\r\n this.StartWeek = startWeek;\r\n this.EndWeek = endWeek;\r\n this.WeeksFromSeedingDate = weeksFromSeedingDate;\r\n this.Period = 0;\r\n this.OriginStartWeek = startWeek;\r\n this.OriginEndWeek = endWeek;\r\n }\r\n\r\n}\r\n\r\nexport enum GardenNotificationType {\r\n MonthlyActivitiesRemainder = 1,\r\n WeatherWarnings = 2\r\n}\r\n\r\nexport enum GardenNotificationMedia {\r\n None = 0,\r\n Email = 1,\r\n Sms = 2,\r\n WhatsApp = 3\r\n}\r\n\r\nexport interface IGardenNotification {\r\n GardenId: number;\r\n NotificationType: GardenNotificationType;\r\n NotificationMedia: GardenNotificationMedia;\r\n Recipient: string;\r\n}\r\n\r\nexport class GardenNotification implements IGardenNotification {\r\n constructor(\r\n public GardenId: number,\r\n public NotificationType: GardenNotificationType,\r\n public NotificationMedia: GardenNotificationMedia,\r\n public Recipient: string\r\n ) { }\r\n}\r\n\r\n\r\nexport interface IAddress {\r\n Zipcode: string;\r\n City: string;\r\n}\r\n\r\nexport class Address implements IAddress {\r\n Zipcode = '';\r\n City = '';\r\n}\r\n\r\nexport enum UserCompetitionType {\r\n GardenContest = 0 \r\n}\r\n\r\nexport enum UserCompetitionAnswer {\r\n Answered = 'answered',\r\n Unknown = 'unknown',\r\n NotAnswered = 'not-answered',\r\n}\r\n\r\nexport interface IProductGroup {\r\n Name: IMultiLanguageString;\r\n Identifier:string;\r\n Id:number;\r\n ExternalId: number;\r\n}\r\n\r\nexport interface IMixedCulturesPlant {\r\n PlantId: number | null,\r\n CustomPlantId: number | null,\r\n}","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"appGartenCalendar\"}},[_c('entry',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showEntryPage),expression:\"showEntryPage\"}],attrs:{\"IsLoggedIn\":_vm.isLoggedIn,\"HasGarden\":_vm.hasGarden}}),(!_vm.showEntryPage)?_c('weather-bar',{attrs:{\"IsLoggedIn\":_vm.isLoggedIn}}):_vm._e(),(_vm.hasGarden)?_c('calendar-header',{attrs:{\"isLoggedIn\":_vm.isLoggedIn}}):_vm._e(),_c('calendar-body',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.hasGarden),expression:\"hasGarden\"}],attrs:{\"isLoggedIn\":_vm.isLoggedIn}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"row\",attrs:{\"id\":\"calendar-body\"}},[_c('activity-info-modal'),_c('the-modal',{ref:\"modalView\",attrs:{\"modalsize\":_vm.drawGardenModal || _vm.drawMoveModal || _vm.drawTutorialConsentModal || _vm.drawTutorialEndModal\n ? 1\n : _vm.drawEditModalView || _vm.drawBuyPlantModal || _vm.drawGardenContestModal\n ? 2\n : 0}},[(_vm.drawModalView)?_c('add-plant-modal',{ref:\"addPlantModal\",on:{\"onLoaded\":_vm.handleAddPlantLoaded}}):_vm._e(),(_vm.drawEditModalView)?_c('edit-plant',{ref:\"editPlantModal\",on:{\"onLoaded\":_vm.handleEditPlantLoaded}}):_vm._e(),(_vm.drawGardenModal)?_c('garden-modal',{ref:\"gardenModal\"}):_vm._e(),(_vm.drawMoveModal)?_c('move-plant-modal',{ref:\"moveModal\"}):_vm._e(),(_vm.drawBuyPlantModal)?_c('buy-plant-modal',{ref:\"buyModal\"}):_vm._e(),(_vm.drawGardenContestModal)?_c('garden-contest-modal',{ref:\"gardenContestModal\"}):_vm._e(),(_vm.drawTutorialConsentModal)?_c('tutorial-consent-modal',{ref:\"tutorialConsentModal\",on:{\"onAccept\":_vm.handleAcceptTutorial,\"onDeny\":_vm.handleDenyTutorial}}):_vm._e(),(_vm.drawTutorialEndModal)?_c('tutorial-end-modal',{ref:\"tutorialEndModal\"}):_vm._e()],1),_c('div',{staticClass:\"col-12\"},[_c('div',{staticClass:\"gp-container\"},[_c('div',{staticClass:\"gp-row gp-navigation-row\"},[_c('div',{staticClass:\"gp-col-1\"},[_c('div',{staticClass:\"row full-height\",staticStyle:{\"margin\":\"0px\"},attrs:{\"id\":\"anno-add-garden\"}},[_c('div',{staticClass:\"col-xs-9 hide-print gp-add-garden full-height\",on:{\"click\":_vm.newGardenModal}},[_c('v-icon',{staticClass:\"full-height mobile-icon-btn\",staticStyle:{\"height\":\"100%\"},attrs:{\"name\":\"folder-plus\",\"color\":\"green\",\"alt\":_vm.$ml.get('actionTitleAddGarden'),\"title\":_vm.$ml.get('actionTitleAddGarden')}}),_c('span',{staticClass:\"hidden-xs\"},[_vm._v(_vm._s(_vm.$ml.get(\"addNewGarden\")))])],1),_c('div',{staticClass:\"col-xs-3 hide-print full-height\",staticStyle:{\"padding-right\":\"1px\"}},[_c('v-icon',{staticClass:\"hide-print full-height arrow-icon-btn left\",staticStyle:{\"float\":\"right\"},attrs:{\"name\":\"caret-left\",\"color\":\"grey\",\"alt\":_vm.$ml.get('actionTitleNavigateBack'),\"title\":_vm.$ml.get('actionTitleNavigateBack')},on:{\"click\":_vm.gotoPrevPage}})],1)])]),_c('div',{staticClass:\"gp-col-2 gp-row\"},[_c('calendar-months',{attrs:{\"calendar\":_vm.calendar,\"drawMode\":_vm.CalendarMonthDrawMode_MonthName},on:{\"go-to-month\":_vm.goToMonth}})],1),_c('div',{staticClass:\"gp-col-3\"},[_c('v-icon',{staticClass:\"hide-print full-height arrow-icon-btn right\",attrs:{\"name\":\"caret-right\",\"color\":\"grey\",\"alt\":_vm.$ml.get('actionTitleNavigateForward'),\"title\":_vm.$ml.get('actionTitleNavigateForward')},on:{\"click\":_vm.gotoNextPage}})],1)]),_c('div',{staticClass:\"gp-gardens-container\"},_vm._l((_vm.filteredGarden),function(garden,gardenIdx){return _c('span',{key:garden.Id,staticClass:\"gp-garden-container\",staticStyle:{\"height\":\"100%\"}},[_c('div',{staticClass:\"gp-row garden-row\"},[_c('div',{staticClass:\"gp-col-1 gp-actions\",staticStyle:{\"position\":\"relative\"},attrs:{\"id\":gardenIdx === 0 ? 'anno-add-garden' : null}},[_c('div',{staticClass:\"gp-action gp-garden-action\",on:{\"click\":function($event){return _vm.toggleGarden(garden, gardenIdx)}}},[_c('v-icon',{staticClass:\"gp-expand-collapse-garden mobile-icon-btn\",attrs:{\"name\":_vm.openGardensIndex.indexOf(gardenIdx) > -1\n ? 'folder'\n : 'folder-open',\"color\":\"green\",\"alt\":_vm.$ml.get('actionTitleOpenCloseGarden'),\"title\":_vm.$ml.get('actionTitleOpenCloseGarden')}}),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(garden.Name)+\" (\"+_vm._s(garden.Plants.length)+\")\")])],1),_c('calendar-months',{staticClass:\"visible-xs gp-action\",attrs:{\"calendar\":_vm.calendar,\"gardenId\":garden.Id,\"drawMode\":_vm.CalendarMonthDrawMode_ActivitySummary,\"activitiesForCurrentCalendarView\":_vm.activitiesForCurrentCalendarView}}),_c('div',{staticClass:\"hide-print gp-action mobile-icon-position\"},[_c('bad-neighbors-modal',{ref:'badNeigborsModal'+garden.Id,refInFor:true,attrs:{\"badNeighbors\":garden.BadNeighborsPlants,\"gardenId\":garden.Id,\"placeholderImg\":_vm.placeholderImg,\"name\":'badNeigborsModal'+garden.Id,\"show\":_vm.showModal4GardenId==garden.Id}}),_c('span',{staticClass:\"d-inline-block\"},[(garden.BadNeighborsPlants.length>0 && _vm.isMobile())?_c('v-icon',{staticClass:\"gp-action mobile-icon-btn\",staticStyle:{\"float\":\"right\"},attrs:{\"name\":\"exclamation-triangle\",\"color\":\"red\"},on:{\"click\":function($event){return _vm.openBadNeighborsModal(garden.Id)}}}):_vm._e()],1),_c('span',{staticClass:\"add-plant d-inline-block\"},[_c('v-icon',{staticClass:\"gp-action mobile-icon-btn\",attrs:{\"name\":\"plus-square\",\"color\":\"green\",\"alt\":_vm.$ml.get('actionTitleAddPlant'),\"title\":_vm.$ml.get('actionTitleAddPlant')},on:{\"click\":function($event){return _vm.openModalAddPlant(garden.Id, garden.Name)}}})],1),_c('div',{staticClass:\"hide-print\",on:{\"click\":_vm.menuClick}},[_c('garden-menu',{attrs:{\"gardenIdx\":gardenIdx,\"garden\":garden},on:{\"delete-garden\":_vm.deleteGarden,\"edit-garden\":_vm.editGarden,\"duplicate-garden\":_vm.duplicateGarden}})],1)],1)],1),_c('div',{staticClass:\"gp-col-2 gp-row hidden-xs\"},[_c('div',{staticStyle:{\"width\":\"100%\",\"text-align\":\"center\"}},[(garden.BadNeighborsPlants.length>0)?_c('v-icon',{staticClass:\"gp-action mobile-icon-btn\",staticStyle:{\"height\":\"100%\"},attrs:{\"name\":\"exclamation-triangle\",\"color\":\"red\"},on:{\"click\":function($event){return _vm.openBadNeighborsModal(garden.Id)}}}):_vm._e()],1)]),_c('div',{staticClass:\"gp-col-3\"})]),_c('span',{ref:\"gardenWrapper\",refInFor:true},[(_vm.showWeeksHeader())?_c('div',{staticClass:\"gp-row\"},[_c('div',{staticClass:\"gp-col-1\"}),_c('div',{staticClass:\"gp-col-2 gp-row\"},[_c('calendar-months',{attrs:{\"calendar\":_vm.calendar,\"gardenId\":garden.Id,\"drawMode\":_vm.CalendarMonthDrawMode_WeekNamesAndEmptyMonth}})],1),_c('div',{staticClass:\"gp-col-3\"})]):_vm._e(),_vm._l((_vm.getRelevantPlants(garden)),function(plant,plantIdx){return _c('div',{key:plantIdx,staticClass:\"gp-row\",class:_vm.cssClassPlant(plantIdx)},[_c('div',{staticClass:\"gp-col-1 gp-plant\"},[_c('div',{staticClass:\"row d-relative\"},[_c('div',{staticClass:\"col-xs-3\"},[_c('img',{staticClass:\"mouse-pointer\",attrs:{\"src\":plant.ImageUrl ? plant.ImageUrl : _vm.placeholderImg},on:{\"click\":function($event){return _vm.plantDetail(plant)}}})]),_c('div',{staticClass:\"col-xs-6 mouse-pointer word-breakall\",on:{\"click\":function($event){return _vm.plantDetail(plant)}}},[_vm._v(\" \"+_vm._s(plant.Name)+\" \")]),_c('div',{staticClass:\"col-xs-3 d-absolute top-right hide-print\",on:{\"click\":_vm.menuClick}},[_c('plant-menu',{attrs:{\"plant\":plant,\"plantIdx\":plantIdx,\"gardenIdx\":gardenIdx},on:{\"edit-plant\":_vm.editPlant,\"duplicate-plant\":_vm.duplicatePlant,\"move-plant\":_vm.movePlant,\"delete-plant\":_vm.deletePlant,\"buy-plant\":_vm.plantDetail}})],1)])]),_c('div',{staticClass:\"gp-col-2 gp-row\",staticStyle:{\"flex-wrap\":\"wrap\"}},_vm._l((_vm.activitiesByPlantId(\n plant.CompositionId\n )),function(activity,activityIdx){return _c('div',{key:activityIdx,staticClass:\"gp-activity-container\"},[_c('calendar-months',{attrs:{\"calendar\":_vm.calendar,\"drawMode\":_vm.CalendarMonthDrawMode_ActivityBars,\"activity\":activity,\"gardenId\":garden.Id}})],1)}),0),_c('div',{staticClass:\"gp-col-3\"})])})],2)])}),0)])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Component, Vue } from 'vue-property-decorator';\r\n\r\nenum CalendarMonthDrawMode {\r\n MonthNames = 1,\r\n ActivitySummary = 2,\r\n ActivityBars = 3,\r\n WeekNamesAndEmptyMonth = 4\r\n}\r\n\r\n@Component({})\r\nexport default class CalendarMonthDrawModeMixin extends Vue {\r\n get CalendarMonthDrawMode_MonthName(): Number {\r\n return CalendarMonthDrawMode.MonthNames as Number;\r\n }\r\n get CalendarMonthDrawMode_ActivitySummary(): Number {\r\n return CalendarMonthDrawMode.ActivitySummary as Number;\r\n }\r\n get CalendarMonthDrawMode_ActivityBars(): Number {\r\n return CalendarMonthDrawMode.ActivityBars as Number;\r\n }\r\n get CalendarMonthDrawMode_WeekNamesAndEmptyMonth(): Number {\r\n return CalendarMonthDrawMode.WeekNamesAndEmptyMonth as Number;\r\n }\r\n getNumberOfWeek(date: Date = new Date()): number {\r\n const today = date;\r\n const firstDayOfYear = new Date(today.getFullYear(), 0, 1);\r\n const pastDaysOfYear =\r\n (today.getTime() - firstDayOfYear.getTime()) / 86400000;\r\n return Math.ceil((pastDaysOfYear + firstDayOfYear.getDay() + 1) / 7);\r\n }\r\n\r\n getNumberOfMonth(): number {\r\n const today = new Date();\r\n return today.getMonth() + 1;\r\n }\r\n pad2(num: number): string {\r\n return (num < 10 ? '0' : '') + num\r\n }\r\n}\r\n","export const STORE_ACTIONS = {\r\n LOAD_GARDEN: \"LOAD_GARDEN\",\r\n LOAD_ACTIVITIES: \"LOAD_ACTIVITIES\",\r\n LOAD_CALENDAR: \"LOAD_CALENDAR\",\r\n MOVE_CALENDAR_NEXT: \"MOVE_CALENDAR_NEXT\",\r\n MOVE_CALENDAR_PREV: \"MOVE_CALENDAR_PREV\",\r\n GENERATE_CALENDAR_MONTH: \"GENERATE_CALENDAR_MONTH\",\r\n SWITCH_VIEW: \"SWITCH_VIEW\",\r\n SET_SELECTED_ACTIVITY_TYPE: \"SET_SELECTED_ACTIVITY_TYPE\",\r\n SEARCH_PLANT_BY_TEXT: \"SEARCH_PLANT_BY_TEXT\",\r\n ADD_PLANT: \"ADD_PLANT\",\r\n UPDATE_LANDI_PLANT: \"UPDATE_LANDI_PLANT\",\r\n LOAD_FORECAST: \"LOAD_FORECAST\",\r\n LOAD_ATTRIUBTES: \"LOAD_ATTRIUBTES\",\r\n SAVE_CUSTOMPLANT: \"SAVE_CUSTOMPLANT\",\r\n UPDATE_CUSTOMPLANT: \"UPDATE_CUSTOMPLANT\",\r\n UPLOAD_CUSTOMPLANT_FILE: \"UPLOAD_CUSTOMPLANT_FILE\",\r\n REMOVE_CUSTOMPLANT_FILE: \"REMOVE_CUSTOMPLANT_FILE\",\r\n DELETE_GARDEN: \"DELETE_GARDEN\",\r\n ADD_GARDEN: \"ADD_GARDEN\",\r\n LOAD_USER_ADDRESS: \"LOAD_USER_ADDRESS\",\r\n EDIT_GARDEN: \"EDIT_GARDEN\",\r\n DUPLICATE_GARDEN: \"DUPLICATE_GARDEN\",\r\n DELETE_PLANT: \"DELETE_PLANT\",\r\n MOVE_PLANT: \"MOVE_PLANT\",\r\n DUPLICATE_PLANT: \"DUPLICATE_PLANT\",\r\n CREATE_NEW_GARDEN_FROM_ENTRYPAGE: \"CREATE_NEW_GARDEN_FROM_ENTRYPAGE\",\r\n LOAD_USER_COMPETITION: \"LOAD_GARDEN_CONTEST\",\r\n ANSWER_USER_COMPETITION: \"ANSWER_USER_COMPETITION\",\r\n LOAD_PLANT_CONFLICTS: \"LOAD_PLANT_CONFLICTS\",\r\n LOAD_PRODUCT_GROUPS: \"LOAD_PRODUCT_GROUPS\",\r\n}","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticClass:\"gp-row full-width\",style:({ width: _vm.drawMode !== _vm.CalendarMonthDrawMode_ActivitySummary ? '100%': ''})},_vm._l((_vm.calendar),function(cal,calendarIdx){return _c('div',{key:cal.Month,staticClass:\"gp-row gp-month-navigation\",class:_vm.cssClass(calendarIdx),style:({justifyContent: _vm.drawMode === _vm.CalendarMonthDrawMode_ActivitySummary ? 'center':'' }),attrs:{\"month\":cal.Month}},[(_vm.placeActivityBarsOnMonth(cal.Month))?_c('calendar-activitybar-endpoint',{attrs:{\"activity\":_vm.activity,\"calendarEntry\":cal,\"gardenId\":_vm.gardenId,\"calendar\":_vm.calendar}}):_vm._e(),_c('calendar-activitybar',{attrs:{\"activity\":_vm.activity,\"calendarEntry\":cal,\"drawMode\":_vm.drawMode,\"placeOnMonth\":_vm.placeActivityBarsOnMonth(cal.Month),\"gardenId\":_vm.gardenId,\"calendar\":_vm.calendar}}),(\n (_vm.drawMode === _vm.CalendarMonthDrawMode_WeekNamesAndEmptyMonth ||\n _vm.drawMode === _vm.CalendarMonthDrawMode_ActivityBars) &&\n calendarIdx === 0 &&\n _vm.isMonthView)?_c('calendar-weeks',{attrs:{\"activity\":_vm.activity,\"calendarEntry\":cal,\"drawMode\":_vm.drawMode,\"gardenId\":_vm.gardenId,\"calendar\":_vm.calendar}},[_vm._t(\"default\")],2):_vm._e(),(_vm.drawMode === _vm.CalendarMonthDrawMode_MonthName)?_c('span',{staticClass:\"month-header\",class:_vm.cssClassMonth(cal, calendarIdx),staticStyle:{\"cursor\":\"pointer\"},on:{\"click\":function($event){return _vm.$emit('go-to-month',cal)}}},[_vm._v(\" \"+_vm._s(cal.MonthName)+\" \"),_c('br'),_vm._v(\" \"+_vm._s(cal.Year)+\" \")]):_vm._e()],1)}),0)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticClass:\"gp-row gp-weeks-container\"},_vm._l((_vm.calendarEntry.Weeks),function(week){return _c('div',{key:week.Week,staticClass:\"gp-week\",class:_vm.cssClass(week),attrs:{\"month\":_vm.calendarEntry.Month,\"week\":week.Week}},[_c('calendar-activitybar-endpoint',{attrs:{\"activity\":_vm.activity,\"calendarEntry\":_vm.calendarEntry,\"week\":week,\"gardenId\":_vm.gardenId,\"calendar\":_vm.calendar}}),_c('calendar-activitybar',{attrs:{\"activity\":_vm.activity,\"week\":week,\"calendarEntry\":_vm.calendarEntry,\"drawMode\":_vm.drawMode,\"gardenId\":_vm.gardenId,\"calendar\":_vm.calendar}}),(_vm.drawMode === _vm.CalendarMonthDrawMode_WeekNamesAndEmptyMonth)?_c('span',{staticClass:\"gp-week-name\"},[_c('b',[_vm._v(_vm._s(_vm.$ml.get('calendarWeekShort'))+\" \"+_vm._s(week.Week))]),_c('br'),_vm._v(_vm._s(week.Name)+\" \")]):_vm._e(),_vm._t(\"default\")],2)}),0)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.drawMode === _vm.CalendarMonthDrawMode_ActivityBars && (_vm.eligibleToPlaceActivityBar || _vm.eligibleToDrawActivityBar))?_c('div',{staticClass:\"gp-activity-bar-container\"},[(\n _vm.drawMode === _vm.CalendarMonthDrawMode_ActivityBars &&\n _vm.eligibleToPlaceActivityBar)?_c('div',{staticClass:\"gp-activity-bar gp-activity-bar-fill\",class:_vm.cssClassActivityType,style:({ cursor:'pointer' }),on:{\"click\":_vm.showActivityModal}}):_vm._e(),(\n _vm.drawMode === _vm.CalendarMonthDrawMode_ActivityBars &&\n _vm.eligibleToDrawActivityBar)?_c('div',{staticClass:\"gp-activity-bar\",style:({ width: _vm.width + 'px', cursor:'pointer' }),on:{\"click\":_vm.showActivityModal}},[_c('img',{staticStyle:{\"margin-right\":\"7px\",\"overflow\":\"unset\",\"width\":\"25px\"},attrs:{\"src\":_vm.activityIcon}}),_c('span',{staticClass:\"gp-activity-bar-activity-text\",domProps:{\"textContent\":_vm._s(_vm.activityBarActivityText)}}),_vm._v(\" \"),_c('span',{staticClass:\"gp-activity-bar-text\",domProps:{\"textContent\":_vm._s(_vm.activityBarText)}}),_vm._v(\" \"),(_vm.activity.PeriodInWeeks)?_c('span',[_c('span',{domProps:{\"textContent\":_vm._s(_vm.$ml.with(_vm.activity.PeriodInWeeks).get('occuranceEveryAmountWeek'))}})]):_vm._e()]):_vm._e()]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { ActivityHelper } from './activityHelper';\r\nimport { CalendarEntry, Week } from '../entities/entities';\r\nimport Moment from 'moment';\r\nimport { mapMutations } from 'vuex';\r\nexport default class CalendarHelper {\r\n calendar: CalendarEntry[];\r\n $ml: any\r\n allWeeks: number[] = [];\r\n constructor(calendar: CalendarEntry[], ml: any) {\r\n this.$ml = ml;\r\n this.calendar = calendar;\r\n const allWeekNumbers = calendar.map(x => x.Weeks.map(w => w.Week));\r\n this.allWeeks = Array.prototype.concat.apply([], allWeekNumbers);\r\n }\r\n\r\n moveCalendar(amountOfMonthToGenerate: number, moveToNextMonth: boolean): CalendarEntry[] {\r\n const currentCalendarEntry = this.calendar.length > 0 ? this.calendar[0] : this.generateCalendarEntry(new Date().getFullYear(), new Date().getMonth() + 1);\r\n\r\n let startMonth = moveToNextMonth ?\r\n currentCalendarEntry.Month == 12 ? 1 : currentCalendarEntry.Month + 1 :\r\n currentCalendarEntry.Month == 1 ? 12 : currentCalendarEntry.Month - 1;\r\n let startYear = moveToNextMonth ?\r\n currentCalendarEntry.Month < 12 ? currentCalendarEntry.Year : currentCalendarEntry.Year + 1 :\r\n currentCalendarEntry.Month == 1 ? currentCalendarEntry.Year - 1 : currentCalendarEntry.Year;\r\n\r\n return this.generateCalendarEntries(amountOfMonthToGenerate, startYear, startMonth);\r\n }\r\n\r\n moveCalendarTo(amountOfMonthToGenerate: number, calendarEntry: CalendarEntry): CalendarEntry[] {\r\n const currentCalendarEntry = this.calendar.length > 0 ? this.calendar[0] : this.generateCalendarEntry(new Date().getFullYear(), new Date().getMonth() + 1);\r\n\r\n return this.generateCalendarEntries(amountOfMonthToGenerate, calendarEntry.Year, calendarEntry.Month);\r\n }\r\n\r\n generateCalendarEntries(amountOfMonthToGenerate: number, startYear: number, startMonth: number): CalendarEntry[] {\r\n const calendarEntries = [];\r\n // generate months\r\n for (let calIdx = 0; calIdx < amountOfMonthToGenerate; calIdx++) {\r\n\r\n if (startMonth + calIdx > 12) {\r\n startMonth -= 12;\r\n startYear += 1;\r\n }\r\n const calendarEntry = this.generateCalendarEntry(startYear, startMonth + calIdx);\r\n calendarEntries.push(calendarEntry);\r\n }\r\n return calendarEntries;\r\n }\r\n\r\n generateCalendarEntry(year: number, month: number): CalendarEntry {\r\n const currentCalendarEntry = new CalendarEntry();\r\n currentCalendarEntry.Year = year;\r\n currentCalendarEntry.Month = month;\r\n currentCalendarEntry.MonthName = this.$ml.get('monthName' + currentCalendarEntry.Month);\r\n this.generateWeeksForCalendarEntry(currentCalendarEntry);\r\n return currentCalendarEntry;\r\n }\r\n\r\n generateWeeksForCalendarEntry(calendarEntry: CalendarEntry) {\r\n const weeks = [];\r\n const weeksInStartMonth = this.getAmountOfWeeksInMonth(calendarEntry.Year, calendarEntry.Month);\r\n let lastSavedWeek = 0; //this.allWeeks.length === 0 ? 0 : this.getLastWeekForAMonth(calendarEntry.Month);\r\n let lastSavedDay = 0;\r\n // generate weeks of a month\r\n for (let index = 0; index < weeksInStartMonth - 1; index++) {\r\n const week = new Week();\r\n let day = lastSavedDay == 0 ? 1 : lastSavedDay;\r\n let weeknumber = Moment(calendarEntry.Month + '-' + ActivityHelper.pad2(day) + '-' + calendarEntry.Year, 'MM-DD-YYYY').isoWeek();\r\n if (weeknumber == lastSavedWeek) {\r\n // add up days untili we have the new start week\r\n while (weeknumber == lastSavedWeek) {\r\n day++;\r\n weeknumber = Moment(calendarEntry.Month + '-' + ActivityHelper.pad2(day) + '-' + calendarEntry.Year, 'MM-DD-YYYY').isoWeek();\r\n }\r\n }\r\n week.Week = weeknumber;\r\n week.Name = day + '.' + calendarEntry.Month + '.';\r\n lastSavedWeek = weeknumber;\r\n lastSavedDay = day;\r\n\r\n // don't start year with a december week number. otherwise there will be issues with rendering activityBars\r\n if (!((weeknumber == 53 || weeknumber == 52) && calendarEntry.Month == 1)) {\r\n calendarEntry.Weeks.push(week);\r\n }\r\n }\r\n }\r\n\r\n getAmountOfWeeksInMonth(year: number, month_number: number): number {\r\n var firstOfMonth = new Date(year, month_number - 1, 1);\r\n var lastOfMonth = new Date(year, month_number, 0);\r\n var used = firstOfMonth.getDay() + 6 + lastOfMonth.getDate();\r\n return Math.ceil(used / 7);\r\n }\r\n\r\n getLastWeekForAMonth(currentMonth: number) {\r\n let searchMonth = currentMonth - 1;\r\n let lastWNumber = 0;\r\n if (currentMonth == 1) {\r\n searchMonth = 12;\r\n }\r\n\r\n if (this.calendar && this.calendar.length > 0) {\r\n const weeksFromSearchMonth = this.calendar.filter(ce => ce.Month == searchMonth)[0].Weeks;\r\n if (weeksFromSearchMonth && weeksFromSearchMonth.length > 0)\r\n lastWNumber = weeksFromSearchMonth[weeksFromSearchMonth.length - 1].Week;\r\n }\r\n return lastWNumber;\r\n }\r\n\r\n static getMonthByWeekAndYear(weekNumber: number | undefined | null, year: number): number {\r\n if (weekNumber && weekNumber == 1) {\r\n // first week must allways be in januar (month==1) else we have problems with drawing calendar\r\n return 1;\r\n }\r\n\r\n if (weekNumber && weekNumber > 0) {\r\n const date = Moment().year(year).isoWeek(weekNumber);\r\n return date.month() + 1;\r\n }\r\n else {\r\n return -1\r\n }\r\n }\r\n static getFormatedDateByWeekAndYear(weekNumber: number | undefined | null, year: number): string {\r\n if (weekNumber && weekNumber > 0) {\r\n const date = Moment().year(year).isoWeek(weekNumber);\r\n return date.startOf('isoWeek').format('DD.MM.YYYY');\r\n }\r\n else {\r\n return '?'\r\n }\r\n }\r\n\r\n static getDateByString(date: string): Date {\r\n if (date.length == 10) {\r\n const day = date.substring(0, 2);\r\n const month = date.substring(3, 5);\r\n const year = date.substring(6, 10);\r\n return new Date(Date.UTC(+year, +month - 1, +day));\r\n }\r\n else {\r\n return new Date('NaN');\r\n }\r\n }\r\n\r\n static isStringValidDate(date: string): boolean {\r\n if (date.length == 10) {\r\n const day = date.substring(0, 2)\r\n const month = date.substring(3, 5)\r\n const year = date.substring(6, 10);\r\n const d = new Date(`${month}.${day}.${year}`);\r\n\r\n if (isNaN(d.getTime())) {\r\n return false;\r\n }\r\n else {\r\n return true;\r\n }\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n}","import Moment from 'moment';\r\nimport { ICalendarEntry, IActivity, IWeek, ActivityType } from './../entities/entities';\r\nimport CalendarHelper from './calendarHelper';\r\nexport class ActivityHelper {\r\n static pad2(num: number): string {\r\n return (num < 10 ? '0' : '') + num\r\n }\r\n\r\n public static eligibleToOccurCalendarEntry(calendar: ICalendarEntry[], activity: IActivity, calendarEntry: ICalendarEntry): boolean {\r\n // for correct calculation of activities that occur (not start)\r\n return this.eligibleToStartinCalendarEntry(calendar.filter(c=>c.Month==calendarEntry.Month), activity, calendarEntry, true);\r\n }\r\n\r\n public static eligibleToStartinCalendarEntry(calendar: ICalendarEntry[], activity: IActivity, calendarEntry: ICalendarEntry, placeOnMonth: boolean, week?: IWeek): boolean {\r\n const startWeek = this.startWeek(activity, calendarEntry.Year);\r\n const endWeek = this.endWeek(activity, calendarEntry.Year);\r\n if(startWeek && endWeek){\r\n const activityLastOverYearChange = startWeek > endWeek;\r\n const currentStartMonth = this.startMonth(activity, calendarEntry.Year);\r\n const endMonth =this.endMonth(activity, calendarEntry.Year);\r\n\r\n if (currentStartMonth && endMonth)\r\n {\r\n const activityStart = Number.parseInt(this.pad2(currentStartMonth) + this.pad2(week ? startWeek : 0));\r\n const activityEnd = Number.parseInt(this.pad2(endMonth) + this.pad2((week ? endWeek : 0)));\r\n const calendarPosition = Number.parseInt(this.pad2(calendarEntry.Month) + this.pad2((week ? week.Week : 0)));\r\n const currentMonthIsFirstMonth = calendar[0].Month == calendarEntry.Month;\r\n \r\n let eligible: boolean = false;\r\n if (\r\n (placeOnMonth || (!placeOnMonth && week)) &&\r\n activityStart == calendarPosition) {\r\n // match exact month and/or week\r\n eligible = true;\r\n }\r\n else if (\r\n currentMonthIsFirstMonth &&\r\n (activityStart < calendarPosition || activityLastOverYearChange) &&\r\n (\r\n (week && week.Week == calendarEntry.Weeks[0].Week && \r\n !(week.Week==53&&calendarEntry.Month==1)) || \r\n (!week && placeOnMonth)\r\n ) &&\r\n endMonth >= calendarEntry.Month &&\r\n !activity.PeriodInWeeks) \r\n {\r\n // activity starts earlier than the view (Calendar) is currently presenting\r\n eligible = true;\r\n }\r\n else if (currentMonthIsFirstMonth && \r\n placeOnMonth && \r\n activityLastOverYearChange && \r\n !activity.PeriodInWeeks &&\r\n calendarPosition >= activityStart)\r\n {\r\n // activity starts earlier than the view (Calendar) starts but it is still presenting\r\n eligible =true;\r\n }\r\n else if (!activity.PeriodInWeeks && !placeOnMonth && week && week.Week == calendarEntry.Weeks[0].Week && startWeek <= week.Week) {\r\n // activity starts earlier than the view (Calendar) is currently presenting when weeks are presented\r\n eligible = true;\r\n }\r\n else if (!week &&\r\n currentStartMonth == calendarEntry.Month &&\r\n !currentMonthIsFirstMonth) {\r\n // activity will not start on a week, instead it will start on a month\r\n eligible = true;\r\n }\r\n else if(\r\n placeOnMonth && \r\n currentStartMonth == calendarEntry.Month-1 && \r\n calendarEntry.Weeks.filter(w=>w.Week==activity.StartWeek).length > 0){\r\n // it's possible that we have weeks that belong to 2 month (eg. KW14 2020 belongs to march and april) \r\n // check if activity has startweek that belongs to previous month (and current) \r\n const prevMonth = calendar.filter(x=>x.Month==calendarEntry.Month-1);\r\n if(prevMonth && \r\n prevMonth.length>0 && \r\n prevMonth[0].Weeks[prevMonth[0].Weeks.length-1].Week != calendarEntry.Weeks[0].Week){\r\n // also check that last week of previous month is not the same like firstweek of current month.\r\n eligible =true;\r\n }\r\n }\r\n else if (activity.PeriodInWeeks && week && \r\n (week.Week <= endWeek && week.Week >= startWeek)) {\r\n // occurnace must fit\r\n const mod = (week.Week - startWeek) / activity.PeriodInWeeks;\r\n eligible = mod % 1 === 0; // check if it is a whole number\r\n }\r\n else if (activity.PeriodInWeeks &&\r\n placeOnMonth &&\r\n activityStart <= calendarPosition && \r\n (activityEnd >= calendarPosition || activityLastOverYearChange)) {\r\n // occurance for month not on weeks\r\n eligible = true;\r\n }\r\n else if(activity.PeriodInWeeks && activityLastOverYearChange && (activityEnd >= calendarPosition || activityStart <= calendarPosition))\r\n {\r\n // special case when activity starts and ends during a year eg. march to august\r\n // but origin starts and ends over a year change eg. october to february then activity start will not be smaller than current position\r\n if(placeOnMonth) {\r\n eligible = true;\r\n }\r\n else if(week) \r\n { \r\n // occurnace must fit\r\n const mod = (week.Week - startWeek) / activity.PeriodInWeeks;\r\n eligible = mod % 1 === 0; // check if it is a whole number\r\n }\r\n }\r\n return eligible;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n public static eligibleToPlaceinCalendarEntry(calendar: ICalendarEntry[], activity: IActivity, calendarEntry: ICalendarEntry, placeOnMonth: boolean, week?: IWeek): boolean {\r\n const startWeek = this.startWeek(activity, calendarEntry.Year);\r\n const endWeek = this.endWeek(activity, calendarEntry.Year);\r\n const startMonth = this.startMonth(activity, calendarEntry.Year);\r\n const endMonth = this.endMonth(activity, calendarEntry.Year);\r\n if (startWeek && endWeek &&startMonth &&endMonth){\r\n const activityLastOverYearChange = startWeek > endWeek;\r\n const activityStart = Number.parseInt(this.pad2(startMonth) + this.pad2(week ? startWeek : 0));\r\n const activityEnd = Number.parseInt(this.pad2(endMonth) + this.pad2((week ? endWeek : 0)));\r\n\r\n if (activityStart && activityEnd)\r\n {\r\n const calendarPosition = Number.parseInt(this.pad2(calendarEntry.Month) + this.pad2((week ? week.Week : 0)));\r\n const currentMonthIsFirstMonth = calendar[0].Month == calendarEntry.Month;\r\n\r\n let eligible = false;\r\n if (!activity.PeriodInWeeks &&\r\n (!placeOnMonth && week) &&\r\n startWeek <= week.Week && endWeek >= week.Week) {\r\n // is in between and not a reoccuring activity like fertilizing\r\n eligible = true;\r\n }\r\n else if (!activity.PeriodInWeeks && placeOnMonth && activityStart <= calendarPosition && activityEnd >= calendarPosition){\r\n // month is in between\r\n eligible = true;\r\n }\r\n else if (activity.PeriodInWeeks && week && \r\n (week.Week <= endWeek && week.Week >= startWeek)) {\r\n // occurnace must fit\r\n const mod = (week.Week - startWeek) / activity.PeriodInWeeks;\r\n eligible = mod % 1 === 0; // check if it is a whole number\r\n }\r\n else if (activity.PeriodInWeeks &&\r\n placeOnMonth &&\r\n activityStart <= calendarPosition && \r\n (activityEnd >= calendarPosition || activityLastOverYearChange)) {\r\n // occurance for month not on weeks\r\n eligible = true;\r\n }\r\n else if(activity.PeriodInWeeks && activityLastOverYearChange && (activityEnd >= calendarPosition || activityStart <= calendarPosition))\r\n {\r\n // special case when activity starts and ends during a year eg. march to august\r\n // but origin starts and ends over a year change eg. october to february then activity start will not be smaller than current position\r\n if(placeOnMonth) {\r\n eligible = true;\r\n }\r\n else if(week) \r\n { \r\n // occurnace must fit\r\n const mod = (week.Week - startWeek) / activity.PeriodInWeeks;\r\n eligible = mod % 1 === 0; // check if it is a whole number\r\n }\r\n }\r\n return eligible;\r\n }\r\n }\r\n return false;\r\n }\r\n public static getActivityIcon(acticity: ActivityType): string {\r\n let activityIcon = '/Frontend/Landi/Images/gardencalendar/';\r\n switch (acticity) {\r\n case 1: {\r\n activityIcon += 'anzucht.png'\r\n break;\r\n }\r\n case 2: {\r\n activityIcon += 'aussaat.png'\r\n break;\r\n }\r\n case 3: {\r\n activityIcon += 'pikieren.png'\r\n break;\r\n }\r\n case 4: {\r\n activityIcon += 'bluetezeit.png'\r\n break;\r\n }\r\n case 5: {\r\n activityIcon += 'duengen.png'\r\n break;\r\n }\r\n case 6: {\r\n activityIcon += 'ernten.png'\r\n break;\r\n }\r\n case 7: {\r\n activityIcon += 'rueckschnitt.png'\r\n break;\r\n }\r\n case 8: {\r\n activityIcon += 'einwintern.png'\r\n break;\r\n }\r\n case 9: {\r\n activityIcon += 'auswintern.png'\r\n break;\r\n }\r\n }\r\n return activityIcon;\r\n }\r\n\r\n public static startWeek(activity: IActivity, year: number): number | undefined | null{\r\n const activityStartedLastYear = activity.StartWeek > activity.EndWeek;\r\n const startWeek = this.endYear(activity) + (activityStartedLastYear ? 1 : 0) == year ? activity.StartWeek : activity.OriginStartWeek;\r\n return startWeek;\r\n }\r\n\r\n public static endWeek(activity: IActivity, year: number): number | undefined | null{\r\n const activityStartedLastYear = activity.StartWeek > activity.EndWeek;\r\n const endWeek = this.endYear(activity) + (activityStartedLastYear ? 1 : 0) == year ? activity.EndWeek : activity.OriginEndWeek;\r\n return endWeek;\r\n }\r\n\r\n public static endMonth(activity: IActivity, year: number): number | undefined | null{\r\n return CalendarHelper.getMonthByWeekAndYear(this.endWeek(activity, year), year);\r\n };\r\n public static startMonth(activity: IActivity, year: number): number | undefined | null {\r\n return CalendarHelper.getMonthByWeekAndYear(this.startWeek(activity, year), year);\r\n };\r\n public static endYear(activity: IActivity): number {\r\n const startWeek = activity.StartWeek;//this.startWeek(activity, activity.StartYear);\r\n const endWeek = activity.EndWeek;//this.endWeek(activity, activity.StartYear);\r\n return startWeek > endWeek ? activity.StartYear + 1 : activity.StartYear;\r\n };\r\n\r\n public static generateActivityEndpointClassName(activity: IActivity, gardenId: number): string {\r\n return 'actvityBarEndpoint-' + gardenId + '-' + activity.CompositionId + '-' + activity.ActivityType;\r\n }\r\n}","export const STORE_MUTATIONS = {\r\n SET_GARDEN: \"SET_GARDEN\",\r\n SET_GARDEN_BAD_NEIGHBOURS: \"SET_GARDEN_BAD_NEIGHBOURS\",\r\n SET_SELECTED_ACTIVITY_TYPE: \"SET_SELECTED_ACTIVITY_TYPE\",\r\n GENERATE_CALENDAR: \"GENERATE_CALENDAR\",\r\n MOVE_CALENDAR_NEXT: \"MOVE_CALENDAR_NEXT\",\r\n MOVE_CALENDAR_PREV: \"MOVE_CALENDAR_PREV\",\r\n MOVE_CALENDAR_TO: \"MOVE_CALENDAR_TO\",\r\n SET_MONTH_TO_SHOW: \"SET_MONTH_TO_SHOW\",\r\n SWITCH_CALENDAR_VIEW: \"SWITCH_CALENDAR_VIEW\",\r\n SEARCH_PLANT_BY_TEXT: \"SEARCH_PLANT_BY_TEXT\",\r\n ADD_PLANT: \"ADD_PLANT\",\r\n SET_GARDEN_GEOID: \"SET_GARDEN_GEOID\",\r\n SET_GARDEN_WEATHER: \"SET_GARDEN_WEATHER\",\r\n SET_GARDEN_WEEK_WEATHER: \"SET_GARDEN_WEEK_WEATHER\",\r\n SET_ATTRIBUTES: \"SET_ATTRIBUTES\",\r\n LOAD_USER_ADDRESS: \"LOAD_USER_ADDRESS\",\r\n DELETE_GARDEN: \"DELETE_GARDEN\",\r\n DELETE_PLANT: \"DELETE_PLANT\",\r\n MOVE_PLANT: \"MOVE_PLANT\",\r\n DUPLICATE_PLANT: \"DUPLICATE_PLANT\",\r\n CREATE_NEW_GARDEN_FROM_ENTRYPAGE: \"CREATE_NEW_GARDEN_FROM_ENTRYPAGE\",\r\n SET_USER_IS_LOGGED_IN: \"SET_USER_IS_LOGGED_IN\",\r\n SHOW_ACTIVITY_MODAL: \"SHOW_ACTIVITY_MODAL\",\r\n SET_PLACEHOLDER_IMAGE_URL: \"SET_PLACEHOLDER_IMAGE_URL\",\r\n SET_HAS_ANSWERED_USER_COMPETITION: \"SET_HAS_ANSWERED_USER_COMPETITION\",\r\n SET_PLANT_CONFLICTS: \"SET_PLANT_CONFLICTS\",\r\n SET_DESTINATION_ID: \"SET_DESTINATION_ID\",\r\n SET_PRODUCT_GROUPS: \"SET_PRODUCT_GROUPS\",\r\n}","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { mapGetters } from 'vuex';\r\nimport { Component, Prop, Vue, Watch, Mixins } from 'vue-property-decorator';\r\nimport {\r\n IGarden,\r\n IActivity,\r\n ICalendarEntry,\r\n IPlant,\r\n IWeek\r\n} from '../../entities/entities';\r\nimport { STORE_ACTIONS } from '../../store/storeActions';\r\nimport CalendarMonthDrawModeMixin from '../../mixins/CalendarMonthDrawMode';\r\nimport {ActivityHelper} from '../../helpers/activityHelper';\r\nimport CalendarHelper from '../../helpers/calendarHelper';\r\nimport { STORE_MUTATIONS } from '../../store/storeMutations';\r\ndeclare var $ml: any;\r\ndeclare var $: any;\r\n\r\n@Component({\r\n})\r\nexport default class CalendarActivityBar extends Mixins(CalendarMonthDrawModeMixin) {\r\n @Prop() activity!: IActivity;\r\n @Prop() private week!: IWeek;\r\n @Prop() calendarEntry!: ICalendarEntry;\r\n @Prop() drawMode!: number;\r\n @Prop() drawWholeMonth!: boolean;\r\n @Prop() placeOnMonth!: boolean;\r\n @Prop() gardenId!: number;\r\n @Prop() calendar!: ICalendarEntry[];\r\n\r\n $ml: any;\r\n width: number = 0;\r\n\r\n mounted() {\r\n this.$nextTick(function() {\r\n // Code that will run only after the\r\n // entire view has been rendered\r\n this.calcultateAndSetWith();\r\n });\r\n\r\n window.removeEventListener('resize', this.calcultateAndSetWith);\r\n window.addEventListener('resize', this.calcultateAndSetWith);\r\n }\r\n\r\n updated() {\r\n this.$nextTick(function() {\r\n // Code that will run only after the\r\n // entire view has been rendered\r\n this.calcultateAndSetWith();\r\n });\r\n }\r\n\r\n startMonth(){\r\n return ActivityHelper.startMonth(this.activity, this.calendarEntry.Year)\r\n }\r\n\r\n endMonth(){\r\n return ActivityHelper.endMonth(this.activity, this.calendarEntry.Year)\r\n }\r\n\r\n calcultateAndSetWith() {\r\n if (this.activity) {\r\n // first we get the element where activityBar should end. This Endpoint is located in a div.\r\n // the ActivityBar must cover the full div where the Endpoint is located.\r\n const endPointClassname = ActivityHelper.generateActivityEndpointClassName(this.activity, this.gardenId);\r\n const endpoint = document.getElementsByClassName(endPointClassname) as any;\r\n if (endpoint && endpoint.length > 0) {\r\n let width = -1;\r\n endpoint.forEach((e: any) => {\r\n if (width < 0) {\r\n width = e.parentElement ? e.parentElement.offsetLeft + e.parentElement.offsetWidth - (this.$el as any).offsetLeft : 0;\r\n }\r\n });\r\n this.width = width;\r\n } \r\n else if (this.activity.PeriodInWeeks || endpoint.length == 0) {\r\n // occurance is always one week/month\r\n this.width = (this.$el as any).parentElement ? (this.$el as any).parentElement.offsetWidth : 0;\r\n }\r\n }\r\n }\r\n\r\n showActivityModal() {\r\n this.$store.commit(STORE_MUTATIONS.SHOW_ACTIVITY_MODAL, this.activity)\r\n\r\n this.$nextTick(function() {\r\n $(\"#activity-modal\")\r\n .detach()\r\n .appendTo(\"body\")\r\n .modal(\"show\");\r\n\r\n $(\"#activity-modal\").css(\"padding-right\", 0);\r\n $(\"body\").css(\"padding-right\", 0);\r\n });\r\n }\r\n \r\n get eligibleToDrawActivityBar(): boolean {\r\n if(this.activity.CompositionId == -1) {\r\n return false;\r\n }\r\n return ActivityHelper.eligibleToStartinCalendarEntry(this.calendar, this.activity, this.calendarEntry, this.placeOnMonth, this.week)\r\n }\r\n\r\n get eligibleToPlaceActivityBar(): boolean {\r\n if(this.activity.CompositionId == -1) {\r\n return false;\r\n }\r\n return ActivityHelper.eligibleToPlaceinCalendarEntry(this.calendar, this.activity, this.calendarEntry, this.placeOnMonth, this.week)\r\n }\r\n\r\n get cssClassActivityType(): string {\r\n return 'activityType-' + this.activity.ActivityType;\r\n }\r\n\r\n get activityIcon(): string {\r\n return ActivityHelper.getActivityIcon(this.activity.ActivityType);\r\n }\r\n\r\n get activityBarText(): string {\r\n let monthNameStart = this.$ml.get('monthNameLong'+ this.startMonth()),\r\n monthNameEnd = this.$ml.get('monthNameLong'+ this.endMonth());\r\n \r\n if (this.startMonth() == this.endMonth()) {\r\n return monthNameStart;\r\n }\r\n\r\n return monthNameStart + ' - ' + monthNameEnd;\r\n }\r\n\r\n get activityBarActivityText(): string {\r\n return this.$ml.get('activityType' + this.activity.ActivityType);\r\n }\r\n}\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CalendarActivityBar.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CalendarActivityBar.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CalendarActivityBar.vue?vue&type=template&id=1abecd43&scoped=true&\"\nimport script from \"./CalendarActivityBar.vue?vue&type=script&lang=ts&\"\nexport * from \"./CalendarActivityBar.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CalendarActivityBar.vue?vue&type=style&index=0&id=1abecd43&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1abecd43\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.eligibleToPlaceActivityBarEndPoint)?_c('span',{class:_vm.cssClass}):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\r\nimport { mapGetters } from 'vuex';\r\nimport { Component, Prop, Vue } from 'vue-property-decorator';\r\nimport { IWeek, IActivity, ICalendarEntry } from '../../entities/entities';\r\nimport { ActivityHelper } from '../../helpers/activityHelper';\r\n\r\n@Component({\r\n \r\n})\r\nexport default class CalendarActivityBarEndpoint extends Vue {\r\n @Prop() private activity!: IActivity;\r\n @Prop() private week!: IWeek;\r\n @Prop() calendarEntry!: ICalendarEntry;\r\n @Prop() calendar!: ICalendarEntry[];\r\n @Prop() gardenId!: number;\r\n\r\n get cssClass(): string {\r\n return ActivityHelper.generateActivityEndpointClassName(this.activity, this.gardenId);\r\n }\r\n\r\n get eligibleToPlaceActivityBarEndPoint(): boolean {\r\n if (!this.activity) {\r\n return false;\r\n }\r\n if (this.activity.PeriodInWeeks) {\r\n // recuring activities always last 1 week\r\n return false;\r\n }\r\n\r\n const lastMonthinView = this.calendar[this.calendar.length - 1].Month;\r\n const eligibleByWeek = this.week && this.activity.EndWeek === this.week.Week;\r\n const endMonth = ActivityHelper.endMonth(this.activity, this.calendarEntry.Year);\r\n const eliglbleByMonth =\r\n endMonth === this.calendarEntry.Month ||\r\n (endMonth && endMonth > lastMonthinView &&\r\n this.calendarEntry.Month === lastMonthinView);\r\n\r\n const eligibleByEndOfYearEdgeCase = \r\n endMonth &&\r\n endMonth < lastMonthinView && \r\n ActivityHelper.endYear(this.activity) >= this.calendarEntry.Year && \r\n this.calendarEntry.Month === lastMonthinView && \r\n !this.week;\r\n \r\n const shouldDraw = ((eligibleByWeek && this.week) || !this.week) && eliglbleByMonth;\r\n const eligibleByWeekInOneMonthView = this.calendar.length == 1 && \r\n this.week && this.calendarEntry.Weeks && \r\n this.week.Week == this.calendarEntry.Weeks[this.calendarEntry.Weeks.length-1].Week\r\n \r\n if (!shouldDraw && eligibleByEndOfYearEdgeCase) {\r\n return true;\r\n }\r\n\r\n if (!shouldDraw && eligibleByWeekInOneMonthView) {\r\n // in case there is only one month in view that presents weeks \r\n return true;\r\n }\r\n return shouldDraw ? shouldDraw : false;\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CalendarActivityBarEndpoint.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CalendarActivityBarEndpoint.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CalendarActivityBarEndpoint.vue?vue&type=template&id=fd7daa56&\"\nimport script from \"./CalendarActivityBarEndpoint.vue?vue&type=script&lang=ts&\"\nexport * from \"./CalendarActivityBarEndpoint.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { mapGetters } from 'vuex';\r\nimport { Component, Prop, Vue, Mixins } from 'vue-property-decorator';\r\nimport { ICalendarEntry, IWeek, IActivity } from '../../entities/entities';\r\nimport CalendarActivityBar from './CalendarActivityBar.vue';\r\nimport CalendarActivityBarEndpoint from './CalendarActivityBarEndpoint.vue';\r\nimport CalendarMonthDrawModeMixin from '../../mixins/CalendarMonthDrawMode';\r\nimport { STORE_ACTIONS } from '../../store/storeActions';\r\n\r\n@Component({\r\n components: {\r\n 'calendar-activitybar': CalendarActivityBar,\r\n 'calendar-activitybar-endpoint': CalendarActivityBarEndpoint\r\n }\r\n})\r\nexport default class CalendarWeeks extends Mixins(CalendarMonthDrawModeMixin) {\r\n @Prop() activity!: IActivity;\r\n @Prop() calendarEntry!: ICalendarEntry;\r\n @Prop() drawMode!: Number;\r\n @Prop() gardenId!: Number;\r\n @Prop() calendar!: ICalendarEntry[];\r\n\r\n cssClass(week: IWeek) {\r\n if (week.Week == this.getNumberOfWeek()) {\r\n if (this.drawMode === this.CalendarMonthDrawMode_WeekNamesAndEmptyMonth) {\r\n return 'active-header';\r\n } else if (this.drawMode === this.CalendarMonthDrawMode_ActivityBars) {\r\n return 'active';\r\n }\r\n }\r\n return '';\r\n }\r\n\r\n weekFormated(week: IWeek): string {\r\n return week.Week < 10 ? '0'+ week.Week.toString() : week.Week.toString()\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CalendarMonthsWeeks.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CalendarMonthsWeeks.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CalendarMonthsWeeks.vue?vue&type=template&id=14759d7a&scoped=true&\"\nimport script from \"./CalendarMonthsWeeks.vue?vue&type=script&lang=ts&\"\nexport * from \"./CalendarMonthsWeeks.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CalendarMonthsWeeks.vue?vue&type=style&index=0&id=14759d7a&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"14759d7a\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { mapGetters } from 'vuex';\r\nimport { Component, Prop, Mixins } from 'vue-property-decorator';\r\nimport { ICalendarEntry, IActivity, CalendarView } from '../../entities/entities';\r\nimport CalendarWeeks from './CalendarMonthsWeeks.vue';\r\nimport CalendarActivityBarEndpoint from './CalendarActivityBarEndpoint.vue';\r\nimport CalendarActivityBar from './CalendarActivityBar.vue';\r\nimport CalendarMonthDrawModeMixin from '../../mixins/CalendarMonthDrawMode';\r\nimport CalendarHelper from '../../helpers/calendarHelper';\r\nimport { ActivityHelper } from '../../helpers/activityHelper';\r\n\r\n@Component({\r\n components: { \r\n 'calendar-weeks': CalendarWeeks, \r\n 'calendar-activitybar-endpoint': CalendarActivityBarEndpoint, \r\n 'calendar-activitybar': CalendarActivityBar },\r\n mixins: [CalendarMonthDrawModeMixin],\r\n computed: {\r\n ...mapGetters({\r\n currentView: 'currentView'\r\n })\r\n }\r\n})\r\nexport default class CalendarMonths extends Mixins(CalendarMonthDrawModeMixin) {\r\n @Prop() activity!: IActivity;\r\n @Prop() calendar!: ICalendarEntry[];\r\n @Prop() drawMode!: Number;\r\n @Prop() gardenId!: Number;\r\n @Prop() activitiesForCurrentCalendarView!: IActivity[];\r\n \r\n currentView!: CalendarView;\r\n\r\n placeActivityBarsOnMonth(month: number): boolean {\r\n // if it's monthly view with 3 Month\r\n if (this.isMonthView && month === this.calendar[0].Month) {\r\n return false;\r\n } \r\n else if (this.calendar.length === 3 && month > this.calendar[0].Month) {\r\n return true;\r\n }\r\n // if it's year view with 12 Month\r\n return true;\r\n }\r\n\r\n cssClass(calendarIdx: number): string {\r\n let cssClass = this.isMonthView ? (calendarIdx === 0 ? 'gp-month-expanded' : 'gp-month-collapsed') : 'gp-month-collapsed';\r\n if (\r\n this.drawMode === this.CalendarMonthDrawMode_WeekNamesAndEmptyMonth ||\r\n this.drawMode === this.CalendarMonthDrawMode_ActivityBars\r\n ) {\r\n cssClass += ' gp-month';\r\n }\r\n\r\n if(this.drawMode === this.CalendarMonthDrawMode_WeekNamesAndEmptyMonth){\r\n cssClass += ' gp-month-no-border-bottom';\r\n }\r\n return cssClass;\r\n }\r\n\r\n cssClassMonth(calendarEntry: ICalendarEntry, calendarIdx: number): string {\r\n if (this.getNumberOfMonth() == calendarEntry.Month) {\r\n return 'month-active-header';\r\n }\r\n if (calendarIdx == 0) {\r\n return 'month-header-first';\r\n }\r\n return '';\r\n }\r\n\r\n get isMonthView() {\r\n return this.currentView == CalendarView.Month;\r\n }\r\n\r\n amountOfActivities(cal: ICalendarEntry): string{\r\n if(this.activitiesForCurrentCalendarView) {\r\n return this.activitiesForCurrentCalendarView.filter(a=> \r\n a.GardenId == this.gardenId && \r\n ActivityHelper.eligibleToOccurCalendarEntry(this.calendar, a, cal)).length.toString()\r\n }\r\n return '?';\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CalendarMonths.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CalendarMonths.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CalendarMonths.vue?vue&type=template&id=2f3a5d8a&scoped=true&\"\nimport script from \"./CalendarMonths.vue?vue&type=script&lang=ts&\"\nexport * from \"./CalendarMonths.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CalendarMonths.vue?vue&type=style&index=0&id=2f3a5d8a&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2f3a5d8a\",\n null\n \n)\n\nexport default component.exports","import { ScreenResolution } from './../entities/entities';\r\nexport default class ScreenHelper {\r\n public static screenResulution(): ScreenResolution {\r\n // capture different screen sizes. not only css also js must react differently\r\n let resulution = ScreenResolution.Desktop;\r\n var w = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\r\n if (w < 768)\r\n {\r\n resulution = ScreenResolution.Phone;\r\n }\r\n else if (w >= 768 && w <= 991)\r\n {\r\n resulution = ScreenResolution.Tablet;\r\n }\r\n return resulution;\r\n }\r\n}","import { Vue } from \"vue-property-decorator\";\r\ndeclare var $: any;\r\n\r\ninterface TutorialStep {\r\n asAbsolute: boolean;\r\n target: string,\r\n content: string,\r\n position: string,\r\n onShow: () => void;\r\n onHide: (isDone: boolean) => void;\r\n}\r\n\r\nexport default class TutorialHelper {\r\n public static SHOW_TUTORIAL_KEY: string = 'show_tutorial';\r\n public static DONE_TUTORIAL_KEY: string = 'done_tutorial';\r\n\r\n public static started = false;\r\n\r\n public static startTutorial(key: string, steps: TutorialStep[]) {\r\n if (!this.hasConsent()) {\r\n return;\r\n }\r\n\r\n if (steps.length === 0) {\r\n return;\r\n }\r\n\r\n this.started = true;\r\n this.setDone(key);\r\n\r\n console.debug(`start ${key}`);\r\n\r\n var onShow = (stepAsAbsolute: boolean, anno: any, target: any, annoElement: any) => {\r\n if(target.attr('id') == 'add-plant-to-calendar') {\r\n $('#add-plant-toggle').children().first().trigger(\"click\");\r\n }\r\n\r\n if(stepAsAbsolute)\r\n {\r\n target.css('position', 'absolute');\r\n // target.css('top', '0');\r\n // target.css('left', '0');\r\n }\r\n else{\r\n target.css('position', 'relative');\r\n }\r\n\r\n target.addClass('anno-tutorial-placeholder');\r\n\r\n // refresh positions now and after\r\n\r\n anno.positionAnnoElem(annoElement);\r\n setTimeout(() => { \r\n anno.positionAnnoElem(annoElement);\r\n }, 1000);\r\n }\r\n\r\n var onHide = (isDone: boolean, anno: any, target: any, annoElement: any) => {\r\n target.css('position', '');\r\n target.removeClass('anno-tutorial-placeholder');\r\n\r\n if (isDone){\r\n this.started = false;\r\n }\r\n }\r\n\r\n const enrichedSteps = steps.map(step => ({\r\n ...step, \r\n onShow: (anno: any, target: any, annoElement: any) => {\r\n onShow(step.asAbsolute, anno, target, annoElement); \r\n step.onShow();\r\n }, \r\n onHide: (anno: any, target: any, annoElement: any) => {\r\n const isDone = !anno._chainNext;\r\n onHide(isDone, anno, target, annoElement); \r\n step.onHide(isDone);\r\n }, \r\n }));\r\n var anno = new Vue.prototype.Anno(enrichedSteps);\r\n\r\n anno.show();\r\n }\r\n\r\n public static stop() {\r\n $('.anno-overlay').remove();\r\n }\r\n\r\n public static hasAnsweredConsent() {\r\n const item = localStorage.getItem(this.SHOW_TUTORIAL_KEY);\r\n\r\n return !!item;\r\n }\r\n\r\n public static hasConsent() {\r\n const item = localStorage.getItem(this.SHOW_TUTORIAL_KEY);\r\n\r\n return !!item && item === 'true';\r\n }\r\n\r\n public static consentTutorial() {\r\n localStorage.setItem(this.SHOW_TUTORIAL_KEY, 'true');\r\n }\r\n\r\n public static refuseTutorial() {\r\n localStorage.setItem(this.SHOW_TUTORIAL_KEY, 'false');\r\n }\r\n\r\n public static hasDone(key: string) {\r\n const json = localStorage.getItem(this.DONE_TUTORIAL_KEY);\r\n \r\n if(!!json) {\r\n const obj = JSON.parse(json);\r\n return !!obj[key];\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public static setDone(key: string) {\r\n const json = localStorage.getItem(this.DONE_TUTORIAL_KEY);\r\n \r\n let obj: Record = {};\r\n\r\n if(!!json) {\r\n obj = JSON.parse(json);\r\n }\r\n\r\n obj[key] = true;\r\n\r\n localStorage.setItem(this.DONE_TUTORIAL_KEY, JSON.stringify(obj));\r\n }\r\n}","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"context-icon-btn\",on:{\"click\":function($event){return _vm.openContextMenu(_vm.gardenIdx, _vm.plantIdx)}}},[_c('v-icon',{staticClass:\"ellipsis\",attrs:{\"name\":\"ellipsis-v\",\"color\":\"grey\"}})],1),_c('div',{staticClass:\"menu\",attrs:{\"id\":'plant-menu-' + _vm.gardenIdx + '-' + _vm.plantIdx}},[_c('ul',{staticClass:\"menu-options\"},[_c('li',{staticClass:\"menu-option\",on:{\"click\":function($event){return _vm.$emit('buy-plant',_vm.plant)}}},[_c('div',{staticClass:\"inline-flex\"},[_c('v-icon',{staticStyle:{\"cursor\":\"pointer\"},attrs:{\"name\":\"shopping-cart\",\"scale\":\"1\"}}),(_vm.plant.ProductPlantId)?_c('span',{staticClass:\"menu-entry\",domProps:{\"textContent\":_vm._s(_vm.$ml.get('plantMenuOrder'))}}):_vm._e(),(_vm.plant.CustomPlantId)?_c('span',{staticClass:\"menu-entry\",domProps:{\"textContent\":_vm._s(_vm.$ml.get('plantMenuDetail'))}}):_vm._e()],1)]),_c('li',{staticClass:\"menu-option edit-plant\",on:{\"click\":function($event){return _vm.$emit('edit-plant',_vm.plant)}}},[_c('div',{staticClass:\"inline-flex\"},[_c('v-icon',{staticStyle:{\"cursor\":\"pointer\"},attrs:{\"name\":\"edit\",\"scale\":\"1\"}}),_c('span',{staticClass:\"menu-entry\",domProps:{\"textContent\":_vm._s(_vm.$ml.get('plantMenuEdit'))}})],1)]),_c('li',{staticClass:\"menu-option\",on:{\"click\":function($event){return _vm.$emit('duplicate-plant',_vm.plant)}}},[_c('div',{staticClass:\"inline-flex\"},[_c('v-icon',{staticStyle:{\"cursor\":\"pointer\"},attrs:{\"name\":\"copy\",\"scale\":\"1\"}}),_c('span',{staticClass:\"menu-entry\",domProps:{\"textContent\":_vm._s(_vm.$ml.get('plantMenuDuplicate',_vm.plant))}})],1)]),_c('li',{staticClass:\"menu-option\",on:{\"click\":function($event){return _vm.$emit('move-plant',_vm.plant)}}},[_c('div',{staticClass:\"inline-flex\"},[_c('v-icon',{staticStyle:{\"cursor\":\"pointer\"},attrs:{\"name\":\"file-export\",\"scale\":\"1\"}}),_c('span',{staticClass:\"menu-entry\",domProps:{\"textContent\":_vm._s(_vm.$ml.get('plantMenuMove',_vm.plant))}})],1)]),_c('li',{staticClass:\"menu-option\",on:{\"click\":function($event){return _vm.$emit('delete-plant',_vm.plant)}}},[_c('div',{staticClass:\"inline-flex\"},[_c('v-icon',{staticStyle:{\"cursor\":\"pointer\"},attrs:{\"name\":\"times\",\"scale\":\"1\"}}),_c('span',{staticClass:\"menu-entry\",domProps:{\"textContent\":_vm._s(_vm.$ml.get('plantMenuDelete'))}})],1)])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Prop, Vue } from 'vue-property-decorator';\r\nimport Icon from 'vue-awesome/components/Icon.vue';\r\nimport { IPlant, ScreenResolution, } from '../../entities/entities';\r\nimport ScreenHelper from \"../../helpers/screenHelper\";\r\ndeclare var $ml: any;\r\n\r\n@Component({\r\n components: {\r\n 'v-icon': Icon\r\n }\r\n})\r\nexport default class PlantContextMenu extends Vue {\r\n @Prop({ required: true })\r\n plant!: IPlant;\r\n\r\n @Prop()\r\n gardenIdx!: number;\r\n\r\n @Prop()\r\n plantIdx!: number;\r\n\r\n openContextMenu(gardenIdx: number, plantIdx: number) {\r\n let menu = document.getElementById(\r\n 'plant-menu-' + gardenIdx + '-' + plantIdx\r\n );\r\n\r\n let display = menu && menu.style.display;\r\n\r\n var menus = document.getElementsByClassName('menu');\r\n for (let el = 0; el < menus.length; el++) {\r\n const element = menus[el];\r\n element.style.display = 'none';\r\n }\r\n if (menu) {\r\n menu.style.display = display != 'block' ? 'block' : 'none';\r\n }\r\n }\r\n\r\n isMobile() {\r\n return ScreenHelper.screenResulution() === ScreenResolution.Phone; \r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PlantContextMenu.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PlantContextMenu.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PlantContextMenu.vue?vue&type=template&id=ffffcf6c&scoped=true&\"\nimport script from \"./PlantContextMenu.vue?vue&type=script&lang=ts&\"\nexport * from \"./PlantContextMenu.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PlantContextMenu.vue?vue&type=style&index=0&id=ffffcf6c&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ffffcf6c\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"context-icon-btn\",on:{\"click\":function($event){return _vm.openGardenContextMenu(_vm.gardenIdx)}}},[_c('v-icon',{staticClass:\"ellipsis\",attrs:{\"name\":\"ellipsis-v\",\"color\":\"grey\"}})],1),_c('div',{staticClass:\"menu\",attrs:{\"id\":'garden-menu-' + _vm.gardenIdx}},[_c('ul',{staticClass:\"menu-options\"},[_c('li',{staticClass:\"menu-option\",on:{\"click\":function($event){return _vm.$emit('edit-garden',_vm.garden)}}},[_c('div',{staticClass:\"inline-flex\"},[_c('v-icon',{staticStyle:{\"cursor\":\"pointer\"},attrs:{\"name\":\"edit\",\"scale\":\"1\"}}),_c('span',{staticClass:\"menu-entry\",domProps:{\"textContent\":_vm._s(_vm.$ml.get('gardenMenuOrder'))}})],1)]),_c('li',{staticClass:\"menu-option\",on:{\"click\":function($event){return _vm.$emit('duplicate-garden',_vm.garden)}}},[_c('div',{staticClass:\"inline-flex\"},[_c('v-icon',{staticStyle:{\"cursor\":\"pointer\"},attrs:{\"name\":\"copy\",\"scale\":\"1\"}}),_c('span',{staticClass:\"menu-entry\",domProps:{\"textContent\":_vm._s(_vm.$ml.get('gardenMenuDuplicate'))}})],1)]),_c('li',{staticClass:\"menu-option\",on:{\"click\":function($event){return _vm.$emit('delete-garden',_vm.garden)}}},[_c('div',{staticClass:\"inline-flex\"},[_c('v-icon',{staticStyle:{\"cursor\":\"pointer\"},attrs:{\"name\":\"times\",\"scale\":\"1\"}}),_c('span',{staticClass:\"menu-entry\",domProps:{\"textContent\":_vm._s(_vm.$ml.get('gardenMenuDelete'))}})],1)])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Prop, Vue } from 'vue-property-decorator';\r\nimport Icon from 'vue-awesome/components/Icon.vue';\r\nimport { IGarden, ScreenResolution, } from '../../entities/entities';\r\nimport ScreenHelper from \"../../helpers/screenHelper\";\r\n\r\n@Component({\r\n components: {\r\n 'v-icon': Icon\r\n }\r\n})\r\nexport default class GardenContextMenu extends Vue {\r\n @Prop()\r\n gardenIdx!: number;\r\n\r\n @Prop()\r\n garden!: IGarden;\r\n\r\n openGardenContextMenu(gardenIdx: number) {\r\n let menu = document.getElementById('garden-menu-' + gardenIdx);\r\n\r\n let display = menu && menu.style.display;\r\n\r\n var menus = document.getElementsByClassName('menu');\r\n for (let el = 0; el < menus.length; el++) {\r\n const element = menus[el];\r\n element.style.display = 'none';\r\n }\r\n\r\n if (menu) {\r\n menu.style.display = display != 'block' ? 'block' : 'none';\r\n }\r\n }\r\n\r\n isMobile() {\r\n return ScreenHelper.screenResulution() === ScreenResolution.Phone; \r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GardenContextMenu.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GardenContextMenu.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./GardenContextMenu.vue?vue&type=template&id=c6e79b42&scoped=true&\"\nimport script from \"./GardenContextMenu.vue?vue&type=script&lang=ts&\"\nexport * from \"./GardenContextMenu.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./GardenContextMenu.vue?vue&type=style&index=0&id=c6e79b42&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"c6e79b42\",\n null\n \n)\n\nexport default component.exports","export function debounce(cb: T, wait = 20) {\r\n let h = 0;\r\n let callable = (...args: any) => {\r\n clearTimeout(h);\r\n h = setTimeout(() => cb(...args), wait);\r\n };\r\n return (callable);\r\n}\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"modal fade modal-big\",staticStyle:{\"padding-right\":\"0px !important\"},attrs:{\"id\":\"the-modal\",\"tabindex\":\"-1\",\"role\":\"dialog\",\"aria-hidden\":\"false\"}},[_c('div',{staticClass:\"modal-dialog\",class:_vm.modalCssClass},[_c('div',{staticClass:\"modal-content\"},[_c('div',{staticClass:\"modal-header\"},[_vm._m(0),_c('span',[_vm._v(_vm._s(_vm.title))])]),_c('div',{staticClass:\"modal-body\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-12\"},[_vm._t(\"default\")],2)])])])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('button',{staticClass:\"close\",attrs:{\"type\":\"button\",\"data-dismiss\":\"modal\",\"aria-label\":\"Close\"}},[_c('span',{attrs:{\"aria-hidden\":\"true\"}},[_vm._v(\"×\")])])}]\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Vue, Prop } from 'vue-property-decorator';\r\ndeclare var $: any;\r\n\r\n@Component({\r\n components: {}\r\n})\r\nexport default class CalendarEditPlantModal extends Vue {\r\n title: string = '';\r\n @Prop({ required: true, default: 0 })\r\n modalsize!: number;\r\n\r\n get modalCssClass(): string {\r\n switch (this.modalsize) {\r\n case 0:\r\n return '';\r\n break;\r\n case 1:\r\n return 'modal-small';\r\n case 2:\r\n return 'modal-medium';\r\n default:\r\n return '';\r\n break;\r\n }\r\n }\r\n\r\n openModal() {\r\n this.$nextTick(function() {\r\n if (\r\n $('#the-modal')\r\n .parent()\r\n .attr('id') == 'ReverseProxyPortal-Content'\r\n ) {\r\n $('#the-modal').modal('show');\r\n } else {\r\n // needs to be moved because otherwise it will be overlapped by navigation\r\n $('#the-modal')\r\n .detach()\r\n .appendTo('body')\r\n .modal('show');\r\n }\r\n\r\n // todo: find out who the f**k is setting a padding when opening a modalview\r\n $('#the-modal').css('padding-right', 0);\r\n $('body').css('padding-right', 0);\r\n });\r\n }\r\n\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheModal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TheModal.vue?vue&type=template&id=32372392&\"\nimport script from \"./TheModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./TheModal.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (this.plant)?_c('div',[(_vm.plant.ProductPlantId != null || !_vm.plant.PlantBelongToUser)?_c('landi-plant-edit',{attrs:{\"plant\":_vm.plant}}):_vm._e(),(_vm.plant.CustomPlantId != null && _vm.plant.PlantBelongToUser)?_c('custom-plant-edit',{attrs:{\"gardenId\":_vm.plant.GardenId,\"customPlant\":_vm.customPlant,\"compositionId\":_vm.plant.CompositionId,\"initSeedingDate\":_vm.plant.SeedingDate}}):_vm._e()],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (this.plant)?_c('div',[_c('div',{staticClass:\"panel panel-gray\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-6 col-xs-12\"},[_c('img',{staticClass:\"full-image\",attrs:{\"src\":_vm.plant.ImageUrl}}),_c('br'),_c('label',[_vm._v(_vm._s(_vm.$ml.get(\"customPlantFormSeedingDate\")))]),_c('div',{staticClass:\"input-group seeding-datepicker-input-group\"},[_c('span',{staticClass:\"input-group-addon\",attrs:{\"id\":\"basic-addon1\"}},[_c('v-icon',{staticClass:\"calendar-icon\",attrs:{\"name\":\"calendar-alt\"}})],1),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.seedingDate),expression:\"seedingDate\"}],staticClass:\"form-control seeding-datepicker\",attrs:{\"type\":\"text\",\"data-mapping\":\"seedingDate\"},domProps:{\"value\":(_vm.seedingDate)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.seedingDate=$event.target.value}}})])]),_c('div',{staticClass:\"col-md-6 col-xs-12\"},[_c('div',{staticClass:\"form-group grid-padding\"},[_c('label',[_vm._v(_vm._s(_vm.$ml.get(\"landiPlantName\")))]),_c('input',{staticClass:\"form-control\",attrs:{\"type\":\"text\",\"disabled\":\"\"},domProps:{\"value\":_vm.plant.Name}}),_c('label',[_vm._v(_vm._s(_vm.$ml.get(\"landiPlantComment\")))]),_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.plant.Description),expression:\"plant.Description\"}],staticClass:\"form-control\",attrs:{\"rows\":\"4\",\"cols\":\"50\"},domProps:{\"value\":(_vm.plant.Description)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.plant, \"Description\", $event.target.value)}}})])])]),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-xs-12\"},[(_vm.fertilizing)?_c('div',{staticClass:\"form-group\"},[_c('label',[_vm._v(_vm._s(_vm.$ml.get(\"activityType5\")))]),_c('br'),_c('div',{staticClass:\"btn-group gp-calendar-view-toggler\",attrs:{\"data-toggle\":\"buttons\"}},[_c('label',{class:_vm.fertilizing.PeriodInWeeks == 0\n ? 'btn btn-default active'\n : 'btn btn-default',attrs:{\"for\":\"fertilizingPeriod\"}},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.fertilizing.PeriodInWeeks),expression:\"fertilizing.PeriodInWeeks\"}],attrs:{\"type\":\"radio\",\"value\":\"0\",\"name\":\"fertilizingPeriod\"},domProps:{\"checked\":_vm._q(_vm.fertilizing.PeriodInWeeks,\"0\")},on:{\"change\":function($event){return _vm.$set(_vm.fertilizing, \"PeriodInWeeks\", \"0\")}}}),_vm._v(\" \"+_vm._s(_vm.$ml.get(\"customPlantFormFertilizingNever\"))+\" \")]),_c('label',{class:_vm.fertilizing.PeriodInWeeks == 1\n ? 'btn btn-default active'\n : 'btn btn-default',attrs:{\"for\":\"fertilizingPeriod\"}},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.fertilizing.PeriodInWeeks),expression:\"fertilizing.PeriodInWeeks\"}],attrs:{\"type\":\"radio\",\"value\":\"1\",\"name\":\"fertilizingPeriod\"},domProps:{\"checked\":_vm._q(_vm.fertilizing.PeriodInWeeks,\"1\")},on:{\"change\":function($event){return _vm.$set(_vm.fertilizing, \"PeriodInWeeks\", \"1\")}}}),_vm._v(\" \"+_vm._s(_vm.$ml.get(\"customPlantFormFertilizingWeekly\"))+\" \")]),_c('label',{class:_vm.fertilizing.PeriodInWeeks == 2\n ? 'btn btn-default active'\n : 'btn btn-default',attrs:{\"for\":\"fertilizingPeriod\"}},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.fertilizing.PeriodInWeeks),expression:\"fertilizing.PeriodInWeeks\"}],attrs:{\"type\":\"radio\",\"value\":\"2\",\"name\":\"fertilizingPeriod\"},domProps:{\"checked\":_vm._q(_vm.fertilizing.PeriodInWeeks,\"2\")},on:{\"change\":function($event){return _vm.$set(_vm.fertilizing, \"PeriodInWeeks\", \"2\")}}}),_vm._v(\" \"+_vm._s(_vm.$ml.get(\"customPlantFormFertilizingEvery2Weeks\"))+\" \")]),_c('label',{class:_vm.fertilizing.PeriodInWeeks == 3\n ? 'btn btn-default active'\n : 'btn btn-default',attrs:{\"for\":\"fertilizingPeriod\"}},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.fertilizing.PeriodInWeeks),expression:\"fertilizing.PeriodInWeeks\"}],attrs:{\"type\":\"radio\",\"value\":\"3\",\"name\":\"fertilizingPeriod\"},domProps:{\"checked\":_vm._q(_vm.fertilizing.PeriodInWeeks,\"3\")},on:{\"change\":function($event){return _vm.$set(_vm.fertilizing, \"PeriodInWeeks\", \"3\")}}}),_vm._v(\" \"+_vm._s(_vm.$ml.get(\"customPlantFormFertilizingEvery3Weeks\"))+\" \")]),_c('label',{class:_vm.fertilizing.PeriodInWeeks == 4\n ? 'btn btn-default active'\n : 'btn btn-default',attrs:{\"for\":\"fertilizingPeriod\"}},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.fertilizing.PeriodInWeeks),expression:\"fertilizing.PeriodInWeeks\"}],attrs:{\"type\":\"radio\",\"value\":\"4\",\"name\":\"fertilizingPeriod\"},domProps:{\"checked\":_vm._q(_vm.fertilizing.PeriodInWeeks,\"4\")},on:{\"change\":function($event){return _vm.$set(_vm.fertilizing, \"PeriodInWeeks\", \"4\")}}}),_vm._v(\" \"+_vm._s(_vm.$ml.get(\"customPlantFormFertilizingMonthly\"))+\" \")])])]):_vm._e()]),_c('div',{staticClass:\"col-xs-12\"},[(!_vm.fertilizing.isValid)?_c('p',{staticStyle:{\"color\":\"red\"}},[_vm._v(\" \"+_vm._s(_vm.$ml.get(\"customPlantFormErrorActivity\"))+\" \")]):_vm._e(),(_vm.fertilizing.PeriodInWeeks && _vm.fertilizing.PeriodInWeeks > 0)?_c('fertilizing-date',{model:{value:(_vm.fertilizing),callback:function ($$v) {_vm.fertilizing=$$v},expression:\"fertilizing\"}}):_vm._e()],1)]),(_vm.showEditActivities)?_c('div',{staticClass:\"row panel panel-gray\"},[_c('accordeon',{attrs:{\"id\":\"edit-activities\",\"text\":_vm.$ml.get('customPlantFormAddActivities')}},_vm._l((_vm.sortedActivities),function(activity,activityIdx){return _c('div',{key:activityIdx,ref:\"activities\",refInFor:true,staticClass:\"col-xs-12 col-md-6 activity-row\"},[_c('activit-edit-row',{model:{value:(_vm.sortedActivities[activityIdx]),callback:function ($$v) {_vm.$set(_vm.sortedActivities, activityIdx, $$v)},expression:\"sortedActivities[activityIdx]\"}})],1)}),0)],1):_vm._e()]),_c('div',[_c('button',{staticClass:\"btn btn-primary btn-with-white-arrow pull-right\",attrs:{\"disabled\":!_vm.valid},domProps:{\"textContent\":_vm._s(_vm.$ml.get('landiPlantEditSave'))},on:{\"click\":_vm.updateLandiPlant}}),(!_vm.valid)?_c('p',{staticStyle:{\"color\":\"red\"}},[_vm._v(\" \"+_vm._s(_vm.$ml.get(\"customPlantFormErrorInvalidForm\"))+\" \")]):_vm._e()]),_c('link',{attrs:{\"rel\":\"stylesheet\",\"type\":\"text/css\",\"href\":\"../../../../frontend/landi/Frameworks/jquery/jquery-ui.css\"}})]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","declare var $: any;\r\nexport default class JQueryHelper {\r\n public static localeOptions(language: string) {\r\n if (language == \"de\") {\r\n return {\r\n weekHeader: \"KW\",\r\n prevText: \"<zurück\",\r\n prevStatus: \"\",\r\n prevJumpText: \"<<\",\r\n prevJumpStatus: \"\",\r\n nextText: \"Vor>\",\r\n nextStatus: \"\",\r\n nextJumpText: \">>\",\r\n nextJumpStatus: \"\",\r\n monthNames: [\r\n \"Januar\",\r\n \"Februar\",\r\n \"März\",\r\n \"April\",\r\n \"Mai\",\r\n \"Juni\",\r\n \"Juli\",\r\n \"August\",\r\n \"September\",\r\n \"Oktober\",\r\n \"November\",\r\n \"Dezember\",\r\n ],\r\n monthNamesShort: [\r\n \"Jan\",\r\n \"Feb\",\r\n \"Mär\",\r\n \"Apr\",\r\n \"Mai\",\r\n \"Jun\",\r\n \"Jul\",\r\n \"Aug\",\r\n \"Sep\",\r\n \"Okt\",\r\n \"Nov\",\r\n \"Dez\",\r\n ],\r\n dayNames: [\r\n \"Sonntag\",\r\n \"Montag\",\r\n \"Dienstag\",\r\n \"Mittwoch\",\r\n \"Donnerstag\",\r\n \"Freitag\",\r\n \"Samstag\",\r\n ],\r\n dayNamesShort: [\"So\", \"Mo\", \"Di\", \"Mi\", \"Do\", \"Fr\", \"Sa\"],\r\n dayNamesMin: [\"So\", \"Mo\", \"Di\", \"Mi\", \"Do\", \"Fr\", \"Sa\"],\r\n firstDay: 1,\r\n };\r\n } else {\r\n return {\r\n weekHeader: \"Sm\",\r\n prevText: \"<dos\",\r\n prevStatus: \"\",\r\n prevJumpText: \"<<\",\r\n prevJumpStatus: \"\",\r\n nextText: \"avant>\",\r\n nextStatus: \"\",\r\n nextJumpText: \">>\",\r\n nextJumpStatus: \"\",\r\n monthNames: [\r\n \"Janvier\",\r\n \"Février \",\r\n \"Mars \",\r\n \"Avril\",\r\n \"May\",\r\n \"Juin\",\r\n \"Juillet\",\r\n \"Août\",\r\n \"Septembre\",\r\n \"Octobre\",\r\n \"Novembre\",\r\n \"Dézembre\",\r\n ],\r\n monthNamesShort: [\r\n \"Jan\",\r\n \"Feb\",\r\n \"Mar\",\r\n \"Apr\",\r\n \"May\",\r\n \"Jun\",\r\n \"Jul\",\r\n \"Aug\",\r\n \"Sep\",\r\n \"Oct\",\r\n \"Nov\",\r\n \"Dez\",\r\n ],\r\n dayNames: [\r\n \"Dimanche\",\r\n \"Lundi\",\r\n \"Marci\",\r\n \"Mercredi\",\r\n \"Jeudi\",\r\n \"Vendredi\",\r\n \"Samedi\",\r\n ],\r\n dayNamesShort: [\"Di\", \"Lu\", \"Ma\", \"Me\", \"Je\", \"Ve\", \"Sa\"],\r\n dayNamesMin: [\"Di\", \"Lu\", \"Ma\", \"Me\", \"Je\", \"Ve\", \"Sa\"],\r\n firstDay: 1,\r\n };\r\n }\r\n }\r\n\r\n public static vueAttibuteMapping(\r\n inputElement: HTMLInputElement,\r\n self: any,\r\n callback: Function = () => {}\r\n ) {\r\n // we must change the localstates data (self) in order to have Vue in control and to make two-way-binding work\r\n const dataMapping = inputElement.getAttribute(\"data-mapping\");\r\n const dataMappingArray = dataMapping ? dataMapping.split(\".\") : [];\r\n let assignable = self as any;\r\n let count = 0;\r\n dataMappingArray.map((q) => {\r\n count++;\r\n if (count < dataMappingArray.length) {\r\n assignable = assignable[q] as any;\r\n }\r\n });\r\n assignable[dataMappingArray[dataMappingArray.length - 1]] =\r\n inputElement.value;\r\n\r\n if (callback) {\r\n callback();\r\n }\r\n }\r\n public static addCalendarWeekFromDate(\r\n dateText: string,\r\n inst: any,\r\n self: any,\r\n callback: Function\r\n ) {\r\n const d = new Date(dateText);\r\n inst.input.val($.datepicker.iso8601Week(d)); // this is not recognized by vue v-model.\r\n const inputElement = inst.input[0] as HTMLInputElement;\r\n JQueryHelper.vueAttibuteMapping(inputElement, self, callback);\r\n }\r\n\r\n public static getCalendarOptionsForCalendarWeek(\r\n language: string,\r\n self: any,\r\n callback: Function\r\n ): any {\r\n const jQueryLocalizationFowCalendarWeek = Object.assign(\r\n JQueryHelper.localeOptions(language),\r\n {\r\n onSelect: function(dateText: any, inst: any) {\r\n JQueryHelper.addCalendarWeekFromDate(dateText, inst, self, callback);\r\n },\r\n }\r\n );\r\n const optionsCalendarWeek = $.extend(\r\n jQueryLocalizationFowCalendarWeek,\r\n $.datepicker.regional[language],\r\n { dateFormat: \"yy-mm-dd\", showWeek: true } // yy-mm-dd format is required or addCalendarWeekFromDate won't work.\r\n );\r\n return optionsCalendarWeek;\r\n }\r\n\r\n public static getCalendarOptionsForDate(language: string, self: any): any {\r\n const jQueryLocalization = Object.assign(\r\n JQueryHelper.localeOptions(language),\r\n {\r\n onSelect: function(dateText: any, inst: any) {\r\n JQueryHelper.vueAttibuteMapping(\r\n inst.input[0] as HTMLInputElement,\r\n self\r\n );\r\n },\r\n }\r\n );\r\n const options = $.extend(\r\n jQueryLocalization,\r\n $.datepicker.regional[language],\r\n { dateFormat: \"dd.mm.yy\" }\r\n );\r\n return options;\r\n }\r\n}\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-xs-6 col-sm-4 vbottom\"},[_c('label',[_vm._v(_vm._s(_vm.$ml.get('customPlantFormStartCalendarWeek')))]),_c('div',{staticClass:\"input-group datepickerCalendarWeek-AD-input-group\"},[_c('span',{staticClass:\"input-group-addon\",attrs:{\"id\":\"basic-addon1\"}},[_c('v-icon',{staticClass:\"calendar-icon\",attrs:{\"name\":\"calendar-alt\"}})],1),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.value.StartWeek),expression:\"value.StartWeek\"}],staticClass:\"form-control datepickerCalendarWeek-AD activityStartWeek\",attrs:{\"type\":\"number\",\"data-mapping\":'value.StartWeek'},domProps:{\"value\":(_vm.value.StartWeek)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.value, \"StartWeek\", $event.target.value)}}})])]),_c('div',{staticClass:\"col-xs-6 col-sm-4 vbottom\"},[_c('label',[_vm._v(_vm._s(_vm.$ml.get('customPlantFormEndCalendarWeek')))]),_c('div',{staticClass:\"input-group datepickerCalendarWeek-AD-input-group\"},[_c('span',{staticClass:\"input-group-addon\",attrs:{\"id\":\"basic-addon2\"}},[_c('v-icon',{staticClass:\"calendar-icon\",attrs:{\"name\":\"calendar-alt\"}})],1),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.value.EndWeek),expression:\"value.EndWeek\"}],staticClass:\"form-control datepickerCalendarWeek-AD activityEndWeek \",attrs:{\"type\":\"number\",\"data-mapping\":'value.EndWeek'},domProps:{\"value\":(_vm.value.EndWeek)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.value, \"EndWeek\", $event.target.value)}}})])]),_c('div',{staticClass:\"col-xs-6 col-sm-4 vbottom\"},[_c('label',[_vm._v(_vm._s(_vm.$ml.get('customPlantFormWeeksFromSeedingDate')))]),_c('div',{staticClass:\"input-group\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.value.WeeksFromSeedingDate),expression:\"value.WeeksFromSeedingDate\"}],staticClass:\"form-control activityWeeksFromSeedingDate\",attrs:{\"type\":\"number\",\"min\":\"0\",\"data-mapping\":'value.WeeksFromSeedingDate'},domProps:{\"value\":(_vm.value.WeeksFromSeedingDate)},on:{\"change\":_vm.validateNumber,\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.value, \"WeeksFromSeedingDate\", $event.target.value)}}})])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport Vue from 'vue';\r\nimport { Component, Prop, Watch } from 'vue-property-decorator';\r\nimport {\r\n IActivity,\r\n CustomPlantActivity,\r\n ActivityType\r\n} from '../../entities/entities';\r\nimport JQueryHelper from '../../helpers/jQueryHelper';\r\nimport Icon from 'vue-awesome/components/Icon.vue';\r\nimport 'vue-awesome/icons/calendar-alt';\r\n\r\ndeclare var $: any;\r\n\r\n@Component({\r\n components: {\r\n 'v-icon': Icon\r\n }\r\n})\r\nexport default class ActivityDate extends Vue {\r\n @Prop({\r\n required: true,\r\n default: function() {\r\n return new CustomPlantActivity(ActivityType.Fertilizing, 0, 0, 0);\r\n }\r\n })\r\n value!: CustomPlantActivity;\r\n\r\n mounted() {\r\n const self = this;\r\n // init datepicker to store calendar week numbers\r\n $('.datepickerCalendarWeek-AD').datepicker(\r\n JQueryHelper.getCalendarOptionsForCalendarWeek(\r\n this.currentLanguage,\r\n self,\r\n () => {\r\n this.$emit('input', this.value);\r\n }\r\n )\r\n );\r\n\r\n $('.datepickerCalendarWeek-AD-input-group').click(function(event: any) {\r\n let parentIg = $(event.target).closest(\r\n '.datepickerCalendarWeek-AD-input-group'\r\n );\r\n let datepicker = parentIg.children('.datepickerCalendarWeek-AD');\r\n datepicker.datepicker('show');\r\n });\r\n }\r\n\r\n validateNumber() {\r\n if (this.value.WeeksFromSeedingDate < 0) {\r\n this.value.WeeksFromSeedingDate = 0;\r\n }\r\n }\r\n\r\n get currentLanguage(): string {\r\n return Vue.prototype.$Language;\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ActivityDate.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ActivityDate.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ActivityDate.vue?vue&type=template&id=6d4aa1c2&scoped=true&\"\nimport script from \"./ActivityDate.vue?vue&type=script&lang=ts&\"\nexport * from \"./ActivityDate.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ActivityDate.vue?vue&type=style&index=0&id=6d4aa1c2&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6d4aa1c2\",\n null\n \n)\n\nexport default component.exports","var declar\r\nexport default class ToastrHelper {\r\n public static SetToastrOptions(){\r\n (window as any).toastr.options = {\r\n \"debug\": false,\r\n // \"positionClass\": \"toast-bottom-full-width\",\r\n \"positionClass\": \"toast-top-center\",\r\n \"onclick\": null,\r\n \"fadeIn\": 300,\r\n \"fadeOut\": 1000,\r\n \"timeOut\": 5000,\r\n \"extendedTimeOut\": 1000\r\n }\r\n }\r\n public static Success(message: string) {\r\n this.SetToastrOptions();\r\n (window as any).toastr.success(message);\r\n } \r\n\r\n public static Error(message: string) {\r\n this.SetToastrOptions();\r\n (window as any).toastr.error(message);\r\n } \r\n}","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"accordeon-container\"},[(_vm.chevronLeft)?_c('div',{staticClass:\"accordeon\",on:{\"click\":_vm.toggle}},[_c('v-icon',{staticClass:\"middle\",attrs:{\"name\":_vm.iconName,\"color\":\"green\",\"scale\":\"1\"}}),_c('div',{staticClass:\"middle\",staticStyle:{\"color\":\"green\",\"margin-left\":\"5px\"}},[_vm._v(_vm._s(_vm.text))])],1):_vm._e(),(!_vm.chevronLeft)?_c('div',{staticClass:\"accordeon\",on:{\"click\":_vm.toggle}},[_vm._t(\"icon\"),_c('div',{staticClass:\"middle\",staticStyle:{\"color\":\"green\",\"margin-right\":\"5px\"}},[_vm._v(_vm._s(_vm.text))]),_c('v-icon',{staticClass:\"middle\",attrs:{\"name\":_vm.iconName,\"color\":\"green\",\"scale\":\"1\"}})],2):_vm._e(),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.open),expression:\"open\"}]},[_vm._t(\"default\")],2)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport Vue from \"vue\";\r\nimport Icon from \"vue-awesome/components/Icon.vue\";\r\nimport { Component, Prop } from \"vue-property-decorator\";\r\nimport \"vue-awesome/icons/chevron-right\";\r\nimport \"vue-awesome/icons/chevron-down\";\r\ndeclare var $: any;\r\n\r\n@Component({\r\n components: {\r\n \"v-icon\": Icon\r\n }\r\n})\r\nexport default class Accordeon extends Vue {\r\n @Prop({ required: true }) text!: string;\r\n @Prop({ required: false, default: true }) chevronLeft!: boolean;\r\n\r\n @Prop({ required: false, default: false }) isOpen!: boolean;\r\n isOpenInternal:boolean = this.isOpen;\r\n toggle() {\r\n this.isOpenInternal = !this.isOpenInternal;\r\n }\r\n\r\n get open(): boolean {\r\n if (this.isOpenInternal) {\r\n return this.isOpenInternal;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n get iconName(): string {\r\n if (this.isOpenInternal) {\r\n return \"chevron-down\";\r\n } else {\r\n return \"chevron-right\";\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Accordeon.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Accordeon.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Accordeon.vue?vue&type=template&id=17ed65ca&scoped=true&\"\nimport script from \"./Accordeon.vue?vue&type=script&lang=ts&\"\nexport * from \"./Accordeon.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Accordeon.vue?vue&type=style&index=0&id=17ed65ca&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"17ed65ca\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"row\",staticStyle:{\"border-bottom\":\"1px solid grey\",\"padding\":\"10px 0px 10px 0px\"}},[_c('div',{staticClass:\"col-xs-12 col-sm-6 col-lg-3 vcenter\"},[_c('img',{staticStyle:{\"width\":\"25px\"},attrs:{\"src\":_vm.getActivityIcon(_vm.value.ActivityType)}}),_vm._v(\" \"+_vm._s(_vm.$ml.get(\"activityType\" + _vm.value.ActivityType))+\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.value.ActivityType),expression:\"value.ActivityType\"}],staticClass:\"activityId\",attrs:{\"type\":\"hidden\"},domProps:{\"value\":(_vm.value.ActivityType)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.value, \"ActivityType\", $event.target.value)}}}),(!_vm.value.isValid)?_c('p',{staticStyle:{\"color\":\"red\"}},[_vm._v(\" \"+_vm._s(_vm.$ml.get(\"customPlantFormErrorActivity\"))+\" \")]):_vm._e()]),_c('div',{staticClass:\"col-xs-12 col-sm-6 col-lg-3 vbottom\"},[_c('label',[_vm._v(_vm._s(_vm.$ml.get(\"customPlantFormStartCalendarWeek\")))]),_c('div',{staticClass:\"input-group date-input-group\"},[_c('span',{staticClass:\"input-group-addon\",attrs:{\"id\":\"basic-addon1\"}},[_c('v-icon',{staticClass:\"calendar-icon\",attrs:{\"name\":\"calendar-alt\"}})],1),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.value.OriginStartWeek),expression:\"value.OriginStartWeek\"}],staticClass:\"form-control activityStartWeek date-input\",class:_vm.uniqueClass,attrs:{\"type\":\"number\",\"min\":\"0\",\"max\":\"53\",\"data-mapping\":'OriginStartWeek',\"aria-describedby\":\"basic-addon1\"},domProps:{\"value\":(_vm.value.OriginStartWeek)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.value, \"OriginStartWeek\", $event.target.value)}}})])]),_c('div',{staticClass:\"col-xs-12 col-sm-6 col-lg-3 vbottom\"},[_c('label',[_vm._v(_vm._s(_vm.$ml.get(\"customPlantFormEndCalendarWeek\")))]),_c('div',{staticClass:\"input-group date-input-group\"},[_c('span',{staticClass:\"input-group-addon\",attrs:{\"id\":\"basic-addon2\"}},[_c('v-icon',{staticClass:\"calendar-icon\",attrs:{\"name\":\"calendar-alt\"}})],1),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.value.OriginEndWeek),expression:\"value.OriginEndWeek\"}],staticClass:\"form-control activityEndWeek date-input\",class:_vm.uniqueClass,attrs:{\"type\":\"number\",\"min\":\"0\",\"max\":\"53\",\"data-mapping\":'OriginEndWeek',\"aria-describedby\":\"basic-addon2\"},domProps:{\"value\":(_vm.value.OriginEndWeek)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.value, \"OriginEndWeek\", $event.target.value)}}})])]),_c('div',{staticClass:\"col-xs-12 col-sm-6 col-lg-3 vbottom\"},[_c('label',[_vm._v(_vm._s(_vm.$ml.get(\"customPlantFormWeeksFromSeedingDate\")))]),_c('div',{staticClass:\"input-group\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.value.WeeksFromSeedingDate),expression:\"value.WeeksFromSeedingDate\"}],staticClass:\"form-control activityWeeksFromSeedingDate\",attrs:{\"type\":\"number\",\"min\":\"0\",\"max\":\"53\",\"data-mapping\":'WeeksFromSeedingDate'},domProps:{\"value\":(_vm.value.WeeksFromSeedingDate)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.value, \"WeeksFromSeedingDate\", $event.target.value)}}})])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport Vue from \"vue\";\r\nimport { Component, Prop, Watch } from \"vue-property-decorator\";\r\nimport {\r\n IActivity,\r\n ActivityType,\r\n CustomPlantActivity,\r\n} from \"../../entities/entities\";\r\nimport JQueryHelper from \"../../helpers/jQueryHelper\";\r\nimport { ActivityHelper } from \"../../helpers/activityHelper\";\r\nimport Icon from \"vue-awesome/components/Icon.vue\";\r\nimport \"vue-awesome/icons/calendar-alt\";\r\n\r\ndeclare var $: any;\r\n\r\n@Component({\r\n components: {\r\n \"v-icon\": Icon,\r\n },\r\n})\r\nexport default class ActivityDateWithIcon extends Vue {\r\n @Prop({\r\n required: true,\r\n default: function () {\r\n return new CustomPlantActivity(ActivityType.Fertilizing, 0, 0, 0);\r\n },\r\n })\r\n value!: IActivity;\r\n\r\n mounted() {\r\n const comp = this;\r\n const self = this.value;\r\n // init datepicker to store calendar week numbers\r\n $(\".\" + this.uniqueClass).datepicker(\r\n JQueryHelper.getCalendarOptionsForCalendarWeek(\r\n this.currentLanguage,\r\n self,\r\n function (value: any) {\r\n comp.$emit(\"input\", self);\r\n }\r\n )\r\n );\r\n\r\n $(\".date-input-group\").click(function (event: any) { \r\n let parentIg = $(event.target).closest(\".date-input-group\");\r\n let datepicker = parentIg.children(\".date-input\");\r\n datepicker.datepicker(\"show\");\r\n });\r\n }\r\n\r\n get uniqueClass(): string {\r\n return \"datepickerCalendarWeek-adwi\" + this.value.ActivityType.toString();\r\n }\r\n\r\n get currentLanguage(): string {\r\n return Vue.prototype.$Language;\r\n }\r\n\r\n getActivityIcon(activity: ActivityType): string {\r\n return ActivityHelper.getActivityIcon(activity);\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ActivityDateWithIcon.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ActivityDateWithIcon.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ActivityDateWithIcon.vue?vue&type=template&id=37e82b94&scoped=true&\"\nimport script from \"./ActivityDateWithIcon.vue?vue&type=script&lang=ts&\"\nexport * from \"./ActivityDateWithIcon.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ActivityDateWithIcon.vue?vue&type=style&index=0&id=37e82b94&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"37e82b94\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport Icon from \"vue-awesome/components/Icon.vue\";\r\nimport CalendarMonthDrawModeMixin from \"../../mixins/CalendarMonthDrawMode\";\r\nimport { Component, Prop, Vue, Mixins, Watch } from \"vue-property-decorator\";\r\nimport { mixins } from \"vue-class-component\";\r\nimport { STORE_ACTIONS } from \"../../store/storeActions\";\r\nimport { mapGetters } from \"vuex\";\r\nimport {\r\n IFilterAttribute,\r\n IAttributeGroup,\r\n IAttribute,\r\n KeyValuePair,\r\n ICustomPlant,\r\n CustomPlant,\r\n ActivityType,\r\n CustomPlantActivity,\r\n IPlant,\r\n Plant,\r\n IActivity,\r\n Activity,\r\n ICustomPlantActivity,\r\n} from \"../../entities/entities\";\r\nimport { ActivityHelper } from \"../../helpers/activityHelper\";\r\nimport JQueryHelper from \"../../helpers/jQueryHelper\";\r\nimport ActivityDate from \"../general/ActivityDate.vue\";\r\nimport moment from \"moment\";\r\nimport ToastrHelper from \"../../helpers/toastrHelper\";\r\nimport Accordeon from \"../general/Accordeon.vue\";\r\nimport ActivityDateWithIcon from \"../general/ActivityDateWithIcon.vue\";\r\nimport CalendarHelper from \"../../helpers/calendarHelper\";\r\n\r\ndeclare var $: any;\r\ndeclare var $ml: any;\r\n\r\n@Component({\r\n components: {\r\n \"v-icon\": Icon,\r\n \"fertilizing-date\": ActivityDate,\r\n accordeon: Accordeon,\r\n \"activit-edit-row\": ActivityDateWithIcon,\r\n },\r\n computed: {\r\n ...mapGetters({\r\n filterAttribute: \"filterAttribute\",\r\n }),\r\n },\r\n mixins: [CalendarMonthDrawModeMixin],\r\n})\r\nexport default class TheLandiPlantEdit extends Vue {\r\n $refs!: {\r\n activities: HTMLDivElement[];\r\n };\r\n $ml: any;\r\n\r\n customActivities: IActivity[] = [];\r\n\r\n @Prop()\r\n plant!: IPlant;\r\n seedingDate: string = \"\";\r\n\r\n @Watch(\"plant\")\r\n onPlantChange(newVal: IPlant, oldVal: IPlant) {\r\n if (\r\n newVal &&\r\n newVal.Activities &&\r\n newVal.Activities.filter(\r\n (a) => a.ActivityType == ActivityType.Fertilizing\r\n )\r\n ) {\r\n let activity = newVal.Activities.filter(\r\n (a) => a.ActivityType == ActivityType.Fertilizing\r\n )[0];\r\n\r\n if (activity) {\r\n this.fertilizing = { ...activity };\r\n } else {\r\n this.fertilizing = new Activity();\r\n this.fertilizing.PeriodInWeeks = 0;\r\n this.fertilizing.StartWeek = 0;\r\n this.fertilizing.EndWeek = 0;\r\n this.fertilizing.GardenId = this.plant.GardenId;\r\n this.fertilizing.CompositionId = this.plant.CompositionId;\r\n this.fertilizing.ActivityType = ActivityType.Fertilizing;\r\n }\r\n }\r\n\r\n if (this.plant && this.plant.SeedingDate) {\r\n this.seedingDate = moment(String(this.plant.SeedingDate)).format(\r\n \"DD.MM.YYYY\"\r\n );\r\n }\r\n\r\n Vue.set(\r\n this.fertilizing,\r\n \"isValid\",\r\n this.validateActivity(this.fertilizing)\r\n );\r\n\r\n this.fillActivities();\r\n }\r\n\r\n fertilizing: IActivity = new Activity();\r\n\r\n mounted() {\r\n const self = this;\r\n // init datepicker to store calendar week numbers\r\n\r\n $(\".seeding-datepicker\").datepicker(\r\n JQueryHelper.getCalendarOptionsForDate(this.currentLanguage, self)\r\n );\r\n\r\n $(\".seeding-datepicker-input-group\").click(function () {\r\n $(\".seeding-datepicker\").datepicker(\"show\");\r\n });\r\n\r\n // esure that vue can track changes to this element that is manipulated via other library\r\n $(\"input[name=fertilizingPeriod]:radio\").change(function (e: any) {\r\n self.fertilizing.PeriodInWeeks = Number(e.target.value);\r\n });\r\n\r\n if (this.plant && this.plant.SeedingDate) {\r\n this.seedingDate = moment(String(this.plant.SeedingDate)).format(\r\n \"DD.MM.YYYY\"\r\n );\r\n }\r\n }\r\n\r\n created() {\r\n this.onPlantChange(this.plant, new Plant());\r\n }\r\n\r\n get sortedActivities(): IActivity[] {\r\n return this.customActivities.sort((a, b) => {\r\n return a.ActivityType < b.ActivityType ? -1 : 0;\r\n });\r\n }\r\n\r\n fillActivities() {\r\n // init customplant so it can be created\r\n this.customActivities = [];\r\n\r\n if (this.plant) {\r\n const activites = this.plant.Activities ? this.plant.Activities : [];\r\n // add activities to\r\n for (let item in ActivityType) {\r\n // exclude Fertilizing == 5 && and already filled activities (in edit mode)\r\n if (!isNaN(Number(item)) && Number(item) != 5) {\r\n const a = Number(item) as ActivityType;\r\n\r\n if (\r\n activites.filter((a) => a.ActivityType == Number(item)).length != 0\r\n ) {\r\n const activity = activites.filter(\r\n (a) => a.ActivityType == Number(item)\r\n )[0];\r\n\r\n Vue.set(activity, \"isValid\", this.validateActivity(activity));\r\n this.customActivities.push(activity);\r\n } else {\r\n \r\n const activity = new Activity();\r\n activity.ActivityType = a;\r\n activity.StartWeek = 0;\r\n activity.EndWeek = 0;\r\n activity.PeriodInWeeks = 0\r\n Vue.set(activity, \"isValid\", this.validateActivity(activity));\r\n this.customActivities.push(activity);\r\n }\r\n }\r\n }\r\n\r\n // remove fertilizing from activitie list\r\n const fertilizing = this.plant.Activities.filter(\r\n (a) => a.ActivityType == ActivityType.Fertilizing\r\n );\r\n\r\n if (fertilizing && fertilizing.length > 0) {\r\n const idx = this.plant.Activities.indexOf(fertilizing[0]);\r\n this.plant.Activities.splice(idx, 1);\r\n }\r\n\r\n Vue.set(\r\n this.fertilizing,\r\n \"isValid\",\r\n this.validateActivity(this.fertilizing)\r\n );\r\n } else {\r\n // todo: load custom plant from api when in edit mode\r\n }\r\n }\r\n\r\n validateCustomActivity(activity: ICustomPlantActivity) {\r\n if (\r\n activity.ActivityType == ActivityType.Fertilizing &&\r\n activity.Period &&\r\n activity.Period > 0 &&\r\n (activity.StartWeek == 0 || activity.EndWeek == 0)\r\n ) {\r\n return false;\r\n } else if (\r\n (activity.ActivityType != ActivityType.Fertilizing &&\r\n activity.Period == 0 &&\r\n activity.StartWeek > 0 &&\r\n activity.EndWeek == 0) ||\r\n (activity.StartWeek == 0 && activity.EndWeek > 0)\r\n ) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n validateActivity(activity: IActivity): boolean {\r\n if (\r\n activity.ActivityType == ActivityType.Fertilizing &&\r\n activity.PeriodInWeeks &&\r\n activity.PeriodInWeeks > 0 &&\r\n (activity.OriginStartWeek == 0 || activity.OriginEndWeek == 0)\r\n ) {\r\n return false;\r\n } else if (\r\n (activity.ActivityType != ActivityType.Fertilizing &&\r\n activity.PeriodInWeeks == 0 &&\r\n activity.OriginStartWeek == 0 && activity.OriginEndWeek && activity.OriginEndWeek > 0)\r\n ) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n get showEditActivities(): boolean{\r\n return !!this.plant.ProductPlantId;\r\n }\r\n \r\n get valid(): boolean {\r\n let valid = true;\r\n\r\n if (this.plant.Name.length <= 3) {\r\n valid = false;\r\n }\r\n if (\r\n !!this.fertilizing.PeriodInWeeks &&\r\n this.fertilizing.PeriodInWeeks > 0 &&\r\n (this.fertilizing.StartWeek == 0 || this.fertilizing.EndWeek == 0)\r\n ) {\r\n valid = false;\r\n }\r\n\r\n // check activities but first set them all to valid\r\n this.customActivities.map((a) => {\r\n (a as any).isValid = true;\r\n });\r\n // validate activites\r\n const invalidAactivities = this.customActivities.filter(\r\n (a) => !this.validateActivity(a)\r\n );\r\n\r\n if (invalidAactivities.length > 0) {\r\n invalidAactivities.map((element) => {\r\n (element as any).isValid = false;\r\n });\r\n valid = false;\r\n }\r\n\r\n (this.fertilizing as any).isValid = this.validateActivity(this.fertilizing);\r\n if (!(this.fertilizing as any).isValid) {\r\n valid = false;\r\n }\r\n\r\n return valid;\r\n }\r\n\r\n get currentLanguage(): string {\r\n return Vue.prototype.$Language;\r\n }\r\n\r\n async updateLandiPlant() {\r\n this.validateFertilizing();\r\n if(this.seedingDate && this.seedingDate != '')\r\n {\r\n this.plant.SeedingDate =CalendarHelper.getDateByString(this.seedingDate); \r\n }\r\n else \r\n {\r\n this.plant.SeedingDate = null;\r\n }\r\n let plantUpdated = { ...this.plant };\r\n plantUpdated.Activities = [\r\n ...this.customActivities.filter(\r\n (a) => a.ActivityType != ActivityType.Fertilizing\r\n ),\r\n this.fertilizing,\r\n ];\r\n this.$store.dispatch(STORE_ACTIONS.UPDATE_LANDI_PLANT, plantUpdated);\r\n ToastrHelper.Success(this.$ml.get(\"addPlantToCalendarSuccessMessage\"));\r\n $(\"#the-modal\").modal(\"hide\");\r\n }\r\n\r\n validateFertilizing() {\r\n if (this.fertilizing.PeriodInWeeks == 0) {\r\n this.fertilizing.StartWeek = 0;\r\n this.fertilizing.OriginStartWeek = 0;\r\n this.fertilizing.EndWeek = 0;\r\n this.fertilizing.OriginEndWeek = 0;\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheLandiPlantEdit.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheLandiPlantEdit.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TheLandiPlantEdit.vue?vue&type=template&id=473f05ac&scoped=true&\"\nimport script from \"./TheLandiPlantEdit.vue?vue&type=script&lang=ts&\"\nexport * from \"./TheLandiPlantEdit.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TheLandiPlantEdit.vue?vue&type=style&index=0&id=473f05ac&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"473f05ac\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"row panel panel-gray\"},[_c('div',{staticClass:\"col-md-4\"},[_c('div',{staticClass:\"form-group\"},[_c('div',{staticClass:\"fileupload\"},[_c('div',{staticClass:\"fileupload-buttonbar\"},[_c('label',{staticClass:\"btn btn-default fileinput-button\",staticStyle:{\"position\":\"relative\"}}),_c('fileupload',{ref:\"fileupload\",attrs:{\"showImagePreview\":\"true\",\"imageUrl\":_vm.customPlant.ImageUrl},on:{\"fileRemoved\":function($event){_vm.isFileRemove = true}}})],1)])])]),_c('div',{staticClass:\"col-md-4\"},[_c('div',{staticClass:\"form-group\"},[_c('label',[_vm._v(_vm._s(_vm.$ml.get(\"customPlantFormName\")))]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.customPlant.Name),expression:\"customPlant.Name\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.customPlant.Name)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.customPlant, \"Name\", $event.target.value)}}}),_c('label',[_vm._v(_vm._s(_vm.$ml.get(\"customPlantFormDescription\")))]),_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.customPlant.Description),expression:\"customPlant.Description\"}],staticClass:\"form-control\",attrs:{\"rows\":\"4\",\"cols\":\"50\"},domProps:{\"value\":(_vm.customPlant.Description)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.customPlant, \"Description\", $event.target.value)}}}),_c('label',[_vm._v(_vm._s(_vm.$ml.get(\"customPlantFormSeedingDate\")))]),_c('div',{staticClass:\"input-group input-group-datepicker\"},[_c('span',{staticClass:\"input-group-addon\",attrs:{\"id\":\"basic-addon1\"}},[_c('v-icon',{staticClass:\"calendar-icon\",attrs:{\"name\":\"calendar-alt\"}})],1),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.seedingDate),expression:\"seedingDate\"}],staticClass:\"form-control datepicker\",attrs:{\"type\":\"text\",\"data-mapping\":\"seedingDate\"},domProps:{\"value\":(_vm.seedingDate)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.seedingDate=$event.target.value}}})])])]),_c('div',{staticClass:\"col-md-4\"},[_c('div',{staticClass:\"form-group\"},[_c('label',[_vm._v(_vm._s(_vm.$ml.get(\"customPlantFormCaretips\")))]),_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.customPlant.CareTips),expression:\"customPlant.CareTips\"}],staticClass:\"form-control\",attrs:{\"rows\":\"4\",\"cols\":\"50\"},domProps:{\"value\":(_vm.customPlant.CareTips)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.customPlant, \"CareTips\", $event.target.value)}}}),_c('label',[_vm._v(_vm._s(_vm.$ml.get(\"customPlantFormPlantProtection\")))]),_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.customPlant.PlantProtection),expression:\"customPlant.PlantProtection\"}],staticClass:\"form-control\",attrs:{\"rows\":\"4\",\"cols\":\"50\"},domProps:{\"value\":(_vm.customPlant.PlantProtection)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.customPlant, \"PlantProtection\", $event.target.value)}}})])]),_c('div',{staticClass:\"col-md-12\"},[_c('div',{staticClass:\"form-group\"},[_c('label',[_vm._v(_vm._s(_vm.$ml.get(\"activityType5\")))]),_c('br'),_c('div',{staticClass:\"btn-group hidden-xs gp-calendar-view-toggler\",attrs:{\"data-toggle\":\"buttons\"}},[_c('label',{staticClass:\"btn btn-default active\",class:_vm.cssClassFertilizing,attrs:{\"for\":\"calendarViewMonth\"}},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.fertilizing.Period),expression:\"fertilizing.Period\"}],attrs:{\"type\":\"radio\",\"value\":\"0\",\"name\":\"fertilizingPeriod\"},domProps:{\"checked\":_vm._q(_vm.fertilizing.Period,\"0\")},on:{\"change\":function($event){return _vm.$set(_vm.fertilizing, \"Period\", \"0\")}}}),_vm._v(\" \"+_vm._s(_vm.$ml.get(\"customPlantFormFertilizingNever\"))+\" \")]),_c('label',{staticClass:\"btn btn-default\",class:_vm.cssClassFertilizing,attrs:{\"for\":\"calendarViewYear\"}},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.fertilizing.Period),expression:\"fertilizing.Period\"}],attrs:{\"type\":\"radio\",\"value\":\"1\",\"name\":\"fertilizingPeriod\"},domProps:{\"checked\":_vm._q(_vm.fertilizing.Period,\"1\")},on:{\"change\":function($event){return _vm.$set(_vm.fertilizing, \"Period\", \"1\")}}}),_vm._v(\" \"+_vm._s(_vm.$ml.get(\"customPlantFormFertilizingWeekly\"))+\" \")]),_c('label',{staticClass:\"btn btn-default\",class:_vm.cssClassFertilizing,attrs:{\"for\":\"calendarViewYear\"}},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.fertilizing.Period),expression:\"fertilizing.Period\"}],attrs:{\"type\":\"radio\",\"value\":\"2\",\"name\":\"fertilizingPeriod\"},domProps:{\"checked\":_vm._q(_vm.fertilizing.Period,\"2\")},on:{\"change\":function($event){return _vm.$set(_vm.fertilizing, \"Period\", \"2\")}}}),_vm._v(\" \"+_vm._s(_vm.$ml.get(\"customPlantFormFertilizingEvery2Weeks\"))+\" \")]),_c('label',{staticClass:\"btn btn-default\",class:_vm.cssClassFertilizing,attrs:{\"for\":\"calendarViewYear\"}},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.fertilizing.Period),expression:\"fertilizing.Period\"}],attrs:{\"type\":\"radio\",\"value\":\"3\",\"name\":\"fertilizingPeriod\"},domProps:{\"checked\":_vm._q(_vm.fertilizing.Period,\"3\")},on:{\"change\":function($event){return _vm.$set(_vm.fertilizing, \"Period\", \"3\")}}}),_vm._v(\" \"+_vm._s(_vm.$ml.get(\"customPlantFormFertilizingEvery3Weeks\"))+\" \")]),_c('label',{staticClass:\"btn btn-default\",class:_vm.cssClassFertilizing,attrs:{\"for\":\"calendarViewMonth\"}},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.fertilizing.Period),expression:\"fertilizing.Period\"}],attrs:{\"type\":\"radio\",\"value\":\"4\",\"name\":\"fertilizingPeriod\"},domProps:{\"checked\":_vm._q(_vm.fertilizing.Period,\"4\")},on:{\"change\":function($event){return _vm.$set(_vm.fertilizing, \"Period\", \"4\")}}}),_vm._v(\" \"+_vm._s(_vm.$ml.get(\"customPlantFormFertilizingMonthly\"))+\" \")])])]),(!_vm.fertilizing.isValid)?_c('p',{staticStyle:{\"color\":\"red\"}},[_vm._v(\" \"+_vm._s(_vm.$ml.get(\"customPlantFormErrorActivity\"))+\" \")]):_vm._e(),(_vm.fertilizing && _vm.fertilizing.Period > 0)?_c('fertilizing-date',{model:{value:(_vm.fertilizing),callback:function ($$v) {_vm.fertilizing=$$v},expression:\"fertilizing\"}}):_vm._e()],1)]),_c('div',{staticClass:\"row panel panel-gray\"},[_c('accordeon',{attrs:{\"id\":\"edit-activities\",\"text\":_vm.$ml.get('customPlantFormAddActivities')}},_vm._l((_vm.sortedActivities),function(activity,activityIdx){return _c('div',{key:activityIdx,ref:\"activities\",refInFor:true,staticClass:\"col-xs-12 col-md-6 activity-row\"},[_c('activit-edit-row',{model:{value:(_vm.customPlant.Activities[activityIdx]),callback:function ($$v) {_vm.$set(_vm.customPlant.Activities, activityIdx, $$v)},expression:\"customPlant.Activities[activityIdx]\"}})],1)}),0)],1),_c('div',{staticClass:\"row panel panel-gray\"},[_c('accordeon',{attrs:{\"id\":\"edit-detail-information\",\"text\":_vm.$ml.get('customPlantFormAddDetailInformation')}},[_vm._l((_vm.attributGroups),function(attributeGroup,index){return _c('div',{key:attributeGroup.Id,staticClass:\"col-xs-12 col-sm-6 col-md-4 col-lg-3\"},[(attributeGroup.Group.GroupType == 1)?_c('div',[_c('label',[_vm._v(_vm._s(_vm.translateName(attributeGroup.Name)))]),_c('dropdown',{ref:\"attributes\",refInFor:true,attrs:{\"list\":_vm.attributeList(attributeGroup),\"noSelectionText\":_vm.$ml.get('dropDownNoSelection'),\"selectedValue\":_vm.selectedValueByAttributeGroup(attributeGroup)}})],1):_vm._e(),(attributeGroup.Group.GroupType == 2)?_c('div',[(_vm.shouldShowLabel(attributeGroup))?_c('label',{staticClass:\"dropdown-label\"},[_vm._v(_vm._s(_vm.translateName(attributeGroup.Name)))]):_c('label',{staticClass:\"dropdown-label\"}),_c('dropdown-multiselect',{ref:\"attributes\",refInFor:true,attrs:{\"list\":_vm.attributeList(attributeGroup),\"index\":index,\"noSelectionText\":_vm.$ml.get('dropDownNoSelection'),\"selectedValues\":_vm.selectedValuesByAttributeGroup(attributeGroup)}})],1):_vm._e()])}),_c('div',{staticClass:\"col-xs-12 col-sm-6 col-md-4 col-lg-3\"},[_c('label',[_vm._v(_vm._s(_vm.$ml.get('plantGroupDropdownTitle')))]),_c('dropdown',{ref:\"productGroupsRef\",attrs:{\"list\":_vm.productGroupsDropDown,\"noSelectionText\":_vm.$ml.get('dropDownNoSelection'),\"selectedValue\":_vm.customPlant.PlantGroupIdentifier}})],1)],2)],1),_c('div',{staticClass:\"row panel panel-gray\"},[_c('div',{staticClass:\"col-6\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.addToCommunity),expression:\"addToCommunity\"}],attrs:{\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.addToCommunity)?_vm._i(_vm.addToCommunity,null)>-1:(_vm.addToCommunity)},on:{\"change\":function($event){var $$a=_vm.addToCommunity,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.addToCommunity=$$a.concat([$$v]))}else{$$i>-1&&(_vm.addToCommunity=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.addToCommunity=$$c}}}}),_vm._v(\" \"+_vm._s(_vm.$ml.get(\"customPlantFormAddToLandiCommunity\"))+\" \")]),_c('div',{staticClass:\"col-6\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.allowToUpload),expression:\"allowToUpload\"}],attrs:{\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.allowToUpload)?_vm._i(_vm.allowToUpload,null)>-1:(_vm.allowToUpload)},on:{\"change\":function($event){var $$a=_vm.allowToUpload,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.allowToUpload=$$a.concat([$$v]))}else{$$i>-1&&(_vm.allowToUpload=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.allowToUpload=$$c}}}}),_vm._v(\" \"+_vm._s(_vm.$ml.get(\"customPlantFormSubmitImage\"))+\" \")]),_c('div',{staticClass:\"col-6\",staticStyle:{\"text-align\":\"right\"}},[(_vm.customPlant.Id <= 0)?_c('button',{staticClass:\"btn btn-primary\",attrs:{\"id\":\"add-plant-to-calendar\",\"disabled\":!_vm.valid && _vm.clickedOnceOnSave},on:{\"click\":_vm.saveCustomPlant}},[_c('v-icon',{staticStyle:{\"margin-right\":\"10px\"},attrs:{\"name\":\"calendar-plus\",\"scale\":\"1\"}}),_vm._v(\" \"+_vm._s(_vm.$ml.get(\"customPlantFormAddToCalendar\"))+\" \")],1):_vm._e(),(_vm.customPlant.Id > 0)?_c('button',{staticClass:\"btn btn-primary\",attrs:{\"disabled\":!_vm.valid},on:{\"click\":_vm.saveCustomPlant}},[_c('v-icon',{staticStyle:{\"margin-right\":\"10px\"},attrs:{\"name\":\"save\",\"scale\":\"1\"}}),_vm._v(\" \"+_vm._s(_vm.$ml.get(\"customPlantFormSavePlant\"))+\" \")],1):_vm._e(),(!_vm.valid && _vm.clickedOnceOnSave)?_c('p',{staticStyle:{\"color\":\"red\"}},[_vm._v(\" \"+_vm._s(_vm.$ml.get(\"customPlantFormErrorInvalidForm\"))+\" \")]):_vm._e()])]),_c('link',{attrs:{\"rel\":\"stylesheet\",\"type\":\"text/css\",\"href\":\"../../../../frontend/landi/Frameworks/jquery/jquery-ui.css\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:[_vm.isOpen? 'open': '','dropdown-container', 'dropdown-container-'+ _vm.index]},[(_vm.selectedItem && _vm.selectedItem.Key != '')?_c('div',{staticClass:\"dropdown-button noselect\",on:{\"click\":_vm.triggerDropdown}},[_c('span',{staticClass:\"dropdown-label\",attrs:{\"value\":_vm.selectedItem.Key}},[_vm._v(_vm._s(_vm.getSelectedItemByValue(_vm.selectedItem.Key).Value))])]):_c('div',{staticClass:\"dropdown-button noselect\",on:{\"click\":_vm.triggerDropdown}},[_c('span',{staticClass:\"dropdown-label\",attrs:{\"value\":\"\"}},[_vm._v(_vm._s(_vm.noSelectionText))])]),_c('div',{staticClass:\"dropdown-list\"},[_c('ul',_vm._l((_vm.list),function(item){return _c('li',{key:item.key,staticClass:\"select-option select-sort-option\",attrs:{\"value\":item.key},on:{\"click\":function($event){return _vm.onSelect(item)}}},[_vm._v(\" \"+_vm._s(item.Value)+\" \")])}),0)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Prop, Vue, Mixins, Watch } from 'vue-property-decorator';\r\nimport { KeyValuePair } from '../../entities/entities';\r\ndeclare var $: any;\r\n\r\n@Component({})\r\nexport default class DropDown extends Vue {\r\n @Prop({ required: true, default: [] })\r\n public list!: Array>;\r\n @Prop() private selectedValue!: string;\r\n @Prop() private noSelectionText!: string;\r\n @Prop() private index!: number;\r\n\r\n $: any;\r\n\r\n isOpen: boolean = false;\r\n selectedItem: KeyValuePair = this.getSelectedItemByValue('');\r\n onSelect(item: KeyValuePair) {\r\n this.selectedItem = item;\r\n this.isOpen = false;\r\n }\r\n created() {\r\n if (this.selectedValue) {\r\n this.selectedItem = this.getSelectedItemByValue(this.selectedValue);\r\n }\r\n }\r\n\r\n triggerDropdown(event: Event) {\r\n $(document).mouseup(this.closeMenu);\r\n\r\n this.isOpen = !this.isOpen;\r\n }\r\n\r\n closeMenu(e: Event) {\r\n const $menu = $('.dropdown-container-' + this.index);\r\n if (!$menu.is(e.target) && $menu.has(e.target).length === 0) {\r\n // ... nor a descendant of the container\r\n this.isOpen = false;\r\n }\r\n }\r\n\r\n @Watch('selectedValue')\r\n onSelectedValuesChange(newVal: string, oldVal: string) {\r\n if (newVal != oldVal) {\r\n this.selectedItem = this.getSelectedItemByValue(this.selectedValue);\r\n }\r\n }\r\n\r\n getSelectedItemByValue(value: string): KeyValuePair {\r\n var result = this.list.filter(x => x.Key == value);\r\n if (result && result.length > 0) {\r\n return result[0];\r\n } else {\r\n return { Key: '', Value: 'not found' } as KeyValuePair;\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DropDown.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DropDown.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DropDown.vue?vue&type=template&id=04ee5c1a&scoped=true&\"\nimport script from \"./DropDown.vue?vue&type=script&lang=ts&\"\nexport * from \"./DropDown.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DropDown.vue?vue&type=style&index=0&id=04ee5c1a&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"04ee5c1a\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.list.length > 1)?_c('div',[_c('div',{class:[_vm.isOpen? 'open': '','dropdown-container', 'dropdown-container-'+ _vm.index]},[(_vm.selectedItems && _vm.selectedItems.length > 0)?_c('div',{staticClass:\"dropdown-button noselect\",on:{\"click\":_vm.triggerDropdown}},[_c('span',{staticClass:\"dropdown-label\",attrs:{\"value\":_vm.selectedItems.map(function (x){ return x.Key; }).join(', ')}},[_vm._v(_vm._s(_vm.selectedItems.map(function (x){ return x.Value; }).join(', ')))])]):_c('div',{staticClass:\"dropdown-button noselect\",on:{\"click\":_vm.triggerDropdown}},[_c('span',{staticClass:\"dropdown-label\",attrs:{\"value\":\"\"}},[_vm._v(_vm._s(_vm.noSelectionText))])]),_c('div',{staticClass:\"dropdown-list\"},[_c('ul',_vm._l((_vm.list),function(item){return _c('li',{key:item.key,attrs:{\"value\":item.key}},[_c('label',[_c('input',{staticClass:\"select-option select-multi-option\",attrs:{\"type\":\"checkbox\"},domProps:{\"value\":item.Key,\"checked\":_vm.isChecked(item)},on:{\"click\":function($event){return _vm.onSelect(item)}}}),_vm._v(_vm._s(item.Value)+\" \")])])}),0)])])]):(_vm.list.length === 1)?_c('div',[_c('div',{staticClass:\"dropdown-container\"},[_c('div',{staticClass:\"dropdown-button no-icon\"},[_c('label',[_c('input',{staticClass:\"select-option select-multi-option\",attrs:{\"type\":\"checkbox\"},domProps:{\"value\":_vm.list[0].Key,\"checked\":_vm.isChecked(_vm.list[0])},on:{\"click\":function($event){return _vm.onSelect(_vm.list[0])}}}),_vm._v(_vm._s(_vm.list[0].Value)+\" \")])])])]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Prop, Vue, Mixins, Watch } from \"vue-property-decorator\";\r\nimport { KeyValuePair } from \"../../entities/entities\";\r\ndeclare var $: any;\r\n\r\n@Component({})\r\nexport default class DropDownMultiSelect extends Vue {\r\n @Prop({ required: true, default: [] })\r\n public list!: Array>;\r\n @Prop() private selectedValues!: string[];\r\n @Prop() private noSelectionText!: string;\r\n @Prop() private index!: number;\r\n\r\n $: any;\r\n isOpen: boolean = false;\r\n selectedItems: Array> = this.getSelectedItemByValue([\r\n ''\r\n ]);\r\n onSelect(item: KeyValuePair) {\r\n const idx = this.selectedItems.indexOf(item);\r\n if (idx > -1) {\r\n this.selectedItems.splice(idx, 1);\r\n } else {\r\n this.selectedItems.push(item);\r\n }\r\n }\r\n\r\n triggerDropdown(event: Event) {\r\n $(document).mouseup(this.closeMenu);\r\n\r\n this.isOpen = !this.isOpen;\r\n }\r\n\r\n closeMenu(e: Event) {\r\n const $menu = $('.dropdown-container-'+ this.index);\r\n if (\r\n !$menu.is(e.target) &&\r\n $menu.has(e.target).length === 0 \r\n ) {\r\n // ... nor a descendant of the container\r\n this.isOpen = false;\r\n }\r\n }\r\n\r\n created() {\r\n if (this.selectedValues) {\r\n this.selectedItems = this.getSelectedItemByValue(this.selectedValues);\r\n }\r\n }\r\n\r\n @Watch('selectedValues')\r\n onSelectedValuesChange(newVal: string[], oldVal: string[]){\r\n\tif(this.selectedValues && newVal.join('')!=oldVal.join('')){\r\n\t\tthis.selectedItems = this.getSelectedItemByValue(this.selectedValues);\r\n\t} \r\n }\r\n\r\n getSelectedItemByValue(values: string[]): Array>{\r\n var result = this.list.filter(x=>values.map(String).indexOf(x.Key)>-1);\r\n return result;\r\n }\r\n\r\n isChecked(item: KeyValuePair)\r\n {\r\n\t if (this.selectedValues){\r\n\t\tconst isChecked = (this.selectedValues.filter(x=>x==item.Key).length > 0);\r\n\t\treturn isChecked;\r\n\t }\r\n\t else {\r\n\t\t return false;\r\n\t }\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DropDownMultiSelect.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DropDownMultiSelect.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DropDownMultiSelect.vue?vue&type=template&id=6f710230&scoped=true&\"\nimport script from \"./DropDownMultiSelect.vue?vue&type=script&lang=ts&\"\nexport * from \"./DropDownMultiSelect.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DropDownMultiSelect.vue?vue&type=style&index=0&id=6f710230&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6f710230\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"box\"},[_c('div',{staticClass:\"uploadBox\"},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isImageSet),expression:\"!isImageSet\"}]},[_c('v-icon',{attrs:{\"name\":\"upload\",\"color\":\"green\",\"scale\":\"5\"},on:{\"click\":_vm.selectFile}}),_c('br')],1),_c('input',{ref:\"hiddenFileUpload\",staticClass:\"box__file\",staticStyle:{\"display\":\"none\"},attrs:{\"type\":\"file\",\"id\":\"file\",\"accept\":_vm.acceptFileTypes},on:{\"change\":_vm.fileSelected}}),_c('div',{staticClass:\"filename\"},[_vm._v(_vm._s(_vm.filename))]),_c('img',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isImageSet),expression:\"isImageSet\"}],attrs:{\"src\":_vm.previewImageUrl}}),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isImageSet),expression:\"isImageSet\"}]},[_c('br'),_c('v-icon',{attrs:{\"name\":\"trash-alt\",\"color\":\"red\",\"scale\":\"2\"},on:{\"click\":_vm.removeFile}})],1)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport Vue from 'vue';\r\nimport Icon from 'vue-awesome/components/Icon.vue';\r\nimport CalendarMonthDrawModeMixin from '../../mixins/CalendarMonthDrawMode';\r\nimport { mapGetters } from 'vuex';\r\nimport { Component, Prop, Watch } from 'vue-property-decorator';\r\nimport 'vue-awesome/icons/upload';\r\nimport 'vue-awesome/icons/trash-alt';\r\n\r\ndeclare var $: any;\r\n\r\n@Component({\r\n components: {\r\n 'v-icon': Icon\r\n },\r\n computed: {\r\n ...mapGetters({\r\n filterAttribute: 'filterAttribute'\r\n })\r\n },\r\n mixins: [CalendarMonthDrawModeMixin]\r\n})\r\nexport default class FileUpload extends Vue {\r\n $refs!: {\r\n hiddenFileUpload: HTMLInputElement;\r\n };\r\n @Prop() accept!: string;\r\n @Prop() showImagePreview!: boolean;\r\n @Prop() imageUrl!: string;\r\n\r\n localFilename: string = '';\r\n localFiles: FileList = {} as FileList;\r\n localPreviewImageUrl = '';\r\n\r\n @Watch('imageUrl')\r\n onImageUrlChange(newVal: string, oldVal: string){\r\n if(newVal != oldVal){\r\n this.localPreviewImageUrl = this.imageUrl\r\n }\r\n }\r\n\r\n clear() {\r\n this.localFilename = '';\r\n this.localFiles = {} as FileList;\r\n this.localPreviewImageUrl = '';\r\n this.$refs.hiddenFileUpload.value = '';\r\n }\r\n selectFile() {\r\n this.$refs.hiddenFileUpload.click();\r\n }\r\n\r\n removeFile() {\r\n this.clear();\r\n this.$emit('fileRemoved');\r\n }\r\n\r\n fileSelected(a: Event) {\r\n const fileuploadInput = a.target as HTMLInputElement;\r\n if (\r\n fileuploadInput &&\r\n fileuploadInput.files &&\r\n fileuploadInput.files.length > 0\r\n ) {\r\n this.localFilename = fileuploadInput.files[0].name;\r\n this.localFiles = fileuploadInput.files;\r\n this.previewImage();\r\n } else {\r\n this.localFilename = '';\r\n }\r\n }\r\n\r\n previewImage() {\r\n const self = this;\r\n if (this.localFiles && this.localFiles[0]) {\r\n const reader = new FileReader();\r\n\r\n reader.onload = function(e: any) {\r\n self.localPreviewImageUrl = e.target.result;\r\n };\r\n\r\n reader.readAsDataURL(this.localFiles[0]);\r\n }\r\n }\r\n\r\n get previewImageUrl(): string {\r\n if (this.localPreviewImageUrl) {\r\n return this.localPreviewImageUrl;\r\n } else {\r\n return '';\r\n }\r\n }\r\n\r\n get acceptFileTypes(): string {\r\n if (this.accept) {\r\n return this.accept;\r\n } else {\r\n return 'image/*';\r\n }\r\n }\r\n\r\n get filename(): string {\r\n if (this.localFilename) {\r\n return this.localFilename;\r\n } else {\r\n return '';\r\n }\r\n }\r\n\r\n get files(): FileList {\r\n return this.localFiles;\r\n }\r\n\r\n get showImage(): boolean {\r\n if (this.showImagePreview) {\r\n return this.showImagePreview;\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n get isImageSet(): boolean {\r\n return (\r\n !!this.previewImageUrl && this.previewImageUrl != '' && this.showImage\r\n );\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileUpload.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileUpload.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FileUpload.vue?vue&type=template&id=fc184498&scoped=true&\"\nimport script from \"./FileUpload.vue?vue&type=script&lang=ts&\"\nexport * from \"./FileUpload.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./FileUpload.vue?vue&type=style&index=0&id=fc184498&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"fc184498\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport Icon from \"vue-awesome/components/Icon.vue\";\r\nimport CalendarMonthDrawModeMixin from \"../../mixins/CalendarMonthDrawMode\";\r\nimport { Component, Prop, Vue, Mixins, Watch } from \"vue-property-decorator\";\r\nimport { mixins } from \"vue-class-component\";\r\nimport { STORE_ACTIONS } from \"../../store/storeActions\";\r\nimport { mapGetters } from \"vuex\";\r\nimport {\r\n IFilterAttribute,\r\n IAttributeGroup,\r\n IAttribute,\r\n KeyValuePair,\r\n ICustomPlant,\r\n CustomPlant,\r\n ActivityType,\r\n CustomPlantActivity,\r\n Plant,\r\n ICustomPlantActivity,\r\n IMultiLanguageString,\r\n IActivity,\r\n IProductGroup,\r\n} from \"../../entities/entities\";\r\nimport DropDown from \"../general/DropDown.vue\";\r\nimport DropDownMultiSelect from \"../general/DropDownMultiSelect.vue\";\r\nimport FileUpload from \"../general/FileUpload.vue\";\r\nimport Accordeon from \"../general/Accordeon.vue\";\r\nimport ActivityDate from \"../general/ActivityDate.vue\";\r\nimport ActivityDateWithIcon from \"../general/ActivityDateWithIcon.vue\";\r\nimport { ActivityHelper } from \"../../helpers/activityHelper\";\r\nimport JQueryHelper from \"../../helpers/jQueryHelper\";\r\nimport \"vue-awesome/icons/calendar-plus\";\r\nimport \"vue-awesome/icons/save\";\r\nimport moment from \"moment\";\r\nimport CalendarHelper from \"../../helpers/calendarHelper\";\r\nimport ToastrHelper from \"../../helpers/toastrHelper\";\r\ndeclare var $: any;\r\ndeclare var $ml: any;\r\n\r\n@Component({\r\n components: {\r\n dropdown: DropDown,\r\n \"dropdown-multiselect\": DropDownMultiSelect,\r\n \"v-icon\": Icon,\r\n fileupload: FileUpload,\r\n accordeon: Accordeon,\r\n \"fertilizing-date\": ActivityDate,\r\n \"activit-edit-row\": ActivityDateWithIcon,\r\n },\r\n computed: {\r\n ...mapGetters({\r\n filterAttribute: \"filterAttribute\",\r\n productGroups: \"productGroups\"\r\n }),\r\n },\r\n mixins: [CalendarMonthDrawModeMixin],\r\n})\r\nexport default class TheCustomPlantEdit extends Mixins(\r\n CalendarMonthDrawModeMixin\r\n) {\r\n $refs!: {\r\n attributes: Array;\r\n fileupload: FileUpload;\r\n activities: HTMLDivElement[];\r\n productGroupsRef: DropDown;\r\n };\r\n @Prop({ required: true, default: 0 })\r\n private gardenId!: number;\r\n\r\n @Prop({ required: false, default: -1 })\r\n private compositionId!: number;\r\n\r\n @Prop({ required: false, default: -1 })\r\n private initSeedingDate!: Date;\r\n\r\n @Watch(\"initSeedingDate\")\r\n onSeedingDateChange(newVal: Date, oldVal: Date) {\r\n if (this.initSeedingDate) {\r\n this.seedingDate = moment(String(this.initSeedingDate)).format(\r\n \"DD.MM.YYYY\"\r\n );\r\n }\r\n }\r\n\r\n filterAttribute!: IFilterAttribute;\r\n clickedOnceOnSave: boolean = false;\r\n productGroups!: IProductGroup[];\r\n\r\n @Prop({\r\n required: false,\r\n default: () => {\r\n return new CustomPlant();\r\n },\r\n })\r\n customPlant!: ICustomPlant;\r\n isFileRemove: boolean = false;\r\n\r\n @Watch(\"customPlant\")\r\n onCustomPlantchange(newVal: ICustomPlant, oldVal: ICustomPlant) {\r\n this.fillActivities();\r\n if (newVal && newVal.Activities && newVal.Activities.length) {\r\n let filterAct = newVal.Activities.filter(\r\n (a) => a.ActivityType == ActivityType.Fertilizing\r\n );\r\n if (filterAct && filterAct.length) {\r\n this.fertilizing = { ...filterAct[0] };\r\n }\r\n }\r\n Vue.set(\r\n this.fertilizing,\r\n \"isValid\",\r\n this.validateActivity(this.fertilizing)\r\n );\r\n }\r\n\r\n seedingDate: string = \"\";\r\n fertilizing: ICustomPlantActivity = new CustomPlantActivity(\r\n ActivityType.Fertilizing,\r\n 0,\r\n 0,\r\n 0\r\n );\r\n addToCommunity: boolean = false;\r\n allowToUpload: boolean = false;\r\n\r\n $ml: any;\r\n\r\n created() {\r\n this.$store.dispatch(STORE_ACTIONS.LOAD_ATTRIUBTES);\r\n this.$store.dispatch(STORE_ACTIONS.LOAD_PRODUCT_GROUPS);\r\n this.fillActivities();\r\n }\r\n\r\n mounted() {\r\n const self = this;\r\n $(\".datepicker\").datepicker(\r\n JQueryHelper.getCalendarOptionsForDate(this.currentLanguage, self)\r\n );\r\n\r\n $(\".input-group-datepicker\").click(function (event: any) {\r\n let parentIg = $(event.target).closest(\".input-group-datepicker\");\r\n let datepicker = parentIg.children(\".datepicker\");\r\n datepicker.datepicker(\"show\");\r\n });\r\n\r\n // esure that vue can track changes to this element that is manipulated via other library\r\n $(\"input[name=fertilizingPeriod]:radio\").change(function (e: any) {\r\n self.fertilizing.Period = Number(e.target.value);\r\n });\r\n }\r\n\r\n upload(customPlantId: number) {\r\n if (this.$refs.fileupload.localFiles && this.$refs.fileupload.localFiles.length > 0) {\r\n const file = this.$refs.fileupload.localFiles[0];\r\n\r\n if (this.isFileRemove) {\r\n // if customer uploads directly a new picture, then it's not a remove.\r\n // this upload will handle replacing picture\r\n this.isFileRemove = false;\r\n }\r\n\r\n return this.$store.dispatch(STORE_ACTIONS.UPLOAD_CUSTOMPLANT_FILE, {\r\n file,\r\n customPlantId,\r\n });\r\n }\r\n }\r\n\r\n async removeFile() {\r\n await this.$store.dispatch(STORE_ACTIONS.REMOVE_CUSTOMPLANT_FILE, {\r\n customPlantId: this.customPlant.Id,\r\n });\r\n this.isFileRemove = false;\r\n }\r\n\r\n fillActivities() {\r\n // init customplant so it can be created\r\n if (this.customPlant) {\r\n const activites = this.customPlant.Activities\r\n ? this.customPlant.Activities\r\n : [];\r\n // add activities to\r\n for (let item in ActivityType) {\r\n // exclude Fertilizing == 5 && and already filled activities (in edit mode)\r\n if (!isNaN(Number(item)) && Number(item) != 5) {\r\n const a = Number(item) as ActivityType;\r\n const activity = new CustomPlantActivity(a);\r\n Vue.set(activity, \"isValid\", this.validateActivity(activity));\r\n if (\r\n activites.filter((a) => a.ActivityType == Number(item)).length == 0\r\n ) {\r\n this.customPlant.Activities.push(activity);\r\n }\r\n }\r\n }\r\n\r\n // remove fertilizing from activitie list\r\n const fertilizing = this.customPlant.Activities.filter(\r\n (a) => a.ActivityType == ActivityType.Fertilizing\r\n );\r\n if (fertilizing && fertilizing.length > 0) {\r\n const idx = this.customPlant.Activities.indexOf(fertilizing[0]);\r\n this.customPlant.Activities.splice(idx, 1);\r\n }\r\n\r\n Vue.set(\r\n this.fertilizing,\r\n \"isValid\",\r\n this.validateActivity(this.fertilizing)\r\n );\r\n } else {\r\n // todo: load custom plant from api when in edit mode\r\n }\r\n }\r\n async saveCustomPlant() {\r\n this.clickedOnceOnSave = true;\r\n if (this.valid) {\r\n this.customPlant.State = this.addToCommunity ? 3 : 1;\r\n\r\n const singleSelectAttributes = this.$refs.attributes\r\n .filter(\r\n (a: any) =>\r\n a.selectedItem &&\r\n a.selectedItem.Key != \"0\" &&\r\n a.selectedItem.Key != \"\"\r\n )\r\n .map((a: any) => a.selectedItem);\r\n\r\n const multiSelectAttributes = this.$refs.attributes\r\n .filter((a: any) => a.selectedItems && a.selectedItems.length > 0)\r\n .flatMap((a: any) => a.selectedItems);\r\n\r\n this.customPlant.Attributes = [\r\n ...singleSelectAttributes,\r\n ...multiSelectAttributes,\r\n ].map((a) => {\r\n return { AttributeId: a.Key } as any;\r\n });\r\n\r\n const selectedProductGroupIdentifier = this.$refs.productGroupsRef.selectedItem.Key;\r\n if(selectedProductGroupIdentifier)\r\n {\r\n this.customPlant.PlantGroupIdentifier = selectedProductGroupIdentifier;\r\n }\r\n\r\n if (this.customPlant.Id <= 0) {\r\n const copyCustomPlant = { ...this.customPlant };\r\n // remove empty\r\n copyCustomPlant.Activities = this.customPlant.Activities.filter(\r\n (a) => a.StartWeek > 0 && a.EndWeek > 0\r\n );\r\n if (\r\n this.fertilizing &&\r\n this.fertilizing.Period > 0 &&\r\n this.fertilizing.StartWeek > 0 &&\r\n this.fertilizing.EndWeek > 0\r\n ) {\r\n copyCustomPlant.Activities.push(this.fertilizing);\r\n }\r\n else {\r\n copyCustomPlant.Activities.push(new CustomPlantActivity(\r\n ActivityType.Fertilizing,\r\n 0,\r\n 0,\r\n 0\r\n ));\r\n }\r\n\r\n const cpResponse = (await this.$store.dispatch(\r\n STORE_ACTIONS.SAVE_CUSTOMPLANT,\r\n copyCustomPlant\r\n )) as ICustomPlant;\r\n this.customPlant.Id = cpResponse.Id;\r\n await this.upload(this.customPlant.Id);\r\n\r\n if (this.isFileRemove) {\r\n await this.removeFile();\r\n }\r\n\r\n this.addPlant(\r\n this.customPlant.Id,\r\n this.customPlant.Name,\r\n this.customPlant.Description\r\n );\r\n this.clearForm();\r\n ToastrHelper.Success(this.$ml.get(\"addPlantToCalendarSuccessMessage\"));\r\n this.clickedOnceOnSave = false;\r\n } else {\r\n // remove empty\r\n const copyCustomPlant = { ...this.customPlant };\r\n copyCustomPlant.Activities = this.customPlant.Activities.filter(\r\n (a) => a.OriginStartWeek > 0 && a.OriginEndWeek > 0\r\n );\r\n if (\r\n this.fertilizing &&\r\n this.fertilizing.Period > 0 &&\r\n this.fertilizing.StartWeek > 0 &&\r\n this.fertilizing.EndWeek > 0\r\n ) {\r\n copyCustomPlant.Activities.push(this.fertilizing);\r\n }\r\n else {\r\n copyCustomPlant.Activities.push(new CustomPlantActivity(\r\n ActivityType.Fertilizing,\r\n 0,\r\n 0,\r\n 0\r\n ));\r\n }\r\n const cpResponse = (await this.$store.dispatch(\r\n STORE_ACTIONS.UPDATE_CUSTOMPLANT,\r\n copyCustomPlant\r\n )) as ICustomPlant;\r\n this.customPlant.Id = cpResponse.Id;\r\n await this.upload(this.customPlant.Id);\r\n\r\n if (this.isFileRemove) {\r\n await this.removeFile();\r\n }\r\n this.updatePlant(\r\n this.customPlant.Id,\r\n this.customPlant.Name,\r\n this.customPlant.Description,\r\n this.compositionId\r\n );\r\n ToastrHelper.Success(this.$ml.get(\"addPlantToCalendarSuccessMessage\"));\r\n $(\"#the-modal\").modal(\"hide\");\r\n this.clickedOnceOnSave = false;\r\n // todo handle update aswell\r\n }\r\n }\r\n }\r\n\r\n get valid(): boolean {\r\n let valid = true;\r\n\r\n if (this.addToCommunity && !this.allowToUpload) {\r\n valid = false;\r\n }\r\n\r\n if (this.customPlant.Name.length <= 3) {\r\n valid = false;\r\n }\r\n if (\r\n this.fertilizing.Period > 0 &&\r\n (this.fertilizing.StartWeek == 0 || this.fertilizing.EndWeek == 0)\r\n ) {\r\n valid = false;\r\n }\r\n\r\n if (\r\n !!this.$refs.fileupload &&\r\n (!(this.$refs.fileupload.localFiles as FileList) ||\r\n !this.$refs.fileupload.localFiles.length)\r\n ) {\r\n valid = false;\r\n }\r\n\r\n // check activities but first set them all to valid\r\n this.customPlant.Activities.map((a) => {\r\n (a as any).isValid = true;\r\n });\r\n // validate activites\r\n const invalidAactivities = this.customPlant.Activities.filter(\r\n (a) => !this.validateActivity(a)\r\n );\r\n if (invalidAactivities.length > 0) {\r\n invalidAactivities.map((element) => {\r\n (element as any).isValid = false;\r\n });\r\n valid = false;\r\n }\r\n\r\n (this.fertilizing as any).isValid = this.validateActivity(this.fertilizing);\r\n if (!(this.fertilizing as any).isValid) {\r\n valid = false;\r\n }\r\n\r\n if (\r\n !CalendarHelper.isStringValidDate(this.seedingDate) &&\r\n this.seedingDate != \"\"\r\n ) {\r\n valid = false;\r\n }\r\n return valid;\r\n }\r\n\r\n validateActivity(activity: CustomPlantActivity): boolean {\r\n if (\r\n activity.ActivityType == ActivityType.Fertilizing &&\r\n activity.Period > 0 &&\r\n (activity.OriginStartWeek == 0 || activity.OriginEndWeek == 0)\r\n ) {\r\n return false;\r\n } else if (\r\n (activity.ActivityType != ActivityType.Fertilizing &&\r\n activity.Period == 0 &&\r\n activity.OriginStartWeek > 0 &&\r\n activity.OriginEndWeek == 0) ||\r\n (activity.OriginStartWeek == 0 && activity.OriginEndWeek > 0)\r\n ) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n clearForm() {\r\n this.customPlant = new CustomPlant();\r\n this.seedingDate = \"\";\r\n this.fertilizing = new CustomPlantActivity(\r\n ActivityType.Fertilizing,\r\n 0,\r\n 0,\r\n 0\r\n );\r\n this.$refs.fileupload.clear();\r\n }\r\n\r\n addPlant(plantId: number, name: string, description: string) {\r\n const myPlant = new Plant();\r\n myPlant.CompositionId = -1;\r\n myPlant.GardenId = this.gardenId;\r\n myPlant.Name = name;\r\n myPlant.CustomPlantId = plantId;\r\n myPlant.Description = description;\r\n if (this.seedingDate && this.seedingDate != \"\") {\r\n myPlant.SeedingDate = CalendarHelper.getDateByString(this.seedingDate);\r\n }\r\n this.$store.dispatch(STORE_ACTIONS.ADD_PLANT, myPlant);\r\n }\r\n\r\n updatePlant(\r\n plantId: number,\r\n name: string,\r\n description: string,\r\n compositionId: number\r\n ) {\r\n const myPlant = new Plant();\r\n myPlant.CompositionId = compositionId;\r\n myPlant.GardenId = this.gardenId;\r\n myPlant.Name = name;\r\n myPlant.CustomPlantId = plantId;\r\n myPlant.Description = description;\r\n if (this.seedingDate && this.seedingDate != \"\") {\r\n myPlant.SeedingDate = CalendarHelper.getDateByString(this.seedingDate);\r\n } else {\r\n myPlant.SeedingDate = null;\r\n }\r\n\r\n this.$store.dispatch(STORE_ACTIONS.UPDATE_LANDI_PLANT, myPlant);\r\n }\r\n\r\n attributeList(attributGroup?: IAttributeGroup): Array> {\r\n if (!attributGroup) {\r\n return [];\r\n }\r\n\r\n const attributes = this.usedAttributes.filter(\r\n (x) => x.AttributeGroupId == attributGroup.Id\r\n );\r\n if (attributGroup.Group.GroupType == 1) {\r\n return [\r\n {\r\n Key: \"0\",\r\n Value: this.$ml.get(\"dropDownNoSelection\"),\r\n } as KeyValuePair,\r\n ].concat(\r\n attributes.map>((a) => ({\r\n Key: a.Id.toString(),\r\n Value: (a.Name as any)[this.currentLanguage],\r\n }))\r\n );\r\n } else {\r\n return attributes.map>((a) => ({\r\n Key: a.Id.toString(),\r\n Value: (a.Name as any)[this.currentLanguage],\r\n }));\r\n }\r\n }\r\n\r\n get productGroupsDropDown(): Array> {\r\n const list = this.productGroups.map>((x)=> ({\r\n Key: x.Identifier,\r\n Value: x.Name ? (x.Name as any)[this.currentLanguage] : x.Identifier\r\n }));\r\n\r\n if(list)\r\n {\r\n list.sort((a, b) => {\r\n return a.Value > b.Value ? 1 : -1;\r\n });\r\n \r\n return list;\r\n }\r\n return [];\r\n }\r\n\r\n multiLangageString(item: IMultiLanguageString): string {\r\n return (item as any)[this.currentLanguage];\r\n }\r\n\r\n translateName(name: IMultiLanguageString): string {\r\n const translatedName = this.multiLangageString(name);\r\n return translatedName;\r\n }\r\n\r\n get attributGroups(): IAttributeGroup[] {\r\n return this.filterAttribute.AttributeGroups;\r\n }\r\n\r\n selectedValuesByAttributeGroup(attributeGroup: IAttributeGroup): Number[] {\r\n return this.customPlant.Attributes.filter(\r\n (x) => x.AttributeGroupId == attributeGroup.AttributeGroupId\r\n ).map((a) => a.AttributeId);\r\n }\r\n\r\n selectedValueByAttributeGroup(attributeGroup: IAttributeGroup): Number {\r\n const filteredAttributeGroup = this.customPlant.Attributes.filter(\r\n (x) => x.AttributeGroupId == attributeGroup.AttributeGroupId\r\n );\r\n return filteredAttributeGroup.length > 0\r\n ? filteredAttributeGroup[0].AttributeId\r\n : 0;\r\n }\r\n\r\n get usedAttributes(): IAttribute[] {\r\n return this.filterAttribute.UsedAttributes;\r\n }\r\n\r\n get cssClassFertilizing(): string {\r\n return \"\";\r\n }\r\n\r\n get currentLanguage(): string {\r\n return Vue.prototype.$Language;\r\n }\r\n\r\n get sortedActivities(): ICustomPlantActivity[] {\r\n return this.customPlant.Activities.sort((a, b) => {\r\n return a.ActivityType < b.ActivityType ? -1 : 0;\r\n });\r\n }\r\n\r\n shouldShowLabel(attributeGroup: IAttributeGroup) {\r\n const attributes = this.attributeList(attributeGroup);\r\n\r\n if (attributes.length > 1) {\r\n return true;\r\n }\r\n\r\n if (attributes.length === 1) {\r\n const attribute = attributes[0];\r\n\r\n if (attribute.Value !== this.multiLangageString(attributeGroup.Name)) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheCustomPlantEdit.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheCustomPlantEdit.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TheCustomPlantEdit.vue?vue&type=template&id=5a18f222&scoped=true&\"\nimport script from \"./TheCustomPlantEdit.vue?vue&type=script&lang=ts&\"\nexport * from \"./TheCustomPlantEdit.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TheCustomPlantEdit.vue?vue&type=style&index=0&id=5a18f222&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5a18f222\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Prop, Vue, Mixins, Watch } from 'vue-property-decorator';\r\nimport {\r\n IPlant,\r\n Plant,\r\n ICustomPlant,\r\n CustomPlant\r\n} from '../../entities/entities';\r\nimport TheLandiPlantEdit from './TheLandiPlantEdit.vue';\r\nimport TheCustomPlantEdit from './TheCustomPlantEdit.vue';\r\nimport axios, { AxiosResponse } from 'axios';\r\nimport { STORE_ACTIONS } from '@/store/storeActions';\r\nimport TutorialHelper from '@/helpers/tutorialHelper';\r\ndeclare var $: any;\r\n\r\n@Component({\r\n components: {\r\n 'landi-plant-edit': TheLandiPlantEdit,\r\n 'custom-plant-edit': TheCustomPlantEdit\r\n }\r\n})\r\nexport default class ThePlantEdit extends Vue {\r\n public plant: IPlant = new Plant();\r\n private customPlant: ICustomPlant = new CustomPlant();\r\n\t$ml: any;\r\n\r\n\tbeforeUnmount() {\r\n\t\tTutorialHelper.stop();\r\n\t}\r\n\r\n @Watch('plant')\r\n onPlantChange(newPlant: IPlant, oldPlant: IPlant) {\r\n if(\r\n (!!newPlant.CustomPlantId && newPlant.CustomPlantId !== oldPlant.CustomPlantId) || \r\n (!!newPlant.ProductPlantId && newPlant.ProductPlantId !== oldPlant.ProductPlantId)\r\n ){\r\n if (newPlant.CustomPlantId && newPlant.PlantBelongToUser) {\r\n this.toCustomPlant(newPlant);\r\n }\r\n else {\r\n this.$nextTick(() => this.$emit('onLoaded'));\r\n }\r\n }\r\n }\r\n\r\n async toCustomPlant(plant: IPlant) {\r\n let response = await axios.get>(\r\n `/api/${Vue.prototype.$Language}/plant/${plant.CustomPlantId}`\r\n );\r\n\r\n if (response.status == 200) {\r\n this.customPlant = response.data;\r\n this.$nextTick(() => this.$emit('onLoaded'));\r\n }\r\n }\r\n\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ThePlantEdit.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ThePlantEdit.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ThePlantEdit.vue?vue&type=template&id=4c04ae3c&\"\nimport script from \"./ThePlantEdit.vue?vue&type=script&lang=ts&\"\nexport * from \"./ThePlantEdit.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"col-md-12\"},[_c('input',{attrs:{\"id\":\"garden-id\",\"type\":\"hidden\"},domProps:{\"value\":_vm.gardenId}}),_c('div',{staticClass:\"tab-navigation-container\"},[_c('div',{staticClass:\"tab-content\"},[_c('ul',{staticClass:\"tab-navigation clearfix\"},[_c('li',{staticClass:\"tab active\"},[_c('a',{staticClass:\"navigation-item-link\",attrs:{\"id\":\"search-all-tab\",\"data-toggle\":\"tab\",\"href\":\"#landi-plant\"}},[_c('span',{staticClass:\"navigation-item-text navigation-item-text-black\",domProps:{\"textContent\":_vm._s(_vm.$ml.get('modalAddPlantsSelectFromLandi'))}})])]),_c('li',{staticClass:\"tab\"},[_c('a',{staticClass:\"navigation-item-link\",attrs:{\"id\":\"search-products-tab\",\"data-toggle\":\"tab\",\"href\":\"#custom-plants\"}},[_c('span',{staticClass:\"navigation-item-text navigation-item-text-black\",domProps:{\"textContent\":_vm._s(_vm.$ml.get('modalAddPlantsSelectCustom'))}})])])])])]),_c('div',{staticClass:\"tab-content\"},[_c('div',{staticClass:\"tab-pane active\",attrs:{\"id\":\"landi-plant\"}},[(_vm.isLoading)?_c('div',{staticClass:\"loader\",staticStyle:{\"margin-left\":\"50%\"}},[_c('img',{attrs:{\"src\":\"/Frontend/Landi/Images/ajax-loader.gif\"}})]):_vm._e(),_c('div',{attrs:{\"id\":\"gardenplanerLandiPlants\"}})]),_c('div',{staticClass:\"tab-pane\",attrs:{\"id\":\"custom-plants\"}},[_c('div',{staticClass:\"panel panel-gray\"},[(_vm.userIsLoggedIn)?_c('accoredeon',{attrs:{\"id\":\"add-plant-toggle\",\"text\":_vm.$ml.get('calendarAddPlantCreateCustomPlant'),\"chevronLeft\":false,\"isOpen\":_vm.isCustomPlantOpen === true},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('v-icon',{staticClass:\"middle\",staticStyle:{\"margin-right\":\"5px\"},attrs:{\"name\":\"plus-square\",\"color\":\"green\",\"scale\":\"1.5\"}})]},proxy:true}],null,false,1300643068)},[_c('custom-plant-edit',{attrs:{\"gardenId\":_vm.gardenId}})],1):_vm._e(),_c('accoredeon',{attrs:{\"id\":\"add-community-custom-plant\",\"text\":_vm.$ml.get('calendarAddPlantAddCommunityCustomPlant'),\"chevronLeft\":false,\"isOpen\":_vm.isCustomCommunityPlantOpen === true},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('v-icon',{staticClass:\"middle\",staticStyle:{\"margin-right\":\"5px\"},attrs:{\"name\":\"plus-square\",\"color\":\"green\",\"scale\":\"1.5\"}})]},proxy:true}])},[(_vm.isCustomPlantsLoading)?_c('div',{staticClass:\"loader\",staticStyle:{\"margin-left\":\"50%\"}},[_c('img',{attrs:{\"src\":\"/Frontend/Landi/Images/ajax-loader.gif\"}})]):_vm._e(),_c('div',{attrs:{\"id\":\"gardenplanerCustomPlants\"}})])],1)])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Vue, Mixins, Watch } from 'vue-property-decorator';\r\nimport CalendarMonthDrawModeMixin from '../../mixins/CalendarMonthDrawMode';\r\nimport { STORE_ACTIONS } from '../../store/storeActions';\r\nimport { Plant, IGarden, IPlant } from '../../entities/entities';\r\nimport Axios, { AxiosResponse } from 'axios';\r\nimport TheCustomPlantEdit from '../plant/TheCustomPlantEdit.vue';\r\nimport Accordeon from '../general/Accordeon.vue';\r\nimport 'vue-awesome/icons/plus-square';\r\nimport Icon from 'vue-awesome/components/Icon.vue';\r\nimport { mapGetters } from 'vuex';\r\nimport ToastrHelper from '../../helpers/toastrHelper';\r\nimport TutorialHelper from \"../../helpers/tutorialHelper\";\r\ndeclare var $: any;\r\ndeclare var Landi: any;\r\ndeclare var window: any;\r\ndeclare var $ml: any;\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t'custom-plant-edit': TheCustomPlantEdit,\r\n\t\t'accoredeon': Accordeon,\r\n\t\t'v-icon': Icon\r\n\t},\r\n\tcomputed: {\r\n\t\t...mapGetters({\r\n\t\t\tallCustomPlants: 'allCustomPlants',\r\n\t\t\tuserIsLoggedIn: \"userIsLoggedIn\"\r\n\t\t}),\r\n\t},\r\n\tmixins: [CalendarMonthDrawModeMixin]\r\n})\r\nexport default class CalendarAddPlantModal extends Mixins(CalendarMonthDrawModeMixin) {\r\n\r\n\tpublic gardenId: number = 0;\r\n\tpublic gardenName: string = '';\r\n\tallCustomPlants!: IPlant[];\r\n\tisLoadingGardenBerater: boolean = true;\r\n\tisCustomPlantsLoading: boolean = true;\r\n\t$ml: any;\r\n\r\n\tloaded = false;\r\n\tisCustomPlantOpen = false;\r\n\tisCustomCommunityPlantOpen = true;\r\n\r\n\tcreated() {\r\n\t\t$(\"#the-modal\").on(\"show.bs.modal\", () => {\r\n\t\t\tif(this.loaded) {\r\n\t\t\t\tthis.$emit('onLoaded');\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.loadLandiPlants();\r\n\t\tthis.loadCustomplants();\r\n\t}\r\n\r\n\tbeforeUnmount() {\r\n\t\tTutorialHelper.stop();\r\n\t}\r\n\r\n\t@Watch('allCustomPlants')\r\n\tonGardensChange(newVal: IGarden[], oldVal: IGarden[]) {\r\n\t\tif (oldVal.length != newVal.length)\r\n\t\t{\r\n\t\t\tthis.loadCustomplants()\r\n\t\t}\r\n\t}\r\n\r\n\tloadLandiPlants() {\r\n\t\tthis.isLoadingGardenBerater = true;\r\n\r\n\t\tlet response = Axios.get(`/api/${Vue.prototype.$Language}/gardenberater/view/${Vue.prototype.$CategoryIds}/false?`).then((res:AxiosResponse) => {\r\n\t\t\tthis.isLoadingGardenBerater =false;\r\n\t\t\tconst landiPlantContainer = $('#gardenplanerLandiPlants');\r\n\t\t\tlandiPlantContainer.html(res.data);\r\n\t\t\tLandi.GardenPlantProductFilter('gardenplanerLandiPlants');\r\n\r\n\t\t\t// replace api call in loaded view\r\n\t\t\tlet searchUrl = landiPlantContainer.find('#searchUrl').val();\r\n\t\t\tlandiPlantContainer.find('#searchUrl').val(searchUrl.replace('/berater/', '/gardenberater/'));\r\n\r\n\t\t\t// register click event\r\n\t\t\twindow.addPlantToGarden = this.addPlant;\r\n\r\n\t\t\tthis.loaded = true;\r\n\t\t\tthis.$emit('onLoaded');\r\n\t\t})\r\n\t}\r\n\r\n\tloadCustomplants() {\r\n\t\tthis.isCustomPlantsLoading = true;\r\n\r\n\t\tlet response = Axios.get(`/api/${Vue.prototype.$Language}/gardenberater/customview/${Vue.prototype.$CategoryIds}/false?`).then((res:AxiosResponse) => {\r\n\t\t\tthis.isCustomPlantsLoading = false;\r\n\t\t\tconst customPlantContainer = $('#gardenplanerCustomPlants');\r\n\t\t\tcustomPlantContainer.html(res.data);\r\n\r\n\t\t\t// check if events are bound\r\n\t\t\tconst events = $._data($('#gardenplanerCustomPlants').get(0), 'events');\r\n\t\t\tif(!events ||(events && !events.click) || (events && events.click && events.click.length <= 0)){\r\n\t\t\t\tLandi.GardenPlantProductFilter('gardenplanerCustomPlants');\r\n\t\t\t}\r\n\r\n\t\t\t// replace api call in loaded view\r\n\t\t\tlet searchUrl = customPlantContainer.find('#searchUrl').val();\r\n\t\t\tcustomPlantContainer.find('#searchUrl').val(searchUrl.replace('/berater/', '/gardenberater/').replace('/view/', '/customview/'));\r\n\r\n\t\t\t// register click event\r\n\t\t\twindow.addCustomPlantToGarden = this.addCustomPlant;\r\n\t\t});\r\n\t}\r\n async addPlant(plantId: number, name: string, description: string)\r\n {\r\n\t\tconst myPlant = new Plant()\r\n myPlant.CompositionId = -1;\r\n myPlant.GardenId = this.gardenId;\r\n myPlant.Name = name;\r\n myPlant.ProductPlantId = plantId;\r\n myPlant.Description = description;\r\n\t\tawait this.$store.dispatch(STORE_ACTIONS.ADD_PLANT, myPlant);\r\n\t\tToastrHelper.Success(this.$ml.get('addPlantToCalendarSuccessMessage'));\r\n\t}\r\n\r\n\tasync addCustomPlant(plantId: number, name: string, description: string) {\r\n\t\tconst myPlant = new Plant();\r\n\t\tmyPlant.CompositionId = -1;\r\n\t\tmyPlant.GardenId = this.gardenId;\r\n\t\tmyPlant.Name = name;\r\n\t\tmyPlant.CustomPlantId = plantId;\r\n\t\tmyPlant.Description = description;\r\n\t\tawait this.$store.dispatch(STORE_ACTIONS.ADD_PLANT, myPlant);\r\n\t\tToastrHelper.Success(this.$ml.get('addPlantToCalendarSuccessMessage'));\r\n\t}\r\n\r\n\tget isLoading(): boolean {\r\n\t\treturn this.isLoadingGardenBerater;\r\n\t}\r\n\t\r\n\topenCustomPlant(){\r\n\t\t$('#search-products-tab').click()\r\n\t\tthis.isCustomPlantOpen = true;\r\n\t\tthis.isCustomCommunityPlantOpen = false;\r\n\t}\r\n}\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheCalendarAddPlantModal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheCalendarAddPlantModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TheCalendarAddPlantModal.vue?vue&type=template&id=7711f8db&scoped=true&\"\nimport script from \"./TheCalendarAddPlantModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./TheCalendarAddPlantModal.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TheCalendarAddPlantModal.vue?vue&type=style&index=0&id=7711f8db&scoped=true&lang=css&\"\nimport style1 from \"./TheCalendarAddPlantModal.vue?vue&type=style&index=1&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7711f8db\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',[(_vm.garden)?_c('div',{staticClass:\"form-group\"},[_c('label',{domProps:{\"textContent\":_vm._s(_vm.$ml.get('gardenModalNameLabel'))}}),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.garden.Name),expression:\"garden.Name\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.garden.Name)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.garden, \"Name\", $event.target.value)}}}),(!_vm.valid)?_c('p',{staticStyle:{\"color\":\"red\"}},[_vm._v(_vm._s(_vm.$ml.get('createGardenErrorInvalidName')))]):_vm._e(),_c('label',{attrs:{\"data-toggle\":\"tooltip\",\"data-placement\":\"top\",\"title\":_vm.getTooltipText()},domProps:{\"textContent\":_vm._s(_vm.$ml.get('gardenModalPlaceLabel'))}}),_c('input',{staticClass:\"form-control\",attrs:{\"type\":\"text\",\"disabled\":\"\"},domProps:{\"value\":_vm.garden.Zip + ' ' + _vm.garden.City}}),_c('label',{domProps:{\"textContent\":_vm._s(_vm.$ml.get('gardenModalDescriptionLabel'))}}),_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.garden.Description),expression:\"garden.Description\"}],staticClass:\"form-control\",attrs:{\"rows\":\"4\",\"cols\":\"50\"},domProps:{\"value\":(_vm.garden.Description)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.garden, \"Description\", $event.target.value)}}})]):_vm._e()]),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-12\"},[_c('div',[_c('button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.gardenMode == 'Create'),expression:\"gardenMode == 'Create'\"}],staticClass:\"btn btn-primary btn-with-white-arrow pull-right\",domProps:{\"textContent\":_vm._s(_vm.$ml.get('gardenModalCreateButton'))},on:{\"click\":_vm.createNewGarden}}),_c('button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.gardenMode == 'Duplicate'),expression:\"gardenMode == 'Duplicate'\"}],staticClass:\"btn btn-primary btn-with-white-arrow pull-right\",domProps:{\"textContent\":_vm._s(_vm.$ml.get('gardenModalDuplicateButton'))},on:{\"click\":_vm.duplicateGarden}}),_c('button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.gardenMode == 'Edit'),expression:\"gardenMode == 'Edit'\"}],staticClass:\"btn btn-primary btn-with-white-arrow pull-right\",domProps:{\"textContent\":_vm._s(_vm.$ml.get('gardenModalEditButton'))},on:{\"click\":_vm.editGarden}})])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Vue, Watch } from 'vue-property-decorator';\r\nimport { IGarden, GardenMode, Garden } from '../../entities/entities';\r\nimport { STORE_ACTIONS } from '../../store/storeActions';\r\nimport { mapGetters } from 'vuex';\r\ndeclare var $ml: any;\r\ndeclare var $: any;\r\n\r\n@Component({\r\n components: {},\r\n computed: {\r\n ...mapGetters({\r\n userIsLoggedIn: 'userIsLoggedIn'\r\n })\r\n }\r\n})\r\nexport default class TheGardenModal extends Vue {\r\n public garden: IGarden = new Garden();\r\n\r\n public gardenMode: GardenMode = GardenMode.Create;\r\n\r\n userIsLoggedIn!: boolean;\r\n\r\n private valid: boolean = true;\r\n $ml: any;\r\n\r\n @Watch('garden')\r\n onGardenChanged() {\r\n this.valid = true;\r\n }\r\n\r\n createNewGarden() {\r\n if (!this.garden || !this.garden.Name) {\r\n this.valid = false;\r\n } else {\r\n this.valid = true;\r\n\r\n this.$store.dispatch(STORE_ACTIONS.ADD_GARDEN, this.garden);\r\n $('#the-modal').modal('hide');\r\n }\r\n }\r\n\r\n getTooltipText() {\r\n if (this.userIsLoggedIn) {\r\n return this.$ml.get('plzTooltipLogged');\r\n } else {\r\n return this.$ml.get('plzTooltipNotLogged');\r\n }\r\n }\r\n\r\n editGarden() {\r\n if (!this.garden || !this.garden.Name) {\r\n this.valid = false;\r\n } else {\r\n this.valid = true;\r\n\r\n this.$store.dispatch(STORE_ACTIONS.EDIT_GARDEN, this.garden);\r\n $('#the-modal').modal('hide');\r\n }\r\n }\r\n\r\n duplicateGarden() {\r\n if (!this.garden || !this.garden.Name) {\r\n this.valid = false;\r\n } else {\r\n this.valid = true;\r\n\r\n this.$store.dispatch(STORE_ACTIONS.DUPLICATE_GARDEN, this.garden);\r\n $('#the-modal').modal('hide');\r\n }\r\n }\r\n\r\n mounted() {\r\n $('[data-toggle=\"tooltip\"]').tooltip();\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheGardenModal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheGardenModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TheGardenModal.vue?vue&type=template&id=142edf67&\"\nimport script from \"./TheGardenModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./TheGardenModal.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"row panel panel-gray\"},[_c('div',[_c('label',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.plantMoveMode == 'Move'),expression:\"plantMoveMode == 'Move'\"}],domProps:{\"textContent\":_vm._s(_vm.$ml.get('movePlantModalMoveLabel'))}}),_c('label',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.plantMoveMode == 'Duplicate'),expression:\"plantMoveMode == 'Duplicate'\"}],domProps:{\"textContent\":_vm._s(_vm.$ml.get('movePlantModalDuplicateLabel'))}})]),_c('div',{staticClass:\"col-md-12\"},[_c('div',{staticClass:\"btn-group-vertical form-group\",attrs:{\"data-toggle\":\"buttons\"}},_vm._l((_vm.gardens),function(garden,gardenIndex){return _c('label',{key:gardenIndex,class:gardenIndex == 0 ? 'btn btn-default active' : 'btn btn-default'},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.plantMoveDestinationId),expression:\"plantMoveDestinationId\"}],attrs:{\"type\":\"radio\",\"name\":\"movePlantRadio\"},domProps:{\"value\":garden.Id,\"checked\":_vm._q(_vm.plantMoveDestinationId,garden.Id)},on:{\"change\":function($event){_vm.plantMoveDestinationId=garden.Id}}}),_vm._v(\" \"+_vm._s(garden.Name + ' (' + garden.Plants.length + ')')+\" \")])}),0),((_vm.currentConflicts.length > 0))?_c('div',[_vm._v(\" \"+_vm._s(_vm.$ml.get('movePlantModalBadNeighbors'))+\" \")]):_vm._e()])]),_vm._l((_vm.currentConflicts),function(plant){return _c('div',[_c('div',{staticClass:\"row d-relative\"},[_c('div',{staticClass:\"col-xs-3 col-md-2\"},[_c('img',{attrs:{\"src\":plant.ImageUrl ? plant.ImageUrl : _vm.placeholderImg}})]),_c('div',[_vm._v(\" \"+_vm._s(plant.Name)+\" \")])])])}),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-12\"},[_c('div',[_c('button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.plantMoveMode == 'Move'),expression:\"plantMoveMode == 'Move'\"}],staticClass:\"btn btn-primary btn-with-white-arrow pull-right\",domProps:{\"textContent\":_vm._s(_vm.$ml.get('movePlantModalMoveButton'))},on:{\"click\":_vm.movePlant}}),_c('button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.plantMoveMode == 'Duplicate'),expression:\"plantMoveMode == 'Duplicate'\"}],staticClass:\"btn btn-primary btn-with-white-arrow pull-right\",domProps:{\"textContent\":_vm._s(_vm.$ml.get('movePlantModalDuplicateButton'))},on:{\"click\":_vm.duplicatePlant}})])])])],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Vue, Watch } from 'vue-property-decorator';\r\nimport Icon from 'vue-awesome/components/Icon.vue';\r\nimport {\r\n IGarden,\r\n IPlant,\r\n Plant,\r\n PlantMoveMode,\r\n IMovePlantParam\r\n} from '../../entities/entities';\r\nimport { STORE_ACTIONS } from '../../store/storeActions';\r\nimport { STORE_MUTATIONS } from '../../store/storeMutations';\r\nimport { mapGetters } from \"vuex\";\r\ndeclare var $ml: any;\r\ndeclare var $: any;\r\n\r\n@Component({\r\n components: {\r\n 'v-icon': Icon\r\n },\r\n computed: {\r\n ...mapGetters({\r\n placeholderImg: \"placeholderImg\",\r\n currentConflicts: \"currentConflicts\",\r\n }),\r\n plantMoveDestinationId:{\r\n get() {\r\n return this.$store.state.plantMoveDestinationId;\r\n },\r\n set(value) {\r\n this.$store.commit(STORE_MUTATIONS.SET_DESTINATION_ID, value);\r\n },\r\n }\r\n },\r\n})\r\nexport default class TheMovePlantModal extends Vue {\r\n public plant: IPlant = new Plant();\r\n\r\n public gardens: IGarden[] = [];\r\n\r\n public plantMoveMode: PlantMoveMode = PlantMoveMode.Move;\r\n\r\n currentConflicts!: IPlant[];\r\n\r\n placeholderImg!: string;\r\n\r\n plantMoveDestinationId!: number;\r\n\r\n @Watch('plant')\r\n onPlantChange(newVal: IGarden[]) {\r\n if (newVal && newVal.length) {\r\n this.plantMoveDestinationId = newVal[0].Id;\r\n }\r\n this.$store.dispatch(STORE_ACTIONS.LOAD_PLANT_CONFLICTS, this.plant.CompositionId);\r\n }\r\n\r\n updated() {\r\n this.$nextTick(function() {\r\n const self = this;\r\n $('input[name=movePlantRadio]:radio').unbind();\r\n\r\n $('input[name=movePlantRadio]:radio').change(function(e: any) {\r\n self.plantMoveDestinationId = Number(e.target.value);\r\n });\r\n });\r\n }\r\n\r\n movePlant() {\r\n let moveParam: IMovePlantParam = {\r\n DestinationGarden: this.plantMoveDestinationId,\r\n CompositionId: this.plant.CompositionId\r\n };\r\n this.$store.dispatch(STORE_ACTIONS.MOVE_PLANT, moveParam);\r\n $('#the-modal').modal('hide');\r\n }\r\n\r\n duplicatePlant() {\r\n let moveParam: IMovePlantParam = {\r\n DestinationGarden: this.plantMoveDestinationId,\r\n CompositionId: this.plant.CompositionId\r\n };\r\n this.$store.dispatch(STORE_ACTIONS.DUPLICATE_PLANT, moveParam);\r\n $('#the-modal').modal('hide');\r\n }\r\n}\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheMovePlantModal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheMovePlantModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TheMovePlantModal.vue?vue&type=template&id=f9f272a8&scoped=true&\"\nimport script from \"./TheMovePlantModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./TheMovePlantModal.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TheMovePlantModal.vue?vue&type=style&index=0&id=f9f272a8&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f9f272a8\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:\"modal\",staticClass:\"modal fade\",staticStyle:{\"padding-right\":\"0px !important\"},attrs:{\"id\":\"activity-modal\",\"tabindex\":\"-1\",\"role\":\"dialog\",\"aria-hidden\":\"false\"}},[_c('div',{staticClass:\"modal-dialog modal-small\"},[_c('div',{staticClass:\"modal-content\"},[_c('div',{staticClass:\"modal-header\"},[_vm._m(0),(_vm.activityForModal.ActivityType)?_c('span',{domProps:{\"textContent\":_vm._s(_vm.$ml.get('activityType'+_vm.activityForModal.ActivityType))}}):_vm._e()]),_c('div',{staticClass:\"modal-body\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-12\"},[_c('p',[_vm._v(_vm._s(_vm.activityBarText))]),(_vm.activityForModal.PeriodInWeeks)?_c('p',[_c('span',{domProps:{\"textContent\":_vm._s(_vm.$ml.with(this.activityForModal.PeriodInWeeks).get('occuranceEveryAmountWeek'))}})]):_vm._e()])])])])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('button',{staticClass:\"close\",attrs:{\"type\":\"button\",\"data-dismiss\":\"modal\",\"aria-label\":\"Close\"}},[_c('span',{attrs:{\"aria-hidden\":\"true\"}},[_vm._v(\"×\")])])}]\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Prop, Vue, Mixins, Watch } from \"vue-property-decorator\";\r\nimport { mixins } from \"vue-class-component\";\r\nimport CalendarMonthDrawModeMixin from \"../../mixins/CalendarMonthDrawMode\";\r\nimport { STORE_ACTIONS } from \"../../store/storeActions\";\r\nimport {\r\n IGardenNotification,\r\n GardenNotification,\r\n GardenNotificationType,\r\n GardenNotificationMedia,\r\n IActivity\r\n} from \"../../entities/entities\";\r\nimport Axios, { AxiosResponse } from \"axios\";\r\nimport \"vue-awesome/icons/plus-square\";\r\nimport Icon from \"vue-awesome/components/Icon.vue\";\r\nimport { mapGetters } from 'vuex';\r\nimport { ActivityHelper } from '../../helpers/activityHelper';\r\ndeclare var $: any;\r\ndeclare var Landi: any;\r\ndeclare var window: any;\r\ndeclare var $ml: any;\r\n\r\n@Component({\r\n components: {\r\n \"v-icon\": Icon\r\n },\r\n computed: {\r\n ...mapGetters({\r\n activityForModal: 'activityForModal',\r\n })\r\n },\r\n mixins: [CalendarMonthDrawModeMixin]\r\n})\r\nexport default class CalendarSubscribeModal extends Mixins(\r\n CalendarMonthDrawModeMixin\r\n) {\r\n $refs!: {\r\n modal: HTMLElement;\r\n };\r\n $ml: any;\r\n activityForModal!: IActivity;\r\n\r\n\r\n mounted() {\r\n $(this.$refs.modal).on(\"show.bs.modal\", () => {\r\n \r\n });\r\n }\r\n\r\n get activityBarText(): string {\r\n const startMonth =this.startMonth();\r\n if(startMonth && startMonth >0) {\r\n if (this.startMonth() == this.endMonth()){\r\n return this.$ml.get('monthNameLong'+this.startMonth());\r\n }\r\n else {\r\n return this.$ml.get('monthNameLong'+this.startMonth()) + ' - ' + this.$ml.get('monthNameLong'+this.endMonth());\r\n }\r\n }\r\n else {\r\n return '';\r\n }\r\n }\r\n\r\n startMonth(){\r\n return ActivityHelper.startMonth(this.activityForModal, this.activityForModal.StartYear)\r\n }\r\n\r\n endMonth(){\r\n return ActivityHelper.endMonth(this.activityForModal, this.activityForModal.StartYear)\r\n }\r\n}\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheActivityInfoModal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheActivityInfoModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TheActivityInfoModal.vue?vue&type=template&id=110ae986&\"\nimport script from \"./TheActivityInfoModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./TheActivityInfoModal.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _vm._m(0)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"loader detail-loaded\",staticStyle:{\"margin-left\":\"50%\"}},[_c('img',{attrs:{\"src\":\"/Frontend/Landi/Images/ajax-loader.gif\"}})]),_c('div',{staticClass:\"buy-plant\",attrs:{\"id\":\"buy-plant\"}})])}]\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Vue } from 'vue-property-decorator';\r\ndeclare var $: any;\r\ndeclare var Landi: any;\r\n\r\n@Component({})\r\nexport default class TheCalendarBuyPlantModal extends Vue {\r\n public initFunction() {\r\n Landi.QuantityInput();\r\n Landi.ProductTeaserBy.init();\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheCalendarBuyPlantModal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheCalendarBuyPlantModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TheCalendarBuyPlantModal.vue?vue&type=template&id=4186d677&\"\nimport script from \"./TheCalendarBuyPlantModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./TheCalendarBuyPlantModal.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"row panel\"},[_c('div',{staticClass:\"col-md-8 contest-text\"},[_c('label',{domProps:{\"textContent\":_vm._s(_vm.$ml.get('modalGardenContestText'))}})]),_vm._m(0)]),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-12\"},[_c('div',{staticClass:\"pull-right\"},[_c('button',{staticClass:\"btn btn-danger btn-with-white-arrow\",domProps:{\"textContent\":_vm._s(_vm.$ml.get('modalGardenContestDeny'))},on:{\"click\":_vm.deny}}),_c('button',{staticClass:\"btn btn-primary btn-with-white-arrow\",staticStyle:{\"margin-left\":\"5px\"},domProps:{\"textContent\":_vm._s(_vm.$ml.get('modalGardenContestAccept'))},on:{\"click\":_vm.accept}})])])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"col-md-4\"},[_c('img',{attrs:{\"data-v-4d8a67a0\":\"\",\"src\":\"/Frontend/Landi/Images/gardencalendar/gartenkalenderContest.png\"}})])}]\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Prop, Vue, Mixins, Watch } from \"vue-property-decorator\";\r\nimport { mixins } from \"vue-class-component\";\r\nimport CalendarMonthDrawModeMixin from \"../../mixins/CalendarMonthDrawMode\";\r\nimport { STORE_ACTIONS } from \"../../store/storeActions\";\r\nimport {\r\n IGardenNotification,\r\n GardenNotification,\r\n GardenNotificationType,\r\n GardenNotificationMedia,\r\n UserCompetitionType\r\n} from \"../../entities/entities\";\r\nimport Axios, { AxiosResponse } from \"axios\";\r\nimport \"vue-awesome/icons/plus-square\";\r\nimport Icon from \"vue-awesome/components/Icon.vue\";\r\ndeclare var $: any;\r\ndeclare var Landi: any;\r\ndeclare var window: any;\r\ndeclare var $ml: any;\r\n\r\n@Component({\r\n components: {\r\n \"v-icon\": Icon\r\n }\r\n})\r\nexport default class CalendarSubscribeModal extends Vue{ \r\n $refs!: {\r\n modal: HTMLElement;\r\n };\r\n\r\n $ml: any;\r\n\r\n accept() {\r\n this.$store.dispatch(STORE_ACTIONS.ANSWER_USER_COMPETITION, { userCompetitionType: UserCompetitionType.GardenContest, accept: true });\r\n $('#the-modal').modal('hide');\r\n }\r\n\r\n deny() {\r\n this.$store.dispatch(STORE_ACTIONS.ANSWER_USER_COMPETITION, { userCompetitionType: UserCompetitionType.GardenContest, accept: false });\r\n $('#the-modal').modal('hide');\r\n }\r\n}\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheGardenContestModal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheGardenContestModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TheGardenContestModal.vue?vue&type=template&id=01bc4469&scoped=true&\"\nimport script from \"./TheGardenContestModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./TheGardenContestModal.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TheGardenContestModal.vue?vue&type=style&index=0&id=01bc4469&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"01bc4469\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"row panel panel-gray\"},[_c('div',[_c('label',{domProps:{\"textContent\":_vm._s(_vm.$ml.get('modalTutorialConsentText'))}})])]),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-12\"},[_c('div',{staticClass:\"pull-right\"},[_c('button',{staticClass:\"btn btn-danger btn-with-white-arrow\",domProps:{\"textContent\":_vm._s(_vm.$ml.get('modalTutorialConsentDeny'))},on:{\"click\":_vm.deny}}),_c('button',{staticClass:\"btn btn-primary btn-with-white-arrow\",staticStyle:{\"margin-left\":\"5px\"},domProps:{\"textContent\":_vm._s(_vm.$ml.get('modalTutorialConsentAccept'))},on:{\"click\":_vm.accept}})])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Prop, Vue, Mixins, Watch } from \"vue-property-decorator\";\r\nimport { mixins } from \"vue-class-component\";\r\nimport CalendarMonthDrawModeMixin from \"../../mixins/CalendarMonthDrawMode\";\r\nimport { STORE_ACTIONS } from \"../../store/storeActions\";\r\nimport {\r\n IGardenNotification,\r\n GardenNotification,\r\n GardenNotificationType,\r\n GardenNotificationMedia,\r\n UserCompetitionType\r\n} from \"../../entities/entities\";\r\nimport Axios, { AxiosResponse } from \"axios\";\r\nimport \"vue-awesome/icons/plus-square\";\r\nimport Icon from \"vue-awesome/components/Icon.vue\";\r\nimport TutorialHelper from '@/helpers/tutorialHelper';\r\ndeclare var $: any;\r\ndeclare var Landi: any;\r\ndeclare var window: any;\r\ndeclare var $ml: any;\r\n\r\n@Component({\r\n components: {\r\n \"v-icon\": Icon\r\n }\r\n})\r\nexport default class TheTutorialConsentModal extends Vue{ \r\n $refs!: {\r\n modal: HTMLElement;\r\n };\r\n\r\n $ml: any;\r\n\r\n accept() {\r\n TutorialHelper.consentTutorial();\r\n this.$emit('onAccept');\r\n $('#the-modal').modal('hide');\r\n }\r\n\r\n deny() {\r\n TutorialHelper.refuseTutorial();\r\n this.$emit('onDeny');\r\n $('#the-modal').modal('hide');\r\n }\r\n}\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheTutorialConsentModal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheTutorialConsentModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TheTutorialConsentModal.vue?vue&type=template&id=2bf5d4a8&\"\nimport script from \"./TheTutorialConsentModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./TheTutorialConsentModal.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"row panel panel-gray\"},[_c('div',[_c('label',{domProps:{\"textContent\":_vm._s(_vm.$ml.get('modalTutorialEndText'))}})])]),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-12\"},[_c('div',{staticClass:\"pull-right\"},[_c('button',{staticClass:\"btn btn-primary btn-with-white-arrow\",domProps:{\"textContent\":_vm._s(_vm.$ml.get('modalTutorialEndOk'))},on:{\"click\":_vm.ok}})])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Prop, Vue, Mixins, Watch } from \"vue-property-decorator\";\r\nimport { mixins } from \"vue-class-component\";\r\nimport CalendarMonthDrawModeMixin from \"../../mixins/CalendarMonthDrawMode\";\r\nimport { STORE_ACTIONS } from \"../../store/storeActions\";\r\nimport {\r\n IGardenNotification,\r\n GardenNotification,\r\n GardenNotificationType,\r\n GardenNotificationMedia,\r\n UserCompetitionType\r\n} from \"../../entities/entities\";\r\nimport Axios, { AxiosResponse } from \"axios\";\r\nimport \"vue-awesome/icons/plus-square\";\r\nimport Icon from \"vue-awesome/components/Icon.vue\";\r\nimport TutorialHelper from '@/helpers/tutorialHelper';\r\ndeclare var $: any;\r\ndeclare var Landi: any;\r\ndeclare var window: any;\r\ndeclare var $ml: any;\r\n\r\n@Component({\r\n components: {\r\n \"v-icon\": Icon\r\n }\r\n})\r\nexport default class TheTutorialEndModal extends Vue{ \r\n $refs!: {\r\n modal: HTMLElement;\r\n };\r\n\r\n $ml: any;\r\n\r\n ok() {\r\n $('#the-modal').modal('hide');\r\n }\r\n}\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheTutorialEndModal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheTutorialEndModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TheTutorialEndModal.vue?vue&type=template&id=67cf79f9&\"\nimport script from \"./TheTutorialEndModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./TheTutorialEndModal.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:\"modal\",staticClass:\"modal fade\",staticStyle:{\"padding-right\":\"0px !important\"},attrs:{\"id\":_vm.modalId,\"tabindex\":\"-1\",\"role\":\"dialog\",\"aria-hidden\":\"false\"}},[_c('div',{staticClass:\"modal-dialog modal-small\"},[_c('div',{staticClass:\"modal-content\"},[_c('div',{staticClass:\"modal-header\"},[_vm._m(0),_vm._v(\" \"+_vm._s(_vm.$ml.get('titleBadNeighborsModal'))+\" \")]),_c('div',{staticClass:\"modal-body\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-12\"},[_c('p',[_vm._v(_vm._s(_vm.$ml.get('textBadNeighborsModalBody')))]),_vm._l((_vm.badNeighbors),function(plant,plantIdx){return _c('div',{key:plantIdx},[_c('div',{staticClass:\"row d-relative\"},[_c('div',{staticClass:\"col-xs-3 col-md-2\"},[_c('img',{staticClass:\"mouse-pointer\",attrs:{\"src\":plant.ImageUrl ? plant.ImageUrl : _vm.placeholderImg}})]),_c('div',[_vm._v(\" \"+_vm._s(plant.Name)+\" \")])])])})],2)])]),_c('div',{staticClass:\"modal-footer\"},[_c('button',{staticClass:\"btn btn-primary\",attrs:{\"type\":\"button\",\"data-dismiss\":\"modal\"}},[_vm._v(_vm._s(_vm.$ml.get('closeModal')))])])])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('button',{staticClass:\"close\",attrs:{\"type\":\"button\",\"data-dismiss\":\"modal\",\"aria-label\":\"Close\"}},[_c('span',{attrs:{\"aria-hidden\":\"true\"}},[_vm._v(\"×\")])])}]\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Prop, Vue, Mixins, Watch } from \"vue-property-decorator\";\r\nimport CalendarMonthDrawModeMixin from \"../../mixins/CalendarMonthDrawMode\";\r\nimport {\r\n IPlant\r\n} from \"../../entities/entities\";\r\nimport Axios, { AxiosResponse } from \"axios\";\r\nimport \"vue-awesome/icons/plus-square\";\r\nimport Icon from \"vue-awesome/components/Icon.vue\";\r\n\r\ndeclare var $: any;\r\ndeclare var Landi: any;\r\ndeclare var window: any;\r\ndeclare var $ml: any;\r\n\r\n@Component({\r\n components: {\r\n \"v-icon\": Icon\r\n },\r\n})\r\nexport default class BadNeighborsModal extends Mixins(\r\n CalendarMonthDrawModeMixin\r\n) {\r\n @Prop() placeholderImg!: string;\r\n @Prop() badNeighbors!: IPlant[];\r\n @Prop() gardenId!: number;\r\n @Prop({ required: false, default: false })\r\n private show!: boolean\r\n\r\n @Watch('show')\r\n onShowChange(newVal: boolean, oldVal: boolean){\r\n if(newVal)\r\n {\r\n this.openModal();\r\n }\r\n else{\r\n $('#'+this.modalId).modal('hide');\r\n }\r\n }\r\n\r\n $refs!: {\r\n modal: HTMLElement;\r\n };\r\n $ml: any;\r\n\r\n mounted() {\r\n $('#'+this.modalId).on(\"show.bs.modal\", () => {\r\n \r\n });\r\n \r\n }\r\n\r\n get modalId(): string\r\n {\r\n return 'bad-neighbors-modal-'+this.gardenId\r\n }\r\n \r\n openModal() {\r\n this.$nextTick(function() {\r\n if (\r\n $('#'+this.modalId)\r\n .parent()\r\n .attr('id') == 'ReverseProxyPortal-Content'\r\n ) {\r\n $('#'+this.modalId).modal('show');\r\n } else {\r\n // needs to be moved because otherwise it will be overlapped by navigation\r\n $('#'+this.modalId)\r\n .detach()\r\n .appendTo('body')\r\n .modal('show');\r\n }\r\n\r\n // todo: find out who the f**k is setting a padding when opening a modalview\r\n $('#'+this.modalId).css('padding-right', 0);\r\n // $('body').css('padding-right', 0);\r\n });\r\n }\r\n}\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheBadNeighborsModal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheBadNeighborsModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TheBadNeighborsModal.vue?vue&type=template&id=74dd9bc2&\"\nimport script from \"./TheBadNeighborsModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./TheBadNeighborsModal.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { mapGetters } from \"vuex\";\r\nimport { Component, Prop, Vue, Mixins, Watch } from \"vue-property-decorator\";\r\nimport { mixins } from \"vue-class-component\";\r\nimport {\r\n IGarden,\r\n IActivity,\r\n ICalendarEntry,\r\n IPlant,\r\n CalendarEntry,\r\n Week,\r\n CalendarView,\r\n IWeek,\r\n Activity,\r\n ActivityType,\r\n Garden,\r\n ScreenResolution,\r\n GardenMode,\r\n IAddress,\r\n PlantMoveMode,\r\n UserCompetitionAnswer,\r\n UserCompetitionType,\r\n Plant,\r\n} from \"../../entities/entities\";\r\nimport \"vue-awesome/icons/plus-square\";\r\nimport \"vue-awesome/icons/folder-plus\";\r\nimport \"vue-awesome/icons/caret-left\";\r\nimport \"vue-awesome/icons/caret-right\";\r\nimport \"vue-awesome/icons/folder\";\r\nimport \"vue-awesome/icons/folder-open\";\r\nimport \"vue-awesome/icons/ellipsis-v\";\r\nimport \"vue-awesome/icons/shopping-cart\";\r\nimport \"vue-awesome/icons/edit\";\r\nimport \"vue-awesome/icons/copy\";\r\nimport \"vue-awesome/icons/file-export\";\r\nimport \"vue-awesome/icons/times\";\r\nimport \"vue-awesome/icons/exclamation-triangle\";\r\n\r\nimport { STORE_ACTIONS } from \"../../store/storeActions\";\r\nimport CalendarMonths from \"./CalendarMonths.vue\";\r\nimport CalendarMonthDrawModeMixin from \"../../mixins/CalendarMonthDrawMode\";\r\nimport Moment from \"moment\";\r\nimport { STORE_MUTATIONS } from \"../../store/storeMutations\";\r\nimport { ActivityHelper } from \"../../helpers/activityHelper\";\r\nimport Icon from \"vue-awesome/components/Icon.vue\";\r\nimport ScreenHelper from \"../../helpers/screenHelper\";\r\nimport TutorialHelper from \"../../helpers/tutorialHelper\";\r\nimport PlantMenu from \"./PlantContextMenu.vue\";\r\nimport GardenMenu from \"./GardenContextMenu.vue\";\r\nimport { debounce } from \"../../helpers/debounce\";\r\nimport TheModal from \"../general/TheModal.vue\";\r\nimport ThePlantEdit from \"../plant/ThePlantEdit.vue\";\r\nimport AddPlantModal from \"./TheCalendarAddPlantModal.vue\";\r\nimport GardenModal from \"./TheGardenModal.vue\";\r\nimport MovePlantModal from \"./TheMovePlantModal.vue\";\r\nimport ActivityInfoModal from \"./TheActivityInfoModal.vue\";\r\nimport axios, { AxiosResponse } from \"axios\";\r\nimport TheCalendarBuyPlantModal from \"./TheCalendarBuyPlantModal.vue\";\r\nimport TheGardenContestModal from \"./TheGardenContestModal.vue\";\r\nimport TheTutorialConsentModal from \"./TheTutorialConsentModal.vue\";\r\nimport TheTutorialEndModal from \"./TheTutorialEndModal.vue\";\r\nimport BadNeighborsModal from \"./TheBadNeighborsModal.vue\";\r\nimport JQueryHelper from '@/helpers/jQueryHelper';\r\n\r\ndeclare var $: any;\r\ndeclare var $ml: any;\r\n\r\n@Component({\r\n components: {\r\n \"calendar-months\": CalendarMonths,\r\n \"v-icon\": Icon,\r\n \"add-plant-modal\": AddPlantModal,\r\n \"edit-plant\": ThePlantEdit,\r\n \"the-modal\": TheModal,\r\n \"plant-menu\": PlantMenu,\r\n \"garden-menu\": GardenMenu,\r\n \"garden-modal\": GardenModal,\r\n \"move-plant-modal\": MovePlantModal,\r\n \"activity-info-modal\": ActivityInfoModal,\r\n \"buy-plant-modal\": TheCalendarBuyPlantModal,\r\n \"garden-contest-modal\": TheGardenContestModal,\r\n \"tutorial-consent-modal\": TheTutorialConsentModal,\r\n \"tutorial-end-modal\": TheTutorialEndModal,\r\n \"bad-neighbors-modal\":BadNeighborsModal\r\n },\r\n computed: {\r\n ...mapGetters({\r\n gardens: \"gardens\",\r\n activities: \"activities\",\r\n calendar: \"calendar\",\r\n currentView: \"currentView\",\r\n monthToShow: \"monthToShow\",\r\n selectedActivityTypes: \"selectedActivityTypes\",\r\n searchPlantText: \"searchPlantText\",\r\n mainAddress: \"mainAddress\",\r\n createNewGardenFromEntryPage: \"createNewGardenFromEntryPage\",\r\n placeholderImg: \"placeholderImg\",\r\n hasAnsweredGardenContest: \"hasAnsweredGardenContest\",\r\n }),\r\n },\r\n mixins: [CalendarMonthDrawModeMixin],\r\n})\r\nexport default class GardenCalendar extends Mixins(CalendarMonthDrawModeMixin) {\r\n $refs!: {\r\n gardenWrapper: HTMLElement[];\r\n addPlantModal: AddPlantModal;\r\n editPlantModal: ThePlantEdit;\r\n gardenModal: GardenModal;\r\n moveModal: MovePlantModal;\r\n modalView: TheModal;\r\n buyModal: TheCalendarBuyPlantModal;\r\n };\r\n\r\n @Prop() isLoggedIn!: boolean\r\n\r\n gardens!: IGarden[];\r\n mainAddress!: IAddress;\r\n activities!: IActivity[];\r\n calendar!: ICalendarEntry[];\r\n currentView!: CalendarView;\r\n selectedActivityTypes!: ActivityType[];\r\n monthToShow!: number;\r\n searchPlantText!: string;\r\n $ml!: any;\r\n openGardensIndex: number[] = [];\r\n drawModalView: boolean = false;\r\n drawEditModalView: boolean = false;\r\n drawGardenModal: boolean = false;\r\n drawMoveModal: boolean = false;\r\n drawBuyPlantModal: boolean = false;\r\n drawGardenContestModal: boolean = false;\r\n drawTutorialConsentModal: boolean = false;\r\n drawTutorialEndModal: boolean = false;\r\n internalmodalTitle: string = \"leer\";\r\n createNewGardenFromEntryPage!: boolean;\r\n placeholderImg!: string;\r\n hasAnsweredGardenContest!: UserCompetitionAnswer;\r\n showModal4GardenId: number = -1;\r\n\r\n mounted() {\r\n this.$store.dispatch(STORE_ACTIONS.LOAD_GARDEN);\r\n this.$store.dispatch(STORE_ACTIONS.LOAD_CALENDAR, this.$ml);\r\n this.$store.dispatch(STORE_ACTIONS.LOAD_USER_ADDRESS);\r\n this.$store.dispatch(\r\n STORE_ACTIONS.LOAD_USER_COMPETITION,\r\n UserCompetitionType.GardenContest\r\n );\r\n\r\n document.addEventListener(\"click\", this.outsideClickListener);\r\n\r\n const navigationRow = $(\".gp-navigation-row\");\r\n const landiHeader = $(\"#LandiHeader\");\r\n const subNavigationContainer = $(\".sub-navigation-container\");\r\n\r\n const debouncedScroll = debounce(() => {\r\n if(subNavigationContainer)\r\n {\r\n const position = subNavigationContainer.position();\r\n \r\n if(position) {\r\n // desktop\r\n let offset =\r\n subNavigationContainer.position().top + subNavigationContainer.height();\r\n \r\n // mobile\r\n if (offset === 0) {\r\n offset = landiHeader.position().top + landiHeader.height() + 5;\r\n }\r\n\r\n navigationRow.css(\"top\", offset);\r\n }\r\n }\r\n }, 10);\r\n\r\n $(document).on(\"scroll.calendar\", debouncedScroll);\r\n }\r\n\r\n destroyed() {\r\n $(document).off(\"scroll.calendar\");\r\n }\r\n\r\n @Watch(\"createNewGardenFromEntryPage\")\r\n onCreateNewGardenFromEntryPage(newVal: boolean, oldVal: boolean) {\r\n if (oldVal != newVal && newVal) {\r\n this.newGardenModal();\r\n this.$store.dispatch(\r\n STORE_ACTIONS.CREATE_NEW_GARDEN_FROM_ENTRYPAGE,\r\n false\r\n );\r\n }\r\n }\r\n outsideClickListener() {\r\n var menus = document.getElementsByClassName(\"menu\");\r\n for (let el = 0; el < menus.length; el++) {\r\n const element = menus[el];\r\n element.style.display = \"none\";\r\n }\r\n }\r\n\r\n @Watch(\"gardens\")\r\n onGardensChange(newVal: IGarden[], oldVal: IGarden[]) {\r\n if (oldVal.length == 0 && newVal.length > 0) {\r\n this.tryShowTutorial();\r\n }\r\n\r\n //updated the garden location if needed.\r\n this.gardens.forEach((garden) => {\r\n if (\r\n garden.City !== this.mainAddress.City ||\r\n garden.Zip !== this.mainAddress.Zipcode\r\n ) {\r\n var updatedGarden: IGarden = {\r\n ...garden,\r\n Zip: this.mainAddress.Zipcode,\r\n City: this.mainAddress.City,\r\n };\r\n this.$store.dispatch(STORE_ACTIONS.EDIT_GARDEN, updatedGarden);\r\n }\r\n });\r\n }\r\n\r\n getRelevantPlants(garden: IGarden): IPlant[] {\r\n\r\n if(this.selectedActivityTypes.length == 9 ) return garden.Plants;\r\n \r\n let plants = garden.Plants.filter((p) => {\r\n let activities = this.activitiesByPlantId(p.CompositionId);\r\n if (activities.length > 1) return true;\r\n return activities[0].CompositionId != -1;\r\n });\r\n\r\n return plants;\r\n }\r\n\r\n menuClick(event: Event) {\r\n event.stopPropagation();\r\n }\r\n\r\n beforeCreated() {\r\n this.openGardensIndex = this.filteredGarden.map((x) => x.Id);\r\n }\r\n\r\n gotoNextPage() {\r\n this.$store.dispatch(STORE_ACTIONS.MOVE_CALENDAR_NEXT, this.$ml);\r\n }\r\n\r\n goToMonth(calendarEntry: ICalendarEntry) {\r\n this.$store.commit(STORE_MUTATIONS.MOVE_CALENDAR_TO, {\r\n ml: this.$ml,\r\n calendarEntry: calendarEntry,\r\n });\r\n }\r\n\r\n gotoPrevPage() {\r\n this.$store.dispatch(STORE_ACTIONS.MOVE_CALENDAR_PREV, this.$ml);\r\n }\r\n\r\n activitiesByPlantId(plantId: Number): IActivity[] {\r\n const activitiesByPlantId = this.activitiesForCurrentCalendarView.filter(\r\n (x) => x.CompositionId === plantId\r\n );\r\n\r\n if (activitiesByPlantId.length === 0) {\r\n activitiesByPlantId.push(new Activity());\r\n }\r\n return activitiesByPlantId;\r\n }\r\n\r\n hideModals() {\r\n this.drawEditModalView = false;\r\n this.drawModalView = false;\r\n this.drawGardenModal = false;\r\n this.drawMoveModal = false;\r\n this.drawBuyPlantModal = false;\r\n this.drawGardenContestModal = false;\r\n this.drawTutorialConsentModal = false;\r\n this.drawTutorialEndModal = false;\r\n }\r\n\r\n openModalAddPlant(gardenId: number, gardenName: string) {\r\n this.hideModals();\r\n this.drawModalView = true;\r\n\r\n this.$nextTick(function () {\r\n this.$refs.modalView.title = this.$ml\r\n .with(gardenName)\r\n .get(\"modalAddPlantsTitle\");\r\n this.$refs.addPlantModal.gardenId = gardenId;\r\n this.$refs.addPlantModal.gardenName = gardenName;\r\n });\r\n this.$refs.modalView.openModal();\r\n this.outsideClickListener();\r\n }\r\n\r\n openModalAddCustomPlant(gardenId: number, gardenName: string) {\r\n this.openModalAddPlant(gardenId, gardenName);\r\n\r\n this.$nextTick(function () {\r\n this.$refs.addPlantModal.openCustomPlant();\r\n });\r\n }\r\n\r\n editPlant(plant: IPlant) {\r\n this.hideModals();\r\n this.drawEditModalView = true;\r\n\r\n this.$refs.modalView.openModal();\r\n\r\n this.$nextTick(function () {\r\n this.$refs.modalView.title = plant.Name;\r\n this.$refs.editPlantModal.plant = { ...plant };\r\n });\r\n this.outsideClickListener();\r\n }\r\n\r\n async plantDetail(plant: IPlant) {\r\n this.hideModals();\r\n this.drawBuyPlantModal = true;\r\n\r\n this.$refs.modalView.openModal();\r\n\r\n let resposnse: AxiosResponse | null = null;\r\n\r\n if (plant.ProductPlantId) {\r\n resposnse = await axios.get(\r\n `/api/${Vue.prototype.$Language}/garden/details/${plant.ProductPlantId}`\r\n );\r\n } else if (plant.CustomPlantId) {\r\n resposnse = await axios.get(\r\n `/api/${Vue.prototype.$Language}/garden/customDetails/${plant.CustomPlantId}`\r\n );\r\n }\r\n\r\n let spinner = this.$refs.modalView.$el.getElementsByClassName(\r\n \"detail-loaded\"\r\n )[0] as HTMLElement;\r\n\r\n spinner.style.display = \"block\";\r\n\r\n this.outsideClickListener();\r\n\r\n this.$nextTick(function () {\r\n this.$refs.modalView.title = plant.Name;\r\n\r\n if (resposnse && resposnse.status == 200) {\r\n let el = this.$refs.modalView.$el.getElementsByClassName(\r\n \"buy-plant\"\r\n )[0];\r\n spinner.style.display = \"none\";\r\n\r\n el.innerHTML = resposnse.data;\r\n this.$refs.buyModal.initFunction();\r\n }\r\n });\r\n\r\n $(\"#the-modal\").on(\"hide.bs.modal\", () => {\r\n this.drawBuyPlantModal = false;\r\n $(\"#the-modal\").unbind(\"hide.bs.modal\");\r\n });\r\n }\r\n\r\n duplicatePlant(plant: IPlant) {\r\n this.moveOrDuplicatePlant(plant, PlantMoveMode.Duplicate, \"movePlantModalDuplicateTitle\");\r\n }\r\n\r\n movePlant(plant: IPlant) {\r\n this.moveOrDuplicatePlant(plant, PlantMoveMode.Move, \"movePlantModalMoveTitle\");\r\n }\r\n\r\n private moveOrDuplicatePlant(plant: IPlant, mode: PlantMoveMode, title: string) {\r\n this.hideModals();\r\n this.drawMoveModal = true;\r\n\r\n this.outsideClickListener();\r\n\r\n this.$nextTick(function () {\r\n this.$refs.modalView.title = this.$ml.get(title);\r\n this.$refs.moveModal.gardens = this.gardens;\r\n this.$refs.moveModal.plant = plant;\r\n this.$refs.moveModal.plantMoveMode = mode;\r\n if (this.$store.state.plantMoveDestinationId == -1) {\r\n this.$store.commit(STORE_MUTATIONS.SET_DESTINATION_ID, this.gardens[0].Id);\r\n }\r\n });\r\n this.$refs.modalView.openModal();\r\n }\r\n\r\n deletePlant(plant: IPlant) {\r\n this.$store.dispatch(STORE_ACTIONS.DELETE_PLANT, plant);\r\n this.outsideClickListener();\r\n }\r\n\r\n newGardenModal() {\r\n this.hideModals();\r\n this.drawGardenModal = true;\r\n\r\n this.$refs.modalView.openModal();\r\n\r\n this.$nextTick(function () {\r\n this.$refs.modalView.title = this.$ml.get(\"gardenModalCreateTitle\");\r\n this.$refs.gardenModal.gardenMode = GardenMode.Create;\r\n let newGarden: IGarden = new Garden();\r\n newGarden.Zip = this.mainAddress.Zipcode;\r\n newGarden.City = this.mainAddress.City;\r\n this.$refs.gardenModal.garden = newGarden;\r\n });\r\n }\r\n\r\n editGarden(garden: IGarden) {\r\n this.hideModals();\r\n this.drawGardenModal = true;\r\n\r\n this.$refs.modalView.openModal();\r\n this.$nextTick(function () {\r\n this.$refs.modalView.title = this.$ml.get(\"gardenModalEditTitle\");\r\n this.$refs.gardenModal.gardenMode = GardenMode.Edit;\r\n this.$refs.gardenModal.garden = { ...garden };\r\n });\r\n }\r\n\r\n duplicateGarden(garden: IGarden) {\r\n this.hideModals();\r\n this.drawGardenModal = true;\r\n\r\n this.outsideClickListener();\r\n\r\n this.$nextTick(function () {\r\n this.$refs.modalView.title = this.$ml.get(\"gardenModalDuplicateTitle\");\r\n this.$refs.gardenModal.gardenMode = GardenMode.Duplicate;\r\n this.$refs.gardenModal.garden = garden;\r\n });\r\n this.$refs.modalView.openModal();\r\n }\r\n\r\n get modalTitle(): string {\r\n return this.internalmodalTitle;\r\n }\r\n\r\n get activitiesForCurrentCalendarView(): IActivity[] {\r\n // we only want to show activites that are needed for the current view --> no empty activity rows must be generated\r\n let relevantActivities: IActivity[] = [];\r\n\r\n const filteredActivities = this.activities.filter(\r\n (x) =>\r\n !this.selectedActivityTypes ||\r\n this.selectedActivityTypes.indexOf(x.ActivityType) > -1\r\n );\r\n filteredActivities.forEach((a) => {\r\n if (relevantActivities.indexOf(a) == -1) {\r\n this.calendar.forEach((c) => {\r\n if (\r\n relevantActivities.indexOf(a) == -1 &&\r\n ActivityHelper.eligibleToStartinCalendarEntry(\r\n this.calendar,\r\n a,\r\n c,\r\n true\r\n )\r\n ) {\r\n relevantActivities.push(a);\r\n }\r\n });\r\n }\r\n });\r\n return relevantActivities;\r\n }\r\n\r\n get filteredGarden(): IGarden[] {\r\n if (this.searchPlantText.length > 0) {\r\n const filteredGardens = this.gardens.filter(\r\n (x) =>\r\n x.Plants.filter(\r\n (p) => p.Name.toLowerCase().indexOf(this.searchPlantText) > -1\r\n ).length > 0\r\n );\r\n const filteredGardensWithFilteredPlants = filteredGardens.map((g) =>\r\n this.filterPlantsBySearchtext(g, this.searchPlantText)\r\n );\r\n return filteredGardensWithFilteredPlants;\r\n } else {\r\n return this.gardens;\r\n }\r\n }\r\n\r\n showWeeksHeader(): boolean {\r\n return (\r\n ScreenHelper.screenResulution() != ScreenResolution.Phone &&\r\n this.currentView == CalendarView.Month\r\n );\r\n }\r\n\r\n filterPlantsBySearchtext(g: IGarden, searchPlantText: string): IGarden {\r\n const relevantPlants = g.Plants.filter(\r\n (p) => p.Name.toLowerCase().indexOf(searchPlantText) > -1\r\n );\r\n const garden = new Garden();\r\n garden.Id = g.Id;\r\n garden.Name = garden.Name;\r\n garden.Plants = relevantPlants;\r\n return garden;\r\n }\r\n\r\n cssClassPlant(plantIdx: number): string {\r\n if (plantIdx == 0) {\r\n return \"gp-plant-container gp-plant-first\";\r\n }\r\n return \"gp-plant-container\";\r\n }\r\n\r\n toggleGarden(garden: IGarden, idx: number) {\r\n const display = this.$refs.gardenWrapper[idx].style.display;\r\n this.$refs.gardenWrapper[idx].style.display =\r\n display == \"none\" ? \"\" : \"none\";\r\n\r\n if (this.openGardensIndex.indexOf(idx) == -1) {\r\n this.openGardensIndex.push(idx);\r\n } else {\r\n this.openGardensIndex.splice(this.openGardensIndex.indexOf(idx), 1);\r\n }\r\n }\r\n\r\n deleteGarden(garden: IGarden) {\r\n this.$store.dispatch(STORE_ACTIONS.DELETE_GARDEN, garden.Id);\r\n }\r\n\r\n @Watch(\"hasAnsweredGardenContest\")\r\n onHasAnsweredGardenContest(\r\n newVal: UserCompetitionAnswer,\r\n oldVal: UserCompetitionAnswer\r\n ) {\r\n if (oldVal != newVal && newVal) {\r\n if (newVal !== UserCompetitionAnswer.Answered) {\r\n this.openGardenContestModal();\r\n } else {\r\n this.tryShowTutorial()\r\n }\r\n }\r\n }\r\n\r\n openGardenContestModal() {\r\n this.hideModals();\r\n this.drawGardenContestModal = true;\r\n\r\n this.$nextTick(function () {\r\n this.$refs.modalView.title = this.$ml.get(\"modalGardenContestTitle\");\r\n });\r\n this.$refs.modalView.openModal();\r\n }\r\n\r\n isTheModalOpen() {\r\n return ($('#the-modal').data('bs.modal') || {}).isShown;\r\n }\r\n\r\n openTutorialConsentModal() {\r\n this.hideModals();\r\n this.drawTutorialConsentModal = true;\r\n\r\n this.$nextTick(function () {\r\n this.$refs.modalView.title = this.$ml.get(\"modalTutorialConsentTitle\");\r\n });\r\n this.$refs.modalView.openModal();\r\n }\r\n\r\n openTutorialEndModal() {\r\n this.hideModals();\r\n this.drawTutorialEndModal = true;\r\n\r\n this.$nextTick(function () {\r\n this.$refs.modalView.title = this.$ml.get(\"modalTutorialEndTitle\");\r\n });\r\n this.$refs.modalView.openModal();\r\n }\r\n\r\n tryShowTutorial() {\r\n if (this.gardens.length === 0) {\r\n return;\r\n }\r\n\r\n if (!TutorialHelper.hasAnsweredConsent()) {\r\n this.openTutorialConsentModal();\r\n }\r\n else {\r\n this.showTutorial();\r\n }\r\n }\r\n\r\n handleAcceptTutorial() {\r\n this.showTutorial();\r\n }\r\n\r\n handleDenyTutorial() {\r\n if (this.gardens.length == 1) {\r\n const firstGarden = this.gardens[0];\r\n if (firstGarden.Plants.length == 0) {\r\n this.openModalAddPlant(firstGarden.Id, firstGarden.Name);\r\n }\r\n }\r\n }\r\n\r\n showTutorial() {\r\n try {\r\n if (TutorialHelper.started) {\r\n return;\r\n }\r\n\r\n if (!TutorialHelper.hasConsent()) {\r\n return;\r\n }\r\n\r\n if(this.showTutorialPart1())\r\n if(this.tryOpenModalForTutorialPart2())\r\n if(this.showTutorialPart3())\r\n if(this.tryOpenModalForTutorialPart4())\r\n if(this.showTutorialPart5())\r\n this.tryOpenModalForTutorialPart6();\r\n }\r\n catch (error){\r\n console.error(error);\r\n }\r\n }\r\n\r\n ensureTutorialOverlay = (container: any) => {\r\n //anno uses a timeout of 50 to hide overlay and then 300 to remove it\r\n setTimeout(() => {\r\n const overlay = $('.anno-overlay');\r\n\r\n if(!!overlay && overlay.length === 0)\r\n {\r\n $('
', { class: 'anno-overlay'}).appendTo(container);\r\n }\r\n }, 500)\r\n }\r\n\r\n tutorialDefaultMethods = {\r\n onShow: () => {\r\n // move overlay to this container\r\n const pageContentContainer = $(\"#PageContentContainer\");\r\n\r\n $('.anno-overlay').detach().appendTo(pageContentContainer)\r\n this.ensureTutorialOverlay(pageContentContainer);\r\n\r\n // sticky position is a problem\r\n $('.gp-navigation-row').addClass('during-tutorial');\r\n },\r\n\r\n onHide: (isDone: boolean) => {\r\n // sticky position is a problem\r\n $('.gp-navigation-row').removeClass('during-tutorial');\r\n },\r\n }\r\n\r\n tutorialDefaultOptions = {\r\n position: \"bottom\",\r\n asAbsolute: false,\r\n onShow: this.tutorialDefaultMethods.onShow,\r\n onHide: this.tutorialDefaultMethods.onHide,\r\n buttons: [{\r\n text: this.$ml.get('tutorialNext'), \r\n click: (anno: any) => {\r\n anno.switchToChainNext();\r\n }\r\n }],\r\n }\r\n\r\n\ttutorialDefaultModalMethods = {\r\n\t\tonShow: () => {\r\n\t\t\tconst modalDialog = $(\"#the-modal .modal-dialog\");\r\n\t\t\t// move overlay to this modal dialog\r\n\t\t\t$('.anno-overlay').detach().appendTo(modalDialog);\r\n this.ensureTutorialOverlay(modalDialog);\r\n\r\n\t\t\t$('.loader-container').addClass('during-tutorial');\r\n\t\t},\r\n\r\n\t\tonHide: (isDone: boolean) => {\r\n\t\t\t$('.loader-container').removeClass('during-tutorial');\r\n\t\t}\r\n\t}\r\n\r\n\ttutorialDefaultModalOptions = {\r\n ...this.tutorialDefaultOptions,\r\n\t\tonShow: this.tutorialDefaultModalMethods.onShow,\r\n\t\tonHide: this.tutorialDefaultModalMethods.onHide,\r\n\t}\r\n\r\n showTutorialPart1() {\r\n if (TutorialHelper.hasDone('tutorial-part1')) {\r\n return true;\r\n }\r\n\r\n TutorialHelper.startTutorial(\r\n 'tutorial-part1',\r\n [{\r\n ...this.tutorialDefaultOptions,\r\n target: \"#anno-add-garden\",\r\n content: this.$ml.get(\"tutorialAddGarden\"),\r\n onHide: (isDone) => {\r\n this.tutorialDefaultMethods.onHide(isDone);\r\n\r\n this.tryOpenModalForTutorialPart2();\r\n }\r\n },\r\n ]);\r\n\r\n return false;\r\n }\r\n\r\n tryOpenModalForTutorialPart2() {\r\n\t\tif (TutorialHelper.hasDone('tutorial-part2')) {\r\n\t\t\treturn true;\r\n }\r\n\r\n // we need to open modal\r\n if(!this.isTheModalOpen()) {\r\n // we open the add plant modal and we continue there\r\n if (this.filteredGarden.length > 0) {\r\n const firstGarden = this.filteredGarden[0];\r\n this.openModalAddPlant(firstGarden.Id, firstGarden.Name); \r\n\r\n // we use handleAddPlantLoaded to understand when to start tutorial\r\n }\r\n }\r\n else {\r\n this.showTutorialPart2();\r\n }\r\n\r\n return false;\r\n }\r\n\r\n\tshowTutorialPart2() {\r\n\t\tif (TutorialHelper.hasDone('tutorial-part2')) {\r\n\t\t\treturn true;\r\n }\r\n\r\n // open that mobile filter\r\n if (this.isMobile()) {\r\n $('#mobile-filter-toggler').click()\r\n }\r\n \r\n\t\tTutorialHelper.startTutorial(\r\n 'tutorial-part2',\r\n [{\r\n\t\t\t\t...this.tutorialDefaultModalOptions,\r\n\t\t\t\tasAbsolute: true,\r\n\t\t\t\ttarget: \"#gardenplanerLandiPlants .add-to-garden:first\",\r\n\t\t\t\tcontent: this.$ml.get(\"tutorialAddPlantFromLandiCatalog\"),\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t...this.tutorialDefaultModalOptions,\r\n\t\t\t\tposition: this.isMobile() ? \"bottom\": \"right\",\r\n\t\t\t\ttarget: \"#plants-filter\",\r\n\t\t\t\tcontent: this.$ml.get(\"tutorialAddPlantFilters\"),\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t...this.tutorialDefaultModalOptions,\r\n\t\t\t\tposition: \"left\",\r\n\t\t\t\tasAbsolute: true,\r\n\t\t\t\ttarget: \"#the-modal .modal-header .close\",\r\n\t\t\t\tcontent: this.$ml.get(\"tutorialAddPlantClose\"),\r\n\t\t\t\tonHide: (isDone) => {\r\n\t\t\t\t\tthis.tutorialDefaultModalMethods.onHide(isDone);\r\n\r\n // close modal\r\n $('#the-modal .modal-header .close').click();\r\n\r\n this.showTutorialPart3();\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t]);\r\n\r\n\t\treturn false;\r\n }\r\n \r\n isMobile() {\r\n return ScreenHelper.screenResulution() === ScreenResolution.Phone; \r\n }\r\n\r\n showTutorialPart3() {\r\n if (TutorialHelper.hasDone('tutorial-part3')) {\r\n return true;\r\n }\r\n\r\n const filters = this.isMobile() ? '#mobile-filters': '#desktop-filters';\r\n\r\n // open that mobile filter\r\n if (this.isMobile()) {\r\n $('#mobile-filters .accordeon').click()\r\n }\r\n\r\n const steps = [];\r\n\r\n steps.push({\r\n ...this.tutorialDefaultOptions,\r\n target: `${filters} .dropdown-product-filter`,\r\n content: this.$ml.get(\"tutorialCalendarFilterOnActivity\"),\r\n });\r\n\r\n if (!this.isMobile()) {\r\n steps.push({\r\n ...this.tutorialDefaultOptions,\r\n position: 'left',\r\n target: `${filters} .calendar-view-toggler`,\r\n content: this.$ml.get(\"tutorialCalendarPeriodView\"),\r\n });\r\n }\r\n\r\n steps.push({\r\n ...this.tutorialDefaultOptions,\r\n asAbsolute: true,\r\n target: \".weather-bar\",\r\n content: this.$ml.get(\"tutorialCalendarMeteo\"),\r\n });\r\n\r\n if (this.isLoggedIn) {\r\n steps.push( {\r\n ...this.tutorialDefaultOptions,\r\n asAbsolute: true,\r\n target: `${filters} .subscribe-meteo-alerts`,\r\n content: this.$ml.get(\"tutorialCalendarMeteoAlerts\"),\r\n },)\r\n }\r\n\r\n steps.push( {\r\n ...this.tutorialDefaultOptions,\r\n asAbsolute: true,\r\n position: this.isMobile() ? 'center-left' : 'right',\r\n target: \".add-plant:first\",\r\n content: this.$ml.get(\"tutorialAddPlant\"),\r\n onHide: (isDone: boolean) => {\r\n this.tutorialDefaultMethods.onHide(isDone);\r\n \r\n console.debug('start tutorial 4');\r\n this.tryOpenModalForTutorialPart4();\r\n }\r\n })\r\n\r\n TutorialHelper.startTutorial('tutorial-part3', steps);\r\n\r\n return false;\r\n }\r\n\r\n tryOpenModalForTutorialPart4() {\r\n\t\tif (TutorialHelper.hasDone('tutorial-part4')) {\r\n\t\t\treturn true;\r\n }\r\n\r\n // we need to open modal\r\n if(!this.isTheModalOpen()) {\r\n // we open the edit plant modal and we continue there\r\n if (this.filteredGarden.length > 0) {\r\n const firstGarden = this.filteredGarden[0];\r\n this.openModalAddCustomPlant(firstGarden.Id, firstGarden.Name);\r\n\r\n // we use handleAddPlantLoaded to understand when to start tutorial\r\n }\r\n }\r\n else {\r\n this.showTutorialPart4();\r\n }\r\n\r\n return false;\r\n }\r\n\r\n\tshowTutorialPart4() {\r\n\t\tif (TutorialHelper.hasDone('tutorial-part4')) {\r\n\t\t\treturn true;\r\n }\r\n\r\n const steps = [];\r\n\r\n steps.push(\r\n {\r\n\t\t\t\t...this.tutorialDefaultModalOptions,\r\n\t\t\t\ttarget: \"#search-products-tab\",\r\n\t\t\t\tcontent: this.$ml.get(\"tutorialAddCustomPlant\"),\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t...this.tutorialDefaultModalOptions,\r\n\t\t\t\tposition: \"top\",\r\n\t\t\t\tasAbsolute: true,\r\n\t\t\t\ttarget: \"#add-community-custom-plant\",\r\n\t\t\t\tcontent: this.$ml.get(\"tutorialAddCustomPlantShare\"),\r\n\t\t\t}\r\n );\r\n\r\n // ignore adding plants if user isn't logged in.\r\n if (this.isLoggedIn) {\r\n steps.push({\r\n\t\t\t\t...this.tutorialDefaultModalOptions,\r\n\t\t\t\tposition: this.isMobile() ? \"top\": \"left\",\r\n\t\t\t\tasAbsolute: true,\r\n\t\t\t\ttarget: \"#add-plant-to-calendar\",\r\n\t\t\t\tcontent: this.$ml.get(\"tutorialAddCustomPlantAddToCalendar\"),\r\n\t\t\t});\r\n }\r\n\r\n steps.push({\r\n ...this.tutorialDefaultModalOptions,\r\n position: \"left\",\r\n asAbsolute: true,\r\n target: \"#the-modal .modal-header .close\",\r\n content: this.$ml.get(\"tutorialAddCustomPlantClose\"),\r\n onHide: (isDone: boolean) => {\r\n this.tutorialDefaultModalMethods.onHide(isDone);\r\n\r\n // close modal\r\n $('#the-modal .modal-header .close').click();\r\n\r\n // for some reason, dropdown autocloses\r\n setTimeout(() => this.showTutorialPart5(), 1000);\r\n }\r\n });\r\n\r\n\t\tTutorialHelper.startTutorial('tutorial-part4', steps);\r\n\r\n\t\treturn false;\r\n\t}\t\r\n\r\n showTutorialPart5() {\r\n if (TutorialHelper.hasDone('tutorial-part5')) {\r\n return true;\r\n }\r\n\r\n this.$nextTick(() => {\r\n let plantMenu: any | null = null;\r\n let editButton: any | null = null;\r\n if (this.filteredGarden.length > 0) {\r\n const firstGarden = this.filteredGarden[0];\r\n if (firstGarden.Plants.length > 0) {\r\n plantMenu = $('#plant-menu-0-0');\r\n // open dropdown\r\n plantMenu.css('display', 'block')\r\n\r\n editButton = plantMenu.find('.edit-plant');\r\n }\r\n }\r\n\r\n const steps = [];\r\n\r\n if(!!plantMenu && !!editButton)\r\n {\r\n steps.push({\r\n ...this.tutorialDefaultOptions,\r\n target: editButton,\r\n position: this.isMobile() ? \"top\": \"bottom\",\r\n content: this.$ml.get(\"tutorialEditPlant\"),\r\n onShow : () => {\r\n this.tutorialDefaultMethods.onShow();\r\n plantMenu.addClass('during-tutorial');\r\n },\r\n onHide: (isDone: boolean) => {\r\n this.tutorialDefaultMethods.onHide(isDone);\r\n\r\n plantMenu.removeClass('during-tutorial');\r\n\r\n this.tryOpenModalForTutorialPart6();\r\n }\r\n });\r\n }\r\n\r\n TutorialHelper.startTutorial('tutorial-part5', steps);\r\n\r\n })\r\n return false;\r\n }\r\n\r\n tryOpenModalForTutorialPart6() {\r\n\t\tif (TutorialHelper.hasDone('tutorial-part6')) {\r\n\t\t\treturn true;\r\n }\r\n\r\n let plant: IPlant | null = null;\r\n if (this.filteredGarden.length > 0) {\r\n const firstGarden = this.filteredGarden[0];\r\n if (firstGarden.Plants.length > 0) {\r\n plant = firstGarden.Plants[0];\r\n }\r\n }\r\n\r\n if (!!plant) {\r\n // we open the edit plant modal and we continue there\r\n if(!this.isTheModalOpen()) {\r\n this.editPlant(plant);\r\n }\r\n else {\r\n this.showTutorialPart6();\r\n }\r\n }\r\n\r\n // we use handleEditPlantLoaded to understand when to start tutorial\r\n }\r\n\r\n showTutorialPart6() {\r\n\t\tif (TutorialHelper.hasDone('tutorial-part6')) {\r\n\t\t\treturn true;\r\n }\r\n \r\n const steps = [];\r\n\r\n const editActivities = $('#edit-activities');\r\n const editDetailInformation = $('#edit-detail-information');\r\n const hasDetailInformation = !!editDetailInformation && !!editDetailInformation.length;\r\n\r\n const onHide = (isDone: boolean) => {\r\n // we close modal\r\n $('#the-modal .modal-header .close').click();\r\n\r\n this.tutorialDefaultModalMethods.onHide(isDone);\r\n\r\n setTimeout(() => this.openTutorialEndModal(), 500);\r\n }\r\n\r\n if(!!editActivities && !!editActivities.length){\r\n steps.push({\r\n ...this.tutorialDefaultModalOptions,\r\n target: editActivities,\r\n asAbsolute: true,\r\n\t\t\t\tposition: this.isMobile() ? \"top\": \"bottom\",\r\n content: this.$ml.get(\"tutorialEditCustomActivities\"),\r\n onHide: (isDone: boolean) => {\r\n if(!hasDetailInformation) {\r\n onHide(isDone);\r\n }\r\n }\r\n });\r\n }\r\n\r\n if(hasDetailInformation){\r\n steps.push({\r\n ...this.tutorialDefaultModalOptions,\r\n target: editDetailInformation,\r\n\t\t\t\tposition: this.isMobile() ? \"top\": \"bottom\",\r\n content: this.$ml.get(\"tutorialEditDetailInformations\"),\r\n onHide: (isDone: boolean) => {\r\n onHide(isDone);\r\n }\r\n });\r\n }\r\n\r\n\t\tTutorialHelper.startTutorial('tutorial-part6', steps);\r\n\r\n\t\treturn false;\r\n\t}\r\n\r\n handleAddPlantLoaded() {\r\n this.showTutorial();\r\n }\r\n\r\n handleEditPlantLoaded() {\r\n this.showTutorial();\r\n }\r\n\r\n openBadNeighborsModal(gardenId: number): void {\r\n this.showModal4GardenId=gardenId;\r\n $(\"#bad-neighbors-modal-\"+gardenId).on(\"hide.bs.modal\", () => {\r\n this.showModal4GardenId=-1;\r\n $(\"#bad-neighbors-modal-\"+gardenId).unbind(\"hide.bs.modal\");\r\n });\r\n }\r\n}\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/ts-loader/index.js??ref--13-3!./TheCalendarBody.component.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/ts-loader/index.js??ref--13-3!./TheCalendarBody.component.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TheCalendarBody.vue?vue&type=template&id=f407b4c4&scoped=true&\"\nimport script from \"./TheCalendarBody.component.ts?vue&type=script&lang=js&\"\nexport * from \"./TheCalendarBody.component.ts?vue&type=script&lang=js&\"\nimport style0 from \"./TheCalendarBody.vue?vue&type=style&index=0&lang=css&\"\nimport style1 from \"./TheCalendarBody.vue?vue&type=style&index=1&id=f407b4c4&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f407b4c4\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"row panel panel-gray panel-selection\",attrs:{\"id\":\"calendar-panel\"}},[_c('div',{staticClass:\"row\"},[_c('accordeon',{staticClass:\"visible-xs\",attrs:{\"id\":\"mobile-filters\",\"text\":_vm.$ml.get('filtersAccordion'),\"chevronLeft\":false}},[_c('calendar-filters')],1),_c('calendar-filters',{staticClass:\"hidden-xs\",attrs:{\"id\":\"desktop-filters\",\"isLoggedIn\":_vm.isLoggedIn}})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"spacers\"},[_c('subscribe-modal',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.subscribeModalView),expression:\"subscribeModalView\"}],ref:\"subscribeModal\",attrs:{\"gardenIds\":_vm.gardenIds}}),_c('save-garden-modal',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.saveGardenModalView),expression:\"saveGardenModalView\"}],ref:\"saveGardenModal\"}),_c('div',{staticClass:\"col-xs-12 col-sm-6 col-md-3 product-filter-item product-filter-search-item\"},[_c('search-textbox',{ref:\"searchPlantTextbox\",staticClass:\"form-control\",on:{\"submit\":_vm.submitSearch},model:{value:(_vm.searchPlantText),callback:function ($$v) {_vm.searchPlantText=$$v},expression:\"searchPlantText\"}})],1),_c('div',{staticClass:\"col-xs-12 col-sm-6 col-md-4 product-filter-item dropdown-product-filter\"},[_c('dropdown-multiselect',{ref:\"activityDropdown\",attrs:{\"list\":_vm.activityDropdownlist,\"noSelectionText\":_vm.$ml.get('gardenFilterActivities'),\"selectedValues\":_vm.selectedActivityTypes,\"index\":0},on:{\"selected-items-changed\":_vm.selectedActivitiesChanged}})],1),_c('div',{staticClass:\"col-xs-12 col-md-5\"},[(_vm.userIsLoggedIn)?_c('span',{staticClass:\"subscribe-meteo-alerts\"},[_c('button',{staticClass:\"btn btn-link btn-alert\",attrs:{\"title\":_vm.$ml.get('modalSubscribeTitle'),\"alt\":_vm.$ml.get('modalSubscribeTitle')},on:{\"click\":_vm.openModalSubscribe}},[_c('v-icon',{attrs:{\"name\":\"bell\",\"scale\":\"2\",\"color\":\"green\"}}),_vm._v(\" \"+_vm._s(_vm.$ml.get('modalSubscribeTitle'))+\" \")],1)]):_vm._e(),_c('label',{staticClass:\"label-info-save\"},[(!_vm.userIsLoggedIn)?_c('v-icon',{staticStyle:{\"margin-top\":\"23%\"},attrs:{\"data-toggle\":\"tooltip\",\"data-placement\":\"bottom\",\"title\":_vm.$ml.get('saveDisclaimer'),\"name\":\"save\",\"scale\":\"2\",\"color\":\"green\",\"alt\":_vm.$ml.get('modalSubscribeSave')},on:{\"click\":_vm.saveCalendarForNotloggedIn}}):_c('v-icon',{staticStyle:{\"margin-top\":\"20%\"},attrs:{\"name\":\"info-circle\",\"scale\":\"2\",\"color\":\"green\"},on:{\"click\":_vm.showHelpingTippsPage}})],1),_c('div',{staticClass:\"btn-group hidden-xs gp-calendar-view-toggler calendar-view-toggler\",attrs:{\"data-toggle\":\"buttons\"}},[_c('label',{staticClass:\"btn btn-default\",class:_vm.cssClassCalendarViewMonth,staticStyle:{\"padding\":\"6px 12px\"},attrs:{\"for\":\"calendarViewMonth\"},on:{\"click\":function($event){return _vm.switchView('Month')}}},[_c('input',{attrs:{\"type\":\"radio\",\"name\":\"calendarView\",\"id\":\"calendarViewMonth\",\"value\":\"Month\"},domProps:{\"checked\":_vm.isMonthView},on:{\"change\":function($event){return _vm.switchView('Month')}}}),_c('span',{staticStyle:{\"position\":\"absolute\",\"top\":\"14px\",\"left\":\"20px\"}},[_vm._v(\"M\")]),_c('v-icon',{attrs:{\"name\":\"regular/calendar\",\"scale\":\"2\"}})],1),_c('label',{staticClass:\"btn btn-default\",class:_vm.cssClassCalendarViewYear,staticStyle:{\"padding\":\"6px 12px\"},attrs:{\"for\":\"calendarViewYear\"},on:{\"click\":function($event){return _vm.switchView('Year')}}},[_c('input',{attrs:{\"type\":\"radio\",\"name\":\"calendarView\",\"id\":\"calendarViewYear\",\"value\":\"Year\"},domProps:{\"checked\":_vm.isYearView},on:{\"change\":function($event){return _vm.switchView('Year')}}}),_c('span',{staticStyle:{\"position\":\"absolute\",\"top\":\"14px\",\"left\":\"22px\"},domProps:{\"textContent\":_vm._s(_vm.$ml.get('calendarFiltersYearLetter'))}}),_c('v-icon',{attrs:{\"name\":\"regular/calendar\",\"scale\":\"2\"}})],1)])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"input-group\",staticStyle:{\"height\":\"25px\"}},[_c('span',{staticClass:\"twitter-typeahead\",staticStyle:{\"position\":\"relative\"}},[_c('input',{ref:\"searchTextbox\",staticClass:\"form-control\",staticStyle:{\"height\":\"25px\",\"position\":\"relative\",\"vertical-align\":\"top\",\"background-color\":\"transparent\",\"border\":\"none\",\"box-shadow\":\"none\"},attrs:{\"type\":\"search\",\"placeholder\":_vm.$ml.get('labelYourSearch'),\"name\":\"query\",\"value\":\"\",\"autocomplete\":\"off\",\"spellcheck\":\"false\",\"dir\":\"auto\"},on:{\"keyup\":_vm.onKeyUpEnter}})]),_c('span',{staticClass:\"input-group-btn\"},[_c('button',{staticClass:\"btn\",staticStyle:{\"background\":\"none\",\"padding\":\"0px\"},attrs:{\"type\":\"submit\",\"value\":\"Suchen\"},on:{\"click\":_vm.submit}},[_c('span',{staticClass:\"glyphicon glyphicon-search\",attrs:{\"aria-hidden\":\"true\"}})])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Prop, Vue, Mixins } from \"vue-property-decorator\";\r\nimport { KeyValuePair } from \"../../entities/entities\";\r\n\r\n@Component({\r\n \r\n})\r\nexport default class SearchTextbox extends Vue {\r\n\t$refs!: {\r\n searchTextbox: HTMLInputElement;\r\n };\r\n //@Prop() private selectedValue!: string;\r\n \r\n onKeyUpEnter(e: any) {\r\n if (e.keyCode === 13) {\r\n\t\tthis.submit();\r\n } \r\n }\r\n submit(){\r\n\t this.$emit('submit', this.$refs.searchTextbox.value)\r\n }\r\n created(){\r\n \r\n }\r\n\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchTextbox.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchTextbox.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SearchTextbox.vue?vue&type=template&id=1abc6534&scoped=true&\"\nimport script from \"./SearchTextbox.vue?vue&type=script&lang=ts&\"\nexport * from \"./SearchTextbox.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1abc6534\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:[_vm.isOpen? 'open': '','dropdown-container', 'dropdown-container-'+ _vm.index]},[_c('div',{staticClass:\"dropdown-button noselect\",on:{\"click\":_vm.triggerDropdown}},[_c('span',{staticClass:\"dropdown-label\",attrs:{\"value\":\"\"}},[_vm._v(_vm._s(_vm.noSelectionText))])]),_c('div',{staticClass:\"dropdown-list\"},[_c('ul',[_c('li',[_c('label',[_c('input',{staticClass:\"select-option select-multi-option\",attrs:{\"value\":\"all\",\"type\":\"checkbox\"},domProps:{\"checked\":_vm.areAllSelected},on:{\"click\":_vm.triggerSelectAll}}),_vm._v(\" \"+_vm._s(_vm.$ml.get('calendarFilterAllActivitu'))+\" \")])]),_vm._l((_vm.list),function(item){return _c('li',{key:item.key,class:_vm.cssClassActivityType(item.Key),attrs:{\"value\":item.key}},[_c('label',[_c('input',{staticClass:\"select-option select-multi-option\",attrs:{\"type\":\"checkbox\"},domProps:{\"value\":item.Value,\"checked\":_vm.isChecked(item.Key)},on:{\"click\":function($event){return _vm.onSelect(item)}}}),_c('img',{staticStyle:{\"width\":\"25px\"},attrs:{\"src\":_vm.getActivityIcon(item.Key)}}),_vm._v(\" \"+_vm._s(_vm.$ml.get('activityType' + item.Key))+\" \")])])})],2)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Prop, Vue, Mixins } from 'vue-property-decorator';\r\nimport { KeyValuePair, ActivityType } from '../../entities/entities';\r\nimport Icon from 'vue-awesome/components/Icon.vue';\r\nimport { ActivityHelper } from '../../helpers/activityHelper';\r\n\r\ndeclare var $: any;\r\n\r\n@Component({\r\n components: {\r\n 'v-icon': Icon\r\n }\r\n})\r\nexport default class DropDownActivities extends Vue {\r\n @Prop({ required: true, default: [] })\r\n public list!: Array>;\r\n @Prop() private selectedValues!: string[];\r\n @Prop() private noSelectionText!: string;\r\n @Prop() private index!: number;\r\n\r\n $: any;\r\n\r\n isOpen: boolean = false;\r\n public selectedItems: Array<\r\n KeyValuePair\r\n > = this.getSelectedItemByValue(['']);\r\n \r\n onSelect(item: KeyValuePair) {\r\n const idx = this.selectedItems.indexOf(item);\r\n if (idx > -1) {\r\n this.selectedItems.splice(idx, 1);\r\n } else {\r\n this.selectedItems.push(item);\r\n }\r\n this.$emit('selected-items-changed', this.selectedItems);\r\n }\r\n\r\n created() {\r\n if (this.selectedValues) {\r\n this.selectedItems = this.getSelectedItemByValue(this.selectedValues);\r\n }\r\n }\r\n\r\n triggerDropdown(event: Event) {\r\n $(document).mouseup(this.closeMenu);\r\n\r\n this.isOpen = !this.isOpen;\r\n }\r\n\r\n closeMenu(e: Event) {\r\n const $menu = $('.dropdown-container-' + this.index);\r\n if (!$menu.is(e.target) && $menu.has(e.target).length === 0) {\r\n // ... nor a descendant of the container\r\n this.isOpen = false;\r\n }\r\n }\r\n\r\n get areAllSelected(): boolean {\r\n return this.selectedItems.length == this.list.length;\r\n }\r\n\r\n triggerSelectAll() {\r\n if (this.areAllSelected) {\r\n this.selectedItems.splice(0, this.selectedItems.length);\r\n } else {\r\n this.selectedItems.splice(0, this.selectedItems.length);\r\n this.selectedItems.push(...this.list);\r\n }\r\n this.$emit('selected-items-changed', this.selectedItems);\r\n }\r\n\r\n getSelectedItemByValue(values: string[]): Array> {\r\n var result = this.list.filter(x => values.indexOf(x.Key) > -1);\r\n return result;\r\n }\r\n\r\n cssClassActivityType(activity: ActivityType): string {\r\n return 'activityType-' + activity;\r\n }\r\n\r\n getActivityIcon(activity: ActivityType): string {\r\n return ActivityHelper.getActivityIcon(activity);\r\n }\r\n\r\n isChecked(val: string) {\r\n if (this.selectedItems) {\r\n return this.selectedItems.filter(x => x.Key == val).length != 0;\r\n } else {\r\n return false;\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DropDownActivities.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DropDownActivities.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DropDownActivities.vue?vue&type=template&id=94417bd2&scoped=true&\"\nimport script from \"./DropDownActivities.vue?vue&type=script&lang=ts&\"\nexport * from \"./DropDownActivities.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DropDownActivities.vue?vue&type=style&index=0&id=94417bd2&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"94417bd2\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:\"modal\",staticClass:\"modal fade\",staticStyle:{\"padding-right\":\"0px !important\"},attrs:{\"id\":\"subscribe-modal\",\"tabindex\":\"-1\",\"role\":\"dialog\",\"aria-hidden\":\"false\"}},[_c('div',{staticClass:\"modal-dialog modal-small\"},[_c('div',{staticClass:\"modal-content\"},[_c('div',{staticClass:\"modal-header\"},[_c('button',{staticClass:\"close\",attrs:{\"type\":\"button\",\"data-dismiss\":\"modal\",\"aria-label\":\"Close\",\"disabled\":_vm.isLoading}},[_c('span',{attrs:{\"aria-hidden\":\"true\"}},[_vm._v(\"×\")])]),_c('span',{domProps:{\"textContent\":_vm._s(_vm.$ml.get('modalSubscribeTitle'))}})]),_c('div',{staticClass:\"modal-body\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-12\"},[(_vm.isLoading)?_c('div',{staticClass:\"loader\",staticStyle:{\"margin-left\":\"50%\"}},[_c('img',{attrs:{\"src\":\"/Frontend/Landi/Images/ajax-loader.gif\"}})]):_vm._e(),_c('div',{staticClass:\"rows\"},[_c('p',{domProps:{\"textContent\":_vm._s(_vm.$ml.get('modalSubscribeSubscriptionType'))}}),_c('div',{staticClass:\"rows\"},[_c('div',{staticClass:\"input-group\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.monthlyGardenOverview),expression:\"monthlyGardenOverview\"}],attrs:{\"type\":\"checkbox\",\"id\":\"chkMonthlyGardenOverview\"},domProps:{\"checked\":Array.isArray(_vm.monthlyGardenOverview)?_vm._i(_vm.monthlyGardenOverview,null)>-1:(_vm.monthlyGardenOverview)},on:{\"click\":_vm.handleMonthlyGardenOverviewClick,\"change\":function($event){var $$a=_vm.monthlyGardenOverview,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.monthlyGardenOverview=$$a.concat([$$v]))}else{$$i>-1&&(_vm.monthlyGardenOverview=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.monthlyGardenOverview=$$c}}}}),_c('label',{attrs:{\"for\":\"chkMonthlyGardenOverview\"}},[_vm._v(_vm._s(_vm.$ml.get('modalSubscribeGardenOverview')))])]),_c('div',{staticStyle:{\"border-bottom\":\"solid 1px grey\"}}),_c('div',{staticClass:\"input-group\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.weatherWarnings),expression:\"weatherWarnings\"}],attrs:{\"type\":\"checkbox\",\"id\":\"chkWeatherWarnings\"},domProps:{\"checked\":Array.isArray(_vm.weatherWarnings)?_vm._i(_vm.weatherWarnings,null)>-1:(_vm.weatherWarnings)},on:{\"click\":_vm.handleWeatherWarningClick,\"change\":function($event){var $$a=_vm.weatherWarnings,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.weatherWarnings=$$a.concat([$$v]))}else{$$i>-1&&(_vm.weatherWarnings=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.weatherWarnings=$$c}}}}),_c('label',{attrs:{\"for\":\"chkWeatherWarnings\"}},[_vm._v(_vm._s(_vm.$ml.get('modalSubscribeWeatherWarnings')))])])]),_c('p',{domProps:{\"textContent\":_vm._s(_vm.$ml.get('modalSubscribeCommunicationChannel'))}}),_c('div',{staticClass:\"group\"},[_c('button',{staticClass:\"btn btn-secondary\",class:{ 'btn-primary': _vm.isSMSToggled },attrs:{\"disabled\":!_vm.weatherWarnings},domProps:{\"textContent\":_vm._s(_vm.$ml.get('modalSubscribeSMS'))},on:{\"click\":function($event){_vm.isSMSToggled = !_vm.isSMSToggled}}}),_c('button',{staticClass:\"btn btn-secondary\",class:{ 'btn-primary': _vm.isEMailToggled },attrs:{\"disabled\":!_vm.weatherWarnings},domProps:{\"textContent\":_vm._s(_vm.$ml.get('modalSubscribeEMail'))},on:{\"click\":function($event){_vm.isEMailToggled = !_vm.isEMailToggled}}})]),(_vm.isWhatsappToggled | _vm.isSMSToggled)?_c('div',[_c('div',{staticClass:\"input-group\"},[_c('label',{domProps:{\"textContent\":_vm._s(_vm.$ml.get('modalPhoneNumber'))}}),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.phoneNumber),expression:\"phoneNumber\"}],staticClass:\"form-control\",class:!_vm.isPhonenumberValid ? 'is-invalid': 'is-valid',attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.phoneNumber)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.phoneNumber=$event.target.value}}})]),(!_vm.isPhonenumberValid && _vm.isSMSToggled)?_c('div',{staticClass:\"invalid-feedback\"},[_vm._v(_vm._s(_vm.$ml.get('modalSubscribeNotValidPhonenumber')))]):_vm._e()]):_vm._e()])])])]),_c('div',{staticClass:\"modal-footer\"},[_c('button',{staticClass:\"btn btn-primary\",attrs:{\"type\":\"button\",\"disabled\":_vm.isLoading || !_vm.canSave},domProps:{\"textContent\":_vm._s(_vm.$ml.get('modalSubscribeSave'))},on:{\"click\":_vm.subscribe}})])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Prop, Vue, Mixins, Watch } from \"vue-property-decorator\";\r\nimport { mixins } from \"vue-class-component\";\r\nimport CalendarMonthDrawModeMixin from \"../../mixins/CalendarMonthDrawMode\";\r\nimport { STORE_ACTIONS } from \"../../store/storeActions\";\r\nimport {\r\n IGardenNotification,\r\n GardenNotification,\r\n GardenNotificationType,\r\n GardenNotificationMedia\r\n} from \"../../entities/entities\";\r\nimport Axios, { AxiosResponse } from \"axios\";\r\nimport \"vue-awesome/icons/plus-square\";\r\nimport Icon from \"vue-awesome/components/Icon.vue\";\r\nimport ToastrHelper from '../../helpers/toastrHelper';\r\ndeclare var $: any;\r\ndeclare var Landi: any;\r\ndeclare var window: any;\r\ndeclare var $ml: any;\r\n\r\n@Component({\r\n components: {\r\n \"v-icon\": Icon\r\n },\r\n mixins: [CalendarMonthDrawModeMixin]\r\n})\r\nexport default class CalendarSubscribeModal extends Mixins(\r\n CalendarMonthDrawModeMixin\r\n) {\r\n $refs!: {\r\n modal: HTMLElement;\r\n };\r\n\r\n @Prop({required: true, default: () => {return []}})\r\n public gardenIds!: number[];\r\n\r\n isLoadingSubscription = false;\r\n isUpdatingSubscription = false;\r\n $ml: any;\r\n\r\n monthlyGardenOverview = false;\r\n weatherWarnings = false;\r\n isSMSToggled = false;\r\n isWhatsappToggled = false;\r\n isEMailToggled = false;\r\n phoneNumber = \"\";\r\n isPhonenumberValid: boolean = false;\r\n\r\n mounted() {\r\n $(this.$refs.modal).on(\"show.bs.modal\", () => {\r\n this.reset();\r\n this.fetchNotifications();\r\n });\r\n }\r\n\r\n reset() {\r\n this.monthlyGardenOverview = false;\r\n this.weatherWarnings = false;\r\n this.isSMSToggled = false;\r\n this.isWhatsappToggled = false;\r\n this.isEMailToggled = false;\r\n }\r\n\r\n async fetchNotifications() {\r\n this.isLoadingSubscription = true;\r\n\r\n try {\r\n const res = await Axios.get(\r\n `/api/${Vue.prototype.$Language}/garden/notifications`\r\n );\r\n\r\n this.monthlyGardenOverview = res.data.some(\r\n n =>\r\n n.NotificationType ===\r\n GardenNotificationType.MonthlyActivitiesRemainder\r\n );\r\n this.weatherWarnings = res.data.some(\r\n n => n.NotificationType === GardenNotificationType.WeatherWarnings\r\n );\r\n this.isSMSToggled = res.data.some(\r\n n => n.NotificationMedia === GardenNotificationMedia.Sms\r\n );\r\n this.isWhatsappToggled = res.data.some(\r\n n => n.NotificationMedia === GardenNotificationMedia.WhatsApp\r\n );\r\n this.isEMailToggled = res.data.some(\r\n n => n.NotificationMedia === GardenNotificationMedia.Email\r\n );\r\n\r\n const nonEmptyRecipient = res.data.find(n => !!n.Recipient);\r\n\r\n if (!!nonEmptyRecipient) {\r\n this.phoneNumber = nonEmptyRecipient.Recipient;\r\n }\r\n } catch (error) {\r\n ToastrHelper.Error(this.$ml.get(\"modalSubscribeError\"));\r\n }\r\n\r\n this.isLoadingSubscription = false;\r\n }\r\n\r\n async subscribe() {\r\n this.isUpdatingSubscription = true;\r\n\r\n try {\r\n const notifications = this.getNotifications();\r\n\r\n await Axios.post(\r\n `/api/${Vue.prototype.$Language}/garden/notifications/update`,\r\n notifications\r\n );\r\n } catch (error) {\r\n ToastrHelper.Error(this.$ml.get(\"modalSubscribeError\"));\r\n }\r\n\r\n this.isUpdatingSubscription = false;\r\n ToastrHelper.Success(this.$ml.get(\"successSaveMessage\"));\r\n }\r\n\r\n private getNotifications() {\r\n const notifications: GardenNotification[] = [];\r\n\r\n if (this.monthlyGardenOverview) {\r\n if (this.isEMailToggled) {\r\n notifications.push(\r\n ...this.gardenIds.map(\r\n toNotification(\r\n GardenNotificationType.MonthlyActivitiesRemainder,\r\n GardenNotificationMedia.Email,\r\n \"\"\r\n )\r\n )\r\n );\r\n }\r\n }\r\n if (this.weatherWarnings) {\r\n if (this.isEMailToggled) {\r\n notifications.push(\r\n ...this.gardenIds.map(\r\n toNotification(\r\n GardenNotificationType.WeatherWarnings,\r\n GardenNotificationMedia.Email,\r\n \"\"\r\n )\r\n )\r\n );\r\n }\r\n if (this.isWhatsappToggled) {\r\n notifications.push(\r\n ...this.gardenIds.map(\r\n toNotification(\r\n GardenNotificationType.WeatherWarnings,\r\n GardenNotificationMedia.WhatsApp,\r\n this.phoneNumber\r\n )\r\n )\r\n );\r\n }\r\n if (this.isSMSToggled) {\r\n notifications.push(\r\n ...this.gardenIds.map(\r\n toNotification(\r\n GardenNotificationType.WeatherWarnings,\r\n GardenNotificationMedia.Sms,\r\n this.phoneNumber\r\n )\r\n )\r\n );\r\n }\r\n }\r\n return notifications;\r\n }\r\n\r\n handleMonthlyGardenOverviewClick(evt: Event) {\r\n if (!!evt.currentTarget) {\r\n const checkbox = evt.currentTarget as HTMLInputElement;\r\n if (!checkbox.checked && !this.weatherWarnings) {\r\n this.isEMailToggled = false;\r\n }\r\n }\r\n }\r\n\r\n handleWeatherWarningClick(evt: Event) {\r\n if (!!evt.currentTarget) {\r\n const checkbox = evt.currentTarget as HTMLInputElement;\r\n if (!checkbox.checked) {\r\n this.isSMSToggled = false;\r\n this.isWhatsappToggled = false;\r\n\r\n if (!this.monthlyGardenOverview) {\r\n this.isEMailToggled = false;\r\n }\r\n }\r\n }\r\n }\r\n\r\n get canSave(): boolean {\r\n // that particular case when you select one checkbox but no buttons\r\n if (this.weatherWarnings) {\r\n if (\r\n !this.isEMailToggled &&\r\n !this.isSMSToggled &&\r\n !this.isWhatsappToggled\r\n ) {\r\n return false;\r\n }\r\n }\r\n\r\n // validate phonenumber by format\r\n var re = new RegExp(\"^(0041[ ]*[0-9]{2}[ ]*[0-9]{3}[ ]*[0-9]{2}[ ]*[0-9]{2})$\");\r\n this.isPhonenumberValid = re.test(this.phoneNumber)\r\n if ((this.isSMSToggled || this.isWhatsappToggled) && !this.isPhonenumberValid) {\r\n return false;\r\n\t}\r\n\t\r\n return true;\r\n }\r\n\r\n get isLoading(): boolean {\r\n return this.isLoadingSubscription || this.isUpdatingSubscription;\r\n }\r\n}\r\n\r\nfunction toNotification(\r\n notificationType: GardenNotificationType,\r\n notificationMedia: GardenNotificationMedia,\r\n recipient: string\r\n) {\r\n return (gardenId: number) =>\r\n new GardenNotification(\r\n gardenId,\r\n notificationType,\r\n notificationMedia,\r\n recipient\r\n );\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheCalendarSubscribeModal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheCalendarSubscribeModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TheCalendarSubscribeModal.vue?vue&type=template&id=c6ec7e0c&scoped=true&\"\nimport script from \"./TheCalendarSubscribeModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./TheCalendarSubscribeModal.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TheCalendarSubscribeModal.vue?vue&type=style&index=0&id=c6ec7e0c&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"c6ec7e0c\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:\"modal\",staticClass:\"modal fade\",staticStyle:{\"padding-right\":\"0px !important\"},attrs:{\"id\":\"save-garden-modal\",\"tabindex\":\"-1\",\"role\":\"dialog\",\"aria-hidden\":\"false\"}},[_c('div',{staticClass:\"modal-dialog modal-small\"},[_c('div',{staticClass:\"modal-content\"},[_c('div',{staticClass:\"modal-header\"},[_vm._m(0),_c('span',{domProps:{\"textContent\":_vm._s(_vm.$ml.get('modalSavGardenTitle'))}})]),_c('div',{staticClass:\"modal-body\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-12\"},[_c('p',[_vm._v(_vm._s(_vm.$ml.get('modalSaveGardenInfoText')))])])])]),_c('div',{staticClass:\"modal-footer\"},[_c('button',{staticClass:\"btn btn-primary\",attrs:{\"type\":\"button\"},domProps:{\"textContent\":_vm._s(_vm.$ml.get('modalSavGardenTitle'))},on:{\"click\":_vm.login}})])])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('button',{staticClass:\"close\",attrs:{\"type\":\"button\",\"data-dismiss\":\"modal\",\"aria-label\":\"Close\"}},[_c('span',{attrs:{\"aria-hidden\":\"true\"}},[_vm._v(\"×\")])])}]\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Prop, Vue, Mixins, Watch } from \"vue-property-decorator\";\r\nimport { mixins } from \"vue-class-component\";\r\nimport CalendarMonthDrawModeMixin from \"../../mixins/CalendarMonthDrawMode\";\r\nimport { STORE_ACTIONS } from \"../../store/storeActions\";\r\nimport {\r\n IGardenNotification,\r\n GardenNotification,\r\n GardenNotificationType,\r\n GardenNotificationMedia\r\n} from \"../../entities/entities\";\r\nimport Axios, { AxiosResponse } from \"axios\";\r\nimport \"vue-awesome/icons/plus-square\";\r\nimport Icon from \"vue-awesome/components/Icon.vue\";\r\ndeclare var $: any;\r\ndeclare var Landi: any;\r\ndeclare var window: any;\r\ndeclare var $ml: any;\r\n\r\n@Component({\r\n components: {\r\n \"v-icon\": Icon\r\n },\r\n mixins: [CalendarMonthDrawModeMixin]\r\n})\r\nexport default class CalendarSubscribeModal extends Mixins(\r\n CalendarMonthDrawModeMixin\r\n) {\r\n $refs!: {\r\n modal: HTMLElement;\r\n };\r\n\r\n $ml: any;\r\n\r\n\r\n mounted() {\r\n $(this.$refs.modal).on(\"show.bs.modal\", () => {\r\n \r\n });\r\n }\r\n \r\n login() {\r\n const currentlocation = window.location.pathname;\r\n window.location.href = (Vue.prototype.$Language == \"fr\" ? \"/fr\" : \"\")+'/login?returnUrl='+currentlocation;\r\n }\r\n}\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheSaveGardenModal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheSaveGardenModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TheSaveGardenModal.vue?vue&type=template&id=ab05f8d8&\"\nimport script from \"./TheSaveGardenModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./TheSaveGardenModal.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { mapGetters } from \"vuex\";\r\nimport { Component, Prop, Vue, Mixins } from \"vue-property-decorator\";\r\nimport { mixins } from \"vue-class-component\";\r\nimport {\r\n IGarden,\r\n IActivity,\r\n ICalendarEntry,\r\n IPlant,\r\n CalendarEntry,\r\n Week,\r\n CalendarView,\r\n IWeek,\r\n Activity,\r\n ActivityType,\r\n Garden,\r\n KeyValuePair,\r\n} from \"../../entities/entities\";\r\nimport { STORE_ACTIONS } from \"../../store/storeActions\";\r\nimport ScreenHelper from \"../../helpers/screenHelper\";\r\nimport CalendarMonthDrawModeMixin from \"../../mixins/CalendarMonthDrawMode\";\r\nimport SearchTextBox from \"../general/SearchTextbox.vue\";\r\nimport DropDownMultiSelect from \"../general/DropDownActivities.vue\";\r\nimport SubscribeModal from \"./TheCalendarSubscribeModal.vue\";\r\nimport SaveGardenModal from \"./TheSaveGardenModal.vue\";\r\nimport { STORE_MUTATIONS } from \"../../store/storeMutations\";\r\nimport Icon from \"vue-awesome/components/Icon.vue\";\r\nimport \"vue-awesome/icons/bell\";\r\n\r\nimport \"vue-awesome/icons/info-circle\";\r\nimport \"vue-awesome/icons/regular/calendar\";\r\nimport \"vue-awesome/icons/save\";\r\nimport axios, { AxiosResponse } from \"axios\";\r\n\r\ndeclare var $: any;\r\ndeclare var $ml: any;\r\n\r\n@Component({\r\n components: {\r\n \"search-textbox\": SearchTextBox,\r\n \"dropdown-multiselect\": DropDownMultiSelect,\r\n \"v-icon\": Icon,\r\n \"subscribe-modal\": SubscribeModal,\r\n \"save-garden-modal\": SaveGardenModal,\r\n },\r\n computed: {\r\n ...mapGetters({\r\n gardens: \"gardens\",\r\n currentView: \"currentView\",\r\n searchPlantText: \"searchPlantText\",\r\n selectedActivityTypes: \"selectedActivityTypes\",\r\n userIsLoggedIn: \"userIsLoggedIn\",\r\n }),\r\n },\r\n mixins: [CalendarMonthDrawModeMixin],\r\n})\r\nexport default class CalendarFilters extends Mixins(\r\n CalendarMonthDrawModeMixin\r\n) {\r\n $refs!: {\r\n activityDropdown: DropDownMultiSelect;\r\n subscribeModal: SubscribeModal;\r\n saveGardenModal: SaveGardenModal;\r\n };\r\n gardens!: IGarden[];\r\n currentView!: CalendarView;\r\n subscribeModalView: boolean = false;\r\n saveGardenModalView: boolean = false;\r\n userIsLoggedIn!: boolean;\r\n\r\n @Prop() isLoggedIn!: boolean;\r\n\r\n mounted() {\r\n $('[data-toggle=\"tooltip\"]').tooltip();\r\n }\r\n\r\n switchView(selectedCalendarView: string) {\r\n this.$store.dispatch(STORE_ACTIONS.SWITCH_VIEW, {\r\n calendarview:\r\n selectedCalendarView == CalendarView.Month.toString()\r\n ? CalendarView.Month\r\n : CalendarView.Year,\r\n resolution: ScreenHelper.screenResulution(),\r\n });\r\n }\r\n\r\n selectedActivitiesChanged(e: KeyValuePair[]) {\r\n const activityTypes = e.map((x) => parseInt(x.Key));\r\n this.$store.dispatch(\r\n STORE_ACTIONS.SET_SELECTED_ACTIVITY_TYPE,\r\n activityTypes\r\n );\r\n }\r\n\r\n submitSearch(val: any) {\r\n this.$store.dispatch(STORE_ACTIONS.SEARCH_PLANT_BY_TEXT, val);\r\n }\r\n\r\n openModalSubscribe() {\r\n this.subscribeModalView = true;\r\n this.saveGardenModalView = false;\r\n\r\n this.$nextTick(function () {\r\n $(\"#subscribe-modal\").detach().appendTo(\"body\").modal(\"show\");\r\n\r\n $(\"#subscribe-modal\").css(\"padding-right\", 0);\r\n $(\"body\").css(\"padding-right\", 0);\r\n });\r\n }\r\n\r\n saveCalendarForNotloggedIn() {\r\n this.subscribeModalView = false;\r\n this.saveGardenModalView = true;\r\n\r\n this.$nextTick(function () {\r\n $(\"#save-garden-modal\").detach().appendTo(\"body\").modal(\"show\");\r\n\r\n $(\"#save-garden-modal\").css(\"padding-right\", 0);\r\n $(\"body\").css(\"padding-right\", 0);\r\n });\r\n }\r\n\r\n async showHelpingTippsPage() {\r\n let resposnse: AxiosResponse | null = null;\r\n\r\n resposnse = await axios.get(\r\n `/api/${Vue.prototype.$Language}/garden/helpPageUrl`\r\n );\r\n\r\n if (resposnse && resposnse.status === 200) {\r\n window.open(resposnse.data);\r\n }\r\n }\r\n\r\n get activityDropdownlist(): Array> {\r\n return Object.keys(ActivityType)\r\n .filter((key) => typeof ActivityType[key as any] === \"number\")\r\n .map>((k) => ({\r\n Key: ActivityType[k as any],\r\n Value: k.toString(),\r\n }));\r\n }\r\n\r\n get isMonthView() {\r\n return this.currentView == CalendarView.Month;\r\n }\r\n\r\n get isYearView() {\r\n return this.currentView == CalendarView.Year;\r\n }\r\n\r\n get cssClassCalendarViewMonth() {\r\n return this.isMonthView ? \"active\" : \"\";\r\n }\r\n\r\n get cssClassCalendarViewYear() {\r\n return this.isYearView ? \"active\" : \"\";\r\n }\r\n\r\n get gardenIds(): number[] {\r\n return this.gardens.map((g) => g.Id);\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CalendarFilters.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CalendarFilters.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CalendarFilters.vue?vue&type=template&id=16230801&scoped=true&\"\nimport script from \"./CalendarFilters.vue?vue&type=script&lang=ts&\"\nexport * from \"./CalendarFilters.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CalendarFilters.vue?vue&type=style&index=0&id=16230801&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"16230801\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\r\nimport { mapGetters } from \"vuex\";\r\nimport { Component, Prop, Vue, Mixins } from \"vue-property-decorator\";\r\nimport { mixins } from \"vue-class-component\";\r\nimport CalendarMonthDrawModeMixin from '../../mixins/CalendarMonthDrawMode';\r\nimport Accordeon from \"../general/Accordeon.vue\";\r\nimport CalendarFilters from './CalendarFilters.vue';\r\n\r\ndeclare var $: any;\r\ndeclare var $ml: any;\r\n\r\n@Component({\r\n components: {\r\n accordeon: Accordeon,\r\n 'calendar-filters': CalendarFilters\r\n },\r\n mixins: [CalendarMonthDrawModeMixin]\r\n})\r\nexport default class GardenCalendar extends Mixins(\r\n CalendarMonthDrawModeMixin\r\n) {\r\n @Prop() isLoggedIn!: boolean\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheCalendarHeader.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheCalendarHeader.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TheCalendarHeader.vue?vue&type=template&id=7e45e6e9&scoped=true&\"\nimport script from \"./TheCalendarHeader.vue?vue&type=script&lang=ts&\"\nexport * from \"./TheCalendarHeader.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TheCalendarHeader.vue?vue&type=style&index=0&id=7e45e6e9&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7e45e6e9\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!!_vm.todayWeather)?_c('div',{staticClass:\"weather-bar hide-print\"},[_c('div',{staticClass:\"row\"},[(_vm.IsLoggedIn)?[_c('div',{staticClass:\"place col-sm-2 hidden-xs flex-center-vertically center-flex\"},[_c('div',[_c('i',{staticClass:\"gfx-marker big-font\"}),_c('span',{attrs:{\"data-bind\":\"text: place\"}},[_vm._v(\" \"+_vm._s(_vm.gardenCityName))])])]),_c('div',{staticClass:\"place col-sm-2 col-xs-5 flex-center-vertically\"},[_vm._v(\" \"+_vm._s(_vm.extendedDate)+\" \")])]:[_c('div',{staticClass:\"col-sm-4 col-xs-5 flex-center-vertically cursor-pointer underline\",class:{'wetherBar-small-font' : this.isMobile},on:{\"click\":_vm.login}},[_vm._v(\" \"+_vm._s(_vm.$ml.get(\"weatherAnonymusMessage\"))+\" \")])],_c('div',{staticClass:\"col-sm-3 col-xs-5 big-font flex-center-vertically\"},[_c('div',{staticClass:\"flex flex-space center-item\"},[_c('div',{staticClass:\"symbol\"},[_c('img',{staticClass:\"img-max-height\",attrs:{\"alt\":\"\",\"src\":_vm.imagePath}})]),_c('div',[_vm._v(\" \"+_vm._s(_vm.todayWeather.uebersicht.mintemp)+\"/\"+_vm._s(_vm.todayWeather.uebersicht.maxtemp)+\" \")])])]),_c('div',{staticClass:\"col-sm-3 hidden-xs p-2 big-font flex-center-vertically\"},[_c('div',{staticClass:\"flex flex-space\"},[_c('div',{staticClass:\"wind\"},[_c('i',{staticClass:\"gfx-windspeed\"}),_c('span',[_vm._v(_vm._s(_vm.todayWeather.wind.geschwindigkeit))])]),_c('div',{staticClass:\"humidity\"},[_c('i',{staticClass:\"gfx-umbrella\"}),_c('span',[_vm._v(_vm._s(_vm.todayWeather.niederschlag.wahrscheinlichkeit))])])])]),_c('div',{staticClass:\"col-sm-2 col-xs-2 flex-center-vertically gray-background clickable-div\",on:{\"click\":_vm.triggerWeekCalendar}},[(!_vm.isWeekCalendarOpen)?_c('a',{staticClass:\"center-flex\"},[_c('span',{staticClass:\"closed hidden-xs hidden-sm\",staticStyle:{\"margin-right\":\"0.5em\"}},[_vm._v(_vm._s(_vm.$ml.get(\"weatherWeekview\")))]),_c('i',{staticClass:\"gfx-down-open\"})]):_c('a',{staticClass:\"center-flex\"},[_c('span',{staticClass:\"open hidden-xs hidden-sm\",staticStyle:{\"margin-right\":\"0.5em\"}},[_vm._v(_vm._s(_vm.$ml.get(\"weatherClose\")))]),_c('i',{staticClass:\"gfx-up-open\"})])])],2),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isWeekCalendarOpen),expression:\"isWeekCalendarOpen\"}],staticClass:\"row daily-calendar\"},[_c('week-calendar',{attrs:{\"week\":_vm.weatherWeek}})],1)]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('table',{staticClass:\"table-full-width\"},[_c('tr',_vm._l((_vm.week),function(weatherDay,indexDay){return _c('daily-weather-header',{key:indexDay,attrs:{\"date\":weatherDay.datum}})}),1),_c('tr',_vm._l((_vm.week),function(weather,index){return _c('daily-weather',{key:index,attrs:{\"weather\":weather}})}),1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('td',[_c('span',{staticClass:\"hidden-xs\"},[_vm._v(_vm._s(_vm.weather.datum))]),_c('div',{staticClass:\"symbol\"},[_c('img',{attrs:{\"alt\":\"\",\"src\":_vm.imagePath}})]),_c('div',[_vm._v(\" \"+_vm._s(_vm.weather.uebersicht.mintemp)+\"/\"+_vm._s(_vm.weather.uebersicht.maxtemp)+\" \")]),_c('div',{staticClass:\"wind hidden-xs\"},[_c('i',{staticClass:\"gfx-windspeed\"}),_c('span',[_vm._v(_vm._s(_vm.weather.wind.geschwindigkeit))])]),_c('div',{staticClass:\"humidity hidden-xs\"},[_c('i',{staticClass:\"gfx-umbrella\"}),_c('span',[_vm._v(_vm._s(_vm.weather.niederschlag.wahrscheinlichkeit))])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport Vue from 'vue';\r\nimport { Component, Prop } from 'vue-property-decorator';\r\nimport { IDayForecastLight } from '../../entities/entities';\r\nimport Moment from 'moment';\r\n\r\n@Component({})\r\nexport default class DailyWeather extends Vue {\r\n @Prop({ required: true })\r\n public weather!: IDayForecastLight;\r\n\r\n get imagePath(): string{\r\n return \"https://www.landi.ch/weather/Content/Wetter/\" + this.weather.uebersicht.symb + \"_real.png\";\r\n }\r\n\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DailyWeather.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DailyWeather.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DailyWeather.vue?vue&type=template&id=6220fc5e&scoped=true&\"\nimport script from \"./DailyWeather.vue?vue&type=script&lang=ts&\"\nexport * from \"./DailyWeather.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DailyWeather.vue?vue&type=style&index=0&id=6220fc5e&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6220fc5e\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('th',[_c('a',{attrs:{\"title\":_vm.weekDay}},[_vm._v(_vm._s(_vm.weekDay.slice(0, 2).toUpperCase())+\".\")])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\r\nimport Vue from 'vue';\r\nimport Moment from 'moment';\r\nimport { Component, Prop, Watch } from 'vue-property-decorator';\r\n\r\n@Component({})\r\nexport default class DailyWeatherHeader extends Vue {\r\n @Prop({ required: true })\r\n public date!: string;\r\n\r\n weekDay: string = '';\r\n\r\n mounted() {\r\n let deMoment = Moment(this.date, 'DD.MM.YYYY');\r\n deMoment.locale(Vue.prototype.$Language);\r\n deMoment.format('LLL');\r\n this.weekDay = deMoment.format('dddd');\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DailyWeatherHeader.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DailyWeatherHeader.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DailyWeatherHeader.vue?vue&type=template&id=09c41aa5&scoped=true&\"\nimport script from \"./DailyWeatherHeader.vue?vue&type=script&lang=ts&\"\nexport * from \"./DailyWeatherHeader.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DailyWeatherHeader.vue?vue&type=style&index=0&id=09c41aa5&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"09c41aa5\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { mapGetters } from 'vuex';\r\nimport { Component, Prop, Vue, Watch, Mixins } from 'vue-property-decorator';\r\nimport { STORE_ACTIONS } from '../../store/storeActions';\r\nimport Moment, { lang } from 'moment';\r\nimport { IDayForecastLight } from '../../entities/entities';\r\nimport DailyWeather from './DailyWeather.vue';\r\nimport DailyWeatherHeader from './DailyWeatherHeader.vue';\r\n\r\n@Component({\r\n components: {\r\n 'daily-weather': DailyWeather,\r\n 'daily-weather-header': DailyWeatherHeader\r\n }\r\n})\r\nexport default class WeekCalendar extends Vue {\r\n @Prop({ required: true, default: [] })\r\n public week!: IDayForecastLight[];\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WeekCalendar.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WeekCalendar.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./WeekCalendar.vue?vue&type=template&id=562ae7e3&scoped=true&\"\nimport script from \"./WeekCalendar.vue?vue&type=script&lang=ts&\"\nexport * from \"./WeekCalendar.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./WeekCalendar.vue?vue&type=style&index=0&id=562ae7e3&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"562ae7e3\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { mapGetters } from \"vuex\";\r\nimport { Component, Prop, Vue, Watch, Mixins } from \"vue-property-decorator\";\r\nimport { STORE_ACTIONS } from \"../../store/storeActions\";\r\nimport Moment from \"moment\";\r\nimport WeekCalendar from \"./WeekCalendar.vue\";\r\nimport { IDayForecastLight, ScreenResolution } from \"../../entities/entities\";\r\nimport ScreenHelper from \"../../helpers/screenHelper\";\r\ndeclare var $ml: any;\r\n@Component({\r\n components: {\r\n \"week-calendar\": WeekCalendar,\r\n },\r\n computed: {\r\n ...mapGetters({\r\n gardens: \"gardens\",\r\n gardenCityName: \"gardenCityName\",\r\n todayWeather: \"todayWeather\",\r\n weatherWeek: \"weatherWeek\",\r\n }),\r\n },\r\n})\r\nexport default class WeatherBar extends Vue {\r\n @Prop() IsLoggedIn!: boolean;\r\n @Watch(\"gardenCityName\")\r\n onCityNameChanged(val: string, oldVal: string) {\r\n this.$store.dispatch(STORE_ACTIONS.LOAD_FORECAST);\r\n }\r\n\r\n created() {\r\n this.$store.dispatch(STORE_ACTIONS.LOAD_FORECAST);\r\n }\r\n\r\n get isMobile() { \r\n return ScreenHelper.screenResulution() === ScreenResolution.Phone;\r\n }\r\n\r\n todayWeather!: IDayForecastLight;\r\n\r\n isWeekCalendarOpen: boolean = false;\r\n\r\n get extendedDate(): string {\r\n let deMoment = Moment();\r\n deMoment.locale(Vue.prototype.$Language);\r\n deMoment.format(\"LLL\");\r\n return deMoment.format(\"dddd DD.MM.YYYY\");\r\n }\r\n\r\n get imagePath(): string {\r\n return (\r\n \"https://www.landi.ch/weather/Content/Wetter/\" +\r\n this.todayWeather.uebersicht.symb +\r\n \"_real.png\"\r\n );\r\n }\r\n\r\n triggerWeekCalendar() {\r\n this.isWeekCalendarOpen = !this.isWeekCalendarOpen;\r\n }\r\n\r\n login() {\r\n const currentlocation = window.location.pathname;\r\n window.location.href = (Vue.prototype.$Language == \"fr\" ? \"/fr\" : \"\")+\"/login?returnUrl=\" + currentlocation;\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheWeatherBar.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheWeatherBar.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TheWeatherBar.vue?vue&type=template&id=6ffe080f&scoped=true&\"\nimport script from \"./TheWeatherBar.vue?vue&type=script&lang=ts&\"\nexport * from \"./TheWeatherBar.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TheWeatherBar.vue?vue&type=style&index=0&id=6ffe080f&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6ffe080f\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"container\"},[_c('div',{staticClass:\"row entrypage-image\",class:_vm.entryPageImageClass},[_c('div',{staticClass:\"col-xs-12\"},[_c('div',{staticClass:\"entrypge-button-position\"},[(!_vm.HasGarden)?_c('button',{staticClass:\"btn btn-primary pull-right btn-with-white-arrow\",staticStyle:{\"margin-bottom\":\"1em\",\"min-width\":\"150px\"},attrs:{\"value\":_vm.$ml.get('entryPageBtnCreateGarden')},on:{\"click\":_vm.createGarden}},[_vm._v(_vm._s(_vm.$ml.get('entryPageBtnCreateGarden')))]):_vm._e(),(!_vm.IsLoggedIn)?_c('button',{staticClass:\"btn btn-primary pull-right btn-with-white-arrow\",staticStyle:{\"min-width\":\"150px\"},attrs:{\"value\":_vm.$ml.get('entryPageBtnLoggin')},on:{\"click\":_vm.login}},[_vm._v(_vm._s(_vm.$ml.get('entryPageBtnLoggin')))]):_vm._e()])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\r\nimport { STORE_ACTIONS } from \"../../store/storeActions\";\r\ndeclare var $ml: any;\r\n@Component({})\r\nexport default class TheEntryPage extends Vue {\r\n @Prop() IsLoggedIn!: boolean;\r\n @Prop() HasGarden!: boolean;\r\n $ml: any;\r\n login() {\r\n const currentlocation = window.location.pathname;\r\n window.location.href = (Vue.prototype.$Language == \"fr\" ? \"/fr\" : \"\")+\"/login?returnUrl=\" + currentlocation;\r\n }\r\n createGarden() {\r\n this.$store.dispatch(STORE_ACTIONS.CREATE_NEW_GARDEN_FROM_ENTRYPAGE, true);\r\n }\r\n get entryPageImageClass(): string {\r\n if (Vue.prototype.$Language == \"fr\") {\r\n return \"entrypage-image-fr\";\r\n }\r\n return \"entrypage-image-de\";\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheEntryPage.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheEntryPage.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TheEntryPage.vue?vue&type=template&id=638fa85d&scoped=true&\"\nimport script from \"./TheEntryPage.vue?vue&type=script&lang=ts&\"\nexport * from \"./TheEntryPage.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TheEntryPage.vue?vue&type=style&index=0&id=638fa85d&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"638fa85d\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { mapGetters } from 'vuex';\r\nimport { Component, Vue, Prop } from 'vue-property-decorator';\r\nimport TheCalendarBody from './components/calendar/TheCalendarBody.vue';\r\nimport TheCalendarHeader from './components/calendar/TheCalendarHeader.vue';\r\nimport TheWeatherBar from './components/weather/TheWeatherBar.vue';\r\nimport TheEntryPage from './components/entry/TheEntryPage.vue';\r\n\r\nimport ScreenHelper from './helpers/screenHelper';\r\nimport { STORE_ACTIONS } from './store/storeActions';\r\nimport {\r\n CalendarView,\r\n KeyValuePair,\r\n ActivityType,\r\n ScreenResolution,\r\n IGarden\r\n} from './entities/entities';\r\nimport Icon from 'vue-awesome/components/Icon.vue';\r\nimport { STORE_MUTATIONS } from './store/storeMutations';\r\ndeclare var $ml: any;\r\n\r\n@Component({\r\n components: {\r\n 'calendar-body': TheCalendarBody,\r\n 'calendar-header': TheCalendarHeader,\r\n 'weather-bar': TheWeatherBar,\r\n entry: TheEntryPage\r\n },\r\n computed: {\r\n ...mapGetters({\r\n currentView: 'currentView',\r\n gardens: 'gardens'\r\n })\r\n }\r\n})\r\nexport default class App extends Vue {\r\n @Prop() private rootPath!: string;\r\n $ml: any;\r\n currentView!: CalendarView;\r\n gardens!: IGarden[];\r\n userIsLoggedIn: boolean = false;\r\n\r\n created() {\r\n // get init language\r\n const appobj = document.getElementById('landiGardenplanerApp');\r\n const currentInitLanguage = appobj\r\n ? appobj.getAttribute('language')\r\n : 'german';\r\n // get rootpath\r\n let rootPath = appobj\r\n ? appobj.getAttribute('rootPath')\r\n : 'http://localhost:3000';\r\n if (process.env.NODE_ENV === 'development') {\r\n rootPath = 'http://localhost:3000';\r\n }\r\n // get user is logged in\r\n this.userIsLoggedIn = appobj\r\n ? appobj.getAttribute('userLoggedIn') == 'true'\r\n : false;\r\n this.$store.commit(\r\n STORE_MUTATIONS.SET_USER_IS_LOGGED_IN,\r\n this.userIsLoggedIn\r\n );\r\n // get categoryIDs\r\n const categoryIds = appobj\r\n ? appobj.getAttribute('categoryIds') : '1101_1004';\r\n \r\n // get placeholder image url\r\n const placeholderImg = appobj ? appobj.getAttribute('placeholderImg') : '';\r\n this.$store.commit(\r\n STORE_MUTATIONS.SET_PLACEHOLDER_IMAGE_URL,\r\n placeholderImg\r\n );\r\n\r\n // set init language\r\n this.$ml.change(currentInitLanguage);\r\n\r\n // set Vue globals\r\n Vue.prototype.$BaseUrl = rootPath;\r\n Vue.prototype.$CategoryIds = categoryIds;\r\n Vue.prototype.$Language = currentInitLanguage;\r\n\r\n // this is kind a ugly. not found out how to use vue plugins in other plugins\r\n Vue.prototype.$ml = this.$ml;\r\n\r\n this.handleScreensizeSpecificActions();\r\n window.removeEventListener('resize', this.handleScreensizeSpecificActions);\r\n window.addEventListener('resize', this.handleScreensizeSpecificActions);\r\n }\r\n\r\n handleScreensizeSpecificActions() {\r\n this.$store.dispatch(STORE_ACTIONS.SWITCH_VIEW, {\r\n calendarview: this.currentView,\r\n resolution: ScreenHelper.screenResulution()\r\n });\r\n }\r\n\r\n get hasGarden(): boolean {\r\n return this.gardens.length > 0;\r\n }\r\n\r\n get isLoggedIn(): boolean {\r\n return this.userIsLoggedIn;\r\n }\r\n\r\n get showEntryPage(): boolean {\r\n return !this.hasGarden;\r\n }\r\n}\r\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--13-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/ts-loader/index.js??ref--13-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--13-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/ts-loader/index.js??ref--13-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=55453c47&\"\nimport script from \"./App.vue?vue&type=script&lang=ts&\"\nexport * from \"./App.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { STORE_ACTIONS } from \"./storeActions\";\r\nimport { STORE_MUTATIONS } from \"./storeMutations\";\r\nimport {\r\n IZipResult,\r\n IWeekForecastLight,\r\n ScreenResolution,\r\n CalendarView,\r\n ActivityType,\r\n IPlant,\r\n ICustomPlant,\r\n IGarden,\r\n IAddress,\r\n IMovePlantParam,\r\n UserCompetitionType,\r\n UserCompetitionAnswer,\r\n IMixedCulturesPlant,\r\n} from \"../entities/entities\";\r\nimport axios, { AxiosResponse } from \"axios\";\r\nimport { ActionTree } from \"vuex\";\r\nimport { IGardernCalendarState } from \".\";\r\nimport ToastrHelper from \"@/helpers/toastrHelper\";\r\n\r\nexport const actions: ActionTree<\r\n IGardernCalendarState,\r\n IGardernCalendarState\r\n> = {\r\n async [STORE_ACTIONS.LOAD_GARDEN]({ commit }): Promise {\r\n // let response: AxiosResponse = await axios.get(`${Vue.prototype.$BaseUrl}/garden`);\r\n let response = await axios.get(`/api/de/garden/gardens`);\r\n commit(STORE_MUTATIONS.SET_GARDEN, response.data);\r\n },\r\n async [STORE_ACTIONS.LOAD_FORECAST]({ commit, state }): Promise {\r\n if (state.gardens.length > 0) {\r\n let zipCode: string = state.gardens[0].Zip;\r\n let geoId: string = \"\";\r\n\r\n if (!state.gardenGeoId) {\r\n let responsezip: AxiosResponse = await axios.get(\r\n `/api/de/wetter/geoid/${zipCode}`\r\n );\r\n if (responsezip.data && responsezip.data.Id) {\r\n geoId = responsezip.data.Id;\r\n commit(STORE_MUTATIONS.SET_GARDEN_GEOID, geoId);\r\n }\r\n }\r\n\r\n if (geoId && geoId !== \"\") {\r\n let wforecast: AxiosResponse = await axios.get(\r\n `/api/de/wetter/forecast/week/geoid/${geoId}`\r\n );\r\n commit(STORE_MUTATIONS.SET_GARDEN_WEEK_WEATHER, wforecast.data);\r\n } else {\r\n let wforecast: AxiosResponse = await axios.get(\r\n `/api/de/wetter/forecast/week/zip`\r\n );\r\n commit(STORE_MUTATIONS.SET_GARDEN_WEEK_WEATHER, wforecast.data);\r\n }\r\n }\r\n },\r\n async [STORE_ACTIONS.LOAD_CALENDAR]({ commit }, ml: any): Promise {\r\n commit(STORE_MUTATIONS.GENERATE_CALENDAR, ml);\r\n },\r\n async [STORE_ACTIONS.MOVE_CALENDAR_NEXT]({ commit }, ml: any): Promise {\r\n commit(STORE_MUTATIONS.MOVE_CALENDAR_NEXT, ml);\r\n },\r\n async [STORE_ACTIONS.MOVE_CALENDAR_PREV]({ commit }, ml: any): Promise {\r\n commit(STORE_MUTATIONS.MOVE_CALENDAR_PREV, ml);\r\n },\r\n async [STORE_ACTIONS.SET_SELECTED_ACTIVITY_TYPE](\r\n { commit },\r\n activityTypes: ActivityType[]\r\n ) {\r\n commit(STORE_MUTATIONS.SET_SELECTED_ACTIVITY_TYPE, activityTypes);\r\n },\r\n async [STORE_ACTIONS.SEARCH_PLANT_BY_TEXT]({ commit }, searchText: string) {\r\n commit(STORE_MUTATIONS.SEARCH_PLANT_BY_TEXT, searchText);\r\n },\r\n async [STORE_ACTIONS.SWITCH_VIEW](\r\n { commit, dispatch },\r\n param: { calendarview: CalendarView; resolution: ScreenResolution }\r\n ) {\r\n if (param.resolution != ScreenResolution.Phone) {\r\n commit(STORE_MUTATIONS.SWITCH_CALENDAR_VIEW, param.calendarview);\r\n }\r\n\r\n if (param.resolution == ScreenResolution.Phone) {\r\n commit(STORE_MUTATIONS.SWITCH_CALENDAR_VIEW, CalendarView.Year);\r\n commit(STORE_MUTATIONS.SET_MONTH_TO_SHOW, 1);\r\n } else if (\r\n param.resolution == ScreenResolution.Tablet &&\r\n param.calendarview == CalendarView.Month\r\n ) {\r\n commit(STORE_MUTATIONS.SET_MONTH_TO_SHOW, 1);\r\n } else if (\r\n param.resolution == ScreenResolution.Tablet &&\r\n param.calendarview == CalendarView.Year\r\n ) {\r\n commit(STORE_MUTATIONS.SET_MONTH_TO_SHOW, 6);\r\n } else if (\r\n param.resolution == ScreenResolution.Desktop &&\r\n param.calendarview == CalendarView.Month\r\n ) {\r\n commit(STORE_MUTATIONS.SET_MONTH_TO_SHOW, 3);\r\n } else if (\r\n param.resolution == ScreenResolution.Desktop &&\r\n param.calendarview == CalendarView.Year\r\n ) {\r\n commit(STORE_MUTATIONS.SET_MONTH_TO_SHOW, 12);\r\n }\r\n dispatch(STORE_ACTIONS.LOAD_CALENDAR);\r\n },\r\n async [STORE_ACTIONS.ADD_PLANT]({ commit }, plant: IPlant) {\r\n let response = await axios.post(\r\n `/api/de/garden/addPlant/${plant.GardenId}`,\r\n plant\r\n );\r\n\r\n if (response.status == 200) {\r\n // response must be a complete plant with activites --> usable here in the view\r\n const newPlant = response.data as IPlant;\r\n\r\n if (newPlant) {\r\n // ensure that gardenId is set. Will not be delibered by API\r\n newPlant.GardenId = plant.GardenId;\r\n commit(STORE_MUTATIONS.ADD_PLANT, newPlant);\r\n\r\n // get bad neighbours\r\n let response = await axios.get(`/api/de/garden/badneighbours/${plant.GardenId}`);\r\n commit(STORE_MUTATIONS.SET_GARDEN_BAD_NEIGHBOURS, {GardenId: plant.GardenId, BadNeighbours: response.data});\r\n }\r\n } else {\r\n console.error(\"statuscode: \" + response.status);\r\n }\r\n },\r\n async [STORE_ACTIONS.UPDATE_LANDI_PLANT]({ commit }, plant: IPlant) {\r\n let response = await axios.post(\r\n `/api/de/garden/updatePlant/${plant.GardenId}`,\r\n plant\r\n );\r\n\r\n if (response.status == 200) {\r\n // response must be a complete plant with activites --> usable here in the view\r\n const newPlant = response.data as IPlant;\r\n if (newPlant) {\r\n // ensure that gardenId is set. Will not be delibered by API\r\n let response = await axios.get(`/api/de/garden/gardens`);\r\n commit(STORE_MUTATIONS.SET_GARDEN, response.data);\r\n }\r\n } else {\r\n console.error(\"statuscode: \" + response.status);\r\n }\r\n },\r\n async [STORE_ACTIONS.LOAD_ATTRIUBTES]({ commit }, searchText: string) {\r\n let response = await axios.get(`/api/de/gardenberater/filterAttributes/11`);\r\n commit(STORE_MUTATIONS.SET_ATTRIBUTES, response.data);\r\n },\r\n async [STORE_ACTIONS.LOAD_PRODUCT_GROUPS]({ commit }, ) {\r\n let response = await axios.get(`/api/de/gardenberater/productGroups`);\r\n commit(STORE_MUTATIONS.SET_PRODUCT_GROUPS, response.data);\r\n },\r\n async [STORE_ACTIONS.SAVE_CUSTOMPLANT](\r\n { commit },\r\n customPlant: ICustomPlant\r\n ): Promise {\r\n let response = await axios.post(`/api/de/plant/Create`, customPlant);\r\n // todo: handle added plant like update list with customplant. add it to garden etc.\r\n return response.data as ICustomPlant;\r\n },\r\n async [STORE_ACTIONS.UPDATE_CUSTOMPLANT](\r\n { commit },\r\n customPlant: ICustomPlant\r\n ): Promise {\r\n let response = await axios.post(`/api/de/plant/update`, customPlant);\r\n // todo: handle added plant like update list with customplant. add it to garden etc.\r\n return response.data as ICustomPlant;\r\n },\r\n\r\n async [STORE_ACTIONS.UPLOAD_CUSTOMPLANT_FILE](\r\n { commit },\r\n param: { file: File; customPlantId: number }\r\n ) {\r\n const config = {\r\n headers: {\r\n \"Content-Type\": \"image/jpeg\",\r\n },\r\n };\r\n let response = await axios.post(\r\n \"/api/de/plant/addReplacePicture/\" + param.customPlantId,\r\n param.file,\r\n config\r\n );\r\n // todo: handle uploaded image\r\n },\r\n async [STORE_ACTIONS.REMOVE_CUSTOMPLANT_FILE](\r\n { commit },\r\n param: { customPlantId: number }\r\n ) {\r\n let response = await axios.delete(\r\n \"/api/de/plant/removePicture/\" + param.customPlantId\r\n );\r\n },\r\n async [STORE_ACTIONS.DELETE_GARDEN]({ commit }, gardenId: number) {\r\n let response = await axios.delete(`/api/de/garden/delete/${gardenId}`);\r\n if (response.status == 200) {\r\n // ensure that gardenId is set. Will not be delibered by API\r\n commit(STORE_MUTATIONS.DELETE_GARDEN, gardenId);\r\n } else {\r\n ToastrHelper.Error(\"error while deleting garden\");\r\n console.error(\"statuscode: \" + response.status);\r\n }\r\n },\r\n async [STORE_ACTIONS.ADD_GARDEN]({ commit }, garden: IGarden) {\r\n let response = await axios.post(`/api/de/garden/create`, garden);\r\n if (response.status == 200) {\r\n const newGarden = response.data as IGarden;\r\n if (newGarden) {\r\n let response = await axios.get(`/api/de/garden/gardens`);\r\n commit(STORE_MUTATIONS.SET_GARDEN, response.data);\r\n }\r\n } else {\r\n ToastrHelper.Error(\"error while creating garden\");\r\n console.error(\"statuscode: \" + response.status);\r\n }\r\n },\r\n async [STORE_ACTIONS.LOAD_USER_ADDRESS]({ commit }) {\r\n let response = await axios.get(`/api/de/garden/mainAddress`);\r\n if (response.status == 200) {\r\n // response must be a complete plant with activites --> usable here in the view\r\n const mainAddress = response.data as IAddress;\r\n if (mainAddress) {\r\n // ensure that gardenId is set. Will not be delibered by API\r\n commit(STORE_MUTATIONS.LOAD_USER_ADDRESS, mainAddress);\r\n }\r\n } else {\r\n ToastrHelper.Error(\"error while getting user address\");\r\n console.error(\"statuscode: \" + response.status);\r\n }\r\n },\r\n async [STORE_ACTIONS.EDIT_GARDEN]({ commit }, garden: IGarden) {\r\n let response = await axios.post(`/api/de/garden/edit`, garden);\r\n if (response.status == 200) {\r\n const editGarden = response.data as IGarden;\r\n if (editGarden) {\r\n let response = await axios.get(`/api/de/garden/gardens`);\r\n commit(STORE_MUTATIONS.SET_GARDEN, response.data);\r\n }\r\n } else {\r\n ToastrHelper.Error(\"error while editing garden\");\r\n console.error(\"statuscode: \" + response.status);\r\n }\r\n },\r\n async [STORE_ACTIONS.DUPLICATE_GARDEN]({ commit }, garden: IGarden) {\r\n let response = await axios.post(\r\n `/api/de/garden/duplicateGarden/${garden.Id}`,\r\n garden\r\n );\r\n if (response.status == 200) {\r\n const editGarden = response.data as IGarden;\r\n if (editGarden) {\r\n let response = await axios.get(`/api/de/garden/gardens`);\r\n commit(STORE_MUTATIONS.SET_GARDEN, response.data);\r\n }\r\n } else {\r\n ToastrHelper.Error(\"error while duplicating garden\");\r\n console.error(\"statuscode: \" + response.status);\r\n }\r\n },\r\n async [STORE_ACTIONS.DELETE_PLANT]({ commit }, plant: IPlant) {\r\n let response = await axios.delete(\r\n `/api/de/garden/removePlant/${plant.CompositionId}`\r\n );\r\n if (response.status == 200) {\r\n // ensure that gardenId is set. Will not be delibered by API\r\n commit(STORE_MUTATIONS.DELETE_PLANT, plant);\r\n\r\n // get bad neighbours\r\n let response = await axios.get(`/api/de/garden/badneighbours/${plant.GardenId}`);\r\n commit(STORE_MUTATIONS.SET_GARDEN_BAD_NEIGHBOURS, {GardenId: plant.GardenId, BadNeighbours: response.data});\r\n } else {\r\n ToastrHelper.Error(\"error while deleting plant\");\r\n console.error(\"statuscode: \" + response.status);\r\n }\r\n },\r\n async [STORE_ACTIONS.MOVE_PLANT](\r\n { commit },\r\n movePlantParam: IMovePlantParam\r\n ) {\r\n let response = await axios.post(\r\n `/api/de/garden/movePlant/${movePlantParam.CompositionId}/${movePlantParam.DestinationGarden}`\r\n );\r\n if (response.status == 200) {\r\n let response = await axios.get(`/api/de/garden/gardens`);\r\n commit(STORE_MUTATIONS.SET_GARDEN, response.data);\r\n } else {\r\n ToastrHelper.Error(\"error while moving plant\");\r\n console.error(\"statuscode: \" + response.status);\r\n }\r\n },\r\n async [STORE_ACTIONS.DUPLICATE_PLANT](\r\n { commit },\r\n movePlantParam: IMovePlantParam\r\n ) {\r\n let response = await axios.post(\r\n `/api/de/garden/duplicatePlant/${movePlantParam.CompositionId}/${movePlantParam.DestinationGarden}`\r\n );\r\n if (response.status == 200) {\r\n let response = await axios.get(`/api/de/garden/gardens`);\r\n commit(STORE_MUTATIONS.SET_GARDEN, response.data);\r\n } else {\r\n ToastrHelper.Error(\"error while duplicate plant\");\r\n console.error(\"statuscode: \" + response.status);\r\n }\r\n },\r\n async [STORE_ACTIONS.CREATE_NEW_GARDEN_FROM_ENTRYPAGE](\r\n { commit },\r\n createNewGarden: boolean\r\n ) {\r\n commit(STORE_MUTATIONS.CREATE_NEW_GARDEN_FROM_ENTRYPAGE, createNewGarden);\r\n },\r\n async [STORE_ACTIONS.LOAD_USER_COMPETITION]({ commit }, userCompetitionType: UserCompetitionType) {\r\n let response = await axios.get(`/api/de/userCompetition/hasAnswered/${userCompetitionType}`);\r\n if (response.status == 200) {\r\n const answered = response.data ? UserCompetitionAnswer.Answered: UserCompetitionAnswer.NotAnswered;\r\n commit(STORE_MUTATIONS.SET_HAS_ANSWERED_USER_COMPETITION, { userCompetitionType, answered });\r\n } else {\r\n console.error(\"statuscode: \" + response.status);\r\n }\r\n },\r\n async [STORE_ACTIONS.ANSWER_USER_COMPETITION]({ commit }, { userCompetitionType, accept}: { userCompetitionType: UserCompetitionType, accept: boolean }) {\r\n let response = await axios.post(`/api/de/userCompetition/${ accept? 'accept': 'deny' }/${userCompetitionType}`);\r\n if (response.status == 200) {\r\n commit(STORE_MUTATIONS.SET_HAS_ANSWERED_USER_COMPETITION, { userCompetitionType, answered: UserCompetitionAnswer.Answered });\r\n } else {\r\n console.error(\"statuscode: \" + response.status);\r\n }\r\n },\r\n async [STORE_ACTIONS.LOAD_PLANT_CONFLICTS](\r\n { commit },\r\n plantCompositionId: number,\r\n ) {\r\n // prevents conflicts from previous plants from being displayed when the modal has already been opened.\r\n commit(STORE_MUTATIONS.SET_PLANT_CONFLICTS, new Map());\r\n\r\n let conflicts = new Map();\r\n await Promise.all(\r\n this.state.gardens.map(async garden => {\r\n let incompatiblePlants: IPlant[] = [];\r\n let response: AxiosResponse = await axios.get(\r\n `/api/de/garden/mixed-culture-conflict/${plantCompositionId}/${garden.Id}`\r\n );\r\n if (response.status == 200) {\r\n incompatiblePlants = garden.Plants.filter(p => {\r\n return p.ProductPlantId != null\r\n ? response.data.some(mcp => mcp.PlantId == p.ProductPlantId)\r\n : response.data.some(mcp => mcp.CustomPlantId == p.CustomPlantId)\r\n });\r\n } else {\r\n ToastrHelper.Error(\"failed to load conflicting plants\");\r\n console.error(\"statuscode: \" + response.status);\r\n }\r\n conflicts.set(garden.Id, incompatiblePlants);\r\n })\r\n )\r\n commit(STORE_MUTATIONS.SET_PLANT_CONFLICTS, conflicts);\r\n },\r\n};\r\n","import { MutationTree } from 'vuex';\r\nimport { IGardernCalendarState } from '.';\r\nimport { STORE_MUTATIONS } from './storeMutations';\r\nimport { IAddress, IGarden, IFilterAttribute, IWeekForecastLight, IPlant, ActivityType, CalendarView, ICalendarEntry, IActivity, IMovePlantParam, CalendarEntry, UserCompetitionAnswer, UserCompetitionType, IProductGroup, GardenNotification } from '../entities/entities';\r\nimport CalendarHelper from '../helpers/calendarHelper';\r\nimport Vue from 'vue';\r\nimport ToastrHelper from '@/helpers/toastrHelper';\r\n\r\nfunction mapActivityAndGarden(a: IActivity, gardenId: number, compositionId: number): IActivity {\r\n a.GardenId = gardenId;\r\n a.CompositionId = compositionId;\r\n return a;\r\n}\r\nfunction mapPlantAndGarden(p: IPlant, gardenId: number): IPlant {\r\n p.GardenId = gardenId;\r\n return p;\r\n}\r\n\r\n\r\nexport const mutations: MutationTree = {\r\n [STORE_MUTATIONS.SET_GARDEN](state: IGardernCalendarState, payload: IGarden[]) {\r\n state.gardens = payload;\r\n const plants = payload.map(g => (g.Plants.map(p => (mapPlantAndGarden(p, g.Id)))));\r\n const plantsFlat = Array.prototype.concat.apply([], plants) as IPlant[];\r\n const activities = plantsFlat.map(p => (p.Activities.map((a: IActivity) => mapActivityAndGarden(a, p.GardenId, p.CompositionId))));\r\n state.activities = Array.prototype.concat.apply([], activities) as IActivity[];\r\n },\r\n [STORE_MUTATIONS.GENERATE_CALENDAR](state: IGardernCalendarState, ml: any) {\r\n if (!ml) {\r\n ml = Vue.prototype.$ml;\r\n }\r\n const calendarHelper = new CalendarHelper(state.calendar as ICalendarEntry[], ml);\r\n const currentCalendarMonth = state.calendar.length > 0 ? state.calendar[0].Month : new Date().getMonth() + 1;\r\n const currentCalendarYear = state.calendar.length > 0 ? state.calendar[0].Year : new Date().getFullYear();\r\n const calendarEntries = calendarHelper.generateCalendarEntries(state.monthToShow, currentCalendarYear, currentCalendarMonth);\r\n state.calendar = calendarEntries;\r\n },\r\n [STORE_MUTATIONS.MOVE_CALENDAR_NEXT](state: IGardernCalendarState, ml: any) {\r\n const calendarHelper = new CalendarHelper(state.calendar as ICalendarEntry[], ml);\r\n const calendarEntries = calendarHelper.moveCalendar(state.monthToShow, true);\r\n state.calendar = calendarEntries;\r\n },\r\n [STORE_MUTATIONS.MOVE_CALENDAR_PREV](state: IGardernCalendarState, ml: any) {\r\n const calendarHelper = new CalendarHelper(state.calendar as ICalendarEntry[], ml);\r\n const calendarEntries = calendarHelper.moveCalendar(state.monthToShow, false);\r\n state.calendar = calendarEntries;\r\n },\r\n [STORE_MUTATIONS.MOVE_CALENDAR_TO](state: IGardernCalendarState, param: { ml: any, calendarEntry: ICalendarEntry }) {\r\n const calendarHelper: CalendarHelper = new CalendarHelper(state.calendar as ICalendarEntry[], param.ml);\r\n const calendarEntries: CalendarEntry[] = calendarHelper.moveCalendarTo(state.monthToShow, param.calendarEntry);\r\n state.calendar = calendarEntries;\r\n },\r\n [STORE_MUTATIONS.SET_MONTH_TO_SHOW](state: IGardernCalendarState, monthToShow: number) {\r\n state.monthToShow = monthToShow;\r\n },\r\n [STORE_MUTATIONS.SWITCH_CALENDAR_VIEW](state: IGardernCalendarState, calendarview: CalendarView) {\r\n state.currentView = calendarview;\r\n },\r\n [STORE_MUTATIONS.SET_SELECTED_ACTIVITY_TYPE](state: IGardernCalendarState, activityTypes: ActivityType[]) {\r\n state.selectedActivityTypes = activityTypes;\r\n },\r\n [STORE_MUTATIONS.SEARCH_PLANT_BY_TEXT](state: IGardernCalendarState, searchText: string) {\r\n state.searchPlantText = searchText;\r\n },\r\n [STORE_MUTATIONS.ADD_PLANT](state: IGardernCalendarState, plant: IPlant) {\r\n // add plant\r\n const gardens = state.gardens.filter(g => g.Id == plant.GardenId);\r\n if (gardens.length > 0) {\r\n // check if the plant already exist\r\n let alreadyExistingPlant = gardens[0].Plants.filter(p => p.CompositionId === plant.CompositionId);\r\n\r\n if (alreadyExistingPlant && alreadyExistingPlant.length) {\r\n let indexPlant = gardens[0].Plants.indexOf(alreadyExistingPlant[0]);\r\n // replace the plant in the garden\r\n gardens[0].Plants.splice(indexPlant, 1, plant);\r\n\r\n // also remove the activity of the old plant changed\r\n alreadyExistingPlant[0].Activities.forEach(activity => {\r\n state.activities = state.activities.filter(a => a === activity);\r\n });\r\n\r\n } else if (gardens && gardens.length) {\r\n\r\n gardens[0].Plants.push(plant);\r\n } else {\r\n ToastrHelper.Error('no garden');\r\n }\r\n\r\n // activities\r\n plant.Activities.forEach(activity => {\r\n // activites over the API don't have composition set\r\n activity.CompositionId = plant.CompositionId;\r\n activity.GardenId = plant.GardenId;\r\n state.activities.push(activity);\r\n });\r\n }\r\n },\r\n [STORE_MUTATIONS.SET_GARDEN_BAD_NEIGHBOURS](state: IGardernCalendarState, data: any) {\r\n const garden = state.gardens.filter(g => g.Id == data.GardenId);\r\n garden[0].BadNeighborsPlants = data.BadNeighbours;\r\n },\r\n [STORE_MUTATIONS.DELETE_GARDEN](state: IGardernCalendarState, gardenId: number) {\r\n state.gardens = state.gardens.filter(g => g.Id !== gardenId);\r\n },\r\n [STORE_MUTATIONS.SET_GARDEN_GEOID](state: IGardernCalendarState, geoId: string) {\r\n state.gardenGeoId = geoId;\r\n },\r\n [STORE_MUTATIONS.SET_GARDEN_WEEK_WEATHER](state: IGardernCalendarState, weekForecast: IWeekForecastLight) {\r\n state.weekForecast = weekForecast.tagesprognosen;\r\n },\r\n [STORE_MUTATIONS.SET_ATTRIBUTES](state: IGardernCalendarState, filterAttribute: IFilterAttribute) {\r\n state.filterAttribute = filterAttribute;\r\n },\r\n [STORE_MUTATIONS.SET_PRODUCT_GROUPS](state: IGardernCalendarState, productGroups: IProductGroup[]) {\r\n state.productGroups = productGroups;\r\n },\r\n [STORE_MUTATIONS.LOAD_USER_ADDRESS](state: IGardernCalendarState, mainAddress: IAddress) {\r\n state.mainAddress = mainAddress;\r\n },\r\n [STORE_MUTATIONS.DELETE_PLANT](state: IGardernCalendarState, plant: IPlant) {\r\n // remove plant activities\r\n state.activities = state.activities.filter(a=> a.CompositionId != plant.CompositionId);\r\n\r\n // remove plant\r\n state.gardens.forEach(g => g.Plants = g.Plants.filter(p => p.CompositionId !== plant.CompositionId));\r\n },\r\n [STORE_MUTATIONS.CREATE_NEW_GARDEN_FROM_ENTRYPAGE](state: IGardernCalendarState, createNewGarden: boolean) {\r\n state.createNewGardenFromEntryPage = createNewGarden;\r\n },\r\n [STORE_MUTATIONS.SET_USER_IS_LOGGED_IN](state: IGardernCalendarState, isUserLoggedIn: boolean) {\r\n state.userIsLoggedIn = isUserLoggedIn;\r\n },\r\n [STORE_MUTATIONS.SHOW_ACTIVITY_MODAL](state: IGardernCalendarState, activity: IActivity) {\r\n state.activityForModal = activity;\r\n },\r\n [STORE_MUTATIONS.SET_PLACEHOLDER_IMAGE_URL](state: IGardernCalendarState, url: string) {\r\n state.placeholderImg = url;\r\n },\r\n [STORE_MUTATIONS.SET_HAS_ANSWERED_USER_COMPETITION](state: IGardernCalendarState, { userCompetitionType, answered }: { userCompetitionType: UserCompetitionType, answered: UserCompetitionAnswer}) {\r\n state.hasAnsweredToUserCompetition = {\r\n ...state.hasAnsweredToUserCompetition, \r\n [userCompetitionType.toString()]: answered\r\n };\r\n },\r\n [STORE_MUTATIONS.SET_PLANT_CONFLICTS](state: IGardernCalendarState, conflicts: Map) {\r\n state.plantConflictsByGarden = conflicts;\r\n },\r\n [STORE_MUTATIONS.SET_DESTINATION_ID](state: IGardernCalendarState, id: number) {\r\n state.plantMoveDestinationId = id;\r\n },\r\n}","import { IGarden, ICalendarEntry, IActivity, Activity, CalendarView, ActivityType, IDayForecastLight, IFilterAttribute, FilterAttribute, IAddress, Address, IPlant, Garden, UserCompetitionAnswer, UserCompetitionType, IProductGroup } from './../entities/entities';\r\nimport Vue from 'vue';\r\nimport Vuex from 'vuex';\r\nimport { actions } from './actions';\r\nimport { mutations } from './mutations';\r\nVue.use(Vuex);\r\n\r\nexport interface IGardernCalendarState {\r\n calendar: ICalendarEntry[];\r\n calendarLoaded: boolean;\r\n activities: IActivity[];\r\n selectedActivityTypes: ActivityType[];\r\n searchPlantText: string;\r\n activitiesLoaded: boolean;\r\n gardens: IGarden[];\r\n mainAddress: IAddress;\r\n gardensLoaded: boolean;\r\n currentView: CalendarView;\r\n monthToShow: number;\r\n gardenGeoId: string;\r\n weekForecast: IDayForecastLight[];\r\n filterAttribute: IFilterAttribute;\r\n createNewGardenFromEntryPage: boolean;\r\n userIsLoggedIn: boolean;\r\n activityForModal: IActivity;\r\n placeholderImg: string;\r\n hasAnsweredToUserCompetition: { [type: string]: UserCompetitionAnswer };\r\n plantConflictsByGarden: Map;\r\n plantMoveDestinationId:number;\r\n productGroups: IProductGroup[];\r\n}\r\n\r\nexport default new Vuex.Store({\r\n state: {\r\n calendar: [],\r\n calendarLoaded: false,\r\n activities: [],\r\n selectedActivityTypes: [1, 2, 3, 4, 5, 6, 7, 8, 9],\r\n searchPlantText: \"\",\r\n activitiesLoaded: false,\r\n gardens: [],\r\n gardensLoaded: false,\r\n currentView: CalendarView.Month,\r\n monthToShow: 3,\r\n gardenGeoId: \"\",\r\n weekForecast: [],\r\n mainAddress: new Address(),\r\n filterAttribute: new FilterAttribute(),\r\n createNewGardenFromEntryPage: false,\r\n userIsLoggedIn: false,\r\n activityForModal: new Activity(),\r\n placeholderImg: \"\",\r\n hasAnsweredToUserCompetition: {},\r\n plantConflictsByGarden: new Map(),\r\n plantMoveDestinationId: -1,\r\n productGroups: []\r\n } as IGardernCalendarState,\r\n mutations: mutations,\r\n getters: {\r\n gardens(state: IGardernCalendarState): IGarden[] | undefined {\r\n return state.gardens;\r\n },\r\n calendar(state: IGardernCalendarState): ICalendarEntry[] | undefined {\r\n return state.calendar;\r\n },\r\n activities(state: IGardernCalendarState): IActivity[] | undefined {\r\n return state.activities;\r\n },\r\n monthToShow(state: IGardernCalendarState): Number {\r\n return state.monthToShow;\r\n },\r\n currentView(state: IGardernCalendarState): CalendarView {\r\n return state.currentView;\r\n },\r\n selectedActivityTypes(state: IGardernCalendarState): ActivityType[] {\r\n return state.selectedActivityTypes;\r\n },\r\n searchPlantText(state: IGardernCalendarState): string {\r\n return state.searchPlantText;\r\n },\r\n gardenCityName(state: IGardernCalendarState): string {\r\n if (state.gardens.length && state.gardens[0]) {\r\n return state.gardens[0].City;\r\n }\r\n return '';\r\n },\r\n mainAddress(state: IGardernCalendarState) {\r\n return state.mainAddress;\r\n },\r\n todayWeather(state: IGardernCalendarState): IDayForecastLight | undefined {\r\n if (state.weekForecast.length) {\r\n return state.weekForecast[0];\r\n }\r\n return undefined;\r\n },\r\n weatherWeek(state: IGardernCalendarState): IDayForecastLight[] {\r\n return state.weekForecast;\r\n },\r\n filterAttribute(state: IGardernCalendarState): IFilterAttribute {\r\n return state.filterAttribute;\r\n },\r\n allCustomPlants(state: IGardernCalendarState): IPlant[] {\r\n const plants = state.gardens.flatMap(g => g.Plants);\r\n return plants.filter(p=> p.CustomPlantId && !p.ProductPlantId)\r\n },\r\n allLandiPlants(state: IGardernCalendarState): IPlant[] {\r\n const plants = state.gardens.flatMap(g => g.Plants);\r\n return plants.filter(p=> !p.CustomPlantId && p.ProductPlantId)\r\n },\r\n createNewGardenFromEntryPage(state: IGardernCalendarState):boolean{\r\n return state.createNewGardenFromEntryPage;\r\n },\r\n userIsLoggedIn(state: IGardernCalendarState):boolean{\r\n return state.userIsLoggedIn;\r\n },\r\n activityForModal(state: IGardernCalendarState): IActivity {\r\n return state.activityForModal;\r\n },\r\n placeholderImg(state: IGardernCalendarState): string {\r\n return state.placeholderImg;\r\n },\r\n hasAnsweredGardenContest(state: IGardernCalendarState): UserCompetitionAnswer {\r\n const answer = state.hasAnsweredToUserCompetition[UserCompetitionType.GardenContest];\r\n\r\n return !!answer ? answer : UserCompetitionAnswer.Unknown;\r\n },\r\n plantConflictsByGarden(state: IGardernCalendarState): Map {\r\n return state.plantConflictsByGarden;\r\n },\r\n currentConflicts(state: IGardernCalendarState): IPlant[] {\r\n let current = state.plantConflictsByGarden.get(state.plantMoveDestinationId);\r\n return current == null\r\n ? []\r\n : current;\r\n },\r\n productGroups(state: IGardernCalendarState): IProductGroup[] {\r\n return state.productGroups;\r\n },\r\n plantMoveDestinationId(state: IGardernCalendarState): number {\r\n return state.plantMoveDestinationId;\r\n }, \r\n },\r\n actions: actions,\r\n});","import Vue from \"vue\";\r\nimport { MLInstaller, MLCreate, MLanguage } from \"vue-multilanguage\";\r\n\r\nVue.use(MLInstaller);\r\n\r\nexport default new MLCreate({\r\n initial: \"german\",\r\n save: false,\r\n languages: [\r\n new MLanguage(\"de\").create({\r\n title: \"Hello {0}!\",\r\n monthName1: \"Jan\",\r\n monthName2: \"Feb\",\r\n monthName3: \"März\",\r\n monthName4: \"Apr\",\r\n monthName5: \"Mai\",\r\n monthName6: \"Jun\",\r\n monthName7: \"Jul\",\r\n monthName8: \"Aug\",\r\n monthName9: \"Sep\",\r\n monthName10: \"Okt\",\r\n monthName11: \"Nov\",\r\n monthName12: \"Dez\",\r\n monthNameLong1: \"Januar\",\r\n monthNameLong2: \"Februar\",\r\n monthNameLong3: \"März\",\r\n monthNameLong4: \"April\",\r\n monthNameLong5: \"Mai\",\r\n monthNameLong6: \"Juni\",\r\n monthNameLong7: \"Juli\",\r\n monthNameLong8: \"August\",\r\n monthNameLong9: \"September\",\r\n monthNameLong10: \"Oktober\",\r\n monthNameLong11: \"November\",\r\n monthNameLong12: \"Dezember\",\r\n activityType1: \"Anzucht\",\r\n activityType2: \"Aussaat / Setzen\",\r\n activityType3: \"Pikieren\",\r\n activityType4: \"Blütezeit\",\r\n activityType5: \"Düngen\",\r\n activityType6: \"Ernten\",\r\n activityType7: \"Rückschnitt\",\r\n activityType8: \"Einwinterung / Winterschutz\",\r\n activityType9: \"Ab ins Freie / Auswinterung\",\r\n calendarFiltersYearLetter: \"J\",\r\n occuranceEveryAmountWeek: \"alle {0} Wochen\",\r\n modalAddPlantsTitle: 'Pflanze hinzufügen zu \"{0}\"',\r\n modalAddPlantsSelectFromLandi: \"Aus LANDI Sortiment auswählen\",\r\n modalAddPlantsSelectCustom: \"Eigene Pflanzen / Aus Community auswählen\",\r\n customPlantFormName: \"Name (Pflicht)\",\r\n landiPlantName: \"Name\",\r\n landiPlantComment: \"Kommentar\",\r\n customPlantFormDescription: \"Beschreibung\",\r\n customPlantFormSeedingDate: \"Aussaat- / Pflanzdatum\",\r\n customPlantFormCaretips: \"Pflegehinweise\",\r\n customPlantFormPlantProtection: \"Pflanzenschutz\",\r\n customPlantFormAddActivities: \"Aufgaben hinzufügen\",\r\n customPlantFormAddDetailInformation: \"Detailkriterien hinzufügen\",\r\n customPlantFormAddToLandiCommunity: \"Zu LANDI Community hinzufügen\",\r\n customPlantFormSubmitImage: \"Ich habe die Urheberrechte an diesem Bild und übertrage hiermit der LANDI die Nutzungsrechte\",\r\n customPlantFormAddToCalendar: \"Zu Kalender hinzufügen\",\r\n customPlantFormSavePlant: \"Speichern\",\r\n customPlantFormStartCalendarWeek: \"Start Kalenderwoche\",\r\n customPlantFormEndCalendarWeek: \"End Kalenderwoche\",\r\n customPlantFormWeeksFromSeedingDate: \"Wochen ab Pflanzdatum (optional)\",\r\n customPlantFormErrorActivity:\r\n \"Start KW und End KW müssen ausgefüllt sein, wenn die Aktivität nicht benötigt wird auf \\\"Nie\\\" setzen.\",\r\n customPlantFormErrorDate: \"Das Datum ist nicht korrekt\",\r\n customPlantFormErrorInvalidForm:\r\n \"Das Formular ist nicht vollständig ausgefüllt.\",\r\n customPlantFormFertilizingNever: \"Nie\",\r\n customPlantFormFertilizingWeekly: \"Wöchentlich\",\r\n customPlantFormFertilizingEvery2Weeks: \"Jede 2. Woche\",\r\n customPlantFormFertilizingEvery3Weeks: \"Jede 3. Woche\",\r\n customPlantFormFertilizingMonthly: \"Monatlich\",\r\n addPlantToCalendarSuccessMessage:\r\n \"Pflanze wurde erfolgreich zum Kalender hinzugefügt\",\r\n successSaveMessage: \"Speichern erfolgreich\",\r\n addNewGarden: \"Neuen Garten anlegen\",\r\n entryPageTitle1: \"Ihr persönlicher Gartenkalender\",\r\n entryPageTitle2: \"Garten anlegen,\",\r\n entryPageTitle3: \"Pflanzen hinzufügen,\",\r\n entryPageTitle4: \"Pflegehinweise erhalten\",\r\n entryPageBtnLoggin: \"Anmelden\",\r\n entryPageBtnCreateGarden: \"Garten anlegen\",\r\n modalSubscribeTitle: \"Benachrichtigungen\",\r\n modalSubscribeSave: \"Speichern\",\r\n saveDisclaimer:\r\n \"Erstellen Sie jetzt ein LANDI Konto um Ihren Gartenkalender zu speichern.\",\r\n modalSubscribeSubscriptionType: \"Art der Benachrichtigungen\",\r\n modalSubscribeGardenOverview:\r\n \"Monatliche Zusammenfassung zusenden (E-Mail)\",\r\n modalSubscribeWeatherWarnings: \"Aktuelle Wetterwarnungen zusenden\",\r\n modalSubscribeCommunicationChannel: \"Kommunikationskanal\",\r\n modalSubscribeNotValidPhonenumber:\r\n \"Bitte geben Sie eine Mobilnummer an (0041 79 123 4567).\",\r\n modalSubscribeSMS: \"SMS\",\r\n modalSubscribeWhatsapp: \"WhatsApp\",\r\n modalSubscribeEMail: \"E-Mail\",\r\n modalPhoneNumber: \"Mobilfunk Nummer\",\r\n modalSubscribeError: \"Error\",\r\n plantMenuOrder: \"Bestellen\",\r\n plantMenuDetail: \"Detail\",\r\n plantMenuEdit: \"Bearbeiten\",\r\n plantMenuDuplicate: \"Duplizieren\",\r\n plantMenuMove: \"Verschieben\",\r\n plantMenuDelete: \"Entfernen\",\r\n gardenMenuOrder: \"Bearbeiten\",\r\n gardenMenuDuplicate: \"Duplizieren\",\r\n gardenMenuDelete: \"Entfernen\",\r\n landiPlantEditSave: \"Speichern\",\r\n gardenModalCreateButton: \"Garten anlegen\",\r\n gardenModalDuplicateButton: \"Garten duplizieren\",\r\n gardenModalEditButton: \"Garten bearbeiten\",\r\n plzTooltipLogged:\r\n \"Gehen Sie auf Mein LANDI Konto > Adresse, um die PLZ bzw. den Ort für den Gartenkalender von Ihrem LANDI Konto zu übernehmen.\",\r\n plzTooltipNotLogged:\r\n \"Melden Sie sich an oder registrieren Sie sich, um die PLZ bzw. den Ort für den Gartenkalender von Ihrem LANDI Konto zu übernehmen.\",\r\n gardenModalCreateTitle: \"Garten anlegen\",\r\n gardenModalDuplicateTitle: \"Garten duplizieren\",\r\n gardenModalEditTitle: \"Garten bearbeiten\",\r\n gardenModalNameLabel: \"Name des Gartens\",\r\n gardenModalPlaceLabel:\r\n \"PLZ / Ort für Wetterwarnungen (Gilt für alle Ihre Gärten)\",\r\n gardenModalDescriptionLabel: \"Beschreibung (optional)\",\r\n movePlantModalMoveTitle: \"Pflanze verschieben\",\r\n movePlantModalDuplicateTitle: \"Pflanze duplizieren\",\r\n movePlantModalMoveButton: \"Verschieben\",\r\n movePlantModalDuplicateButton: \"Duplizieren und Verschieben\",\r\n movePlantModalMoveLabel: \"Verschieben nach:\",\r\n movePlantModalDuplicateLabel: \"Duplizierte Pflanze verschieben nach:\",\r\n movePlantModalBadNeighbors: \"Achtung! Diese Pflanze verträgt sich nicht optimal mit den im Garten bereits vorhandenen Pflanzen.\",\r\n filtersAccordion: \"Filter und Ansichten einblenden\",\r\n modalSavGardenTitle: \"Anmelden und Speichern\",\r\n modalSaveGardenInfoText:\r\n \"Sie sind aktuell nicht eingeloggt bzw. haben keinen Account. Um den Garten speichern zu können müssen Sie ein LANDI Konto besitzen. Sobald Sie sich eingeloggt haben, wird Ihr Garten zu Ihrem Konto gespeichert.\",\r\n actionTitleOpenCloseGarden: \"Garten öffnen / schliessen\",\r\n actionTitleAddPlant: \"Pflanze hinzufügen\",\r\n actionTitleAddGarden: \"Garten hinzufügen\",\r\n actionTitleNavigateBack: \"Einen Monat zurück navigieren\",\r\n actionTitleNavigateForward: \"Einen Monat vor navigieren\",\r\n weatherWeekview: \"Wochenansicht\",\r\n weatherAnonymusMessage:\r\n \"Anmelden oder registrieren um hier das Wetter Ihres Standortes anzuzeigen\",\r\n weatherClose: \"Schliessen\",\r\n createGardenErrorInvalidName: \"Bitte einen Namen eingeben\",\r\n dropDownNoSelection: \"[keine Auswahl]\",\r\n labelYourSearch: \"Ihre Suche\",\r\n gardenFilterActivities: \"Filtern nach Aufgaben\",\r\n gardenPrint: \"Drucken\",\r\n calendarAddPlantCreateCustomPlant: \"Eigene Pflanze erstellen\",\r\n calendarAddPlantAddCommunityCustomPlant:\r\n \"Eigene- oder Communitypflanze hinzufügen\",\r\n calendarFilterNoSelectionText: \"Bitte Auswählen\",\r\n calendarWeekShort: \"KW\",\r\n calendarFilterAllActivitu: \"Alles anzeigen\",\r\n modalGardenContestTitle: \"Am Gartenwettbewerb teilnehmen\",\r\n modalGardenContestText: \"Legen Sie jetzt einen Garten an und gewinnen Sie einen von 10 LANDI-Gutscheinen im Wert von je CHF 1’000! Damit können Sie Ihren Garten mit farbenfrohen Pflanzen ergänzen, gesundes Gemüse oder Kräuter setzen oder sich mit professionellem Gartenwerkzeug ausrüsten. \\nUnter allen Personen, die einen Garten im Gartenkalender anlegen, werden 10 Gewinner oder Gewinnerinnen ausgelost.\",\r\n modalGardenContestDeny: \"Nein, ich nehme nicht teil.\",\r\n modalGardenContestAccept: \"Ja, ich nehme teil.\",\r\n modalTutorialConsentTitle: \"Willkommen beim LANDI Gartenkalender\",\r\n modalTutorialConsentText: \"Lernen Sie die wichtigsten Funktionen kennen und lassen Sie Ihren Garten erblühen. Wollen Sie die Tour starten?\",\r\n modalTutorialConsentDeny: \"Nein\",\r\n modalTutorialConsentAccept: \"Ja\",\r\n modalTutorialEndTitle: \"Ende der Tour\",\r\n modalTutorialEndText: \"Ende der Tour. Wir wünschen Ihnen eine schöne Gartensaison und freuen uns, wenn der LANDI Gartenkalender Ihren Garten zum Blühen bringt.\",\r\n modalTutorialEndOk: \"Ok\",\r\n tutorialNext: \"Weiter\",\r\n tutorialAddGarden: \"Hier können Sie Ihren eigenen Garten anlegen. Sie können verschiedene Gärten, z.B. einen Gemüse- und einen Kräutergarten anlegen. Geben Sie dem Garten einen Namen. Die PLZ / Ort für die Wetterwarnungen entspricht dem Ort, den Sie im Kundenkonto hinterlegt haben.\",\r\n tutorialAddPlantFromLandiCatalog: \"Wählen Sie Ihre Pflanzen aus dem umfassenden LANDI Sortiment aus. \",\r\n tutorialAddPlantFilters: \"Die Filter helfen Ihnen, eine gezielte Auswahl zu treffen.\",\r\n tutorialAddPlantClose: \"Durch das Schliessen des Fensters kommen Sie auf die Kalenderübersicht.\",\r\n tutorialCalendarFilterOnActivity: \"Sie können die Ansicht nach Aufgaben filtern.\",\r\n tutorialCalendarPeriodView: \"Hier können Sie zwischen Monats- und Jahresansicht wechseln.\",\r\n tutorialCalendarMeteo: \"Die angezeigten Wetterdaten sind auf Ihre Kundenangaben abgestimmt.\",\r\n tutorialCalendarMeteoAlerts: \"Sie können Wetterwarnungen und weitere Benachrichtigungen erhalten, damit Sie Ihre Gartenarbeiten optimal planen können\",\r\n tutorialAddPlant: \"Sie können jederzeit neue Pflanzen hinzufügen\",\r\n tutorialAddCustomPlant: \"Falls Sie im LANDI Sortiment nicht fündig werden, können Sie auch eine eigene Pflanze erfassen. Sie können ein Bild hochladen, die Pflanze beschreiben und Aufgaben sowie Detailkriterien hinzufügen.\",\r\n tutorialAddCustomPlantShare: \"Sie können die Pflanze auch mit der Community teilen.\",\r\n tutorialAddCustomPlantAddToCalendar: \"Fügen Sie die erfasste Pflanze Ihrem Kalender hinzu.\",\r\n tutorialAddCustomPlantClose: \"Durch Schliessen des Fensters kommen Sie zurück auf die Kalenderübersicht.\",\r\n tutorialEditPlant: \"Sie können Pflanzen, die Sie in Ihrem Kalender erfasst haben, auch bearbeiten.\",\r\n tutorialEditCustomActivities: \"Bei den LANDI Pflanzen und bei den eigenen Pflanzen können Sie die Aufgaben anpassen.\",\r\n tutorialEditDetailInformations: \"Die Detailkriterien können Sie nur bei den eigenen Pflanzen verändern.\",\r\n titleBadNeighborsModal: \"Schlechte Nachbarn\",\r\n textBadNeighborsModalBody: \"Sie haben in Ihrem Garten Pflanzen, welche sich nicht optimal vertragen. Für ein gutes Gedeihen, pflanzen Sie diese, wenn möglich, um.\",\r\n closeModal: \"Schliessen\",\r\n plantGroupDropdownTitle: \"Pflanzengruppe\"\r\n }),\r\n\r\n\r\n new MLanguage(\"fr\").create({\r\n title: \"Oi {0}!\",\r\n msg: \"Você tem {f} amigos e {l} curtidas\",\r\n monthName1: \"Jan\",\r\n monthName2: \"Fév\",\r\n monthName3: \"Mar\",\r\n monthName4: \"Avr\",\r\n monthName5: \"Mai\",\r\n monthName6: \"Jun\",\r\n monthName7: \"Jul\",\r\n monthName8: \"Aoû\",\r\n monthName9: \"Sep\",\r\n monthName10: \"Oct\",\r\n monthName11: \"Nov\",\r\n monthName12: \"Déc\",\r\n monthNameLong1: \"Janvier\",\r\n monthNameLong2: \"Février\",\r\n monthNameLong3: \"March\",\r\n monthNameLong4: \"Avril\",\r\n monthNameLong5: \"Mai\",\r\n monthNameLong6: \"June\",\r\n monthNameLong7: \"juillet\",\r\n monthNameLong8: \"Août\",\r\n monthNameLong9: \"Septembre\",\r\n monthNameLong10: \"Octobre\",\r\n monthNameLong11: \"Novembre\",\r\n monthNameLong12: \"Décembre\",\r\n activityType1: \"Culture\",\r\n activityType2: \"Semis\",\r\n activityType3: \"Repiquage\",\r\n activityType4: \"Floraison\",\r\n activityType5: \"Fertilisation\",\r\n activityType6: \"Récolte\",\r\n activityType7: \"Taille\",\r\n activityType8: \"Hivernage / Protection hivernale\",\r\n activityType9: \"Sortie à l’air libre / Sortie d’hivernage\",\r\n calendarFiltersYearLetter: \"A\",\r\n occuranceEveryAmountWeek: \"toutes les {0} semaines\",\r\n modalAddPlantsTitle: 'Ajouter plante à \"{0}\"',\r\n modalAddPlantsSelectFromLandi: \"Choisir dans l’assortiment LANDI\",\r\n modalAddPlantsSelectCustom:\r\n \"Choisir mes plantes / plantes de la communauté\",\r\n customPlantFormName: \"Nom (obligatoire)\",\r\n landiPlantName: \"Nom\",\r\n landiPlantComment: \"Commentaire\",\r\n customPlantFormDescription: \"Description\",\r\n customPlantFormSeedingDate: \"Date de semis / plantation\",\r\n customPlantFormCaretips: \"Conseils d’entretien\",\r\n customPlantFormPlantProtection: \"Protection des plantes\",\r\n customPlantFormAddActivities: \"Ajouter des activités\",\r\n customPlantFormAddDetailInformation: \"Ajouter des critères détaillés\",\r\n customPlantFormAddToLandiCommunity: \"Ajouter à la communauté LANDI\",\r\n customPlantFormSubmitImage: \"Je possède le droit d'auteur sur cette photo dont je cède par la présente les droits d'utilisation à LANDI.\",\r\n customPlantFormAddToCalendar: \"Ajouter au calendrier\",\r\n customPlantFormSavePlant: \"sauver\",\r\n customPlantFormStartCalendarWeek: \"Semaine début\",\r\n customPlantFormEndCalendarWeek: \"Semaine fin\",\r\n customPlantFormWeeksFromSeedingDate:\r\n \"Semaines depuis date de plantation (option)\",\r\n customPlantFormErrorActivity:\r\n \"Veuillez renseigner la sem. début et la sem. fin. Si l’activité n’est pas nécessaire, veuillez sélectionner «Jamais».\",\r\n customPlantFormErrorDate: \"La date est incorrecte\",\r\n customPlantFormErrorInvalidForm:\r\n \"Le formulaire n’a pas été entièrement complété\",\r\n customPlantFormFertilizingNever: \"Jamais\",\r\n customPlantFormFertilizingWeekly: \"Toutes les semaines\",\r\n customPlantFormFertilizingEvery2Weeks: \"Toutes les 2 semaines\",\r\n customPlantFormFertilizingEvery3Weeks: \"Toutes les 3 semaines\",\r\n customPlantFormFertilizingMonthly: \"Tous les mois\",\r\n addPlantToCalendarSuccessMessage:\r\n \"Plante ajoutée avec succès au calendrier\",\r\n successSaveMessage: \"Sauvegarder avec succès\",\r\n addNewGarden: \"Créer un nouveau jardin\",\r\n entryPageTitle1: \"Votre calendrier de jardinage personnel\",\r\n entryPageTitle2: \"Créer un jardin\",\r\n entryPageTitle3: \"Ajouter des plantes\",\r\n entryPageTitle4: \"Obtenir des conseils d’entretien\",\r\n entryPageBtnLoggin: \"Inscrire\",\r\n entryPageBtnCreateGarden: \"Créer un jardin\",\r\n modalSubscribeTitle: \"Notifications\",\r\n modalSubscribeSave: \"Enregistrer\",\r\n saveDisclaimer:\r\n \"Créez votre compte LANDI sans plus attendre pour enregistrer votre calendrier de jardinage.\",\r\n modalSubscribeSubscriptionType: \"Type de notifications\",\r\n modalSubscribeGardenOverview: \"M’envoyer un résumé mensuel (Courriel)\",\r\n modalSubscribeWeatherWarnings: \"M’envoyer les dernières alertes météo\",\r\n modalSubscribeCommunicationChannel: \"Canal de communication\",\r\n modalSubscribeNotValidPhonenumber:\r\n \"Veuillez indiquer un numéro de téléphone portable (0041 79 123 4567).\",\r\n modalSubscribeSMS: \"SMS\",\r\n modalSubscribeWhatsapp: \"WhatsApp\",\r\n modalSubscribeEMail: \"Courriel\",\r\n modalPhoneNumber: \"Numéro de mobile\",\r\n modalSubscribeError: \"Erreur\",\r\n plantMenuOrder: \"Commander\",\r\n plantMenuDetail: \"Detail\",\r\n plantMenuEdit: \"Modifier\",\r\n plantMenuDuplicate: \"Dupliquer\",\r\n plantMenuMove: \"Déplacer\",\r\n plantMenuDelete: \"Supprimer\",\r\n gardenMenuOrder: \"Modifier\",\r\n gardenMenuDuplicate: \"Dupliquer\",\r\n gardenMenuDelete: \"Supprimer\",\r\n landiPlantEditSave: \"Enregistrer\",\r\n gardenModalCreateButton: \"Créer un jardin\",\r\n gardenModalDuplicateButton: \"Duplicate garden\",\r\n gardenModalEditButton: \"Modifier le jardin\",\r\n plzTooltipLogged:\r\n \"Allez dans Mon compte LANDI > Adresse pour reprendre le code postal ou le lieu du calendrier du jardin de votre compte LANDI.\",\r\n plzTooltipNotLogged:\r\n \"Connectez-vous ou inscrivez-vous pour reprendre le code postal ou le lieu du calendrier du jardin de votre compte LANDI.\",\r\n gardenModalCreateTitle: \"Créer un jardin\",\r\n gardenModalDuplicateTitle: \"Duplicate garden\",\r\n gardenModalEditTitle: \"modifier le jardin\",\r\n gardenModalNameLabel: \"Nom du jardin\",\r\n gardenModalPlaceLabel:\r\n \"Code postal / emplacement pour les alertes météo (s'applique à tous vos jardins)\",\r\n gardenModalDescriptionLabel: \"Description (facultatif)\",\r\n movePlantModalMoveTitle: \"Déplacement de l'usine\",\r\n movePlantModalDuplicateTitle: \"Dupliquer la plante\",\r\n movePlantModalMoveButton: \"Déplacer\",\r\n movePlantModalDuplicateButton: \"Dupliquer et déplacer\",\r\n movePlantModalMoveLabel: \"Déplacer vers:\",\r\n movePlantModalDuplicateLabel: \"Déplacer la plante en double vers:\",\r\n movePlantModalBadNeighbors: \"Attention! Cette plante ne s’accorde pas de manière optimale avec les plantes déjà présentes dans le jardin.\",\r\n filtersAccordion: \"Afficher les filtres et les vues\",\r\n modalSavGardenTitle: \"Connectez-vous et enregistrez\",\r\n modalSaveGardenInfoText:\r\n \"Vous n'êtes actuellement pas connecté ou n'avez pas de compte. Pour sauver le jardin, vous devez avoir un compte LANDI. Si vous vous êtes connecté, votre jardin sera enregistré sur votre compte.\",\r\n actionTitleOpenCloseGarden: \"Jardin ouvert / fermé\",\r\n actionTitleAddPlant: \"Ajouter plante\",\r\n actionTitleAddGarden: \"Ajouter jardin\",\r\n actionTitleNavigateBack: \"Revenir en arrière d'un mois\",\r\n actionTitleNavigateForward: \"Naviguer un mois avant\",\r\n weatherAnonymusMessage:\r\n \"Connectez-vous ou inscrivez-vous pour afficher la météo de votre emplacement ici\",\r\n weatherWeekview: \"Vue hebdomadaire\",\r\n weatherClose: \"Fermer\",\r\n createGardenErrorInvalidName: \"Veuillez saisir un nom\",\r\n dropDownNoSelection: \"[pas de sélection]\",\r\n labelYourSearch: \"Votre recherche\",\r\n gardenFilterActivities: \"Filtrer par activités\",\r\n gardenPrint: \"Imprimer\",\r\n calendarAddPlantCreateCustomPlant: \"Créez votre propre usine\",\r\n calendarAddPlantAddCommunityCustomPlant:\r\n \"Ajoutez votre propre plante ou une installation communautaire\",\r\n calendarFilterNoSelectionText: \"Veuillez sélectionner\",\r\n calendarWeekShort: \"Sem.\",\r\n calendarFilterAllActivitu: \"Montrer tous\",\r\n modalGardenContestTitle: \"Participez au concours de jardinage\",\r\n modalGardenContestText: \"Créez votre jardin maintenant et tentez de gagner l’un des 10 bons LANDI d’une valeur unitaire de CHF 1 000! Un bon moyen pour garnir votre jardin de fleurs multicolores, de semer des légumes et des fines herbes bons pour votre santé ou de vous équiper en outillage de jardin professionnel. \\n 10 gagnant(e)s seront tiré(e)s au sort parmi toutes les personnes ayant créé un jardin dans leur calendrier de jardinage.\",\r\n modalGardenContestDeny: \"Non, je ne participe pas\",\r\n modalGardenContestAccept: \"Oui, je participe\",\r\n modalTutorialConsentTitle: \"Bienvenue au calendrier de jardinage LANDI\",\r\n modalTutorialConsentText: \"Découvrez ses fonctions principales et profitez d’un jardin bien fleuri. Vous voulez commencer la visite?\",\r\n modalTutorialConsentDeny: \"Non\",\r\n modalTutorialConsentAccept: \"Oui\",\r\n modalTutorialEndTitle: \"Fin de la visite\",\r\n modalTutorialEndText: \"Nous vous souhaitons une excellente saison de jardinage, et nous espérons que le calendrier de jardinage LANDI vous aidera à avoir un jardin magnifiquement fleuri.\",\r\n modalTutorialEndOk: \"Ok\",\r\n tutorialNext: \"Continuer\",\r\n tutorialAddGarden: \"Ici, vous pouvez créer votre propre jardin. Vous pouvez créer différents jardins, p. ex. un espace potager et un espace fines herbes. Veuillez nommer votre jardin. Le NPA / lieu correspondant aux alertes météo est celui que vous avez enregistré dans votre profil client.\",\r\n tutorialAddPlantFromLandiCatalog: \"Sélectionnez vos plantes dans la gamme complète LANDI.\",\r\n tutorialAddPlantFilters: \"Les filtres vous permettent de cibler votre choix.\",\r\n tutorialAddPlantClose: \"Fermez la fenêtre pour revenir à l’aperçu du calendrier.\",\r\n tutorialCalendarFilterOnActivity: \"Dans l’aperçu, vous voyez à tout moment les travaux à réaliser dans votre jardin. Vous pouvez filtrer l’affichage par tâches.\",\r\n tutorialCalendarPeriodView: \"Vous pouvez également basculer entre l’affichage mensuel et l’affichage annuel.\",\r\n tutorialCalendarMeteo: \"Les prévisions météo indiquées sont ajustées aux données de votre profil client.\",\r\n tutorialCalendarMeteoAlerts: \"Vous pouvez également recevoir des alertes météo et d’autres informations vous permettant d’optimiser vos travaux de jardinage.\",\r\n tutorialAddPlant: \"Vous pouvez ajouter de nouvelles plantes à tout moment.\",\r\n tutorialAddCustomPlant: \"Si vous ne trouvez pas votre bonheur dans la gamme LANDI, vous pouvez saisir votre propre plante. Téléchargez son image, décrivez la plante et ajoutez des tâches et des critères détaillés.\",\r\n tutorialAddCustomPlantShare: \"Si vous le souhaitez, vous pouvez également partager votre plante avec la communauté.\",\r\n tutorialAddCustomPlantAddToCalendar: \"Ajoutez la plante saisie à votre calendrier.\",\r\n tutorialAddCustomPlantClose: \"Fermez la fenêtre pour revenir à l’aperçu du calendrier.\",\r\n tutorialEditPlant: \"Vous pouvez également modifier les plantes ajoutées à votre calendrier.\",\r\n tutorialEditCustomActivities: \"Vous pouvez modifier les travaux liés aux plantes LANDI et à vos propres plantes.\",\r\n tutorialEditDetailInformations: \"Vous ne pouvez modifier que les critères détaillés de vos propres plantes.\",\r\n titleBadNeighborsModal: \"Mauvaises associations\",\r\n textBadNeighborsModalBody: \"Vous avez dans votre jardin des plantes qui ne s’accordent pas de manière optimale. Pour qu’elles se développent bien, replantez-les si possible.\",\r\n closeModal: \"Ferme\",\r\n plantGroupDropdownTitle: \"groupe de plantes\"\r\n }),\r\n ],\r\n});\r\n","import { VNode } from 'vue';\r\nimport Vue from 'vue';\r\nimport App from './App.vue';\r\nimport store from './store';\r\nimport './languages';\r\nimport moment from 'moment';\r\nimport { DirectiveBinding } from 'vue/types/options';\r\ndeclare global {\r\n interface Window { Anno: any; }\r\n}\r\n\r\nVue.config.productionTip = false;\r\nVue.prototype.Anno = window.Anno;\r\n\r\n\r\nconst gardenplaner = new Vue({\r\n store,\r\n render: h => h(App)\r\n}).$mount('#landiGardenplanerApp');\r\n","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheMovePlantModal.vue?vue&type=style&index=0&id=f9f272a8&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheMovePlantModal.vue?vue&type=style&index=0&id=f9f272a8&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CalendarFilters.vue?vue&type=style&index=0&id=16230801&lang=less&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CalendarFilters.vue?vue&type=style&index=0&id=16230801&lang=less&scoped=true&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheCalendarHeader.vue?vue&type=style&index=0&id=7e45e6e9&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheCalendarHeader.vue?vue&type=style&index=0&id=7e45e6e9&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DailyWeatherHeader.vue?vue&type=style&index=0&id=09c41aa5&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DailyWeatherHeader.vue?vue&type=style&index=0&id=09c41aa5&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ActivityDateWithIcon.vue?vue&type=style&index=0&id=37e82b94&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ActivityDateWithIcon.vue?vue&type=style&index=0&id=37e82b94&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheCalendarBody.vue?vue&type=style&index=1&id=f407b4c4&lang=less&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheCalendarBody.vue?vue&type=style&index=1&id=f407b4c4&lang=less&scoped=true&\""],"sourceRoot":""}