{"version":3,"sources":["webpack:///./node_modules/core-js/modules/es.regexp.to-string.js","webpack:///./node_modules/vue-select/dist/vue-select.js","webpack:///./src/views/schedule/UnitBlock.vue?bf60","webpack:///./node_modules/core-js/modules/es.array.sort.js","webpack:///./node_modules/bootstrap-vue/esm/utils/locale.js","webpack:///./src/views/schedule/assetsSchedules.js","webpack:///./node_modules/bootstrap-vue/esm/components/layout/row.js","webpack:///./node_modules/core-js/modules/es.array.splice.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-size.js","webpack:///./src/views/schedule/UnitBlock.vue?9d1e","webpack:///src/views/schedule/UnitBlock.vue","webpack:///./src/views/schedule/UnitBlock.vue?9b87","webpack:///./src/views/schedule/UnitBlock.vue","webpack:///./node_modules/bootstrap-vue/esm/constants/date.js","webpack:///./node_modules/bootstrap-vue/esm/utils/date.js","webpack:///./node_modules/bootstrap-vue/esm/components/calendar/calendar.js","webpack:///./node_modules/bootstrap-vue/esm/directives/hover/hover.js","webpack:///./node_modules/bootstrap-vue/esm/components/form-btn-label-control/bv-form-btn-label-control.js","webpack:///./node_modules/bootstrap-vue/esm/components/form-datepicker/form-datepicker.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-control.js"],"names":["redefine","anObject","fails","flags","TO_STRING","RegExpPrototype","RegExp","prototype","nativeToString","NOT_GENERIC","call","source","INCORRECT_NAME","name","R","this","p","String","rf","f","undefined","unsafe","t","e","module","exports","self","n","o","i","l","m","c","d","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","__esModule","create","bind","default","hasOwnProperty","s","iterator","constructor","configurable","writable","Array","isArray","length","toString","from","TypeError","a","props","autoscroll","type","Boolean","watch","typeAheadPointer","maybeAdjustScroll","methods","$refs","dropdownMenu","children","getDropdownViewport","getBoundingClientRect","top","bottom","height","scrollTop","offsetTop","u","data","filteredOptions","selectable","typeAheadUp","typeAheadDown","typeAheadSelect","select","loading","mutableLoading","search","$emit","toggleLoading","arguments","h","options","render","staticRenderFns","_compiled","functional","_scopeId","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","_injectStyles","beforeCreate","concat","Deselect","$createElement","_self","_c","attrs","xmlns","width","OpenIndicator","inserted","context","appendToBody","toggle","left","window","scrollX","pageXOffset","scrollY","pageYOffset","unbindPosition","calculatePosition","document","body","appendChild","unbind","parentNode","removeChild","y","keys","sort","forEach","JSON","stringify","b","g","v","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","push","apply","getOwnPropertyDescriptors","defineProperties","_","components","mixins","directives","disabled","clearable","searchable","multiple","placeholder","transition","clearSearchOnSelect","closeOnSelect","label","autocomplete","reduce","Function","getOptionLabel","console","warn","getOptionKey","id","onTab","selectOnTab","isComposing","taggable","tabindex","Number","pushTags","filterable","filterBy","toLowerCase","indexOf","createOption","optionList","resetOnOptionsChange","validator","includes","clearSearchOnBlur","noDrop","inputId","dir","selectOnKeyCodes","searchInputQuerySelector","mapKeydown","style","uid","open","pushedTags","_value","selectedValue","clearSelection","isTrackingValues","setInternalValueFromOptions","created","$on","pushTag","$data","map","findOptionFromReducedValue","isOptionSelected","optionExists","updateValue","onAfterSelect","deselect","optionComparator","searchEl","blur","toggleDropdown","target","preventDefault","deselectButtons","clearButton","some","contains","focus","find","closeSearchOptions","maybeDeleteValue","slice","normalizeOptionForSlot","onEscape","onSearchBlur","mousedown","searching","onSearchFocus","onMousedown","onMouseUp","onSearchKeyDown","8","9","27","38","40","keyCode","computed","propsData","$scopedSlots","selectedOptions","querySelector","scope","attributes","searchPlaceholder","readonly","ref","dropdownOpen","events","compositionstart","compositionend","keydown","input","spinner","noOptions","openIndicator","role","class","listHeader","listFooter","header","footer","childComponents","stateClasses","isValueEmpty","unshift","showClearButton","O","staticClass","_t","_v","on","_l","key","_s","refInFor","title","click","tag","_e","option","_g","_b","rawName","expression","mouseup","mouseover","stopPropagation","staticStyle","display","visibility","w","ajax","pointer","pointerScroll","$","aFunction","toObject","arrayMethodIsStrict","test","nativeSort","FAILS_ON_UNDEFINED","FAILS_ON_NULL","STRICT_METHOD","FORCED","proto","forced","comparefn","RTL_LANGS","locale","isLocaleRTL","parts","replace","split","locale1","join","locale2","weekdayText","SchedulesService","scheduleDate","isStart","isNew","date","Date","datetimeFormatter","setDate","getDate","val","month","day","year","toLocaleDateString","substr","dateObj","getMonth","getDay","dayText","addDays","getFullYear","hours","getHours","minutes","getMinutes","date1","date2","diffTime","Math","abs","ceil","setTime","getTime","field","desc","ownKeys","object","enumerableOnly","symbols","sym","_objectSpread","_defineProperty","obj","COMMON_ALIGNMENT","computeRowColsClass","breakpoint","cols","computeRowColsBreakpoint","prop","rowColsPropList","generateProps","rowColsProps","alignContent","alignH","alignV","noGutters","BRow","_ref","_classList$push","classList","toAbsoluteIndex","toInteger","toLength","arraySpeciesCreate","createProperty","arrayMethodHasSpeciesSupport","arrayMethodUsesToLength","HAS_SPECIES_SUPPORT","USES_TO_LENGTH","ACCESSORS","0","1","max","min","MAX_SAFE_INTEGER","MAXIMUM_ALLOWED_LENGTH_EXCEEDED","splice","start","deleteCount","insertCount","actualDeleteCount","A","k","to","len","actualStart","argumentsLength","size","formSizeMixin","extend","sizeFormClass","_vm","_h","setDragenterRowAndIndex","reasonType","dayOff","rowIndex","keyIndex","component","CALENDAR_GREGORY","CALENDAR_LONG","CALENDAR_NARROW","CALENDAR_SHORT","DATE_FORMAT_2_DIGIT","DATE_FORMAT_NUMERIC","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","minLen","_arrayLikeToArray","arr2","_arr","_n","_d","_i","next","done","err","_construct","Parent","args","Class","_isNativeReflectConstruct","Reflect","construct","Constructor","instance","_setPrototypeOf","sham","Proxy","setPrototypeOf","__proto__","_watch","createDate","_len","_key","trim","_date$split$map","_date$split$map2","formatYMD","locales","calendar","identity","fmt","Intl","DateTimeFormat","resolvedOptions","createDateFormatter","dtf","format","datesEqual","firstDateOfMonth","lastDateOfMonth","setMonth","addYears","numberOfYears","setFullYear","oneMonthAgo","oneMonthAhead","oneYearAgo","oneYearAhead","oneDecadeAgo","oneDecadeAhead","_makeModelMixin","modelMixin","mixin","modelProps","MODEL_PROP_NAME","MODEL_EVENT_NAME","event","ariaControls","block","dateDisabledFn","dateFormatOptions","weekday","dateInfoFn","direction","hidden","hideHeader","initialDate","labelCalendar","labelCurrentMonth","labelHelp","labelNav","labelNextDecade","labelNextMonth","labelNextYear","labelNoDateSelected","labelPrevDecade","labelPrevMonth","labelPrevYear","labelSelected","labelToday","navButtonVariant","noHighlightToday","noKeyNav","roleDescription","selectedVariant","showDecadeNav","startWeekday","todayVariant","valueAsDate","weekdayHeaderFormat","array","BCalendar","selected","selectedYMD","activeYMD","getToday","gridHasFocus","isLive","valueId","safeId","widgetId","navId","gridId","gridCaptionId","gridHelpId","activeId","selectedDate","activeDate","computedMin","computedMax","computedWeekStarts","math","computedLocale","computedDateDisabledFn","computedDateInfoFn","calendarLocale","calendarYear","calendarMonth","calendarFirstDay","calendarDaysInMonth","computedVariant","computedTodayVariant","computedNavButtonVariant","isRTL","selectedFormatted","formatDateString","activeFormatted","dateDisabled","rtl","dateOutOfRange","_this","rangeFn","ymd","hour","minute","second","formatYearMonth","formatWeekdayName","formatWeekdayNameShort","formatDay","nf","NumberFormat","minimumIntegerDigits","minimumFractionDigits","maximumFractionDigits","notation","prevDecadeDisabled","prevYearDisabled","prevMonthDisabled","thisMonthDisabled","nextMonthDisabled","nextYearDisabled","nextDecadeDisabled","matrix","firstDay","daysInMonth","startIndex","weekOffset","currentDay","week","j","dayYMD","dayDisabled","dateInfo","isThisMonth","isDisabled","info","calendarHeadings","_this2","text","newValue","oldValue","old","newYMD","oldYMD","constrainDate","setLive","_this3","$nextTick","mounted","activated","deactivated","beforeDestroy","grid","_this4","emitSelected","_this5","setGridFocusFlag","onKeydownWrapper","altKey","ctrlKey","checkDate","constrainedToday","onKeydownGrid","onClickDay","clickedDate","gotoPrevDecade","gotoPrevYear","gotoPrevMonth","gotoCurrentMonth","gotoNextMonth","gotoNextYear","gotoNextDecade","onHeaderClick","_this6","hideDecadeNav","todayYMD","highlightToday","$header","for","labelSelectedDate","navScope","navProps","shiftV","navPrevProps","flipH","navNextProps","$prevDecadeIcon","normalizeSlot","$prevYearIcon","$prevMonthIcon","$thisMonthIcon","$nextMonthIcon","$nextYearIcon","$nextDecadeIcon","makeNavBtn","content","handler","btnDisabled","shortcut","$nav","$gridCaption","$gridWeekDays","idx","$gridBody","$cells","dIndex","_class","isSelected","isActive","isToday","idCell","$btn","active","pointerEvents","$gridHelp","$grid","$slot","$widget","lang","bvAttrs","PROP","MOUSEENTER","MOUSELEAVE","createListener","listener","fn","el","_ref$value","hasListener","handlerChanged","VBHover","componentUpdated","dropdown","buttonOnly","buttonVariant","formattedValue","menuClass","BVFormBtnLabelControl","isHovered","hasFocus","idButton","idLabel","idMenu","idWrapper","computedDir","setFocus","handleHover","hovered","required","state","visible","invalid","btnScope","opened","$button","hasNormalizedSlot","scale","$hidden","form","$menu","show","right","onKeydown","$label","stateClass","directionClass","boundaryClass","calendarProps","formBtnLabelControlProps","calendarWidth","closeButton","closeButtonVariant","dark","labelCloseButton","labelResetButton","labelTodayButton","noCloseOnSelect","resetButton","resetButtonVariant","resetValue","todayButton","todayButtonVariant","BFormDatepicker","localYMD","isVisible","localLocale","calendarYM","computedLang","computedResetValue","control","updatePopper","_unused","setAndClose","hide","onSelected","onInput","onContext","ctx","onTodayButton","onResetButton","onCloseButton","onShow","onShown","onHidden","defaultButtonFn","$props","$footer","variant","_label","_label2","$calendar","scopedSlots","shown","SELECTOR","autofocus","formControlMixin","handleAutofocus","$el"],"mappings":"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","file":"js/chunk-e16af518.35da5e05.js","sourcesContent":["'use strict';\nvar redefine = require('../internals/redefine');\nvar anObject = require('../internals/an-object');\nvar fails = require('../internals/fails');\nvar flags = require('../internals/regexp-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = nativeToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n redefine(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var p = String(R.source);\n var rf = R.flags;\n var f = String(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? flags.call(R) : rf);\n return '/' + p + '/' + f;\n }, { unsafe: true });\n}\n","!function(t,e){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define([],e):\"object\"==typeof exports?exports.VueSelect=e():t.VueSelect=e()}(\"undefined\"!=typeof self?self:this,(function(){return function(t){var e={};function n(o){if(e[o])return e[o].exports;var i=e[o]={i:o,l:!1,exports:{}};return t[o].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=t,n.c=e,n.d=function(t,e,o){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:o})},n.r=function(t){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&\"object\"==typeof t&&t&&t.__esModule)return t;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,\"default\",{enumerable:!0,value:t}),2&e&&\"string\"!=typeof t)for(var i in t)n.d(o,i,function(e){return t[e]}.bind(null,i));return o},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,\"a\",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p=\"/\",n(n.s=8)}([function(t,e,n){var o=n(4),i=n(5),s=n(6);t.exports=function(t){return o(t)||i(t)||s()}},function(t,e){function n(e){return\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?t.exports=n=function(t){return typeof t}:t.exports=n=function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t},n(e)}t.exports=n},function(t,e,n){},function(t,e){t.exports=function(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}},function(t,e){t.exports=function(t){if(Array.isArray(t)){for(var e=0,n=new Array(t.length);en.bottom)return this.$refs.dropdownMenu.scrollTop=e.offsetTop-(n.height-r)}},getDropdownViewport:function(){return this.$refs.dropdownMenu?this.$refs.dropdownMenu.getBoundingClientRect():{height:0,top:0,bottom:0}}}},u={data:function(){return{typeAheadPointer:-1}},watch:{filteredOptions:function(){for(var t=0;t=0;t--)if(this.selectable(this.filteredOptions[t])){this.typeAheadPointer=t;break}},typeAheadDown:function(){for(var t=this.typeAheadPointer+1;t0&&void 0!==arguments[0]?arguments[0]:null;return this.mutableLoading=null==t?!this.mutableLoading:t}}};function h(t,e,n,o,i,s,r,a){var l,c=\"function\"==typeof t?t.options:t;if(e&&(c.render=e,c.staticRenderFns=n,c._compiled=!0),o&&(c.functional=!0),s&&(c._scopeId=\"data-v-\"+s),r?(l=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||\"undefined\"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),i&&i.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(r)},c._ssrRegister=l):i&&(l=a?function(){i.call(this,this.$root.$options.shadowRoot)}:i),l)if(c.functional){c._injectStyles=l;var u=c.render;c.render=function(t,e){return l.call(e),u(t,e)}}else{var p=c.beforeCreate;c.beforeCreate=p?[].concat(p,l):[l]}return{exports:t,options:c}}var d={Deselect:h({},(function(){var t=this.$createElement,e=this._self._c||t;return e(\"svg\",{attrs:{xmlns:\"http://www.w3.org/2000/svg\",width:\"10\",height:\"10\"}},[e(\"path\",{attrs:{d:\"M6.895455 5l2.842897-2.842898c.348864-.348863.348864-.914488 0-1.263636L9.106534.261648c-.348864-.348864-.914489-.348864-1.263636 0L5 3.104545 2.157102.261648c-.348863-.348864-.914488-.348864-1.263636 0L.261648.893466c-.348864.348864-.348864.914489 0 1.263636L3.104545 5 .261648 7.842898c-.348864.348863-.348864.914488 0 1.263636l.631818.631818c.348864.348864.914773.348864 1.263636 0L5 6.895455l2.842898 2.842897c.348863.348864.914772.348864 1.263636 0l.631818-.631818c.348864-.348864.348864-.914489 0-1.263636L6.895455 5z\"}})])}),[],!1,null,null,null).exports,OpenIndicator:h({},(function(){var t=this.$createElement,e=this._self._c||t;return e(\"svg\",{attrs:{xmlns:\"http://www.w3.org/2000/svg\",width:\"14\",height:\"10\"}},[e(\"path\",{attrs:{d:\"M9.211364 7.59931l4.48338-4.867229c.407008-.441854.407008-1.158247 0-1.60046l-.73712-.80023c-.407008-.441854-1.066904-.441854-1.474243 0L7 5.198617 2.51662.33139c-.407008-.441853-1.066904-.441853-1.474243 0l-.737121.80023c-.407008.441854-.407008 1.158248 0 1.600461l4.48338 4.867228L7 10l2.211364-2.40069z\"}})])}),[],!1,null,null,null).exports},f={inserted:function(t,e,n){var o=n.context;if(o.appendToBody){var i=o.$refs.toggle.getBoundingClientRect(),s=i.height,r=i.top,a=i.left,l=i.width,c=window.scrollX||window.pageXOffset,u=window.scrollY||window.pageYOffset;t.unbindPosition=o.calculatePosition(t,o,{width:l+\"px\",left:c+a+\"px\",top:u+r+s+\"px\"}),document.body.appendChild(t)}},unbind:function(t,e,n){n.context.appendToBody&&(t.unbindPosition&&\"function\"==typeof t.unbindPosition&&t.unbindPosition(),t.parentNode&&t.parentNode.removeChild(t))}};var y=function(t){var e={};return Object.keys(t).sort().forEach((function(n){e[n]=t[n]})),JSON.stringify(e)},b=0;var g=function(){return++b};function v(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);e&&(o=o.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,o)}return n}function m(t){for(var e=1;e-1}},filter:{type:Function,default:function(t,e){var n=this;return t.filter((function(t){var o=n.getOptionLabel(t);return\"number\"==typeof o&&(o=o.toString()),n.filterBy(t,o,e)}))}},createOption:{type:Function,default:function(t){return\"object\"===r()(this.optionList[0])?l()({},this.label,t):t}},resetOnOptionsChange:{default:!1,validator:function(t){return[\"function\",\"boolean\"].includes(r()(t))}},clearSearchOnBlur:{type:Function,default:function(t){var e=t.clearSearchOnSelect,n=t.multiple;return e&&!n}},noDrop:{type:Boolean,default:!1},inputId:{type:String},dir:{type:String,default:\"auto\"},selectOnTab:{type:Boolean,default:!1},selectOnKeyCodes:{type:Array,default:function(){return[13]}},searchInputQuerySelector:{type:String,default:\"[type=search]\"},mapKeydown:{type:Function,default:function(t,e){return t}},appendToBody:{type:Boolean,default:!1},calculatePosition:{type:Function,default:function(t,e,n){var o=n.width,i=n.top,s=n.left;t.style.top=i,t.style.left=s,t.style.width=o}}},data:function(){return{uid:g(),search:\"\",open:!1,isComposing:!1,pushedTags:[],_value:[]}},watch:{options:function(t,e){var n=this;!this.taggable&&(\"function\"==typeof n.resetOnOptionsChange?n.resetOnOptionsChange(t,e,n.selectedValue):n.resetOnOptionsChange)&&this.clearSelection(),this.value&&this.isTrackingValues&&this.setInternalValueFromOptions(this.value)},value:function(t){this.isTrackingValues&&this.setInternalValueFromOptions(t)},multiple:function(){this.clearSelection()},open:function(t){this.$emit(t?\"open\":\"close\")}},created:function(){this.mutableLoading=this.loading,void 0!==this.value&&this.isTrackingValues&&this.setInternalValueFromOptions(this.value),this.$on(\"option:created\",this.pushTag)},methods:{setInternalValueFromOptions:function(t){var e=this;Array.isArray(t)?this.$data._value=t.map((function(t){return e.findOptionFromReducedValue(t)})):this.$data._value=this.findOptionFromReducedValue(t)},select:function(t){this.$emit(\"option:selecting\",t),this.isOptionSelected(t)||(this.taggable&&!this.optionExists(t)&&this.$emit(\"option:created\",t),this.multiple&&(t=this.selectedValue.concat(t)),this.updateValue(t),this.$emit(\"option:selected\",t)),this.onAfterSelect(t)},deselect:function(t){var e=this;this.$emit(\"option:deselecting\",t),this.updateValue(this.selectedValue.filter((function(n){return!e.optionComparator(n,t)}))),this.$emit(\"option:deselected\",t)},clearSelection:function(){this.updateValue(this.multiple?[]:null)},onAfterSelect:function(t){this.closeOnSelect&&(this.open=!this.open,this.searchEl.blur()),this.clearSearchOnSelect&&(this.search=\"\")},updateValue:function(t){var e=this;void 0===this.value&&(this.$data._value=t),null!==t&&(t=Array.isArray(t)?t.map((function(t){return e.reduce(t)})):this.reduce(t)),this.$emit(\"input\",t)},toggleDropdown:function(t){var e=t.target!==this.searchEl;e&&t.preventDefault();var n=[].concat(i()(this.$refs.deselectButtons||[]),i()([this.$refs.clearButton]||!1));void 0===this.searchEl||n.filter(Boolean).some((function(e){return e.contains(t.target)||e===t.target}))?t.preventDefault():this.open&&e?this.searchEl.blur():this.disabled||(this.open=!0,this.searchEl.focus())},isOptionSelected:function(t){var e=this;return this.selectedValue.some((function(n){return e.optionComparator(n,t)}))},optionComparator:function(t,e){return this.getOptionKey(t)===this.getOptionKey(e)},findOptionFromReducedValue:function(t){var e=this,n=[].concat(i()(this.options),i()(this.pushedTags)).filter((function(n){return JSON.stringify(e.reduce(n))===JSON.stringify(t)}));return 1===n.length?n[0]:n.find((function(t){return e.optionComparator(t,e.$data._value)}))||t},closeSearchOptions:function(){this.open=!1,this.$emit(\"search:blur\")},maybeDeleteValue:function(){if(!this.searchEl.value.length&&this.selectedValue&&this.selectedValue.length&&this.clearable){var t=null;this.multiple&&(t=i()(this.selectedValue.slice(0,this.selectedValue.length-1))),this.updateValue(t)}},optionExists:function(t){var e=this;return this.optionList.some((function(n){return e.optionComparator(n,t)}))},normalizeOptionForSlot:function(t){return\"object\"===r()(t)?t:l()({},this.label,t)},pushTag:function(t){this.pushedTags.push(t)},onEscape:function(){this.search.length?this.search=\"\":this.searchEl.blur()},onSearchBlur:function(){if(!this.mousedown||this.searching){var t=this.clearSearchOnSelect,e=this.multiple;return this.clearSearchOnBlur({clearSearchOnSelect:t,multiple:e})&&(this.search=\"\"),void this.closeSearchOptions()}this.mousedown=!1,0!==this.search.length||0!==this.options.length||this.closeSearchOptions()},onSearchFocus:function(){this.open=!0,this.$emit(\"search:focus\")},onMousedown:function(){this.mousedown=!0},onMouseUp:function(){this.mousedown=!1},onSearchKeyDown:function(t){var e=this,n=function(t){return t.preventDefault(),!e.isComposing&&e.typeAheadSelect()},o={8:function(t){return e.maybeDeleteValue()},9:function(t){return e.onTab()},27:function(t){return e.onEscape()},38:function(t){return t.preventDefault(),e.typeAheadUp()},40:function(t){return t.preventDefault(),e.typeAheadDown()}};this.selectOnKeyCodes.forEach((function(t){return o[t]=n}));var i=this.mapKeydown(o,this);if(\"function\"==typeof i[t.keyCode])return i[t.keyCode](t)}},computed:{isTrackingValues:function(){return void 0===this.value||this.$options.propsData.hasOwnProperty(\"reduce\")},selectedValue:function(){var t=this.value;return this.isTrackingValues&&(t=this.$data._value),t?[].concat(t):[]},optionList:function(){return this.options.concat(this.pushTags?this.pushedTags:[])},searchEl:function(){return this.$scopedSlots.search?this.$refs.selectedOptions.querySelector(this.searchInputQuerySelector):this.$refs.search},scope:function(){var t=this,e={search:this.search,loading:this.loading,searching:this.searching,filteredOptions:this.filteredOptions};return{search:{attributes:m({disabled:this.disabled,placeholder:this.searchPlaceholder,tabindex:this.tabindex,readonly:!this.searchable,id:this.inputId,\"aria-autocomplete\":\"list\",\"aria-labelledby\":\"vs\".concat(this.uid,\"__combobox\"),\"aria-controls\":\"vs\".concat(this.uid,\"__listbox\"),ref:\"search\",type:\"search\",autocomplete:this.autocomplete,value:this.search},this.dropdownOpen&&this.filteredOptions[this.typeAheadPointer]?{\"aria-activedescendant\":\"vs\".concat(this.uid,\"__option-\").concat(this.typeAheadPointer)}:{}),events:{compositionstart:function(){return t.isComposing=!0},compositionend:function(){return t.isComposing=!1},keydown:this.onSearchKeyDown,blur:this.onSearchBlur,focus:this.onSearchFocus,input:function(e){return t.search=e.target.value}}},spinner:{loading:this.mutableLoading},noOptions:{search:this.search,loading:this.loading,searching:this.searching},openIndicator:{attributes:{ref:\"openIndicator\",role:\"presentation\",class:\"vs__open-indicator\"}},listHeader:e,listFooter:e,header:m({},e,{deselect:this.deselect}),footer:m({},e,{deselect:this.deselect})}},childComponents:function(){return m({},d,{},this.components)},stateClasses:function(){return{\"vs--open\":this.dropdownOpen,\"vs--single\":!this.multiple,\"vs--searching\":this.searching&&!this.noDrop,\"vs--searchable\":this.searchable&&!this.noDrop,\"vs--unsearchable\":!this.searchable,\"vs--loading\":this.mutableLoading,\"vs--disabled\":this.disabled}},searching:function(){return!!this.search},dropdownOpen:function(){return!this.noDrop&&(this.open&&!this.mutableLoading)},searchPlaceholder:function(){if(this.isValueEmpty&&this.placeholder)return this.placeholder},filteredOptions:function(){var t=[].concat(this.optionList);if(!this.filterable&&!this.taggable)return t;var e=this.search.length?this.filter(t,this.search,this):t;if(this.taggable&&this.search.length){var n=this.createOption(this.search);this.optionExists(n)||e.unshift(n)}return e},isValueEmpty:function(){return 0===this.selectedValue.length},showClearButton:function(){return!this.multiple&&this.clearable&&!this.open&&!this.isValueEmpty}}},O=(n(7),h(_,(function(){var t=this,e=t.$createElement,n=t._self._c||e;return n(\"div\",{staticClass:\"v-select\",class:t.stateClasses,attrs:{dir:t.dir}},[t._t(\"header\",null,null,t.scope.header),t._v(\" \"),n(\"div\",{ref:\"toggle\",staticClass:\"vs__dropdown-toggle\",attrs:{id:\"vs\"+t.uid+\"__combobox\",role:\"combobox\",\"aria-expanded\":t.dropdownOpen.toString(),\"aria-owns\":\"vs\"+t.uid+\"__listbox\",\"aria-label\":\"Search for option\"},on:{mousedown:function(e){return t.toggleDropdown(e)}}},[n(\"div\",{ref:\"selectedOptions\",staticClass:\"vs__selected-options\"},[t._l(t.selectedValue,(function(e){return t._t(\"selected-option-container\",[n(\"span\",{key:t.getOptionKey(e),staticClass:\"vs__selected\"},[t._t(\"selected-option\",[t._v(\"\\n \"+t._s(t.getOptionLabel(e))+\"\\n \")],null,t.normalizeOptionForSlot(e)),t._v(\" \"),t.multiple?n(\"button\",{ref:\"deselectButtons\",refInFor:!0,staticClass:\"vs__deselect\",attrs:{disabled:t.disabled,type:\"button\",title:\"Deselect \"+t.getOptionLabel(e),\"aria-label\":\"Deselect \"+t.getOptionLabel(e)},on:{click:function(n){return t.deselect(e)}}},[n(t.childComponents.Deselect,{tag:\"component\"})],1):t._e()],2)],{option:t.normalizeOptionForSlot(e),deselect:t.deselect,multiple:t.multiple,disabled:t.disabled})})),t._v(\" \"),t._t(\"search\",[n(\"input\",t._g(t._b({staticClass:\"vs__search\"},\"input\",t.scope.search.attributes,!1),t.scope.search.events))],null,t.scope.search)],2),t._v(\" \"),n(\"div\",{ref:\"actions\",staticClass:\"vs__actions\"},[n(\"button\",{directives:[{name:\"show\",rawName:\"v-show\",value:t.showClearButton,expression:\"showClearButton\"}],ref:\"clearButton\",staticClass:\"vs__clear\",attrs:{disabled:t.disabled,type:\"button\",title:\"Clear Selected\",\"aria-label\":\"Clear Selected\"},on:{click:t.clearSelection}},[n(t.childComponents.Deselect,{tag:\"component\"})],1),t._v(\" \"),t._t(\"open-indicator\",[t.noDrop?t._e():n(t.childComponents.OpenIndicator,t._b({tag:\"component\"},\"component\",t.scope.openIndicator.attributes,!1))],null,t.scope.openIndicator),t._v(\" \"),t._t(\"spinner\",[n(\"div\",{directives:[{name:\"show\",rawName:\"v-show\",value:t.mutableLoading,expression:\"mutableLoading\"}],staticClass:\"vs__spinner\"},[t._v(\"Loading...\")])],null,t.scope.spinner)],2)]),t._v(\" \"),n(\"transition\",{attrs:{name:t.transition}},[t.dropdownOpen?n(\"ul\",{directives:[{name:\"append-to-body\",rawName:\"v-append-to-body\"}],key:\"vs\"+t.uid+\"__listbox\",ref:\"dropdownMenu\",staticClass:\"vs__dropdown-menu\",attrs:{id:\"vs\"+t.uid+\"__listbox\",role:\"listbox\",tabindex:\"-1\"},on:{mousedown:function(e){return e.preventDefault(),t.onMousedown(e)},mouseup:t.onMouseUp}},[t._t(\"list-header\",null,null,t.scope.listHeader),t._v(\" \"),t._l(t.filteredOptions,(function(e,o){return n(\"li\",{key:t.getOptionKey(e),staticClass:\"vs__dropdown-option\",class:{\"vs__dropdown-option--selected\":t.isOptionSelected(e),\"vs__dropdown-option--highlight\":o===t.typeAheadPointer,\"vs__dropdown-option--disabled\":!t.selectable(e)},attrs:{role:\"option\",id:\"vs\"+t.uid+\"__option-\"+o,\"aria-selected\":o===t.typeAheadPointer||null},on:{mouseover:function(n){t.selectable(e)&&(t.typeAheadPointer=o)},mousedown:function(n){n.preventDefault(),n.stopPropagation(),t.selectable(e)&&t.select(e)}}},[t._t(\"option\",[t._v(\"\\n \"+t._s(t.getOptionLabel(e))+\"\\n \")],null,t.normalizeOptionForSlot(e))],2)})),t._v(\" \"),0===t.filteredOptions.length?n(\"li\",{staticClass:\"vs__no-options\"},[t._t(\"no-options\",[t._v(\"Sorry, no matching options.\")],null,t.scope.noOptions)],2):t._e(),t._v(\" \"),t._t(\"list-footer\",null,null,t.scope.listFooter)],2):n(\"ul\",{staticStyle:{display:\"none\",visibility:\"hidden\"},attrs:{id:\"vs\"+t.uid+\"__listbox\",role:\"listbox\"}})]),t._v(\" \"),t._t(\"footer\",null,null,t.scope.footer)],2)}),[],!1,null,null,null).exports),w={ajax:p,pointer:u,pointerScroll:c};n.d(e,\"VueSelect\",(function(){return O})),n.d(e,\"mixins\",(function(){return w}));e.default=O}])}));\n//# sourceMappingURL=vue-select.js.map","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnitBlock.vue?vue&type=style&index=0&id=310ca6e2&scoped=true&lang=css&\"","'use strict';\nvar $ = require('../internals/export');\nvar aFunction = require('../internals/a-function');\nvar toObject = require('../internals/to-object');\nvar fails = require('../internals/fails');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar test = [];\nvar nativeSort = test.sort;\n\n// IE8-\nvar FAILS_ON_UNDEFINED = fails(function () {\n test.sort(undefined);\n});\n// V8 bug\nvar FAILS_ON_NULL = fails(function () {\n test.sort(null);\n});\n// Old WebKit\nvar STRICT_METHOD = arrayMethodIsStrict('sort');\n\nvar FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD;\n\n// `Array.prototype.sort` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.sort\n$({ target: 'Array', proto: true, forced: FORCED }, {\n sort: function sort(comparefn) {\n return comparefn === undefined\n ? nativeSort.call(toObject(this))\n : nativeSort.call(toObject(this), aFunction(comparefn));\n }\n});\n","// Localization utilities\nimport { RX_STRIP_LOCALE_MODS } from '../constants/regex';\nimport { arrayIncludes } from './array';\nimport { toString } from './string'; // Languages that are RTL\n\nvar RTL_LANGS = ['ar', 'az', 'ckb', 'fa', 'he', 'ks', 'lrc', 'mzn', 'ps', 'sd', 'te', 'ug', 'ur', 'yi'].map(function (locale) {\n return locale.toLowerCase();\n}); // Returns true if the locale is RTL\n\nexport var isLocaleRTL = function isLocaleRTL(locale) {\n // Determines if the locale is RTL (only single locale supported)\n var parts = toString(locale).toLowerCase().replace(RX_STRIP_LOCALE_MODS, '').split('-');\n var locale1 = parts.slice(0, 2).join('-');\n var locale2 = parts[0];\n return arrayIncludes(RTL_LANGS, locale1) || arrayIncludes(RTL_LANGS, locale2);\n};","export const weekdayText = [\" Mon \", \" Tue \", \" Wed \", \" Thu \", \" Fri \", \" Sat \", \" Sun \"];\n\nexport default class SchedulesService {\n getScheduleDate(scheduleDate, isStart, isNew = false) {\n if (isStart) {\n let date = new Date(scheduleDate);\n return this.datetimeFormatter(date, isNew)\n } else {\n let date = new Date(scheduleDate);\n date.setDate(date.getDate() + 1);\n return this.datetimeFormatter(date)\n }\n };\n\n dateFormat(val) {\n if (val) {\n const date = new Date(val);\n const options = {month: '2-digit', day: '2-digit', year: 'numeric'}\n if (date) return date.toLocaleDateString(\"en-US\", options);\n }\n if (val) return val.substr(0, 10);\n return val\n };\n\n dateFormatter(dateObj) {\n let month = dateObj.getMonth() + 1;\n if (month < 10) {\n month = \"0\" + month;\n }\n let date = dateObj.getDate();\n if (date < 10) {\n date = \"0\" + date;\n }\n const day = dateObj.getDay();\n const dayText = weekdayText[day ? day - 1 : 6];\n return dayText + \" \" + month + \"/\" + date;\n };\n\n dateFormatToSort(dateObj, n = 0) {\n if (dateObj) {\n dateObj = new Date(dateObj);\n if (n) {\n dateObj = this.addDays(dateObj, n - 2)\n }\n let year = dateObj.getFullYear();\n let month = dateObj.getMonth() + 1;\n if (month < 10) {\n month = \"0\" + month;\n }\n let date = dateObj.getDate();\n if (date < 10) {\n date = \"0\" + date;\n }\n return year + \"/\" + month + \"/\" + date\n }\n return null\n };\n\n datetimeFormatter(dateObj, isNew = false) {\n let date = dateObj.getDate();\n if (isNew) {\n let day = dateObj.getDay();\n if (day) {\n dateObj.setDate(date + (5 - day))\n date = dateObj.getDate()\n }\n }\n if (date < 10) {\n date = \"0\" + date;\n }\n let month = dateObj.getMonth() + 1;\n if (month < 10) {\n month = \"0\" + month;\n }\n let year = dateObj.getFullYear();\n let hours = dateObj.getHours();\n if (hours < 10) {\n hours = \"0\" + hours;\n }\n let minutes = dateObj.getMinutes();\n if (minutes < 10) {\n minutes = \"0\" + minutes;\n }\n return year + \"/\" + month + \"/\" + date + \" \" + hours + \":\" + minutes;\n };\n\n getDateDiff(date1, date2) {\n const diffTime = Math.abs(date2 - date1) + 1;\n return Math.ceil(diffTime / (1000 * 60 * 60 * 24));\n };\n\n getMinutesDiff(date1, date2) {\n const diffTime = Math.abs(date2 - date1);\n return Math.ceil(diffTime / (1000 * 60));\n }\n\n addDays(dateObj, n) {\n dateObj.setTime(dateObj.getTime() + (n + 1) * 60 * 60 * 24 * 1000);\n return dateObj;\n };\n\n addMinutes(dateObj, n) {\n dateObj.setTime(dateObj.getTime() + n * 60 * 1000);\n return dateObj;\n };\n\n dateParser(val) {\n const date = new Date(val);\n const d = date.getDate().toString();\n const m = (date.getMonth() + 1).toString();\n const y = date.getFullYear();\n return y + \"-\" + (m.length === 1 ? \"0\" + m : m) + \"-\" + (d.length === 1 ? \"0\" + d : d);\n };\n\n byField(field, desc = true) {\n if (desc) return (a, b) => a[field] > b[field] ? 1 : -1;\n return (a, b) => a[field] < b[field] ? -1 : 1;\n };\n}","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { mergeData } from '../../vue';\nimport { NAME_ROW } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { arrayIncludes, concat } from '../../utils/array';\nimport { getBreakpointsUpCached } from '../../utils/config';\nimport { identity } from '../../utils/identity';\nimport { memoize } from '../../utils/memoize';\nimport { create, keys, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, suffixPropName } from '../../utils/props';\nimport { lowerCase, toString, trim } from '../../utils/string'; // --- Constants ---\n\nvar COMMON_ALIGNMENT = ['start', 'end', 'center']; // --- Helper methods ---\n// Compute a `row-cols-{breakpoint}-{cols}` class name\n// Memoized function for better performance on generating class names\n\nvar computeRowColsClass = memoize(function (breakpoint, cols) {\n cols = trim(toString(cols));\n return cols ? lowerCase(['row-cols', breakpoint, cols].filter(identity).join('-')) : null;\n}); // Get the breakpoint name from the `rowCols` prop name\n// Memoized function for better performance on extracting breakpoint names\n\nvar computeRowColsBreakpoint = memoize(function (prop) {\n return lowerCase(prop.replace('cols', ''));\n}); // Cached copy of the `row-cols` breakpoint prop names\n// Will be populated when the props are generated\n\nvar rowColsPropList = []; // --- Props ---\n// Prop generator for lazy generation of props\n\nexport var generateProps = function generateProps() {\n // i.e. 'row-cols-2', 'row-cols-md-4', 'row-cols-xl-6', ...\n var rowColsProps = getBreakpointsUpCached().reduce(function (props, breakpoint) {\n props[suffixPropName(breakpoint, 'cols')] = makeProp(PROP_TYPE_NUMBER_STRING);\n return props;\n }, create(null)); // Cache the row-cols prop names\n\n rowColsPropList = keys(rowColsProps); // Return the generated props\n\n return makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, rowColsProps), {}, {\n alignContent: makeProp(PROP_TYPE_STRING, null, function (value) {\n return arrayIncludes(concat(COMMON_ALIGNMENT, 'between', 'around', 'stretch'), value);\n }),\n alignH: makeProp(PROP_TYPE_STRING, null, function (value) {\n return arrayIncludes(concat(COMMON_ALIGNMENT, 'between', 'around'), value);\n }),\n alignV: makeProp(PROP_TYPE_STRING, null, function (value) {\n return arrayIncludes(concat(COMMON_ALIGNMENT, 'baseline', 'stretch'), value);\n }),\n noGutters: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'div')\n })), NAME_ROW);\n}; // --- Main component ---\n// We do not use `Vue.extend()` here as that would evaluate the props\n// immediately, which we do not want to happen\n// @vue/component\n\nexport var BRow = {\n name: NAME_ROW,\n functional: true,\n\n get props() {\n // Allow props to be lazy evaled on first access and\n // then they become a non-getter afterwards\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/get#Smart_self-overwriting_lazy_getters\n delete this.props;\n this.props = generateProps();\n return this.props;\n },\n\n render: function render(h, _ref) {\n var _classList$push;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var alignV = props.alignV,\n alignH = props.alignH,\n alignContent = props.alignContent; // Loop through row-cols breakpoint props and generate the classes\n\n var classList = [];\n rowColsPropList.forEach(function (prop) {\n var c = computeRowColsClass(computeRowColsBreakpoint(prop), props[prop]); // If a class is returned, push it onto the array\n\n if (c) {\n classList.push(c);\n }\n });\n classList.push((_classList$push = {\n 'no-gutters': props.noGutters\n }, _defineProperty(_classList$push, \"align-items-\".concat(alignV), alignV), _defineProperty(_classList$push, \"justify-content-\".concat(alignH), alignH), _defineProperty(_classList$push, \"align-content-\".concat(alignContent), alignContent), _classList$push));\n return h(props.tag, mergeData(data, {\n staticClass: 'row',\n class: classList\n }), children);\n }\n};","'use strict';\nvar $ = require('../internals/export');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\nvar toObject = require('../internals/to-object');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar createProperty = require('../internals/create-property');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('splice', { ACCESSORS: true, 0: 0, 1: 2 });\n\nvar max = Math.max;\nvar min = Math.min;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_LENGTH_EXCEEDED = 'Maximum allowed length exceeded';\n\n// `Array.prototype.splice` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.splice\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n splice: function splice(start, deleteCount /* , ...items */) {\n var O = toObject(this);\n var len = toLength(O.length);\n var actualStart = toAbsoluteIndex(start, len);\n var argumentsLength = arguments.length;\n var insertCount, actualDeleteCount, A, k, from, to;\n if (argumentsLength === 0) {\n insertCount = actualDeleteCount = 0;\n } else if (argumentsLength === 1) {\n insertCount = 0;\n actualDeleteCount = len - actualStart;\n } else {\n insertCount = argumentsLength - 2;\n actualDeleteCount = min(max(toInteger(deleteCount), 0), len - actualStart);\n }\n if (len + insertCount - actualDeleteCount > MAX_SAFE_INTEGER) {\n throw TypeError(MAXIMUM_ALLOWED_LENGTH_EXCEEDED);\n }\n A = arraySpeciesCreate(O, actualDeleteCount);\n for (k = 0; k < actualDeleteCount; k++) {\n from = actualStart + k;\n if (from in O) createProperty(A, k, O[from]);\n }\n A.length = actualDeleteCount;\n if (insertCount < actualDeleteCount) {\n for (k = actualStart; k < len - actualDeleteCount; k++) {\n from = k + actualDeleteCount;\n to = k + insertCount;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n for (k = len; k > len - actualDeleteCount + insertCount; k--) delete O[k - 1];\n } else if (insertCount > actualDeleteCount) {\n for (k = len - actualDeleteCount; k > actualStart; k--) {\n from = k + actualDeleteCount - 1;\n to = k + insertCount - 1;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n }\n for (k = 0; k < insertCount; k++) {\n O[k + actualStart] = arguments[k + 2];\n }\n O.length = len - actualDeleteCount + insertCount;\n return A;\n }\n});\n","import { Vue } from '../vue';\nimport { PROP_TYPE_STRING } from '../constants/props';\nimport { makeProp, makePropsConfigurable } from '../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n size: makeProp(PROP_TYPE_STRING)\n}, 'formControls'); // --- Mixin ---\n// @vue/component\n\nexport var formSizeMixin = Vue.extend({\n props: props,\n computed: {\n sizeFormClass: function sizeFormClass() {\n return [this.size ? \"form-control-\".concat(this.size) : null];\n }\n }\n});","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"tl can-res text-center position-relative\",style:({width: _vm.width}),on:{\"dragenter\":_vm.setDragenterRowAndIndex}},[(_vm.dayOff)?_c('v-icon',{staticStyle:{\"opacity\":\"0.5\"},attrs:{\"name\":\"fa-calendar-times\",\"scale\":\"4\"}}):_vm._e(),_c('div',{staticClass:\"day-off-reason\"},[_vm._v(_vm._s(_vm.reasonType[_vm.dayOff]))])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnitBlock.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnitBlock.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./UnitBlock.vue?vue&type=template&id=310ca6e2&scoped=true&\"\nimport script from \"./UnitBlock.vue?vue&type=script&lang=js&\"\nexport * from \"./UnitBlock.vue?vue&type=script&lang=js&\"\nimport style0 from \"./UnitBlock.vue?vue&type=style&index=0&id=310ca6e2&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"310ca6e2\",\n null\n \n)\n\nexport default component.exports","export var CALENDAR_GREGORY = 'gregory';\nexport var CALENDAR_LONG = 'long';\nexport var CALENDAR_NARROW = 'narrow';\nexport var CALENDAR_SHORT = 'short';\nexport var DATE_FORMAT_2_DIGIT = '2-digit';\nexport var DATE_FORMAT_NUMERIC = 'numeric';","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n// Date utility functions\nimport { CALENDAR_GREGORY } from '../constants/date';\nimport { RX_DATE, RX_DATE_SPLIT } from '../constants/regex';\nimport { concat } from './array';\nimport { identity } from './identity';\nimport { isDate, isString } from './inspect';\nimport { toInteger } from './number'; // --- Date utility methods ---\n// Create or clone a date (`new Date(...)` shortcut)\n\nexport var createDate = function createDate() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _construct(Date, args);\n}; // Parse a date sting, or Date object, into a Date object (with no time information)\n\nexport var parseYMD = function parseYMD(date) {\n if (isString(date) && RX_DATE.test(date.trim())) {\n var _date$split$map = date.split(RX_DATE_SPLIT).map(function (v) {\n return toInteger(v, 1);\n }),\n _date$split$map2 = _slicedToArray(_date$split$map, 3),\n year = _date$split$map2[0],\n month = _date$split$map2[1],\n day = _date$split$map2[2];\n\n return createDate(year, month - 1, day);\n } else if (isDate(date)) {\n return createDate(date.getFullYear(), date.getMonth(), date.getDate());\n }\n\n return null;\n}; // Format a date object as `YYYY-MM-DD` format\n\nexport var formatYMD = function formatYMD(date) {\n date = parseYMD(date);\n\n if (!date) {\n return null;\n }\n\n var year = date.getFullYear();\n var month = \"0\".concat(date.getMonth() + 1).slice(-2);\n var day = \"0\".concat(date.getDate()).slice(-2);\n return \"\".concat(year, \"-\").concat(month, \"-\").concat(day);\n}; // Given a locale (or locales), resolve the browser available locale\n\nexport var resolveLocale = function resolveLocale(locales)\n/* istanbul ignore next */\n{\n var calendar = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : CALENDAR_GREGORY;\n locales = concat(locales).filter(identity);\n var fmt = new Intl.DateTimeFormat(locales, {\n calendar: calendar\n });\n return fmt.resolvedOptions().locale;\n}; // Create a `Intl.DateTimeFormat` formatter function\n\nexport var createDateFormatter = function createDateFormatter(locale, options)\n/* istanbul ignore next */\n{\n var dtf = new Intl.DateTimeFormat(locale, options);\n return dtf.format;\n}; // Determine if two dates are the same date (ignoring time portion)\n\nexport var datesEqual = function datesEqual(date1, date2) {\n // Returns true of the date portion of two date objects are equal\n // We don't compare the time portion\n return formatYMD(date1) === formatYMD(date2);\n}; // --- Date \"math\" utility methods (for BCalendar component mainly) ---\n\nexport var firstDateOfMonth = function firstDateOfMonth(date) {\n date = createDate(date);\n date.setDate(1);\n return date;\n};\nexport var lastDateOfMonth = function lastDateOfMonth(date) {\n date = createDate(date);\n date.setMonth(date.getMonth() + 1);\n date.setDate(0);\n return date;\n};\nexport var addYears = function addYears(date, numberOfYears) {\n date = createDate(date);\n var month = date.getMonth();\n date.setFullYear(date.getFullYear() + numberOfYears); // Handle Feb 29th for leap years\n\n if (date.getMonth() !== month) {\n date.setDate(0);\n }\n\n return date;\n};\nexport var oneMonthAgo = function oneMonthAgo(date) {\n date = createDate(date);\n var month = date.getMonth();\n date.setMonth(month - 1); // Handle when days in month are different\n\n if (date.getMonth() === month) {\n date.setDate(0);\n }\n\n return date;\n};\nexport var oneMonthAhead = function oneMonthAhead(date) {\n date = createDate(date);\n var month = date.getMonth();\n date.setMonth(month + 1); // Handle when days in month are different\n\n if (date.getMonth() === (month + 2) % 12) {\n date.setDate(0);\n }\n\n return date;\n};\nexport var oneYearAgo = function oneYearAgo(date) {\n return addYears(date, -1);\n};\nexport var oneYearAhead = function oneYearAhead(date) {\n return addYears(date, 1);\n};\nexport var oneDecadeAgo = function oneDecadeAgo(date) {\n return addYears(date, -10);\n};\nexport var oneDecadeAhead = function oneDecadeAhead(date) {\n return addYears(date, 10);\n}; // Helper function to constrain a date between two values\n// Always returns a `Date` object or `null` if no date passed\n\nexport var constrainDate = function constrainDate(date) {\n var min = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var max = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n // Ensure values are `Date` objects (or `null`)\n date = parseYMD(date);\n min = parseYMD(min) || date;\n max = parseYMD(max) || date; // Return a new `Date` object (or `null`)\n\n return date ? date < min ? min : date > max ? max : date : null;\n};","var _watch;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_CALENDAR } from '../../constants/components';\nimport { CALENDAR_GREGORY, CALENDAR_LONG, CALENDAR_NARROW, CALENDAR_SHORT, DATE_FORMAT_2_DIGIT, DATE_FORMAT_NUMERIC } from '../../constants/date';\nimport { EVENT_NAME_CONTEXT, EVENT_NAME_SELECTED } from '../../constants/events';\nimport { CODE_DOWN, CODE_END, CODE_ENTER, CODE_HOME, CODE_LEFT, CODE_PAGEDOWN, CODE_PAGEUP, CODE_RIGHT, CODE_SPACE, CODE_UP } from '../../constants/key-codes';\nimport { PROP_TYPE_ARRAY_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_DATE_STRING, PROP_TYPE_FUNCTION, PROP_TYPE_NUMBER_STRING, PROP_TYPE_OBJECT, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_NAV_NEXT_DECADE, SLOT_NAME_NAV_NEXT_MONTH, SLOT_NAME_NAV_NEXT_YEAR, SLOT_NAME_NAV_PEV_DECADE, SLOT_NAME_NAV_PEV_MONTH, SLOT_NAME_NAV_PEV_YEAR, SLOT_NAME_NAV_THIS_MONTH } from '../../constants/slots';\nimport { arrayIncludes, concat } from '../../utils/array';\nimport { createDate, createDateFormatter, constrainDate as _constrainDate, datesEqual, firstDateOfMonth, formatYMD, lastDateOfMonth, oneMonthAgo, oneMonthAhead, oneYearAgo, oneYearAhead, oneDecadeAgo, oneDecadeAhead, parseYMD, resolveLocale } from '../../utils/date';\nimport { attemptBlur, attemptFocus, requestAF } from '../../utils/dom';\nimport { stopEvent } from '../../utils/events';\nimport { identity } from '../../utils/identity';\nimport { isArray, isPlainObject, isString } from '../../utils/inspect';\nimport { isLocaleRTL } from '../../utils/locale';\nimport { looseEqual } from '../../utils/loose-equal';\nimport { mathMax } from '../../utils/math';\nimport { makeModelMixin } from '../../utils/model';\nimport { toInteger } from '../../utils/number';\nimport { sortKeys } from '../../utils/object';\nimport { hasPropFunction, makeProp, makePropsConfigurable } from '../../utils/props';\nimport { toString } from '../../utils/string';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BIconChevronLeft, BIconChevronDoubleLeft, BIconChevronBarLeft, BIconCircleFill } from '../../icons/icons'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('value', {\n type: PROP_TYPE_DATE_STRING\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event; // --- Props ---\n\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread({}, idProps), modelProps), {}, {\n ariaControls: makeProp(PROP_TYPE_STRING),\n // Makes calendar the full width of its parent container\n block: makeProp(PROP_TYPE_BOOLEAN, false),\n dateDisabledFn: makeProp(PROP_TYPE_FUNCTION),\n // `Intl.DateTimeFormat` object\n dateFormatOptions: makeProp(PROP_TYPE_OBJECT, {\n year: DATE_FORMAT_NUMERIC,\n month: CALENDAR_LONG,\n day: DATE_FORMAT_NUMERIC,\n weekday: CALENDAR_LONG\n }),\n // Function to set a class of (classes) on the date cell\n // if passed a string or an array\n // TODO:\n // If the function returns an object, look for class prop for classes,\n // and other props for handling events/details/descriptions\n dateInfoFn: makeProp(PROP_TYPE_FUNCTION),\n // 'ltr', 'rtl', or `null` (for auto detect)\n direction: makeProp(PROP_TYPE_STRING),\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n // When `true`, renders a comment node, but keeps the component instance active\n // Mainly for , so that we can get the component's value and locale\n // But we might just use separate date formatters, using the resolved locale\n // (adjusted for the gregorian calendar)\n hidden: makeProp(PROP_TYPE_BOOLEAN, false),\n // When `true` makes the selected date header `sr-only`\n hideHeader: makeProp(PROP_TYPE_BOOLEAN, false),\n // This specifies the calendar year/month/day that will be shown when\n // first opening the datepicker if no v-model value is provided\n // Default is the current date (or `min`/`max`)\n initialDate: makeProp(PROP_TYPE_DATE_STRING),\n // Labels for buttons and keyboard shortcuts\n labelCalendar: makeProp(PROP_TYPE_STRING, 'Calendar'),\n labelCurrentMonth: makeProp(PROP_TYPE_STRING, 'Current month'),\n labelHelp: makeProp(PROP_TYPE_STRING, 'Use cursor keys to navigate calendar dates'),\n labelNav: makeProp(PROP_TYPE_STRING, 'Calendar navigation'),\n labelNextDecade: makeProp(PROP_TYPE_STRING, 'Next decade'),\n labelNextMonth: makeProp(PROP_TYPE_STRING, 'Next month'),\n labelNextYear: makeProp(PROP_TYPE_STRING, 'Next year'),\n labelNoDateSelected: makeProp(PROP_TYPE_STRING, 'No date selected'),\n labelPrevDecade: makeProp(PROP_TYPE_STRING, 'Previous decade'),\n labelPrevMonth: makeProp(PROP_TYPE_STRING, 'Previous month'),\n labelPrevYear: makeProp(PROP_TYPE_STRING, 'Previous year'),\n labelSelected: makeProp(PROP_TYPE_STRING, 'Selected date'),\n labelToday: makeProp(PROP_TYPE_STRING, 'Today'),\n // Locale(s) to use\n // Default is to use page/browser default setting\n locale: makeProp(PROP_TYPE_ARRAY_STRING),\n max: makeProp(PROP_TYPE_DATE_STRING),\n min: makeProp(PROP_TYPE_DATE_STRING),\n // Variant color to use for the navigation buttons\n navButtonVariant: makeProp(PROP_TYPE_STRING, 'secondary'),\n // Disable highlighting today's date\n noHighlightToday: makeProp(PROP_TYPE_BOOLEAN, false),\n noKeyNav: makeProp(PROP_TYPE_BOOLEAN, false),\n readonly: makeProp(PROP_TYPE_BOOLEAN, false),\n roleDescription: makeProp(PROP_TYPE_STRING),\n // Variant color to use for the selected date\n selectedVariant: makeProp(PROP_TYPE_STRING, 'primary'),\n // When `true` enables the decade navigation buttons\n showDecadeNav: makeProp(PROP_TYPE_BOOLEAN, false),\n // Day of week to start calendar on\n // `0` (Sunday), `1` (Monday), ... `6` (Saturday)\n startWeekday: makeProp(PROP_TYPE_NUMBER_STRING, 0),\n // Variant color to use for today's date (defaults to `selectedVariant`)\n todayVariant: makeProp(PROP_TYPE_STRING),\n // Always return the `v-model` value as a date object\n valueAsDate: makeProp(PROP_TYPE_BOOLEAN, false),\n // Format of the weekday names at the top of the calendar\n // `short` is typically a 3 letter abbreviation,\n // `narrow` is typically a single letter\n // `long` is the full week day name\n // Although some locales may override this (i.e `ar`, etc.)\n weekdayHeaderFormat: makeProp(PROP_TYPE_STRING, CALENDAR_SHORT, function (value) {\n return arrayIncludes([CALENDAR_LONG, CALENDAR_SHORT, CALENDAR_NARROW], value);\n }),\n // Has no effect if prop `block` is set\n width: makeProp(PROP_TYPE_STRING, '270px')\n})), NAME_CALENDAR); // --- Main component ---\n// @vue/component\n\nexport var BCalendar = Vue.extend({\n name: NAME_CALENDAR,\n // Mixin order is important!\n mixins: [attrsMixin, idMixin, modelMixin, normalizeSlotMixin],\n props: props,\n data: function data() {\n var selected = formatYMD(this[MODEL_PROP_NAME]) || '';\n return {\n // Selected date\n selectedYMD: selected,\n // Date in calendar grid that has `tabindex` of `0`\n activeYMD: selected || formatYMD(_constrainDate(this.initialDate || this.getToday()), this.min, this.max),\n // Will be true if the calendar grid has/contains focus\n gridHasFocus: false,\n // Flag to enable the `aria-live` region(s) after mount\n // to prevent screen reader \"outbursts\" when mounting\n isLive: false\n };\n },\n computed: {\n valueId: function valueId() {\n return this.safeId();\n },\n widgetId: function widgetId() {\n return this.safeId('_calendar-wrapper_');\n },\n navId: function navId() {\n return this.safeId('_calendar-nav_');\n },\n gridId: function gridId() {\n return this.safeId('_calendar-grid_');\n },\n gridCaptionId: function gridCaptionId() {\n return this.safeId('_calendar-grid-caption_');\n },\n gridHelpId: function gridHelpId() {\n return this.safeId('_calendar-grid-help_');\n },\n activeId: function activeId() {\n return this.activeYMD ? this.safeId(\"_cell-\".concat(this.activeYMD, \"_\")) : null;\n },\n // TODO: Use computed props to convert `YYYY-MM-DD` to `Date` object\n selectedDate: function selectedDate() {\n // Selected as a `Date` object\n return parseYMD(this.selectedYMD);\n },\n activeDate: function activeDate() {\n // Active as a `Date` object\n return parseYMD(this.activeYMD);\n },\n computedMin: function computedMin() {\n return parseYMD(this.min);\n },\n computedMax: function computedMax() {\n return parseYMD(this.max);\n },\n computedWeekStarts: function computedWeekStarts() {\n // `startWeekday` is a prop (constrained to `0` through `6`)\n return mathMax(toInteger(this.startWeekday, 0), 0) % 7;\n },\n computedLocale: function computedLocale() {\n // Returns the resolved locale used by the calendar\n return resolveLocale(concat(this.locale).filter(identity), CALENDAR_GREGORY);\n },\n computedDateDisabledFn: function computedDateDisabledFn() {\n var dateDisabledFn = this.dateDisabledFn;\n return hasPropFunction(dateDisabledFn) ? dateDisabledFn : function () {\n return false;\n };\n },\n // TODO: Change `dateInfoFn` to handle events and notes as well as classes\n computedDateInfoFn: function computedDateInfoFn() {\n var dateInfoFn = this.dateInfoFn;\n return hasPropFunction(dateInfoFn) ? dateInfoFn : function () {\n return {};\n };\n },\n calendarLocale: function calendarLocale() {\n // This locale enforces the gregorian calendar (for use in formatter functions)\n // Needed because IE 11 resolves `ar-IR` as islamic-civil calendar\n // and IE 11 (and some other browsers) do not support the `calendar` option\n // And we currently only support the gregorian calendar\n var fmt = new Intl.DateTimeFormat(this.computedLocale, {\n calendar: CALENDAR_GREGORY\n });\n var calendar = fmt.resolvedOptions().calendar;\n var locale = fmt.resolvedOptions().locale;\n /* istanbul ignore if: mainly for IE 11 and a few other browsers, hard to test in JSDOM */\n\n if (calendar !== CALENDAR_GREGORY) {\n // Ensure the locale requests the gregorian calendar\n // Mainly for IE 11, and currently we can't handle non-gregorian calendars\n // TODO: Should we always return this value?\n locale = locale.replace(/-u-.+$/i, '').concat('-u-ca-gregory');\n }\n\n return locale;\n },\n calendarYear: function calendarYear() {\n return this.activeDate.getFullYear();\n },\n calendarMonth: function calendarMonth() {\n return this.activeDate.getMonth();\n },\n calendarFirstDay: function calendarFirstDay() {\n // We set the time for this date to 12pm to work around\n // date formatting issues in Firefox and Safari\n // See: https://github.com/bootstrap-vue/bootstrap-vue/issues/5818\n return createDate(this.calendarYear, this.calendarMonth, 1, 12);\n },\n calendarDaysInMonth: function calendarDaysInMonth() {\n // We create a new date as to not mutate the original\n var date = createDate(this.calendarFirstDay);\n date.setMonth(date.getMonth() + 1, 0);\n return date.getDate();\n },\n computedVariant: function computedVariant() {\n return \"btn-\".concat(this.selectedVariant || 'primary');\n },\n computedTodayVariant: function computedTodayVariant() {\n return \"btn-outline-\".concat(this.todayVariant || this.selectedVariant || 'primary');\n },\n computedNavButtonVariant: function computedNavButtonVariant() {\n return \"btn-outline-\".concat(this.navButtonVariant || 'primary');\n },\n isRTL: function isRTL() {\n // `true` if the language requested is RTL\n var dir = toString(this.direction).toLowerCase();\n\n if (dir === 'rtl') {\n /* istanbul ignore next */\n return true;\n } else if (dir === 'ltr') {\n /* istanbul ignore next */\n return false;\n }\n\n return isLocaleRTL(this.computedLocale);\n },\n context: function context() {\n var selectedYMD = this.selectedYMD,\n activeYMD = this.activeYMD;\n var selectedDate = parseYMD(selectedYMD);\n var activeDate = parseYMD(activeYMD);\n return {\n // The current value of the `v-model`\n selectedYMD: selectedYMD,\n selectedDate: selectedDate,\n selectedFormatted: selectedDate ? this.formatDateString(selectedDate) : this.labelNoDateSelected,\n // Which date cell is considered active due to navigation\n activeYMD: activeYMD,\n activeDate: activeDate,\n activeFormatted: activeDate ? this.formatDateString(activeDate) : '',\n // `true` if the date is disabled (when using keyboard navigation)\n disabled: this.dateDisabled(activeDate),\n // Locales used in formatting dates\n locale: this.computedLocale,\n calendarLocale: this.calendarLocale,\n rtl: this.isRTL\n };\n },\n // Computed props that return a function reference\n dateOutOfRange: function dateOutOfRange() {\n // Check whether a date is within the min/max range\n // Returns a new function ref if the pops change\n // We do this as we need to trigger the calendar computed prop\n // to update when these props update\n var min = this.computedMin,\n max = this.computedMax;\n return function (date) {\n // Handle both `YYYY-MM-DD` and `Date` objects\n date = parseYMD(date);\n return min && date < min || max && date > max;\n };\n },\n dateDisabled: function dateDisabled() {\n var _this = this;\n\n // Returns a function for validating if a date is within range\n // We grab this variables first to ensure a new function ref\n // is generated when the props value changes\n // We do this as we need to trigger the calendar computed prop\n // to update when these props update\n var rangeFn = this.dateOutOfRange; // Return the function ref\n\n return function (date) {\n // Handle both `YYYY-MM-DD` and `Date` objects\n date = parseYMD(date);\n var ymd = formatYMD(date);\n return !!(rangeFn(date) || _this.computedDateDisabledFn(ymd, date));\n };\n },\n // Computed props that return date formatter functions\n formatDateString: function formatDateString() {\n // Returns a date formatter function\n return createDateFormatter(this.calendarLocale, _objectSpread(_objectSpread({\n // Ensure we have year, month, day shown for screen readers/ARIA\n // If users really want to leave one of these out, they can\n // pass `undefined` for the property value\n year: DATE_FORMAT_NUMERIC,\n month: DATE_FORMAT_2_DIGIT,\n day: DATE_FORMAT_2_DIGIT\n }, this.dateFormatOptions), {}, {\n // Ensure hours/minutes/seconds are not shown\n // As we do not support the time portion (yet)\n hour: undefined,\n minute: undefined,\n second: undefined,\n // Ensure calendar is gregorian\n calendar: CALENDAR_GREGORY\n }));\n },\n formatYearMonth: function formatYearMonth() {\n // Returns a date formatter function\n return createDateFormatter(this.calendarLocale, {\n year: DATE_FORMAT_NUMERIC,\n month: CALENDAR_LONG,\n calendar: CALENDAR_GREGORY\n });\n },\n formatWeekdayName: function formatWeekdayName() {\n // Long weekday name for weekday header aria-label\n return createDateFormatter(this.calendarLocale, {\n weekday: CALENDAR_LONG,\n calendar: CALENDAR_GREGORY\n });\n },\n formatWeekdayNameShort: function formatWeekdayNameShort() {\n // Weekday header cell format\n // defaults to 'short' 3 letter days, where possible\n return createDateFormatter(this.calendarLocale, {\n weekday: this.weekdayHeaderFormat || CALENDAR_SHORT,\n calendar: CALENDAR_GREGORY\n });\n },\n formatDay: function formatDay() {\n // Calendar grid day number formatter\n // We don't use DateTimeFormatter here as it can place extra\n // character(s) after the number (i.e the `zh` locale)\n var nf = new Intl.NumberFormat([this.computedLocale], {\n style: 'decimal',\n minimumIntegerDigits: 1,\n minimumFractionDigits: 0,\n maximumFractionDigits: 0,\n notation: 'standard'\n }); // Return a formatter function instance\n\n return function (date) {\n return nf.format(date.getDate());\n };\n },\n // Disabled states for the nav buttons\n prevDecadeDisabled: function prevDecadeDisabled() {\n var min = this.computedMin;\n return this.disabled || min && lastDateOfMonth(oneDecadeAgo(this.activeDate)) < min;\n },\n prevYearDisabled: function prevYearDisabled() {\n var min = this.computedMin;\n return this.disabled || min && lastDateOfMonth(oneYearAgo(this.activeDate)) < min;\n },\n prevMonthDisabled: function prevMonthDisabled() {\n var min = this.computedMin;\n return this.disabled || min && lastDateOfMonth(oneMonthAgo(this.activeDate)) < min;\n },\n thisMonthDisabled: function thisMonthDisabled() {\n // TODO: We could/should check if today is out of range\n return this.disabled;\n },\n nextMonthDisabled: function nextMonthDisabled() {\n var max = this.computedMax;\n return this.disabled || max && firstDateOfMonth(oneMonthAhead(this.activeDate)) > max;\n },\n nextYearDisabled: function nextYearDisabled() {\n var max = this.computedMax;\n return this.disabled || max && firstDateOfMonth(oneYearAhead(this.activeDate)) > max;\n },\n nextDecadeDisabled: function nextDecadeDisabled() {\n var max = this.computedMax;\n return this.disabled || max && firstDateOfMonth(oneDecadeAhead(this.activeDate)) > max;\n },\n // Calendar dates generation\n calendar: function calendar() {\n var matrix = [];\n var firstDay = this.calendarFirstDay;\n var calendarYear = firstDay.getFullYear();\n var calendarMonth = firstDay.getMonth();\n var daysInMonth = this.calendarDaysInMonth;\n var startIndex = firstDay.getDay(); // `0`..`6`\n\n var weekOffset = (this.computedWeekStarts > startIndex ? 7 : 0) - this.computedWeekStarts; // Build the calendar matrix\n\n var currentDay = 0 - weekOffset - startIndex;\n\n for (var week = 0; week < 6 && currentDay < daysInMonth; week++) {\n // For each week\n matrix[week] = []; // The following could be a map function\n\n for (var j = 0; j < 7; j++) {\n // For each day in week\n currentDay++;\n var date = createDate(calendarYear, calendarMonth, currentDay);\n var month = date.getMonth();\n var dayYMD = formatYMD(date);\n var dayDisabled = this.dateDisabled(date); // TODO: This could be a normalizer method\n\n var dateInfo = this.computedDateInfoFn(dayYMD, parseYMD(dayYMD));\n dateInfo = isString(dateInfo) || isArray(dateInfo) ?\n /* istanbul ignore next */\n {\n class: dateInfo\n } : isPlainObject(dateInfo) ? _objectSpread({\n class: ''\n }, dateInfo) :\n /* istanbul ignore next */\n {\n class: ''\n };\n matrix[week].push({\n ymd: dayYMD,\n // Cell content\n day: this.formatDay(date),\n label: this.formatDateString(date),\n // Flags for styling\n isThisMonth: month === calendarMonth,\n isDisabled: dayDisabled,\n // TODO: Handle other dateInfo properties such as notes/events\n info: dateInfo\n });\n }\n }\n\n return matrix;\n },\n calendarHeadings: function calendarHeadings() {\n var _this2 = this;\n\n return this.calendar[0].map(function (d) {\n return {\n text: _this2.formatWeekdayNameShort(parseYMD(d.ymd)),\n label: _this2.formatWeekdayName(parseYMD(d.ymd))\n };\n });\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function (newValue, oldValue) {\n var selected = formatYMD(newValue) || '';\n var old = formatYMD(oldValue) || '';\n\n if (!datesEqual(selected, old)) {\n this.activeYMD = selected || this.activeYMD;\n this.selectedYMD = selected;\n }\n }), _defineProperty(_watch, \"selectedYMD\", function selectedYMD(newYMD, oldYMD) {\n // TODO:\n // Should we compare to `formatYMD(this.value)` and emit\n // only if they are different?\n if (newYMD !== oldYMD) {\n this.$emit(MODEL_EVENT_NAME, this.valueAsDate ? parseYMD(newYMD) || null : newYMD || '');\n }\n }), _defineProperty(_watch, \"context\", function context(newValue, oldValue) {\n if (!looseEqual(newValue, oldValue)) {\n this.$emit(EVENT_NAME_CONTEXT, newValue);\n }\n }), _defineProperty(_watch, \"hidden\", function hidden(newValue) {\n // Reset the active focused day when hidden\n this.activeYMD = this.selectedYMD || formatYMD(this[MODEL_PROP_NAME] || this.constrainDate(this.initialDate || this.getToday())); // Enable/disable the live regions\n\n this.setLive(!newValue);\n }), _watch),\n created: function created() {\n var _this3 = this;\n\n this.$nextTick(function () {\n _this3.$emit(EVENT_NAME_CONTEXT, _this3.context);\n });\n },\n mounted: function mounted() {\n this.setLive(true);\n },\n\n /* istanbul ignore next */\n activated: function activated() {\n this.setLive(true);\n },\n\n /* istanbul ignore next */\n deactivated: function deactivated() {\n this.setLive(false);\n },\n beforeDestroy: function beforeDestroy() {\n this.setLive(false);\n },\n methods: {\n // Public method(s)\n focus: function focus() {\n if (!this.disabled) {\n attemptFocus(this.$refs.grid);\n }\n },\n blur: function blur() {\n if (!this.disabled) {\n attemptBlur(this.$refs.grid);\n }\n },\n // Private methods\n setLive: function setLive(on) {\n var _this4 = this;\n\n if (on) {\n this.$nextTick(function () {\n requestAF(function () {\n _this4.isLive = true;\n });\n });\n } else {\n this.isLive = false;\n }\n },\n getToday: function getToday() {\n return parseYMD(createDate());\n },\n constrainDate: function constrainDate(date) {\n // Constrains a date between min and max\n // returns a new `Date` object instance\n return _constrainDate(date, this.computedMin, this.computedMax);\n },\n emitSelected: function emitSelected(date) {\n var _this5 = this;\n\n // Performed in a `$nextTick()` to (probably) ensure\n // the input event has emitted first\n this.$nextTick(function () {\n _this5.$emit(EVENT_NAME_SELECTED, formatYMD(date) || '', parseYMD(date) || null);\n });\n },\n // Event handlers\n setGridFocusFlag: function setGridFocusFlag(event) {\n // Sets the gridHasFocus flag to make date \"button\" look focused\n this.gridHasFocus = !this.disabled && event.type === 'focus';\n },\n onKeydownWrapper: function onKeydownWrapper(event) {\n // Calendar keyboard navigation\n // Handles PAGEUP/PAGEDOWN/END/HOME/LEFT/UP/RIGHT/DOWN\n // Focuses grid after updating\n if (this.noKeyNav) {\n /* istanbul ignore next */\n return;\n }\n\n var altKey = event.altKey,\n ctrlKey = event.ctrlKey,\n keyCode = event.keyCode;\n\n if (!arrayIncludes([CODE_PAGEUP, CODE_PAGEDOWN, CODE_END, CODE_HOME, CODE_LEFT, CODE_UP, CODE_RIGHT, CODE_DOWN], keyCode)) {\n /* istanbul ignore next */\n return;\n }\n\n stopEvent(event);\n var activeDate = createDate(this.activeDate);\n var checkDate = createDate(this.activeDate);\n var day = activeDate.getDate();\n var constrainedToday = this.constrainDate(this.getToday());\n var isRTL = this.isRTL;\n\n if (keyCode === CODE_PAGEUP) {\n // PAGEUP - Previous month/year\n activeDate = (altKey ? ctrlKey ? oneDecadeAgo : oneYearAgo : oneMonthAgo)(activeDate); // We check the first day of month to be in rage\n\n checkDate = createDate(activeDate);\n checkDate.setDate(1);\n } else if (keyCode === CODE_PAGEDOWN) {\n // PAGEDOWN - Next month/year\n activeDate = (altKey ? ctrlKey ? oneDecadeAhead : oneYearAhead : oneMonthAhead)(activeDate); // We check the last day of month to be in rage\n\n checkDate = createDate(activeDate);\n checkDate.setMonth(checkDate.getMonth() + 1);\n checkDate.setDate(0);\n } else if (keyCode === CODE_LEFT) {\n // LEFT - Previous day (or next day for RTL)\n activeDate.setDate(day + (isRTL ? 1 : -1));\n activeDate = this.constrainDate(activeDate);\n checkDate = activeDate;\n } else if (keyCode === CODE_RIGHT) {\n // RIGHT - Next day (or previous day for RTL)\n activeDate.setDate(day + (isRTL ? -1 : 1));\n activeDate = this.constrainDate(activeDate);\n checkDate = activeDate;\n } else if (keyCode === CODE_UP) {\n // UP - Previous week\n activeDate.setDate(day - 7);\n activeDate = this.constrainDate(activeDate);\n checkDate = activeDate;\n } else if (keyCode === CODE_DOWN) {\n // DOWN - Next week\n activeDate.setDate(day + 7);\n activeDate = this.constrainDate(activeDate);\n checkDate = activeDate;\n } else if (keyCode === CODE_HOME) {\n // HOME - Today\n activeDate = constrainedToday;\n checkDate = activeDate;\n } else if (keyCode === CODE_END) {\n // END - Selected date, or today if no selected date\n activeDate = parseYMD(this.selectedDate) || constrainedToday;\n checkDate = activeDate;\n }\n\n if (!this.dateOutOfRange(checkDate) && !datesEqual(activeDate, this.activeDate)) {\n // We only jump to date if within min/max\n // We don't check for individual disabled dates though (via user function)\n this.activeYMD = formatYMD(activeDate);\n } // Ensure grid is focused\n\n\n this.focus();\n },\n onKeydownGrid: function onKeydownGrid(event) {\n // Pressing enter/space on grid to select active date\n var keyCode = event.keyCode;\n var activeDate = this.activeDate;\n\n if (keyCode === CODE_ENTER || keyCode === CODE_SPACE) {\n stopEvent(event);\n\n if (!this.disabled && !this.readonly && !this.dateDisabled(activeDate)) {\n this.selectedYMD = formatYMD(activeDate);\n this.emitSelected(activeDate);\n } // Ensure grid is focused\n\n\n this.focus();\n }\n },\n onClickDay: function onClickDay(day) {\n // Clicking on a date \"button\" to select it\n var selectedDate = this.selectedDate,\n activeDate = this.activeDate;\n var clickedDate = parseYMD(day.ymd);\n\n if (!this.disabled && !day.isDisabled && !this.dateDisabled(clickedDate)) {\n if (!this.readonly) {\n // If readonly mode, we don't set the selected date, just the active date\n // If the clicked date is equal to the already selected date, we don't update the model\n this.selectedYMD = formatYMD(datesEqual(clickedDate, selectedDate) ? selectedDate : clickedDate);\n this.emitSelected(clickedDate);\n }\n\n this.activeYMD = formatYMD(datesEqual(clickedDate, activeDate) ? activeDate : createDate(clickedDate)); // Ensure grid is focused\n\n this.focus();\n }\n },\n gotoPrevDecade: function gotoPrevDecade() {\n this.activeYMD = formatYMD(this.constrainDate(oneDecadeAgo(this.activeDate)));\n },\n gotoPrevYear: function gotoPrevYear() {\n this.activeYMD = formatYMD(this.constrainDate(oneYearAgo(this.activeDate)));\n },\n gotoPrevMonth: function gotoPrevMonth() {\n this.activeYMD = formatYMD(this.constrainDate(oneMonthAgo(this.activeDate)));\n },\n gotoCurrentMonth: function gotoCurrentMonth() {\n // TODO: Maybe this goto date should be configurable?\n this.activeYMD = formatYMD(this.constrainDate(this.getToday()));\n },\n gotoNextMonth: function gotoNextMonth() {\n this.activeYMD = formatYMD(this.constrainDate(oneMonthAhead(this.activeDate)));\n },\n gotoNextYear: function gotoNextYear() {\n this.activeYMD = formatYMD(this.constrainDate(oneYearAhead(this.activeDate)));\n },\n gotoNextDecade: function gotoNextDecade() {\n this.activeYMD = formatYMD(this.constrainDate(oneDecadeAhead(this.activeDate)));\n },\n onHeaderClick: function onHeaderClick() {\n if (!this.disabled) {\n this.activeYMD = this.selectedYMD || formatYMD(this.getToday());\n this.focus();\n }\n }\n },\n render: function render(h) {\n var _this6 = this;\n\n // If `hidden` prop is set, render just a placeholder node\n if (this.hidden) {\n return h();\n }\n\n var valueId = this.valueId,\n widgetId = this.widgetId,\n navId = this.navId,\n gridId = this.gridId,\n gridCaptionId = this.gridCaptionId,\n gridHelpId = this.gridHelpId,\n activeId = this.activeId,\n disabled = this.disabled,\n noKeyNav = this.noKeyNav,\n isLive = this.isLive,\n isRTL = this.isRTL,\n activeYMD = this.activeYMD,\n selectedYMD = this.selectedYMD,\n safeId = this.safeId;\n var hideDecadeNav = !this.showDecadeNav;\n var todayYMD = formatYMD(this.getToday());\n var highlightToday = !this.noHighlightToday; // Header showing current selected date\n\n var $header = h('output', {\n staticClass: 'form-control form-control-sm text-center',\n class: {\n 'text-muted': disabled,\n readonly: this.readonly || disabled\n },\n attrs: {\n id: valueId,\n for: gridId,\n role: 'status',\n tabindex: disabled ? null : '-1',\n // Mainly for testing purposes, as we do not know\n // the exact format `Intl` will format the date string\n 'data-selected': toString(selectedYMD),\n // We wait until after mount to enable `aria-live`\n // to prevent initial announcement on page render\n 'aria-live': isLive ? 'polite' : 'off',\n 'aria-atomic': isLive ? 'true' : null\n },\n on: {\n // Transfer focus/click to focus grid\n // and focus active date (or today if no selection)\n click: this.onHeaderClick,\n focus: this.onHeaderClick\n }\n }, this.selectedDate ? [// We use `bdi` elements here in case the label doesn't match the locale\n // Although IE 11 does not deal with at all (equivalent to a span)\n h('bdi', {\n staticClass: 'sr-only'\n }, \" (\".concat(toString(this.labelSelected), \") \")), h('bdi', this.formatDateString(this.selectedDate))] : this.labelNoDateSelected || \"\\xA0\" // ' '\n );\n $header = h('header', {\n staticClass: 'b-calendar-header',\n class: {\n 'sr-only': this.hideHeader\n },\n attrs: {\n title: this.selectedDate ? this.labelSelectedDate || null : null\n }\n }, [$header]); // Content for the date navigation buttons\n\n var navScope = {\n isRTL: isRTL\n };\n var navProps = {\n shiftV: 0.5\n };\n\n var navPrevProps = _objectSpread(_objectSpread({}, navProps), {}, {\n flipH: isRTL\n });\n\n var navNextProps = _objectSpread(_objectSpread({}, navProps), {}, {\n flipH: !isRTL\n });\n\n var $prevDecadeIcon = this.normalizeSlot(SLOT_NAME_NAV_PEV_DECADE, navScope) || h(BIconChevronBarLeft, {\n props: navPrevProps\n });\n var $prevYearIcon = this.normalizeSlot(SLOT_NAME_NAV_PEV_YEAR, navScope) || h(BIconChevronDoubleLeft, {\n props: navPrevProps\n });\n var $prevMonthIcon = this.normalizeSlot(SLOT_NAME_NAV_PEV_MONTH, navScope) || h(BIconChevronLeft, {\n props: navPrevProps\n });\n var $thisMonthIcon = this.normalizeSlot(SLOT_NAME_NAV_THIS_MONTH, navScope) || h(BIconCircleFill, {\n props: navProps\n });\n var $nextMonthIcon = this.normalizeSlot(SLOT_NAME_NAV_NEXT_MONTH, navScope) || h(BIconChevronLeft, {\n props: navNextProps\n });\n var $nextYearIcon = this.normalizeSlot(SLOT_NAME_NAV_NEXT_YEAR, navScope) || h(BIconChevronDoubleLeft, {\n props: navNextProps\n });\n var $nextDecadeIcon = this.normalizeSlot(SLOT_NAME_NAV_NEXT_DECADE, navScope) || h(BIconChevronBarLeft, {\n props: navNextProps\n }); // Utility to create the date navigation buttons\n\n var makeNavBtn = function makeNavBtn(content, label, handler, btnDisabled, shortcut) {\n return h('button', {\n staticClass: 'btn btn-sm border-0 flex-fill',\n class: [_this6.computedNavButtonVariant, {\n disabled: btnDisabled\n }],\n attrs: {\n title: label || null,\n type: 'button',\n tabindex: noKeyNav ? '-1' : null,\n 'aria-label': label || null,\n 'aria-disabled': btnDisabled ? 'true' : null,\n 'aria-keyshortcuts': shortcut || null\n },\n on: btnDisabled ? {} : {\n click: handler\n }\n }, [h('div', {\n attrs: {\n 'aria-hidden': 'true'\n }\n }, [content])]);\n }; // Generate the date navigation buttons\n\n\n var $nav = h('div', {\n staticClass: 'b-calendar-nav d-flex',\n attrs: {\n id: navId,\n role: 'group',\n tabindex: noKeyNav ? '-1' : null,\n 'aria-hidden': disabled ? 'true' : null,\n 'aria-label': this.labelNav || null,\n 'aria-controls': gridId\n }\n }, [hideDecadeNav ? h() : makeNavBtn($prevDecadeIcon, this.labelPrevDecade, this.gotoPrevDecade, this.prevDecadeDisabled, 'Ctrl+Alt+PageDown'), makeNavBtn($prevYearIcon, this.labelPrevYear, this.gotoPrevYear, this.prevYearDisabled, 'Alt+PageDown'), makeNavBtn($prevMonthIcon, this.labelPrevMonth, this.gotoPrevMonth, this.prevMonthDisabled, 'PageDown'), makeNavBtn($thisMonthIcon, this.labelCurrentMonth, this.gotoCurrentMonth, this.thisMonthDisabled, 'Home'), makeNavBtn($nextMonthIcon, this.labelNextMonth, this.gotoNextMonth, this.nextMonthDisabled, 'PageUp'), makeNavBtn($nextYearIcon, this.labelNextYear, this.gotoNextYear, this.nextYearDisabled, 'Alt+PageUp'), hideDecadeNav ? h() : makeNavBtn($nextDecadeIcon, this.labelNextDecade, this.gotoNextDecade, this.nextDecadeDisabled, 'Ctrl+Alt+PageUp')]); // Caption for calendar grid\n\n var $gridCaption = h('header', {\n staticClass: 'b-calendar-grid-caption text-center font-weight-bold',\n class: {\n 'text-muted': disabled\n },\n attrs: {\n id: gridCaptionId,\n 'aria-live': isLive ? 'polite' : null,\n 'aria-atomic': isLive ? 'true' : null\n },\n key: 'grid-caption'\n }, this.formatYearMonth(this.calendarFirstDay)); // Calendar weekday headings\n\n var $gridWeekDays = h('div', {\n staticClass: 'b-calendar-grid-weekdays row no-gutters border-bottom',\n attrs: {\n 'aria-hidden': 'true'\n }\n }, this.calendarHeadings.map(function (d, idx) {\n return h('small', {\n staticClass: 'col text-truncate',\n class: {\n 'text-muted': disabled\n },\n attrs: {\n title: d.label === d.text ? null : d.label,\n 'aria-label': d.label\n },\n key: idx\n }, d.text);\n })); // Calendar day grid\n\n var $gridBody = this.calendar.map(function (week) {\n var $cells = week.map(function (day, dIndex) {\n var _class;\n\n var isSelected = day.ymd === selectedYMD;\n var isActive = day.ymd === activeYMD;\n var isToday = day.ymd === todayYMD;\n var idCell = safeId(\"_cell-\".concat(day.ymd, \"_\")); // \"fake\" button\n\n var $btn = h('span', {\n staticClass: 'btn border-0 rounded-circle text-nowrap',\n // Should we add some classes to signify if today/selected/etc?\n class: (_class = {\n // Give the fake button a focus ring\n focus: isActive && _this6.gridHasFocus,\n // Styling\n disabled: day.isDisabled || disabled,\n active: isSelected\n }, _defineProperty(_class, _this6.computedVariant, isSelected), _defineProperty(_class, _this6.computedTodayVariant, isToday && highlightToday && !isSelected && day.isThisMonth), _defineProperty(_class, 'btn-outline-light', !(isToday && highlightToday) && !isSelected && !isActive), _defineProperty(_class, 'btn-light', !(isToday && highlightToday) && !isSelected && isActive), _defineProperty(_class, 'text-muted', !day.isThisMonth && !isSelected), _defineProperty(_class, 'text-dark', !(isToday && highlightToday) && !isSelected && !isActive && day.isThisMonth), _defineProperty(_class, 'font-weight-bold', (isSelected || day.isThisMonth) && !day.isDisabled), _class),\n on: {\n click: function click() {\n return _this6.onClickDay(day);\n }\n }\n }, day.day);\n return h('div', // Cell with button\n {\n staticClass: 'col p-0',\n class: day.isDisabled ? 'bg-light' : day.info.class || '',\n attrs: {\n id: idCell,\n role: 'button',\n 'data-date': day.ymd,\n // Primarily for testing purposes\n // Only days in the month are presented as buttons to screen readers\n 'aria-hidden': day.isThisMonth ? null : 'true',\n 'aria-disabled': day.isDisabled || disabled ? 'true' : null,\n 'aria-label': [day.label, isSelected ? \"(\".concat(_this6.labelSelected, \")\") : null, isToday ? \"(\".concat(_this6.labelToday, \")\") : null].filter(identity).join(' '),\n // NVDA doesn't convey `aria-selected`, but does `aria-current`,\n // ChromeVox doesn't convey `aria-current`, but does `aria-selected`,\n // so we set both attributes for robustness\n 'aria-selected': isSelected ? 'true' : null,\n 'aria-current': isSelected ? 'date' : null\n },\n key: dIndex\n }, [$btn]);\n }); // Return the week \"row\"\n // We use the first day of the weeks YMD value as a\n // key for efficient DOM patching / element re-use\n\n return h('div', {\n staticClass: 'row no-gutters',\n key: week[0].ymd\n }, $cells);\n });\n $gridBody = h('div', {\n // A key is only required on the body if we add in transition support\n staticClass: 'b-calendar-grid-body',\n style: disabled ? {\n pointerEvents: 'none'\n } : {} // key: this.activeYMD.slice(0, -3)\n\n }, $gridBody);\n var $gridHelp = h('footer', {\n staticClass: 'b-calendar-grid-help border-top small text-muted text-center bg-light',\n attrs: {\n id: gridHelpId\n }\n }, [h('div', {\n staticClass: 'small'\n }, this.labelHelp)]);\n var $grid = h('div', {\n staticClass: 'b-calendar-grid form-control h-auto text-center',\n attrs: {\n id: gridId,\n role: 'application',\n tabindex: noKeyNav ? '-1' : disabled ? null : '0',\n 'data-month': activeYMD.slice(0, -3),\n // `YYYY-MM`, mainly for testing\n 'aria-roledescription': this.labelCalendar || null,\n 'aria-labelledby': gridCaptionId,\n 'aria-describedby': gridHelpId,\n // `aria-readonly` is not considered valid on `role=\"application\"`\n // https://www.w3.org/TR/wai-aria-1.1/#aria-readonly\n // 'aria-readonly': this.readonly && !disabled ? 'true' : null,\n 'aria-disabled': disabled ? 'true' : null,\n 'aria-activedescendant': activeId\n },\n on: {\n keydown: this.onKeydownGrid,\n focus: this.setGridFocusFlag,\n blur: this.setGridFocusFlag\n },\n ref: 'grid'\n }, [$gridCaption, $gridWeekDays, $gridBody, $gridHelp]); // Optional bottom slot\n\n var $slot = this.normalizeSlot();\n $slot = $slot ? h('footer', {\n staticClass: 'b-calendar-footer'\n }, $slot) : h();\n var $widget = h('div', {\n staticClass: 'b-calendar-inner',\n style: this.block ? {} : {\n width: this.width\n },\n attrs: {\n id: widgetId,\n dir: isRTL ? 'rtl' : 'ltr',\n lang: this.computedLocale || null,\n role: 'group',\n 'aria-disabled': disabled ? 'true' : null,\n // If datepicker controls an input, this will specify the ID of the input\n 'aria-controls': this.ariaControls || null,\n // This should be a prop (so it can be changed to Date picker, etc, localized\n 'aria-roledescription': this.roleDescription || null,\n 'aria-describedby': [// Should the attr (if present) go last?\n // Or should this attr be a prop?\n this.bvAttrs['aria-describedby'], valueId, gridHelpId].filter(identity).join(' ')\n },\n on: {\n keydown: this.onKeydownWrapper\n }\n }, [$header, $nav, $grid, $slot]); // Wrap in an outer div that can be styled\n\n return h('div', {\n staticClass: 'b-calendar',\n class: {\n 'd-block': this.block\n }\n }, [$widget]);\n }\n});","// v-b-hover directive\nimport { IS_BROWSER } from '../../constants/env';\nimport { EVENT_OPTIONS_NO_CAPTURE } from '../../constants/events';\nimport { eventOnOff } from '../../utils/events';\nimport { isFunction } from '../../utils/inspect'; // --- Constants ---\n\nvar PROP = '__BV_hover_handler__';\nvar MOUSEENTER = 'mouseenter';\nvar MOUSELEAVE = 'mouseleave'; // --- Helper methods ---\n\nvar createListener = function createListener(handler) {\n var listener = function listener(event) {\n handler(event.type === MOUSEENTER, event);\n };\n\n listener.fn = handler;\n return listener;\n};\n\nvar updateListeners = function updateListeners(on, el, listener) {\n eventOnOff(on, el, MOUSEENTER, listener, EVENT_OPTIONS_NO_CAPTURE);\n eventOnOff(on, el, MOUSELEAVE, listener, EVENT_OPTIONS_NO_CAPTURE);\n}; // --- Directive bind/unbind/update handler ---\n\n\nvar directive = function directive(el, _ref) {\n var _ref$value = _ref.value,\n handler = _ref$value === void 0 ? null : _ref$value;\n\n if (IS_BROWSER) {\n var listener = el[PROP];\n var hasListener = isFunction(listener);\n var handlerChanged = !(hasListener && listener.fn === handler);\n\n if (hasListener && handlerChanged) {\n updateListeners(false, el, listener);\n delete el[PROP];\n }\n\n if (isFunction(handler) && handlerChanged) {\n el[PROP] = createListener(handler);\n updateListeners(true, el, el[PROP]);\n }\n }\n}; // VBHover directive\n\n\nexport var VBHover = {\n bind: directive,\n componentUpdated: directive,\n unbind: function unbind(el) {\n directive(el, {\n value: null\n });\n }\n};","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n//\n// Private component used by `b-form-datepicker` and `b-form-timepicker`\n//\nimport { Vue } from '../../vue';\nimport { NAME_FORM_BUTTON_LABEL_CONTROL } from '../../constants/components';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_BUTTON_CONTENT, SLOT_NAME_DEFAULT } from '../../constants/slots';\nimport { attemptBlur, attemptFocus } from '../../utils/dom';\nimport { stopEvent } from '../../utils/events';\nimport { omit, sortKeys } from '../../utils/object';\nimport { makeProp } from '../../utils/props';\nimport { toString } from '../../utils/string';\nimport { dropdownMixin, props as dropdownProps } from '../../mixins/dropdown';\nimport { props as formControlProps } from '../../mixins/form-control';\nimport { formSizeMixin, props as formSizeProps } from '../../mixins/form-size';\nimport { formStateMixin, props as formStateProps } from '../../mixins/form-state';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { VBHover } from '../../directives/hover/hover';\nimport { BIconChevronDown } from '../../icons/icons'; // --- Props ---\n\nexport var props = sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), formSizeProps), formStateProps), omit(dropdownProps, ['disabled'])), omit(formControlProps, ['autofocus'])), {}, {\n // When `true`, renders a `btn-group` wrapper and visually hides the label\n buttonOnly: makeProp(PROP_TYPE_BOOLEAN, false),\n // Applicable in button mode only\n buttonVariant: makeProp(PROP_TYPE_STRING, 'secondary'),\n // This is the value shown in the label\n // Defaults back to `value`\n formattedValue: makeProp(PROP_TYPE_STRING),\n // Value placed in `.sr-only` span inside label when value is present\n labelSelected: makeProp(PROP_TYPE_STRING),\n lang: makeProp(PROP_TYPE_STRING),\n // Extra classes to apply to the `dropdown-menu` div\n menuClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n // This is the value placed on the hidden input when no value selected\n placeholder: makeProp(PROP_TYPE_STRING),\n readonly: makeProp(PROP_TYPE_BOOLEAN, false),\n // Tri-state prop: `true`, `false` or `null`\n rtl: makeProp(PROP_TYPE_BOOLEAN, null),\n value: makeProp(PROP_TYPE_STRING, '')\n})); // --- Main component ---\n// @vue/component\n\nexport var BVFormBtnLabelControl = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_BUTTON_LABEL_CONTROL,\n directives: {\n 'b-hover': VBHover\n },\n mixins: [idMixin, formSizeMixin, formStateMixin, dropdownMixin, normalizeSlotMixin],\n props: props,\n data: function data() {\n return {\n isHovered: false,\n hasFocus: false\n };\n },\n computed: {\n idButton: function idButton() {\n return this.safeId();\n },\n idLabel: function idLabel() {\n return this.safeId('_value_');\n },\n idMenu: function idMenu() {\n return this.safeId('_dialog_');\n },\n idWrapper: function idWrapper() {\n return this.safeId('_outer_');\n },\n computedDir: function computedDir() {\n return this.rtl === true ? 'rtl' : this.rtl === false ? 'ltr' : null;\n }\n },\n methods: {\n focus: function focus() {\n if (!this.disabled) {\n attemptFocus(this.$refs.toggle);\n }\n },\n blur: function blur() {\n if (!this.disabled) {\n attemptBlur(this.$refs.toggle);\n }\n },\n setFocus: function setFocus(event) {\n this.hasFocus = event.type === 'focus';\n },\n handleHover: function handleHover(hovered) {\n this.isHovered = hovered;\n }\n },\n render: function render(h) {\n var _class;\n\n var idButton = this.idButton,\n idLabel = this.idLabel,\n idMenu = this.idMenu,\n idWrapper = this.idWrapper,\n disabled = this.disabled,\n readonly = this.readonly,\n required = this.required,\n name = this.name,\n state = this.state,\n visible = this.visible,\n size = this.size,\n isHovered = this.isHovered,\n hasFocus = this.hasFocus,\n labelSelected = this.labelSelected,\n buttonVariant = this.buttonVariant,\n buttonOnly = this.buttonOnly;\n var value = toString(this.value) || '';\n var invalid = state === false || required && !value;\n var btnScope = {\n isHovered: isHovered,\n hasFocus: hasFocus,\n state: state,\n opened: visible\n };\n var $button = h('button', {\n staticClass: 'btn',\n class: (_class = {}, _defineProperty(_class, \"btn-\".concat(buttonVariant), buttonOnly), _defineProperty(_class, \"btn-\".concat(size), size), _defineProperty(_class, 'h-auto', !buttonOnly), _defineProperty(_class, 'dropdown-toggle', buttonOnly), _defineProperty(_class, 'dropdown-toggle-no-caret', buttonOnly), _class),\n attrs: {\n id: idButton,\n type: 'button',\n disabled: disabled,\n 'aria-haspopup': 'dialog',\n 'aria-expanded': visible ? 'true' : 'false',\n 'aria-invalid': invalid ? 'true' : null,\n 'aria-required': required ? 'true' : null\n },\n directives: [{\n name: 'b-hover',\n value: this.handleHover\n }],\n on: {\n mousedown: this.onMousedown,\n click: this.toggle,\n keydown: this.toggle,\n // Handle ENTER, SPACE and DOWN\n '!focus': this.setFocus,\n '!blur': this.setFocus\n },\n ref: 'toggle'\n }, [this.hasNormalizedSlot(SLOT_NAME_BUTTON_CONTENT) ? this.normalizeSlot(SLOT_NAME_BUTTON_CONTENT, btnScope) :\n /* istanbul ignore next */\n h(BIconChevronDown, {\n props: {\n scale: 1.25\n }\n })]); // Hidden input\n\n var $hidden = h();\n\n if (name && !disabled) {\n $hidden = h('input', {\n attrs: {\n type: 'hidden',\n name: name || null,\n form: this.form || null,\n value: value\n }\n });\n } // Dropdown content\n\n\n var $menu = h('div', {\n staticClass: 'dropdown-menu',\n class: [this.menuClass, {\n show: visible,\n 'dropdown-menu-right': this.right\n }],\n attrs: {\n id: idMenu,\n role: 'dialog',\n tabindex: '-1',\n 'aria-modal': 'false',\n 'aria-labelledby': idLabel\n },\n on: {\n keydown: this.onKeydown // Handle ESC\n\n },\n ref: 'menu'\n }, [this.normalizeSlot(SLOT_NAME_DEFAULT, {\n opened: visible\n })]); // Value label\n\n var $label = h('label', {\n class: buttonOnly ? 'sr-only' // Hidden in button only mode\n : ['form-control', 'text-break', 'text-wrap', 'bg-transparent', // Mute the text if showing the placeholder\n {\n 'text-muted': !value\n }, this.stateClass, this.sizeFormClass],\n attrs: {\n id: idLabel,\n for: idButton,\n 'aria-invalid': invalid ? 'true' : null,\n 'aria-required': required ? 'true' : null\n },\n directives: [{\n name: 'b-hover',\n value: this.handleHover\n }],\n on: {\n // Disable bubbling of the click event to\n // prevent menu from closing and re-opening\n '!click':\n /* istanbul ignore next */\n function click(event) {\n stopEvent(event, {\n preventDefault: false\n });\n }\n }\n }, [value ? this.formattedValue || value : this.placeholder || '', // Add the selected label for screen readers when a value is provided\n value && labelSelected ? h('bdi', {\n staticClass: 'sr-only'\n }, labelSelected) : '']); // Return the custom form control wrapper\n\n return h('div', {\n staticClass: 'b-form-btn-label-control dropdown',\n class: [this.directionClass, this.boundaryClass, [{\n 'btn-group': buttonOnly,\n 'form-control': !buttonOnly,\n 'd-flex': !buttonOnly,\n 'h-auto': !buttonOnly,\n 'align-items-stretch': !buttonOnly,\n focus: hasFocus && !buttonOnly,\n show: visible,\n 'is-valid': state === true,\n 'is-invalid': state === false\n }, buttonOnly ? null : this.sizeFormClass]],\n attrs: {\n id: idWrapper,\n role: buttonOnly ? null : 'group',\n lang: this.lang || null,\n dir: this.computedDir,\n 'aria-disabled': disabled,\n 'aria-readonly': readonly && !disabled,\n 'aria-labelledby': idLabel,\n 'aria-invalid': state === false || required && !value ? 'true' : null,\n 'aria-required': required ? 'true' : null\n }\n }, [$button, $hidden, $menu, $label]);\n }\n});","var _watch;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_FORM_DATEPICKER } from '../../constants/components';\nimport { EVENT_NAME_CONTEXT, EVENT_NAME_HIDDEN, EVENT_NAME_SHOWN } from '../../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_DATE_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_BUTTON_CONTENT } from '../../constants/slots';\nimport { createDate, constrainDate, formatYMD, parseYMD } from '../../utils/date';\nimport { attemptBlur, attemptFocus } from '../../utils/dom';\nimport { isUndefinedOrNull } from '../../utils/inspect';\nimport { makeModelMixin } from '../../utils/model';\nimport { omit, pick, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, pluckProps } from '../../utils/props';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { BIconCalendar, BIconCalendarFill } from '../../icons/icons';\nimport { BButton } from '../button/button';\nimport { BCalendar, props as BCalendarProps } from '../calendar/calendar';\nimport { BVFormBtnLabelControl, props as BVFormBtnLabelControlProps } from '../form-btn-label-control/bv-form-btn-label-control'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('value', {\n type: PROP_TYPE_DATE_STRING\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event; // --- Props ---\n\n\nvar calendarProps = omit(BCalendarProps, ['block', 'hidden', 'id', 'noKeyNav', 'roleDescription', 'value', 'width']);\nvar formBtnLabelControlProps = omit(BVFormBtnLabelControlProps, ['formattedValue', 'id', 'lang', 'rtl', 'value']);\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), modelProps), calendarProps), formBtnLabelControlProps), {}, {\n // Width of the calendar dropdown\n calendarWidth: makeProp(PROP_TYPE_STRING, '270px'),\n closeButton: makeProp(PROP_TYPE_BOOLEAN, false),\n closeButtonVariant: makeProp(PROP_TYPE_STRING, 'outline-secondary'),\n // Dark mode\n dark: makeProp(PROP_TYPE_BOOLEAN, false),\n labelCloseButton: makeProp(PROP_TYPE_STRING, 'Close'),\n labelResetButton: makeProp(PROP_TYPE_STRING, 'Reset'),\n labelTodayButton: makeProp(PROP_TYPE_STRING, 'Select today'),\n noCloseOnSelect: makeProp(PROP_TYPE_BOOLEAN, false),\n resetButton: makeProp(PROP_TYPE_BOOLEAN, false),\n resetButtonVariant: makeProp(PROP_TYPE_STRING, 'outline-danger'),\n resetValue: makeProp(PROP_TYPE_DATE_STRING),\n todayButton: makeProp(PROP_TYPE_BOOLEAN, false),\n todayButtonVariant: makeProp(PROP_TYPE_STRING, 'outline-primary')\n})), NAME_FORM_DATEPICKER); // --- Main component ---\n// @vue/component\n\nexport var BFormDatepicker = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_DATEPICKER,\n mixins: [idMixin, modelMixin],\n props: props,\n data: function data() {\n return {\n // We always use `YYYY-MM-DD` value internally\n localYMD: formatYMD(this[MODEL_PROP_NAME]) || '',\n // If the popup is open\n isVisible: false,\n // Context data from BCalendar\n localLocale: null,\n isRTL: false,\n formattedValue: '',\n activeYMD: ''\n };\n },\n computed: {\n calendarYM: function calendarYM() {\n // Returns the calendar year/month\n // Returns the `YYYY-MM` portion of the active calendar date\n return this.activeYMD.slice(0, -3);\n },\n computedLang: function computedLang() {\n return (this.localLocale || '').replace(/-u-.*$/i, '') || null;\n },\n computedResetValue: function computedResetValue() {\n return formatYMD(constrainDate(this.resetValue)) || '';\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function (newValue) {\n this.localYMD = formatYMD(newValue) || '';\n }), _defineProperty(_watch, \"localYMD\", function localYMD(newValue) {\n // We only update the v-model when the datepicker is open\n if (this.isVisible) {\n this.$emit(MODEL_EVENT_NAME, this.valueAsDate ? parseYMD(newValue) || null : newValue || '');\n }\n }), _defineProperty(_watch, \"calendarYM\", function calendarYM(newValue, oldValue) {\n // Displayed calendar month has changed\n // So possibly the calendar height has changed...\n // We need to update popper computed position\n if (newValue !== oldValue && oldValue) {\n try {\n this.$refs.control.updatePopper();\n } catch (_unused) {}\n }\n }), _watch),\n methods: {\n // Public methods\n focus: function focus() {\n if (!this.disabled) {\n attemptFocus(this.$refs.control);\n }\n },\n blur: function blur() {\n if (!this.disabled) {\n attemptBlur(this.$refs.control);\n }\n },\n // Private methods\n setAndClose: function setAndClose(ymd) {\n var _this = this;\n\n this.localYMD = ymd; // Close calendar popup, unless `noCloseOnSelect`\n\n if (!this.noCloseOnSelect) {\n this.$nextTick(function () {\n _this.$refs.control.hide(true);\n });\n }\n },\n onSelected: function onSelected(ymd) {\n var _this2 = this;\n\n this.$nextTick(function () {\n _this2.setAndClose(ymd);\n });\n },\n onInput: function onInput(ymd) {\n if (this.localYMD !== ymd) {\n this.localYMD = ymd;\n }\n },\n onContext: function onContext(ctx) {\n var activeYMD = ctx.activeYMD,\n isRTL = ctx.isRTL,\n locale = ctx.locale,\n selectedYMD = ctx.selectedYMD,\n selectedFormatted = ctx.selectedFormatted;\n this.isRTL = isRTL;\n this.localLocale = locale;\n this.formattedValue = selectedFormatted;\n this.localYMD = selectedYMD;\n this.activeYMD = activeYMD; // Re-emit the context event\n\n this.$emit(EVENT_NAME_CONTEXT, ctx);\n },\n onTodayButton: function onTodayButton() {\n // Set to today (or min/max if today is out of range)\n this.setAndClose(formatYMD(constrainDate(createDate(), this.min, this.max)));\n },\n onResetButton: function onResetButton() {\n this.setAndClose(this.computedResetValue);\n },\n onCloseButton: function onCloseButton() {\n this.$refs.control.hide(true);\n },\n // Menu handlers\n onShow: function onShow() {\n this.isVisible = true;\n },\n onShown: function onShown() {\n var _this3 = this;\n\n this.$nextTick(function () {\n attemptFocus(_this3.$refs.calendar);\n\n _this3.$emit(EVENT_NAME_SHOWN);\n });\n },\n onHidden: function onHidden() {\n this.isVisible = false;\n this.$emit(EVENT_NAME_HIDDEN);\n },\n // Render helpers\n defaultButtonFn: function defaultButtonFn(_ref) {\n var isHovered = _ref.isHovered,\n hasFocus = _ref.hasFocus;\n return this.$createElement(isHovered || hasFocus ? BIconCalendarFill : BIconCalendar, {\n attrs: {\n 'aria-hidden': 'true'\n }\n });\n }\n },\n render: function render(h) {\n var localYMD = this.localYMD,\n disabled = this.disabled,\n readonly = this.readonly,\n dark = this.dark,\n $props = this.$props,\n $scopedSlots = this.$scopedSlots;\n var placeholder = isUndefinedOrNull(this.placeholder) ? this.labelNoDateSelected : this.placeholder; // Optional footer buttons\n\n var $footer = [];\n\n if (this.todayButton) {\n var label = this.labelTodayButton;\n $footer.push(h(BButton, {\n props: {\n disabled: disabled || readonly,\n size: 'sm',\n variant: this.todayButtonVariant\n },\n attrs: {\n 'aria-label': label || null\n },\n on: {\n click: this.onTodayButton\n }\n }, label));\n }\n\n if (this.resetButton) {\n var _label = this.labelResetButton;\n $footer.push(h(BButton, {\n props: {\n disabled: disabled || readonly,\n size: 'sm',\n variant: this.resetButtonVariant\n },\n attrs: {\n 'aria-label': _label || null\n },\n on: {\n click: this.onResetButton\n }\n }, _label));\n }\n\n if (this.closeButton) {\n var _label2 = this.labelCloseButton;\n $footer.push(h(BButton, {\n props: {\n disabled: disabled,\n size: 'sm',\n variant: this.closeButtonVariant\n },\n attrs: {\n 'aria-label': _label2 || null\n },\n on: {\n click: this.onCloseButton\n }\n }, _label2));\n }\n\n if ($footer.length > 0) {\n $footer = [h('div', {\n staticClass: 'b-form-date-controls d-flex flex-wrap',\n class: {\n 'justify-content-between': $footer.length > 1,\n 'justify-content-end': $footer.length < 2\n }\n }, $footer)];\n }\n\n var $calendar = h(BCalendar, {\n staticClass: 'b-form-date-calendar w-100',\n props: _objectSpread(_objectSpread({}, pluckProps(calendarProps, $props)), {}, {\n hidden: !this.isVisible,\n value: localYMD,\n valueAsDate: false,\n width: this.calendarWidth\n }),\n on: {\n selected: this.onSelected,\n input: this.onInput,\n context: this.onContext\n },\n scopedSlots: pick($scopedSlots, ['nav-prev-decade', 'nav-prev-year', 'nav-prev-month', 'nav-this-month', 'nav-next-month', 'nav-next-year', 'nav-next-decade']),\n key: 'calendar',\n ref: 'calendar'\n }, $footer);\n return h(BVFormBtnLabelControl, {\n staticClass: 'b-form-datepicker',\n props: _objectSpread(_objectSpread({}, pluckProps(formBtnLabelControlProps, $props)), {}, {\n formattedValue: localYMD ? this.formattedValue : '',\n id: this.safeId(),\n lang: this.computedLang,\n menuClass: [{\n 'bg-dark': dark,\n 'text-light': dark\n }, this.menuClass],\n placeholder: placeholder,\n rtl: this.isRTL,\n value: localYMD\n }),\n on: {\n show: this.onShow,\n shown: this.onShown,\n hidden: this.onHidden\n },\n scopedSlots: _defineProperty({}, SLOT_NAME_BUTTON_CONTENT, $scopedSlots[SLOT_NAME_BUTTON_CONTENT] || this.defaultButtonFn),\n ref: 'control'\n }, [$calendar]);\n }\n});","import { Vue } from '../vue';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../constants/props';\nimport { attemptFocus, isVisible, matches, requestAF, select } from '../utils/dom';\nimport { makeProp, makePropsConfigurable } from '../utils/props'; // --- Constants ---\n\nvar SELECTOR = 'input, textarea, select'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n autofocus: makeProp(PROP_TYPE_BOOLEAN, false),\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n form: makeProp(PROP_TYPE_STRING),\n id: makeProp(PROP_TYPE_STRING),\n name: makeProp(PROP_TYPE_STRING),\n required: makeProp(PROP_TYPE_BOOLEAN, false)\n}, 'formControls'); // --- Mixin ---\n// @vue/component\n\nexport var formControlMixin = Vue.extend({\n props: props,\n mounted: function mounted() {\n this.handleAutofocus();\n },\n\n /* istanbul ignore next */\n activated: function activated() {\n this.handleAutofocus();\n },\n methods: {\n handleAutofocus: function handleAutofocus() {\n var _this = this;\n\n this.$nextTick(function () {\n requestAF(function () {\n var el = _this.$el;\n\n if (_this.autofocus && isVisible(el)) {\n if (!matches(el, SELECTOR)) {\n el = select(SELECTOR, el);\n }\n\n attemptFocus(el);\n }\n });\n });\n }\n }\n});"],"sourceRoot":""}