{"version":3,"sources":["webpack:///./src/services/solutions/types.ts","webpack:///./src/services/posts/types.ts","webpack:///./src/components/posts/PostScheduleValidation.vue?bc3c","webpack:///./src/components/posts/PostScheduleValidation.vue","webpack:///./src/components/posts/PostScheduleValidation.vue?4464","webpack:///./src/components/posts/PostScheduleValidation.vue?aa26","webpack:///./src/components/solutions/modals/SolutionInfoModal.vue?cccb","webpack:///./src/components/solutions/modals/SolutionInfoModal.vue","webpack:///./src/components/solutions/modals/SolutionInfoModal.vue?7f07","webpack:///./src/components/solutions/modals/SolutionInfoModal.vue?1730","webpack:///./src/directives/validate.ts","webpack:///./src/components/powerPlans/PowerPlanEventSchedule.vue?93c2","webpack:///./src/services/powerPlans/powerPlanService.ts","webpack:///./src/components/powerPlans/modals/PowerPlanEventCreateAndUpdateModal.vue?95d8","webpack:///./src/components/common/modals/UnsavedFormModal.vue?2f75","webpack:///./src/components/common/modals/UnsavedFormModal.vue","webpack:///./src/components/common/modals/UnsavedFormModal.vue?d3fc","webpack:///./src/components/common/modals/UnsavedFormModal.vue?8c30","webpack:///./src/components/layouts/HeaderActionButtons.vue?3b8a","webpack:///./src/components/layouts/HeaderActionButtons.vue?2810","webpack:///./src/components/layouts/HeaderActionButtons.vue","webpack:///./src/components/layouts/HeaderActionButtons.vue?0d84","webpack:///./src/components/layouts/HeaderActionButtons.vue?1c9a","webpack:///./src/services/powerPlans/types.ts","webpack:///./src/components/solutions/modals/SolutionInfoModal.vue?38cd","webpack:///./src/components/posts/PostScheduleValidation.vue?48c8","webpack:///./src/components/powerPlans/_PowerPlanForm.vue?d9d5","webpack:///./src/components/powerPlans/PowerPlanEvents.vue?ca2e","webpack:///./src/components/powerPlans/modals/PowerPlanEventCreateAndUpdateModal.vue?477f","webpack:///./src/services/powerPlans/powerPlanEventService.ts","webpack:///./src/components/powerPlans/PowerPlanEventSchedule.vue?d835","webpack:///./src/components/powerPlans/powerPlanFormatting.ts","webpack:///./src/components/powerPlans/PowerPlanEventSchedule.vue","webpack:///./src/components/powerPlans/PowerPlanEventSchedule.vue?4169","webpack:///./src/components/powerPlans/PowerPlanEventSchedule.vue?adc6","webpack:///./src/components/powerPlans/modals/PowerPlanEventCreateAndUpdateModal.vue","webpack:///./src/components/powerPlans/modals/PowerPlanEventCreateAndUpdateModal.vue?214f","webpack:///./src/components/powerPlans/modals/PowerPlanEventCreateAndUpdateModal.vue?fef9","webpack:///./src/components/powerPlans/modals/PowerPlanEventDeleteModal.vue?44c8","webpack:///./src/components/powerPlans/modals/PowerPlanEventDeleteModal.vue","webpack:///./src/components/powerPlans/modals/PowerPlanEventDeleteModal.vue?244a","webpack:///./src/components/powerPlans/modals/PowerPlanEventDeleteModal.vue?45d5","webpack:///./src/components/powerPlans/fields/powerPlanEventFields.ts","webpack:///./src/components/powerPlans/PowerPlanEvents.vue","webpack:///./src/components/powerPlans/PowerPlanEvents.vue?2bd3","webpack:///./src/components/powerPlans/PowerPlanEvents.vue?7944","webpack:///./src/components/powerPlans/PowerPlanSolutions.vue?754d","webpack:///./src/components/powerPlans/fields/powerPlanSolutionFields.ts","webpack:///./src/components/powerPlans/PowerPlanSolutions.vue","webpack:///./src/components/powerPlans/PowerPlanSolutions.vue?3850","webpack:///./src/components/powerPlans/PowerPlanSolutions.vue?192b","webpack:///./src/components/powerPlans/validators.ts","webpack:///./src/components/powerPlans/_PowerPlanForm.vue","webpack:///./src/components/powerPlans/_PowerPlanForm.vue?3f5f","webpack:///./src/components/powerPlans/_PowerPlanForm.vue?db07"],"names":["SolutionTypeEnum","PostTypeEnum","RecurenceEnum","WeekdaysEnum","BehaviorEnum","DatesOfMonth","Time","render","_vm","this","_h","$createElement","_c","_self","isValid","_e","staticClass","attrs","validateToDate","_v","_s","$t","validateMonthly","validateWeekly","validateFromTime","validateToTime","validateYearly","staticRenderFns","recurenceEnum","weekdaysEnum","datesOfMonth","item","neverending","result","range","from","Date","fromDate","setHours","to","toDate","getDateRange","recurenceValues","forEach","selected","inRange","selectedDate","getFullYear","getMonth","push","length","start","end","daysDiff","diff","day","current","clone","isSameOrBefore","add","isBetween","setDate","getDate","allDay","hour","toTime","isSameOrAfter","fromTime","minute","includes","recurenceType","yearly","weekly","checkIfSelectedDaysExistsInRange","monthly","checkIfSelectedDatesAreInDateRage","component","scopedSlots","_u","key","fn","on","hide","proxy","solutionInfo","name","width","height","solutionTypeEnum","type","solutionFolderPath","contractName","isAdmin","domProps","getSolutionStatus","playerName","playerId","playerPcName","templateId","params","templateName","solutionId","then","response","$bvModal","show","getCurrentUser","permissions","AdminPrivilege","namespace","validate","bind","element","binding","vNode","componentContext","context","el","validators","property","id","rules","set","value","addEventListener","event","confirm","matchRule","find","x","Confirm","confirmProperty","message","state","update","unbind","getPowerPlans","Promise","resolve","reject","get","data","error","getPowerPlan","createPowerPlan","powerPlan","post","updatePowerPlan","put","deletePowerPlan","delete","checkDelete","a","copyPowerPlan","decline","UnsavedFormModal","$emit","directives","rawName","class","sticky","preventSave","save","showSaveButton","saveAndBack","editorStatus","preventBack","$event","back","permitionEnum","havePermition","$route","checkPermition","undefined","default","abg","inserted","vnode","offset","window","pageYOffset","getBoundingClientRect","top","doc","document","documentElement","scrollTop","clientTop","removeEventListener","PowerPlanEventType","model","callback","$$v","$set","expression","_l","componentName","activeDropTarget","dragEnd","dragLeave","dragOver","swapComponents","ref","refInFor","sectionName","drag","tag","localId","collapseState","solutions","onComponentStateChanged","onSolutionsUpdated","onContinue","localCollapseState","setState","addEvent","searchQuery","stopPropagation","preventDefault","open","showCalendar","toggleCalendar","markedDates","calendarConfigs","monthNames","dayNames","changedMonth","dayClicked","calendar","isBusy","fields","filteredData","scope","row","openEditEventPrompt","parseTime","getWeeklyRecurenceDays","recurence","listOfDays","getMonthlyRecurenceDays","getFromDateLabel","getToDateLabel","modifiers","removeEvent","powerPlanId","reloadEventList","isEdit","eventTypes","onScheduleUpdated","getPowerPlanEvents","request","api","getActiveDays","createEvent","eventData","catch","console","log","updateEvent","deleteEvent","fromDateLabel","staticStyle","toDateLabel","onNeverEndingChange","getRecurenceDropdownLabel","daily","recurenceTypeChanged","monday","tuesday","wednesday","thursday","friday","saturday","sunday","date","timeLabel","toString","active","target","composing","powerPlanEventFromDate","powerPlanEvent","i18n","d","powerPlanEventToDate","t","powerPlanEventTimeSpan","format","defaultFromTime","defaultToTime","zeroTime","time","isSelectDropdownVisible","$refs","calendarFromDate","clickDay","isMarked","calendarToDate","calendarYearly","$root","$on","bvEvent","parentElement","className","loadActiveDays","firstDayOfThisMonth","startDate","calendarStartDate","i","getWeekDays","split","join","values","map","Error","validation","today","month","year","currentDate","dateParts","dateObject","toDateString","components","FunctionalCalendar","On","saveClicked","scheduleValid","Object","keys","filter","isNaN","Number","Required","eventSchedule","checkIfFormIsValid","formatTime","resetForm","startTime","startDateTime","endTime","endDateTime","PowerPlanEventSchedule","eventName","eventToBeDeleted","isSaved","e","handleEnter","eventId","powerPlanEventFields","label","sortable","formatter","formatType","localEvents","currentSelectedDate","fetchEvents","oldValue","calendarDate","toLocaleString","firstDayOfMonthOfSelectedDate","eventCreateAndUpdateModal","dayOfTheWeek","powerPlanEventDeleteModal","slice","toLowerCase","PowerPlanEventCreateAndUpdateModal","PowerPlanEventDeleteModal","addSolution","removeSolution","onSelectedSolution","powerPlanSolutionFields","localSolutions","solutionAddModal","concat","solutionInfoModal","JSON","parse","stringify","SelectSolutionModal","SolutionInfoModal","powerPlansValidators","Min","componentsData","events","priorPowerPlanState","nextRoute","routeParams","continue","fetchData","initComponents","bus","componentsAutoSettingKey","order","componentState","next","childComponentsHandler","noChanges","lodash","isEqual","firstObject","secondObject","constructor","hasOwnProperty","compareObjects","$router","history","go","childComponent","emitData","dataTransfer","setDragImage","setData","currentTarget","source","getData","sourceOrder","settingsKey","sort","b","beforeRouteLeave","onBeforeRouteLeave","PowerPlanEvents","PowerPlanSolutions","HeaderActionButtons"],"mappings":"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","file":"js/chunk-56f460ed.32362f7a.js","sourcesContent":["import { InfoValue } from \"../channels/types\";\r\nimport { AclMemberDto } from \"../security/types\";\r\nimport { TemplateTypeEnum } from \"../templates/types\";\r\nimport { Player } from \"../players/types\";\r\n\r\nexport interface Solution {\r\n id: string;\r\n name: string;\r\n autoScale: boolean;\r\n timeZoneId: string;\r\n timeZoneName: string;\r\n height: number;\r\n width: number;\r\n templateId: string | null;\r\n templateName: string | null;\r\n templateType: TemplateTypeEnum;\r\n folderId: string;\r\n playerId: string | null;\r\n powerPlanId: string | null;\r\n forceOn: string;\r\n acl: AclMemberDto[];\r\n type: SolutionTypeEnum;\r\n contractId: string | null;\r\n playerName: string;\r\n properties: any;\r\n status: boolean;\r\n lastActiveDate: string;\r\n player?: Player\r\n}\r\nexport interface CopySolution {\r\n solutionId: string,\r\n name: string,\r\n copyUserAccess: boolean,\r\n}\r\n\r\nexport interface SolutionInfo {\r\n name: string,\r\n height: number,\r\n width: number,\r\n templateId: string;\r\n templateName: string;\r\n type: SolutionTypeEnum,\r\n contractName: string,\r\n playerId: number,\r\n playerName: string,\r\n playerPcName:string,\r\n status: boolean;\r\n lastActiveDate: string;\r\n solutionFolderPath: string;\r\n}\r\n\r\nexport interface SolutionsFilterDtoIn {\r\n templateId: string,\r\n solutionTypes: string[]\r\n}\r\n\r\nexport interface Settings {\r\n name: string;\r\n autoScale: boolean;\r\n timeZoneId: string;\r\n timeZoneName: string;\r\n height: number;\r\n width: number;\r\n templateId: string | null;\r\n templateName: string | null;\r\n templateType: TemplateTypeEnum;\r\n type: SolutionTypeEnum;\r\n contractId: string | null;\r\n powerPlanId: string | null;\r\n playerId: string | null;\r\n playerName: string;\r\n properties: any;\r\n}\r\n\r\nexport interface AddContractDto{\r\n solutionId: string;\r\n contractId: string\r\n}\r\n\r\nexport enum SolutionTypeEnum\r\n{\r\n informationScreen = 1,\r\n receptionScreen,\r\n guestRegistration,\r\n meetingOverview,\r\n interactiveInformationScreen,\r\n wayfinder,\r\n meetingRoomScreen,\r\n sessions,\r\n digitalPoster,\r\n screenWall,\r\n supernovaWall,\r\n calmviso\r\n}\r\n","import { AllowedPostSettings } from \"@/services/channels/types\";\r\n\r\nexport interface Post {\r\n id: string;\r\n name: string;\r\n postType: string;\r\n order: number;\r\n channelId: string;\r\n channelName: string;\r\n status: string;\r\n properties: Properties;\r\n fromDate: string;\r\n toDate: string;\r\n fromTime: string;\r\n toTime: string;\r\n allDay: boolean;\r\n neverending: boolean;\r\n recurenceType: RecurenceEnum;\r\n recurenceValues: Array;\r\n yearly: string;\r\n createdBy: string;\r\n modifiedBy: string;\r\n time: string;\r\n containsPersonalData: boolean;\r\n}\r\n\r\nexport interface PostPreviewInfo {\r\n id: string;\r\n name: string;\r\n channelId: string;\r\n channelName: string;\r\n modifiedBy: string;\r\n hasAccess: boolean;\r\n}\r\n\r\nexport interface Properties { }\r\n\r\nexport enum PostTypeEnum {\r\n html = \"HTML\",\r\n fixedhtml = \"FixedHTML\",\r\n grab = \"Grab\",\r\n rss = \"RSS\",\r\n date = \"Date\",\r\n time = \"Time\",\r\n image = \"Image\",\r\n clock = \"Clock\",\r\n wayfinder = \"Wayfinder\",\r\n gallery = \"Folder\",\r\n video = \"Video\"\r\n}\r\n\r\nexport enum RecurenceEnum {\r\n daily,\r\n weekly,\r\n monthly,\r\n yearly,\r\n}\r\n\r\nexport enum WeekdaysEnum {\r\n monday = 1,\r\n tuesday,\r\n wednesday,\r\n thursday,\r\n friday,\r\n saturday,\r\n sunday\r\n}\r\n\r\nexport const DatesOfMonth = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31];\r\n\r\nexport enum BehaviorEnum {\r\n adjust = \"adjust\",\r\n crop = \"crop\",\r\n letterBox = \"letterBox\",\r\n stretch = \"stretch\"\r\n}\r\n\r\nexport interface ActiveDaysRequest {\r\n channelId: string;\r\n calendarStartDate: Date;\r\n}\r\n\r\nexport interface PostActiveDaysRequest {\r\n postId: string;\r\n calendarStartDate: Date;\r\n}\r\n\r\nexport interface MarkedDay {\r\n date: string;\r\n class: string;\r\n}\r\n\r\nexport interface PostsFilterDtoIn {\r\n channelId: string,\r\n calendarDate: string\r\n}\r\n\r\nexport interface CopyPost {\r\n postId: string,\r\n name: string,\r\n}\r\n\r\nexport const Time = [\"00:00\", \"01:00\", \"02:00\", \"03:00\", \"04:00\", \"05:00\", \"06:00\", \"07:00\", \"08:00\",\r\n \"09:00\", \"10:00\", \"11:00\", \"12:00\", \"13:00\", \"14:00\", \"15:00\", \"16:00\", \"17:00\",\r\n \"18:00\", \"19:00\", \"20:00\", \"21:00\", \"22:00\", \"23:00\", \"23:30\"];\r\n\r\nexport interface CommonAllowedPostSettings extends AllowedPostSettings {\r\n styleId: string,\r\n}\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.isValid())?_c('div',{staticClass:\"warnings\"},[_c('div',{staticClass:\"form-group row\"},[_c('b-alert',{attrs:{\"show\":!_vm.validateToDate,\"variant\":\"danger\"}},[_vm._v(_vm._s(_vm.$t(\"posts.validEndDate\")))])],1),_c('div',{staticClass:\"form-group row\"},[_c('b-alert',{attrs:{\"show\":!_vm.validateMonthly,\"variant\":\"danger\"}},[_vm._v(_vm._s(_vm.$t(\"posts.validDayInMonth\")))])],1),_c('div',{staticClass:\"form-group row\"},[_c('b-alert',{attrs:{\"show\":!_vm.validateWeekly,\"variant\":\"danger\"}},[_vm._v(_vm._s(_vm.$t(\"posts.validWeekday\")))])],1),_c('div',{staticClass:\"form-group row\"},[_c('b-alert',{attrs:{\"show\":!_vm.validateFromTime,\"variant\":\"danger\"}},[_vm._v(_vm._s(_vm.$t(\"posts.validateFromTime\")))])],1),_c('div',{staticClass:\"form-group row\"},[_c('b-alert',{attrs:{\"show\":!_vm.validateToTime,\"variant\":\"danger\"}},[_vm._v(_vm._s(_vm.$t(\"posts.validEndTime\")))])],1),_c('div',{staticClass:\"form-group row\"},[_c('b-alert',{attrs:{\"show\":!_vm.validateYearly,\"variant\":\"danger\"}},[_vm._v(_vm._s(_vm.$t(\"posts.validYearly\")))])],1)]):_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\r\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\r\nimport { Post, RecurenceEnum, WeekdaysEnum, DatesOfMonth, MarkedDay, ActiveDaysRequest, Time } from \"@/services/posts/types\";\r\nimport moment from \"moment\";\r\nimport { moveEntity } from \"@/services/folders/folderService\";\r\n\r\n@Component\r\nexport default class PostScheduleValidation extends Vue {\r\n @Prop() private item!: Post;\r\n\r\n recurenceEnum = RecurenceEnum;\r\n weekdaysEnum = WeekdaysEnum;\r\n datesOfMonth = DatesOfMonth;\r\n\r\n // methods\r\n isValid() {\r\n var isValid = this.validateToDate && this.validateFromTime && this.validateToTime && this.validateWeekly &&\r\n this.validateMonthly && this.validateYearly;\r\n return isValid;\r\n }\r\n\r\n // validations\r\n // computed\r\n get validateToDate() {\r\n if (this.item.neverending) {\r\n return true;\r\n }\r\n return !(!this.item.neverending && !this.item.toDate) && new Date(this.item.toDate).setHours(0, 0, 0, 0) >= new Date(this.item.fromDate).setHours(0, 0, 0, 0);\r\n }\r\n\r\n get validateToTime() {\r\n if (this.item.allDay) {\r\n return true;\r\n }\r\n var hour = moment(this.item.toTime, \"HH:mm\").isSameOrAfter(moment(this.item.fromTime, \"HH:mm\"), \"minute\");\r\n var minute = moment(this.item.toTime, \"HH:mm\").isSameOrAfter(moment(this.item.fromTime, \"HH:mm\"), \"hour\");\r\n return this.item.toTime.length === 5 && this.item.toTime.includes(\":\") && hour && minute;\r\n }\r\n\r\n get validateFromTime() {\r\n if (this.item.allDay) {\r\n return true;\r\n }\r\n return this.item.fromTime.length === 5 && this.item.fromTime.includes(\":\");\r\n }\r\n\r\n get validateYearly() {\r\n if (this.item.recurenceType !== this.recurenceEnum.yearly) {\r\n return true;\r\n }\r\n\r\n if (this.item.yearly == null || this.item.yearly === \"\") return false;\r\n\r\n return !(this.item.recurenceType === this.recurenceEnum.yearly && !this.item.yearly) && this.item.neverending ? true : new Date(this.item.toDate).setHours(0, 0, 0, 0) >= new Date(this.item.yearly).setHours(0, 0, 0, 0);\r\n }\r\n\r\n get validateWeekly() {\r\n if (this.item.recurenceType !== this.recurenceEnum.weekly) {\r\n return true;\r\n }\r\n return (this.item.recurenceType === this.recurenceEnum.weekly) && (this.item.recurenceValues.length > 0) && this.checkIfSelectedDaysExistsInRange();\r\n }\r\n\r\n get validateMonthly() {\r\n if (this.item.recurenceType !== this.recurenceEnum.monthly) {\r\n return true;\r\n }\r\n return (this.item.recurenceType === this.recurenceEnum.monthly) && (this.item.recurenceValues.length > 0) && this.checkIfSelectedDatesAreInDateRage();\r\n }\r\n\r\n // helper methods\r\n checkIfSelectedDatesAreInDateRage() {\r\n if (this.item.neverending) {\r\n return true;\r\n } else {\r\n var result = [] as Array;\r\n var range = [] as Array;\r\n var from = new Date(this.item.fromDate);\r\n from.setHours(0, 0, 0, 0);\r\n var to = new Date(this.item.toDate);\r\n to.setHours(0, 0, 0, 0);\r\n range = this.getDateRange();\r\n this.item.recurenceValues.forEach(selected => {\r\n range.forEach(inRange => {\r\n var selectedDate = new Date(inRange.getFullYear(), inRange.getMonth(), selected);\r\n selectedDate.setHours(0, 0, 0, 0);\r\n if (from <= selectedDate && selectedDate <= to) {\r\n result.push(selectedDate);\r\n }\r\n });\r\n });\r\n return result.length > 0;\r\n }\r\n }\r\n\r\n checkIfSelectedDaysExistsInRange() {\r\n if (this.item.neverending) {\r\n return true;\r\n } else {\r\n var start = moment(new Date(this.item.fromDate), \"YYYY-MM-DD\");\r\n var end = moment(new Date(this.item.toDate), \"YYYY-MM-DD\");\r\n var result = [] as Array;\r\n var daysDiff = end.diff(start, \"days\");\r\n this.item.recurenceValues.forEach(day => {\r\n var current = start.clone();\r\n if (daysDiff >= 7) {\r\n result.push(current.clone());\r\n } else {\r\n current.day(day === 7 ? 0 : day);\r\n start.day(start.day() - 1);\r\n end.day(end.day() + 1);\r\n while (current.isSameOrBefore(start)) {\r\n current.add(1, \"weeks\");\r\n }\r\n while (current.isBetween(start, end)) {\r\n result.push(current.clone());\r\n current.add(7, \"days\");\r\n }\r\n }\r\n });\r\n }\r\n return result.length > 0;\r\n }\r\n\r\n getDateRange() {\r\n var range = [];\r\n var current = new Date(this.item.fromDate);\r\n var end = new Date(this.item.toDate);\r\n while (current <= end) {\r\n range.push(new Date(current));\r\n current = new Date(current.setDate(current.getDate() + 1));\r\n }\r\n return range;\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PostScheduleValidation.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PostScheduleValidation.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PostScheduleValidation.vue?vue&type=template&id=433a2aba&scoped=true&\"\nimport script from \"./PostScheduleValidation.vue?vue&type=script&lang=ts&\"\nexport * from \"./PostScheduleValidation.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PostScheduleValidation.vue?vue&type=style&index=0&id=433a2aba&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 \"433a2aba\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-modal',{attrs:{\"centered\":\"\",\"id\":\"modal-solutionInfo\",\"title\":_vm.$t('solution.solutionInfo')},scopedSlots:_vm._u([{key:\"modal-footer\",fn:function(){return [_c('b-button',{attrs:{\"variant\":\"primary\"},on:{\"click\":_vm.hide}},[_vm._v(_vm._s(_vm.$t(\"common.ok\")))])]},proxy:true}])},[_c('div',{staticClass:\"custom-scrollbar darkScroll-whiteBg\"},[_c('b-form',[_c('ul',{staticClass:\"info-list horizontal\"},[_c('li',[_c('b',{staticClass:\"il-label\"},[_vm._v(_vm._s(_vm.$t(\"common.name\"))+\":\")]),_c('span',[_vm._v(_vm._s(_vm.solutionInfo.name))])]),_c('li',[_c('b',{staticClass:\"il-label\"},[_vm._v(_vm._s(_vm.$t(\"common.size\"))+\":\")]),_c('span',[_vm._v(_vm._s(_vm.solutionInfo.width)+\" x \"+_vm._s(_vm.solutionInfo.height))])]),(_vm.solutionInfo.type)?_c('li',[_c('b',{staticClass:\"il-label\"},[_vm._v(_vm._s(_vm.$t(\"common.type\"))+\":\")]),_c('span',[_vm._v(_vm._s(_vm.$t((\"solution.\" + (_vm.solutionTypeEnum[_vm.solutionInfo.type])))))])]):_vm._e(),_c('li',[_c('b',{staticClass:\"il-label\"},[_vm._v(_vm._s(_vm.$t(\"common.folderPath\"))+\":\")]),_c('span',{staticClass:\"word-break-allow\"},[_vm._v(_vm._s(_vm.solutionInfo.solutionFolderPath))])]),(_vm.solutionInfo.contractName && _vm.isAdmin)?_c('li',[_c('b',{staticClass:\"il-label\"},[_vm._v(_vm._s(_vm.$t(\"solution.contracts\"))+\":\")]),_c('span',[_vm._v(_vm._s(_vm.solutionInfo.contractName))])]):_vm._e(),_c('li',[_c('b',{staticClass:\"il-label\"},[_vm._v(_vm._s(_vm.$t(\"posts.status\"))+\":\")]),_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.getSolutionStatus(_vm.solutionInfo))}})]),(_vm.solutionInfo.playerName)?_c('li',[_c('b',{staticClass:\"il-label\"},[_vm._v(_vm._s(_vm.$t(\"player.playerName\"))+\":\")]),_c('span',[_vm._v(_vm._s(_vm.solutionInfo.playerName))])]):_vm._e(),(_vm.solutionInfo.playerId)?_c('li',[_c('b',{staticClass:\"il-label\"},[_vm._v(_vm._s(_vm.$t(\"player.playerId\"))+\":\")]),_c('span',[_vm._v(_vm._s(_vm.solutionInfo.playerId))])]):_vm._e(),(_vm.solutionInfo.playerPcName)?_c('li',[_c('b',{staticClass:\"il-label\"},[_vm._v(_vm._s(_vm.$t(\"player.playerPcName\"))+\":\")]),_c('span',[_vm._v(_vm._s(_vm.solutionInfo.playerPcName))])]):_vm._e()]),_c('div',{staticClass:\"multi-info-block\"},[_c('b',{staticClass:\"mi-label\"})]),(_vm.isAdmin && _vm.solutionInfo.templateId)?_c('b-row',{staticClass:\"mb-4\"},[_c('b-col',{attrs:{\"sm\":\"12\"}},[_c('div',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.$t(\"solution.templatesInfo\"))+\":\")])]),_c('b-col',{attrs:{\"sm\":\"12\"}},[_c('div',{staticClass:\"entry vsc-list-item\"},[_c('router-link',{staticClass:\"btn\",attrs:{\"to\":{\n name: 'updatetemplate',\n params: { templateId: _vm.solutionInfo.templateId }\n }}},[_c('span',{staticClass:\"vsc-list-item-name goToArrow\"},[_vm._v(_vm._s(_vm.solutionInfo.templateName))])])],1)])],1):_vm._e()],1)],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\r\nimport { Component, Vue } from \"vue-property-decorator\";\r\nimport { GetSolutionInfo, GetSolutionStatus } from \"@/services/solutions/solutionService\";\r\nimport { SolutionInfo, SolutionTypeEnum } from \"@/services/solutions/types\";\r\nimport { HavePermition, PermitionEnum } from \"@/components/security/Permitions\";\r\nimport { Getter } from \"vuex-class\";\r\n\r\n@Component\r\nexport default class SolutionInfoModal extends Vue {\r\n @Getter(\"getCurrentUser\", { namespace: \"authentication\" }) getCurrentUser: any;\r\n\r\n solutionInfo = {} as SolutionInfo;\r\n solutionTypeEnum = SolutionTypeEnum;\r\n getSolutionStatus = GetSolutionStatus;\r\n\r\n get isAdmin() : boolean {\r\n return HavePermition(this.getCurrentUser.permissions,\r\n PermitionEnum[PermitionEnum.AdminPrivilege]);\r\n }\r\n\r\n open(solutionId: string) {\r\n GetSolutionInfo(solutionId).then(response => {\r\n this.solutionInfo = response;\r\n this.$bvModal.show(\"modal-solutionInfo\");\r\n });\r\n }\r\n\r\n hide() {\r\n this.$bvModal.hide(\"modal-solutionInfo\");\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SolutionInfoModal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SolutionInfoModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SolutionInfoModal.vue?vue&type=template&id=163275dc&scoped=true&\"\nimport script from \"./SolutionInfoModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./SolutionInfoModal.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SolutionInfoModal.vue?vue&type=style&index=0&id=163275dc&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 \"163275dc\",\n null\n \n)\n\nexport default component.exports","import { DirectiveOptions } from \"vue\";\r\nimport { Vue } from \"vue-property-decorator\";\r\nimport { validateValue } from \"@/services/validation/validationService\";\r\nimport { ValidationType } from \"@/services/validation/types\";\r\n\r\nconst validate: DirectiveOptions = {\r\n bind(element, binding, vNode) {\r\n const componentContext = vNode.context as any;\r\n const el = element as HTMLInputElement;\r\n\r\n if (!componentContext || !componentContext.validators) return;\r\n\r\n const property = componentContext.validators[el.id];\r\n if (!property || !property.rules) return;\r\n\r\n Vue.set(property, \"value\", binding.value);\r\n Vue.set(property, \"active\", true);\r\n\r\n element.addEventListener(\"input\", (event) => {\r\n Vue.set(property, \"value\", el.value);\r\n\r\n if (binding.value && binding.value.confirm) {\r\n const matchRule = (property.rules as any[]).find(x => x.type === ValidationType.Confirm);\r\n const confirmProperty = componentContext.validators[binding.value.confirm];\r\n matchRule.value = confirmProperty.value;\r\n }\r\n validateValue(property).then(response => {\r\n Vue.set(property, \"message\", response.message);\r\n Vue.set(property, \"state\", response.state);\r\n });\r\n });\r\n },\r\n // we use update for setting the value of already populated form fields\r\n update(element, binding, vNode) {\r\n const componentContext = vNode.context as any;\r\n const property = componentContext.validators[element.id];\r\n Vue.set(property, \"value\", binding.value);\r\n },\r\n unbind(element, binding, vNode) {\r\n const componentContext = vNode.context as any;\r\n const property = componentContext.validators[element.id];\r\n Vue.set(property, \"state\", null);\r\n Vue.set(property, \"message\", \"\");\r\n Vue.set(property, \"value\", \"\");\r\n Vue.set(property, \"active\", false);\r\n }\r\n};\r\n\r\nexport default validate;\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!./PowerPlanEventSchedule.vue?vue&type=style&index=0&id=40a723f0&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!./PowerPlanEventSchedule.vue?vue&type=style&index=0&id=40a723f0&scoped=true&lang=css&\"","import { PowerPlan, PowerPlanDetails, SolutionsUsingPowerPlan } from \"@/services/powerPlans/types\";\r\nimport api from \"@/services/api\";\r\n\r\nexport function getPowerPlans() : Promise {\r\n return new Promise((resolve, reject) => {\r\n api.get(\"/powerPlans\").then(\r\n response => {\r\n resolve(response.data);\r\n },\r\n error => {\r\n reject(error);\r\n }\r\n );\r\n });\r\n}\r\n\r\nexport function getPowerPlan(id: string) : Promise {\r\n return new Promise((resolve, reject) => {\r\n api.get(`/powerPlans/${id}`).then(\r\n response => {\r\n resolve(response.data);\r\n },\r\n error => {\r\n reject(error);\r\n }\r\n );\r\n });\r\n}\r\n\r\nexport function createPowerPlan(powerPlan: PowerPlanDetails) : Promise {\r\n return new Promise((resolve, reject) => {\r\n api.post(`/powerPlans`, powerPlan).then(\r\n response => {\r\n resolve(response.data);\r\n },\r\n error => {\r\n reject(error);\r\n }\r\n );\r\n });\r\n}\r\n\r\nexport function updatePowerPlan(powerPlan: PowerPlanDetails) : Promise {\r\n return new Promise((resolve, reject) => {\r\n api.put(`/powerPlans`, powerPlan).then(\r\n response => {\r\n resolve(response.data);\r\n },\r\n error => {\r\n reject(error);\r\n }\r\n );\r\n });\r\n}\r\n\r\nexport function deletePowerPlan(id: string): Promise {\r\n return new Promise((resolve, reject) => {\r\n api.delete(`/powerPlans/${id}`).then(\r\n response => {\r\n resolve(response.data);\r\n },\r\n error => {\r\n reject(error);\r\n }\r\n );\r\n });\r\n}\r\n\r\nexport async function checkDelete(id: string): Promise {\r\n return new Promise((resolve, reject) => {\r\n api.get(`/powerPlans/checkdelete/${id}`).then(\r\n response => {\r\n resolve(response.data);\r\n },\r\n error => {\r\n reject(error);\r\n }\r\n );\r\n });\r\n}\r\n\r\nexport function copyPowerPlan(id: string): Promise {\r\n return new Promise((resolve, reject) => {\r\n api.post(`/powerPlans/copy/${id}`, null).then(\r\n response => {\r\n resolve(response.data);\r\n },\r\n error => {\r\n reject(error);\r\n }\r\n );\r\n });\r\n}\r\n","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PowerPlanEventCreateAndUpdateModal.vue?vue&type=style&index=0&id=62d4a637&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PowerPlanEventCreateAndUpdateModal.vue?vue&type=style&index=0&id=62d4a637&lang=scss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('b-modal',{attrs:{\"centered\":\"\",\"id\":\"modal-navigateFromUnsavedForm\"},scopedSlots:_vm._u([{key:\"modal-footer\",fn:function(){return [_c('b-button',{attrs:{\"variant\":\"primary\"},on:{\"click\":_vm.confirm}},[_vm._v(_vm._s(_vm.$t(\"common.btnYesContinue\")))]),_c('b-button',{attrs:{\"variant\":\"dark\"},on:{\"click\":_vm.decline}},[_vm._v(_vm._s(_vm.$t(\"common.btnNo\")))])]},proxy:true}])},[_c('div',{staticClass:\"confirmation-modal-body\"},[_c('svg',{staticClass:\"vc-icon_xl ver-ar fill-danger\",attrs:{\"viewBox\":\"0 0 100 100\"}},[_c('use',{attrs:{\"xlink:href\":\"#delete-icon\"}})]),_c('h2',[_vm._v(_vm._s(_vm.$t(\"common.unsavedFormTitle\")))]),_c('small',[_vm._v(_vm._s(_vm.$t(\"common.unsavedFormDescription\")))])])])],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\r\nimport { Component, Vue } from \"vue-property-decorator\";\r\n\r\n@Component\r\nexport default class UnsavedFormModal extends Vue {\r\n open() {\r\n this.$bvModal.show(\"modal-navigateFromUnsavedForm\");\r\n }\r\n\r\n decline() {\r\n this.$emit(\"continue\", false);\r\n this.$bvModal.hide(\"modal-navigateFromUnsavedForm\");\r\n }\r\n\r\n confirm() {\r\n this.$emit(\"continue\", true);\r\n this.$bvModal.hide(\"modal-navigateFromUnsavedForm\");\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnsavedFormModal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnsavedFormModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./UnsavedFormModal.vue?vue&type=template&id=f971da18&\"\nimport script from \"./UnsavedFormModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./UnsavedFormModal.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 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!./HeaderActionButtons.vue?vue&type=style&index=0&id=1317f3f0&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!./HeaderActionButtons.vue?vue&type=style&index=0&id=1317f3f0&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"abg\",rawName:\"v-abg\"}],staticClass:\"actionButtonGroup\",class:{ sticky : _vm.sticky }},[(_vm.showSaveButton)?_c('b-button',{attrs:{\"disabled\":_vm.preventSave,\"variant\":\"primary\"},on:{\"click\":_vm.save}},[_vm._v(_vm._s(_vm.$t(\"common.save\")))]):_vm._e(),(_vm.showSaveButton && _vm.isAdmin)?_c('b-button',{attrs:{\"disabled\":_vm.preventSave,\"variant\":\"primary\"},on:{\"click\":_vm.saveAndBack}},[_vm._v(_vm._s(_vm.$t(\"common.saveAndBack\")))]):_vm._e(),(_vm.editorStatus && !_vm.isAdmin)?_c('b-button',{staticClass:\"btn-combine\",attrs:{\"disabled\":_vm.preventBack,\"variant\":\"primary\"},on:{\"click\":function($event){return _vm.$emit('newPostBtn')}}},[_c('span',{staticClass:\"iconBox\"},[_c('svg',{staticClass:\"vc-icon\",attrs:{\"viewBox\":\"0 0 9.9 7.5\"}},[_c('use',{attrs:{\"xlink:href\":\"#plus-icon\"}})])]),_c('span',{staticClass:\"post-combine\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"posts.newPost\"))+\" \")])]):_vm._e(),(_vm.editorStatus && !_vm.isAdmin)?_c('b-button',{staticClass:\"btn-combine\",attrs:{\"variant\":\"primary\"},on:{\"click\":function($event){return _vm.$emit('previewEvent')}}},[_c('span',{staticClass:\"iconBox\"},[_c('svg',{staticClass:\"vc-icon\",attrs:{\"viewBox\":\"0 0 9 7\"}},[_c('use',{attrs:{\"xlink:href\":\"#preview-icon\"}})])]),_c('span',{staticClass:\"post-combine\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"common.preview\"))+\" \")])]):_vm._e(),_c('b-button',{staticClass:\"ml-1\",attrs:{\"disabled\":_vm.preventBack,\"variant\":\"secondary\"},on:{\"click\":_vm.back}},[_vm._v(_vm._s(_vm.$t(\"common.back\")))])],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\r\nimport { Component, Vue, Prop, Watch } from \"vue-property-decorator\";\r\nimport { Getter } from \"vuex-class\";\r\nimport { HavePermition, PermitionEnum } from \"@/components/security/Permitions\";\r\n\r\nconst namespace: string = \"authentication\";\r\n\r\nvar scroll: any;\r\n\r\n@Component({\r\n directives: {\r\n abg: {\r\n inserted: function (element, binding, vnode) {\r\n var offset = (window.pageYOffset + element.getBoundingClientRect().top) - 50; // 50 is the height of the topbar\r\n scroll = function () {\r\n var doc = document.documentElement;\r\n var top = (window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0);\r\n if (top >= offset) (vnode.context as any).sticky = true;\r\n else (vnode.context as any).sticky = false;\r\n };\r\n window.addEventListener(\"scroll\", scroll, false);\r\n },\r\n unbind: function (element, binding, vnode) {\r\n window.removeEventListener(\"scroll\", scroll, false);\r\n }\r\n }\r\n }\r\n})\r\nexport default class HeaderActionButtons extends Vue {\r\n @Prop() checkPermition!: PermitionEnum;\r\n @Prop({ default: false }) preventSave!: boolean;\r\n @Prop({ default: false }) preventBack!: boolean;\r\n @Getter(\"getCurrentUser\", { namespace }) getCurrentUser: any;\r\n\r\n // local\r\n permitionEnum = PermitionEnum;\r\n havePermition = HavePermition;\r\n editorStatus = false;\r\n\r\n get isAdmin() : boolean {\r\n return this.havePermition(this.getCurrentUser.permissions,\r\n this.permitionEnum[this.permitionEnum.AdminPrivilege]);\r\n }\r\n\r\n sticky = false;\r\n\r\n save() {\r\n if (!this.isAdmin) this.$emit(\"save\", true);\r\n else this.$emit(\"save\", false);\r\n }\r\n\r\n saveAndBack() {\r\n this.$emit(\"save\", true);\r\n }\r\n\r\n back() {\r\n this.$emit(\"back\");\r\n }\r\n\r\n // header component is detroyed and rebuilt in every page load\r\n // so watchers are unless in this case\r\n mounted() {\r\n this.editorStatus = this.$route.name === \"editorupdatechannel\";\r\n }\r\n\r\n get showSaveButton(): boolean {\r\n return this.checkPermition !== null && this.checkPermition !== undefined\r\n ? this.havePermition(this.getCurrentUser.permissions, this.permitionEnum[this.checkPermition]) : true;\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HeaderActionButtons.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HeaderActionButtons.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./HeaderActionButtons.vue?vue&type=template&id=1317f3f0&scoped=true&\"\nimport script from \"./HeaderActionButtons.vue?vue&type=script&lang=ts&\"\nexport * from \"./HeaderActionButtons.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./HeaderActionButtons.vue?vue&type=style&index=0&id=1317f3f0&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 \"1317f3f0\",\n null\n \n)\n\nexport default component.exports","import { Solution } from \"@/services/solutions/types\";\r\nimport { RecurenceEnum } from \"@/services/posts/types\";\r\n\r\nexport interface PowerPlan\r\n{\r\n id: string;\r\n name: string;\r\n numberOfSolutions: number;\r\n}\r\n\r\nexport interface PowerPlanEvent{\r\n id: string;\r\n name: string;\r\n powerPlanId: string;\r\n type: PowerPlanEventType | null,\r\n fromDate: string;\r\n toDate: string;\r\n fromTime: string;\r\n toTime: string;\r\n allDay: boolean;\r\n neverending: boolean;\r\n recurenceType: RecurenceEnum;\r\n recurenceValues: Array;\r\n yearly: string;\r\n}\r\n\r\nexport interface PowerPlanDetails{\r\n id: string;\r\n name: string;\r\n solutions: Solution[];\r\n events: PowerPlanEvent[];\r\n}\r\n\r\nexport interface PowerPlanEventFilter{\r\n powerPlanId: string;\r\n calendarDate: string;\r\n}\r\n\r\nexport interface ActiveDaysRequest {\r\n powerPlanId: string;\r\n calendarStartDate: Date;\r\n}\r\n\r\nexport enum PowerPlanEventType{\r\n On,\r\n ForceOff,\r\n MaintenanceTime\r\n}\r\n\r\nexport interface SolutionsUsingPowerPlan{\r\n solutionId: string,\r\n solutionName: string,\r\n userHasAccessToSolution: boolean\r\n}\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!./SolutionInfoModal.vue?vue&type=style&index=0&id=163275dc&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!./SolutionInfoModal.vue?vue&type=style&index=0&id=163275dc&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!./PostScheduleValidation.vue?vue&type=style&index=0&id=433a2aba&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!./PostScheduleValidation.vue?vue&type=style&index=0&id=433a2aba&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('header',{staticClass:\"page-header\"},[_c('div',{staticClass:\"d-flex justify-content-between\"},[_c('vsc-name-input',{attrs:{\"placeholder\":_vm.$t('powerPlan.enterNameLabel'),\"validator\":_vm.validators.name},model:{value:(_vm.powerPlan.name),callback:function ($$v) {_vm.$set(_vm.powerPlan, \"name\", $$v)},expression:\"powerPlan.name\"}}),_c('div',[_c('HeaderActionButtons',{on:{\"back\":_vm.back,\"save\":_vm.save}})],1)],1)]),_c('div',{staticClass:\"vertical-draggableElements-wrapper\"},[_c('b-form',{attrs:{\"autocomplete\":\"off\"}},_vm._l((_vm.components),function(component){return _c('div',{key:component.componentName,class:{'active-drop-target': component.activeDropTarget},attrs:{\"id\":component.componentName},on:{\"dragend\":_vm.dragEnd,\"dragleave\":_vm.dragLeave,\"dragover\":_vm.dragOver,\"drop\":_vm.swapComponents}},[_c('div',{ref:component.componentName,refInFor:true,staticClass:\"panel\"},[_c('header',{staticClass:\"panel-header\"},[_c('div',{staticClass:\"d-flex\"},[_c('h4',[_vm._v(_vm._s(component.sectionName))]),_c('div',[_c('button',{directives:[{name:\"b-toggle\",rawName:\"v-b-toggle\",value:((\"collapse-\" + (component.componentName))),expression:\"`collapse-${component.componentName}`\"}],staticClass:\"collapse-btn\",attrs:{\"type\":\"button\"}},[_c('svg',{staticClass:\"vc-icon_sm mr-3\",attrs:{\"viewBox\":\"0 0 100 100\"}},[_c('use',{attrs:{\"xlink:href\":\"#shevron-down-icon\"}})])])])]),_c('button',{staticClass:\"panel-reorder-btn\",attrs:{\"type\":\"button\",\"id\":component.componentName,\"draggable\":\"true\"},on:{\"dragstart\":_vm.drag}},[_c('svg',{staticClass:\"vc-icon\",attrs:{\"viewBox\":\"0 0 100 100\"}},[_c('use',{attrs:{\"xlink:href\":\"#draggable-icon\"}})])])]),_c(component.componentName,{ref:\"childComponent\",refInFor:true,tag:\"component\",attrs:{\"power-plan-id\":_vm.localId,\"collapse-state\":component.collapseState,\"solutions\":_vm.powerPlan.solutions},on:{\"componentStateChanged\":_vm.onComponentStateChanged,\"solutionsUpdated\":_vm.onSolutionsUpdated}})],1)])}),0)],1),_c('unsaved-form-modal',{ref:\"UnsavedFormModal\",on:{\"continue\":_vm.onContinue}})],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('b-collapse',{attrs:{\"visible\":_vm.localCollapseState,\"id\":\"collapse-PowerPlanEvents\"},on:{\"hide\":function($event){return _vm.setState(false)},\"show\":function($event){return _vm.setState(true)}}},[_c('div',{staticClass:\"panel-body\"},[_c('b-row',[_c('b-col',{attrs:{\"cols\":\"12\"}},[_c('b-button',{staticClass:\"float-right ml-2\",attrs:{\"variant\":\"primary\"},on:{\"click\":function($event){return _vm.addEvent()}}},[_vm._v(_vm._s(_vm.$t(\"powerPlanEvent.new\")))]),_c('div',{staticClass:\"table-top-actions\"},[_c('div',{staticClass:\"actions-btn-wrapper\"},[_c('div',{staticClass:\"content-search\"},[_c('b-form-input',{staticClass:\"form-control form-control-sm\",attrs:{\"placeholder\":_vm.$t('common.search')},model:{value:(_vm.searchQuery),callback:function ($$v) {_vm.searchQuery=$$v},expression:\"searchQuery\"}}),_c('button',{staticClass:\"search-btn btn btn-sm\",attrs:{\"type\":\"submit\"}},[_c('svg',{staticClass:\"vc-icon\",attrs:{\"viewBox\":\"0 0 100 100\"}},[_c('use',{attrs:{\"xlink:href\":\"#search-icon\"}})])]),_c('button',{staticClass:\"search-clear btn btn-sm\",on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();},\"mousedown\":function($event){$event.preventDefault();_vm.searchQuery = ''}}},[_c('svg',{staticClass:\"vc-icon\",attrs:{\"viewBox\":\"0 0 100 100\"}},[_c('use',{attrs:{\"xlink:href\":\"#close-icon\"}})])])],1)])]),_c('div',{staticClass:\"table-with-sidebar-wrapper\"},[_c('div',{staticClass:\"table-sidebar custom-scrollbar darkScroll-whiteBg\",class:{\n open: _vm.showCalendar}},[_c('div',[_c('div',{staticClass:\"position-relative\"},[_c('div',{staticClass:\"d-flex justify-content-end ts-header\"},[_c('button',{staticClass:\"toggle-ft-sidebar btn btn-only-icon\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.toggleCalendar}},[_c('svg',{staticClass:\"vc-icon_xs icon-close\",attrs:{\"viewBox\":\"0 0 100 100\"}},[_c('use',{attrs:{\"xlink:href\":\"#close-icon\"}})]),_c('svg',{staticClass:\"vc-icon_lg icon-open\",attrs:{\"viewBox\":\"0 0 100 100\"}},[_c('use',{attrs:{\"xlink:href\":\"#calendar-icon\"}})])])]),_c('div',{staticClass:\"calendar-table-sidebar\"},[_c('functional-calendar',{ref:\"calendar\",staticClass:\"calendar-custom-style\",attrs:{\"calendars-count\":2,\"is-date-picker\":true,\"is-multiple\":true,\"marked-dates\":_vm.markedDates,\"month-names\":_vm.calendarConfigs.monthNames,\"day-names\":_vm.calendarConfigs.dayNames},on:{\"changedMonth\":_vm.changedMonth,\"dayClicked\":_vm.dayClicked},model:{value:(_vm.calendar),callback:function ($$v) {_vm.calendar=$$v},expression:\"calendar\"}})],1)])])]),_c('div',{staticClass:\"table-wrapper custom-scrollbar darkScroll-grayBg\"},[_c('b-table',{staticClass:\"thead-sticky\",attrs:{\"busy\":_vm.isBusy,\"fields\":_vm.fields,\"items\":_vm.filteredData,\"tbody-tr-class\":\"vsc-list-item\",\"head-variant\":\"light\",\"hover\":\"\",\"primary-key\":\"id\",\"responsive\":\"xxxl\",\"show-empty\":\"\"},scopedSlots:_vm._u([{key:\"table-busy\",fn:function(){return [_c('div',{staticClass:\"text-center text-danger my-2\"},[_c('b-spinner',{attrs:{\"label\":\"Spinning\",\"type\":\"grow\",\"variant\":\"primary\"}})],1)]},proxy:true},{key:\"empty\",fn:function(scope){return [_c('h4',{staticClass:\"text-center\"},[_vm._v(_vm._s(_vm.$t(\"common.emptyTable\")))])]}},{key:\"cell(name)\",fn:function(row){return [_c('b-button',{staticClass:\"btn-only-icon goto-item\",on:{\"click\":function($event){return _vm.openEditEventPrompt(row.item)}}},[_c('span',{staticClass:\"vsc-list-item-name goToArrow\"},[_vm._v(_vm._s(row.item.name))])])]}},{key:\"cell(timeInterval)\",fn:function(row){return [(row.item.allDay)?_c('span',[_vm._v(_vm._s(_vm.$t(\"common.allday\")))]):(row.item.fromTime.length > 0 && row.item.toTime.length > 0)?_c('span',[_vm._v(_vm._s(_vm.parseTime(row.item.fromTime))+\" - \"+_vm._s(_vm.parseTime(row.item.toTime)))]):_vm._e(),(row.item.recurenceType === _vm.RecurenceEnum.weekly)?_c('span',_vm._l((_vm.getWeeklyRecurenceDays(row.item)),function(recurence){return _c('span',{key:recurence},[_vm._v(\", \"+_vm._s(_vm.$t(recurence)))])}),0):(row.item.recurenceType === _vm.RecurenceEnum.monthly)?_c('span',[_vm._v(\", \"+_vm._s(_vm.$t(\"posts.daysOfTheMonth\", { listOfDays: _vm.getMonthlyRecurenceDays(row.item) })))]):_vm._e()]}},{key:\"cell(fromDate)\",fn:function(row){return [_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.getFromDateLabel(row.item))}})]}},{key:\"cell(toDate)\",fn:function(row){return [_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.getToDateLabel(row.item))}})]}},{key:\"cell(actions)\",fn:function(row){return [_c('div',{staticClass:\"d-flex justify-content-end\"},[_c('b-button',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover\",modifiers:{\"hover\":true}}],staticClass:\"btn-only-icon\",attrs:{\"title\":_vm.$t('common.remove')},on:{\"click\":function($event){return _vm.removeEvent(row.item)}}},[_c('svg',{staticClass:\"vc-icon_md\",attrs:{\"viewBox\":\"0 0 100 100\"}},[_c('use',{attrs:{\"xlink:href\":\"#close-icon\"}})])])],1)]}}])})],1)])],1)],1)],1),_c('power-plan-event-create-and-update-modal',{ref:\"eventCreateAndUpdateModal\",attrs:{\"power-plan-id\":_vm.powerPlanId},on:{\"reload\":_vm.reloadEventList}}),_c('power-plan-event-delete-modal',{ref:\"powerPlanEventDeleteModal\",on:{\"reload\":_vm.reloadEventList}})],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('b-modal',{attrs:{\"centered\":\"\",\"id\":\"modal-powerPlanEventCreateAndUpdate\",\"content-class\":\"bg-gray-1\",\"size\":\"custom\",\"title\":_vm.isEdit ? _vm.$t('powerPlanEvent.editTitle')\n :_vm.$t('powerPlanEvent.newTitle')},scopedSlots:_vm._u([{key:\"modal-footer\",fn:function(){return [_c('b-button',{attrs:{\"variant\":\"primary\"},on:{\"click\":_vm.save}},[_vm._v(_vm._s(_vm.$t(\"common.save\")))])]},proxy:true}])},[_c('b-form',[_c('div',{staticClass:\"vsc-form-control align-items-center fixed-input-width\"},[_c('label',{staticClass:\"custom-label mt-3 mr-5\"},[_vm._v(_vm._s(_vm.$t(\"common.name\"))+\":\")]),_c('div',{staticClass:\"custom-align\"},[_c('b-form-input',{directives:[{name:\"validate\",rawName:\"v-validate\",value:(_vm.event.name),expression:\"event.name\"}],staticClass:\"vsc-input\",attrs:{\"placeholder\":_vm.$t('powerPlanEvent.enterName'),\"id\":\"name\",\"name\":\"name\",\"state\":_vm.validators.name.state},model:{value:(_vm.event.name),callback:function ($$v) {_vm.$set(_vm.event, \"name\", $$v)},expression:\"event.name\"}}),_c('b-form-invalid-feedback',{staticClass:\"invalid-feedback\"},[_vm._v(_vm._s(_vm.validators.name.message))])],1)]),_c('div',{staticClass:\"vsc-form-control align-items-center fixed-input-width\"},[_c('label',{staticClass:\"custom-label mt-3 mr-5\"},[_vm._v(_vm._s(_vm.$t(\"common.type\"))+\":\")]),_c('b-form-select',{staticClass:\"vsc-input\",attrs:{\"options\":_vm.eventTypes,\"text-field\":\"name\",\"id\":\"type\",\"name\":\"type\",\"value-field\":\"id\"},model:{value:(_vm.event.type),callback:function ($$v) {_vm.$set(_vm.event, \"type\", $$v)},expression:\"event.type\"}})],1),_c('div',{staticClass:\"d-flex\"},[_c('div',{staticClass:\"schedule-fixed-width\"},[_c('span',{staticClass:\"custom-label mt-3 mr-5\"},[_vm._v(_vm._s(_vm.$t(\"common.schedule\"))+\":\")])]),_c('power-plan-event-schedule',{ref:\"eventSchedule\",attrs:{\"item\":_vm.event},on:{\"scheduleUpdated\":_vm.onScheduleUpdated}})],1)])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { ActiveDaysRequest, PowerPlanEvent, PowerPlanEventFilter } from \"@/services/powerPlans/types\";\r\nimport api from \"@/services/api\";\r\n\r\nexport function getPowerPlanEvents(request: PowerPlanEventFilter) : Promise {\r\n return new Promise((resolve, reject) => {\r\n api.post(\"/powerPlanEvents/events\", request).then(\r\n response => {\r\n resolve(response.data);\r\n },\r\n error => {\r\n reject(error);\r\n }\r\n );\r\n });\r\n}\r\n\r\nexport function getActiveDays(request: ActiveDaysRequest) : Promise {\r\n return new Promise((resolve, reject) => {\r\n api.post(\"/powerPlanEvents/activeDays\", request).then(\r\n response => {\r\n resolve(response.data);\r\n },\r\n error => {\r\n reject(error);\r\n }\r\n );\r\n });\r\n}\r\n\r\nexport function getEvent(id: string): Promise {\r\n return new Promise((resolve, reject) => {\r\n api.get(`/powerPlanEvents/${id}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error);\r\n });\r\n });\r\n}\r\n\r\nexport function createEvent(eventData: PowerPlanEvent): Promise {\r\n return new Promise((resolve, reject) => {\r\n api.post(\"/powerPlanEvents\", eventData)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error);\r\n console.log(\"error, what happening?\", error);\r\n });\r\n });\r\n}\r\n\r\nexport function updateEvent(id: string, eventData: any): Promise {\r\n return new Promise((resolve, reject) => {\r\n api.put(`/powerPlanEvents/${id}`, eventData)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error);\r\n });\r\n });\r\n}\r\n\r\nexport function deleteEvent(id: string): Promise {\r\n return new Promise((resolve, reject) => {\r\n api.delete(`/powerPlanEvents/${id}`).then(\r\n response => {\r\n resolve(response.data);\r\n },\r\n error => {\r\n reject(error);\r\n }\r\n );\r\n });\r\n}\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"schedule-wrapper\"},[_c('div',{staticClass:\"form-group d-flex flex-wrap\"},[_c('span',[_c('b-dropdown',{staticClass:\"schedule-dropdown\",scopedSlots:_vm._u([{key:\"button-content\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.fromDateLabel)+\" \"),_c('span',{staticClass:\"dropdownarrow\"},[_c('svg',{staticClass:\"vc-icon_lg\",attrs:{\"viewBox\":\"0 0 100 100\"}},[_c('use',{attrs:{\"xlink:href\":\"#shevron-down-icon\"}})])])]},proxy:true}])},[_c('functional-calendar',{ref:\"calendarFromDate\",staticClass:\"calendar-custom-style\",attrs:{\"is-date-picker\":true,\"marked-dates\":_vm.markedDates,\"month-names\":_vm.calendarConfigs.monthNames,\"day-names\":_vm.calendarConfigs.dayNames},on:{\"changedMonth\":_vm.changedMonth},model:{value:(_vm.fromDate),callback:function ($$v) {_vm.fromDate=$$v},expression:\"fromDate\"}})],1)],1),_c('span',{staticClass:\"schedule-arrow\"},[_c('svg',{staticClass:\"vc-icon_lg\",staticStyle:{\"width\":\"14px\",\"fill\":\"#666\"},attrs:{\"viewBox\":\"0 0 100 100\"}},[_c('use',{attrs:{\"xlink:href\":\"#arrow-right-icon\"}})])]),_c('span',[_c('b-dropdown',{staticClass:\"schedule-dropdown\",scopedSlots:_vm._u([{key:\"button-content\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.toDateLabel)+\" \"),_c('span',{staticClass:\"dropdownarrow\"},[_c('svg',{staticClass:\"vc-icon_lg\",attrs:{\"viewBox\":\"0 0 100 100\"}},[_c('use',{attrs:{\"xlink:href\":\"#shevron-down-icon\"}})])])]},proxy:true}])},[_c('div',{staticStyle:{\"padding-left\":\"13px\"}},[_c('b-form-checkbox',{attrs:{\"id\":\"neverending\",\"inline\":\"\",\"name\":\"neverending\"},on:{\"change\":_vm.onNeverEndingChange},model:{value:(_vm.item.neverending),callback:function ($$v) {_vm.$set(_vm.item, \"neverending\", $$v)},expression:\"item.neverending\"}},[_vm._v(_vm._s(_vm.$t(\"posts.neverending\")))])],1),_c('functional-calendar',{ref:\"calendarToDate\",staticClass:\"calendar-custom-style\",attrs:{\"is-date-picker\":true,\"marked-dates\":_vm.markedDates,\"month-names\":_vm.calendarConfigs.monthNames,\"day-names\":_vm.calendarConfigs.dayNames},on:{\"changedMonth\":_vm.changedMonth,\"dayClicked\":_vm.dayClicked},model:{value:(_vm.toDate),callback:function ($$v) {_vm.toDate=$$v},expression:\"toDate\"}})],1)],1),_c('span',[_c('b-dropdown',{staticClass:\"schedule-dropdown multipleSelectionWidth\",staticStyle:{\"max-width\":\"200px\"},scopedSlots:_vm._u([{key:\"button-content\",fn:function(){return [_c('span',{staticClass:\"dateBox\"},[_vm._v(\" \"+_vm._s(_vm.getRecurenceDropdownLabel())+\" \")]),_c('span',{staticClass:\"dropdownarrow\"},[_c('svg',{staticClass:\"vc-icon_lg\",attrs:{\"viewBox\":\"0 0 100 100\"}},[_c('use',{attrs:{\"xlink:href\":\"#shevron-down-icon\"}})])])]},proxy:true}])},[_c('div',{staticClass:\"form-group dropdownRow\",staticStyle:{\"width\":\"240px\"}},[_c('b-form-radio',{attrs:{\"name\":_vm.recurenceEnum[_vm.recurenceEnum.daily],\"value\":_vm.recurenceEnum.daily,\"inline\":\"\"},on:{\"change\":_vm.recurenceTypeChanged},model:{value:(_vm.item.recurenceType),callback:function ($$v) {_vm.$set(_vm.item, \"recurenceType\", $$v)},expression:\"item.recurenceType\"}},[_vm._v(_vm._s(_vm.$t(\"posts.daily\")))]),_c('b-form-radio',{attrs:{\"name\":_vm.recurenceEnum[_vm.recurenceEnum.weekly],\"value\":_vm.recurenceEnum.weekly,\"inline\":\"\"},on:{\"change\":_vm.recurenceTypeChanged},model:{value:(_vm.item.recurenceType),callback:function ($$v) {_vm.$set(_vm.item, \"recurenceType\", $$v)},expression:\"item.recurenceType\"}},[_vm._v(_vm._s(_vm.$t(\"posts.weekly\"))+\" \")]),_c('div',[( _vm.item.recurenceType == _vm.recurenceEnum.weekly)?_c('b-form-checkbox-group',{staticClass:\"pickerGroup\",attrs:{\"label\":_vm.$t('posts.days'),\"buttons\":\"\",\"button-variant\":\"primary\"},model:{value:(_vm.item.recurenceValues),callback:function ($$v) {_vm.$set(_vm.item, \"recurenceValues\", $$v)},expression:\"item.recurenceValues\"}},[_c('b-form-checkbox',{attrs:{\"name\":\"monday\",\"value\":_vm.weekdaysEnum.monday}},[_vm._v(\" \"+_vm._s(_vm.$t(\"posts.monday\"))+\" \")]),_c('b-form-checkbox',{attrs:{\"name\":\"tuesday\",\"value\":_vm.weekdaysEnum.tuesday}},[_vm._v(\" \"+_vm._s(_vm.$t(\"posts.tuesday\"))+\" \")]),_c('b-form-checkbox',{attrs:{\"name\":\"wednesday\",\"value\":_vm.weekdaysEnum.wednesday}},[_vm._v(\" \"+_vm._s(_vm.$t(\"posts.wednesday\"))+\" \")]),_c('b-form-checkbox',{attrs:{\"name\":\"thursday\",\"value\":_vm.weekdaysEnum.thursday}},[_vm._v(\" \"+_vm._s(_vm.$t(\"posts.thursday\"))+\" \")]),_c('b-form-checkbox',{attrs:{\"name\":\"friday\",\"value\":_vm.weekdaysEnum.friday}},[_vm._v(\" \"+_vm._s(_vm.$t(\"posts.friday\"))+\" \")]),_c('b-form-checkbox',{attrs:{\"name\":\"saturday\",\"value\":_vm.weekdaysEnum.saturday}},[_vm._v(\" \"+_vm._s(_vm.$t(\"posts.saturday\"))+\" \")]),_c('b-form-checkbox',{attrs:{\"name\":\"sunday\",\"value\":_vm.weekdaysEnum.sunday}},[_vm._v(\" \"+_vm._s(_vm.$t(\"posts.sunday\"))+\" \")])],1):_vm._e()],1),_c('b-form-radio',{attrs:{\"name\":_vm.recurenceEnum[_vm.recurenceEnum.monthly],\"value\":_vm.recurenceEnum.monthly,\"inline\":\"\"},on:{\"change\":_vm.recurenceTypeChanged},model:{value:(_vm.item.recurenceType),callback:function ($$v) {_vm.$set(_vm.item, \"recurenceType\", $$v)},expression:\"item.recurenceType\"}},[_vm._v(_vm._s(_vm.$t(\"posts.monthly\")))]),_c('div',[(_vm.item.recurenceType == _vm.recurenceEnum.monthly)?_c('b-form-checkbox-group',{staticClass:\"pickerGroup\",attrs:{\"label\":_vm.$t('posts.dates'),\"buttons\":\"\",\"button-variant\":\"primary\"},model:{value:(_vm.item.recurenceValues),callback:function ($$v) {_vm.$set(_vm.item, \"recurenceValues\", $$v)},expression:\"item.recurenceValues\"}},_vm._l((_vm.datesOfMonth),function(date){return _c('b-form-checkbox',{key:date,attrs:{\"value\":date}},[_vm._v(_vm._s(date))])}),1):_vm._e()],1),_c('b-form-radio',{attrs:{\"name\":_vm.recurenceEnum[_vm.recurenceEnum.yearly],\"value\":_vm.recurenceEnum.yearly,\"inline\":\"\"},on:{\"change\":_vm.recurenceTypeChanged},model:{value:(_vm.item.recurenceType),callback:function ($$v) {_vm.$set(_vm.item, \"recurenceType\", $$v)},expression:\"item.recurenceType\"}},[_vm._v(_vm._s(_vm.$t(\"posts.yearly\")))]),(_vm.item.recurenceType == _vm.recurenceEnum.yearly)?_c('div',[_c('functional-calendar',{ref:\"calendarYearly\",staticClass:\"calendar-custom-style\",attrs:{\"is-date-picker\":true,\"month-names\":_vm.calendarConfigs.monthNames,\"day-names\":_vm.calendarConfigs.dayNames},model:{value:(_vm.yearly),callback:function ($$v) {_vm.yearly=$$v},expression:\"yearly\"}})],1):_vm._e()],1)])],1),_c('span',[_c('b-dropdown',{staticClass:\"schedule-dropdown\",scopedSlots:_vm._u([{key:\"button-content\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.timeLabel)+\" \"),_c('span',{staticClass:\"dropdownarrow\"},[_c('svg',{staticClass:\"vc-icon_lg\",attrs:{\"viewBox\":\"0 0 100 100\"}},[_c('use',{attrs:{\"xlink:href\":\"#shevron-down-icon\"}})])])]},proxy:true}])},[_c('div',{staticClass:\"form-group dropdownRow\"},[_c('b-form-checkbox',{attrs:{\"id\":\"allday\",\"inline\":\"\",\"name\":\"allday\"},model:{value:(_vm.item.allDay),callback:function ($$v) {_vm.$set(_vm.item, \"allDay\", $$v)},expression:\"item.allDay\"}},[_vm._v(_vm._s(_vm.$t(\"common.allday\")))])],1),_c('div',{staticClass:\"form-group dropdownRow\"},[_c('p',[_vm._v(\"Start time\")]),_c('div',{staticClass:\"select-editable\"},[_c('b-dropdown',{staticClass:\"select-dropdown\",attrs:{\"disabled\":_vm.item.allDay},scopedSlots:_vm._u([{key:\"button-content\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.fromTime)+\" \"),_c('span',{staticClass:\"dropdownarrow\"},[_c('svg',{staticClass:\"vc-icon_lg\",staticStyle:{\"margin-top\":\"-2px\"},attrs:{\"viewBox\":\"0 0 100 100\"}},[_c('use',{attrs:{\"xlink:href\":\"#shevron-down-icon\"}})])])]},proxy:true}])},[_vm._l((_vm.time),function(item){return [_c('b-dropdown-item',{key:item.toString(),class:{ active: item === _vm.fromTime},on:{\"click\":function($event){_vm.fromTime = item}}},[_vm._v(_vm._s(item))])]})],2),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.fromTime),expression:\"fromTime\"},{name:\"show\",rawName:\"v-show\",value:(!_vm.item.allDay),expression:\"!item.allDay\"}],attrs:{\"disabled\":_vm.item.allDay,\"type\":\"text\",\"name\":\"format\"},domProps:{\"value\":(_vm.fromTime)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.fromTime=$event.target.value}}})],1)]),_c('div',{staticClass:\"form-group dropdownRow\"},[_c('p',[_vm._v(\"End time\")]),_c('div',{staticClass:\"select-editable\"},[_c('b-dropdown',{staticClass:\"select-dropdown\",attrs:{\"disabled\":_vm.item.allDay},scopedSlots:_vm._u([{key:\"button-content\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.toTime)+\" \"),_c('span',{staticClass:\"dropdownarrow\"},[_c('svg',{staticClass:\"vc-icon_lg\",staticStyle:{\"margin-top\":\"-2px\"},attrs:{\"viewBox\":\"0 0 100 100\"}},[_c('use',{attrs:{\"xlink:href\":\"#shevron-down-icon\"}})])])]},proxy:true}])},[_vm._l((_vm.time),function(item){return [_c('b-dropdown-item',{key:item.toString(),class:{ active: item === _vm.toTime},on:{\"click\":function($event){_vm.toTime = item}}},[_vm._v(_vm._s(item))])]})],2),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.toTime),expression:\"toTime\"},{name:\"show\",rawName:\"v-show\",value:(!_vm.item.allDay),expression:\"!item.allDay\"}],attrs:{\"disabled\":_vm.item.allDay,\"type\":\"text\",\"name\":\"format\"},domProps:{\"value\":(_vm.toTime)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.toTime=$event.target.value}}})],1)])])],1)]),_c('schedule-validation',{ref:\"validation\",attrs:{\"item\":this.item}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import i18n from \"@/i18n\";\r\nimport { PowerPlanEvent } from \"@/services/powerPlans/types\";\r\nimport moment from \"moment\";\r\n\r\nexport function powerPlanEventFromDate(powerPlanEvent: PowerPlanEvent): string {\r\n return i18n.d(new Date(powerPlanEvent.fromDate), \"short\");\r\n}\r\n\r\nexport function powerPlanEventToDate(powerPlanEvent: PowerPlanEvent): string {\r\n if (powerPlanEvent.neverending) {\r\n return i18n.t(\"posts.neverending\") as string;\r\n } else if (powerPlanEvent.toDate) {\r\n return i18n.d(new Date(powerPlanEvent.toDate), \"short\");\r\n } else {\r\n return i18n.t(\"posts.selectEndDate\") as string;\r\n }\r\n}\r\n\r\nexport function powerPlanEventTimeSpan(powerPlanEvent: PowerPlanEvent): string {\r\n if (powerPlanEvent.allDay) {\r\n return i18n.t(\"common.allday\").toString();\r\n } else {\r\n return moment(powerPlanEvent.fromTime, \"hh mm\").format(\"HH:mm\") +\r\n \" - \" + moment(powerPlanEvent.toTime, \"hh mm\").format(\"HH:mm\");\r\n }\r\n}\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\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\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 { RecurenceEnum, WeekdaysEnum, DatesOfMonth, MarkedDay, Time } from \"@/services/posts/types\";\r\nimport FunctionalCalendar from \"vue-functional-calendar/src/components/FunctionalCalendar.vue\";\r\nimport ScheduleValidation from \"@/components/posts/PostScheduleValidation.vue\";\r\nimport i18n from \"@/i18n\";\r\nimport { ActiveDaysRequest, PowerPlanEvent } from \"@/services/powerPlans/types\";\r\nimport { getActiveDays } from \"@/services/powerPlans/powerPlanEventService\";\r\nimport { calendarConfigs } from \"@/services/functional-calendar\";\r\nimport { powerPlanEventFromDate, powerPlanEventToDate, powerPlanEventTimeSpan } from \"./powerPlanFormatting\";\r\n\r\n@Component({\r\n components: {\r\n \"functional-calendar\": FunctionalCalendar,\r\n \"schedule-validation\": ScheduleValidation\r\n }\r\n})\r\nexport default class PowerPlanEventSchedule extends Vue {\r\n @Prop() private item!: PowerPlanEvent;\r\n recurenceEnum = RecurenceEnum;\r\n weekdaysEnum = WeekdaysEnum;\r\n datesOfMonth = DatesOfMonth;\r\n markedDates = [] as Array;\r\n defaultFromTime = \"08:00\";\r\n defaultToTime = \"16:00\";\r\n zeroTime = \"00:00\";\r\n time = Time\r\n showCalendar = true;\r\n isSelectDropdownVisible = false;\r\n\r\n // lifecycle hooks\r\n mounted() {\r\n const fromDate = !this.item.fromDate ? new Date() : new Date(this.item.fromDate);\r\n (this.$refs.calendarFromDate as any).clickDay({\r\n day: fromDate.getDate(),\r\n date: `${fromDate.getDate()}/${fromDate.getMonth() + 1}/${fromDate.getFullYear()}`,\r\n isMarked: true\r\n });\r\n if (this.item.toDate && !this.item.neverending) {\r\n const toDate = new Date(this.item.toDate);\r\n (this.$refs.calendarToDate as any).clickDay({\r\n day: toDate.getDate(),\r\n date: `${toDate.getDate()}/${toDate.getMonth() + 1}/${toDate.getFullYear()}`,\r\n isMarked: true\r\n });\r\n }\r\n if (this.item.recurenceType === this.recurenceEnum.yearly) {\r\n const date = new Date(this.item.yearly);\r\n (this.$refs.calendarYearly as any).clickDay({\r\n day: date.getDate(),\r\n date: `${date.getDate()}/${date.getMonth() + 1}/${date.getFullYear()}`,\r\n isMarked: true\r\n });\r\n }\r\n if (this.item.allDay && !this.item.fromTime && !this.item.toTime) {\r\n this.item.fromTime = this.defaultFromTime;\r\n this.item.toTime = this.defaultToTime;\r\n }\r\n\r\n // Support nested dropdowns\r\n this.$root.$on(\"bv::dropdown::show\", (bvEvent: any) => {\r\n if (bvEvent.target.parentElement.className.includes(\"select-dropdown\")) {\r\n this.isSelectDropdownVisible = true;\r\n }\r\n });\r\n this.$root.$on(\"bv::dropdown::hide\", (bvEvent: any) => {\r\n if (bvEvent.target.parentElement.className.includes(\"select-dropdown\")) {\r\n this.isSelectDropdownVisible = false;\r\n }\r\n if (this.isSelectDropdownVisible) {\r\n bvEvent.preventDefault();\r\n }\r\n });\r\n }\r\n\r\n created() {\r\n this.loadActiveDays(this.firstDayOfThisMonth);\r\n }\r\n\r\n // methods\r\n recurenceTypeChanged() {\r\n this.item.recurenceValues = [];\r\n }\r\n\r\n changedMonth(startDate: Date) {\r\n this.loadActiveDays(startDate);\r\n }\r\n\r\n loadActiveDays(startDate: Date) {\r\n if (!this.item.id) return;\r\n getActiveDays({\r\n powerPlanId: this.item.id,\r\n calendarStartDate: startDate\r\n } as ActiveDaysRequest).then(response => {\r\n let i;\r\n for (i = 0; i < this.markedDates.length; i++) {\r\n Vue.set(this.markedDates, i, {});\r\n }\r\n response.forEach((date: string, i: number) => {\r\n Vue.set(this.markedDates, i, {\r\n date: date,\r\n class: \"vfc-marked\"\r\n });\r\n });\r\n });\r\n }\r\n\r\n getRecurenceDropdownLabel() {\r\n switch (this.item.recurenceType) {\r\n case this.recurenceEnum.daily:\r\n return i18n.t(\"posts.daily\");\r\n case this.recurenceEnum.weekly:\r\n return this.getWeekDays(this.item.recurenceValues);\r\n case this.recurenceEnum.monthly:\r\n return this.item.recurenceValues.length > 0 ? this.item.recurenceValues.toString().split(\",\").join(\", \") : i18n.t(\"posts.\" + this.recurenceEnum[this.recurenceEnum.monthly]);\r\n case this.recurenceEnum.yearly:\r\n return this.item.yearly ? i18n.d(new Date(this.item.yearly), \"dayMonth\") : i18n.t(\"posts.\" + this.recurenceEnum[this.recurenceEnum.yearly]);\r\n }\r\n }\r\n\r\n getWeekDays(values: number[]) {\r\n const result = values.map(x => {\r\n switch (x) {\r\n case WeekdaysEnum.monday:\r\n return i18n.t(\"posts.monday\");\r\n case WeekdaysEnum.tuesday:\r\n return i18n.t(\"posts.tuesday\");\r\n case WeekdaysEnum.wednesday:\r\n return i18n.t(\"posts.wednesday\");\r\n case WeekdaysEnum.thursday:\r\n return i18n.t(\"posts.thursday\");\r\n case WeekdaysEnum.friday:\r\n return i18n.t(\"posts.friday\");\r\n case WeekdaysEnum.saturday:\r\n return i18n.t(\"posts.saturday\");\r\n case WeekdaysEnum.sunday:\r\n return i18n.t(\"posts.sunday\");\r\n }\r\n throw new Error(\"Not valid\");\r\n });\r\n return result.toString().split(\",\").join(\", \") || i18n.t(\"posts.weekly\");\r\n }\r\n\r\n dayClicked() {\r\n if (this.item.neverending) this.item.neverending = false;\r\n }\r\n\r\n onNeverEndingChange(value: boolean) {\r\n if (!value) {\r\n this.item.toDate = this.item.fromDate;\r\n }\r\n }\r\n // computed\r\n\r\n get firstDayOfThisMonth(): Date {\r\n const today = new Date();\r\n const month = today.getMonth();\r\n const year = today.getFullYear();\r\n return new Date(year, month, 1);\r\n }\r\n\r\n get fromDate() {\r\n return {\r\n currentDate: new Date(),\r\n selectedDate: new Date(this.item.fromDate)\r\n };\r\n }\r\n\r\n set fromDate(date: any) {\r\n const dateParts = date.selectedDate.split(\"/\");\r\n // month is 0-based, that's why we need dataParts[1] - 1\r\n const dateObject = new Date(+dateParts[2], dateParts[1] - 1, +dateParts[0]);\r\n this.item.fromDate = dateObject.toDateString();\r\n }\r\n\r\n get toDate() {\r\n return {\r\n currentDate: new Date(),\r\n selectedDate: this.item.toDate\r\n };\r\n }\r\n\r\n get fromDateLabel() {\r\n return powerPlanEventFromDate(this.item);\r\n }\r\n\r\n get toDateLabel() {\r\n return powerPlanEventToDate(this.item);\r\n }\r\n\r\n get timeLabel() {\r\n return powerPlanEventTimeSpan(this.item);\r\n }\r\n\r\n set toDate(date: any) {\r\n const dateParts = date.selectedDate.split(\"/\");\r\n // month is 0-based, that's why we need dataParts[1] - 1\r\n const dateObject = new Date(+dateParts[2], dateParts[1] - 1, +dateParts[0]);\r\n this.item.toDate = dateObject.toDateString();\r\n }\r\n\r\n get fromTime() {\r\n return this.item.fromTime ? this.item.fromTime : \"\" as any;\r\n }\r\n\r\n set fromTime(time: any) {\r\n if (!time) {\r\n return;\r\n }\r\n\r\n if (time === this.zeroTime && this.toTime === this.zeroTime) {\r\n this.item.allDay = true;\r\n this.item.toTime = this.defaultToTime;\r\n this.item.fromTime = this.defaultFromTime;\r\n return;\r\n }\r\n this.item.fromTime = time;\r\n if (this.item.allDay) this.item.allDay = false;\r\n }\r\n\r\n get toTime() {\r\n return this.item.toTime ? this.item.toTime : \"\";\r\n }\r\n\r\n set toTime(time: any) {\r\n if (!time) {\r\n return;\r\n }\r\n if (time === this.zeroTime && this.fromTime === this.zeroTime) {\r\n this.item.allDay = true;\r\n this.item.toTime = this.defaultToTime;\r\n this.item.fromTime = this.defaultFromTime;\r\n return;\r\n }\r\n this.item.toTime = time;\r\n if (this.item.allDay) this.item.allDay = false;\r\n }\r\n\r\n get yearly() {\r\n return {\r\n currentDate: new Date(),\r\n selectedDate: this.item.fromDate\r\n };\r\n }\r\n\r\n set yearly(date: any) {\r\n const dateParts = date.selectedDate.split(\"/\");\r\n // month is 0-based, that's why we need dataParts[1] - 1\r\n const dateObject = new Date(+dateParts[2], dateParts[1] - 1, +dateParts[0]);\r\n this.item.yearly = dateObject.toDateString();\r\n }\r\n\r\n get calendarConfigs() {\r\n return calendarConfigs();\r\n }\r\n\r\n checkIfFormIsValid() {\r\n this.$emit(\"scheduleUpdated\", (this.$refs.validation as any).isValid());\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PowerPlanEventSchedule.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PowerPlanEventSchedule.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PowerPlanEventSchedule.vue?vue&type=template&id=40a723f0&scoped=true&\"\nimport script from \"./PowerPlanEventSchedule.vue?vue&type=script&lang=ts&\"\nexport * from \"./PowerPlanEventSchedule.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PowerPlanEventSchedule.vue?vue&type=style&index=0&id=40a723f0&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 \"40a723f0\",\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\r\nimport { Component, Vue, Prop } from \"vue-property-decorator\";\r\nimport { PowerPlanEvent, PowerPlanEventType } from \"@/services/powerPlans/types\";\r\nimport { createEvent, updateEvent } from \"@/services/powerPlans/powerPlanEventService\";\r\nimport PowerPlanEventSchedule from \"@/components/powerPlans/PowerPlanEventSchedule.vue\";\r\nimport { RecurenceEnum } from \"@/services/posts/types\";\r\nimport i18n from \"@/i18n\";\r\nimport { ValidationModel, ValidationType } from \"@/services/validation/types\";\r\nimport { validateForm } from \"@/services/validation/validationService\";\r\nimport validate from \"@/directives/validate\";\r\nimport moment from \"moment\";\r\n\r\n@Component({\r\n components: { PowerPlanEventSchedule },\r\n directives: { validate }\r\n})\r\nexport default class powerPlanEventCreateAndUpdate extends Vue {\r\n @Prop() powerPlanId!: string;\r\n event = {\r\n fromDate: new Date().toDateString(),\r\n toDate: \"\",\r\n fromTime: \"08:00\",\r\n toTime: \"16:00\",\r\n neverending: true,\r\n allDay: true,\r\n recurenceType: RecurenceEnum.daily,\r\n recurenceValues: [] as Number[],\r\n yearly: \"\",\r\n type: PowerPlanEventType.On\r\n } as PowerPlanEvent;\r\n\r\n saveClicked = false;\r\n isEdit = false;\r\n scheduleValid = false;\r\n eventTypes: any = Object.keys(PowerPlanEventType).filter(key => !isNaN(Number(key))).map(key => ({\r\n name: i18n.t(`powerPlanEvent.${PowerPlanEventType[Number(key)]}`),\r\n id: key\r\n }));\r\n\r\n validators = {\r\n name: {\r\n rules: [\r\n { type: ValidationType.Required }\r\n ]\r\n } as ValidationModel\r\n };\r\n\r\n onScheduleUpdated(isValid: boolean) {\r\n this.scheduleValid = isValid;\r\n }\r\n\r\n async save() {\r\n if (this.saveClicked) return;\r\n\r\n this.saveClicked = true;\r\n\r\n (this.$refs.eventSchedule as any).checkIfFormIsValid();\r\n if (!this.scheduleValid || !await validateForm([this.validators])) {\r\n this.saveClicked = false;\r\n return;\r\n }\r\n\r\n this.formatTime();\r\n this.event.powerPlanId = this.powerPlanId;\r\n\r\n if (!this.event.id) {\r\n createEvent(this.event as PowerPlanEvent).then((id: any) => {\r\n this.event.id = id;\r\n this.$emit(\"reload\");\r\n this.saveClicked = false;\r\n });\r\n } else {\r\n updateEvent(this.event.id, this.event).then(() => {\r\n this.$emit(\"reload\");\r\n this.saveClicked = false;\r\n });\r\n }\r\n this.resetForm();\r\n this.$bvModal.hide(\"modal-powerPlanEventCreateAndUpdate\");\r\n }\r\n\r\n formatTime() {\r\n if (this.event.fromDate.length === 0) { return; }\r\n\r\n const startDate = new Date(this.event.fromDate);\r\n\r\n if (this.event.fromTime && this.event.fromTime.length > 0) {\r\n const startTime = this.event.fromTime.split(\":\");\r\n const startDateTime = new Date(startDate.getFullYear(), startDate.getMonth(), startDate.getDate(), Number(startTime[0]), Number(startTime[1]));\r\n this.event.fromTime = moment(startDateTime).format(\"YYYY-MM-DDTHH:mm:ss\");\r\n }\r\n\r\n if (this.event.toTime && this.event.toTime.length > 0) {\r\n const endTime = this.event.toTime.split(\":\");\r\n const endDateTime = new Date(startDate.getFullYear(), startDate.getMonth(), startDate.getDate(), Number(endTime[0]), Number(endTime[1]));\r\n this.event.toTime = moment(endDateTime).format(\"YYYY-MM-DDTHH:mm:ss\");\r\n }\r\n }\r\n\r\n resetForm() {\r\n this.isEdit = false;\r\n this.event = {\r\n fromDate: new Date().toDateString(),\r\n toDate: \"\",\r\n fromTime: \"08:00\",\r\n toTime: \"16:00\",\r\n neverending: true,\r\n allDay: true,\r\n recurenceType: RecurenceEnum.daily,\r\n recurenceValues: [] as Number[],\r\n yearly: \"\",\r\n type: PowerPlanEventType.On\r\n } as PowerPlanEvent;\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PowerPlanEventCreateAndUpdateModal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PowerPlanEventCreateAndUpdateModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PowerPlanEventCreateAndUpdateModal.vue?vue&type=template&id=62d4a637&scoped=true&\"\nimport script from \"./PowerPlanEventCreateAndUpdateModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./PowerPlanEventCreateAndUpdateModal.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PowerPlanEventCreateAndUpdateModal.vue?vue&type=style&index=0&id=62d4a637&lang=scss&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 \"62d4a637\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-modal',{attrs:{\"centered\":\"\",\"id\":\"modal-deleteEvent\"},on:{\"hide\":_vm.removeEvent},scopedSlots:_vm._u([{key:\"modal-footer\",fn:function(){return [_c('b-button',{attrs:{\"variant\":\"primary\"},on:{\"click\":_vm.confirm}},[_vm._v(_vm._s(_vm.$t(\"common.btnYes\")))]),_c('b-button',{attrs:{\"variant\":\"dark\"},on:{\"click\":_vm.decline}},[_vm._v(_vm._s(_vm.$t(\"common.btnNo\")))])]},proxy:true}])},[_c('div',{staticClass:\"confirmation-modal-body\"},[_c('svg',{staticClass:\"vc-icon_xl ver-ar fill-danger\",attrs:{\"viewBox\":\"0 0 100 100\"}},[_c('use',{attrs:{\"xlink:href\":\"#delete-icon\"}})]),_c('h2',[_vm._v(_vm._s(_vm.$t(\"powerPlan.deleteEventPromptMessage\"))+\" \\\"\"+_vm._s(this.eventName)+\"\\\"?\")]),_c('small',[_vm._v(_vm._s(_vm.$t(\"common.deleteDescription\")))])])])}\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\r\nimport { Component, Vue } from \"vue-property-decorator\";\r\nimport { deleteEvent } from \"@/services/powerPlans/powerPlanEventService\";\r\n\r\n@Component\r\nexport default class PowerPlanDeleteModal extends Vue {\r\n eventToBeDeleted: string = \"\";\r\n eventName: string = \"\"\r\n isSaved: boolean = false;\r\n\r\n handleEnter(e: KeyboardEvent) {\r\n if (e.key === \"Enter\") this.confirm();\r\n }\r\n\r\n removeEvent() {\r\n window.removeEventListener(\"keydown\", this.handleEnter);\r\n this.isSaved = false;\r\n }\r\n\r\n open(eventId: string, name: string) {\r\n this.eventToBeDeleted = eventId;\r\n this.eventName = name;\r\n this.$bvModal.show(\"modal-deleteEvent\");\r\n window.addEventListener(\"keydown\", this.handleEnter);\r\n }\r\n\r\n decline() {\r\n this.$bvModal.hide(\"modal-deleteEvent\");\r\n this.eventName = \"\";\r\n this.eventToBeDeleted = \"\";\r\n }\r\n\r\n confirm() {\r\n if (this.isSaved) return;\r\n this.isSaved = true;\r\n deleteEvent(this.eventToBeDeleted).then(() => {\r\n this.$emit(\"reload\");\r\n this.eventName = \"\";\r\n this.eventToBeDeleted = \"\";\r\n this.$bvModal.hide(\"modal-deleteEvent\");\r\n });\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PowerPlanEventDeleteModal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PowerPlanEventDeleteModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PowerPlanEventDeleteModal.vue?vue&type=template&id=7d6b59dd&\"\nimport script from \"./PowerPlanEventDeleteModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./PowerPlanEventDeleteModal.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 { PowerPlanEventType } from \"@/services/powerPlans/types\";\r\nimport i18n from \"@/i18n\";\r\nimport moment from \"moment\";\r\n\r\nexport const powerPlanEventFields = [\r\n {\r\n key: \"name\",\r\n label: i18n.t(\"common.name\"),\r\n sortable: true\r\n },\r\n {\r\n key: \"type\",\r\n label: i18n.t(\"powerPlanEvent.eventType\"),\r\n formatter: formatType\r\n },\r\n {\r\n key: \"timeInterval\",\r\n label: i18n.t(\"powerPlanEvent.timeInterval\")\r\n },\r\n {\r\n key: \"fromDate\",\r\n label: i18n.t(\"common.startDate\")\r\n },\r\n {\r\n key: \"toDate\",\r\n label: i18n.t(\"common.endDate\")\r\n },\r\n {\r\n key: \"actions\",\r\n label: \"\"\r\n }\r\n];\r\n\r\nfunction formatType(type: PowerPlanEventType) {\r\n return i18n.t(`powerPlanEvent.${PowerPlanEventType[type]}`);\r\n}\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\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\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, Watch } from \"vue-property-decorator\";\r\nimport { LocaleMessages } from \"vue-i18n\";\r\n// components\r\nimport FunctionalCalendar from \"vue-functional-calendar/src/components/FunctionalCalendar.vue\";\r\nimport PowerPlanEventCreateAndUpdateModal from \"@/components/powerPlans/modals/PowerPlanEventCreateAndUpdateModal.vue\";\r\nimport PowerPlanEventDeleteModal from \"@/components/powerPlans/modals/PowerPlanEventDeleteModal.vue\";\r\n// types\r\nimport { MarkedDay, RecurenceEnum, WeekdaysEnum } from \"@/services/posts/types\";\r\nimport { ActiveDaysRequest, PowerPlanEvent, PowerPlanEventFilter } from \"@/services/powerPlans/types\";\r\nimport i18n from \"@/i18n\";\r\nimport moment from \"moment\";\r\n// service methods\r\nimport { getActiveDays, getPowerPlanEvents } from \"@/services/powerPlans/powerPlanEventService\";\r\nimport { calendarConfigs } from \"@/services/functional-calendar\";\r\nimport { powerPlanEventFields } from \"@/components/powerPlans/fields/powerPlanEventFields\";\r\nimport { powerPlanEventFromDate, powerPlanEventToDate } from \"./powerPlanFormatting\";\r\n\r\n@Component({\r\n components: {\r\n PowerPlanEventCreateAndUpdateModal,\r\n FunctionalCalendar,\r\n PowerPlanEventDeleteModal\r\n }\r\n})\r\nexport default class PowerPlanEvents extends Vue {\r\n @Prop() powerPlanId!: string;\r\n @Prop() collapseState!: boolean;\r\n // local state\r\n localCollapseState = true;\r\n localEvents = [] as PowerPlanEvent[];\r\n calendar = {} as any;\r\n markedDates = [] as Array;\r\n fields = powerPlanEventFields;\r\n isBusy = false;\r\n // filter options\r\n searchQuery = \"\";\r\n RecurenceEnum = RecurenceEnum;\r\n\r\n // calendar\r\n showCalendar = true;\r\n currentSelectedDate = new Date();\r\n\r\n // lifecycle hooks\r\n mounted() {\r\n this.localCollapseState = this.collapseState;\r\n this.loadActiveDays(this.firstDayOfThisMonth);\r\n this.fetchEvents(this.currentSelectedDate);\r\n }\r\n\r\n // watchers\r\n @Watch(\"showCalendar\")\r\n onShowCalendarChanged(value: boolean, oldValue: any) {\r\n if (value) {\r\n this.fetchEvents(this.currentSelectedDate);\r\n } else {\r\n this.fetchEvents(\"\");\r\n }\r\n }\r\n\r\n // computed\r\n get firstDayOfThisMonth(): Date {\r\n const today = new Date();\r\n const month = today.getMonth();\r\n const year = today.getFullYear();\r\n return new Date(year, month, 1);\r\n }\r\n\r\n get firstDayOfMonthOfSelectedDate(): Date {\r\n const month = this.currentSelectedDate.getMonth();\r\n const year = this.currentSelectedDate.getFullYear();\r\n return new Date(year, month, 1);\r\n }\r\n\r\n get filteredData() {\r\n return (\r\n this.localEvents &&\r\n this.localEvents.filter(\r\n x =>\r\n (this.searchQuery.length === 0 ||\r\n x.name.toLowerCase().includes(this.searchQuery.toLowerCase()))));\r\n }\r\n\r\n get calendarConfigs() {\r\n return calendarConfigs();\r\n }\r\n\r\n // methods\r\n setState(state: boolean) {\r\n if (this.localCollapseState === state) return;\r\n\r\n this.localCollapseState = state;\r\n this.$emit(\"componentStateChanged\", { name: \"PowerPlanEvents\", state: state });\r\n }\r\n\r\n fetchEvents(date: any) {\r\n getPowerPlanEvents({\r\n powerPlanId: this.powerPlanId,\r\n calendarDate: date.toLocaleString(\"en-US\")\r\n } as PowerPlanEventFilter).then(response => {\r\n this.localEvents = response;\r\n });\r\n }\r\n\r\n loadActiveDays(startDate: Date) {\r\n getActiveDays({\r\n powerPlanId: this.powerPlanId,\r\n calendarStartDate: startDate\r\n } as ActiveDaysRequest).then(response => {\r\n let i;\r\n for (i = 0; i < this.markedDates.length; i++) {\r\n Vue.set(this.markedDates, i, {});\r\n }\r\n response.forEach((date: string, i: number) => {\r\n Vue.set(this.markedDates, i, {\r\n date: date,\r\n class: \"vfc-marked\"\r\n });\r\n });\r\n });\r\n }\r\n\r\n reloadEventList() {\r\n if (this.showCalendar) {\r\n this.fetchEvents(this.currentSelectedDate);\r\n } else {\r\n this.fetchEvents(\"\");\r\n }\r\n this.loadActiveDays(this.firstDayOfMonthOfSelectedDate);\r\n }\r\n\r\n toggleCalendar() {\r\n this.showCalendar = !this.showCalendar;\r\n }\r\n\r\n addEvent() {\r\n (this.$refs.eventCreateAndUpdateModal as any).resetForm();\r\n this.$bvModal.show(\"modal-powerPlanEventCreateAndUpdate\");\r\n }\r\n\r\n // calendar events\r\n dayClicked(day: any) {\r\n const dateParts = day.date.split(\"/\");\r\n // month is 0-based, that's why we need dataParts[1] - 1\r\n const dateObject = new Date(+dateParts[2], dateParts[1] - 1, +dateParts[0]);\r\n this.currentSelectedDate = dateObject;\r\n this.fetchEvents(dateObject);\r\n }\r\n\r\n changedMonth(startDate: Date) {\r\n this.loadActiveDays(startDate);\r\n }\r\n\r\n parseTime(value: string) {\r\n if (value.length === 5) {\r\n return value;\r\n }\r\n return moment(value).format(\"HH:mm\");\r\n }\r\n\r\n getWeeklyRecurenceDays(event: PowerPlanEvent): (LocaleMessages | string)[] {\r\n if (event.recurenceType === RecurenceEnum.weekly) {\r\n return event.recurenceValues.map(dayOfTheWeek => {\r\n switch (dayOfTheWeek) {\r\n case WeekdaysEnum.monday:\r\n return i18n.t(\"posts.monday\");\r\n case WeekdaysEnum.tuesday:\r\n return i18n.t(\"posts.tuesday\");\r\n case WeekdaysEnum.wednesday:\r\n return i18n.t(\"posts.wednesday\");\r\n case WeekdaysEnum.thursday:\r\n return i18n.t(\"posts.thursday\");\r\n case WeekdaysEnum.friday:\r\n return i18n.t(\"posts.friday\");\r\n case WeekdaysEnum.saturday:\r\n return i18n.t(\"posts.saturday\");\r\n case WeekdaysEnum.sunday:\r\n return i18n.t(\"posts.sunday\");\r\n }\r\n throw new Error(\"Day of the week enum is out of bounds\");\r\n });\r\n } else {\r\n return [];\r\n }\r\n }\r\n\r\n getMonthlyRecurenceDays(event: PowerPlanEvent): string {\r\n if (event.recurenceType === RecurenceEnum.monthly) {\r\n return event.recurenceValues.join(\", \");\r\n } else {\r\n return \"\";\r\n }\r\n }\r\n\r\n getFromDateLabel(event: PowerPlanEvent) {\r\n return powerPlanEventFromDate(event);\r\n }\r\n\r\n getToDateLabel(event: PowerPlanEvent) {\r\n return powerPlanEventToDate(event);\r\n }\r\n\r\n removeEvent(event: PowerPlanEvent, name: string) {\r\n (this.$refs.powerPlanEventDeleteModal as any).open(event.id, event.name);\r\n }\r\n\r\n openEditEventPrompt(event: PowerPlanEvent) {\r\n event.fromTime = event.fromTime.length > 5 ? event.fromTime.split(\"T\")[1].slice(0, -3) : event.fromTime;\r\n event.toTime = event.toTime.length > 5 ? event.toTime.split(\"T\")[1].slice(0, -3) : event.toTime;\r\n\r\n (this.$refs.eventCreateAndUpdateModal as any).event = event;\r\n (this.$refs.eventCreateAndUpdateModal as any).isEdit = true;\r\n this.$bvModal.show(\"modal-powerPlanEventCreateAndUpdate\");\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PowerPlanEvents.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PowerPlanEvents.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PowerPlanEvents.vue?vue&type=template&id=9c268786&scoped=true&\"\nimport script from \"./PowerPlanEvents.vue?vue&type=script&lang=ts&\"\nexport * from \"./PowerPlanEvents.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 \"9c268786\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-collapse',{attrs:{\"visible\":_vm.localCollapseState,\"id\":\"collapse-PowerPlanSolutions\"},on:{\"hide\":function($event){return _vm.setState(false)},\"show\":function($event){return _vm.setState(true)}}},[_c('div',{staticClass:\"panel-body\"},[_c('div',{staticClass:\"table-top-actions\"},[_c('div',{staticClass:\"actions-btn-wrapper\"},[_c('div',{staticClass:\"content-search\"},[_c('b-form-input',{staticClass:\"form-control form-control-sm\",attrs:{\"placeholder\":_vm.$t('common.search')},model:{value:(_vm.searchQuery),callback:function ($$v) {_vm.searchQuery=$$v},expression:\"searchQuery\"}}),_c('button',{staticClass:\"search-btn btn btn-sm\",attrs:{\"type\":\"submit\"}},[_c('svg',{staticClass:\"vc-icon\",attrs:{\"viewBox\":\"0 0 100 100\"}},[_c('use',{attrs:{\"xlink:href\":\"#search-icon\"}})])]),_c('button',{staticClass:\"search-clear btn btn-sm\",on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();},\"mousedown\":function($event){$event.preventDefault();_vm.searchQuery = ''}}},[_c('svg',{staticClass:\"vc-icon\",attrs:{\"viewBox\":\"0 0 100 100\"}},[_c('use',{attrs:{\"xlink:href\":\"#close-icon\"}})])])],1),_c('b-button',{attrs:{\"variant\":\"primary\"},on:{\"click\":function($event){return _vm.addSolution()}}},[_vm._v(_vm._s(_vm.$t(\"powerPlanEvent.addSolution\")))])],1)]),_c('b-table',{attrs:{\"fields\":_vm.fields,\"items\":_vm.filteredData,\"tbody-tr-class\":\"vsc-list-item\",\"head-variant\":\"light\",\"hover\":\"\",\"responsive\":\"sm\",\"show-empty\":\"\"},scopedSlots:_vm._u([{key:\"empty\",fn:function(scope){return [_c('h4',{staticClass:\"text-center\"},[_vm._v(_vm._s(_vm.$t(\"common.emptyTable\")))])]}},{key:\"cell(name)\",fn:function(row){return [_c('router-link',{staticClass:\"btn btn-only-icon goto-item\",attrs:{\"to\":{ name: 'updateSolution', params: { solutionId: row.item.id }}}},[_c('span',{ref:'element_' + row.item.id,staticClass:\"vsc-list-item-name goToArrow\"},[_vm._v(_vm._s(row.item.name))])])]}},{key:\"cell(actions)\",fn:function(row){return [_c('div',{staticClass:\"d-flex justify-content-end\"},[_c('b-button',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover\",modifiers:{\"hover\":true}}],staticClass:\"btn-only-icon\",attrs:{\"title\":_vm.$t('solution.solutionInfo')},on:{\"click\":function($event){return _vm.solutionInfo(row.item.id)}}},[_c('svg',{staticClass:\"vc-icon_lg\",attrs:{\"viewBox\":\"0 0 100 100\"}},[_c('use',{attrs:{\"xlink:href\":\"#info-icon\"}})])]),_c('b-button',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover\",modifiers:{\"hover\":true}}],staticClass:\"btn-only-icon btn-danger\",attrs:{\"title\":_vm.$t('common.remove')},on:{\"click\":function($event){return _vm.removeSolution(row.item.id)}}},[_c('svg',{staticClass:\"vc-icon_lg\",attrs:{\"viewBox\":\"0 0 84.5 91.4\"}},[_c('use',{attrs:{\"xlink:href\":\"#delete-icon\"}})])])],1)]}}])}),_c('select-solution-modal',{ref:\"solutionAddModal\",attrs:{\"powerPlanFilter\":true},on:{\"select\":_vm.onSelectedSolution}}),_c('solution-info-modal',{ref:\"solutionInfoModal\"})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export const powerPlanSolutionFields = [\r\n {\r\n key: \"name\",\r\n label: \"Name\",\r\n sortable: true\r\n },\r\n {\r\n key: \"actions\",\r\n label: \"\"\r\n }\r\n];\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\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\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, Watch } from \"vue-property-decorator\";\r\nimport { Solution } from \"@/services/solutions/types\";\r\nimport { powerPlanSolutionFields } from \"@/components/powerPlans/fields/powerPlanSolutionFields\";\r\nimport SelectSolutionModal from \"@/components/solutions/modals/SelectSolutioModal.vue\";\r\nimport { addContentValidators } from \"@/components/backgrounds/validators\";\r\nimport SolutionInfoModal from \"@/components/solutions/modals/SolutionInfoModal.vue\";\r\n@Component({\r\n components: { SelectSolutionModal, SolutionInfoModal }\r\n})\r\nexport default class PowerPlanSolutions extends Vue {\r\n @Prop() collapseState!: boolean;\r\n @Prop() solutions!: Solution[];\r\n\r\n // local state\r\n localSolutions = [] as Solution[];\r\n localCollapseState = true;\r\n fields = powerPlanSolutionFields;\r\n isBusy = false;\r\n\r\n // filter options\r\n searchQuery = \"\";\r\n\r\n // watchers\r\n @Watch(\"solutions\")\r\n onPropertyChanged(value: boolean, oldValue: any) {\r\n this.localSolutions = this.solutions;\r\n }\r\n\r\n // lifecycle hooks\r\n mounted() {\r\n this.localCollapseState = this.collapseState;\r\n }\r\n\r\n // computed\r\n get filteredData() {\r\n return (\r\n this.localSolutions &&\r\n this.localSolutions.filter(\r\n x =>\r\n this.searchQuery.length === 0 ||\r\n x.name.toLowerCase().includes(this.searchQuery.toLowerCase())\r\n )\r\n );\r\n }\r\n\r\n // methods\r\n setState(state: boolean) {\r\n if (this.localCollapseState === state) return;\r\n\r\n this.localCollapseState = state;\r\n this.$emit(\"componentStateChanged\", { name: \"PowerPlanSolutions\", state: state });\r\n }\r\n\r\n addSolution() {\r\n (this.$refs.solutionAddModal as any).open(null, false, true);\r\n }\r\n\r\n removeSolution(id: string) {\r\n const item = this.localSolutions.find(x => x.id === id);\r\n if (!item) {\r\n return;\r\n }\r\n this.localSolutions = this.localSolutions.filter(x => x.id !== id);\r\n }\r\n\r\n onSelectedSolution(solutions: Solution[]) {\r\n if (!solutions || solutions.length === 0) { return; }\r\n this.localSolutions = this.localSolutions.concat(solutions);\r\n }\r\n\r\n solutionInfo(solutionId: string) {\r\n (this.$refs.solutionInfoModal as any).open(solutionId);\r\n }\r\n\r\n emitData() {\r\n // deep copy to avoid binding\r\n this.$emit(\"solutionsUpdated\", JSON.parse(JSON.stringify(this.localSolutions)));\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PowerPlanSolutions.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PowerPlanSolutions.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PowerPlanSolutions.vue?vue&type=template&id=d20f6e38&scoped=true&\"\nimport script from \"./PowerPlanSolutions.vue?vue&type=script&lang=ts&\"\nexport * from \"./PowerPlanSolutions.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 \"d20f6e38\",\n null\n \n)\n\nexport default component.exports","import { ValidationModel, ValidationType } from \"@/services/validation/types\";\r\n\r\nexport const powerPlansValidators = {\r\n name: {\r\n rules: [\r\n { type: ValidationType.Required },\r\n { type: ValidationType.Min, value: 1 }\r\n ]\r\n } as ValidationModel\r\n};\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\n\n\n\n\n\n\n\n\n\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 validate from \"@/directives/validate\";\r\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\r\nimport i18n from \"@/i18n\";\r\nimport { Route } from \"vue-router\";\r\nimport { bus } from \"@/bus\";\r\n// components\r\nimport HeaderActionButtons from \"@/components/layouts/HeaderActionButtons.vue\";\r\nimport PowerPlanEvents from \"@/components/powerPlans/PowerPlanEvents.vue\";\r\nimport PowerPlanSolutions from \"@/components/powerPlans/PowerPlanSolutions.vue\";\r\nimport UnsavedFormModal from \"@/components/common/modals/UnsavedFormModal.vue\";\r\n// types\r\nimport { FormComponent, FormComponentModel } from \"@/services/autoSettings/types\";\r\nimport { PowerPlanDetails, PowerPlanEvent } from \"@/services/powerPlans/types\";\r\nimport { Solution } from \"@/services/solutions/types\";\r\nimport { powerPlansValidators } from \"@/components/powerPlans/validators\";\r\n\r\n// service methods\r\nimport { createPowerPlan, getPowerPlan, updatePowerPlan } from \"@/services/powerPlans/powerPlanService\";\r\nimport { getSetting, setSetting } from \"@/services/autoSettings/autoSettingsService\";\r\nimport { validateForm } from \"@/services/validation/validationService\";\r\n\r\n @Component({\r\n beforeRouteLeave(to, from, next) {\r\n this.onBeforeRouteLeave(to, next);\r\n },\r\n components: {\r\n PowerPlanEvents,\r\n PowerPlanSolutions,\r\n HeaderActionButtons,\r\n UnsavedFormModal\r\n },\r\n directives: {\r\n validate\r\n }\r\n })\r\nexport default class PowerPlanForm extends Vue {\r\n @Prop() powerPlanId!: string;\r\n // local data\r\n validators = powerPlansValidators;\r\n componentsData = [] as FormComponentModel[];\r\n powerPlan = {\r\n id: \"\" as string,\r\n name: \"\" as string,\r\n solutions: [] as Solution[],\r\n events: [] as PowerPlanEvent[]\r\n } as PowerPlanDetails;\r\n\r\n // used for comparing if form have changes\r\n priorPowerPlanState = JSON.parse(JSON.stringify(this.powerPlan)) as PowerPlanDetails;\r\n\r\n nextRoute = \"\";\r\n saveClicked = false;\r\n routeParams = {};\r\n continue = false;\r\n localId = this.powerPlanId || \"\";\r\n // lifecycle hooks\r\n mounted() {\r\n this.fetchData();\r\n this.initComponents();\r\n }\r\n\r\n // computed\r\n get componentsAutoSettingKey(): string {\r\n let settingsKey = \"powerPlanFormComponents\";\r\n settingsKey += this.localId ? \"-edit\" : \"-create\";\r\n return settingsKey;\r\n }\r\n\r\n get components(): FormComponentModel[] {\r\n return this.componentsData\r\n .sort((a, b) => a.order - b.order)\r\n .filter((name) => name.componentName !== \"PowerPlanEvents\" || this.localId);\r\n }\r\n\r\n // methods\r\n fetchData() {\r\n if (!this.localId) return;\r\n getPowerPlan(this.localId).then(response => {\r\n this.powerPlan = response;\r\n bus.$emit(\"documentTitle\", this.powerPlan.name);\r\n this.priorPowerPlanState = JSON.parse(JSON.stringify(response));\r\n });\r\n }\r\n\r\n async initComponents() {\r\n let components = getSetting(this.componentsAutoSettingKey);\r\n if (!components) {\r\n await setSetting(this.componentsAutoSettingKey,\r\n [\r\n {\r\n componentName: \"PowerPlanEvents\",\r\n sectionName: i18n.t(\"powerPlanEvent.events\"),\r\n order: 0,\r\n collapseState: true\r\n },\r\n {\r\n componentName: \"PowerPlanSolutions\",\r\n sectionName: i18n.t(\"solution.title\"),\r\n order: 1,\r\n collapseState: true\r\n }] as FormComponent[]);\r\n components = getSetting(this.componentsAutoSettingKey);\r\n }\r\n\r\n this.componentsData = components.map((x: FormComponent) => ({\r\n componentName: x.componentName,\r\n order: x.order,\r\n active: false,\r\n activeDropTarget: false,\r\n collapseState: x.collapseState,\r\n sectionName: x.sectionName\r\n }));\r\n }\r\n\r\n onComponentStateChanged(componentState: any) {\r\n const component = this.componentsData.find(x => x.componentName === componentState.name);\r\n if (!component) return;\r\n\r\n component.collapseState = componentState.state;\r\n setSetting(this.componentsAutoSettingKey,\r\n this.componentsData.map(x => (\r\n {\r\n componentName: x.componentName,\r\n order: x.order,\r\n collapseState: x.collapseState,\r\n sectionName: x.sectionName\r\n } as FormComponent)));\r\n }\r\n\r\n onBeforeRouteLeave(to: Route, next: any) {\r\n if (this.saveClicked || this.continue) {\r\n next();\r\n } else {\r\n this.nextRoute = to.name ? to.name : \"\";\r\n this.routeParams = to.params;\r\n this.childComponentsHandler();\r\n const noChanges = this.lodash.isEqual(this.priorPowerPlanState, this.powerPlan);\r\n if (noChanges) {\r\n next();\r\n } else {\r\n next(false);\r\n (this.$refs.UnsavedFormModal as any).open();\r\n }\r\n }\r\n }\r\n\r\n compareObjects(firstObject: any, secondObject: any) {\r\n if (firstObject === secondObject) return true;\r\n\r\n if (!(firstObject instanceof Object) || !(secondObject instanceof Object)) return false;\r\n\r\n if (firstObject.constructor !== secondObject.constructor) return false;\r\n\r\n for (const property in firstObject) {\r\n // eslint-disable-next-line no-prototype-builtins\r\n if (!firstObject.hasOwnProperty(property)) continue;\r\n\r\n // eslint-disable-next-line no-prototype-builtins\r\n if (!secondObject.hasOwnProperty(property)) return false;\r\n\r\n if (firstObject[property] === secondObject[property]) continue;\r\n\r\n if (typeof (firstObject[property]) !== \"object\") return false;\r\n\r\n if (!this.compareObjects(firstObject[property], secondObject[property])) return false;\r\n }\r\n\r\n for (const property in secondObject) {\r\n // eslint-disable-next-line no-prototype-builtins\r\n if (secondObject.hasOwnProperty(property) && !firstObject.hasOwnProperty(property)) { return false; }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n onContinue(data: boolean) {\r\n this.continue = data;\r\n if (data) this.$router.push({ name: this.nextRoute, params: this.routeParams });\r\n this.nextRoute = \"\";\r\n }\r\n\r\n async save(back: boolean) {\r\n if (this.saveClicked) return;\r\n\r\n this.childComponentsHandler();\r\n\r\n if (!await validateForm([this.validators])) {\r\n this.saveClicked = false;\r\n return;\r\n }\r\n\r\n if (!this.localId) {\r\n createPowerPlan(this.powerPlan as PowerPlanDetails).then((id: any) => {\r\n if (back) this.$router.push(\"/power-plans\");\r\n else {\r\n this.localId = id;\r\n this.powerPlan.id = id;\r\n this.priorPowerPlanState.id = id;\r\n this.priorPowerPlanState.name = this.powerPlan.name;\r\n this.saveClicked = false;\r\n }\r\n });\r\n } else {\r\n updatePowerPlan(this.powerPlan).then(() => {\r\n if (back) this.$router.push(\"/power-plans\");\r\n this.priorPowerPlanState.name = this.powerPlan.name;\r\n this.saveClicked = false;\r\n });\r\n }\r\n this.priorPowerPlanState.solutions = this.powerPlan.solutions;\r\n this.saveClicked = true;\r\n }\r\n\r\n back() {\r\n window.history.go(-1);\r\n }\r\n\r\n childComponentsHandler() {\r\n const components = this.$refs.childComponent as any[];\r\n components.forEach(component => {\r\n if (typeof component.emitData === \"function\") { component.emitData(); }\r\n });\r\n }\r\n\r\n // event handlers\r\n onSolutionsUpdated(solutions: Solution[]) {\r\n this.powerPlan.solutions = solutions;\r\n }\r\n\r\n // drag & drop event handlers\r\n drag(event: any) {\r\n const component = this.componentsData.find(x => x.componentName === event.target.id);\r\n if (!component) { return; }\r\n\r\n event.dataTransfer.setDragImage((this.$refs[component.componentName] as any)[0], 1000, 0);\r\n event.dataTransfer.setData(\r\n \"id\",\r\n event.target.id\r\n );\r\n\r\n component.active = true;\r\n }\r\n\r\n dragLeave(event: any) {\r\n const component = this.componentsData.find(x => x.componentName === event.currentTarget.id);\r\n if (!component) return;\r\n component.activeDropTarget = false;\r\n }\r\n\r\n dragOver(event: any) {\r\n event.preventDefault();\r\n const component = this.componentsData.find(x => x.componentName === event.currentTarget.id);\r\n if (!component) return;\r\n if (component.active) return;\r\n component.activeDropTarget = true;\r\n }\r\n\r\n dragEnd() {\r\n this.componentsData.forEach(x => {\r\n x.activeDropTarget = false;\r\n x.active = false;\r\n });\r\n }\r\n\r\n swapComponents(event: any) {\r\n event.preventDefault();\r\n if (!event.currentTarget) {\r\n return;\r\n }\r\n\r\n const target = this\r\n .componentsData\r\n .find(x => event.currentTarget && x.componentName === event.currentTarget.id);\r\n const source = this\r\n .componentsData\r\n .find(x => event.dataTransfer && x.componentName === event.dataTransfer.getData(\"id\"));\r\n\r\n if (!(source && target)) { return; }\r\n\r\n const sourceOrder = source.order;\r\n source.order = target.order;\r\n target.order = sourceOrder;\r\n\r\n setSetting(this.componentsAutoSettingKey,\r\n this.componentsData.map(x => ({\r\n componentName: x.componentName,\r\n order: x.order,\r\n collapseState: x.collapseState,\r\n sectionName: x.sectionName\r\n } as FormComponent)));\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./_PowerPlanForm.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./_PowerPlanForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./_PowerPlanForm.vue?vue&type=template&id=27973d35&scoped=true&\"\nimport script from \"./_PowerPlanForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./_PowerPlanForm.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 \"27973d35\",\n null\n \n)\n\nexport default component.exports"],"sourceRoot":""}