{"version":3,"sources":["webpack:///./src/components/calendar/CalendarBox.vue?e68e","webpack:///./src/components/calendar/bulk-edit/RatePlanPart.vue?6003","webpack:///../../../src/mixins/button-group/index.ts","webpack:///./src/components/calendar/CalendarBox.vue?9837","webpack:///./src/components/calendar/bulk-edit/BulkEdit.vue?a1b2","webpack:///./src/components/calendar/bulk-edit/RatePlanPart.vue?e1b2","webpack:///./src/components/calendar/bulk-edit/RatePlanPart.vue","webpack:///./src/components/calendar/bulk-edit/RatePlanPart.vue?db8b","webpack:///../../../src/components/VBtnToggle/VBtnToggle.ts","webpack:///./src/components/calendar/bulk-edit/RatePlanPart.vue?ee5a","webpack:///./src/components/calendar/bulk-edit/UnitTypePart.vue?7678","webpack:///./src/components/calendar/bulk-edit/UnitTypePart.vue","webpack:///./src/components/calendar/bulk-edit/UnitTypePart.vue?ed88","webpack:///./src/components/calendar/bulk-edit/UnitTypePart.vue?0faf","webpack:///./src/components/calendar/bulk-edit/RatePlanPricesList.vue?04ab","webpack:///./src/components/calendar/bulk-edit/RatePlanPricesList.vue","webpack:///./src/components/calendar/bulk-edit/RatePlanPricesList.vue?0873","webpack:///./src/components/calendar/bulk-edit/RatePlanPricesList.vue?6ef0","webpack:///./src/components/calendar/bulk-edit/RatePlanFieldsList.vue?830d","webpack:///./src/components/calendar/bulk-edit/RatePlanFieldsList.vue","webpack:///./src/components/calendar/bulk-edit/RatePlanFieldsList.vue?5839","webpack:///./src/components/calendar/bulk-edit/RatePlanFieldsList.vue?f2b9","webpack:///./src/components/calendar/bulk-edit/BulkEdit.vue","webpack:///./src/components/calendar/bulk-edit/BulkEdit.vue?9622","webpack:///./src/components/calendar/bulk-edit/BulkEdit.vue?b5f3","webpack:///./src/components/calendar/availability-changelog/AvailabilityChangelogTimeline.vue?54ca","webpack:///./src/components/calendar/availability-changelog/AvailabilityChangelogTimeline.vue","webpack:///./src/components/calendar/availability-changelog/AvailabilityChangelogTimeline.vue?0a1b","webpack:///./src/components/calendar/availability-changelog/AvailabilityChangelogTimeline.vue?14aa","webpack:///./src/components/calendar/CalendarBox.vue","webpack:///./src/components/calendar/CalendarBox.vue?4d6c","webpack:///./src/components/calendar/CalendarBox.vue?b1e8","webpack:///./src/components/calendar/bulk-edit/BulkEdit.vue?135e","webpack:///./src/components/calendar/bulk-edit/RatePlanPricesList.vue?a0d8","webpack:///./src/components/calendar/bulk-edit/RatePlanFieldsList.vue?94ef","webpack:///./src/components/calendar/bulk-edit/UnitTypePart.vue?e810","webpack:///./src/components/calendar/CalendarBox.vue?4d53"],"names":["name","provide","btnToggle","this","computed","classes","methods","genData","render","_vm","_h","$createElement","_c","_self","directives","rawName","value","expression","modifiers","arg","staticClass","on","$event","dragging","months","loading","loadingHierarchy","draggedReservation","loadingOnScroll","staticStyle","attrs","$vuetify","theme","dark","undefined","_e","style","config","cell","slot","_v","_s","$t","search","rows","filterFn","onFiltered","leftEdgeDay","rightEdgeDay","w","menu","_l","row","key","id","class","top","offset","position","length","toggleExpand","propertyLoadingIndicator","ut","allowedToModifyCalendar","ratePlans","stopPropagation","bulkEditUnitType","getAccUnitTypeFullName","getAccUnitTypeName","boxDayStartIdx","boxDayStart","boxDayEnd","highlightPeriod","allowedToInlineEditAvailability","selection","openAvailabilityTimelineOnClick","openQuantityEditor","openTimeline","scopedSlots","_u","fn","ref","day","tenantUsesAvailabilityBlockerCalculations","isBlockedOnDay","availabilityOnDay","isOwner","currentSettings","showRatePlans","allowedToReadRatePlans","ratePlanShown","rp","calculateOffsets","expandRatePlan","bulkEditRatePlan","getRatePlanFullName","getRatePlanName","expanded","showRestrictions","showOBRatePlans","some","x","parentId","isDefault","isDerived","allowedToModifyPrices","openPriceEditor","isBlocked","$n","price","maximumFractionDigits","ratePlanFieldsShown","field","height","h","textResource","selectableInputPrice","isOBSpecific","isEqual","Object","assign","utid","rpid","openInputPriceEditor","type","dayFieldValue","openRestrictionEditor","OBRatePlanShown","obrp","tenantOBRsUseRelativePricing","u","$unitIndex","ratePlansHeight","unitsToDisplay","slice","reduce","unit","showUnitStatus","statusId","accomodationUnitStatusEnum","NeedsCleaning","CleaningInProgress","NeedsRepair","RepairInProgress","unit__icon","isInAvailabilitySearchModal","openUnitStatusEditor","getStatusIcon","note","allowedToModifyReservations","openNewReservationModal","reservationDragover","reservationDrop","allReservations","res","maxReservationsInDay","tooltip","openExistingReservation","reservationDrag","reservationDragend","arrivalDate","proxy","internalSettingsOpen","availabilityTimelineOpen","availabilityTimelineRPUTId","availabilityTimelineUnitTypeId","availabilityTimelineDate","availabilityTimelineProperty","bulkKey","bulk","bulkModel","calendarReload","reservationModalOpen","selectedAvailabilities","reservationRestrictions","reservationId","scrollId","ratePlanSelectOpen","availableRatePlans","confirmNewReservationModal","reservationModalUT","reservationModalU","reservationModalEvent","tooltipKey","tootipPosition","y","$d","arrival","toJSDate","departure","$tc","nights","count","holderName","customerNames","otaName","status","text","unitsCount","staticRenderFns","openInternal","initialFormData","formData","submitDisabled","submit","submitting","save","reset","preventDefault","apply","arguments","model","callback","$$v","form","dates","weekdays","calendarOBLOSCategoriesApplicationAllowed","$set","isRatePlanEdit","ratePlan","initialAvailabilitySetupType","hasOBRules","SetupTypeEnum","Update","relatedRatePlansPriceUpdateType","RelatedRatePlansPriceUpdateTypeEnum","DontUpdate","ApplyChange","ApplyOBLOSCategories","hidePriceEdit","priceChangesError","priceChange","valid","currencyCodeForPriceInput","onPriceChanged","inputPriceChange","onInputPriceChanged","dayOverridesChangeOriginalPrice","priceChanges","restrictionsError","hasDerived","relatedRatePlansRestrictionsUpdateType","RelatedRatePlansRestrictionsUpdateTypeEnum","UpdateOBSpecificOnly","UpdateDerivedOnly","UpdateDerivedAndOBSpecific","settings","restrictions","ratePlanName","date","index","required","existingBulkEditDateRange","dateRange","removeBulkEditPeriod","light","addBulkEditPeriod","internalWeekdays","i","weekdaysList","filterFunction","items","atLeastOne","item","selected","selectItem","propertyName","deselect","filteredItems","toggleSelectAll","allSelected","someSelected","locale","language","internal","paxSuffix","losSuffix","currencySuffix","currencyCode","showPAXSuffixInRatePlanName","minPersons","maxPersons","showLOSSuffixInRatePlanName","maxStay","minStay","v","range","from","Date","to","internalDates","filter","_","dateRangeFrom","dateRangeTo","dateRangeOverlaps","aStart","aEnd","bStart","bEnd","getTime","selectedRatePlanId","ratePlanId","selectedRputId","selectedIsDefault","allProperties","flatMap","p","unitTypes","r","map","selectedItems","e","toLowerCase","includes","ids","queryText","evt","push","splice","default","components","DateField","mixins","props","backgroundColor","borderless","dense","group","rounded","shaped","tile","Boolean","themeClasses","data","setTextColor","setBackgroundColor","component","VAutocomplete","VBtn","VBtnToggle","VChip","VCol","VContainer","VIcon","VListItem","VListItemAction","VListItemContent","VList","VListItemTitle","VRow","VSimpleCheckbox","unitType","property","isMobile","ratePlansCurrencies","resetSelectedItems","selectedRatePlanCurrencyId","c","selectAll","main","groupSelected","selectGroup","rate","showApplyCategoriesCheckbox","areCategoriesAppliedToAll","applyCategoriesToAll","breakpoint","mobile","currencies","refreshCurrencies","allRates","sort","a","b","groupId","ratePlanGroups","find","allGroupRatesIds","every","missing","allRatesIds","applyOBLOSCategories","forEach","selectedCurrencyId","val","ratePlanCurrencyIds","currencyId","findIndex","FormDescription","NumericPicker","VAlert","VCheckbox","VDivider","VRadio","VRadioGroup","VSwitch","expandedWeekdays","disabled","pc","weekday","disableRules","weekdaysLong","changesOriginalPrice","defaultPriceChange","percentage","addition","subtraction","change","fresh","orderedExpanded","mapped","existing","changed","existingIndex","$emit","freshValid","PriceInput","VScrollXTransition","pick","mustBeInt","mustBePositive","onErrorUpdate","_n","unpicked","select","pickDummy","isRestriction","ratePlanFields","picked","isNaN","isInteger","isAbsolute","originalValid","indexOf","ratePlanFieldValue","error","VSelect","VTextField","Weekdays","OBRulesUpdateTypeEnum","isUnitTypeEdit","cloneDeep","parentRatePlanId","calendarRelatedRatesPriceUpdateTypeDefault","calendarRelatedRatesRestrictionsUpdateTypeDefault","workingCurrency","nothingChanged","availability","$store","dispatch","color","message","timeout","bulkEditForm","validate","datesForBuldEdit","period","numberValue","booleanValue","priceChangeOverrides","currentDatetime","now","request","unitTypeIds","dateRanges","availabilityIsSet","availabilityAddition","availabilitySubtraction","initialAvailabilitySetup","requestedAt","reg","extracted","exec","num","prefix","axios","put","response","asyncBulkEditStarted","minMaxDate","findMinAndMaxDateFromRange","fromJSDate","min","max","minFrom","previous","current","maxTo","ratePlanPrices","clear","ratePlanFieldsList","showNothingChangedNotification","addAvailabilities","immediate","UnitTypePart","RatePlanPart","RatePlanPricesList","RatePlanFieldsList","RightDrawer","RequireRole","VForm","VSheet","VToolbar","timeline","getDateTime","$index","changedDate","changedBy","getEventTypeText","eventTypeId","getCapitalizedProperty","getPropertyValue","promises","availabilityChangelogEventTypes","refreshAvailabilityChangelogEventTypes","Promise","all","load","accomodationUnitTypeId","ratePlanAccomodationUnitTypeId","get","params","ratePlansAccomodationUnitTypeId","then","finally","endsWith","textResourceKey","toString","toUpperCase","VFadeTransition","VOverlay","VProgressCircular","LEFT_W","_cell","hl","_config","preload","centerOffset","l","t","local","debounce","handleVerticalScroll","trailing","maxWait","handleHorizontalScroll","test","accomodationUnitTypeIds","positionX","positionY","tenantUsesAvailabilityChangelogParam","claims","tenantUsesInputPrice","sid","tid","settingsList","userId","currentUserId","tenantId","isForAvailabilitySearchCalendar","numOfDays","rowHeight","settingsOpen","open","close","availabilityTimelineOpenOnClick","RPUTId","unitTypeId","toggleAvailabilityTimelineOpenOnClick","showListRatePlans","listRatePlansIds","toReturn","window","showRatePlanFields","showInputPrice","event","editor","topLeft","tenantUserId","maintenanceAssignedToTenantUserId","numberOfNights","reservationShowRatePlanPopup","isOwnerLevel3","selectedRatePlan","UTC","getFullYear","getMonth","getDate","numberOfUnits","numberOfAdults","numberOfChildren","childrenAges","isFromCalendar","accomodationUnitId","resId","originalDraggedReservation","unitRemovedFrom","units","removeReservation","addReservation","originalUnitId","hideReservation","requestModel","fromUnitId","toUnitId","dragged","localize","fetchAviailabilityAndReservations","fromISO","departureDate","propertyIds","tenantUsesLazyLoadedCalendar","displayedRows","hideReservationIds","catch","left","right","setEdgeDays","diff","days","filteredProperties","rAcc","width","fullBox","Math","floor","firstDateMonth","secondDateMonth","month","plus","setLocale","monthShort","setMonths","daysToDisplay","ceil","initialNavTo","toISODate","internalCurrentDay","navTo","_day","startOf","minus","resetAviailabilityAndReservations","$el","scrollTo","setBounds","goTo","currentDay","$nextTick","fetchHierarchy","toggleAllRatePlans","autoExpandRatePlans","goToDay","addEventListener","handleArrowKeys","removeEventListener","isPropExpanded","debouncedVerticalScroll","debouncedHorizontalScroll","scrollTop","scrollLeft","loadTreshold","loaded","loadLeft","loadRight","lDiffDays","loadingLeft","repeatLoadLeft","scrollBy","loadingRight","repeatLoadRight","clientWidth","clientHeight","cellw","mergeOnRendered","availabilitiesAndReservations","availabilities","reservations","mergeBlockedAvailabilities","blockedAvailabilities","unitTypesToDisplay","getUnitTypesToDisplay","getUnitsToDisplay","highlightPeriodStart","highlightPeriodEnd","substring","old","toRemove","removeAvailabilities","unitOffset","rpOffset","obRates","rpBaseHeight","calculateRateBaseHeight","rpExpandedHeight","calculateRateExpandedHeight","obRpOffest","obRp","calculateObRateTotalHeight","acc","showUnits","aut","baseBedsCapacity","extraBedsCapacity","maxTotalLength","charactersToReplace","autName","replace","m","totalLength","toCut","endIndex","rpName","propertyId","blockedDatesCalculations","loadingAvailabilityForPropertyIds","baseHeight","calculateOverbooking","globalFilter","refreshCalendarColorSettings","deep","BulkEdit","CalendarSettingsForm","CalendarBoxRow","BoxTimeTrack","BoxDayTrack","Search","ReservationTrackBox","CalendarEditor","ReservationModal","RatePlanSelectModal","AvailabilityTimeline","dragscroll","VSpacer","VTooltip","Resize","Scroll"],"mappings":"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","file":"js/Calendar~_DefaultLayout~_MobileLayout.9a643892.js","sourcesContent":["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!./CalendarBox.vue?vue&type=style&index=1&lang=scss&\"","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!./RatePlanPart.vue?vue&type=style&index=0&id=41b779ea&scoped=true&lang=scss&\"","// Extensions\nimport { BaseItemGroup } from '../../components/VItemGroup/VItemGroup'\n\n/* @vue/component */\nexport default BaseItemGroup.extend({\n name: 'button-group',\n\n provide (): object {\n return {\n btnToggle: this,\n }\n },\n\n computed: {\n classes (): object {\n return BaseItemGroup.options.computed.classes.call(this)\n },\n },\n\n methods: {\n // Isn't being passed down through types\n genData: BaseItemGroup.options.methods.genData,\n },\n})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"resize\",rawName:\"v-resize.quiet\",value:(_vm.resized),expression:\"resized\",modifiers:{\"quiet\":true}},{name:\"scroll\",rawName:\"v-scroll.self\",value:(_vm.scrolled),expression:\"scrolled\",modifiers:{\"self\":true}},{name:\"dragscroll\",rawName:\"v-dragscroll:nochilddrag.x\",arg:\"nochilddrag\",modifiers:{\"x\":true}}],staticClass:\"calendar__container\",on:{\"dragscrollstart\":function($event){_vm.dragging = true},\"dragscrollend\":function($event){_vm.dragging = false},\"months\":_vm.months}},[_c('v-fade-transition',[(\n _vm.loading ||\n _vm.loadingHierarchy ||\n (_vm.draggedReservation && _vm.draggedReservation.loading) ||\n _vm.loadingOnScroll\n )?_c('v-overlay',{staticStyle:{\"position\":\"absolute\"},attrs:{\"color\":_vm.$vuetify.theme.dark ? 'white' : undefined}},[_c('v-progress-circular',{attrs:{\"color\":\"primary\",\"size\":\"64\",\"indeterminate\":\"\"}})],1):_vm._e()],1),_c('div',{staticClass:\"calendar__rows-wrapper\",style:(_vm.fullBoxStyle)},[_c('CalendarBoxRow',{staticClass:\"calendar__header\",attrs:{\"cell\":_vm.config.cell}},[_c('template',{slot:\"left\"},[(_vm.showSearch)?_c('div',{staticClass:\"d-flex flex-column fill-height\"},[_c('v-spacer'),_c('div',{staticClass:\"de-emphasize px-1\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"Calendar.Search.Description\"))+\" \")]),_c('v-spacer'),_c('Search',{attrs:{\"value\":_vm.search,\"list\":this.rows,\"filter\":_vm.filterFn},on:{\"update:value\":function($event){_vm.search=$event},\"filtered\":_vm.onFiltered}})],1):_vm._e()]),_c('template',{slot:\"track\"},[_c('BoxTimeTrack',{attrs:{\"start\":_vm.leftEdgeDay,\"end\":_vm.rightEdgeDay,\"dayW\":_vm.config.cell.w,\"dragging\":_vm.dragging},on:{\"menu\":function($event){_vm.menu = !_vm.menu}}})],1)],2),_c('transition-group',{attrs:{\"name\":\"fade-slow\",\"tag\":\"div\"}},_vm._l((_vm.displayedRows),function(row){return _c('CalendarBoxRow',{key:row.id,class:{\n 'primary lighten-2': !_vm.$vuetify.theme.dark,\n },style:({ top: row.offset + 'px', position: 'absolute' }),attrs:{\"hideHeader\":_vm.rows.length <= 1,\"item\":row,\"cell\":_vm.config.cell}},[_c('template',{slot:\"left\"},[_c('div',{staticClass:\"calendar__left--button upercase--text font-weight-bold property__row\",class:{\n 'secondary--text': !_vm.$vuetify.theme.dark,\n 'primary--text text--lighten-1': _vm.$vuetify.theme.dark,\n },on:{\"click\":function($event){return _vm.toggleExpand(row)}}},[_c('i',{staticClass:\"fa fa-fw fa-hotel mr-1\"}),_c('text-highlight',{attrs:{\"queries\":_vm.search}},[_vm._v(_vm._s(row.name))]),_c('v-spacer'),(_vm.propertyLoadingIndicator(row.id))?_c('v-progress-circular',{attrs:{\"color\":\"primary\",\"size\":\"18\",\"width\":\"3\",\"indeterminate\":\"\"}}):_vm._e()],1)]),_c('template',{slot:\"track\"},[_c('div',{staticClass:\"empty-track property__row\"})]),_vm._l((row.unitTypesToDisplay),function(ut){return _c('CalendarBoxRow',{key:ut.id,style:({ top: ut.offset + 'px', position: 'absolute' }),attrs:{\"item\":ut,\"cell\":_vm.config.cell}},[_c('template',{slot:\"left\"},[_c('div',{staticClass:\"calendar__left--button primary--text only-on-hover--trigger\",on:{\"click\":function($event){return _vm.toggleExpand(ut)}}},[(_vm.allowedToModifyCalendar && ut.ratePlans.length > 0)?_c('div',{staticClass:\"v-btn v-btn--flat v-btn--round v-btn--icon v-size--x-small unit-type__icon\",on:{\"click\":function($event){$event.stopPropagation();return _vm.bulkEditUnitType(row, ut)}}},[_c('i',{staticClass:\"fa fa-fw fa-bed\"})]):_c('div',{staticClass:\"v-btn v-btn--flat v-btn--round v-btn--icon v-size--x-small\"},[_c('i',{staticClass:\"fa fa-fw fa-bed\"})]),_c('text-highlight',{staticClass:\"flex-grow-1\",attrs:{\"queries\":_vm.search,\"title\":_vm.getAccUnitTypeFullName(ut)}},[_vm._v(\" \"+_vm._s(_vm.getAccUnitTypeName(ut))+\" \")]),_c('v-spacer'),(_vm.propertyLoadingIndicator(row.id))?_c('v-progress-circular',{attrs:{\"color\":\"primary\",\"size\":\"18\",\"width\":\"3\",\"indeterminate\":\"\"}}):_vm._e()],1)]),_c('template',{slot:\"track\"},[_c('BoxDayTrack',{key:ut.id,staticClass:\"primary--text\",attrs:{\"startIdx\":_vm.boxDayStartIdx,\"from\":_vm.boxDayStart,\"to\":_vm.boxDayEnd,\"highlightPeriod\":_vm.highlightPeriod,\"cell\":_vm.config.cell,\"selectable\":_vm.allowedToInlineEditAvailability,\"selection\":_vm.selection.row === ut ? _vm.selection.selection : null,\"openTimelineOnClick\":_vm.openAvailabilityTimelineOnClick},on:{\"update:selection\":function($event){_vm.selection = { row: ut, selection: $event }},\"single\":function($event){return _vm.openQuantityEditor(ut, $event)},\"selected\":function($event){return _vm.openQuantityEditor(ut, $event)},\"openTimeline\":function($event){return _vm.openTimeline(null, ut.id, $event, 'quantity')}},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\n var day = ref.day;\nreturn [_c('div',{staticClass:\"day-track--center\",class:{\n 'blocked-availability':\n _vm.tenantUsesAvailabilityBlockerCalculations &&\n ut.isBlockedOnDay(day),\n }},[_vm._v(\" \"+_vm._s(ut.availabilityOnDay(day, _vm.isOwner))+\" \")])]}}],null,true)})],1),(_vm.currentSettings.showRatePlans && _vm.allowedToReadRatePlans)?_c('div',_vm._l((_vm.ratePlanShown(ut, row)),function(rp){return _c('CalendarBoxRow',{key:rp.id,style:({ top: rp.offset + 'px', position: 'absolute' }),attrs:{\"item\":rp,\"cell\":_vm.config.cell},on:{\"expanded\":function($event){return _vm.calculateOffsets()}}},[_c('template',{slot:\"left\"},[_c('div',{staticClass:\"calendar__left--button only-on-hover--trigger text--lighten-1\",class:{\n 'black--text text--lighten-1': !_vm.$vuetify.theme.dark,\n 'white--text': _vm.$vuetify.theme.dark,\n },staticStyle:{\"height\":\"100%\"},on:{\"click\":function($event){return _vm.expandRatePlan(rp)}}},[(_vm.allowedToModifyCalendar)?_c('div',{staticClass:\"v-btn v-btn--flat v-btn--round v-btn--icon v-size--x-small rate-plan__icon\",on:{\"click\":function($event){$event.stopPropagation();return _vm.bulkEditRatePlan(ut, rp)}}},[_c('i',{staticClass:\"fa fa-fw fa-wallet\"})]):_c('div',{staticClass:\"v-btn v-btn--flat v-btn--round v-btn--icon v-size--x-small\"},[_c('i',{staticClass:\"fa fa-fw fa-wallet\"})]),_c('span',{attrs:{\"title\":_vm.getRatePlanFullName(rp)}},[_vm._v(_vm._s(_vm.getRatePlanName(rp)))]),_c('v-spacer'),(rp.isDerived)?_c('v-icon',{staticClass:\"mr-1 black--text\",class:{\n 'text--lighten-3': !_vm.$vuetify.theme.dark,\n 'text--lighten-2': _vm.$vuetify.theme.dark,\n },attrs:{\"x-small\":\"\"}},[_vm._v(\"fa fa-lock-alt\")]):_vm._e(),(\n !rp.expanded &&\n (_vm.currentSettings.showRestrictions ||\n (_vm.currentSettings.showOBRatePlans &&\n ut.ratePlans.some(\n function (x) { return x.parentId === rp.id && !x.isDefault; }\n )))\n )?_c('v-icon',{staticClass:\"mr-1 ml-1 black--text\",class:{\n 'text--lighten-3': !_vm.$vuetify.theme.dark,\n 'text--lighten-2': _vm.$vuetify.theme.dark,\n },attrs:{\"small\":\"\"}},[_vm._v(\"fa-solid fa-caret-down\")]):_vm._e(),(\n rp.expanded &&\n (_vm.currentSettings.showRestrictions ||\n (_vm.currentSettings.showOBRatePlans &&\n ut.ratePlans.some(\n function (x) { return x.parentId === rp.id && !x.isDefault; }\n )))\n )?_c('v-icon',{staticClass:\"mr-1 ml-1 black--text\",class:{\n 'text--lighten-3': !_vm.$vuetify.theme.dark,\n 'text--lighten-2': _vm.$vuetify.theme.dark,\n },attrs:{\"small\":\"\"}},[_vm._v(\"fa-solid fa-caret-up\")]):_vm._e()],1)]),_c('template',{slot:\"track\"},[_c('BoxDayTrack',{key:rp.id,attrs:{\"startIdx\":_vm.boxDayStartIdx,\"from\":_vm.boxDayStart,\"to\":_vm.boxDayEnd,\"highlightPeriod\":_vm.highlightPeriod,\"cell\":_vm.config.cell,\"selectable\":!rp.isDerived && _vm.allowedToModifyPrices,\"selection\":_vm.selection.row === rp ? _vm.selection.selection : null,\"openTimelineOnClick\":_vm.openAvailabilityTimelineOnClick},on:{\"update:selection\":function($event){_vm.selection = { row: rp, selection: $event }},\"single\":function($event){return _vm.openPriceEditor(ut, rp, $event)},\"selected\":function($event){return _vm.openPriceEditor(ut, rp, $event)},\"openTimeline\":function($event){return _vm.openTimeline(rp.id, null, $event, 'price')}},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\n var day = ref.day;\nreturn [_c('div',{staticClass:\"day-track--center day-track--center-sm\",class:{\n 'blocked-availability':\n _vm.tenantUsesAvailabilityBlockerCalculations &&\n rp.availabilityOnDay(day)\n ? rp.availabilityOnDay(day).isBlocked\n : false,\n }},[_vm._v(\" \"+_vm._s(rp.availabilityOnDay(day) ? _vm.$n(rp.availabilityOnDay(day).price, { maximumFractionDigits: 0, }) : \"\")+\" \")])]}}],null,true)})],1),_c('div',_vm._l((_vm.ratePlanFieldsShown()),function(field){return _c('CalendarBoxRow',{key:field.key,attrs:{\"cell\":_vm.config.cell}},[_c('template',{slot:\"left\"},[_c('div',{staticClass:\"rate__name\",style:({ height: _vm.config.cell.h + 'px' })},[_c('span',[_vm._v(_vm._s(_vm.$t(field.textResource)))])])]),_c('template',{slot:\"track\"},[_c('BoxDayTrack',{key:field.key,attrs:{\"startIdx\":_vm.boxDayStartIdx,\"from\":_vm.boxDayStart,\"to\":_vm.boxDayEnd,\"highlightPeriod\":_vm.highlightPeriod,\"cell\":_vm.config.cell,\"selectable\":_vm.selectableInputPrice(\n field.key,\n rp.isDerived,\n rp.isOBSpecific\n ) && _vm.allowedToModifyCalendar,\"selection\":_vm.isEqual(_vm.selection.row, Object.assign({}, field,\n {utid: ut.id,\n rpid: rp.id}))\n ? _vm.selection.selection\n : null,\"openTimelineOnClick\":_vm.openAvailabilityTimelineOnClick},on:{\"update:selection\":function($event){_vm.selection = {\n row: Object.assign({}, field, {utid: ut.id, rpid: rp.id}),\n selection: $event,\n }},\"single\":function($event){return _vm.openInputPriceEditor(ut, rp, field, $event)},\"selected\":function($event){return _vm.openInputPriceEditor(ut, rp, field, $event)},\"openTimeline\":function($event){return _vm.openTimeline(rp.id, null, $event, 'inputPrice')}},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\n var day = ref.day;\nreturn [_c('div',{staticClass:\"day-track--center day-track--center-sm\"},[(\n field.type === 'boolean' &&\n _vm.dayFieldValue(rp, day, field)\n )?_c('i',{staticClass:\"fal fa-check\"}):(\n field.type === 'number' &&\n _vm.dayFieldValue(rp, day, field) != null\n )?_c('span',[_vm._v(_vm._s(_vm.$n(_vm.dayFieldValue(rp, day, field), { maximumFractionDigits: 0, })))]):_vm._e()])]}}],null,true)})],1)],2)}),1),(_vm.currentSettings.showRestrictions)?_c('div',_vm._l((_vm.ratePlanRestrictionFieldsShown),function(field){return _c('CalendarBoxRow',{key:field.key,attrs:{\"cell\":_vm.config.cell}},[_c('template',{slot:\"left\"},[_c('div',{staticClass:\"rate__name\",style:({ height: _vm.config.cell.h + 'px' })},[_c('span',[_vm._v(_vm._s(_vm.$t(field.textResource)))])])]),_c('template',{slot:\"track\"},[_c('BoxDayTrack',{key:field.key,attrs:{\"startIdx\":_vm.boxDayStartIdx,\"from\":_vm.boxDayStart,\"to\":_vm.boxDayEnd,\"highlightPeriod\":_vm.highlightPeriod,\"cell\":_vm.config.cell,\"selectable\":_vm.allowedToModifyCalendar,\"selection\":_vm.isEqual(_vm.selection.row, Object.assign({}, field,\n {utid: ut.id,\n rpid: rp.id}))\n ? _vm.selection.selection\n : null,\"openTimelineOnClick\":_vm.openAvailabilityTimelineOnClick},on:{\"update:selection\":function($event){_vm.selection = {\n row: Object.assign({}, field, {utid: ut.id, rpid: rp.id}),\n selection: $event,\n }},\"single\":function($event){return _vm.openRestrictionEditor(ut, rp, field, $event)},\"selected\":function($event){return _vm.openRestrictionEditor(ut, rp, field, $event)},\"openTimeline\":function($event){return _vm.openTimeline(rp.id, null, $event, field.key)}},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\n var day = ref.day;\nreturn [_c('div',{staticClass:\"day-track--center day-track--center-sm\"},[(\n field.type === 'boolean' &&\n _vm.dayFieldValue(rp, day, field)\n )?_c('i',{staticClass:\"fal fa-check\"}):(field.type === 'number')?_c('span',[_vm._v(_vm._s(_vm.dayFieldValue(rp, day, field)))]):_vm._e()])]}}],null,true)})],1)],2)}),1):_vm._e(),(_vm.currentSettings.showOBRatePlans)?_c('div',_vm._l((_vm.OBRatePlanShown(ut, row, rp)),function(obrp){return _c('CalendarBoxRow',{key:obrp.id,style:({ top: obrp.offset + 'px', position: 'absolute' }),attrs:{\"item\":obrp,\"cell\":_vm.config.cell}},[_c('template',{slot:\"left\"},[_c('div',{staticClass:\"calendar__left--button only-on-hover--trigger text--lighten-1\",class:{\n 'black--text text--lighten-1': !_vm.$vuetify.theme.dark,\n 'white--text': _vm.$vuetify.theme.dark,\n },staticStyle:{\"height\":\"100%\"},on:{\"click\":function($event){return _vm.expandRatePlan(obrp)}}},[(_vm.allowedToModifyCalendar)?_c('div',{staticClass:\"v-btn v-btn--flat v-btn--round v-btn--icon v-size--x-small rate-plan__icon\",on:{\"click\":function($event){$event.stopPropagation();return _vm.bulkEditRatePlan(ut, obrp)}}},[_c('i',{staticClass:\"fa fa-fw fa-user\"})]):_c('div',{staticClass:\"v-btn v-btn--flat v-btn--round v-btn--icon v-size--x-small\"},[_c('i',{staticClass:\"fa fa-fw fa-user\"})]),_c('span',{attrs:{\"title\":_vm.getRatePlanFullName(obrp)}},[_vm._v(_vm._s(_vm.getRatePlanName(obrp)))]),_c('v-spacer'),(obrp.isDerived || _vm.tenantOBRsUseRelativePricing)?_c('v-icon',{staticClass:\"mr-1 black--text\",class:{\n 'text--lighten-3': !_vm.$vuetify.theme.dark,\n 'text--lighten-2': _vm.$vuetify.theme.dark,\n },attrs:{\"x-small\":\"\"}},[_vm._v(\"fa fa-lock-alt\")]):_vm._e()],1)]),_c('template',{slot:\"track\"},[_c('BoxDayTrack',{key:obrp.id,attrs:{\"startIdx\":_vm.boxDayStartIdx,\"from\":_vm.boxDayStart,\"to\":_vm.boxDayEnd,\"highlightPeriod\":_vm.highlightPeriod,\"cell\":_vm.config.cell,\"selectable\":!obrp.isDerived &&\n _vm.allowedToModifyPrices &&\n !_vm.tenantOBRsUseRelativePricing,\"selection\":_vm.selection.row === obrp ? _vm.selection.selection : null,\"openTimelineOnClick\":_vm.openAvailabilityTimelineOnClick},on:{\"update:selection\":function($event){_vm.selection = { row: obrp, selection: $event }},\"single\":function($event){return _vm.openPriceEditor(ut, obrp, $event)},\"selected\":function($event){return _vm.openPriceEditor(ut, obrp, $event)},\"openTimeline\":function($event){return _vm.openTimeline(obrp.id, null, $event, 'price')}},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\n var day = ref.day;\nreturn [_c('div',{staticClass:\"day-track--center day-track--center-sm\",class:{\n 'blocked-availability':\n _vm.tenantUsesAvailabilityBlockerCalculations &&\n obrp.availabilityOnDay(day)\n ? obrp.availabilityOnDay(day).isBlocked\n : false,\n }},[_vm._v(\" \"+_vm._s(obrp.availabilityOnDay(day) ? _vm.$n(obrp.availabilityOnDay(day).price, { maximumFractionDigits: 0, }) : \"\")+\" \")])]}}],null,true)})],1),_vm._l((_vm.ratePlanFieldsShown()),function(field){return _c('CalendarBoxRow',{key:field.key,attrs:{\"cell\":_vm.config.cell}},[_c('template',{slot:\"left\"},[_c('div',{staticClass:\"rate__name\",style:({ height: _vm.config.cell.h + 'px' })},[_c('span',[_vm._v(_vm._s(_vm.$t(field.textResource)))])])]),_c('template',{slot:\"track\"},[_c('BoxDayTrack',{key:field.key,attrs:{\"startIdx\":_vm.boxDayStartIdx,\"from\":_vm.boxDayStart,\"to\":_vm.boxDayEnd,\"highlightPeriod\":_vm.highlightPeriod,\"cell\":_vm.config.cell,\"selectable\":_vm.selectableInputPrice(\n field.key,\n obrp.isDerived,\n obrp.isOBSpecific\n ) && _vm.allowedToModifyCalendar,\"selection\":_vm.isEqual(_vm.selection.row, Object.assign({}, field,\n {utid: ut.id,\n rpid: obrp.id}))\n ? _vm.selection.selection\n : null,\"openTimelineOnClick\":_vm.openAvailabilityTimelineOnClick},on:{\"update:selection\":function($event){_vm.selection = {\n row: Object.assign({}, field, {utid: ut.id, rpid: obrp.id}),\n selection: $event,\n }},\"single\":function($event){return _vm.openInputPriceEditor(ut, obrp, field, $event)},\"selected\":function($event){return _vm.openInputPriceEditor(ut, obrp, field, $event)},\"openTimeline\":function($event){return _vm.openTimeline(obrp.id, null, $event, 'inputPrice')}},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\n var day = ref.day;\nreturn [_c('div',{staticClass:\"day-track--center day-track--center-sm\"},[(\n field.type === 'boolean' &&\n _vm.dayFieldValue(obrp, day, field)\n )?_c('i',{staticClass:\"fal fa-check\"}):(\n field.type === 'number' &&\n _vm.dayFieldValue(obrp, day, field) != null\n )?_c('span',[_vm._v(_vm._s(_vm.$n(_vm.dayFieldValue(obrp, day, field), { maximumFractionDigits: 0, })))]):_vm._e()])]}}],null,true)})],1)],2)}),(_vm.currentSettings.showRestrictions)?_c('div',_vm._l((_vm.ratePlanRestrictionFieldsShown),function(field){return _c('CalendarBoxRow',{key:field.key,attrs:{\"cell\":_vm.config.cell}},[_c('template',{slot:\"left\"},[_c('div',{staticClass:\"rate__name\",style:({ height: _vm.config.cell.h + 'px' })},[_c('span',[_vm._v(_vm._s(_vm.$t(field.textResource)))])])]),_c('template',{slot:\"track\"},[_c('BoxDayTrack',{key:field.key,attrs:{\"startIdx\":_vm.boxDayStartIdx,\"from\":_vm.boxDayStart,\"to\":_vm.boxDayEnd,\"highlightPeriod\":_vm.highlightPeriod,\"cell\":_vm.config.cell,\"selectable\":_vm.allowedToModifyCalendar,\"selection\":_vm.isEqual(_vm.selection.row, Object.assign({}, field,\n {utid: ut.id,\n rpid: obrp.id}))\n ? _vm.selection.selection\n : null,\"openTimelineOnClick\":_vm.openAvailabilityTimelineOnClick},on:{\"update:selection\":function($event){_vm.selection = {\n row: Object.assign({}, field, {utid: ut.id, rpid: obrp.id}),\n selection: $event,\n }},\"single\":function($event){return _vm.openRestrictionEditor(ut, obrp, field, $event)},\"selected\":function($event){return _vm.openRestrictionEditor(ut, obrp, field, $event)},\"openTimeline\":function($event){return _vm.openTimeline(obrp.id, null, $event, field.key)}},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\n var day = ref.day;\nreturn [_c('div',{staticClass:\"day-track--center day-track--center-sm\"},[(\n field.type === 'boolean' &&\n _vm.dayFieldValue(obrp, day, field)\n )?_c('i',{staticClass:\"fal fa-check\"}):(field.type === 'number')?_c('span',[_vm._v(_vm._s(_vm.dayFieldValue(obrp, day, field)))]):_vm._e()])]}}],null,true)})],1)],2)}),1):_vm._e()],2)}),1):_vm._e()],2)}),1):_vm._e(),(_vm.currentSettings.showUnits)?_c('div',_vm._l((ut.unitsToDisplay),function(u,$unitIndex){return _c('CalendarBoxRow',{key:u.id,style:({\n height: u.height + 'px',\n top:\n ut.ratePlansHeight +\n ut.unitsToDisplay\n .slice(0, $unitIndex)\n .reduce(function (h, unit) { return h + unit.height; }, 0) +\n 'px',\n position: 'absolute',\n }),attrs:{\"item\":u,\"cell\":{ h: u.height }}},[_c('template',{slot:\"left\"},[_c('div',{staticClass:\"calendar__left--button\",class:[\n _vm.showUnitStatus ? 'only-on-hover--trigger' : '',\n _vm.showUnitStatus\n ? u.statusId ==\n _vm.accomodationUnitStatusEnum.NeedsCleaning ||\n u.statusId ==\n _vm.accomodationUnitStatusEnum.CleaningInProgress\n ? 'calendar__left--orange-text'\n : u.statusId ==\n _vm.accomodationUnitStatusEnum.NeedsRepair ||\n u.statusId ==\n _vm.accomodationUnitStatusEnum.RepairInProgress\n ? 'calendar__left--red-text'\n : 'calendar__left--green-text'\n : 'calendar__left--green-text' ],style:({ height: u.height + 'px' })},[_c('div',{staticClass:\"v-btn v-btn--flat v-btn--round v-btn--icon v-size--x-small\",class:{ unit__icon: !_vm.isInAvailabilitySearchModal },on:{\"click\":function($event){$event.stopPropagation();return _vm.openUnitStatusEditor(ut, u, $event)}}},[_c('i',{staticClass:\"fa fa-fw mr-1\",class:_vm.getStatusIcon(_vm.showUnitStatus ? u.statusId : 0)})]),_c('span',[_vm._v(_vm._s(u.name))]),_c('v-spacer'),(\n _vm.showUnitStatus &&\n u.note !== null &&\n u.note !== undefined &&\n u.note.length > 0\n )?_c('v-icon',{staticClass:\"mr-1 black--text\",class:{\n 'text--lighten-3': !_vm.$vuetify.theme.dark,\n 'text--lighten-2': _vm.$vuetify.theme.dark,\n },attrs:{\"x-small\":\"\"}},[_vm._v(\"fas fa-comment\")]):_vm._e()],1)]),_c('template',{slot:\"track\"},[_c('BoxDayTrack',{key:u.id,attrs:{\"startIdx\":_vm.boxDayStartIdx,\"from\":_vm.boxDayStart,\"to\":_vm.boxDayEnd,\"highlightPeriod\":_vm.highlightPeriod,\"cell\":{ w: _vm.config.cell.w, h: u.height },\"isForReservations\":true,\"selectable\":_vm.allowedToModifyReservations,\"selection\":_vm.selection.row === u ? _vm.selection.selection : null},on:{\"update:selection\":function($event){_vm.selection = { row: u, selection: $event }},\"single\":function($event){return _vm.openNewReservationModal(ut, u, $event)},\"selected\":function($event){return _vm.openNewReservationModal(ut, u, $event)},\"dragover\":function($event){_vm.allowedToModifyReservations &&\n _vm.reservationDragover(u, $event)},\"drop\":function($event){_vm.allowedToModifyReservations && _vm.reservationDrop(u, $event)}},scopedSlots:_vm._u([{key:\"overlay\",fn:function(){return _vm._l((u.allReservations()),function(res){return _c('ReservationTrackBox',{key:res.id,class:{\n 'cursor-pointer':\n !_vm.isInAvailabilitySearchModal &&\n _vm.allowedToModifyReservations,\n },attrs:{\"trackStart\":_vm.boxDayStart,\"trackStartIdx\":_vm.boxDayStartIdx,\"reservation\":res,\"cellWidth\":_vm.config.cell.w,\"cellHeight\":u.height,\"numberOfReservations\":u.maxReservationsInDay,\"draggable\":!_vm.isInAvailabilitySearchModal &&\n _vm.allowedToModifyReservations},on:{\"update:tooltip\":function($event){_vm.tooltip = $event},\"click\":function($event){return _vm.openExistingReservation($event)},\"drag\":function($event){return _vm.reservationDrag(ut, $event)},\"dragend\":function($event){!_vm.isInAvailabilitySearchModal &&\n _vm.allowedToModifyReservations &&\n _vm.reservationDragend()}}},[_vm._v(_vm._s(res.arrivalDate))])})},proxy:true}],null,true)})],1)],2)}),1):_vm._e()],2)})],2)}),1)],1),_c('RightDrawer',{staticClass:\"settings-drawer\",attrs:{\"open\":_vm.internalSettingsOpen,\"width\":\"360px\"},on:{\"update:open\":function($event){_vm.internalSettingsOpen=$event}}},[_c('v-toolbar',{attrs:{\"flat\":\"\"}},[_c('div',{staticClass:\"d-flex justify-space-between align-center flex-fill\"},[_c('h3',[_vm._v(_vm._s(_vm.$t(\"Calendar.Settings\")))]),_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){_vm.internalSettingsOpen = false}}},[_c('v-icon',[_vm._v(\"fal fa-times\")])],1)],1)]),_c('CalendarSettingsForm',{attrs:{\"isForAvailabilitySearchCalendar\":_vm.isInAvailabilitySearchModal}})],1),(!_vm.isInAvailabilitySearchModal)?_c('AvailabilityTimeline',{attrs:{\"open\":_vm.availabilityTimelineOpen,\"ratePlanAccomodationUnitTypeId\":_vm.availabilityTimelineRPUTId,\"accomodationUnitTypeId\":_vm.availabilityTimelineUnitTypeId,\"date\":_vm.availabilityTimelineDate,\"property\":_vm.availabilityTimelineProperty},on:{\"update:open\":function($event){_vm.availabilityTimelineOpen=$event}}}):_vm._e(),(!_vm.isInAvailabilitySearchModal)?_c('BulkEdit',{key:'b' + _vm.bulkKey,attrs:{\"open\":_vm.bulk,\"model\":_vm.bulkModel,\"settings\":_vm.currentSettings},on:{\"update:open\":function($event){_vm.bulk=$event},\"calendarReload\":_vm.calendarReload}}):_vm._e(),(!_vm.isInAvailabilitySearchModal)?_c('CalendarEditor',{ref:\"editor\",on:{\"calendarReload\":_vm.calendarReload,\"closed\":function($event){_vm.selection = { row: null, selection: null }}}}):_vm._e(),_c('RequireRole',{attrs:{\"policy\":\"MODIFY_RESERVATIONS\"}},[_c('ReservationModal',{attrs:{\"open\":_vm.reservationModalOpen,\"availabilities\":_vm.selectedAvailabilities,\"restrictions\":_vm.reservationRestrictions,\"reservationId\":_vm.reservationId,\"scrollId\":_vm.scrollId,\"fromCalendar\":true},on:{\"update:open\":function($event){_vm.reservationModalOpen=$event},\"calendarReload\":_vm.calendarReload}})],1),_c('RatePlanSelectModal',{attrs:{\"open\":_vm.ratePlanSelectOpen,\"availableRatePlans\":_vm.availableRatePlans,\"showApllyToAllCheckbox\":false},on:{\"update:open\":function($event){_vm.ratePlanSelectOpen=$event},\"ratePlanSelected\":function($event){return _vm.confirmNewReservationModal(\n _vm.reservationModalUT,\n _vm.reservationModalU,\n _vm.reservationModalEvent,\n $event\n )}}}),(!_vm.isInAvailabilitySearchModal)?_c('v-tooltip',{key:'tt' + _vm.tooltipKey,attrs:{\"value\":!!_vm.tooltip,\"position-x\":_vm.tootipPosition.x,\"position-y\":_vm.tootipPosition.y,\"bottom\":\"\"}},[(!!_vm.tooltip)?_c('div',[_c('div',[_vm._v(\"ID: \"+_vm._s(_vm.tooltip.reservationId))]),_c('div',[_vm._v(\" \"+_vm._s(_vm.$d(_vm.tooltip.arrival.toJSDate()) + \" - \" + _vm.$d(_vm.tooltip.departure.toJSDate()))+\" \")]),_c('div',[_vm._v(\" \"+_vm._s(_vm.$tc(\"{count} of nights\", _vm.tooltip.nights, { count: _vm.tooltip.nights }))+\" \")]),(_vm.tooltip.holderName != '')?_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"Reservation holder\"))+\" : \"+_vm._s(_vm.tooltip.holderName)+\" \")]):_vm._e(),(_vm.tooltip.customerNames.length > 0)?_c('div',[_vm._v(_vm._s(_vm.$t(\"Guests\"))+\" :\")]):_vm._e(),_vm._l((_vm.tooltip.customerNames),function(name){return _c('div',{key:name,staticClass:\"ml-4\"},[_vm._v(\" \"+_vm._s(name)+\" \")])}),(_vm.tooltip.otaName)?_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"VReservation.otachannelName\"))+\": \"+_vm._s(_vm.tooltip.otaName)+\" \")]):_vm._e(),(_vm.tooltip.status)?_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"VReservation.statusName\"))+\": \"+_vm._s(_vm.$t(_vm.tooltip.status.text))+\" \")]):_vm._e(),_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"Reservation.NumberOfUnits\"))+\": \"+_vm._s(_vm.tooltip.unitsCount)+\" \")])],2):_vm._e()]):_vm._e()],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('RightDrawer',{staticClass:\"drawer\",attrs:{\"open\":_vm.openInternal,\"initial\":_vm.initialFormData,\"watched\":_vm.formData,\"is-watched-valid\":!_vm.submitDisabled},on:{\"update:open\":function($event){_vm.openInternal=$event},\"save\":_vm.submit},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('v-sheet',{staticClass:\"actions d-flex py-5 px-4\"},[_c('v-btn',{attrs:{\"color\":\"primary\",\"disabled\":_vm.submitting,\"loading\":_vm.submitting},on:{\"click\":_vm.save}},[_vm._v(_vm._s(_vm.$t(\"Save\")))]),_c('v-btn',{staticClass:\"mx-2 reset-btn\",attrs:{\"text\":\"\",\"disabled\":_vm.submitting},on:{\"click\":_vm.reset}},[_vm._v(_vm._s(_vm.$t(\"Reset\")))])],1)]},proxy:true}])},[_c('v-toolbar',[_c('div',{staticClass:\"d-flex justify-space-between align-center flex-fill\"},[_c('h3',[_vm._v(_vm._s(_vm.$t(\"BulkEdit.Title\")))]),_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){_vm.openInternal = false}}},[_c('v-icon',[_vm._v(\"fal fa-times\")])],1)],1)]),_c('v-form',{ref:\"bulkEditForm\",staticClass:\"form\",attrs:{\"disabled\":_vm.submitting,\"lazy-validation\":\"\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.submit.apply(null, arguments)}},model:{value:(_vm.form),callback:function ($$v) {_vm.form=$$v},expression:\"form\"}},[(_vm.isUnitTypeEdit)?_c('UnitTypePart',{attrs:{\"model\":_vm.formData.model,\"dates\":_vm.dates,\"weekdays\":_vm.weekdays,\"showApplyCategoriesCheckbox\":!_vm.tenantOBRsUseRelativePricing &&\n _vm.calendarOBLOSCategoriesApplicationAllowed},on:{\"update:model\":function($event){return _vm.$set(_vm.formData, \"model\", $event)},\"update:dates\":function($event){_vm.dates=$event},\"update:weekdays\":function($event){_vm.weekdays=$event}}}):(_vm.isRatePlanEdit)?_c('RatePlanPart',{attrs:{\"model\":_vm.formData.model,\"dates\":_vm.dates,\"weekdays\":_vm.weekdays},on:{\"update:model\":function($event){return _vm.$set(_vm.formData, \"model\", $event)},\"update:dates\":function($event){_vm.dates=$event},\"update:weekdays\":function($event){_vm.weekdays=$event}}}):_vm._e(),_c('v-container',[(_vm.isRatePlanEdit && !_vm.model.ratePlan.isDerived)?_c('v-row',[_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"6\"}},[_c('v-radio-group',{staticClass:\"ml-3 mt-0\",attrs:{\"label\":_vm.$t('Calendar.BulkEditUpdateType.Hint')},model:{value:(_vm.initialAvailabilitySetupType),callback:function ($$v) {_vm.initialAvailabilitySetupType=$$v},expression:\"initialAvailabilitySetupType\"}},[_c('v-radio',{attrs:{\"label\":_vm.$t('BulkEdit.Changes'),\"value\":1}}),_c('v-radio',{attrs:{\"label\":_vm.$t('BulkEdit.Original'),\"value\":2}})],1)],1),(\n _vm.hasOBRules &&\n _vm.initialAvailabilitySetupType === _vm.SetupTypeEnum.Update &&\n !_vm.tenantOBRsUseRelativePricing\n )?_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"6\"}},[_c('v-radio-group',{staticClass:\"ml-3 mt-0\",attrs:{\"label\":_vm.$t('Calendar.RelatedRatePlansPriceUpdateType.Hint')},model:{value:(_vm.relatedRatePlansPriceUpdateType),callback:function ($$v) {_vm.relatedRatePlansPriceUpdateType=$$v},expression:\"relatedRatePlansPriceUpdateType\"}},[_c('v-radio',{attrs:{\"value\":_vm.RelatedRatePlansPriceUpdateTypeEnum.DontUpdate,\"label\":_vm.$t('Calendar.RelatedRatePlansPriceUpdateType.NoUpdate')}}),_c('v-radio',{attrs:{\"value\":_vm.RelatedRatePlansPriceUpdateTypeEnum.ApplyChange,\"label\":_vm.$t('Calendar.RelatedRatePlansPriceUpdateType.ApplyUpdate')}}),(\n !_vm.tenantOBRsUseRelativePricing &&\n _vm.calendarOBLOSCategoriesApplicationAllowed\n )?_c('v-radio',{attrs:{\"value\":_vm.RelatedRatePlansPriceUpdateTypeEnum.ApplyOBLOSCategories,\"label\":_vm.$t('Calendar.RelatedRatePlansPriceUpdateType.ApplyCategories')}}):_vm._e()],1)],1):_vm._e()],1):_vm._e()],1),(_vm.initialAvailabilitySetupType == 1)?_c('v-container',{attrs:{\"fluid\":\"\"}},[(!_vm.hidePriceEdit)?_c('RequireRole',{attrs:{\"policy\":\"MODIFY_CALENDAR_PRICES\"}},[_c('div',[_c('v-row',[_c('v-divider')],1),_c('div',{staticClass:\"mt-4\",class:{\n 'error--text': _vm.priceChangesError || !_vm.priceChange.valid,\n }},[_vm._v(\" \"+_vm._s(_vm.$t(\"BulkEdit.PriceChange\"))+\" \")]),_c('v-row',[_c('v-col',{attrs:{\"sm\":\"6\",\"cols\":\"12\"}},[_c('PriceInput',{staticClass:\"mt-2\",attrs:{\"label\":_vm.$t('BulkEdit.PriceChange.Default'),\"currencyId\":_vm.currencyCodeForPriceInput,\"required\":false,\"dense\":true,\"placeholderHint\":_vm.$t('Calendar.PriceEditor.Hint')},on:{\"change\":function($event){return _vm.onPriceChanged($event)}}})],1)],1),(_vm.priceChange.value && _vm.inputPriceChange.value)?_c('div',[_c('p',{staticClass:\"relative-warning\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"BulkEdit.BothPricesRelativeWarning\"))+\" \")])]):_vm._e(),(_vm.tenantUsesInputPrice)?_c('div',{staticClass:\"mt-4\",class:{ 'error--text': !_vm.inputPriceChange.valid }},[_vm._v(\" \"+_vm._s(_vm.$t(\"BulkEdit.InputPrice\"))+\" \")]):_vm._e(),(_vm.tenantUsesInputPrice)?_c('v-row',[_c('v-col',{attrs:{\"sm\":\"6\",\"cols\":\"12\"}},[_c('PriceInput',{staticClass:\"mt-2\",attrs:{\"label\":_vm.$t('BulkEdit.PriceChange.Default'),\"currencyId\":_vm.currencyCodeForPriceInput,\"required\":false,\"dense\":true,\"placeholderHint\":_vm.$t('Calendar.PriceEditor.Hint')},on:{\"change\":function($event){return _vm.onInputPriceChanged($event)}}})],1)],1):_vm._e(),_c('v-row',{staticClass:\"mt-2\"},[_c('RatePlanPricesList',{ref:\"ratePlanPrices\",staticStyle:{\"width\":\"100%\"},attrs:{\"disabled\":_vm.submitting,\"currencyId\":_vm.currencyCodeForPriceInput,\"changesOriginalPrice\":_vm.dayOverridesChangeOriginalPrice},on:{\"change\":function($event){_vm.priceChanges = $event},\"error\":function($event){_vm.priceChangesError = $event}}})],1)],1)]):_vm._e(),_c('v-row',[_c('v-divider')],1),_c('div',{staticClass:\"mt-4\",class:{ 'error--text': _vm.restrictionsError }},[_vm._v(\" \"+_vm._s(_vm.$t(\"BulkEdit.Restrictions\"))+\" \")]),((_vm.hasOBRules || _vm.hasDerived) && _vm.isRatePlanEdit)?_c('v-row',[_c('v-radio-group',{staticClass:\"ml-3 mt-0\",attrs:{\"label\":_vm.$t('Calendar.RelatedRatePlansRestrictionsUpdateType.Hint')},model:{value:(_vm.relatedRatePlansRestrictionsUpdateType),callback:function ($$v) {_vm.relatedRatePlansRestrictionsUpdateType=$$v},expression:\"relatedRatePlansRestrictionsUpdateType\"}},[_c('v-radio',{attrs:{\"value\":_vm.RelatedRatePlansRestrictionsUpdateTypeEnum.DontUpdate,\"label\":_vm.$t('Calendar.RelatedRatePlansRestrictionsUpdateType.NoUpdate')}}),(_vm.hasOBRules)?_c('v-radio',{attrs:{\"value\":_vm.RelatedRatePlansRestrictionsUpdateTypeEnum.UpdateOBSpecificOnly,\"label\":_vm.$t(\n 'Calendar.RelatedRatePlansRestrictionsUpdateType.UpdateOBLOS'\n )}}):_vm._e(),(_vm.hasDerived)?_c('v-radio',{attrs:{\"value\":_vm.RelatedRatePlansRestrictionsUpdateTypeEnum.UpdateDerivedOnly,\"label\":_vm.$t(\n 'Calendar.RelatedRatePlansRestrictionsUpdateType.UpdateDerived'\n )}}):_vm._e(),(_vm.hasOBRules && _vm.hasDerived)?_c('v-radio',{attrs:{\"value\":_vm.RelatedRatePlansRestrictionsUpdateTypeEnum.UpdateDerivedAndOBSpecific,\"label\":_vm.$t(\n 'Calendar.RelatedRatePlansRestrictionsUpdateType.UpdateDerivedAndOBLOS'\n )}}):_vm._e()],1)],1):_vm._e(),_c('v-row',[_c('RatePlanFieldsList',{ref:\"ratePlanFieldsList\",staticStyle:{\"width\":\"100%\"},attrs:{\"settings\":_vm.settings,\"disabled\":_vm.submitting},on:{\"change\":function($event){_vm.restrictions = $event},\"error\":function($event){_vm.restrictionsError = $event}}})],1)],1):_vm._e(),(_vm.initialAvailabilitySetupType == 2)?_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('form-description',{staticClass:\"mt-3 mb-0\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"BulkEdit.Original.Hint\"))+\" \")]),_c('form-description',{staticClass:\"mt-3 mb-0\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"BulkEdit.Original.AttentionHint\"))+\" \")])],1):_vm._e(),_c('input',{staticClass:\"d-none\",attrs:{\"type\":\"submit\"}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('div',{class:{\n 'rate-plan-name': true,\n 'secondary--text': !_vm.$vuetify.theme.dark,\n 'white--text': _vm.$vuetify.theme.dark,\n }},[_vm._v(\" \"+_vm._s(_vm.ratePlanName)+\" \")])])],1),_vm._l((_vm.internalDates),function(date,index){return _c('v-row',{key:index},[_c('v-col',{staticClass:\"bulk-edit-dates\",attrs:{\"cols\":\"6\"}},[_c('DateField',{class:{ 'datefield-padding': index == 0 },attrs:{\"range\":\"\",\"dense\":true,\"label\":_vm.$t('Edit From To') + '*',\"rules\":[_vm.required, _vm.existingBulkEditDateRange(date.dateRange, index)]},scopedSlots:_vm._u([{key:\"append-outer\",fn:function(){return [(index > 0)?_c('v-icon',{attrs:{\"medium\":\"\",\"color\":\"red\"},on:{\"click\":function($event){return _vm.removeBulkEditPeriod(index)}}},[_vm._v(\"fal fa-trash\")]):_vm._e()]},proxy:true}],null,true),model:{value:(date.dateRange),callback:function ($$v) {_vm.$set(date, \"dateRange\", $$v)},expression:\"date.dateRange\"}})],1)],1)}),_c('v-row',[_c('v-col',{staticClass:\"add-bulk-edit-period-btn\",attrs:{\"cols\":\"12\"}},[_c('v-btn',{class:_vm.$vuetify.theme.light ? 'secondary--text' : 'primary--text',attrs:{\"text\":\"\",\"small\":\"\"},on:{\"click\":function($event){return _vm.addBulkEditPeriod()}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"BulkEdit.AddPeriod\"))+\" \")])],1)],1),_c('div',{staticClass:\"weekdays-margins\"},[_c('div',{staticClass:\"v-messages pb-1 pl-3\",class:_vm.$vuetify.theme.dark ? 'theme--dark' : 'theme--light'},[_vm._v(\" \"+_vm._s(_vm.$t(\"BulkEdit.Weekdays.Hint\"))+\" \")]),_c('v-btn-toggle',{staticClass:\"week-toggle\",attrs:{\"tile\":\"\",\"color\":\"primary\",\"multiple\":\"\",\"borderless\":\"\"},model:{value:(_vm.internalWeekdays),callback:function ($$v) {_vm.internalWeekdays=$$v},expression:\"internalWeekdays\"}},_vm._l((_vm.weekdaysList),function(w,i){return _c('v-btn',{key:w,attrs:{\"value\":i}},[_vm._v(_vm._s(_vm.weekdaysList[i]))])}),1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-autocomplete',{attrs:{\"multiple\":\"\",\"item-value\":\"id\",\"search-input\":_vm.search,\"filter\":_vm.filterFunction,\"label\":_vm.$t('BulkEdit.AffectedUnitTypes'),\"items\":_vm.items,\"rules\":[_vm.atLeastOne]},on:{\"update:searchInput\":function($event){_vm.search=$event},\"update:search-input\":function($event){_vm.search=$event}},scopedSlots:_vm._u([{key:\"item\",fn:function(ref){\n var item = ref.item;\nreturn [_c('div',{staticClass:\"d-flex flex-row\"},[_c('v-simple-checkbox',{attrs:{\"ripple\":false,\"value\":_vm.selected.some(function (x) { return x === item.id; })},on:{\"input\":function($event){return _vm.selectItem(item, $event)}}}),_c('div',{staticClass:\"d-flex flex-column ml-8\"},[_c('div',[_vm._v(_vm._s(item.propertyName))]),_c('div',{staticClass:\"de-emphasize\"},[_vm._v(_vm._s(item.name))])])],1)]}},{key:\"selection\",fn:function(ref){\n var item = ref.item;\nreturn [_c('v-chip',{attrs:{\"close\":\"\"},on:{\"click:close\":function($event){return _vm.deselect(item)}}},[_c('div',{staticClass:\"selection-chip\"},[_c('div',[_vm._v(_vm._s(item.propertyName))]),_c('div',{staticClass:\"de-emphasize\"},[_vm._v(_vm._s(item.name))])])])]}},{key:\"prepend-item\",fn:function(){return [(_vm.filteredItems.length > 0)?_c('v-list-item',{attrs:{\"ripple\":\"\"},on:{\"mousedown\":function($event){$event.preventDefault();},\"click\":_vm.toggleSelectAll}},[_c('v-list-item-action',[_c('v-simple-checkbox',{attrs:{\"ripple\":false,\"value\":_vm.allSelected,\"indeterminate\":_vm.someSelected && !_vm.allSelected},on:{\"click\":_vm.toggleSelectAll}})],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.$t(\"Select all\"))+\" \")])],1)],1):_vm._e()]},proxy:true}]),model:{value:(_vm.selected),callback:function ($$v) {_vm.selected=$$v},expression:\"selected\"}})],1)],1)],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, PropSync, Vue } from \"vue-property-decorator\";\nimport {\n CalendarPropertyView,\n CalendarRatePlanAccomodationUnitTypeView,\n CalendarUnitTypeView,\n} from \"../CalendarTypes\";\nimport DateField from \"@/components/misc/DateField.vue\";\nimport { Info } from \"luxon\";\nimport { Getter } from \"vuex-class\";\nimport * as _ from \"lodash\";\n\nexport type RatePlanBulkEdit = {\n ratePlan: CalendarRatePlanAccomodationUnitTypeView;\n allProperties: CalendarPropertyView[];\n selectedItems: CalendarUnitTypeView[];\n};\n\ntype CalendarUnitTypeViewWithPropertyName = CalendarUnitTypeView & {\n propertyName: string;\n};\n\nexport type BulkEditDateRange = {\n dateRange: string[] | null;\n};\n\n@Component({ components: { DateField } })\nexport default class RatePlanPart extends Vue {\n @PropSync(\"model\") internal?: RatePlanBulkEdit;\n @PropSync(\"dates\") internalDates?: BulkEditDateRange[];\n @PropSync(\"weekdays\", { default: () => [] }) internalWeekdays?: number[];\n\n @Getter(\"language/language\") language?: string;\n\n @Getter(\"appParams/showPAXSuffixInRatePlanName\")\n showPAXSuffixInRatePlanName?: boolean;\n @Getter(\"appParams/showLOSSuffixInRatePlanName\")\n showLOSSuffixInRatePlanName?: boolean;\n\n get weekdaysList() {\n return Info.weekdays(\"short\", { locale: this.language });\n }\n\n get ratePlanName() {\n if (!this.internal) return \"\";\n\n const rp = this.internal.ratePlan;\n let paxSuffix = \"\";\n let losSuffix = \"\";\n const currencySuffix = ` (${rp.currencyCode})`;\n\n if (this.showPAXSuffixInRatePlanName) {\n paxSuffix =\n rp.minPersons === rp.maxPersons\n ? `, ${rp.minPersons} pax`\n : `, ${rp.minPersons}-${rp.maxPersons} pax`;\n }\n\n if (this.showLOSSuffixInRatePlanName) {\n losSuffix =\n rp.maxStay === 0\n ? `, ${rp.minStay}+ LOS`\n : rp.minStay === rp.maxStay\n ? `, ${rp.minStay} LOS`\n : `, ${rp.minStay}-${rp.maxStay} LOS`;\n }\n\n return rp.name + paxSuffix + losSuffix + currencySuffix;\n }\n\n required(v: string) {\n return v ? true : this.$t(\"Validation.Required\");\n }\n atLeastOne(v: number[]) {\n return v.length > 0 ? true : this.$t(\"Validation.SelectAtLeastOne\");\n }\n\n existingBulkEditDateRange(range: string[] | null, index: number) {\n if (range != null && range.length === 2) {\n const from = new Date(range[0]);\n const to = new Date(range[1]);\n\n const dates = this.internalDates?.filter((_, i) => i !== index);\n\n if (dates != null && from != null && to != null) {\n return dates.some((x) => {\n if (x.dateRange != undefined) {\n const dateRangeFrom = new Date(x.dateRange[0]);\n const dateRangeTo = new Date(x.dateRange[1]);\n\n return this.dateRangeOverlaps(dateRangeFrom, dateRangeTo, from, to);\n }\n })\n ? this.$t(\"Validation.BulkEditDateRange\")\n : true;\n }\n }\n return true;\n }\n\n dateRangeOverlaps(aStart: Date, aEnd: Date, bStart: Date, bEnd: Date) {\n if (\n aStart.getTime() <= bStart.getTime() &&\n bStart.getTime() <= aEnd.getTime()\n )\n return true; // b starts in a\n if (aStart.getTime() <= bEnd.getTime() && bEnd.getTime() <= aEnd.getTime())\n return true; // b ends in a\n if (\n bStart.getTime() <= aStart.getTime() &&\n aEnd.getTime() <= bEnd.getTime()\n )\n return true; // a in b\n return false;\n }\n\n get items() {\n const selectedRatePlanId = this.internal?.ratePlan.ratePlanId;\n const selectedRputId = this.internal?.ratePlan.id;\n const selectedIsDefault = this.internal?.ratePlan.isDefault;\n return (\n this.internal?.allProperties.flatMap((p) =>\n p.unitTypes\n .filter((ut) =>\n ut.ratePlans?.some((r) => \n (r.ratePlanId === selectedRatePlanId && selectedIsDefault) || (r.id === selectedRputId && !selectedIsDefault))\n )\n .map(\n (ut) =>\n ({\n ...ut,\n propertyName: p.name,\n } as CalendarUnitTypeViewWithPropertyName)\n )\n ) ?? []\n );\n }\n\n get selected() {\n return this.internal?.selectedItems.map((x) => x.id) ?? [];\n }\n set selected(value: number[]) {\n if (this.internal) {\n this.internal.selectedItems = this.internal.allProperties\n .flatMap((p) => p.unitTypes)\n .filter((i) => value.some((x) => x === i.id));\n }\n }\n\n search = \"\";\n get filteredItems() {\n if (this.search) {\n return this.items.filter((e) =>\n `${e.propertyName} ${e.name}`.toLowerCase().includes(this.search)\n );\n }\n\n return this.items;\n }\n toggleSelectAll() {\n if (!this.allSelected) {\n this.selected = _.uniq([\n ...this.selected,\n ...this.filteredItems.map((x) => x.id),\n ]);\n } else {\n const ids = this.filteredItems.map((x) => x.id);\n this.selected = this.selected.filter((x) => !ids.includes(x));\n }\n }\n\n get someSelected() {\n return this.filteredItems.some((e) => this.selected.includes(e.id));\n }\n\n get allSelected() {\n return !this.filteredItems.some((e) => !this.selected.includes(e.id));\n }\n\n filterFunction(\n item: CalendarUnitTypeViewWithPropertyName,\n queryText: string\n ): boolean {\n return `${item.propertyName} ${item.name}`\n .toLowerCase()\n .includes(queryText);\n }\n\n selectItem(item: CalendarUnitTypeView, evt: boolean) {\n if (this.internal) {\n if (evt) {\n this.internal.selectedItems.push(item);\n } else {\n this.deselect(item);\n }\n }\n }\n\n deselect(evt: CalendarUnitTypeView) {\n if (this.internal) {\n this.internal.selectedItems = this.internal.selectedItems.filter(\n (x) => x.id !== evt.id\n );\n }\n }\n\n addBulkEditPeriod() {\n this.internalDates?.push({ dateRange: [] });\n }\n removeBulkEditPeriod(index: number) {\n if (index != undefined) {\n this.internalDates?.splice(index, 1);\n }\n }\n}\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!./RatePlanPart.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!./RatePlanPart.vue?vue&type=script&lang=ts&\"","// Styles\nimport './VBtnToggle.sass'\n\n// Mixins\nimport ButtonGroup from '../../mixins/button-group'\nimport Colorable from '../../mixins/colorable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(\n ButtonGroup,\n Colorable\n).extend({\n name: 'v-btn-toggle',\n\n props: {\n backgroundColor: String,\n borderless: Boolean,\n dense: Boolean,\n group: Boolean,\n rounded: Boolean,\n shaped: Boolean,\n tile: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n ...ButtonGroup.options.computed.classes.call(this),\n 'v-btn-toggle': true,\n 'v-btn-toggle--borderless': this.borderless,\n 'v-btn-toggle--dense': this.dense,\n 'v-btn-toggle--group': this.group,\n 'v-btn-toggle--rounded': this.rounded,\n 'v-btn-toggle--shaped': this.shaped,\n 'v-btn-toggle--tile': this.tile,\n ...this.themeClasses,\n }\n },\n },\n\n methods: {\n genData () {\n const data = this.setTextColor(this.color, {\n ...ButtonGroup.options.methods.genData.call(this),\n })\n\n if (this.group) return data\n\n return this.setBackgroundColor(this.backgroundColor, data)\n },\n },\n})\n","import { render, staticRenderFns } from \"./RatePlanPart.vue?vue&type=template&id=41b779ea&scoped=true&\"\nimport script from \"./RatePlanPart.vue?vue&type=script&lang=ts&\"\nexport * from \"./RatePlanPart.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./RatePlanPart.vue?vue&type=style&index=0&id=41b779ea&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"41b779ea\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAutocomplete } from 'vuetify/lib/components/VAutocomplete';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VBtnToggle } from 'vuetify/lib/components/VBtnToggle';\nimport { VChip } from 'vuetify/lib/components/VChip';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemAction } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSimpleCheckbox } from 'vuetify/lib/components/VCheckbox';\ninstallComponents(component, {VAutocomplete,VBtn,VBtnToggle,VChip,VCol,VContainer,VIcon,VListItem,VListItemAction,VListItemContent,VListItemTitle,VRow,VSimpleCheckbox})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{key:_vm.internal.unitType.id,attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('div',{class:{\n 'property-name': true,\n 'secondary--text': !_vm.$vuetify.theme.dark,\n 'white--text': _vm.$vuetify.theme.dark,\n }},[_vm._v(\" \"+_vm._s(_vm.model.property.name)+\" \")]),_c('div',{staticClass:\"b-large primary--text\"},[_vm._v(_vm._s(_vm.model.unitType.name))])])],1),_vm._l((_vm.internalDates),function(date,index){return _c('v-row',{key:index},[_c('v-col',{staticClass:\"bulk-edit-dates\",attrs:{\"cols\":_vm.isMobile ? 12 : 6}},[_c('DateField',{class:{ 'datefield-padding': index == 0 },attrs:{\"range\":\"\",\"dense\":true,\"label\":_vm.$t('Edit From To') + '*',\"rules\":[_vm.required, _vm.existingBulkEditDateRange(date.dateRange, index)]},scopedSlots:_vm._u([{key:\"append-outer\",fn:function(){return [(index > 0)?_c('v-icon',{attrs:{\"medium\":\"\",\"color\":\"red\"},on:{\"click\":function($event){return _vm.removeBulkEditPeriod(date)}}},[_vm._v(\"fal fa-trash\")]):_vm._e()]},proxy:true}],null,true),model:{value:(date.dateRange),callback:function ($$v) {_vm.$set(date, \"dateRange\", $$v)},expression:\"date.dateRange\"}})],1)],1)}),_c('v-row',[_c('v-col',{staticClass:\"add-bulk-edit-period-btn\",attrs:{\"cols\":\"12\"}},[_c('v-btn',{class:_vm.$vuetify.theme.light ? 'secondary--text' : 'primary--text',attrs:{\"text\":\"\",\"small\":\"\"},on:{\"click\":function($event){return _vm.addBulkEditPeriod()}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"BulkEdit.AddPeriod\"))+\" \")])],1)],1),_c('v-row'),_c('div',{staticClass:\"weekdays-margins pb-3\"},[_c('div',{staticClass:\"v-messages pb-1 pl-3\",class:_vm.$vuetify.theme.dark ? 'theme--dark' : 'theme--light'},[_vm._v(\" \"+_vm._s(_vm.$t(\"BulkEdit.Weekdays.Hint\"))+\" \")]),_c('v-btn-toggle',{staticClass:\"week-toggle\",attrs:{\"tile\":\"\",\"color\":\"primary\",\"multiple\":\"\",\"borderless\":\"\"},model:{value:(_vm.internalWeekdays),callback:function ($$v) {_vm.internalWeekdays=$$v},expression:\"internalWeekdays\"}},_vm._l((_vm.weekdaysList),function(w,i){return _c('v-btn',{key:w,attrs:{\"value\":i}},[_vm._v(_vm._s(_vm.weekdaysList[i]))])}),1)],1),(_vm.ratePlansCurrencies.length > 1)?_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"BulkEdit.RatePlansCurrencies\"))+\" \")]):_vm._e(),(_vm.ratePlansCurrencies.length > 1)?_c('v-radio-group',{attrs:{\"row\":\"\"},on:{\"change\":_vm.resetSelectedItems},model:{value:(_vm.selectedRatePlanCurrencyId),callback:function ($$v) {_vm.selectedRatePlanCurrencyId=$$v},expression:\"selectedRatePlanCurrencyId\"}},_vm._l((_vm.ratePlansCurrencies),function(c){return _c('v-radio',{key:c.id,attrs:{\"label\":c.name,\"value\":c.id}})}),1):_vm._e(),_c('div',[_vm._v(_vm._s(_vm.$t(\"BulkEdit.AffectedRatePlans\")))]),(!_vm.atLeastOne(_vm.internal.selectedItems))?_c('v-row',[_c('v-col',{staticClass:\"pb-0\",attrs:{\"cols\":\"7\"}},[_c('v-alert',{staticClass:\"mt-2 mb-0\",attrs:{\"color\":\"error\",\"outlined\":\"\",\"dense\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.$t(\"RatePlan.OneOrMoreShouldBeSelected\"))+\" \")])],1)],1):_vm._e(),_c('v-checkbox',{staticClass:\"mb-0 mt-4\",attrs:{\"label\":_vm.$t('Select all'),\"dense\":\"\",\"hide-details\":\"\",\"value\":_vm.allSelected() === 'all',\"input-value\":_vm.allSelected() === 'all',\"indeterminate\":_vm.allSelected() === 'some'},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.selectAll()}}}),_vm._l((_vm.ratePlanGroups),function(group){return _c('v-row',{key:group.id,staticClass:\"my-0\"},[(group.ratePlans.length === 1)?_c('v-col',{staticClass:\"my-0\",attrs:{\"cols\":\"12\"}},[_c('v-switch',{staticClass:\"pt-0 my-0\",attrs:{\"multiple\":\"\",\"value\":group.main,\"label\":group.name + ' (' + group.currencyCode + ')',\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.internal.selectedItems),callback:function ($$v) {_vm.$set(_vm.internal, \"selectedItems\", $$v)},expression:\"internal.selectedItems\"}})],1):_c('v-col',{staticClass:\"my-0\",attrs:{\"cols\":\"12\"}},[_c('v-checkbox',{staticClass:\"my-0\",attrs:{\"label\":_vm.$t('Select all') +\n ' - ' +\n group.name +\n ' (' +\n group.currencyCode +\n ')',\"dense\":\"\",\"hide-details\":\"\",\"value\":_vm.groupSelected(group.id) === 'all',\"input-value\":_vm.groupSelected(group.id) === 'all',\"indeterminate\":_vm.groupSelected(group.id) === 'some'},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.selectGroup(group.id)}}}),_vm._l((group.ratePlans),function(rate){return _c('v-row',{key:rate.id,attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"d-flex align-center\",attrs:{\"cols\":\"7\"}},[_c('v-switch',{staticClass:\"pt-0 ml-4 mt-3\",attrs:{\"multiple\":\"\",\"value\":rate,\"label\":_vm.getRatePlanName(rate),\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.internal.selectedItems),callback:function ($$v) {_vm.$set(_vm.internal, \"selectedItems\", $$v)},expression:\"internal.selectedItems\"}})],1),_c('v-col',{staticClass:\"pl-4 d-flex align-center\",attrs:{\"cols\":\"5\"}},[(\n !rate.isDefault &&\n !rate.isDerived &&\n _vm.showApplyCategoriesCheckbox\n )?_c('v-checkbox',{staticClass:\"pt-0 mt-3\",attrs:{\"label\":_vm.$t('Calendar.RelatedRatePlansPriceUpdateType.ApplyCategories'),\"dense\":\"\",\"hide-details\":\"\"},model:{value:(rate.applyOBLOSCategories),callback:function ($$v) {_vm.$set(rate, \"applyOBLOSCategories\", $$v)},expression:\"rate.applyOBLOSCategories\"}}):_vm._e(),(\n rate.isDefault &&\n !rate.isDerived &&\n group.ratePlans.some(function (x) { return !x.isDefault; }) &&\n _vm.showApplyCategoriesCheckbox\n )?_c('v-checkbox',{staticClass:\"pt-0 mt-3\",attrs:{\"label\":_vm.$t('Select all'),\"dense\":\"\",\"hide-details\":\"\",\"value\":_vm.areCategoriesAppliedToAll(group.id) === 'all',\"input-value\":_vm.areCategoriesAppliedToAll(group.id) === 'all',\"indeterminate\":_vm.areCategoriesAppliedToAll(group.id) === 'some'},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.applyCategoriesToAll(group.id)}}}):_vm._e()],1)],1)})],2)],1)}),_c('v-row',[_c('v-divider')],1),_c('div',{staticClass:\"mt-6\"},[_vm._v(_vm._s(_vm.$t(\"BulkEdit.AvailabilityChange\")))]),_c('v-row',[_c('v-col',{attrs:{\"sm\":\"3\",\"cols\":\"12\"}},[_c('NumericPicker',{attrs:{\"mode\":\"relative\"},model:{value:(_vm.internal.availability),callback:function ($$v) {_vm.$set(_vm.internal, \"availability\", $$v)},expression:\"internal.availability\"}})],1),_c('v-col',{attrs:{\"sm\":\"5\",\"cols\":\"12\"}},[_c('span',{staticClass:\"b-small\"},[_vm._v(_vm._s(_vm.$t(\"Calendar.AvailabilityEditor.Hint\")))])])],1)],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, PropSync, Vue, Prop } from \"vue-property-decorator\";\nimport {\n CalendarPropertyView,\n CalendarRatePlanAccomodationUnitTypeView,\n CalendarUnitTypeView,\n} from \"../CalendarTypes\";\nimport DateField from \"@/components/misc/DateField.vue\";\nimport NumericPicker from \"@/components/misc/NumericPicker.vue\";\nimport FormDescription from \"@/components/misc/FormDescription.vue\";\nimport { Info } from \"luxon\";\nimport { Action, Getter } from \"vuex-class\";\nimport { Currency } from \"@/shared/models/currency\";\nimport { BulkEditDateRange } from \"./RatePlanPart.vue\";\n\nexport type UnitTypeBulkEdit = {\n property: CalendarPropertyView;\n unitType: CalendarUnitTypeView;\n selectedItems: CalendarRatePlanAccomodationUnitTypeView[];\n availability?: string;\n};\n\n@Component({ components: { DateField, FormDescription, NumericPicker } })\nexport default class UnitTypePart extends Vue {\n @PropSync(\"model\") internal?: UnitTypeBulkEdit;\n @PropSync(\"dates\") internalDates?: BulkEditDateRange[];\n @PropSync(\"weekdays\", { default: () => [] }) internalWeekdays?: number[];\n\n @Action(\"codebooks/refreshCurrencies\")\n refreshCurrencies?: () => Promise;\n @Getter(\"codebooks/currencies\") currencies?: Currency[];\n\n @Getter(\"language/language\") language?: string;\n\n @Getter(\"appParams/showPAXSuffixInRatePlanName\")\n showPAXSuffixInRatePlanName?: boolean;\n @Getter(\"appParams/showLOSSuffixInRatePlanName\")\n showLOSSuffixInRatePlanName?: boolean;\n\n @Prop({ default: false }) showApplyCategoriesCheckbox?: boolean;\n\n get isMobile() {\n return this.$vuetify.breakpoint.mobile;\n }\n\n async created() {\n if ((this.currencies?.length ?? 0) === 0 && this.refreshCurrencies) {\n await this.refreshCurrencies();\n }\n }\n\n get weekdaysList() {\n return Info.weekdays(\"short\", { locale: this.language });\n }\n\n required(v: string) {\n return v ? true : this.$t(\"Validation.Required\");\n }\n atLeastOne(v: CalendarRatePlanAccomodationUnitTypeView[]) {\n return v.length > 0 ? true : false;\n }\n\n existingBulkEditDateRange(range: string[] | null, index: number) {\n if (range != null && range.length === 2) {\n const from = new Date(range[0]);\n const to = new Date(range[1]);\n\n const dates = this.internalDates?.filter((_, i) => i !== index);\n\n if (dates != null && from != null && to != null) {\n return dates.some((x) => {\n if (x.dateRange != undefined) {\n const dateRangeFrom = new Date(x.dateRange[0]);\n const dateRangeTo = new Date(x.dateRange[1]);\n\n return this.dateRangeOverlaps(dateRangeFrom, dateRangeTo, from, to);\n }\n })\n ? this.$t(\"Validation.BulkEditDateRange\")\n : true;\n }\n }\n return true;\n }\n\n dateRangeOverlaps(aStart: Date, aEnd: Date, bStart: Date, bEnd: Date) {\n if (\n aStart.getTime() <= bStart.getTime() &&\n bStart.getTime() <= aEnd.getTime()\n )\n return true;\n if (aStart.getTime() <= bEnd.getTime() && bEnd.getTime() <= aEnd.getTime())\n return true;\n if (\n bStart.getTime() <= aStart.getTime() &&\n aEnd.getTime() <= bEnd.getTime()\n )\n return true;\n return false;\n }\n\n get selected() {\n return this.internal?.selectedItems.map((x) => x.id) ?? [];\n }\n\n get ratePlanGroups() {\n const allRates = this.internal?.unitType.ratePlans ?? [];\n return allRates\n .filter((x) => x.isDefault)\n .map((main) => {\n return {\n id: main.id,\n name: main.name,\n currencyCode: main.currencyCode,\n main: main,\n ratePlans: [\n main,\n ...allRates\n .filter((x) => !x.isDefault && x.parentId == main.id)\n .sort((a, b) =>\n (a.minPersons ?? 0) > (b.minPersons ?? 0)\n ? 1\n : (a.minPersons ?? 0) < (b.minPersons ?? 0)\n ? -1\n : (a.minStay ?? 0) > (b.minStay ?? 0)\n ? 1\n : (a.minStay ?? 0) < (b.minStay ?? 0)\n ? -1\n : 0\n ),\n ],\n };\n });\n }\n\n getRatePlanName(rp: CalendarRatePlanAccomodationUnitTypeView) {\n let paxSuffix = \"\";\n let losSuffix = \"\";\n const currencySuffix = ` (${rp.currencyCode})`;\n\n if (this.showPAXSuffixInRatePlanName) {\n paxSuffix =\n rp.minPersons === rp.maxPersons\n ? `, ${rp.minPersons} pax`\n : `, ${rp.minPersons}-${rp.maxPersons} pax`;\n }\n\n if (this.showLOSSuffixInRatePlanName) {\n losSuffix =\n rp.maxStay === 0\n ? `, ${rp.minStay}+ LOS`\n : rp.minStay === rp.maxStay\n ? `, ${rp.minStay} LOS`\n : `, ${rp.minStay}-${rp.maxStay} LOS`;\n }\n\n return rp.name + paxSuffix + losSuffix + currencySuffix;\n }\n\n groupSelected(groupId: number): \"all\" | \"some\" | \"none\" {\n const group = this.ratePlanGroups.find((x) => x.id === groupId);\n if (group) {\n const allGroupRatesIds = group.ratePlans.map((x) => x.id);\n if (allGroupRatesIds.every((x) => this.selected.includes(x))) {\n return \"all\";\n } else if (allGroupRatesIds.some((x) => this.selected.includes(x))) {\n return \"some\";\n }\n }\n return \"none\";\n }\n selectGroup(groupId: number) {\n const group = this.ratePlanGroups.find((x) => x.id === groupId);\n if (group && this.internal) {\n const missing = group.ratePlans.filter(\n (x) => !this.selected.includes(x.id)\n );\n if (missing.length > 0) {\n this.internal.selectedItems.push(...missing);\n } else {\n const allGroupRatesIds = group.ratePlans.map((x) => x.id);\n this.internal.selectedItems = this.internal.selectedItems.filter(\n (x) => !allGroupRatesIds.includes(x.id)\n );\n }\n }\n }\n\n allSelected(): \"all\" | \"some\" | \"none\" {\n const allRatesIds =\n this.internal?.unitType.ratePlans.map((x) => x.id) ?? [];\n if (allRatesIds.every((x) => this.selected.includes(x))) {\n return \"all\";\n } else if (allRatesIds.some((x) => this.selected.includes(x))) {\n return \"some\";\n }\n return \"none\";\n }\n selectAll() {\n if (this.internal) {\n if (this.allSelected() === \"all\") {\n this.internal.selectedItems = [];\n } else {\n this.internal.selectedItems = [...this.internal.unitType.ratePlans];\n }\n }\n }\n\n areCategoriesAppliedToAll(groupId: number): \"all\" | \"some\" | \"none\" {\n const group = this.ratePlanGroups.find((x) => x.id === groupId);\n if (\n group?.ratePlans\n .filter((x) => !x.isDefault)\n .every((x) => x.applyOBLOSCategories)\n ) {\n return \"all\";\n } else if (\n group?.ratePlans\n .filter((x) => !x.isDefault)\n .some((x) => x.applyOBLOSCategories)\n ) {\n return \"some\";\n }\n return \"none\";\n }\n applyCategoriesToAll(groupId: number) {\n const group = this.ratePlanGroups.find((x) => x.id === groupId);\n if (this.areCategoriesAppliedToAll(groupId) == \"all\") {\n group?.ratePlans\n .filter((x) => !x.isDefault)\n .forEach((x) => (x.applyOBLOSCategories = false));\n } else {\n group?.ratePlans\n .filter((x) => !x.isDefault)\n .forEach((x) => (x.applyOBLOSCategories = true));\n }\n }\n\n selectedCurrencyId = 0;\n\n get selectedRatePlanCurrencyId() {\n return this.selectedCurrencyId === 0\n ? this.ratePlansCurrencies[0].id\n : this.selectedCurrencyId;\n }\n\n set selectedRatePlanCurrencyId(val: number) {\n this.selectedCurrencyId = val;\n }\n\n get ratePlansCurrencies() {\n const ratePlanCurrencyIds =\n this.internal?.unitType.ratePlans.map((x) => x.currencyId) ?? [];\n return (\n this.currencies?.filter((x) => ratePlanCurrencyIds.includes(x.id)) ?? []\n );\n }\n\n resetSelectedItems() {\n if (this.internal) {\n this.internal.selectedItems = [];\n }\n }\n\n addBulkEditPeriod() {\n this.internalDates?.push({ dateRange: [] });\n }\n\n removeBulkEditPeriod(range: BulkEditDateRange) {\n const index =\n this.internalDates != undefined\n ? this.internalDates?.findIndex((x) => x == range)\n : -1;\n if (index != -1) {\n this.internalDates?.splice(index, 1);\n }\n }\n}\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!./UnitTypePart.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!./UnitTypePart.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./UnitTypePart.vue?vue&type=template&id=2d6792d8&scoped=true&\"\nimport script from \"./UnitTypePart.vue?vue&type=script&lang=ts&\"\nexport * from \"./UnitTypePart.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./UnitTypePart.vue?vue&type=style&index=0&id=2d6792d8&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2d6792d8\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VBtnToggle } from 'vuetify/lib/components/VBtnToggle';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRadio } from 'vuetify/lib/components/VRadioGroup';\nimport { VRadioGroup } from 'vuetify/lib/components/VRadioGroup';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSwitch } from 'vuetify/lib/components/VSwitch';\ninstallComponents(component, {VAlert,VBtn,VBtnToggle,VCheckbox,VCol,VContainer,VDivider,VIcon,VRadio,VRadioGroup,VRow,VSwitch})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"d-flex flex-column\"},[_c('div',{staticClass:\"v-messages pb-1 pl-3\",class:_vm.$vuetify.theme.dark ? 'theme--dark' : 'theme--light'},[_vm._v(\" \"+_vm._s(_vm.$t(\"BulkEdit.Weekdays.PricesOverrideHint\"))+\" \")]),_c('v-btn-toggle',{staticClass:\"week-toggle\",attrs:{\"tile\":\"\",\"color\":\"primary\",\"multiple\":\"\",\"borderless\":\"\"},model:{value:(_vm.expandedWeekdays),callback:function ($$v) {_vm.expandedWeekdays=$$v},expression:\"expandedWeekdays\"}},_vm._l((_vm.weekdays),function(w,i){return _c('v-btn',{key:w,attrs:{\"value\":i,\"disabled\":_vm.disabled}},[_vm._v(_vm._s(_vm.weekdays[i]))])}),1),_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-scroll-x-transition',{staticClass:\"prices-wrapper\",attrs:{\"group\":\"\"}},_vm._l((_vm.priceChanges),function(pc){return _c('v-col',{key:pc.weekday,attrs:{\"sm\":\"3\",\"cols\":\"12\"}},[_c('PriceInput',{attrs:{\"disableRules\":_vm.disableRules,\"currencyId\":_vm.currencyId,\"label\":_vm.weekdaysLong[pc.weekday],\"changesOriginalPrice\":_vm.changesOriginalPrice,\"dense\":true},on:{\"change\":function($event){return _vm.onPriceChanged(pc.weekday, $event)}}})],1)}),1)],1)],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\nimport { Info } from \"luxon\";\nimport { Component, Prop, Vue, Watch } from \"vue-property-decorator\";\nimport { Getter } from \"vuex-class\";\nimport PriceInput, { PriceChange } from \"../inputs/PriceInput.vue\";\n\nconst defaultPriceChange = () => ({\n value: 0,\n percentage: false,\n addition: false,\n subtraction: false,\n valid: true,\n});\n\nexport type WeekdayPriceChange = {\n weekday: number;\n change: PriceChange;\n};\n\n@Component({\n components: {\n PriceInput,\n },\n})\nexport default class RatePlanPricesList extends Vue {\n @Prop() disabled?: boolean;\n @Prop() currencyId?: number;\n @Prop() disableRules?: boolean;\n @Getter(\"language/language\") language?: string;\n @Prop({ default: true }) changesOriginalPrice?: boolean;\n\n get weekdays() {\n return Info.weekdays(\"short\", { locale: this.language });\n }\n get weekdaysLong() {\n return Info.weekdays(\"long\", { locale: this.language });\n }\n\n expandedWeekdays: number[] = [];\n priceChanges: WeekdayPriceChange[] = this.expandedWeekdays.map((w) => ({\n weekday: w,\n change: defaultPriceChange(),\n }));\n\n valid = true;\n\n @Watch(\"expandedWeekdays\")\n expandedWeekdaysChanged(fresh: number[]) {\n const orderedExpanded = [...fresh].sort((a: number, b: number) => a - b);\n\n const mapped: WeekdayPriceChange[] = [];\n for (const weekday of orderedExpanded) {\n const existing = this.priceChanges.find((pc) => pc.weekday === weekday);\n mapped.push(\n existing ?? {\n weekday: weekday,\n change: defaultPriceChange(),\n }\n );\n }\n\n this.priceChanges = mapped;\n\n this.changed();\n }\n\n clear() {\n this.expandedWeekdays = [];\n }\n\n onPriceChanged(weekday: number, change: PriceChange) {\n const existingIndex = this.priceChanges.findIndex(\n (pc) => pc.weekday === weekday\n );\n\n if (existingIndex === -1) {\n this.priceChanges.splice(0, 0, { weekday, change });\n } else {\n this.priceChanges.splice(existingIndex, 1, { weekday, change });\n }\n\n this.changed();\n }\n\n changed() {\n this.$emit(\"change\", this.priceChanges);\n\n const freshValid = this.priceChanges.every((x) => x.change.valid);\n\n if (freshValid !== this.valid) {\n this.valid = freshValid;\n this.$emit(\"error\", !freshValid);\n }\n }\n}\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!./RatePlanPricesList.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!./RatePlanPricesList.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RatePlanPricesList.vue?vue&type=template&id=65c7b241&scoped=true&\"\nimport script from \"./RatePlanPricesList.vue?vue&type=script&lang=ts&\"\nexport * from \"./RatePlanPricesList.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./RatePlanPricesList.vue?vue&type=style&index=0&id=65c7b241&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"65c7b241\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VBtnToggle } from 'vuetify/lib/components/VBtnToggle';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VScrollXTransition } from 'vuetify/lib/components/transitions';\ninstallComponents(component, {VBtn,VBtnToggle,VCol,VContainer,VRow,VScrollXTransition})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"d-flex flex-column\"},[_c('v-container',[_c('v-scroll-x-transition',{staticClass:\"restrictions-wrapper\",attrs:{\"group\":\"\"}},_vm._l((_vm.picked),function(pick){return _c('v-row',{key:pick.key},[_c('v-col',{attrs:{\"cols\":\"5\"}},[_c('v-text-field',{attrs:{\"outlined\":\"\",\"dense\":\"\",\"readonly\":\"\",\"hide-details\":\"\",\"value\":_vm.$t(pick.textResource)}})],1),_c('v-col',{staticClass:\"d-flex align-center\",attrs:{\"cols\":\"3\"}},[(pick.type === 'number')?_c('NumericPicker',{attrs:{\"rules\":_vm.disableRules ? [] : [_vm.mustBeInt, _vm.mustBePositive]},on:{\"input\":_vm.changed,\"update:error\":function($event){return _vm.onErrorUpdate(pick, $event)}},model:{value:(pick.value),callback:function ($$v) {_vm.$set(pick, \"value\", _vm._n($$v))},expression:\"pick.value\"}}):_c('v-checkbox',{attrs:{\"dense\":\"\",\"hide-details\":\"\"},on:{\"change\":_vm.changed},model:{value:(pick.value),callback:function ($$v) {_vm.$set(pick, \"value\", $$v)},expression:\"pick.value\"}})],1),_c('v-col',{staticClass:\"d-flex align-center\",attrs:{\"cols\":\"3\"}},[_c('v-btn',{staticClass:\"ml-2\",attrs:{\"icon\":\"\",\"small\":\"\",\"disabled\":_vm.disabled},on:{\"click\":function($event){return _vm.deselect(pick)}}},[_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"error\"}},[_vm._v(\"fal fa-trash\")])],1)],1)],1)}),1),_c('v-row',[_c('v-col',{attrs:{\"sm\":\"5\",\"cols\":\"12\"}},[_c('v-select',{attrs:{\"outlined\":\"\",\"dense\":\"\",\"items\":_vm.unpicked,\"item-value\":function (i) { return i; },\"item-text\":function (i) { return _vm.$t(i.textResource); },\"disabled\":_vm.disabled,\"hint\":_vm.$t('BulkEdit.Restrictions.Hint'),\"persistent-hint\":\"\"},on:{\"change\":_vm.select},model:{value:(_vm.pickDummy),callback:function ($$v) {_vm.pickDummy=$$v},expression:\"pickDummy\"}})],1)],1)],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\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\nimport { ratePlanFields, RatePlanField } from \"../CalendarTypes\";\nimport _ from \"lodash\";\nimport { CalendarSettings } from \"@/store/modules/calendar\";\nimport NumericPicker from \"@/components/misc/NumericPicker.vue\";\n\nexport type RatePlanFieldValue = RatePlanField & {\n value: any;\n valid: boolean;\n isAbsolute: boolean | null;\n addition: boolean | null;\n subtraction: boolean | null;\n};\n\n@Component({ components: { NumericPicker } })\nexport default class DayEdit extends Vue {\n @Prop() disabled?: boolean;\n @Prop() disableRules?: boolean;\n @Prop() settings?: CalendarSettings;\n\n picked: RatePlanFieldValue[] = [];\n\n pickDummy: any = {};\n\n get ratePlanFields() {\n return ratePlanFields.filter(x => x.isRestriction === true);\n }\n\n get unpicked() {\n const res = this.ratePlanFields.filter(\n (x) => !this.picked.some((p) => p.key === x.key)\n );\n return res;\n }\n\n mustBePositive(v: any) {\n return !_.isNaN(+v) && +v >= 0\n ? true\n : this.$t(\"Validation.MustBePositive\");\n }\n mustBeInt(v: any) {\n return _.isInteger(+v) && (v === 0 || v)\n ? true\n : this.$t(\"Validation.MustBeWholeNumber\");\n }\n\n select(x: {\n key: string;\n value: number | boolean;\n textResource: string;\n textResourceShort: string;\n type: \"number\" | \"boolean\";\n isRestriction: boolean;\n isDerived: boolean;\n }) {\n this.picked.push({\n ...x,\n value: x.type === \"number\" ? 0 : false,\n valid: true,\n isAbsolute: true,\n addition: false,\n subtraction: false\n });\n this.changed();\n }\n\n deselect(x: RatePlanFieldValue) {\n const originalValid = this.picked.every((x) => x.valid);\n\n this.picked.splice(this.picked.indexOf(x), 1);\n\n this.changed();\n\n const freshValid = this.picked.every((x) => x.valid);\n if (freshValid !== originalValid) {\n this.$emit(\"error\", !freshValid);\n }\n }\n\n changed() {\n this.$emit(\"change\", this.picked);\n }\n\n onErrorUpdate(ratePlanFieldValue: RatePlanFieldValue, error: boolean) {\n const valid = !error;\n\n if (ratePlanFieldValue.valid === valid) return;\n\n ratePlanFieldValue.valid = valid;\n this.$emit(\n \"error\",\n this.picked.some((x) => !x.valid)\n );\n }\n\n clear() {\n this.picked = [];\n }\n}\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!./RatePlanFieldsList.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!./RatePlanFieldsList.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RatePlanFieldsList.vue?vue&type=template&id=10ae7b18&scoped=true&\"\nimport script from \"./RatePlanFieldsList.vue?vue&type=script&lang=ts&\"\nexport * from \"./RatePlanFieldsList.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./RatePlanFieldsList.vue?vue&type=style&index=0&id=10ae7b18&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"10ae7b18\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VScrollXTransition } from 'vuetify/lib/components/transitions';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCheckbox,VCol,VContainer,VIcon,VRow,VScrollXTransition,VSelect,VTextField})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport {\n Component,\n Prop,\n PropSync,\n Ref,\n Vue,\n Watch,\n} from \"vue-property-decorator\";\nimport RightDrawer from \"@/components/misc/RightDrawer.vue\";\nimport RatePlanPart, {\n RatePlanBulkEdit,\n BulkEditDateRange,\n} from \"./RatePlanPart.vue\";\nimport UnitTypePart, { UnitTypeBulkEdit } from \"./UnitTypePart.vue\";\nimport RatePlanPricesList, {\n WeekdayPriceChange,\n} from \"./RatePlanPricesList.vue\";\nimport RatePlanFieldsList, {\n RatePlanFieldValue,\n} from \"./RatePlanFieldsList.vue\";\nimport { Getter, Action } from \"vuex-class\";\nimport _ from \"lodash\";\nimport {\n BulkEditRatePlanModel,\n BulkEditResponseModel,\n CalendarUnitTypeView,\n RelatedRatePlansPriceUpdateTypeEnum,\n RelatedRatePlansRestrictionsUpdateTypeEnum,\n} from \"../CalendarTypes\";\nimport PriceInput, { PriceChange } from \"../inputs/PriceInput.vue\";\nimport FormDescription from \"@/components/misc/FormDescription.vue\";\nimport { Currency } from \"@/shared/models/currency\";\nimport { CalendarSettings } from \"@/store/modules/calendar\";\nimport RequireRole from \"@/components/misc/RequireRole.vue\";\nimport { DateTime } from \"luxon\";\nimport { BulkEditDateRangeRequestModel } from \"@/shared/models/bulkEditDateRangeRequestModel\";\n\nfunction isUnitTypeEdit(\n x: UnitTypeBulkEdit | RatePlanBulkEdit\n): x is UnitTypeBulkEdit {\n return x && (x as UnitTypeBulkEdit).unitType !== undefined;\n}\nfunction isRatePlanEdit(\n x: UnitTypeBulkEdit | RatePlanBulkEdit\n): x is RatePlanBulkEdit {\n return x && (x as RatePlanBulkEdit).ratePlan !== undefined;\n}\n\nenum Weekdays {\n Monday = 0,\n Tuesday = 1,\n Wednesday = 2,\n Thursday = 3,\n Friday = 4,\n Saturday = 5,\n Sunday = 6,\n}\n\nexport enum SetupTypeEnum {\n Update = 1,\n Inital = 2,\n}\n\nexport enum OBRulesUpdateTypeEnum {\n Restrictions = 1,\n Prices = 2,\n RestrictionsAndPrices = 3,\n None = 4,\n}\n\n@Component({\n components: {\n UnitTypePart,\n RatePlanPart,\n RatePlanPricesList,\n RatePlanFieldsList,\n RightDrawer,\n PriceInput,\n FormDescription,\n RequireRole,\n },\n})\nexport default class BulkEdit extends Vue {\n @Prop() model?: UnitTypeBulkEdit | RatePlanBulkEdit;\n @Prop() settings?: CalendarSettings;\n @PropSync(\"open\", { default: false }) openInternal?: boolean;\n\n @Getter(\"language/language\") language?: string;\n @Getter(\"appParams/tenantUsesInputPrice\") tenantUsesInputPrice?: boolean;\n @Getter(\"appParams/workingCurrency\") workingCurrency?: Currency;\n\n @Getter(\"appParams/tenantOBRsUseRelativePricing\")\n tenantOBRsUseRelativePricing?: boolean;\n\n @Getter(\"appParams/calendarOBLOSCategoriesApplicationAllowed\")\n calendarOBLOSCategoriesApplicationAllowed?: boolean;\n @Getter(\"appParams/calendarRelatedRatesPriceUpdateTypeDefault\")\n calendarRelatedRatesPriceUpdateTypeDefault?: number;\n @Getter(\"appParams/calendarRelatedRatesRestrictionsUpdateTypeDefault\")\n calendarRelatedRatesRestrictionsUpdateTypeDefault?: number;\n\n @Action(\"calendar/startBlockedAvailabilitiesCheckForUnitTypes\")\n startBlockedAvailabilitiesCheckForUnitTypes?: (\n payload: number[]\n ) => Promise;\n\n SetupTypeEnum = SetupTypeEnum;\n initialAvailabilitySetupType = SetupTypeEnum.Update;\n dayOverridesChangeOriginalPrice = true;\n form = true;\n\n get hasDerived() {\n if (!this.formData.model) return false;\n\n return isRatePlanEdit(this.formData.model)\n ? this.formData.model.selectedItems.some((x) =>\n x.ratePlans\n .filter((r) => r.isDerived && r.isDefault)\n .map((r) => r.parentId)\n .includes((this.formData.model as RatePlanBulkEdit).ratePlan.id)\n ) ||\n (!(this.formData.model as RatePlanBulkEdit).ratePlan.isDefault &&\n !(this.formData.model as RatePlanBulkEdit).ratePlan.isDerived &&\n this.formData.model.selectedItems.some((x) =>\n x.ratePlans\n .filter((e) => e.isDerived && !e.isDefault)\n .map((e) => e.parentRatePlanId)\n .includes(\n (this.formData.model as RatePlanBulkEdit).ratePlan.ratePlanId\n )\n ))\n : this.formData.model.selectedItems.some((x) =>\n (this.formData.model as UnitTypeBulkEdit).unitType.ratePlans\n .filter((r) => r.isDerived)\n .map((r) => r.parentId)\n .includes(x.id)\n );\n }\n\n get hasOBRules() {\n if (!this.formData.model) return false;\n\n return isRatePlanEdit(this.formData.model)\n ? this.formData.model.selectedItems.some((x) =>\n x.ratePlans\n .filter((r) => !r.isDefault)\n .map((r) => r.parentId)\n .includes((this.formData.model as RatePlanBulkEdit).ratePlan.id)\n )\n : this.formData.model.selectedItems.some((x) =>\n (this.formData.model as UnitTypeBulkEdit).unitType.ratePlans\n .filter((r) => !r.isDefault)\n .map((r) => r.parentId)\n .includes(x.id)\n );\n }\n\n formData: {\n model?: UnitTypeBulkEdit | RatePlanBulkEdit;\n dates: BulkEditDateRange[]; //string[];\n weekdays: number[];\n restrictions: RatePlanFieldValue[];\n priceChanges: WeekdayPriceChange[];\n } = {\n dates: [],\n weekdays: [],\n restrictions: [],\n priceChanges: [],\n };\n initialFormData = _.cloneDeep(this.formData);\n\n @Watch(\"model\", { immediate: true })\n modelChanged(fresh: UnitTypeBulkEdit | RatePlanBulkEdit) {\n if (this.isUnitTypeEdit) {\n (fresh as UnitTypeBulkEdit).selectedItems.forEach(\n (x) => (x.applyOBLOSCategories = false)\n );\n }\n\n if (this.isRatePlanEdit) {\n this.relatedRatePlansPriceUpdateType = this.tenantOBRsUseRelativePricing\n ? RelatedRatePlansPriceUpdateTypeEnum.ApplyChange\n : this.calendarOBLOSCategoriesApplicationAllowed &&\n this.calendarRelatedRatesPriceUpdateTypeDefault\n ? this.calendarRelatedRatesPriceUpdateTypeDefault ??\n RelatedRatePlansPriceUpdateTypeEnum.DontUpdate\n : RelatedRatePlansPriceUpdateTypeEnum.DontUpdate;\n\n this.relatedRatePlansRestrictionsUpdateType =\n this.calendarRelatedRatesRestrictionsUpdateTypeDefault ??\n RelatedRatePlansRestrictionsUpdateTypeEnum.DontUpdate;\n }\n\n this.formData.model = fresh;\n this.initialFormData = _.cloneDeep(this.formData);\n }\n\n get dates() {\n if (this.formData.dates.length === 0) {\n this.formData.dates?.push({ dateRange: [] });\n }\n return this.formData.dates;\n }\n set dates(fresh: BulkEditDateRange[]) {\n this.formData.dates = fresh;\n }\n\n get weekdays() {\n return this.formData.weekdays;\n }\n set weekdays(fresh: number[]) {\n this.formData.weekdays = fresh;\n }\n\n required(v: string) {\n return v ? true : this.$t(\"Validation.Required\");\n }\n\n get isUnitTypeEdit() {\n return this.model && isUnitTypeEdit(this.model);\n }\n get isRatePlanEdit() {\n return this.model && isRatePlanEdit(this.model);\n }\n\n get currencyCodeForPriceInput() {\n return this.isRatePlanEdit\n ? (this.model as RatePlanBulkEdit).ratePlan.currencyId\n : this.workingCurrency?.id;\n }\n\n priceChange: PriceChange = {\n value: null,\n percentage: false,\n addition: false,\n subtraction: false,\n valid: true,\n };\n onPriceChanged(change: PriceChange) {\n Object.assign(this.priceChange, change);\n\n // recalculate\n // if global price change is percentage - day overrides are always applied to original price\n if (this.priceChange.percentage) {\n this.dayOverridesChangeOriginalPrice = true;\n } else if (!this.priceChange.percentage) {\n // note that 0 represents emtpy value - prices can never be set to 0\n // if global price change is not percentage - day overrides are applied to original price in case when global price is unset (0), addition or subtraction\n if (\n this.priceChange.value === 0 ||\n this.priceChange.addition ||\n this.priceChange.subtraction\n ) {\n this.dayOverridesChangeOriginalPrice = true;\n } else {\n this.dayOverridesChangeOriginalPrice = false;\n }\n }\n }\n\n inputPriceChange: PriceChange = {\n value: null,\n percentage: false,\n addition: false,\n subtraction: false,\n valid: true,\n };\n onInputPriceChanged(change: PriceChange) {\n Object.assign(this.inputPriceChange, change);\n }\n\n get restrictions() {\n return this.formData.restrictions;\n }\n set restrictions(fresh: RatePlanFieldValue[]) {\n this.formData.restrictions = fresh;\n }\n restrictionsError = false;\n\n get priceChanges() {\n return this.formData.priceChanges;\n }\n set priceChanges(fresh: WeekdayPriceChange[]) {\n this.formData.priceChanges = fresh;\n }\n priceChangesError = false;\n\n get hidePriceEdit() {\n if (!this.formData.model) return true;\n\n return isRatePlanEdit(this.formData.model)\n ? this.formData.model.ratePlan.isDerived ||\n (!this.formData.model.ratePlan.isDefault &&\n this.tenantOBRsUseRelativePricing)\n : this.formData.model.selectedItems.some((x) => x.isDerived) ||\n (this.formData.model.selectedItems.some((x) => !x.isDefault) &&\n this.tenantOBRsUseRelativePricing) ||\n this.formData.model.selectedItems.some(\n (x) =>\n (this.formData.model as UnitTypeBulkEdit).selectedItems\n .map((r) => r.parentId)\n .includes(x.id) && this.tenantOBRsUseRelativePricing\n ) ||\n this.formData.model.selectedItems.every(\n (x) => !x.isDefault && x.applyOBLOSCategories\n );\n }\n\n get submitDisabled() {\n return (\n !this.form ||\n this.submitting ||\n this.nothingChanged ||\n this.priceChangesError ||\n this.restrictionsError\n );\n }\n\n get nothingChanged() {\n return (\n this.formData.restrictions.length === 0 &&\n this.formData.priceChanges.length === 0 &&\n this.priceChange.value === null &&\n this.inputPriceChange.value === null &&\n this.initialAvailabilitySetupType === SetupTypeEnum.Update &&\n (this.isUnitTypeEdit\n ? (this.formData.model as UnitTypeBulkEdit).availability === undefined\n : true) &&\n (this.isUnitTypeEdit\n ? !(this.formData.model as UnitTypeBulkEdit).selectedItems.some(\n (x) => x.applyOBLOSCategories\n )\n : true)\n );\n }\n\n showNothingChangedNotification() {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: this.$t(\"BulkEdit.NoChanges\"),\n timeout: 30000,\n });\n }\n\n @Ref(\"bulkEditForm\") bulkEditForm?: {\n reset: () => void;\n resetValidation: () => void;\n validate: () => boolean;\n };\n\n RelatedRatePlansPriceUpdateTypeEnum = RelatedRatePlansPriceUpdateTypeEnum;\n RelatedRatePlansRestrictionsUpdateTypeEnum =\n RelatedRatePlansRestrictionsUpdateTypeEnum;\n relatedRatePlansRestrictionsUpdateType =\n RelatedRatePlansRestrictionsUpdateTypeEnum.DontUpdate;\n relatedRatePlansPriceUpdateType =\n RelatedRatePlansPriceUpdateTypeEnum.ApplyOBLOSCategories;\n\n submitting = false;\n async submit() {\n if (!this.bulkEditForm?.validate()) return;\n\n if (!this.formData.model) return;\n if (this.submitDisabled || this.submitting) return;\n\n this.submitting = true;\n\n const { model, dates } = this.formData;\n\n const datesForBuldEdit = [] as BulkEditDateRangeRequestModel[];\n\n dates.forEach((period) => {\n if (period.dateRange != null) {\n datesForBuldEdit.push({\n from: period.dateRange[0],\n to: period.dateRange[1],\n });\n }\n });\n\n const weekdays = this.formData.weekdays.map((x) => Weekdays[x]);\n\n const restrictions = this.restrictions.map((r) => ({\n numberValue: r.type === \"number\" ? +r.value : null,\n booleanValue: r.type === \"boolean\" ? r.value : null,\n field: r.key,\n isAbsolute: true,\n addition: false,\n subtraction: false,\n }));\n\n if (\n this.inputPriceChange.value !== undefined &&\n this.inputPriceChange.value !== null &&\n this.initialAvailabilitySetupType === SetupTypeEnum.Update\n ) {\n restrictions.push({\n numberValue: this.inputPriceChange.value,\n booleanValue: null,\n field: \"inputPrice\",\n isAbsolute: !this.inputPriceChange.percentage,\n addition: this.inputPriceChange.addition,\n subtraction: this.inputPriceChange.subtraction,\n });\n }\n\n const priceChangeOverrides = this.priceChanges.map((pc) => ({\n priceChange: { ...pc.change, isAbsolute: !pc.change.percentage },\n weekday: Weekdays[pc.weekday],\n }));\n\n const currentDatetime = DateTime.now();\n\n const request = {\n ratePlans: [] as BulkEditRatePlanModel[],\n unitTypeIds: [] as number[],\n dateRanges: datesForBuldEdit,\n //from,\n //to,\n weekdays: weekdays,\n availability: null as number | null,\n availabilityIsSet: null as boolean | null,\n availabilityAddition: null as boolean | null,\n availabilitySubtraction: null as boolean | null,\n initialAvailabilitySetup: false,\n restrictions: restrictions,\n priceChange:\n !this.hidePriceEdit &&\n this.priceChange.value !== null &&\n this.initialAvailabilitySetupType === SetupTypeEnum.Update\n ? { ...this.priceChange, isAbsolute: !this.priceChange.percentage }\n : null,\n priceChangeOverrides: !this.hidePriceEdit ? priceChangeOverrides : [],\n requestedAt: currentDatetime,\n };\n\n if (isRatePlanEdit(model)) {\n request.ratePlans = [\n {\n ratePlanId: model.ratePlan.id,\n applyOBLOSCategories: false,\n relatedRatePlansPriceUpdateType: this.relatedRatePlansPriceUpdateType,\n relatedRatePlansRestrictionsUpdateType:\n this.relatedRatePlansRestrictionsUpdateType,\n },\n ];\n request.unitTypeIds = model.selectedItems.map((x) => x.id);\n request.initialAvailabilitySetup =\n this.initialAvailabilitySetupType === SetupTypeEnum.Update\n ? false\n : true;\n } else {\n request.ratePlans = model.selectedItems.map((x) => {\n return {\n ratePlanId: x.id,\n applyOBLOSCategories: x.applyOBLOSCategories,\n relatedRatePlansPriceUpdateType:\n RelatedRatePlansPriceUpdateTypeEnum.DontUpdate,\n relatedRatePlansRestrictionsUpdateType:\n RelatedRatePlansRestrictionsUpdateTypeEnum.DontUpdate,\n };\n });\n request.unitTypeIds = [model.unitType.id];\n if (model.availability !== undefined && model.availability !== \"\") {\n const reg = /^\\s*(\\+|-)?([^+-]+)$/;\n const extracted = reg.exec(model.availability ?? \"\");\n\n if (extracted) {\n const num = extracted[2] ? +extracted[2] : 0;\n const prefix = extracted[1] ?? \"\";\n\n request.availability = num;\n request.availabilityIsSet = prefix === \"\";\n request.availabilityAddition = prefix === \"+\";\n request.availabilitySubtraction = prefix === \"-\";\n }\n }\n }\n try {\n const response = await this.axios.put(\n \"calendar/bulkEdit\",\n request\n );\n\n if (response.data.asyncBulkEditStarted) {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"Async bulk edit started\"),\n timeout: 30000,\n });\n } else {\n const minMaxDate = this.findMinAndMaxDateFromRange(request.dateRanges);\n this.$emit(\"calendarReload\", {\n from: DateTime.fromJSDate(new Date(minMaxDate.min)),\n to: DateTime.fromJSDate(new Date(minMaxDate.max)),\n });\n }\n\n this.openInternal = false;\n } catch {\n this.submitting = false;\n }\n }\n\n findMinAndMaxDateFromRange(range: BulkEditDateRangeRequestModel[]) {\n const minFrom = range.reduce((previous, current) =>\n new Date(current.from).getTime() < new Date(previous.from).getTime()\n ? current\n : previous\n );\n const maxTo = range.reduce((previous, current) =>\n new Date(current.to).getTime() > new Date(previous.to).getTime()\n ? current\n : previous\n );\n\n return { min: minFrom.from, max: maxTo.to };\n }\n\n @Ref(\"ratePlanPrices\") ratePlanPrices?: { clear: () => void };\n @Ref(\"ratePlanFieldsList\") ratePlanFieldsList?: { clear: () => void };\n\n reset() {\n this.bulkEditForm && this.bulkEditForm.reset();\n this.formData = _.cloneDeep(this.initialFormData);\n this.priceChangesError = false;\n this.priceChange = {\n value: null,\n percentage: false,\n addition: false,\n subtraction: false,\n valid: true,\n };\n this.inputPriceChange = {\n value: null,\n percentage: false,\n addition: false,\n subtraction: false,\n valid: true,\n };\n this.ratePlanPrices?.clear();\n this.ratePlanFieldsList?.clear();\n }\n\n save() {\n if (!this.bulkEditForm?.validate()) return;\n if (!this.formData.model) return;\n if (this.nothingChanged) {\n this.showNothingChangedNotification();\n return;\n }\n if (this.submitDisabled || this.submitting) return;\n\n this.submit();\n }\n\n @Action(\"calendar/addAvailabilities\") addAvailabilities?: (\n payload: any[]\n ) => void;\n\n private mergeResponseDataForUnitType(\n unitType: CalendarUnitTypeView,\n data: any[]\n ) {\n if (unitType && data && data.length > 0 && this.addAvailabilities) {\n this.addAvailabilities(data);\n }\n }\n}\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!./BulkEdit.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!./BulkEdit.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BulkEdit.vue?vue&type=template&id=672804ea&scoped=true&\"\nimport script from \"./BulkEdit.vue?vue&type=script&lang=ts&\"\nexport * from \"./BulkEdit.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BulkEdit.vue?vue&type=style&index=0&id=672804ea&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"672804ea\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRadio } from 'vuetify/lib/components/VRadioGroup';\nimport { VRadioGroup } from 'vuetify/lib/components/VRadioGroup';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSheet } from 'vuetify/lib/components/VSheet';\nimport { VToolbar } from 'vuetify/lib/components/VToolbar';\ninstallComponents(component, {VBtn,VCol,VContainer,VDivider,VForm,VIcon,VRadio,VRadioGroup,VRow,VSheet,VToolbar})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('RightDrawer',{staticClass:\"drawer\",attrs:{\"open\":_vm.openInternal},on:{\"update:open\":function($event){_vm.openInternal=$event}},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('v-sheet',{staticClass:\"actions d-flex py-5 px-4\"},[_c('v-btn',{attrs:{\"text\":\"\",\"disabled\":_vm.loading},on:{\"click\":function($event){_vm.openInternal = false}}},[_vm._v(_vm._s(_vm.$t(\"Close\")))])],1)]},proxy:true}])},[_c('v-toolbar',[_c('div',{staticClass:\"d-flex justify-space-between align-center flex-fill\"},[(_vm.timeline)?_c('h3',[_vm._v(\" \"+_vm._s(_vm.timeline.name)+\", \"+_vm._s(_vm.$d(_vm.getDateTime(_vm.timeline.date)))+\" \")]):_vm._e(),_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){_vm.openInternal = false}}},[_c('v-icon',[_vm._v(\"fal fa-times\")])],1)],1)]),_c('v-fade-transition',[(_vm.loading)?_c('v-overlay',{staticStyle:{\"position\":\"absolute\"},attrs:{\"color\":_vm.$vuetify.theme.dark ? 'white' : undefined}},[_c('v-progress-circular',{attrs:{\"color\":\"primary\",\"size\":\"64\",\"indeterminate\":\"\"}})],1):_vm._e()],1),(_vm.timeline)?_c('div',{staticClass:\"pt-4 px-4\"},_vm._l((_vm.timeline.items),function(item,$index){return _c('div',{key:$index},[($index !== 0)?_c('v-divider',{staticClass:\"my-4\"}):_vm._e(),_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"AvailabilityChangelog.Date\"))+\": \"+_vm._s(_vm.$d(_vm.getDateTime(item.changedDate), \"precise\"))+\" \")]),_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"AvailabilityChangelog.UserName\"))+\": \"+_vm._s(item.changedBy)+\" \")]),_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"AvailabilityChangelog.EventType\"))+\": \"+_vm._s(_vm.getEventTypeText(item.eventTypeId))+\" \")]),(item.reservationId)?_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"AvailabilityChangelog.ReservationId\"))+\": \"+_vm._s(item.reservationId)+\" \")]):_vm._e(),_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"AvailabilityChangelog.\" + _vm.getCapitalizedProperty(_vm.property)))+\": \"+_vm._s(_vm.getPropertyValue(item[_vm.property]))+\" \")])],1)}),0):_vm._e(),((!_vm.timeline || _vm.timeline.items.length === 0) && !_vm.loading)?_c('div',{staticClass:\"pt-4 px-4\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"AvailabilityChangelogTimeline.NoData\"))+\" \")]):_vm._e()],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\nimport { AvailabilityChangelogEventType } from \"@/shared/models/availabilityChangelogEventType\";\nimport { Component, Vue, PropSync, Prop, Watch } from \"vue-property-decorator\";\nimport { Action, Getter } from \"vuex-class\";\nimport { AvailabilityTimelineModel } from \"./types\";\nimport RightDrawer from \"@/components/misc/RightDrawer.vue\";\n\n@Component({\n components: {\n RightDrawer,\n },\n})\nexport default class AvailabilityTimeline extends Vue {\n @PropSync(\"open\", { default: false }) openInternal?: boolean;\n\n @Prop({ default: null })\n ratePlanAccomodationUnitTypeId?: number | null;\n @Prop({ default: null })\n accomodationUnitTypeId?: number | null;\n\n @Prop({ default: null })\n date?: Date | null;\n\n @Prop({ default: \"quantity\" })\n property?:\n | \"quantity\"\n | \"price\"\n | \"inputPrice\"\n | \"minimumStay\"\n | \"maximumStay\"\n | \"minBookableBeforeCheckin\"\n | \"maxBookableBeforeCheckin\"\n | \"noSales\"\n | \"noArrivals\"\n | \"noDepartures\"\n | \"maxSellable\"\n | \"maxAvailability\"\n | \"availabilityOffset\";\n\n @Getter(\"codebooks/availabilityChangelogEventTypes\")\n availabilityChangelogEventTypes?: AvailabilityChangelogEventType[];\n @Action(\"codebooks/refreshAvailabilityChangelogEventTypes\")\n refreshAvailabilityChangelogEventTypes?: () => void;\n\n async created() {\n const promises = [];\n\n if (\n (this.availabilityChangelogEventTypes?.length ?? 0) === 0 &&\n this.refreshAvailabilityChangelogEventTypes\n ) {\n promises.push(this.refreshAvailabilityChangelogEventTypes());\n }\n\n await Promise.all(promises);\n }\n\n loading = false;\n timeline = null as null | AvailabilityTimelineModel;\n\n @Watch(\"openInternal\")\n openWatch(fresh: boolean) {\n if (fresh) this.load();\n else this.timeline = null;\n }\n\n load() {\n if (this.accomodationUnitTypeId || this.ratePlanAccomodationUnitTypeId) {\n this.loading = true;\n this.axios\n .get(\"/calendar/GetAvailabilityTimeline\", {\n params: {\n ratePlansAccomodationUnitTypeId:\n this.ratePlanAccomodationUnitTypeId,\n accomodationUnitTypeId: this.accomodationUnitTypeId,\n date: this.date,\n property: this.property,\n },\n })\n .then((res) => {\n this.timeline = res.data;\n })\n .finally(() => (this.loading = false));\n }\n }\n\n getDateTime(date: string) {\n if (date.endsWith(\"Z\")) return new Date(date);\n\n return new Date(date + \"Z\");\n }\n\n getEventTypeText(id: number) {\n const textResourceKey = this.availabilityChangelogEventTypes?.find(\n (x) => x.id == id\n )?.textResourceKey;\n if (textResourceKey) {\n return this.$t(textResourceKey).toString();\n }\n\n return \"\";\n }\n\n getCapitalizedProperty(value: string) {\n return value[0].toUpperCase() + value.slice(1);\n }\n\n getPropertyValue(value: number | boolean) {\n if (typeof value === \"boolean\") {\n return value ? this.$t(\"Yes\") : this.$t(\"No\");\n } else {\n return value;\n }\n }\n}\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!./AvailabilityChangelogTimeline.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!./AvailabilityChangelogTimeline.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AvailabilityChangelogTimeline.vue?vue&type=template&id=3fde4648&\"\nimport script from \"./AvailabilityChangelogTimeline.vue?vue&type=script&lang=ts&\"\nexport * from \"./AvailabilityChangelogTimeline.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VFadeTransition } from 'vuetify/lib/components/transitions';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VOverlay } from 'vuetify/lib/components/VOverlay';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\nimport { VSheet } from 'vuetify/lib/components/VSheet';\nimport { VToolbar } from 'vuetify/lib/components/VToolbar';\ninstallComponents(component, {VBtn,VDivider,VFadeTransition,VIcon,VOverlay,VProgressCircular,VSheet,VToolbar})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Watch, Ref, Prop } from \"vue-property-decorator\";\nimport RightDrawer from \"@/components/misc/RightDrawer.vue\";\nimport {\n CalendarPropertyView,\n CalendarBoxConfig,\n CalendarWindow,\n CalendarUnitTypeView,\n ratePlanFields,\n CalendarRatePlanAccomodationUnitTypeView,\n CalendarUnitView,\n CalendarExpandableRow,\n RelatedRatePlansPriceUpdateTypeEnum,\n} from \"./CalendarTypes\";\nimport CalendarBoxRow from \"./CalendarBoxRow.vue\";\nimport CalendarSettingsForm from \"./CalendarSettingsForm.vue\";\nimport BoxTimeTrack from \"./BoxTimeTrack.vue\";\nimport BoxDayTrack, { SelectedEvent } from \"./BoxDayTrack.vue\";\nimport ReservationTrackBox from \"./ReservationTrackBox.vue\";\nimport CalendarEditor from \"./CalendarEditor.vue\";\nimport Search from \"./Search.vue\";\nimport { dragscroll } from \"vue-dragscroll\";\nimport { DateTime } from \"luxon\";\nimport _ from \"lodash\";\nimport { Action, Getter } from \"vuex-class\";\nimport { GlobalFilterProperty } from \"@/store/modules/globalFilters\";\nimport BulkEdit from \"./bulk-edit/BulkEdit.vue\";\nimport { UnitTypeBulkEdit } from \"./bulk-edit/UnitTypePart.vue\";\nimport { RatePlanBulkEdit } from \"./bulk-edit/RatePlanPart.vue\";\nimport { SelectedAvailability } from \"@/shared/models/availability\";\nimport ReservationModal from \"@/components/reservation-form/ReservationModal.vue\";\nimport RatePlanSelectModal from \"./RatePlanSelectModal.vue\";\nimport {\n SearchRestrictionsModel,\n ChangeRatePlanEvent,\n} from \"@/components/reservation-form/types\";\nimport {\n CalendarNumOfDays,\n CalendarRowHeight,\n CalendarSettings,\n} from \"@/store/modules/calendar\";\nimport { Notification } from \"@/store/modules/notifications\";\nimport { JwtClaims } from \"@/store/modules/auth\";\nimport { policyChecker } from \"@/shared/roles\";\nimport RequireRole from \"@/components/misc/RequireRole.vue\";\nimport { AccomodationUnitStatusEnum } from \"@/shared/models/enums.type\";\nimport AvailabilityTimeline from \"@/components/calendar/availability-changelog/AvailabilityChangelogTimeline.vue\";\nimport { differenceInDays } from \"@/shared/dateFormatUtils\";\n\nconst LEFT_W = 264;\n\nconst _cell = {\n w: 48,\n h: 32,\n hl: 32,\n};\n\nconst _config: CalendarBoxConfig = {\n cell: _cell,\n preload: 10,\n centerOffset: 3,\n};\n\n@Component({\n components: {\n RightDrawer,\n BulkEdit,\n CalendarSettingsForm,\n CalendarBoxRow,\n BoxTimeTrack,\n BoxDayTrack,\n Search,\n ReservationTrackBox,\n CalendarEditor,\n ReservationModal,\n RatePlanSelectModal,\n RequireRole,\n AvailabilityTimeline,\n },\n directives: {\n dragscroll,\n },\n})\nexport default class CalendarBox extends Vue {\n @Prop() accomodationUnitTypeIds?: number[];\n @Prop() highlightPeriod?: string[];\n\n get isInAvailabilitySearchModal() {\n return (this.accomodationUnitTypeIds?.length ?? 0) > 0;\n }\n\n menu = false;\n dragging = false;\n\n accomodationUnitStatusEnum = AccomodationUnitStatusEnum;\n\n tooltip: any = null;\n get tooltipKey() {\n return this.tooltip?.reservationId ?? 1;\n }\n get tootipPosition() {\n return { x: this.tooltip?.positionX ?? 0, y: this.tooltip?.positionY ?? 0 };\n }\n\n @Getter(\"calendar/settings\") settingsList?: CalendarSettings[];\n @Getter(\"auth/claims\") claims?: JwtClaims;\n @Getter(\"language/language\") language?: string;\n @Getter(\"appParams/tenantUsesInputPrice\") tenantUsesInputPrice?: boolean;\n @Getter(\"appParams/tenantUsesLazyLoadedCalendar\")\n tenantUsesLazyLoadedCalendar?: boolean;\n\n @Getter(\"appParams/tenantOBRsUseRelativePricing\")\n tenantOBRsUseRelativePricing?: boolean;\n\n @Getter(\"appParams/showPAXSuffixInRatePlanName\")\n showPAXSuffixInRatePlanName?: boolean;\n @Getter(\"appParams/showLOSSuffixInRatePlanName\")\n showLOSSuffixInRatePlanName?: boolean;\n\n @Getter(\"appParams/tenantUsesAvailabilityBlockerCalculations\")\n tenantUsesAvailabilityBlockerCalculations?: boolean;\n\n @Getter(\"appParams/tenantUsesAvailabilityChangelog\")\n tenantUsesAvailabilityChangelogParam?: boolean;\n\n get tenantUsesAvailabilityChangelog() {\n return this.tenantUsesAvailabilityChangelogParam ?? false;\n }\n\n get allowedToModifyPrices() {\n return (\n !this.isInAvailabilitySearchModal &&\n policyChecker(\"MODIFY_CALENDAR_PRICES\")(this.claims)\n );\n }\n\n get allowedToModifyCalendar() {\n return (\n !this.isInAvailabilitySearchModal &&\n policyChecker(\"MODIFY_CALENDAR\")(this.claims)\n );\n }\n\n get allowedToInlineEditAvailability() {\n return policyChecker(\"MODIFY_CALENDAR_AVAILABILITY\")(this.claims);\n }\n\n get showUnitStatus() {\n return policyChecker(\"UNIT_STATUS\")(this.claims);\n }\n\n get isOwnerLevel3() {\n return policyChecker(\"OWNER_LEVEL_3\")(this.claims);\n }\n\n get isOwner() {\n return policyChecker(\"IS_OWNER_ROLE\")(this.claims);\n }\n\n selectableInputPrice(field: string, isDerived: boolean, isOBSpecific: any) {\n if (!this.tenantOBRsUseRelativePricing) {\n return this.tenantUsesInputPrice && field === \"inputPrice\" && !isDerived;\n }\n\n return (\n this.tenantUsesInputPrice &&\n field === \"inputPrice\" &&\n !isDerived &&\n !isOBSpecific\n );\n }\n\n get allowedToReadRatePlans() {\n return policyChecker(\"READ_CALENDAR_RATEPLANS\")(this.claims);\n }\n\n get allowedToModifyReservations() {\n return policyChecker(\"MODIFY_RESERVATIONS\")(this.claims);\n }\n\n get currentUserId() {\n return this.claims ? +this.claims.sid : 0;\n }\n\n get tenantId() {\n return this.claims ? +this.claims.tid : 0;\n }\n\n get currentSettings() {\n const settings = this.settingsList?.find(\n (x) =>\n x.userId == this.currentUserId &&\n x.tenantId == this.tenantId &&\n (x.isForAvailabilitySearchCalendar ?? false) ==\n this.isInAvailabilitySearchModal\n );\n if (settings) {\n return settings;\n }\n return this.settingsList?.find((x) => x.userId == 0);\n }\n get numOfDays(): CalendarNumOfDays {\n return this.currentSettings?.numOfDays ?? \"month\";\n }\n get rowHeight(): CalendarRowHeight {\n return this.currentSettings?.rowHeight ?? \"standard\";\n }\n @Getter(\"calendar/settingsOpen\") settingsOpen?: boolean;\n @Action(\"calendar/openSettings\") open?: () => void;\n @Action(\"calendar/closeSettings\") close?: () => void;\n get internalSettingsOpen() {\n return this.settingsOpen ?? false;\n }\n set internalSettingsOpen(val: boolean) {\n if (val) {\n if (this.open) this.open();\n } else {\n if (this.close) this.close();\n }\n }\n\n @Getter(\"calendar/availabilityTimelineOpenOnClick\")\n availabilityTimelineOpenOnClick?: boolean;\n @Action(\"calendar/toggleAvailabilityTimelineOpenOnClick\")\n toggleAvailabilityTimelineOpenOnClick?: (value: boolean) => void;\n\n get openAvailabilityTimelineOnClick() {\n return this.availabilityTimelineOpenOnClick ?? false;\n }\n\n availabilityTimelineOpen = false;\n availabilityTimelineRPUTId = null as number | null;\n availabilityTimelineUnitTypeId = null as number | null;\n availabilityTimelineDate = null as Date | null;\n availabilityTimelineProperty = \"quantity\";\n\n openTimeline(\n RPUTId: number | null,\n unitTypeId: number | null,\n date: string,\n property: string\n ) {\n this.availabilityTimelineRPUTId = RPUTId;\n this.availabilityTimelineUnitTypeId = unitTypeId;\n this.availabilityTimelineDate = new Date(date);\n this.availabilityTimelineProperty = property;\n this.availabilityTimelineOpen = true;\n\n if (this.toggleAvailabilityTimelineOpenOnClick)\n this.toggleAvailabilityTimelineOpenOnClick(false);\n }\n\n config = _config;\n\n search = \"\";\n\n selection: { row: any; selection: [DateTime, DateTime] | null } = {\n row: null,\n selection: null,\n };\n\n isEqual = _.isEqual;\n\n ratePlanShown(\n unitType: CalendarUnitTypeView,\n property: CalendarPropertyView\n ) {\n if (this.currentSettings?.showListRatePlans) {\n const listRatePlansIds = this.currentSettings?.showListRatePlans ?? [];\n const toReturn = unitType.ratePlans.filter((x) => {\n return (\n x.isDefault &&\n listRatePlansIds.includes(x.ratePlanId) &&\n !(\n x.offset +\n x.height +\n unitType.offset +\n property.offset +\n this.config.cell.h * 2 <=\n this.window.t ||\n x.offset +\n unitType.offset +\n property.offset +\n this.config.cell.h * 2 >=\n this.window.t + this.window.h\n )\n );\n });\n return toReturn;\n }\n }\n\n OBRatePlanShown(\n unitType: CalendarUnitTypeView,\n property: CalendarPropertyView,\n ratePlan: any\n ) {\n const listRatePlansIds = this.currentSettings?.showListRatePlans ?? [];\n const toReturn = unitType.ratePlans.filter((x) => {\n return (\n !x.isDefault &&\n x.parentId == ratePlan.id &&\n listRatePlansIds.includes(ratePlan.ratePlanId) &&\n x.offset +\n x.height +\n unitType.offset +\n property.offset +\n this.config.cell.h * 2 >=\n this.window.t - ratePlan.offset &&\n x.offset + unitType.offset + property.offset + this.config.cell.h * 2 <=\n this.window.h + this.window.t - ratePlan.offset\n );\n });\n return toReturn;\n }\n\n ratePlanFields = ratePlanFields;\n get ratePlanRestrictionFieldsShown() {\n return ratePlanFields.filter(\n (x) =>\n this.currentSettings?.showRatePlanFields.some((y) => y === x.key) &&\n x.isRestriction === true\n );\n }\n\n ratePlanFieldsShown() {\n return ratePlanFields.filter(\n (x) =>\n this.currentSettings?.showRatePlanFields.some((y) => y === x.key) &&\n x.isRestriction === false &&\n this.showInputPrice(x.key)\n );\n }\n\n showInputPrice(key: string) {\n if (key === \"inputPrice\") {\n if (this.tenantUsesInputPrice) {\n return true;\n } else {\n return false;\n }\n }\n\n return true;\n }\n\n @Ref(\"editor\") editor?: CalendarEditor;\n\n openQuantityEditor(ut: CalendarUnitTypeView, event: SelectedEvent) {\n if (!this.editor) return;\n this.selection = {\n row: ut,\n selection: [event.from, event.to],\n };\n this.editor.open(\n ut,\n null,\n null,\n null,\n \"quantity\",\n event.from,\n event.to,\n { x: event.topLeft.x, y: event.topLeft.y + 32 },\n ut.availabilityOnDay(event.from),\n null,\n false,\n false\n );\n }\n openPriceEditor(\n ut: CalendarUnitTypeView,\n rp: CalendarRatePlanAccomodationUnitTypeView,\n event: SelectedEvent\n ) {\n if (!this.editor) return;\n this.selection = {\n row: rp,\n selection: [event.from, event.to],\n };\n const hasOBRules = ut.ratePlans.some(\n (x) => x.parentId === rp.id && !x.isDefault\n );\n\n const hasDerived =\n ut.ratePlans.some(\n (x) => x.parentId === rp.id && x.isDerived && x.isDefault\n ) ||\n (!rp.isDefault &&\n !rp.isDerived &&\n ut.ratePlans.some(\n (x) =>\n x.parentRatePlanId === rp.ratePlanId && x.isDerived && !x.isDefault\n ));\n\n this.editor.open(\n ut,\n null,\n rp,\n null,\n \"price\",\n event.from,\n event.to,\n { x: event.topLeft.x, y: event.topLeft.y + 32 },\n rp.availabilityOnDay(event.from)?.price ?? 0,\n null,\n hasOBRules,\n hasDerived\n );\n }\n openRestrictionEditor(\n ut: CalendarUnitTypeView,\n rp: CalendarRatePlanAccomodationUnitTypeView,\n field: { key: string; type: \"number\" | \"boolean\"; textResource: string },\n event: SelectedEvent\n ) {\n if (!this.editor) return;\n const availabilityOnDay = rp.availabilityOnDay(event.from);\n this.selection = {\n row: { ...field, utid: ut.id, rpid: rp.id },\n selection: [event.from, event.to],\n };\n const hasOBRules = ut.ratePlans.some(\n (x) => x.parentId === rp.id && !x.isDefault\n );\n\n const hasDerived =\n ut.ratePlans.some(\n (x) => x.parentId === rp.id && x.isDerived && x.isDefault\n ) ||\n (!rp.isDefault &&\n !rp.isDerived &&\n ut.ratePlans.some(\n (x) =>\n x.parentRatePlanId === rp.ratePlanId && x.isDerived && !x.isDefault\n ));\n\n this.editor.open(\n ut,\n null,\n rp,\n field,\n field.type === \"number\" ? \"numberRestriction\" : \"booleanRestriction\",\n event.from,\n event.to,\n { x: event.topLeft.x, y: event.topLeft.y + 32 },\n // prettier-ignore\n availabilityOnDay\n ? availabilityOnDay[field.key]\n : field.type === \"number\" ? 0 : false,\n null,\n hasOBRules,\n hasDerived\n );\n }\n openInputPriceEditor(\n ut: CalendarUnitTypeView,\n rp: CalendarRatePlanAccomodationUnitTypeView,\n field: { key: string; type: \"number\" | \"boolean\"; textResource: string },\n event: SelectedEvent\n ) {\n if (!this.editor) return;\n const availabilityOnDay = rp.availabilityOnDay(event.from);\n this.selection = {\n row: { ...field, utid: ut.id, rpid: rp.id },\n selection: [event.from, event.to],\n };\n const hasOBRules = ut.ratePlans.some(\n (x) => x.parentId === rp.id && !x.isDefault\n );\n\n const hasDerived =\n ut.ratePlans.some(\n (x) => x.parentId === rp.id && x.isDerived && x.isDefault\n ) ||\n (!rp.isDefault &&\n !rp.isDerived &&\n ut.ratePlans.some(\n (x) =>\n x.parentRatePlanId === rp.ratePlanId && x.isDerived && !x.isDefault\n ));\n\n this.editor.open(\n ut,\n null,\n rp,\n field,\n \"inputPrice\",\n event.from,\n event.to,\n { x: event.topLeft.x, y: event.topLeft.y + 32 },\n // prettier-ignore\n availabilityOnDay\n ? availabilityOnDay[field.key]\n : field.type === \"number\" ? 0 : false,\n null,\n hasOBRules,\n hasDerived\n );\n }\n\n getStatusIcon(statusId: number) {\n switch (statusId) {\n case AccomodationUnitStatusEnum.NeedsCleaning:\n return \"fa-vacuum\";\n case AccomodationUnitStatusEnum.NeedsRepair:\n return \"fa-tools\";\n case AccomodationUnitStatusEnum.CleaningInProgress:\n return \"fa-sync\";\n case AccomodationUnitStatusEnum.RepairInProgress:\n return \"fa-sync\";\n default:\n return \"fa-map-marker-alt\";\n }\n }\n\n openUnitStatusEditor(\n ut: CalendarUnitTypeView,\n u: CalendarUnitView,\n event: MouseEvent\n ) {\n if (!this.editor || !this.showUnitStatus) return;\n\n this.editor.open(\n ut,\n u,\n null,\n null,\n \"unitStatus\",\n DateTime.local(),\n DateTime.local(),\n { x: event.x, y: event.y },\n // prettier-ignore\n {statusId: u.statusId, tenantUserId: u.maintenanceAssignedToTenantUserId},\n null,\n false,\n false\n );\n }\n\n @Getter(\"appParams/reservationShowRatePlanPopup\")\n reservationShowRatePlanPopup?: boolean;\n\n reservationModalUT: CalendarUnitTypeView | null = null;\n reservationModalU: CalendarUnitView | null = null;\n reservationModalEvent: SelectedEvent | null = null;\n availableRatePlans: CalendarRatePlanAccomodationUnitTypeView[] = [];\n ratePlanSelectOpen = false;\n\n @Watch(\"ratePlanSelectOpen\")\n ratePlanSelectOpenChanged(fresh: boolean) {\n if (!fresh) {\n this.selection = {\n row: null,\n selection: null,\n };\n }\n }\n\n openNewReservationModal(\n ut: CalendarUnitTypeView,\n u: CalendarUnitView,\n event: SelectedEvent\n ) {\n const numberOfNights = differenceInDays(\n new Date(event.from.toString()),\n new Date(event.to.toString())\n );\n\n if (this.reservationModalOpen) {\n return;\n } else if (\n ut.ratePlans.length > 1 &&\n this.reservationShowRatePlanPopup &&\n !this.isOwnerLevel3\n ) {\n this.reservationModalUT = ut;\n this.reservationModalU = u;\n this.reservationModalEvent = event;\n this.availableRatePlans = ut.ratePlans.filter(\n (x) =>\n numberOfNights === 0 ||\n (x.minStay <= numberOfNights &&\n (x.maxStay >= numberOfNights || x.maxStay === 0))\n );\n this.ratePlanSelectOpen = true;\n } else {\n this.confirmNewReservationModal(ut, u, event, null);\n }\n }\n\n reservationModalOpen = false;\n selectedAvailabilities = [] as SelectedAvailability[] | null;\n reservationRestrictions: SearchRestrictionsModel | null = null;\n reservationId: number | null = null;\n scrollId: string | null = null;\n confirmNewReservationModal(\n ut: CalendarUnitTypeView,\n u: CalendarUnitView,\n event: SelectedEvent,\n selectedRatePlan: ChangeRatePlanEvent | null\n ) {\n this.reservationId = null;\n this.scrollId = null;\n\n if (!this.allowedToModifyReservations) {\n return;\n }\n\n this.selection = {\n row: null,\n selection: null,\n };\n\n const from = event.from.toJSDate();\n const to = event.to.toJSDate();\n const arrival = new Date(\n Date.UTC(from.getFullYear(), from.getMonth(), from.getDate())\n );\n const departure = new Date(\n Date.UTC(to.getFullYear(), to.getMonth(), to.getDate())\n );\n const period = [];\n period.push(arrival, departure);\n\n this.reservationRestrictions = {\n period: period,\n numberOfUnits: 1,\n numberOfAdults: 0,\n numberOfChildren: 0,\n childrenAges: [],\n isFromCalendar: true,\n };\n\n // ! because of sucky implementation it may be important\n // ! this is set after arrival-departure dates\n this.selectedAvailabilities = [\n {\n accomodationUnitTypeId: ut.id,\n accomodationUnitId: u.id,\n ratePlansAccomodationUnitTypeId:\n selectedRatePlan?.ratePlansAccomodationUnitTypeId ?? undefined,\n },\n ];\n\n this.reservationModalOpen = true;\n }\n\n openExistingReservation(event: any) {\n this.selectedAvailabilities = null;\n this.reservationRestrictions = null;\n\n if (this.isInAvailabilitySearchModal || !this.allowedToModifyReservations) {\n return;\n }\n\n this.reservationId = event.resId;\n this.scrollId = event.scrollId;\n this.reservationModalOpen = true;\n }\n\n originalDraggedReservation: any = null;\n draggedReservation: any = null;\n reservationDrag(ut: CalendarUnitTypeView, e: any) {\n this.tooltip = null;\n\n if (this.isInAvailabilitySearchModal || !this.allowedToModifyReservations) {\n return;\n }\n\n this.originalDraggedReservation = { ...e };\n this.draggedReservation = { ...e };\n }\n reservationDragover(u: CalendarUnitView, e: DragEvent) {\n e.preventDefault();\n\n if (u.id !== this.draggedReservation.accomodationUnitId) {\n if (\n this.draggedReservation.accomodationUnitId !==\n this.originalDraggedReservation.accomodationUnitId\n ) {\n const unitRemovedFrom = this.rows\n ?.flatMap((x) => x.unitTypes)\n .flatMap((x) => x.units)\n .find((x) => x.id === this.draggedReservation.accomodationUnitId);\n unitRemovedFrom?.removeReservation(this.draggedReservation);\n }\n\n if (u.id !== this.originalDraggedReservation.accomodationUnitId) {\n u.addReservation(this.draggedReservation);\n }\n this.calculateOffsets();\n }\n }\n reservationDrop(u: CalendarUnitView, e: DragEvent) {\n e.preventDefault();\n\n if (u.id !== this.originalDraggedReservation.accomodationUnitId) {\n const originalUnitId = this.originalDraggedReservation.accomodationUnitId;\n\n const unitRemovedFrom = this.rows\n ?.flatMap((x) => x.unitTypes)\n .flatMap((x) => x.units)\n .find(\n (x) => x.id === this.originalDraggedReservation.accomodationUnitId\n );\n unitRemovedFrom?.hideReservation(this.originalDraggedReservation);\n\n this.calculateOffsets();\n\n const requestModel = {\n id: this.originalDraggedReservation.id,\n fromUnitId: originalUnitId,\n toUnitId: u.id,\n };\n\n const dragged = this.draggedReservation;\n\n dragged.loading = true;\n this.axios\n .put(\"calendar/changeUnit\", requestModel)\n .then((res) => {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: \"Reservation.SaveSuccess\",\n timeout: 5000,\n localize: true,\n } as Notification);\n\n dragged.id = res.data;\n\n this.fetchAviailabilityAndReservations &&\n this.fetchAviailabilityAndReservations({\n from: DateTime.fromISO(dragged.arrivalDate),\n to: DateTime.fromISO(dragged.departureDate),\n propertyIds: this.tenantUsesLazyLoadedCalendar\n ? this.displayedRows.map((x) => x.id)\n : [],\n accomodationUnitTypeIds: this.accomodationUnitTypeIds,\n }).then(() => {\n if (unitRemovedFrom) unitRemovedFrom.hideReservationIds = [];\n u.removeReservation(dragged);\n });\n })\n .catch(() => {\n if (unitRemovedFrom) unitRemovedFrom.hideReservationIds = [];\n u.removeReservation(dragged);\n })\n .finally(() => {\n dragged.loading = false;\n });\n }\n }\n reservationDragend() {\n if (\n this.draggedReservation.accomodationUnitId !==\n this.originalDraggedReservation.accomodationUnitId\n ) {\n const unitRemovedFrom = this.rows\n ?.flatMap((x) => x.unitTypes)\n .flatMap((x) => x.units)\n .find((x) => x.id === this.draggedReservation.accomodationUnitId);\n unitRemovedFrom?.removeReservation(this.draggedReservation);\n }\n\n this.originalDraggedReservation = null;\n this.draggedReservation = null;\n }\n\n bulk = false;\n bulkKey = 0;\n bulkModel: RatePlanBulkEdit | UnitTypeBulkEdit | null = null;\n bulkEditUnitType(p: CalendarPropertyView, ut: CalendarUnitTypeView) {\n this.bulkKey++;\n this.bulkModel = {\n property: p,\n unitType: ut,\n selectedItems: ut.ratePlans.every(\n (x) => x.currencyId == ut.ratePlans[0].currencyId\n )\n ? [...ut.ratePlans.filter((x) => !x.isDerived)]\n : [],\n } as UnitTypeBulkEdit;\n this.bulkModel.unitType.ratePlans.forEach((x) =>\n !x.isDerived && x.isDefault\n ? (x.groupSelected = true)\n : (x.groupSelected = false)\n );\n this.bulk = !this.bulk;\n }\n bulkEditRatePlan(\n ut: CalendarUnitTypeView,\n rp: CalendarRatePlanAccomodationUnitTypeView\n ) {\n this.bulkKey++;\n this.bulkModel = {\n ratePlan: rp,\n allProperties: this.rows,\n selectedItems: [ut],\n relatedRatePlansPriceUpdateType:\n RelatedRatePlansPriceUpdateTypeEnum.ApplyOBLOSCategories,\n } as RatePlanBulkEdit;\n this.bulk = !this.bulk;\n }\n\n window: CalendarWindow = {\n w: 0,\n h: 0,\n l: this.config.preload * this.config.cell.w,\n t: 0,\n };\n\n leftEdgeDay = DateTime.local();\n rightEdgeDay = this.leftEdgeDay;\n\n get edgeDays() {\n return {\n left: this.leftEdgeDay,\n right: this.rightEdgeDay,\n };\n }\n\n @Watch(\"edgeDays\", { immediate: true })\n edgeDaysWatch() {\n if (this.setEdgeDays) {\n this.setEdgeDays({ left: this.leftEdgeDay, right: this.rightEdgeDay });\n }\n }\n\n get fullBox() {\n return {\n w:\n this.rightEdgeDay.diff(this.leftEdgeDay, \"days\").days *\n this.config.cell.w +\n LEFT_W,\n h: this.filteredProperties.reduce((rAcc, r) => rAcc + r.height, 68),\n };\n }\n get fullBoxStyle() {\n return { width: this.fullBox.w + \"px\", height: this.fullBox.h + \"px\" };\n }\n\n get boxDayStartIdx() {\n return Math.max(\n Math.floor(this.window.l / this.config.cell.w) - this.config.preload,\n 0\n );\n }\n\n get months() {\n let firstDateMonth;\n let secondDateMonth;\n let month;\n\n if (this.numOfDays === \"week\" && this.language) {\n //First day + 6 days from start equals week\n // if(this.language)\n firstDateMonth = this.leftEdgeDay\n .plus({\n days: this.boxDayStartIdx + this.config.preload,\n })\n .setLocale(this.language).monthShort;\n\n secondDateMonth = this.leftEdgeDay\n .plus({\n days: this.boxDayStartIdx + this.config.preload + 6,\n })\n .setLocale(this.language).monthShort;\n if (firstDateMonth === secondDateMonth) {\n month = firstDateMonth;\n if (this.setMonths) {\n this.setMonths(month);\n }\n\n return month;\n } else {\n month = firstDateMonth + \"/\" + secondDateMonth;\n if (this.setMonths) {\n this.setMonths(month);\n }\n return month;\n }\n } else if (this.numOfDays === \"two-weeks\" && this.language) {\n //First day + 13 days from start equals 2 weeks\n firstDateMonth = this.leftEdgeDay\n .plus({\n days: this.boxDayStartIdx + this.config.preload,\n })\n .setLocale(this.language).monthShort;\n secondDateMonth = this.leftEdgeDay\n .plus({\n days: this.boxDayStartIdx + this.config.preload + 13,\n })\n .setLocale(this.language).monthShort;\n\n if (firstDateMonth === secondDateMonth) {\n month = firstDateMonth;\n if (this.setMonths) {\n this.setMonths(month);\n }\n return month;\n } else {\n month = firstDateMonth + \"/\" + secondDateMonth;\n if (this.setMonths) {\n this.setMonths(month);\n }\n return month;\n }\n } else if (this.numOfDays === \"month\" && this.language) {\n //First day + 29 days equals month, I used 29 instead of 30\n firstDateMonth = this.leftEdgeDay\n .plus({\n days: this.boxDayStartIdx + this.config.preload,\n })\n .setLocale(this.language).monthShort;\n secondDateMonth = this.leftEdgeDay\n .plus({\n days: this.boxDayStartIdx + this.config.preload + 29,\n })\n .setLocale(this.language).monthShort;\n\n if (firstDateMonth === secondDateMonth) {\n month = firstDateMonth;\n if (this.setMonths) {\n this.setMonths(month);\n }\n return month;\n } else {\n month = firstDateMonth + \"/\" + secondDateMonth;\n if (this.setMonths) {\n this.setMonths(month);\n }\n return month;\n }\n } else if (this.numOfDays === \"max\" && this.language) {\n //Max depends on daysToDisplay, tested with 35-40, daysToDisplay has actual value from start to end\n firstDateMonth = this.leftEdgeDay\n .plus({\n days: this.boxDayStartIdx + this.config.preload,\n })\n .setLocale(this.language).monthShort;\n secondDateMonth = this.leftEdgeDay\n .plus({\n days: this.boxDayStartIdx + this.config.preload + 35,\n })\n .setLocale(this.language).monthShort;\n\n if (firstDateMonth === secondDateMonth) {\n month = firstDateMonth;\n if (this.setMonths) {\n this.setMonths(month);\n }\n return month;\n } else {\n month = firstDateMonth + \"/\" + secondDateMonth;\n if (this.setMonths) {\n this.setMonths(month);\n }\n return month;\n }\n }\n\n return \"\";\n }\n\n get boxDayStart() {\n return this.leftEdgeDay.plus({ days: this.boxDayStartIdx });\n }\n get boxDayEnd() {\n const daysToDisplay =\n Math.ceil((this.window.w - LEFT_W) / this.config.cell.w) +\n 1 +\n this.config.preload * 2;\n const res = this.boxDayStart.plus({ days: daysToDisplay });\n return this.rightEdgeDay < res ? this.rightEdgeDay : res;\n }\n\n @Watch(\"currentDay\")\n currentDayChanged(fresh: DateTime) {\n if (\n this.initialNavTo ||\n fresh.toISODate() !== this.internalCurrentDay?.toISODate()\n ) {\n this.navTo(fresh);\n }\n }\n\n initialNavTo = true;\n internalCurrentDay?: DateTime;\n\n navTo(day: DateTime | string) {\n // if (this.initialNavTo && this.highlightPeriod) {\n // day = DateTime.fromISO(this.highlightPeriod[0]);\n // }\n\n this.initialNavTo = false;\n\n const _day = day instanceof DateTime ? day : DateTime.fromISO(day);\n this.internalCurrentDay = _day;\n\n const left = _day\n .startOf(\"day\")\n .minus({ days: this.config.preload + this.config.centerOffset });\n const right = left.plus({\n days:\n Math.ceil((this.window.w - LEFT_W) / this.config.cell.w) +\n this.config.preload * 2,\n });\n\n this.leftEdgeDay = left;\n this.rightEdgeDay = right;\n\n this.resetAviailabilityAndReservations &&\n this.resetAviailabilityAndReservations();\n this.fetchAviailabilityAndReservations &&\n this.fetchAviailabilityAndReservations({\n from: left,\n to: right,\n propertyIds: this.tenantUsesLazyLoadedCalendar\n ? this.displayedRows.map((x) => x.id)\n : [],\n accomodationUnitTypeIds: this.accomodationUnitTypeIds,\n }).then(() => {\n this.window.l = this.config.preload * this.config.cell.w;\n this.$el.scrollTo({ left: this.window.l });\n this.calculateOffsets();\n });\n }\n\n loadingHierarchy = false;\n mounted() {\n if (this.toggleAvailabilityTimelineOpenOnClick)\n this.toggleAvailabilityTimelineOpenOnClick(false);\n\n this.setBounds();\n\n const goTo =\n this.currentDay?.toISODate() === DateTime.local().toISODate()\n ? DateTime.local()\n : this.currentDay ?? DateTime.local();\n\n this.leftEdgeDay = goTo\n .startOf(\"day\")\n .minus({ days: this.config.preload + this.config.centerOffset });\n this.rightEdgeDay = this.leftEdgeDay.plus({\n days:\n Math.ceil((this.window.w - LEFT_W) / this.config.cell.w) +\n this.config.preload * 2,\n });\n this.$nextTick(() => this.$el.scrollTo({ left: this.window.l }));\n\n if (this.fetchHierarchy) {\n this.loadingHierarchy = true;\n this.fetchHierarchy({\n config: this.config,\n accomodationUnitTypeIds: this.accomodationUnitTypeIds,\n }).then(() => {\n this.filteredProperties = this.rows ?? [];\n\n this.toggleAllRatePlans(\n this.currentSettings?.autoExpandRatePlans ?? false\n );\n\n !this.highlightPeriod && this.goToDay && this.goToDay(goTo);\n\n if (this.highlightPeriod) {\n this.navTo(this.highlightPeriod[0]);\n }\n this.calculateOffsets();\n this.loadingHierarchy = false;\n });\n }\n\n window.addEventListener(\"keydown\", this.handleArrowKeys);\n }\n destroyed() {\n window.removeEventListener(\"keydown\", this.handleArrowKeys);\n\n this.resetAviailabilityAndReservations &&\n this.resetAviailabilityAndReservations();\n }\n\n isPropExpanded = true;\n toggleExpand(item: CalendarExpandableRow) {\n item.expanded = !item.expanded;\n this.isPropExpanded = item.expanded;\n this.calculateOffsets();\n }\n\n resized() {\n this.setBounds();\n }\n\n loadingOnScroll = false;\n scrolled() {\n if (this.editor && this.editor.menu) {\n this.editor.close();\n }\n\n this.loadingOnScroll = true;\n this.debouncedVerticalScroll();\n this.debouncedHorizontalScroll();\n }\n\n handleVerticalScroll() {\n this.window.t = this.$el.scrollTop;\n this.loadingOnScroll = false;\n }\n debouncedVerticalScroll = _.debounce(this.handleVerticalScroll, 200, {\n trailing: true,\n maxWait: 1000,\n });\n\n handleHorizontalScroll() {\n this.window.l = this.$el.scrollLeft;\n const loadTreshold = 120;\n let loaded = false;\n if (this.window.l <= loadTreshold) {\n this.loadLeft();\n loaded = true;\n } else if (this.fullBox.w - this.window.l - this.window.w <= loadTreshold) {\n this.loadRight();\n loaded = true;\n }\n\n if (!this.highlightPeriod && this.goToDay) {\n const lDiffDays = Math.floor(this.window.l / this.config.cell.w);\n this.internalCurrentDay = this.leftEdgeDay.plus({ days: lDiffDays + 3 });\n if (\n this.internalCurrentDay.toISODate() !== this.currentDay?.toISODate() &&\n !this.initialNavTo\n ) {\n this.goToDay(this.internalCurrentDay);\n }\n }\n\n if (loaded) {\n this.calculateOffsets();\n }\n }\n debouncedHorizontalScroll = _.debounce(this.handleHorizontalScroll, 200, {\n trailing: true,\n maxWait: 2000,\n });\n\n loadingLeft = false;\n repeatLoadLeft = false;\n loadLeft() {\n if (this.loading) {\n return;\n }\n if (this.loadingLeft) {\n this.repeatLoadLeft = true;\n return;\n }\n\n this.leftEdgeDay = this.leftEdgeDay.minus({ days: this.config.preload });\n const scrollBy = this.config.cell.w * this.config.preload;\n this.$el.scrollBy({ left: scrollBy });\n this.window.l += scrollBy;\n\n this.fetchAviailabilityAndReservations &&\n this.fetchAviailabilityAndReservations({\n from: this.leftEdgeDay,\n to: this.leftEdgeDay.plus({ days: this.config.preload - 1 }),\n propertyIds: this.tenantUsesLazyLoadedCalendar\n ? this.displayedRows.map((x) => x.id)\n : [],\n accomodationUnitTypeIds: this.accomodationUnitTypeIds,\n }).then(() => {\n this.loadingLeft = false;\n if (this.repeatLoadLeft) {\n this.repeatLoadLeft = false;\n this.loadLeft();\n }\n });\n }\n\n loadingRight = false;\n repeatLoadRight = false;\n loadRight() {\n if (this.loading) {\n return;\n }\n if (this.loadingRight) {\n this.repeatLoadRight = true;\n return;\n }\n\n this.rightEdgeDay = this.rightEdgeDay.plus({ days: this.config.preload });\n this.fetchAviailabilityAndReservations &&\n this.fetchAviailabilityAndReservations({\n from: this.rightEdgeDay.minus({ days: this.config.preload - 1 }),\n to: this.rightEdgeDay,\n propertyIds: this.tenantUsesLazyLoadedCalendar\n ? this.displayedRows.map((x) => x.id)\n : [],\n accomodationUnitTypeIds: this.accomodationUnitTypeIds,\n }).then(() => {\n this.loadingRight = false;\n if (this.repeatLoadRight) {\n this.repeatLoadRight = false;\n this.loadRight();\n }\n });\n }\n\n setBounds() {\n this.window.w = this.$el.clientWidth;\n this.window.h = this.$el.clientHeight;\n\n let cellw = 48;\n switch (this.currentSettings?.numOfDays) {\n case \"week\":\n cellw = Math.max(48, Math.ceil((this.window.w - LEFT_W) / 7));\n break;\n case \"two-weeks\":\n cellw = Math.max(48, Math.ceil((this.window.w - LEFT_W) / 14));\n break;\n case \"month\":\n cellw = Math.max(48, Math.ceil((this.window.w - LEFT_W) / 31));\n break;\n }\n\n if (this.config.cell.w !== cellw) {\n this.$el.scrollLeft = Math.floor(\n (this.window.l / this.config.cell.w) * cellw\n );\n this.config.cell = { ...this.config.cell, w: cellw };\n }\n }\n\n @Getter(\"calendar/availabilitiesAndReservations\")\n availabilitiesAndReservations?: {\n availabilities: any[];\n reservations: any[];\n blockedAvailabilities: any[];\n };\n @Action(\"calendar/removeAvailabilitiesForProperties\")\n removeAvailabilities?: (propertyIds: number[]) => void;\n\n filteredProperties: CalendarPropertyView[] = [];\n get displayedRows(): CalendarPropertyView[] {\n if (this.filteredProperties.length === 0 || this.loadingHierarchy)\n return [];\n\n const toReturn = this.filteredProperties.filter(\n (p) =>\n !(\n p.offset + p.height <= this.window.t ||\n p.offset >= this.window.t + this.window.h\n )\n );\n\n if (this.tenantUsesLazyLoadedCalendar) {\n toReturn.forEach((x) =>\n x.mergeOnRendered(\n this.availabilitiesAndReservations?.availabilities ?? [],\n this.availabilitiesAndReservations?.reservations ?? []\n )\n );\n } else {\n toReturn.forEach((x) => {\n x.mergeOnRendered(\n this.availabilitiesAndReservations?.availabilities ?? [],\n this.availabilitiesAndReservations?.reservations ?? []\n );\n x.mergeBlockedAvailabilities(\n this.availabilitiesAndReservations?.blockedAvailabilities ?? []\n );\n });\n }\n\n toReturn.forEach(\n (x) => (x.unitTypesToDisplay = this.getUnitTypesToDisplay(x))\n );\n toReturn.forEach((x) =>\n x.unitTypesToDisplay.forEach(\n (y) => (y.unitsToDisplay = this.getUnitsToDisplay(y.units))\n )\n );\n\n return toReturn;\n }\n\n getUnitTypesToDisplay(property: CalendarPropertyView) {\n const toReturn = property.unitTypes.filter(\n (ut) =>\n !(\n ut.offset + ut.height + property.offset + this.config.cell.h <=\n this.window.t ||\n ut.offset + property.offset + this.config.cell.h >=\n this.window.t + this.window.h\n )\n );\n return toReturn;\n }\n\n getUnitsToDisplay(units: CalendarUnitView[]) {\n if (\n (this.accomodationUnitTypeIds ?? 0) === 0 ||\n !this.highlightPeriod ||\n this.highlightPeriod.length === 0\n )\n return units;\n\n const highlightPeriodStart = this.highlightPeriod[0];\n const highlightPeriodEnd = this.highlightPeriod[1];\n\n return units.filter(\n (x) =>\n !x.reservations?.some(\n (r) =>\n r.arrivalDate.substring(0, 10) < highlightPeriodEnd &&\n r.departureDate.substring(0, 10) > highlightPeriodStart\n )\n );\n }\n\n getUnitOffset(units: CalendarUnitView[], index: number) {\n return units.slice(0, index).reduce((h, unit) => h + unit.height, 0);\n }\n\n // query availabilities as properties are rendered for lazy loaded calendar\n @Watch(\"displayedRows\")\n displayedRowsWatch(\n fresh: CalendarPropertyView[],\n old: CalendarPropertyView[]\n ) {\n if (this.tenantUsesLazyLoadedCalendar) {\n if (!_.isEqual(fresh, old)) {\n const ids = fresh\n .filter((x) => !old.some((y) => x.id == y.id))\n .map((x) => x.id);\n if (ids.length > 0) {\n this.fetchAviailabilityAndReservations &&\n this.fetchAviailabilityAndReservations({\n from: this.leftEdgeDay,\n to: this.rightEdgeDay,\n propertyIds: ids,\n accomodationUnitTypeIds: this.accomodationUnitTypeIds,\n });\n }\n\n const toRemove = old\n .filter((x) => !fresh.some((y) => x.id == y.id))\n .map((x) => x.id);\n if (this.removeAvailabilities && toRemove.length > 0) {\n this.removeAvailabilities(toRemove);\n }\n }\n }\n this.$nextTick(() => this.calculateOffsets());\n }\n\n calculateOffsets() {\n let offset = 68;\n\n for (const r of this.filteredProperties) {\n let unitOffset = 0;\n\n for (const u of r.unitTypes) {\n let rpOffset = 0;\n\n for (const rp of u.ratePlans.filter((x) => x.isDefault)) {\n const obRates = u.ratePlans.filter(\n (x) => !x.isDefault && x.parentId == rp.id\n ); //should be sorted already\n const rpBaseHeight = rp.calculateRateBaseHeight(\n this.config.cell,\n (this.currentSettings?.showRatePlans ?? true) &&\n this.allowedToReadRatePlans,\n this.currentSettings\n ? (this.currentSettings.showRatePlanFields.includes(\n \"inputPrice\"\n ) &&\n this.tenantUsesInputPrice) ??\n false\n : false,\n !this.allowedToReadRatePlans\n ? []\n : this.currentSettings?.showRestrictions\n ? this.currentSettings.showRatePlanFields\n : [],\n this.currentSettings?.showListRatePlans\n ? this.currentSettings.showListRatePlans\n : []\n );\n\n const rpExpandedHeight = rp.calculateRateExpandedHeight(\n this.config.cell,\n (this.currentSettings?.showRatePlans ?? true) &&\n this.allowedToReadRatePlans,\n this.currentSettings?.showOBRatePlans ?? false,\n this.currentSettings\n ? (this.currentSettings.showRatePlanFields.includes(\n \"inputPrice\"\n ) &&\n this.tenantUsesInputPrice) ??\n false\n : false,\n !this.allowedToReadRatePlans\n ? []\n : this.currentSettings?.showRestrictions\n ? this.currentSettings.showRatePlanFields\n : [],\n this.currentSettings?.showListRatePlans\n ? this.currentSettings.showListRatePlans\n : [],\n obRates\n );\n\n rp.height = rpBaseHeight + rpExpandedHeight;\n\n let obRpOffest = rpBaseHeight - 32;\n rp.offset = rpOffset;\n rpOffset += rp.height;\n\n if (\n this.currentSettings?.showOBRatePlans &&\n this.currentSettings?.showRatePlans &&\n this.allowedToReadRatePlans\n ) {\n for (const obRp of obRates) {\n obRp.height = obRp.calculateObRateTotalHeight(\n this.config.cell,\n (this.currentSettings?.showRatePlans ?? true) &&\n this.allowedToReadRatePlans,\n this.currentSettings?.showOBRatePlans ?? false,\n this.currentSettings\n ? (this.currentSettings.showRatePlanFields.includes(\n \"inputPrice\"\n ) &&\n this.tenantUsesInputPrice) ??\n false\n : false,\n !this.allowedToReadRatePlans\n ? []\n : this.currentSettings?.showRestrictions\n ? this.currentSettings.showRatePlanFields\n : [],\n rp.id\n );\n\n obRp.offset = obRpOffest;\n obRpOffest += obRp.height;\n }\n }\n }\n\n u.ratePlansHeight = u.ratePlans\n .filter((x) => x.isDefault)\n .reduce((acc, rp) => acc + rp.height, 0);\n\n // Unit offset\n u.height = u.h(\n this.config.cell,\n false,\n this.currentSettings?.showUnits ?? false,\n (this.currentSettings?.showRatePlans ?? true) &&\n this.allowedToReadRatePlans,\n this.currentSettings?.showOBRatePlans ?? false,\n this.currentSettings\n ? (this.currentSettings.showRatePlanFields.includes(\"inputPrice\") &&\n this.tenantUsesInputPrice) ??\n false\n : false,\n !this.allowedToReadRatePlans\n ? []\n : this.currentSettings?.showRestrictions\n ? this.currentSettings.showRatePlanFields\n : [],\n this.currentSettings?.showListRatePlans\n ? this.currentSettings.showListRatePlans\n : [],\n u.units ? this.getUnitsToDisplay(u.units).length : 0\n );\n u.offset = unitOffset;\n unitOffset += u.height;\n }\n\n // Property offset\n r.height = r.h(\n this.filteredProperties.length,\n this.config.cell,\n false,\n this.currentSettings?.showUnits ?? false,\n (this.currentSettings?.showRatePlans ?? true) &&\n this.allowedToReadRatePlans,\n this.currentSettings?.showOBRatePlans ?? false,\n this.currentSettings\n ? (this.currentSettings.showRatePlanFields.includes(\"inputPrice\") &&\n this.tenantUsesInputPrice) ??\n false\n : false,\n !this.allowedToReadRatePlans\n ? []\n : this.currentSettings?.showRestrictions\n ? this.currentSettings.showRatePlanFields\n : [],\n this.currentSettings?.showListRatePlans\n ? this.currentSettings.showListRatePlans\n : [],\n this.highlightPeriod ? this.highlightPeriod : []\n );\n r.offset = offset;\n offset += r.height;\n }\n }\n\n getAccUnitTypeFullName(aut: CalendarUnitTypeView) {\n return aut.name + ` (${aut.baseBedsCapacity}+${aut.extraBedsCapacity})`;\n }\n\n getAccUnitTypeName(aut: CalendarUnitTypeView) {\n // found by manually checking how many characters we can have in 2 rows using the widest character in current font 'W' (with one space)\n // which is 29 (but I decided to use an even number), then added 75% as most other characters are significantly thinner and we shouldn't have an AUT with too many 'W'\n // and such in name (I hope...)\n const maxTotalLength = 28 + 21;\n\n // characters in the AUT name which can result in multiple words treated as one word if there is no correct space (if the word is too long then possibility of third row gets higher)\n // ',' and '&' are used the most so that's why they are here from the start\n const charactersToReplace: { [key: string]: string } = {\n \",\": \", \",\n \"&\": \" & \",\n };\n let autName = aut.name.replace(\n /[,&]/g,\n (m: string | number) => charactersToReplace[m]\n );\n\n const totalLength =\n autName.length +\n aut.baseBedsCapacity.toString().length +\n aut.extraBedsCapacity.toString().length +\n 3;\n\n if (totalLength > maxTotalLength) {\n const toCut = totalLength - maxTotalLength;\n const endIndex = totalLength - toCut;\n\n autName = autName.substring(0, endIndex);\n autName += \"...\";\n }\n\n return autName + ` (${aut.baseBedsCapacity}+${aut.extraBedsCapacity})`;\n }\n\n getRatePlanName(rp: CalendarRatePlanAccomodationUnitTypeView) {\n // found by manually checking how many characters we can have in 2 rows using the widest character in current font 'W'\n // which is 32, then added 75% as most other characters are significantly thinner and we shouldn't have a rate plan with too many 'W' and such in name (I hope...)\n const maxTotalLength = 32 + 24;\n\n let rpName = rp.name;\n let paxSuffix = \"\";\n let losSuffix = \"\";\n const currencySuffix = ` (${rp.currencyCode})`;\n\n if (this.showPAXSuffixInRatePlanName) {\n paxSuffix =\n rp.minPersons === rp.maxPersons\n ? `, ${rp.minPersons} pax`\n : `, ${rp.minPersons}-${rp.maxPersons} pax`;\n }\n\n if (this.showLOSSuffixInRatePlanName) {\n losSuffix =\n rp.maxStay === 0\n ? `, ${rp.minStay}+ LOS`\n : rp.minStay === rp.maxStay\n ? `, ${rp.minStay} LOS`\n : `, ${rp.minStay}-${rp.maxStay} LOS`;\n }\n\n const totalLength =\n rpName.length +\n paxSuffix.length +\n losSuffix.length +\n currencySuffix.length;\n\n if (totalLength > maxTotalLength) {\n const toCut = totalLength - maxTotalLength + 3; // + paxSuffix.length + losSuffix.length + currencySuffix.length;\n const endIndex = rpName.length - toCut;\n\n rpName = rpName.substring(0, endIndex);\n rpName += \"...\";\n }\n\n return rpName + paxSuffix + losSuffix + currencySuffix;\n }\n\n getRatePlanFullName(rp: CalendarRatePlanAccomodationUnitTypeView) {\n let paxSuffix = \"\";\n let losSuffix = \"\";\n const currencySuffix = ` (${rp.currencyCode})`;\n\n if (this.showPAXSuffixInRatePlanName) {\n paxSuffix =\n rp.minPersons === rp.maxPersons\n ? `, ${rp.minPersons} pax`\n : `, ${rp.minPersons}-${rp.maxPersons} pax`;\n }\n\n if (this.showLOSSuffixInRatePlanName) {\n losSuffix =\n rp.maxStay === 0\n ? `, ${rp.minStay}+ LOS`\n : rp.minStay === rp.maxStay\n ? `, ${rp.minStay} LOS`\n : `, ${rp.minStay}-${rp.maxStay} LOS`;\n }\n\n return rp.name + paxSuffix + losSuffix + currencySuffix;\n }\n\n expandRatePlan(rp: CalendarRatePlanAccomodationUnitTypeView) {\n rp.expanded = !rp.expanded;\n this.calculateOffsets();\n }\n\n toggleAllRatePlans(value: boolean) {\n this.rows?.forEach((x) =>\n x.unitTypes.forEach((e) =>\n e.ratePlans.forEach((rp) => (rp.expanded = value))\n )\n );\n }\n\n filterFn = (reg: RegExp) => (p: CalendarPropertyView) =>\n reg.test(p.name) || p.unitTypes.some((ut) => reg.test(ut.name));\n onFiltered(e: CalendarPropertyView[]) {\n this.filteredProperties = e;\n this.calculateOffsets();\n }\n\n handleArrowKeys(e: KeyboardEvent) {\n if (\"ArrowLeft\" === e.key) {\n this.$el.scrollBy({ left: -8 });\n } else if (\"ArrowRight\" === e.key) {\n this.$el.scrollBy({ left: 8 });\n }\n }\n\n dayFieldValue(\n rp: CalendarRatePlanAccomodationUnitTypeView,\n day: DateTime,\n field: { key: string }\n ) {\n const a = rp.availabilityOnDay(day);\n return a && a[field.key] ? a[field.key] : null;\n }\n\n propertyLoadingIndicator(propertyId: number) {\n return (\n (this.blockedDatesCalculations?.some((x) => x === propertyId) ?? false) ||\n (this.loadingAvailabilityForPropertyIds?.some((x) => x === propertyId) ??\n false)\n );\n }\n\n @Watch(\"numOfDays\")\n numOfDaysChanged() {\n this.setBounds();\n }\n @Watch(\"rowHeight\", { immediate: true })\n rowHeightChanged() {\n let hl = 56;\n switch (this.rowHeight) {\n case \"small\":\n hl = 32;\n break;\n case \"standard\":\n hl = 56;\n break;\n case \"big\":\n hl = 96;\n break;\n }\n\n if (hl !== this.config.cell.hl) {\n this.config.cell = { ...this.config.cell, hl };\n }\n\n if (this.rows) {\n const units = this.rows\n .flatMap((x) => x.unitTypes)\n .flatMap((x) => x.units);\n units.forEach((x) => {\n x.baseHeight = this.config.cell.hl;\n x.calculateOverbooking();\n });\n }\n }\n @Watch(\"currentSettings\", { deep: true })\n settingsChanged(fresh: CalendarSettings, old: CalendarSettings) {\n if (fresh.autoExpandRatePlans != old.autoExpandRatePlans) {\n this.toggleAllRatePlans(fresh.autoExpandRatePlans);\n }\n\n this.$nextTick(() => this.calculateOffsets());\n }\n\n calendarReload(event: { from: DateTime; to: DateTime }) {\n this.fetchAviailabilityAndReservations &&\n this.fetchAviailabilityAndReservations({\n from: event.from,\n to: event.to,\n propertyIds: this.tenantUsesLazyLoadedCalendar\n ? this.displayedRows.map((x) => x.id)\n : [],\n accomodationUnitTypeIds: this.accomodationUnitTypeIds,\n });\n }\n\n @Getter(\"globalFilters/filteredProperties\")\n globalFilter?: GlobalFilterProperty[];\n get showSearch() {\n return this.accomodationUnitTypeIds || (this.globalFilter?.length ?? 0) > 1;\n }\n\n @Action(\"calendar/setEdgeDays\") setEdgeDays?: (payload: {\n left: DateTime;\n right: DateTime;\n }) => Promise;\n\n @Getter(\"calendar/isLoading\") loading?: boolean;\n @Getter(\"calendar/propertiesWithBlockedDatesCalculationInProgress\")\n blockedDatesCalculations?: number[];\n @Getter(\"calendar/loadingAvailabilityAndReservationsForPropertyIds\")\n loadingAvailabilityForPropertyIds?: number[];\n\n @Getter(\"calendar/properties\") rows?: CalendarPropertyView[];\n @Action(\"calendar/fetchHierarchy\") fetchHierarchy?: (payload: {\n config: CalendarBoxConfig;\n accomodationUnitTypeIds?: number[];\n }) => Promise;\n @Action(\"calendar/resetAviailabilityAndReservations\")\n resetAviailabilityAndReservations?: () => void;\n @Action(\"calendar/fetchAviailabilityAndReservations\")\n fetchAviailabilityAndReservations?: (payload: {\n from: DateTime;\n to: DateTime;\n propertyIds: number[];\n accomodationUnitTypeIds?: number[];\n }) => Promise;\n\n @Getter(\"calendar/currentDay\") currentDay?: DateTime;\n @Action(\"calendar/goToDay\") goToDay?: (payload: DateTime) => void;\n @Action(\"calendar/setMonths\") setMonths?: (payload: string) => void;\n\n @Action(\"appAppearance/refreshCalendarColorSettings\")\n refreshCalendarColorSettings?: () => Promise;\n\n async created() {\n if (this.refreshCalendarColorSettings)\n await this.refreshCalendarColorSettings();\n }\n}\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!./CalendarBox.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!./CalendarBox.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CalendarBox.vue?vue&type=template&id=70eddd4a&scoped=true&\"\nimport script from \"./CalendarBox.vue?vue&type=script&lang=ts&\"\nexport * from \"./CalendarBox.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CalendarBox.vue?vue&type=style&index=0&id=70eddd4a&scoped=true&lang=scss&\"\nimport style1 from \"./CalendarBox.vue?vue&type=style&index=1&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"70eddd4a\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VFadeTransition } from 'vuetify/lib/components/transitions';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VOverlay } from 'vuetify/lib/components/VOverlay';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VToolbar } from 'vuetify/lib/components/VToolbar';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VFadeTransition,VIcon,VOverlay,VProgressCircular,VSpacer,VToolbar,VTooltip})\n\n\n/* vuetify-loader */\nimport installDirectives from \"!../../../node_modules/vuetify-loader/lib/runtime/installDirectives.js\"\nimport Resize from 'vuetify/lib/directives/resize'\nimport Scroll from 'vuetify/lib/directives/scroll'\ninstallDirectives(component, {Resize,Scroll})\n","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!./BulkEdit.vue?vue&type=style&index=0&id=672804ea&scoped=true&lang=scss&\"","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!./RatePlanPricesList.vue?vue&type=style&index=0&id=65c7b241&scoped=true&lang=scss&\"","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!./RatePlanFieldsList.vue?vue&type=style&index=0&id=10ae7b18&scoped=true&lang=scss&\"","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!./UnitTypePart.vue?vue&type=style&index=0&id=2d6792d8&scoped=true&lang=scss&\"","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!./CalendarBox.vue?vue&type=style&index=0&id=70eddd4a&scoped=true&lang=scss&\""],"sourceRoot":""}