{"version":3,"sources":["webpack:///./node_modules/bootstrap-vue/esm/utils/date.js","webpack:///./src/views/Plants/Orders/order-add/orderAdd.vue?dac6","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-footer.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-img.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card.js","webpack:///./node_modules/bootstrap-vue/esm/directives/toggle/toggle.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-title.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-body.js","webpack:///./node_modules/bootstrap-vue/esm/utils/locale.js","webpack:///./node_modules/bootstrap-vue/esm/constants/popper.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/click-out.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/focus-in.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/dropdown.js","webpack:///./node_modules/bootstrap-vue/esm/constants/date.js","webpack:///./node_modules/bootstrap-vue/esm/directives/visible/visible.js","webpack:///./node_modules/bootstrap-vue/esm/components/form-textarea/form-textarea.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/components/card/card-header.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-sub-title.js","webpack:///./src/@core/mixins/ui/transition.js","webpack:///./node_modules/bootstrap-vue/esm/components/calendar/calendar.js","webpack:///./node_modules/bootstrap-vue/esm/components/form-datepicker/form-datepicker.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/card.js","webpack:///./src/views/Plants/Orders/order-add/orderAdd.vue?8b72","webpack:///src/views/Plants/Orders/order-add/orderAdd.vue","webpack:///./src/views/Plants/Orders/order-add/orderAdd.vue?ccef","webpack:///./src/views/Plants/Orders/order-add/orderAdd.vue","webpack:///./node_modules/vue-ripple-directive/src/ripple.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:///./src/views/Plants/Orders/order-add/orderAdd.vue?df09"],"names":["_slicedToArray","arr","i","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","o","minLen","_arrayLikeToArray","n","Object","prototype","toString","call","slice","constructor","name","Array","from","test","len","length","arr2","Symbol","iterator","_arr","_n","_d","_e","undefined","_s","_i","next","done","push","value","err","isArray","_construct","Parent","args","Class","_isNativeReflectConstruct","Reflect","construct","a","apply","Constructor","Function","bind","instance","_setPrototypeOf","arguments","sham","Proxy","Date","e","p","setPrototypeOf","__proto__","createDate","_len","_key","parseYMD","date","trim","_date$split$map","split","map","v","_date$split$map2","year","month","day","getFullYear","getMonth","getDate","formatYMD","concat","resolveLocale","locales","calendar","filter","fmt","Intl","DateTimeFormat","resolvedOptions","locale","createDateFormatter","options","dtf","format","datesEqual","date1","date2","firstDateOfMonth","setDate","lastDateOfMonth","setMonth","addYears","numberOfYears","setFullYear","oneMonthAgo","oneMonthAhead","oneYearAgo","oneYearAhead","oneDecadeAgo","oneDecadeAhead","constrainDate","min","max","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","enumerable","_objectSpread","target","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","obj","configurable","writable","footer","footerClass","footerHtml","BCardFooter","extend","functional","props","render","h","_ref","_ref2","data","children","footerBgVariant","footerBorderVariant","footerTextVariant","footerTag","staticClass","class","domProps","html","bottom","end","start","top","BCardImg","src","alt","width","height","baseClass","right","left","attrs","cardImgProps","imgSrc","required","card","align","noBody","BCard","_class","slots","scopedSlots","imgLeft","imgRight","imgStart","imgEnd","imgBottom","header","headerHtml","textVariant","bgVariant","borderVariant","$scopedSlots","$slots","slotScope","$imgFirst","$imgLast","$img","$header","hasHeaderSlot","$content","overlay","$footer","hasFooterSlot","tag","CLASS_BV_TOGGLE_COLLAPSED","CLASS_BV_TOGGLE_NOT_COLLAPSED","BV_BASE","BV_TOGGLE_ROOT_HANDLER","BV_TOGGLE_CLICK_HANDLER","BV_TOGGLE_STATE","BV_TOGGLE_TARGETS","STRING_FALSE","STRING_TRUE","ATTR_ARIA_CONTROLS","ATTR_ARIA_EXPANDED","ATTR_ROLE","ATTR_TABINDEX","STYLE_OVERFLOW_ANCHOR","ROOT_ACTION_EVENT_NAME_TOGGLE","ROOT_EVENT_NAME_STATE","ROOT_EVENT_NAME_SYNC_STATE","ROOT_ACTION_EVENT_NAME_REQUEST_STATE","KEYDOWN_KEY_CODES","isNonStandardTag","el","tagName","toLowerCase","getTargets","modifiers","arg","targets","href","replace","t","index","indexOf","removeClickListener","handler","addClickListener","vnode","context","event","type","keyCode","$root","$emit","removeRootListeners","$off","addRootListeners","id","state","setToggleState","$on","resetProp","prop","handleUpdate","binding","join","VBToggle","componentUpdated","updated","unbind","title","titleTag","BCardTitle","bodyClass","BCardBody","bodyBgVariant","bodyBorderVariant","bodyTextVariant","$title","$subTitle","subTitle","bodyTag","RTL_LANGS","isLocaleRTL","parts","locale1","locale2","PLACEMENT_TOP_START","PLACEMENT_TOP_END","PLACEMENT_BOTTOM_START","PLACEMENT_BOTTOM_END","PLACEMENT_RIGHT_START","PLACEMENT_LEFT_START","clickOutMixin","listenForClickOut","watch","newValue","oldValue","this","clickOutElement","clickOutEventName","_clickOutHandler","beforeCreate","mounted","document","beforeDestroy","methods","isClickOut","$el","clickOutHandler","focusInMixin","listenForFocusIn","focusInElement","_focusInHandler","focusInHandler","ROOT_EVENT_NAME_SHOWN","ROOT_EVENT_NAME_HIDDEN","SELECTOR_FORM_CHILD","SELECTOR_ITEM","selector","els","boundary","disabled","dropleft","dropright","dropup","noFlip","offset","popperOpts","dropdownMixin","mixins","provide","bvDropdown","inject","bvNavbar","default","visible","visibleChangePrevented","computed","inNavbar","toggler","toggle","$refs","directionClass","boundaryClass","eventName","bvEvent","cancelable","vueTarget","menu","relatedTarget","componentId","safeId","emitEvent","defaultPrevented","focusToggler","showMenu","hideMenu","created","$_popper","$_hideTimeout","deactivated","whileOpenListen","destroyPopper","clearHideTimeout","emitOnRoot","_this","warn","createPopper","$nextTick","focusMenu","element","getPopperConfig","destroy","updatePopper","scheduleUpdate","_unused","clearTimeout","placement","popperConfig","flip","enabled","boundariesElement","preventOverflow","isOpen","method","rootCloseListener","vm","show","_this2","hide","refocus","$once","_event","onMousedown","propagation","onKeydown","onEsc","focusNext","onSplitClick","hideHandler","_this3","setTimeout","up","_this4","items","getItems","focusItem","find","_this5","CALENDAR_GREGORY","CALENDAR_LONG","CALENDAR_NARROW","CALENDAR_SHORT","DATE_FORMAT_2_DIGIT","DATE_FORMAT_NUMERIC","_classCallCheck","_defineProperties","descriptor","_createClass","protoProps","staticProps","OBSERVER_PROP_NAME","VisibilityObserver","callback","margin","once","observer","doneOnce","createObserver","stop","IntersectionObserver","root","rootMargin","threshold","observe","entries","entry","isIntersecting","Boolean","intersectionRatio","disconnect","mod","_prevModifiers","VBVisible","maxRows","noAutoShrink","noResize","rows","wrap","BFormTextarea","directives","listeners","heightInPx","computedStyle","styles","resize","computedRows","overflowY","computedMinRows","math","computedMaxRows","computedAttrs","form","placeholder","autocomplete","readonly","plaintext","computedAriaInvalid","computedListeners","bvListeners","input","onInput","change","onChange","blur","onBlur","localValue","setHeight","visibleCallback","computeHeight","$isServer","lineHeight","border","borderTopWidth","borderBottomWidth","padding","paddingTop","paddingBottom","minHeight","oldHeight","scrollHeight","contentRows","computedClass","style","on","ref","COMMON_ALIGNMENT","computeRowColsClass","breakpoint","cols","computeRowColsBreakpoint","rowColsPropList","generateProps","rowColsProps","reduce","alignContent","alignH","alignV","noGutters","BRow","_classList$push","classList","c","$","toObject","toAbsoluteIndex","toIntegerOrInfinity","lengthOfArrayLike","setArrayLength","doesNotExceedSafeInteger","arraySpeciesCreate","createProperty","deletePropertyOrThrow","arrayMethodHasSpeciesSupport","HAS_SPECIES_SUPPORT","Math","proto","forced","splice","deleteCount","insertCount","actualDeleteCount","A","k","to","O","actualStart","argumentsLength","headerClass","BCardHeader","headerBgVariant","headerBorderVariant","headerTextVariant","headerTag","subTitleTag","subTitleTextVariant","BCardSubTitle","heightTransition","trHeight","trAddHeight","val","heightValue","Number","substring","trTrimHeight","trSetHeight","_watch","_makeModelMixin","modelMixin","mixin","modelProps","MODEL_PROP_NAME","MODEL_EVENT_NAME","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","widgetId","navId","gridId","gridCaptionId","gridHelpId","activeId","selectedDate","activeDate","computedMin","computedMax","computedWeekStarts","computedLocale","identity","computedDateDisabledFn","computedDateInfoFn","calendarLocale","calendarYear","calendarMonth","calendarFirstDay","calendarDaysInMonth","computedVariant","computedTodayVariant","computedNavButtonVariant","isRTL","dir","selectedFormatted","formatDateString","activeFormatted","dateDisabled","rtl","dateOutOfRange","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","getDay","weekOffset","currentDay","week","j","dayYMD","dayDisabled","dateInfo","label","isThisMonth","isDisabled","info","calendarHeadings","d","text","old","newYMD","oldYMD","setLive","activated","focus","grid","emitSelected","setGridFocusFlag","onKeydownWrapper","altKey","ctrlKey","checkDate","constrainedToday","onKeydownGrid","onClickDay","clickedDate","gotoPrevDecade","gotoPrevYear","gotoPrevMonth","gotoCurrentMonth","gotoNextMonth","gotoNextYear","gotoNextDecade","onHeaderClick","_this6","hideDecadeNav","todayYMD","highlightToday","for","role","tabindex","click","labelSelectedDate","navScope","navProps","shiftV","navPrevProps","flipH","navNextProps","$prevDecadeIcon","normalizeSlot","$prevYearIcon","$prevMonthIcon","$thisMonthIcon","$nextMonthIcon","$nextYearIcon","$nextDecadeIcon","makeNavBtn","content","btnDisabled","shortcut","$nav","$gridCaption","$gridWeekDays","idx","$gridBody","$cells","dIndex","isSelected","isActive","isToday","idCell","$btn","active","pointerEvents","$gridHelp","$grid","keydown","$slot","$widget","lang","bvAttrs","calendarProps","formBtnLabelControlProps","calendarWidth","closeButton","closeButtonVariant","dark","labelCloseButton","labelResetButton","labelTodayButton","noCloseOnSelect","resetButton","resetButtonVariant","resetValue","todayButton","todayButtonVariant","BFormDatepicker","localYMD","isVisible","localLocale","formattedValue","calendarYM","computedLang","computedResetValue","control","setAndClose","onSelected","onContext","ctx","onTodayButton","onResetButton","onCloseButton","onShow","onShown","onHidden","defaultButtonFn","isHovered","hasFocus","$createElement","$props","size","variant","_label","_label2","$calendar","menuClass","shown","_vm","_h","_c","_self","itemsOptions","$event","preventDefault","staticStyle","rawName","expression","addOrder","_v","$t","$i18n","model","invoiceData","$$v","$set","_l","item","refInFor","$store","appConfig","updateItemForm","vadeNames","option","productname","unitid","qty","$forceUpdate","cost","removeItem","addNewItemInItemForm","staticRenderFns","components","BCol","BButton","BForm","BFormInput","vSelect","Logo","Ripple","beforeRouteEnter","meta","breadcrumb","VueI18n","params","lastSelected","clients","itemFormBlankItem","karisim","kod","price","vade1","vade2","vade3","vade4","client","orderdate","duedate","salesPerson","note","paymentMethod","prices","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_yield$_this$$http$ge","_context","prev","$http","get","headers","culture","getUserData","cultureinfo","plantid","app","selectedPlantId","sent","resultdata","JSON","parse","stringify","x","initTrHeight","window","addEventListener","destroyed","removeEventListener","_callee2","values","order","response","_context2","productid","orderamount","parseInt","orderunitid","termid","parseFloat","additionalinfo","post","status","$router","go","overflow","row","offsetHeight","sira","selectedPrices","component","transition","setProps","rippler","bg","color","zIndex","targetBorder","getComputedStyle","rect","getBoundingClientRect","offsetWidth","dx","clientX","dy","clientY","maxX","maxY","radius","sqrt","ripple","createElement","rippleContainer","className","marginTop","marginLeft","borderRadius","position","backgroundColor","storedTargetPosition","clearRipple","parentNode","removeChild","clearPosition","childNodes","appendChild","borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius","isNaN","PROP","MOUSEENTER","MOUSELEAVE","createListener","listener","fn","_ref$value","hasListener","handlerChanged","VBHover","dropdown","buttonOnly","buttonVariant","BVFormBtnLabelControl","idButton","idLabel","idMenu","idWrapper","computedDir","setFocus","handleHover","hovered","invalid","btnScope","opened","$button","mousedown","hasNormalizedSlot","scale","$hidden","$menu","$label","stateClass","sizeFormClass"],"mappings":"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","file":"js/chunk-4049ca0c.d08520b7.js","sourcesContent":["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};","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./orderAdd.vue?vue&type=style&index=0&id=6052bd1c&prod&lang=scss\"","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 { Vue, mergeData } from '../../vue';\nimport { NAME_CARD_FOOTER } from '../../constants/components';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { htmlOrText } from '../../utils/html';\nimport { sortKeys } from '../../utils/object';\nimport { copyProps, makeProp, makePropsConfigurable, prefixPropName } from '../../utils/props';\nimport { props as BCardProps } from '../../mixins/card'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, copyProps(BCardProps, prefixPropName.bind(null, 'footer'))), {}, {\n footer: makeProp(PROP_TYPE_STRING),\n footerClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n footerHtml: makeProp(PROP_TYPE_STRING)\n})), NAME_CARD_FOOTER); // --- Main component ---\n// @vue/component\n\nexport var BCardFooter = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_FOOTER,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _ref2;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var footerBgVariant = props.footerBgVariant,\n footerBorderVariant = props.footerBorderVariant,\n footerTextVariant = props.footerTextVariant;\n return h(props.footerTag, mergeData(data, {\n staticClass: 'card-footer',\n class: [props.footerClass, (_ref2 = {}, _defineProperty(_ref2, \"bg-\".concat(footerBgVariant), footerBgVariant), _defineProperty(_ref2, \"border-\".concat(footerBorderVariant), footerBorderVariant), _defineProperty(_ref2, \"text-\".concat(footerTextVariant), footerTextVariant), _ref2)],\n domProps: children ? {} : htmlOrText(props.footerHtml, props.footer)\n }), children);\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 { Vue, mergeData } from '../../vue';\nimport { NAME_CARD_IMG } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN } from '../../constants/props';\nimport { pick, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { props as BImgProps } from '../image/img'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, pick(BImgProps, ['src', 'alt', 'width', 'height', 'left', 'right'])), {}, {\n bottom: makeProp(PROP_TYPE_BOOLEAN, false),\n end: makeProp(PROP_TYPE_BOOLEAN, false),\n start: makeProp(PROP_TYPE_BOOLEAN, false),\n top: makeProp(PROP_TYPE_BOOLEAN, false)\n})), NAME_CARD_IMG); // --- Main component ---\n// @vue/component\n\nexport var BCardImg = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_IMG,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data;\n var src = props.src,\n alt = props.alt,\n width = props.width,\n height = props.height;\n var baseClass = 'card-img';\n\n if (props.top) {\n baseClass += '-top';\n } else if (props.right || props.end) {\n baseClass += '-right';\n } else if (props.bottom) {\n baseClass += '-bottom';\n } else if (props.left || props.start) {\n baseClass += '-left';\n }\n\n return h('img', mergeData(data, {\n class: baseClass,\n attrs: {\n src: src,\n alt: alt,\n width: width,\n height: height\n }\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\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_CARD } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_DEFAULT, SLOT_NAME_FOOTER, SLOT_NAME_HEADER } from '../../constants/slots';\nimport { htmlOrText } from '../../utils/html';\nimport { hasNormalizedSlot, normalizeSlot } from '../../utils/normalize-slot';\nimport { sortKeys } from '../../utils/object';\nimport { copyProps, makeProp, makePropsConfigurable, pluckProps, prefixPropName, unprefixPropName } from '../../utils/props';\nimport { props as cardProps } from '../../mixins/card';\nimport { BCardBody, props as BCardBodyProps } from './card-body';\nimport { BCardHeader, props as BCardHeaderProps } from './card-header';\nimport { BCardFooter, props as BCardFooterProps } from './card-footer';\nimport { BCardImg, props as BCardImgProps } from './card-img'; // --- Props ---\n\nvar cardImgProps = copyProps(BCardImgProps, prefixPropName.bind(null, 'img'));\ncardImgProps.imgSrc.required = false;\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, BCardBodyProps), BCardHeaderProps), BCardFooterProps), cardImgProps), cardProps), {}, {\n align: makeProp(PROP_TYPE_STRING),\n noBody: makeProp(PROP_TYPE_BOOLEAN, false)\n})), NAME_CARD); // --- Main component ---\n// @vue/component\n\nexport var BCard = /*#__PURE__*/Vue.extend({\n name: NAME_CARD,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _class;\n\n var props = _ref.props,\n data = _ref.data,\n slots = _ref.slots,\n scopedSlots = _ref.scopedSlots;\n var imgSrc = props.imgSrc,\n imgLeft = props.imgLeft,\n imgRight = props.imgRight,\n imgStart = props.imgStart,\n imgEnd = props.imgEnd,\n imgBottom = props.imgBottom,\n header = props.header,\n headerHtml = props.headerHtml,\n footer = props.footer,\n footerHtml = props.footerHtml,\n align = props.align,\n textVariant = props.textVariant,\n bgVariant = props.bgVariant,\n borderVariant = props.borderVariant;\n var $scopedSlots = scopedSlots || {};\n var $slots = slots();\n var slotScope = {};\n var $imgFirst = h();\n var $imgLast = h();\n\n if (imgSrc) {\n var $img = h(BCardImg, {\n props: pluckProps(cardImgProps, props, unprefixPropName.bind(null, 'img'))\n });\n\n if (imgBottom) {\n $imgLast = $img;\n } else {\n $imgFirst = $img;\n }\n }\n\n var $header = h();\n var hasHeaderSlot = hasNormalizedSlot(SLOT_NAME_HEADER, $scopedSlots, $slots);\n\n if (hasHeaderSlot || header || headerHtml) {\n $header = h(BCardHeader, {\n props: pluckProps(BCardHeaderProps, props),\n domProps: hasHeaderSlot ? {} : htmlOrText(headerHtml, header)\n }, normalizeSlot(SLOT_NAME_HEADER, slotScope, $scopedSlots, $slots));\n }\n\n var $content = normalizeSlot(SLOT_NAME_DEFAULT, slotScope, $scopedSlots, $slots); // Wrap content in `` when `noBody` prop set\n\n if (!props.noBody) {\n $content = h(BCardBody, {\n props: pluckProps(BCardBodyProps, props)\n }, $content); // When the `overlap` prop is set we need to wrap the `` and ``\n // into a relative positioned wrapper to don't distract a potential header or footer\n\n if (props.overlay && imgSrc) {\n $content = h('div', {\n staticClass: 'position-relative'\n }, [$imgFirst, $content, $imgLast]); // Reset image variables since they are already in the wrapper\n\n $imgFirst = h();\n $imgLast = h();\n }\n }\n\n var $footer = h();\n var hasFooterSlot = hasNormalizedSlot(SLOT_NAME_FOOTER, $scopedSlots, $slots);\n\n if (hasFooterSlot || footer || footerHtml) {\n $footer = h(BCardFooter, {\n props: pluckProps(BCardFooterProps, props),\n domProps: hasHeaderSlot ? {} : htmlOrText(footerHtml, footer)\n }, normalizeSlot(SLOT_NAME_FOOTER, slotScope, $scopedSlots, $slots));\n }\n\n return h(props.tag, mergeData(data, {\n staticClass: 'card',\n class: (_class = {\n 'flex-row': imgLeft || imgStart,\n 'flex-row-reverse': (imgRight || imgEnd) && !(imgLeft || imgStart)\n }, _defineProperty(_class, \"text-\".concat(align), align), _defineProperty(_class, \"bg-\".concat(bgVariant), bgVariant), _defineProperty(_class, \"border-\".concat(borderVariant), borderVariant), _defineProperty(_class, \"text-\".concat(textVariant), textVariant), _class)\n }), [$imgFirst, $header, $content, $footer, $imgLast]);\n }\n});","import { NAME_COLLAPSE } from '../../constants/components';\nimport { IS_BROWSER } from '../../constants/env';\nimport { EVENT_OPTIONS_PASSIVE } from '../../constants/events';\nimport { CODE_ENTER, CODE_SPACE } from '../../constants/key-codes';\nimport { RX_HASH, RX_HASH_ID, RX_SPACE_SPLIT } from '../../constants/regex';\nimport { arrayIncludes, concat } from '../../utils/array';\nimport { addClass, getAttr, hasAttr, isDisabled, isTag, removeAttr, removeClass, removeStyle, requestAF, setAttr, setStyle } from '../../utils/dom';\nimport { getRootActionEventName, getRootEventName, eventOn, eventOff } from '../../utils/events';\nimport { isString } from '../../utils/inspect';\nimport { looseEqual } from '../../utils/loose-equal';\nimport { keys } from '../../utils/object'; // --- Constants ---\n// Classes to apply to trigger element\n\nvar CLASS_BV_TOGGLE_COLLAPSED = 'collapsed';\nvar CLASS_BV_TOGGLE_NOT_COLLAPSED = 'not-collapsed'; // Property key for handler storage\n\nvar BV_BASE = '__BV_toggle'; // Root event listener property (Function)\n\nvar BV_TOGGLE_ROOT_HANDLER = \"\".concat(BV_BASE, \"_HANDLER__\"); // Trigger element click handler property (Function)\n\nvar BV_TOGGLE_CLICK_HANDLER = \"\".concat(BV_BASE, \"_CLICK__\"); // Target visibility state property (Boolean)\n\nvar BV_TOGGLE_STATE = \"\".concat(BV_BASE, \"_STATE__\"); // Target ID list property (Array)\n\nvar BV_TOGGLE_TARGETS = \"\".concat(BV_BASE, \"_TARGETS__\"); // Commonly used strings\n\nvar STRING_FALSE = 'false';\nvar STRING_TRUE = 'true'; // Commonly used attribute names\n\nvar ATTR_ARIA_CONTROLS = 'aria-controls';\nvar ATTR_ARIA_EXPANDED = 'aria-expanded';\nvar ATTR_ROLE = 'role';\nvar ATTR_TABINDEX = 'tabindex'; // Commonly used style properties\n\nvar STYLE_OVERFLOW_ANCHOR = 'overflow-anchor'; // Emitted control event for collapse (emitted to collapse)\n\nvar ROOT_ACTION_EVENT_NAME_TOGGLE = getRootActionEventName(NAME_COLLAPSE, 'toggle'); // Listen to event for toggle state update (emitted by collapse)\n\nvar ROOT_EVENT_NAME_STATE = getRootEventName(NAME_COLLAPSE, 'state'); // Private event emitted on `$root` to ensure the toggle state is always synced\n// Gets emitted even if the state of b-collapse has not changed\n// This event is NOT to be documented as people should not be using it\n\nvar ROOT_EVENT_NAME_SYNC_STATE = getRootEventName(NAME_COLLAPSE, 'sync-state'); // Private event we send to collapse to request state update sync event\n\nvar ROOT_ACTION_EVENT_NAME_REQUEST_STATE = getRootActionEventName(NAME_COLLAPSE, 'request-state');\nvar KEYDOWN_KEY_CODES = [CODE_ENTER, CODE_SPACE]; // --- Helper methods ---\n\nvar isNonStandardTag = function isNonStandardTag(el) {\n return !arrayIncludes(['button', 'a'], el.tagName.toLowerCase());\n};\n\nvar getTargets = function getTargets(_ref, el) {\n var modifiers = _ref.modifiers,\n arg = _ref.arg,\n value = _ref.value;\n // Any modifiers are considered target IDs\n var targets = keys(modifiers || {}); // If value is a string, split out individual targets (if space delimited)\n\n value = isString(value) ? value.split(RX_SPACE_SPLIT) : value; // Support target ID as link href (`href=\"#id\"`)\n\n if (isTag(el.tagName, 'a')) {\n var href = getAttr(el, 'href') || '';\n\n if (RX_HASH_ID.test(href)) {\n targets.push(href.replace(RX_HASH, ''));\n }\n } // Add ID from `arg` (if provided), and support value\n // as a single string ID or an array of string IDs\n // If `value` is not an array or string, then it gets filtered out\n\n\n concat(arg, value).forEach(function (t) {\n return isString(t) && targets.push(t);\n }); // Return only unique and truthy target IDs\n\n return targets.filter(function (t, index, arr) {\n return t && arr.indexOf(t) === index;\n });\n};\n\nvar removeClickListener = function removeClickListener(el) {\n var handler = el[BV_TOGGLE_CLICK_HANDLER];\n\n if (handler) {\n eventOff(el, 'click', handler, EVENT_OPTIONS_PASSIVE);\n eventOff(el, 'keydown', handler, EVENT_OPTIONS_PASSIVE);\n }\n\n el[BV_TOGGLE_CLICK_HANDLER] = null;\n};\n\nvar addClickListener = function addClickListener(el, vnode) {\n removeClickListener(el);\n\n if (vnode.context) {\n var handler = function handler(event) {\n if (!(event.type === 'keydown' && !arrayIncludes(KEYDOWN_KEY_CODES, event.keyCode)) && !isDisabled(el)) {\n var targets = el[BV_TOGGLE_TARGETS] || [];\n targets.forEach(function (target) {\n vnode.context.$root.$emit(ROOT_ACTION_EVENT_NAME_TOGGLE, target);\n });\n }\n };\n\n el[BV_TOGGLE_CLICK_HANDLER] = handler;\n eventOn(el, 'click', handler, EVENT_OPTIONS_PASSIVE);\n\n if (isNonStandardTag(el)) {\n eventOn(el, 'keydown', handler, EVENT_OPTIONS_PASSIVE);\n }\n }\n};\n\nvar removeRootListeners = function removeRootListeners(el, vnode) {\n if (el[BV_TOGGLE_ROOT_HANDLER] && vnode.context) {\n vnode.context.$root.$off([ROOT_EVENT_NAME_STATE, ROOT_EVENT_NAME_SYNC_STATE], el[BV_TOGGLE_ROOT_HANDLER]);\n }\n\n el[BV_TOGGLE_ROOT_HANDLER] = null;\n};\n\nvar addRootListeners = function addRootListeners(el, vnode) {\n removeRootListeners(el, vnode);\n\n if (vnode.context) {\n var handler = function handler(id, state) {\n // `state` will be `true` if target is expanded\n if (arrayIncludes(el[BV_TOGGLE_TARGETS] || [], id)) {\n // Set/Clear 'collapsed' visibility class state\n el[BV_TOGGLE_STATE] = state; // Set `aria-expanded` and class state on trigger element\n\n setToggleState(el, state);\n }\n };\n\n el[BV_TOGGLE_ROOT_HANDLER] = handler; // Listen for toggle state changes (public) and sync (private)\n\n vnode.context.$root.$on([ROOT_EVENT_NAME_STATE, ROOT_EVENT_NAME_SYNC_STATE], handler);\n }\n};\n\nvar setToggleState = function setToggleState(el, state) {\n // State refers to the visibility of the collapse/sidebar\n if (state) {\n removeClass(el, CLASS_BV_TOGGLE_COLLAPSED);\n addClass(el, CLASS_BV_TOGGLE_NOT_COLLAPSED);\n setAttr(el, ATTR_ARIA_EXPANDED, STRING_TRUE);\n } else {\n removeClass(el, CLASS_BV_TOGGLE_NOT_COLLAPSED);\n addClass(el, CLASS_BV_TOGGLE_COLLAPSED);\n setAttr(el, ATTR_ARIA_EXPANDED, STRING_FALSE);\n }\n}; // Reset and remove a property from the provided element\n\n\nvar resetProp = function resetProp(el, prop) {\n el[prop] = null;\n delete el[prop];\n}; // Handle directive updates\n\n\nvar handleUpdate = function handleUpdate(el, binding, vnode) {\n /* istanbul ignore next: should never happen */\n if (!IS_BROWSER || !vnode.context) {\n return;\n } // If element is not a button or link, we add `role=\"button\"`\n // and `tabindex=\"0\"` for accessibility reasons\n\n\n if (isNonStandardTag(el)) {\n if (!hasAttr(el, ATTR_ROLE)) {\n setAttr(el, ATTR_ROLE, 'button');\n }\n\n if (!hasAttr(el, ATTR_TABINDEX)) {\n setAttr(el, ATTR_TABINDEX, '0');\n }\n } // Ensure the collapse class and `aria-*` attributes persist\n // after element is updated (either by parent re-rendering\n // or changes to this element or its contents)\n\n\n setToggleState(el, el[BV_TOGGLE_STATE]); // Parse list of target IDs\n\n var targets = getTargets(binding, el); // Ensure the `aria-controls` hasn't been overwritten\n // or removed when vnode updates\n // Also ensure to set `overflow-anchor` to `none` to prevent\n // the browser's scroll anchoring behavior\n\n /* istanbul ignore else */\n\n if (targets.length > 0) {\n setAttr(el, ATTR_ARIA_CONTROLS, targets.join(' '));\n setStyle(el, STYLE_OVERFLOW_ANCHOR, 'none');\n } else {\n removeAttr(el, ATTR_ARIA_CONTROLS);\n removeStyle(el, STYLE_OVERFLOW_ANCHOR);\n } // Add/Update our click listener(s)\n // Wrap in a `requestAF()` to allow any previous\n // click handling to occur first\n\n\n requestAF(function () {\n addClickListener(el, vnode);\n }); // If targets array has changed, update\n\n if (!looseEqual(targets, el[BV_TOGGLE_TARGETS])) {\n // Update targets array to element storage\n el[BV_TOGGLE_TARGETS] = targets; // Ensure `aria-controls` is up to date\n // Request a state update from targets so that we can\n // ensure expanded state is correct (in most cases)\n\n targets.forEach(function (target) {\n vnode.context.$root.$emit(ROOT_ACTION_EVENT_NAME_REQUEST_STATE, target);\n });\n }\n};\n/*\n * Export our directive\n */\n\n\nexport var VBToggle = {\n bind: function bind(el, binding, vnode) {\n // State is initially collapsed until we receive a state event\n el[BV_TOGGLE_STATE] = false; // Assume no targets initially\n\n el[BV_TOGGLE_TARGETS] = []; // Add our root listeners\n\n addRootListeners(el, vnode); // Initial update of trigger\n\n handleUpdate(el, binding, vnode);\n },\n componentUpdated: handleUpdate,\n updated: handleUpdate,\n unbind: function unbind(el, binding, vnode) {\n removeClickListener(el); // Remove our $root listener\n\n removeRootListeners(el, vnode); // Reset custom props\n\n resetProp(el, BV_TOGGLE_ROOT_HANDLER);\n resetProp(el, BV_TOGGLE_CLICK_HANDLER);\n resetProp(el, BV_TOGGLE_STATE);\n resetProp(el, BV_TOGGLE_TARGETS); // Reset classes/attrs/styles\n\n removeClass(el, CLASS_BV_TOGGLE_COLLAPSED);\n removeClass(el, CLASS_BV_TOGGLE_NOT_COLLAPSED);\n removeAttr(el, ATTR_ARIA_EXPANDED);\n removeAttr(el, ATTR_ARIA_CONTROLS);\n removeAttr(el, ATTR_ROLE);\n removeStyle(el, STYLE_OVERFLOW_ANCHOR);\n }\n};","import { Vue, mergeData } from '../../vue';\nimport { NAME_CARD_TITLE } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { toString } from '../../utils/string'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n title: makeProp(PROP_TYPE_STRING),\n titleTag: makeProp(PROP_TYPE_STRING, 'h4')\n}, NAME_CARD_TITLE); // --- Main component ---\n// @vue/component\n\nexport var BCardTitle = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_TITLE,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h(props.titleTag, mergeData(data, {\n staticClass: 'card-title'\n }), children || toString(props.title));\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 { Vue, mergeData } from '../../vue';\nimport { NAME_CARD_BODY } from '../../constants/components';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN } from '../../constants/props';\nimport { sortKeys } from '../../utils/object';\nimport { copyProps, makeProp, makePropsConfigurable, pluckProps, prefixPropName } from '../../utils/props';\nimport { props as cardProps } from '../../mixins/card';\nimport { BCardTitle, props as titleProps } from './card-title';\nimport { BCardSubTitle, props as subTitleProps } from './card-sub-title'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, titleProps), subTitleProps), copyProps(cardProps, prefixPropName.bind(null, 'body'))), {}, {\n bodyClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n overlay: makeProp(PROP_TYPE_BOOLEAN, false)\n})), NAME_CARD_BODY); // --- Main component ---\n// @vue/component\n\nexport var BCardBody = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_BODY,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _ref2;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var bodyBgVariant = props.bodyBgVariant,\n bodyBorderVariant = props.bodyBorderVariant,\n bodyTextVariant = props.bodyTextVariant;\n var $title = h();\n\n if (props.title) {\n $title = h(BCardTitle, {\n props: pluckProps(titleProps, props)\n });\n }\n\n var $subTitle = h();\n\n if (props.subTitle) {\n $subTitle = h(BCardSubTitle, {\n props: pluckProps(subTitleProps, props),\n class: ['mb-2']\n });\n }\n\n return h(props.bodyTag, mergeData(data, {\n staticClass: 'card-body',\n class: [(_ref2 = {\n 'card-img-overlay': props.overlay\n }, _defineProperty(_ref2, \"bg-\".concat(bodyBgVariant), bodyBgVariant), _defineProperty(_ref2, \"border-\".concat(bodyBorderVariant), bodyBorderVariant), _defineProperty(_ref2, \"text-\".concat(bodyTextVariant), bodyTextVariant), _ref2), props.bodyClass]\n }), [$title, $subTitle, children]);\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 var PLACEMENT_TOP_START = 'top-start';\nexport var PLACEMENT_TOP_END = 'top-end';\nexport var PLACEMENT_BOTTOM_START = 'bottom-start';\nexport var PLACEMENT_BOTTOM_END = 'bottom-end';\nexport var PLACEMENT_RIGHT_START = 'right-start';\nexport var PLACEMENT_RIGHT_END = 'right-end';\nexport var PLACEMENT_LEFT_START = 'left-start';\nexport var PLACEMENT_LEFT_END = 'left-end';","import { Vue } from '../vue';\nimport { EVENT_OPTIONS_NO_CAPTURE } from '../constants/events';\nimport { contains } from '../utils/dom';\nimport { eventOn, eventOff } from '../utils/events'; // @vue/component\n\nexport var clickOutMixin = Vue.extend({\n data: function data() {\n return {\n listenForClickOut: false\n };\n },\n watch: {\n listenForClickOut: function listenForClickOut(newValue, oldValue) {\n if (newValue !== oldValue) {\n eventOff(this.clickOutElement, this.clickOutEventName, this._clickOutHandler, EVENT_OPTIONS_NO_CAPTURE);\n\n if (newValue) {\n eventOn(this.clickOutElement, this.clickOutEventName, this._clickOutHandler, EVENT_OPTIONS_NO_CAPTURE);\n }\n }\n }\n },\n beforeCreate: function beforeCreate() {\n // Declare non-reactive properties\n this.clickOutElement = null;\n this.clickOutEventName = null;\n },\n mounted: function mounted() {\n if (!this.clickOutElement) {\n this.clickOutElement = document;\n }\n\n if (!this.clickOutEventName) {\n this.clickOutEventName = 'click';\n }\n\n if (this.listenForClickOut) {\n eventOn(this.clickOutElement, this.clickOutEventName, this._clickOutHandler, EVENT_OPTIONS_NO_CAPTURE);\n }\n },\n beforeDestroy: function beforeDestroy() {\n eventOff(this.clickOutElement, this.clickOutEventName, this._clickOutHandler, EVENT_OPTIONS_NO_CAPTURE);\n },\n methods: {\n isClickOut: function isClickOut(event) {\n return !contains(this.$el, event.target);\n },\n _clickOutHandler: function _clickOutHandler(event) {\n if (this.clickOutHandler && this.isClickOut(event)) {\n this.clickOutHandler(event);\n }\n }\n }\n});","import { Vue } from '../vue';\nimport { EVENT_OPTIONS_NO_CAPTURE } from '../constants/events';\nimport { eventOn, eventOff } from '../utils/events'; // @vue/component\n\nexport var focusInMixin = Vue.extend({\n data: function data() {\n return {\n listenForFocusIn: false\n };\n },\n watch: {\n listenForFocusIn: function listenForFocusIn(newValue, oldValue) {\n if (newValue !== oldValue) {\n eventOff(this.focusInElement, 'focusin', this._focusInHandler, EVENT_OPTIONS_NO_CAPTURE);\n\n if (newValue) {\n eventOn(this.focusInElement, 'focusin', this._focusInHandler, EVENT_OPTIONS_NO_CAPTURE);\n }\n }\n }\n },\n beforeCreate: function beforeCreate() {\n // Declare non-reactive properties\n this.focusInElement = null;\n },\n mounted: function mounted() {\n if (!this.focusInElement) {\n this.focusInElement = document;\n }\n\n if (this.listenForFocusIn) {\n eventOn(this.focusInElement, 'focusin', this._focusInHandler, EVENT_OPTIONS_NO_CAPTURE);\n }\n },\n beforeDestroy: function beforeDestroy() {\n eventOff(this.focusInElement, 'focusin', this._focusInHandler, EVENT_OPTIONS_NO_CAPTURE);\n },\n methods: {\n _focusInHandler: function _focusInHandler(event) {\n if (this.focusInHandler) {\n this.focusInHandler(event);\n }\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\nimport Popper from 'popper.js';\nimport { Vue } from '../vue';\nimport { NAME_DROPDOWN } from '../constants/components';\nimport { EVENT_NAME_CLICK, EVENT_NAME_HIDDEN, EVENT_NAME_HIDE, EVENT_NAME_SHOW, EVENT_NAME_SHOWN, EVENT_NAME_TOGGLE } from '../constants/events';\nimport { CODE_DOWN, CODE_ENTER, CODE_ESC, CODE_SPACE, CODE_UP } from '../constants/key-codes';\nimport { PLACEMENT_TOP_START, PLACEMENT_TOP_END, PLACEMENT_BOTTOM_START, PLACEMENT_BOTTOM_END, PLACEMENT_RIGHT_START, PLACEMENT_LEFT_START } from '../constants/popper';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER_STRING, PROP_TYPE_OBJECT, PROP_TYPE_STRING } from '../constants/props';\nimport { HTMLElement } from '../constants/safe-types';\nimport { BvEvent } from '../utils/bv-event.class';\nimport { attemptFocus, closest, contains, isVisible, requestAF, selectAll } from '../utils/dom';\nimport { getRootEventName, stopEvent } from '../utils/events';\nimport { isNull } from '../utils/inspect';\nimport { mergeDeep, sortKeys } from '../utils/object';\nimport { makeProp, makePropsConfigurable } from '../utils/props';\nimport { warn } from '../utils/warn';\nimport { clickOutMixin } from './click-out';\nimport { focusInMixin } from './focus-in';\nimport { idMixin, props as idProps } from './id';\nimport { listenOnRootMixin } from './listen-on-root'; // --- Constants ---\n\nvar ROOT_EVENT_NAME_SHOWN = getRootEventName(NAME_DROPDOWN, EVENT_NAME_SHOWN);\nvar ROOT_EVENT_NAME_HIDDEN = getRootEventName(NAME_DROPDOWN, EVENT_NAME_HIDDEN); // CSS selectors\n\nvar SELECTOR_FORM_CHILD = '.dropdown form';\nvar SELECTOR_ITEM = ['.dropdown-item', '.b-dropdown-form'].map(function (selector) {\n return \"\".concat(selector, \":not(.disabled):not([disabled])\");\n}).join(', '); // --- Helper methods ---\n// Return an array of visible items\n\nvar filterVisibles = function filterVisibles(els) {\n return (els || []).filter(isVisible);\n}; // --- Props ---\n\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, idProps), {}, {\n // String: `scrollParent`, `window` or `viewport`\n // HTMLElement: HTML Element reference\n boundary: makeProp([HTMLElement, PROP_TYPE_STRING], 'scrollParent'),\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n // Place left if possible\n dropleft: makeProp(PROP_TYPE_BOOLEAN, false),\n // Place right if possible\n dropright: makeProp(PROP_TYPE_BOOLEAN, false),\n // Place on top if possible\n dropup: makeProp(PROP_TYPE_BOOLEAN, false),\n // Disable auto-flipping of menu from bottom <=> top\n noFlip: makeProp(PROP_TYPE_BOOLEAN, false),\n // Number of pixels or a CSS unit value to offset menu\n // (i.e. `1px`, `1rem`, etc.)\n offset: makeProp(PROP_TYPE_NUMBER_STRING, 0),\n popperOpts: makeProp(PROP_TYPE_OBJECT, {}),\n // Right align menu (default is left align)\n right: makeProp(PROP_TYPE_BOOLEAN, false)\n})), NAME_DROPDOWN); // --- Mixin ---\n// @vue/component\n\nexport var dropdownMixin = Vue.extend({\n mixins: [idMixin, listenOnRootMixin, clickOutMixin, focusInMixin],\n provide: function provide() {\n return {\n bvDropdown: this\n };\n },\n inject: {\n bvNavbar: {\n default: null\n }\n },\n props: props,\n data: function data() {\n return {\n visible: false,\n visibleChangePrevented: false\n };\n },\n computed: {\n inNavbar: function inNavbar() {\n return !isNull(this.bvNavbar);\n },\n toggler: function toggler() {\n var toggle = this.$refs.toggle;\n return toggle ? toggle.$el || toggle : null;\n },\n directionClass: function directionClass() {\n if (this.dropup) {\n return 'dropup';\n } else if (this.dropright) {\n return 'dropright';\n } else if (this.dropleft) {\n return 'dropleft';\n }\n\n return '';\n },\n boundaryClass: function boundaryClass() {\n // Position `static` is needed to allow menu to \"breakout\" of the `scrollParent`\n // boundaries when boundary is anything other than `scrollParent`\n // See: https://github.com/twbs/bootstrap/issues/24251#issuecomment-341413786\n return this.boundary !== 'scrollParent' && !this.inNavbar ? 'position-static' : '';\n }\n },\n watch: {\n visible: function visible(newValue, oldValue) {\n if (this.visibleChangePrevented) {\n this.visibleChangePrevented = false;\n return;\n }\n\n if (newValue !== oldValue) {\n var eventName = newValue ? EVENT_NAME_SHOW : EVENT_NAME_HIDE;\n var bvEvent = new BvEvent(eventName, {\n cancelable: true,\n vueTarget: this,\n target: this.$refs.menu,\n relatedTarget: null,\n componentId: this.safeId ? this.safeId() : this.id || null\n });\n this.emitEvent(bvEvent);\n\n if (bvEvent.defaultPrevented) {\n // Reset value and exit if canceled\n this.visibleChangePrevented = true;\n this.visible = oldValue; // Just in case a child element triggered `this.hide(true)`\n\n this.$off(EVENT_NAME_HIDDEN, this.focusToggler);\n return;\n }\n\n if (newValue) {\n this.showMenu();\n } else {\n this.hideMenu();\n }\n }\n },\n disabled: function disabled(newValue, oldValue) {\n if (newValue !== oldValue && newValue && this.visible) {\n // Hide dropdown if disabled changes to true\n this.visible = false;\n }\n }\n },\n created: function created() {\n // Create private non-reactive props\n this.$_popper = null;\n this.$_hideTimeout = null;\n },\n\n /* istanbul ignore next */\n deactivated: function deactivated() {\n // In case we are inside a ``\n this.visible = false;\n this.whileOpenListen(false);\n this.destroyPopper();\n },\n beforeDestroy: function beforeDestroy() {\n this.visible = false;\n this.whileOpenListen(false);\n this.destroyPopper();\n this.clearHideTimeout();\n },\n methods: {\n // Event emitter\n emitEvent: function emitEvent(bvEvent) {\n var type = bvEvent.type;\n this.emitOnRoot(getRootEventName(NAME_DROPDOWN, type), bvEvent);\n this.$emit(type, bvEvent);\n },\n showMenu: function showMenu() {\n var _this = this;\n\n if (this.disabled) {\n /* istanbul ignore next */\n return;\n } // Only instantiate Popper.js when dropdown is not in ``\n\n\n if (!this.inNavbar) {\n if (typeof Popper === 'undefined') {\n /* istanbul ignore next */\n warn('Popper.js not found. Falling back to CSS positioning', NAME_DROPDOWN);\n } else {\n // For dropup with alignment we use the parent element as popper container\n var el = this.dropup && this.right || this.split ? this.$el : this.$refs.toggle; // Make sure we have a reference to an element, not a component!\n\n el = el.$el || el; // Instantiate Popper.js\n\n this.createPopper(el);\n }\n } // Ensure other menus are closed\n\n\n this.emitOnRoot(ROOT_EVENT_NAME_SHOWN, this); // Enable listeners\n\n this.whileOpenListen(true); // Wrap in `$nextTick()` to ensure menu is fully rendered/shown\n\n this.$nextTick(function () {\n // Focus on the menu container on show\n _this.focusMenu(); // Emit the shown event\n\n\n _this.$emit(EVENT_NAME_SHOWN);\n });\n },\n hideMenu: function hideMenu() {\n this.whileOpenListen(false);\n this.emitOnRoot(ROOT_EVENT_NAME_HIDDEN, this);\n this.$emit(EVENT_NAME_HIDDEN);\n this.destroyPopper();\n },\n createPopper: function createPopper(element) {\n this.destroyPopper();\n this.$_popper = new Popper(element, this.$refs.menu, this.getPopperConfig());\n },\n // Ensure popper event listeners are removed cleanly\n destroyPopper: function destroyPopper() {\n this.$_popper && this.$_popper.destroy();\n this.$_popper = null;\n },\n // Instructs popper to re-computes the dropdown position\n // useful if the content changes size\n updatePopper: function updatePopper() {\n try {\n this.$_popper.scheduleUpdate();\n } catch (_unused) {}\n },\n clearHideTimeout: function clearHideTimeout() {\n clearTimeout(this.$_hideTimeout);\n this.$_hideTimeout = null;\n },\n getPopperConfig: function getPopperConfig() {\n var placement = PLACEMENT_BOTTOM_START;\n\n if (this.dropup) {\n placement = this.right ? PLACEMENT_TOP_END : PLACEMENT_TOP_START;\n } else if (this.dropright) {\n placement = PLACEMENT_RIGHT_START;\n } else if (this.dropleft) {\n placement = PLACEMENT_LEFT_START;\n } else if (this.right) {\n placement = PLACEMENT_BOTTOM_END;\n }\n\n var popperConfig = {\n placement: placement,\n modifiers: {\n offset: {\n offset: this.offset || 0\n },\n flip: {\n enabled: !this.noFlip\n }\n }\n };\n var boundariesElement = this.boundary;\n\n if (boundariesElement) {\n popperConfig.modifiers.preventOverflow = {\n boundariesElement: boundariesElement\n };\n }\n\n return mergeDeep(popperConfig, this.popperOpts || {});\n },\n // Turn listeners on/off while open\n whileOpenListen: function whileOpenListen(isOpen) {\n // Hide the dropdown when clicked outside\n this.listenForClickOut = isOpen; // Hide the dropdown when it loses focus\n\n this.listenForFocusIn = isOpen; // Hide the dropdown when another dropdown is opened\n\n var method = isOpen ? '$on' : '$off';\n this.$root[method](ROOT_EVENT_NAME_SHOWN, this.rootCloseListener);\n },\n rootCloseListener: function rootCloseListener(vm) {\n if (vm !== this) {\n this.visible = false;\n }\n },\n // Public method to show dropdown\n show: function show() {\n var _this2 = this;\n\n if (this.disabled) {\n return;\n } // Wrap in a `requestAF()` to allow any previous\n // click handling to occur first\n\n\n requestAF(function () {\n _this2.visible = true;\n });\n },\n // Public method to hide dropdown\n hide: function hide() {\n var refocus = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n /* istanbul ignore next */\n if (this.disabled) {\n return;\n }\n\n this.visible = false;\n\n if (refocus) {\n // Child element is closing the dropdown on click\n this.$once(EVENT_NAME_HIDDEN, this.focusToggler);\n }\n },\n // Called only by a button that toggles the menu\n toggle: function toggle(event) {\n event = event || {}; // Early exit when not a click event or ENTER, SPACE or DOWN were pressed\n\n var _event = event,\n type = _event.type,\n keyCode = _event.keyCode;\n\n if (type !== 'click' && !(type === 'keydown' && [CODE_ENTER, CODE_SPACE, CODE_DOWN].indexOf(keyCode) !== -1)) {\n /* istanbul ignore next */\n return;\n }\n /* istanbul ignore next */\n\n\n if (this.disabled) {\n this.visible = false;\n return;\n }\n\n this.$emit(EVENT_NAME_TOGGLE, event);\n stopEvent(event); // Toggle visibility\n\n if (this.visible) {\n this.hide(true);\n } else {\n this.show();\n }\n },\n // Mousedown handler for the toggle\n\n /* istanbul ignore next */\n onMousedown: function onMousedown(event) {\n // We prevent the 'mousedown' event for the toggle to stop the\n // 'focusin' event from being fired\n // The event would otherwise be picked up by the global 'focusin'\n // listener and there is no cross-browser solution to detect it\n // relates to the toggle click\n // The 'click' event will still be fired and we handle closing\n // other dropdowns there too\n // See https://github.com/bootstrap-vue/bootstrap-vue/issues/4328\n stopEvent(event, {\n propagation: false\n });\n },\n // Called from dropdown menu context\n onKeydown: function onKeydown(event) {\n var keyCode = event.keyCode;\n\n if (keyCode === CODE_ESC) {\n // Close on ESC\n this.onEsc(event);\n } else if (keyCode === CODE_DOWN) {\n // Down Arrow\n this.focusNext(event, false);\n } else if (keyCode === CODE_UP) {\n // Up Arrow\n this.focusNext(event, true);\n }\n },\n // If user presses ESC, close the menu\n onEsc: function onEsc(event) {\n if (this.visible) {\n this.visible = false;\n stopEvent(event); // Return focus to original trigger button\n\n this.$once(EVENT_NAME_HIDDEN, this.focusToggler);\n }\n },\n // Called only in split button mode, for the split button\n onSplitClick: function onSplitClick(event) {\n /* istanbul ignore next */\n if (this.disabled) {\n this.visible = false;\n return;\n }\n\n this.$emit(EVENT_NAME_CLICK, event);\n },\n // Shared hide handler between click-out and focus-in events\n hideHandler: function hideHandler(event) {\n var _this3 = this;\n\n var target = event.target;\n\n if (this.visible && !contains(this.$refs.menu, target) && !contains(this.toggler, target)) {\n this.clearHideTimeout();\n this.$_hideTimeout = setTimeout(function () {\n return _this3.hide();\n }, this.inNavbar ? 300 : 0);\n }\n },\n // Document click-out listener\n clickOutHandler: function clickOutHandler(event) {\n this.hideHandler(event);\n },\n // Document focus-in listener\n focusInHandler: function focusInHandler(event) {\n this.hideHandler(event);\n },\n // Keyboard nav\n focusNext: function focusNext(event, up) {\n var _this4 = this;\n\n // Ignore key up/down on form elements\n var target = event.target;\n\n if (!this.visible || event && closest(SELECTOR_FORM_CHILD, target)) {\n /* istanbul ignore next: should never happen */\n return;\n }\n\n stopEvent(event);\n this.$nextTick(function () {\n var items = _this4.getItems();\n\n if (items.length < 1) {\n /* istanbul ignore next: should never happen */\n return;\n }\n\n var index = items.indexOf(target);\n\n if (up && index > 0) {\n index--;\n } else if (!up && index < items.length - 1) {\n index++;\n }\n\n if (index < 0) {\n /* istanbul ignore next: should never happen */\n index = 0;\n }\n\n _this4.focusItem(index, items);\n });\n },\n focusItem: function focusItem(index, items) {\n var el = items.find(function (el, i) {\n return i === index;\n });\n attemptFocus(el);\n },\n getItems: function getItems() {\n // Get all items\n return filterVisibles(selectAll(SELECTOR_ITEM, this.$refs.menu));\n },\n focusMenu: function focusMenu() {\n attemptFocus(this.$refs.menu);\n },\n focusToggler: function focusToggler() {\n var _this5 = this;\n\n this.$nextTick(function () {\n attemptFocus(_this5.toggler);\n });\n }\n }\n});","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 _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n// v-b-visible\n// Private visibility check directive\n// Based on IntersectionObserver\n//\n// Usage:\n// v-b-visibility..=\"\"\n//\n// Value:\n// : method to be called when visibility state changes, receives one arg:\n// true: element is visible\n// false: element is not visible\n// null: IntersectionObserver not supported\n//\n// Modifiers:\n// : a positive decimal value of pixels away from viewport edge\n// before being considered \"visible\". default is 0\n// : keyword 'once', meaning when the element becomes visible and\n// callback is called observation/notification will stop.\n//\n// When used in a render function:\n// export default {\n// directives: { 'b-visible': VBVisible },\n// render(h) {\n// h(\n// 'div',\n// {\n// directives: [\n// { name: 'b-visible', value=this.callback, modifiers: { '123':true, 'once':true } }\n// ]\n// }\n// )\n// }\nimport { RX_DIGITS } from '../../constants/regex';\nimport { requestAF } from '../../utils/dom';\nimport { isFunction } from '../../utils/inspect';\nimport { looseEqual } from '../../utils/loose-equal';\nimport { clone, keys } from '../../utils/object';\nvar OBSERVER_PROP_NAME = '__bv__visibility_observer';\n\nvar VisibilityObserver = /*#__PURE__*/function () {\n function VisibilityObserver(el, options, vnode) {\n _classCallCheck(this, VisibilityObserver);\n\n this.el = el;\n this.callback = options.callback;\n this.margin = options.margin || 0;\n this.once = options.once || false;\n this.observer = null;\n this.visible = undefined;\n this.doneOnce = false; // Create the observer instance (if possible)\n\n this.createObserver(vnode);\n }\n\n _createClass(VisibilityObserver, [{\n key: \"createObserver\",\n value: function createObserver(vnode) {\n var _this = this;\n\n // Remove any previous observer\n if (this.observer) {\n /* istanbul ignore next */\n this.stop();\n } // Should only be called once and `callback` prop should be a function\n\n\n if (this.doneOnce || !isFunction(this.callback)) {\n /* istanbul ignore next */\n return;\n } // Create the observer instance\n\n\n try {\n // Future: Possibly add in other modifiers for left/right/top/bottom\n // offsets, root element reference, and thresholds\n this.observer = new IntersectionObserver(this.handler.bind(this), {\n // `null` = 'viewport'\n root: null,\n // Pixels away from view port to consider \"visible\"\n rootMargin: this.margin,\n // Intersection ratio of el and root (as a value from 0 to 1)\n threshold: 0\n });\n } catch (_unused) {\n // No IntersectionObserver support, so just stop trying to observe\n this.doneOnce = true;\n this.observer = undefined;\n this.callback(null);\n return;\n } // Start observing in a `$nextTick()` (to allow DOM to complete rendering)\n\n /* istanbul ignore next: IntersectionObserver not supported in JSDOM */\n\n\n vnode.context.$nextTick(function () {\n requestAF(function () {\n // Placed in an `if` just in case we were destroyed before\n // this `requestAnimationFrame` runs\n if (_this.observer) {\n _this.observer.observe(_this.el);\n }\n });\n });\n }\n /* istanbul ignore next */\n\n }, {\n key: \"handler\",\n value: function handler(entries) {\n var entry = entries ? entries[0] : {};\n var isIntersecting = Boolean(entry.isIntersecting || entry.intersectionRatio > 0.0);\n\n if (isIntersecting !== this.visible) {\n this.visible = isIntersecting;\n this.callback(isIntersecting);\n\n if (this.once && this.visible) {\n this.doneOnce = true;\n this.stop();\n }\n }\n }\n }, {\n key: \"stop\",\n value: function stop() {\n /* istanbul ignore next */\n this.observer && this.observer.disconnect();\n this.observer = null;\n }\n }]);\n\n return VisibilityObserver;\n}();\n\nvar destroy = function destroy(el) {\n var observer = el[OBSERVER_PROP_NAME];\n\n if (observer && observer.stop) {\n observer.stop();\n }\n\n delete el[OBSERVER_PROP_NAME];\n};\n\nvar bind = function bind(el, _ref, vnode) {\n var value = _ref.value,\n modifiers = _ref.modifiers;\n // `value` is the callback function\n var options = {\n margin: '0px',\n once: false,\n callback: value\n }; // Parse modifiers\n\n keys(modifiers).forEach(function (mod) {\n /* istanbul ignore else: Until is switched to use this directive */\n if (RX_DIGITS.test(mod)) {\n options.margin = \"\".concat(mod, \"px\");\n } else if (mod.toLowerCase() === 'once') {\n options.once = true;\n }\n }); // Destroy any previous observer\n\n destroy(el); // Create new observer\n\n el[OBSERVER_PROP_NAME] = new VisibilityObserver(el, options, vnode); // Store the current modifiers on the object (cloned)\n\n el[OBSERVER_PROP_NAME]._prevModifiers = clone(modifiers);\n}; // When the directive options may have been updated (or element)\n\n\nvar componentUpdated = function componentUpdated(el, _ref2, vnode) {\n var value = _ref2.value,\n oldValue = _ref2.oldValue,\n modifiers = _ref2.modifiers;\n // Compare value/oldValue and modifiers to see if anything has changed\n // and if so, destroy old observer and create new observer\n\n /* istanbul ignore next */\n modifiers = clone(modifiers);\n /* istanbul ignore next */\n\n if (el && (value !== oldValue || !el[OBSERVER_PROP_NAME] || !looseEqual(modifiers, el[OBSERVER_PROP_NAME]._prevModifiers))) {\n // Re-bind on element\n bind(el, {\n value: value,\n modifiers: modifiers\n }, vnode);\n }\n}; // When directive un-binds from element\n\n\nvar unbind = function unbind(el) {\n // Remove the observer\n destroy(el);\n}; // Export the directive\n\n\nexport var VBVisible = {\n bind: bind,\n componentUpdated: componentUpdated,\n unbind: unbind\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 { Vue } from '../../vue';\nimport { NAME_FORM_TEXTAREA } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { getCS, getStyle, isVisible, requestAF, setStyle } from '../../utils/dom';\nimport { isNull } from '../../utils/inspect';\nimport { mathCeil, mathMax, mathMin } from '../../utils/math';\nimport { toInteger, toFloat } from '../../utils/number';\nimport { sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { formControlMixin, props as formControlProps } from '../../mixins/form-control';\nimport { formSelectionMixin } from '../../mixins/form-selection';\nimport { formSizeMixin, props as formSizeProps } from '../../mixins/form-size';\nimport { formStateMixin, props as formStateProps } from '../../mixins/form-state';\nimport { formTextMixin, props as formTextProps } from '../../mixins/form-text';\nimport { formValidityMixin } from '../../mixins/form-validity';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { listenOnRootMixin } from '../../mixins/listen-on-root';\nimport { listenersMixin } from '../../mixins/listeners';\nimport { VBVisible } from '../../directives/visible/visible'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), formControlProps), formSizeProps), formStateProps), formTextProps), {}, {\n maxRows: makeProp(PROP_TYPE_NUMBER_STRING),\n // When in auto resize mode, disable shrinking to content height\n noAutoShrink: makeProp(PROP_TYPE_BOOLEAN, false),\n // Disable the resize handle of textarea\n noResize: makeProp(PROP_TYPE_BOOLEAN, false),\n rows: makeProp(PROP_TYPE_NUMBER_STRING, 2),\n // 'soft', 'hard' or 'off'\n // Browser default is 'soft'\n wrap: makeProp(PROP_TYPE_STRING, 'soft')\n})), NAME_FORM_TEXTAREA); // --- Main component ---\n// @vue/component\n\nexport var BFormTextarea = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_TEXTAREA,\n directives: {\n 'b-visible': VBVisible\n },\n // Mixin order is important!\n mixins: [listenersMixin, idMixin, listenOnRootMixin, formControlMixin, formSizeMixin, formStateMixin, formTextMixin, formSelectionMixin, formValidityMixin],\n props: props,\n data: function data() {\n return {\n heightInPx: null\n };\n },\n computed: {\n computedStyle: function computedStyle() {\n var styles = {\n // Setting `noResize` to true will disable the ability for the user to\n // manually resize the textarea. We also disable when in auto height mode\n resize: !this.computedRows || this.noResize ? 'none' : null\n };\n\n if (!this.computedRows) {\n // Conditionally set the computed CSS height when auto rows/height is enabled\n // We avoid setting the style to `null`, which can override user manual resize handle\n styles.height = this.heightInPx; // We always add a vertical scrollbar to the textarea when auto-height is\n // enabled so that the computed height calculation returns a stable value\n\n styles.overflowY = 'scroll';\n }\n\n return styles;\n },\n computedMinRows: function computedMinRows() {\n // Ensure rows is at least 2 and positive (2 is the native textarea value)\n // A value of 1 can cause issues in some browsers, and most browsers\n // only support 2 as the smallest value\n return mathMax(toInteger(this.rows, 2), 2);\n },\n computedMaxRows: function computedMaxRows() {\n return mathMax(this.computedMinRows, toInteger(this.maxRows, 0));\n },\n computedRows: function computedRows() {\n // This is used to set the attribute 'rows' on the textarea\n // If auto-height is enabled, then we return `null` as we use CSS to control height\n return this.computedMinRows === this.computedMaxRows ? this.computedMinRows : null;\n },\n computedAttrs: function computedAttrs() {\n var disabled = this.disabled,\n required = this.required;\n return {\n id: this.safeId(),\n name: this.name || null,\n form: this.form || null,\n disabled: disabled,\n placeholder: this.placeholder || null,\n required: required,\n autocomplete: this.autocomplete || null,\n readonly: this.readonly || this.plaintext,\n rows: this.computedRows,\n wrap: this.wrap || null,\n 'aria-required': this.required ? 'true' : null,\n 'aria-invalid': this.computedAriaInvalid\n };\n },\n computedListeners: function computedListeners() {\n return _objectSpread(_objectSpread({}, this.bvListeners), {}, {\n input: this.onInput,\n change: this.onChange,\n blur: this.onBlur\n });\n }\n },\n watch: {\n localValue: function localValue() {\n this.setHeight();\n }\n },\n mounted: function mounted() {\n this.setHeight();\n },\n methods: {\n // Called by intersection observer directive\n\n /* istanbul ignore next */\n visibleCallback: function visibleCallback(visible) {\n if (visible) {\n // We use a `$nextTick()` here just to make sure any\n // transitions or portalling have completed\n this.$nextTick(this.setHeight);\n }\n },\n setHeight: function setHeight() {\n var _this = this;\n\n this.$nextTick(function () {\n requestAF(function () {\n _this.heightInPx = _this.computeHeight();\n });\n });\n },\n\n /* istanbul ignore next: can't test getComputedStyle in JSDOM */\n computeHeight: function computeHeight() {\n if (this.$isServer || !isNull(this.computedRows)) {\n return null;\n }\n\n var el = this.$el; // Element must be visible (not hidden) and in document\n // Must be checked after above checks\n\n if (!isVisible(el)) {\n return null;\n } // Get current computed styles\n\n\n var computedStyle = getCS(el); // Height of one line of text in px\n\n var lineHeight = toFloat(computedStyle.lineHeight, 1); // Calculate height of border and padding\n\n var border = toFloat(computedStyle.borderTopWidth, 0) + toFloat(computedStyle.borderBottomWidth, 0);\n var padding = toFloat(computedStyle.paddingTop, 0) + toFloat(computedStyle.paddingBottom, 0); // Calculate offset\n\n var offset = border + padding; // Minimum height for min rows (which must be 2 rows or greater for cross-browser support)\n\n var minHeight = lineHeight * this.computedMinRows + offset; // Get the current style height (with `px` units)\n\n var oldHeight = getStyle(el, 'height') || computedStyle.height; // Probe scrollHeight by temporarily changing the height to `auto`\n\n setStyle(el, 'height', 'auto');\n var scrollHeight = el.scrollHeight; // Place the original old height back on the element, just in case `computedProp`\n // returns the same value as before\n\n setStyle(el, 'height', oldHeight); // Calculate content height in 'rows' (scrollHeight includes padding but not border)\n\n var contentRows = mathMax((scrollHeight - padding) / lineHeight, 2); // Calculate number of rows to display (limited within min/max rows)\n\n var rows = mathMin(mathMax(contentRows, this.computedMinRows), this.computedMaxRows); // Calculate the required height of the textarea including border and padding (in pixels)\n\n var height = mathMax(mathCeil(rows * lineHeight + offset), minHeight); // Computed height remains the larger of `oldHeight` and new `height`,\n // when height is in `sticky` mode (prop `no-auto-shrink` is true)\n\n if (this.noAutoShrink && toFloat(oldHeight, 0) > height) {\n return oldHeight;\n } // Return the new computed CSS height in px units\n\n\n return \"\".concat(height, \"px\");\n }\n },\n render: function render(h) {\n return h('textarea', {\n class: this.computedClass,\n style: this.computedStyle,\n directives: [{\n name: 'b-visible',\n value: this.visibleCallback,\n // If textarea is within 640px of viewport, consider it visible\n modifiers: {\n '640': true\n }\n }],\n attrs: this.computedAttrs,\n domProps: {\n value: this.localValue\n },\n on: this.computedListeners,\n ref: 'input'\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\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 toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar setArrayLength = require('../internals/array-set-length');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar createProperty = require('../internals/create-property');\nvar deletePropertyOrThrow = require('../internals/delete-property-or-throw');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// `Array.prototype.splice` method\n// https://tc39.es/ecma262/#sec-array.prototype.splice\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n splice: function splice(start, deleteCount /* , ...items */) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\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(toIntegerOrInfinity(deleteCount), 0), len - actualStart);\n }\n doesNotExceedSafeInteger(len + insertCount - actualDeleteCount);\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 deletePropertyOrThrow(O, to);\n }\n for (k = len; k > len - actualDeleteCount + insertCount; k--) deletePropertyOrThrow(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 deletePropertyOrThrow(O, to);\n }\n }\n for (k = 0; k < insertCount; k++) {\n O[k + actualStart] = arguments[k + 2];\n }\n setArrayLength(O, len - actualDeleteCount + insertCount);\n return A;\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\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_CARD_HEADER } from '../../constants/components';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { htmlOrText } from '../../utils/html';\nimport { sortKeys } from '../../utils/object';\nimport { copyProps, makeProp, makePropsConfigurable, prefixPropName } from '../../utils/props';\nimport { props as BCardProps } from '../../mixins/card'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, copyProps(BCardProps, prefixPropName.bind(null, 'header'))), {}, {\n header: makeProp(PROP_TYPE_STRING),\n headerClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n headerHtml: makeProp(PROP_TYPE_STRING)\n})), NAME_CARD_HEADER); // --- Main component ---\n// @vue/component\n\nexport var BCardHeader = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_HEADER,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _ref2;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var headerBgVariant = props.headerBgVariant,\n headerBorderVariant = props.headerBorderVariant,\n headerTextVariant = props.headerTextVariant;\n return h(props.headerTag, mergeData(data, {\n staticClass: 'card-header',\n class: [props.headerClass, (_ref2 = {}, _defineProperty(_ref2, \"bg-\".concat(headerBgVariant), headerBgVariant), _defineProperty(_ref2, \"border-\".concat(headerBorderVariant), headerBorderVariant), _defineProperty(_ref2, \"text-\".concat(headerTextVariant), headerTextVariant), _ref2)],\n domProps: children ? {} : htmlOrText(props.headerHtml, props.header)\n }), children);\n }\n});","import { Vue, mergeData } from '../../vue';\nimport { NAME_CARD_SUB_TITLE } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { toString } from '../../utils/string'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n subTitle: makeProp(PROP_TYPE_STRING),\n subTitleTag: makeProp(PROP_TYPE_STRING, 'h6'),\n subTitleTextVariant: makeProp(PROP_TYPE_STRING, 'muted')\n}, NAME_CARD_SUB_TITLE); // --- Main component ---\n// @vue/component\n\nexport var BCardSubTitle = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_SUB_TITLE,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h(props.subTitleTag, mergeData(data, {\n staticClass: 'card-subtitle',\n class: [props.subTitleTextVariant ? \"text-\".concat(props.subTitleTextVariant) : null]\n }), children || toString(props.subTitle));\n }\n});","export const heightTransition = {\n /*\n\n HowTo:\n 1. Add dynamic style to element and set style as `trHeight`\n 2. Set transition speed using `transition: 0.35s height;` <= you can use appropriate value;\n 3. Optionally you can set `overflow: hidden;` to hide element overflow while height is animated.\n 4. Set initial height using `trSetHeight` before any operation. [mounted hook is recommended - You can use `ref` for dynamic contents]\n 5. Toggle height using height operations 🍻\n 6. Toggle usage of $nextTick for height operations is any issue occur [experimental] 🔬\n\n */\n\n data() {\n return {\n trHeight: null,\n };\n },\n methods: {\n trAddHeight(val) {\n // Add height to existing height\n // Usage: Where new element is append or more height is added (e.g. list append)\n\n /* Assumes:\n - Height is assigned and is `String`\n - Incoming value is valid number in `Number` or `String`\n */\n const heightValue = Number(\n this.trHeight.substring(0, this.trHeight.length - 2)\n );\n this.trHeight = `${heightValue + Number(val)}px`;\n },\n trTrimHeight(val) {\n // Remove height from existing height\n // Usage: Where new element is removed or height is remove (e.g. list pop/ele remove)\n\n /* Assumes:\n - Height is assigned and is `String`\n - Incoming value is valid number in `Number` or `String`\n */\n const heightValue = Number(\n this.trHeight.substring(0, this.trHeight.length - 2)\n );\n this.trHeight = `${heightValue - Number(val)}px`;\n },\n trSetHeight(val) {\n // Set height\n // Usage: Mostly for assigning initial value from mounted hook\n\n /* Assumes:\n - Height is not assigned and what to assign for add/remove operation\n - What to set height at something for odd usage\n - Incoming value is valid number in `Number` or `String`\n */\n if (val === null) this.trHeight = \"auto\";\n else this.trHeight = `${Number(val)}px`;\n },\n },\n};\n\n// Ignore below for now. We will remove it when we add more transition in future.\nexport const _ = 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});","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 { NAME_CARD } from '../constants/components';\nimport { PROP_TYPE_STRING } from '../constants/props';\nimport { makeProp, makePropsConfigurable } from '../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n bgVariant: makeProp(PROP_TYPE_STRING),\n borderVariant: makeProp(PROP_TYPE_STRING),\n tag: makeProp(PROP_TYPE_STRING, 'div'),\n textVariant: makeProp(PROP_TYPE_STRING)\n}, NAME_CARD); // --- Mixin ---\n// @vue/component\n\nexport var cardMixin = Vue.extend({\n props: props\n});","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.itemsOptions.length)?_c('section',{staticClass:\"invoice-add-wrapper\"},[_c('b-row',{staticClass:\"invoice-add\"},[_c('b-col',{attrs:{\"cols\":\"12\",\"xl\":\"12\",\"md\":\"12\"}},[_c('b-form',{on:{\"submit\":function($event){$event.preventDefault();}}},[_c('b-card',{staticClass:\"invoice-preview-card\",attrs:{\"no-body\":\"\"}},[_c('b-card-body',{staticClass:\"invoice-padding pb-0\"},[_c('div',{staticClass:\"d-flex justify-content-between invoice-spacing mt-0\"},[_c('div',[_c('div',{staticClass:\"logo-wrapper position-relative\"},[_c('logo',{staticClass:\"position-absolute\",staticStyle:{\"top\":\"7px\"},attrs:{\"height\":\"75\"}})],1)]),_c('div',{staticClass:\"d-flex flex-column\"},[_c('div',{staticClass:\"d-flex justify-content-end invoice-spacing\"},[_c('b-button',{directives:[{name:\"ripple\",rawName:\"v-ripple.400\",value:('rgba(113, 102, 240, 0.15)'),expression:\"'rgba(113, 102, 240, 0.15)'\",modifiers:{\"400\":true}}],attrs:{\"variant\":\"outline-primary\"},on:{\"click\":_vm.addOrder}},[_c('feather-icon',{attrs:{\"icon\":\"SaveIcon\"}})],1)],1),_c('div',{staticClass:\"d-flex justify-content-between invoice-number-date flex-column flex-md-row\"},[_c('div',{staticClass:\"d-flex align-items-start mb-2 mr-md-1\"},[_c('span',{staticClass:\"title\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"orderDate\"))+\": \")]),_c('b-form-datepicker',{staticClass:\"form-control invoice-edit-input\",attrs:{\"locale\":_vm.$i18n.locale,\"date-format-options\":{\n year: 'numeric',\n month: 'numeric',\n day: '2-digit',\n },\"placeholder\":\"\"},model:{value:(_vm.invoiceData.orderdate),callback:function ($$v) {_vm.$set(_vm.invoiceData, \"orderdate\", $$v)},expression:\"invoiceData.orderdate\"}})],1),_c('div',{staticClass:\"d-flex align-items-start\"},[_c('span',{staticClass:\"title\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"dueDate\"))+\": \")]),_c('b-form-datepicker',{staticClass:\"form-control invoice-edit-input\",attrs:{\"locale\":_vm.$i18n.locale,\"date-format-options\":{\n year: 'numeric',\n month: 'numeric',\n day: '2-digit',\n },\"placeholder\":\"\"},model:{value:(_vm.invoiceData.duedate),callback:function ($$v) {_vm.$set(_vm.invoiceData, \"duedate\", $$v)},expression:\"invoiceData.duedate\"}})],1)])])])]),_c('hr',{staticClass:\"invoice-spacing\"}),_c('b-card-body',{staticClass:\"invoice-padding pt-0\"},[_c('b-row',{staticClass:\"invoice-spacing\"},[_c('b-col',{staticClass:\"mt-xl-0 mt-2 justify-content-end d-xl-flex d-block\",attrs:{\"xl\":\"6\",\"cols\":\"12\"}})],1)],1),_c('b-card-body',{staticClass:\"invoice-padding form-item-section\"},[_c('div',{ref:\"form\",staticClass:\"repeater-form\",style:({ height: _vm.trHeight })},_vm._l((_vm.invoiceData.items),function(item,index){return _c('b-row',{key:index,ref:\"row\",refInFor:true,staticClass:\"pb-2\"},[_c('b-col',{attrs:{\"cols\":\"12\"}},[_c('div',{staticClass:\"d-none d-lg-flex\"},[_c('b-row',{staticClass:\"flex-grow-1 px-1\"},[_c('b-col',{attrs:{\"cols\":\"12\",\"lg\":\"4\"}},[_vm._v(\" \"+_vm._s(_vm.$t(\"productName\"))+\" \")]),_c('b-col',{attrs:{\"cols\":\"12\",\"lg\":\"3\"}},[_vm._v(\" \"+_vm._s(_vm.$t(\"term\"))+\" \")]),_c('b-col',{attrs:{\"cols\":\"12\",\"lg\":\"3\"}},[_vm._v(\" \"+_vm._s(_vm.$t(\"unit\"))+\" \")]),_c('b-col',{attrs:{\"cols\":\"12\",\"lg\":\"2\"}},[_vm._v(\" \"+_vm._s(_vm.$t(\"amount\"))+\" \")])],1),_c('div',{staticClass:\"form-item-action-col\"})],1),_c('div',{staticClass:\"d-flex border rounded\"},[_c('b-row',{staticClass:\"flex-grow-1 p-2\"},[_c('b-col',{attrs:{\"cols\":\"12\",\"lg\":\"4\"}},[_c('label',{staticClass:\"d-inline d-lg-none\"},[_vm._v(\"Item\")]),_c('v-select',{staticClass:\"mb-2 item-selector-title\",attrs:{\"transition\":\"\",\"dir\":_vm.$store.state.appConfig.isRTL ? 'rtl' : 'ltr',\"options\":_vm.itemsOptions,\"clearable\":false,\"placeholder\":_vm.$t('productName')},on:{\"input\":function (val) { return _vm.updateItemForm(index, val); }}})],1),_c('b-col',{attrs:{\"cols\":\"12\",\"lg\":\"3\"}},[_c('label',{staticClass:\"d-inline d-lg-none\"},[_vm._v(\"Vade Name\")]),_c('v-select',{staticClass:\"mb-2 item-selector-title\",attrs:{\"transition\":\"\",\"dir\":_vm.$store.state.appConfig.isRTL ? 'rtl' : 'ltr',\"options\":_vm.vadeNames,\"label\":\"vadeadi\",\"clearable\":false,\"selectable\":function (option) { return item.productname != ''; },\"placeholder\":_vm.$t('term')},on:{\"input\":function (val) { return _vm.updateItemForm(index, val); }}})],1),_c('b-col',{attrs:{\"cols\":\"12\",\"lg\":\"3\"}},[_c('label',{staticClass:\"d-inline d-lg-none\"},[_vm._v(\"Unit\")]),_c('v-select',{staticClass:\"mb-2 item-selector-title\",attrs:{\"transition\":\"\",\"dir\":_vm.$store.state.appConfig.isRTL ? 'rtl' : 'ltr',\"options\":[\n { label: 'Çuval (50 KG)', value: 1 },\n { label: 'Ton', value: 2 },\n { label: 'Kilo', value: 3 } ],\"clearable\":false,\"selectable\":function (option) { return item.productname != ''; },\"placeholder\":_vm.$t('unit')},on:{\"input\":function (val) {\n item.unitid = val.value;\n }}})],1),_c('b-col',{attrs:{\"cols\":\"12\",\"lg\":\"2\"}},[_c('label',{staticClass:\"d-inline d-lg-none\"},[_vm._v(\"Qty\")]),_c('b-form-input',{staticClass:\"mb-2\",attrs:{\"type\":\"number\"},on:{\"input\":function (val) {\n _vm.invoiceData.items[index].qty = val;\n _vm.$forceUpdate();\n }},model:{value:(item.qty),callback:function ($$v) {_vm.$set(item, \"qty\", $$v)},expression:\"item.qty\"}})],1),(item.cost)?_c('b-col',{attrs:{\"cols\":\"12\",\"lg\":\"5\"}},[_c('label',{staticClass:\"d-inline d-lg-none\"},[_vm._v(\"Birim Fiyat\")]),_c('p',{staticClass:\"mb-1\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"unitPrice\"))+\" : TL\"+_vm._s(item.cost)+\" \")])]):_vm._e(),_c('b-col',{attrs:{\"cols\":\"12\",\"lg\":\"5\"}},[_c('label',{staticClass:\"d-inline d-lg-none\"},[_vm._v(\"Price\")]),_c('p',{staticClass:\"mb-1\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"price\"))+\" : TL\"+_vm._s(item.cost * item.qty)+\" \")])])],1),_c('div',{staticClass:\"d-flex flex-column justify-content-between border-left py-50 px-25\"},[_c('feather-icon',{staticClass:\"cursor-pointer\",attrs:{\"size\":\"16\",\"icon\":\"XIcon\"},on:{\"click\":function($event){return _vm.removeItem(index)}}})],1)],1)])],1)}),1),_c('b-button',{directives:[{name:\"ripple\",rawName:\"v-ripple.400\",value:('rgba(255, 255, 255, 0.15)'),expression:\"'rgba(255, 255, 255, 0.15)'\",modifiers:{\"400\":true}}],attrs:{\"size\":\"sm\",\"variant\":\"primary\"},on:{\"click\":_vm.addNewItemInItemForm}},[_vm._v(\" \"+_vm._s(_vm.$t(\"add\"))+\" \")])],1),_c('hr',{staticClass:\"invoice-spacing\"}),_c('b-card-body',{staticClass:\"invoice-padding pt-0\"},[_c('span',{staticClass:\"font-weight-bold\"},[_vm._v(_vm._s(_vm.$t(\"note\"))+\": \")]),_c('b-form-textarea',{model:{value:(_vm.invoiceData.note),callback:function ($$v) {_vm.$set(_vm.invoiceData, \"note\", $$v)},expression:\"invoiceData.note\"}})],1)],1)],1)],1)],1)],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\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!./orderAdd.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!./orderAdd.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./orderAdd.vue?vue&type=template&id=6052bd1c&scoped=true\"\nimport script from \"./orderAdd.vue?vue&type=script&lang=js\"\nexport * from \"./orderAdd.vue?vue&type=script&lang=js\"\nimport style0 from \"./orderAdd.vue?vue&type=style&index=0&id=6052bd1c&prod&lang=scss\"\nimport style1 from \"./orderAdd.vue?vue&type=style&index=1&id=6052bd1c&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6052bd1c\",\n null\n \n)\n\nexport default component.exports","var Ripple = {\n bind: function(el, binding){\n\n // Default values.\n var props = {\n event: 'mousedown',\n transition: 600\n };\n\n setProps(Object.keys(binding.modifiers),props);\n\n el.addEventListener(props.event, function(event) {\n rippler(event, el, binding.value);\n });\n\n var bg = binding.value || Ripple.color || 'rgba(0, 0, 0, 0.35)';\n var zIndex = Ripple.zIndex || '9999';\n\n function rippler(event, el) {\n var target = el;\n // Get border to avoid offsetting on ripple container position\n var targetBorder = parseInt((getComputedStyle(target).borderWidth).replace('px', ''));\n\n // Get necessary variables\n var rect = target.getBoundingClientRect(),\n left = rect.left,\n top = rect.top,\n width = target.offsetWidth,\n height = target.offsetHeight,\n dx = event.clientX - left,\n dy = event.clientY - top,\n maxX = Math.max(dx, width - dx),\n maxY = Math.max(dy, height - dy),\n style = window.getComputedStyle(target),\n radius = Math.sqrt((maxX * maxX) + (maxY * maxY)),\n border = (targetBorder > 0 ) ? targetBorder : 0;\n\n // Create the ripple and its container\n var ripple = document.createElement(\"div\"),\n rippleContainer = document.createElement(\"div\");\n rippleContainer.className = 'ripple-container';\n ripple.className = 'ripple';\n\n //Styles for ripple\n ripple.style.marginTop= '0px';\n ripple.style.marginLeft= '0px';\n ripple.style.width= '1px';\n ripple.style.height= '1px';\n ripple.style.transition= 'all ' + props.transition + 'ms cubic-bezier(0.4, 0, 0.2, 1)';\n ripple.style.borderRadius= '50%';\n ripple.style.pointerEvents= 'none';\n ripple.style.position= 'relative';\n ripple.style.zIndex= zIndex;\n ripple.style.backgroundColor = bg;\n\n //Styles for rippleContainer\n rippleContainer.style.position= 'absolute';\n rippleContainer.style.left = 0 - border + 'px';\n rippleContainer.style.top = 0 - border + 'px';\n rippleContainer.style.height = '0';\n rippleContainer.style.width = '0';\n rippleContainer.style.pointerEvents = 'none';\n rippleContainer.style.overflow = 'hidden';\n\n // Store target position to change it after\n var storedTargetPosition = ((target.style.position).length > 0) ? target.style.position : getComputedStyle(target).position;\n // Change target position to relative to guarantee ripples correct positioning\n if (storedTargetPosition !== 'relative') {\n target.style.position = 'relative';\n }\n\n rippleContainer.appendChild(ripple);\n target.appendChild(rippleContainer);\n\n ripple.style.marginLeft = dx + \"px\";\n ripple.style.marginTop = dy + \"px\";\n\n // No need to set positioning because ripple should be child of target and to it's relative position.\n // rippleContainer.style.left = left + (((window.pageXOffset || document.scrollLeft) - (document.clientLeft || 0)) || 0) + \"px\";\n // rippleContainer.style.top = top + (((window.pageYOffset || document.scrollTop) - (document.clientTop || 0)) || 0) + \"px\";\n rippleContainer.style.width = width + \"px\";\n rippleContainer.style.height = height + \"px\";\n rippleContainer.style.borderTopLeftRadius = style.borderTopLeftRadius;\n rippleContainer.style.borderTopRightRadius = style.borderTopRightRadius;\n rippleContainer.style.borderBottomLeftRadius = style.borderBottomLeftRadius;\n rippleContainer.style.borderBottomRightRadius = style.borderBottomRightRadius;\n\n rippleContainer.style.direction = 'ltr';\n\n setTimeout(function() {\n ripple.style.width = radius * 2 + \"px\";\n ripple.style.height = radius * 2 + \"px\";\n ripple.style.marginLeft = dx - radius + \"px\";\n ripple.style.marginTop = dy - radius + \"px\";\n }, 0);\n\n function clearRipple() {\n setTimeout(function() {\n ripple.style.backgroundColor = \"rgba(0, 0, 0, 0)\";\n }, 250);\n\n // Timeout set to get a smooth removal of the ripple\n setTimeout(function() {\n rippleContainer.parentNode.removeChild(rippleContainer);\n }, 850);\n\n el.removeEventListener('mouseup', clearRipple, false);\n\n // After removing event set position to target to it's original one\n // Timeout it's needed to avoid jerky effect of ripple jumping out parent target\n setTimeout(function () {\n\n var clearPosition = true;\n for(var i = 0; i < target.childNodes.length; i++) {\n if(target.childNodes[i].className === 'ripple-container') {\n clearPosition = false;\n }\n }\n\n if(clearPosition) {\n if(storedTargetPosition !== 'static') {\n target.style.position = storedTargetPosition;\n } else {\n target.style.position = '';\n }\n }\n\n }, props.transition + 250)\n }\n\n if(event.type === 'mousedown') {\n el.addEventListener('mouseup', clearRipple, false);\n } else {\n clearRipple();\n }\n }\n }\n};\n\nfunction setProps(modifiers,props) {\n modifiers.forEach(function(item) {\n if(isNaN(Number(item)))\n props.event = item;\n else\n props.transition = item;\n });\n}\n\nexport default Ripple;","// 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});","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./orderAdd.vue?vue&type=style&index=1&id=6052bd1c&prod&lang=scss&scoped=true\""],"sourceRoot":""}