{"version":3,"sources":["webpack:///./node_modules/bootstrap-vue/esm/constants/events.js","webpack:///./node_modules/bootstrap-vue/esm/utils/array.js","webpack:///./node_modules/bootstrap-vue/esm/vue.js","webpack:///./node_modules/bootstrap-vue/esm/utils/normalize-slot.js","webpack:///./node_modules/bootstrap-vue/esm/utils/loose-equal.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/attrs.js","webpack:///./node_modules/bootstrap-vue/esm/utils/model.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/listen-on-root.js","webpack:///./node_modules/bootstrap-vue/esm/utils/events.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/normalize-slot.js","webpack:///./node_modules/bootstrap-vue/esm/utils/cache.js","webpack:///./node_modules/bootstrap-vue/esm/utils/dom.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/id.js","webpack:///./node_modules/bootstrap-vue/esm/constants/slots.js","webpack:///./node_modules/bootstrap-vue/esm/constants/key-codes.js"],"names":[],"mappings":";;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACP;AACA;AACO;AACP;AACA;AACA,E;;;;;;;;ACjEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAuC;;AAEhC;AACP;AACA,EAAE;;AAEK;AACP;AACA;AACO;AACP,qEAAqE,aAAa;AAClF;AACA;;AAEA;AACA,EAAE;;AAEK;AACP,cAAc,mEAAU;AACxB;AACA;AACA;AACA;AACA,GAAG;AACH;AACO;AACP;AACA;AACA,GAAG;AACH;AACO;AACP;AACA;AACA,GAAG;AACH,E;;;;;;;;AClCA;AAAA;AAAsB;AACgC;;AAEtD;;;;;;;;;ACHA;AAAA;AAAA;AAAA;AAAA;AAAiC;AACK;AACC;AACvC;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,gBAAgB;AAC7B;;AAEO;AACP;AACA;AACA;AACA,UAAU,6DAAM,eAAe,0DAAQ,EAAE;;AAEzC;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,WAAW,cAAc;AA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;AACH;AACA;;;AAGA;AACA;AACA,EAAE;;AAEK;AACP;AACA,EAAE;;AAEK;AACP;;AAEA;AACA;AACA,EAAE;;AAEK;AACP,SAAS,2DAAS,2BAA2B,+DAAQ;AACrD,EAAE;;AAEK;AACP,mCAAmC,+DAAQ;AAC3C,EAAE;;AAEK;AACP;AACA,EAAE;;AAEK;AACP;;AAEA;AACA;AACA;;AAEA,0CAA0C;AAC1C;AACA;;AAEA;AACA,EAAE;;AAEK;AACP,mBAAmB,mEAAU;AAC7B,EAAE;;AAEK;AACP,SAAS,+DAAQ;AACjB,EAAE;;AAEK;AACP;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEK;AACP;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEK;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEK;AACP;AACA;AACA;AACA,EAAE;;AAEK;AACP;AACA;AACA;AACA,EAAE;AACF;;AAEO;AACP;AACA,EAAE;AACF;;AAEO;AACP;AACA,EAAE;;AAEK;AACP;AACA;AACA;AACA,EAAE;;AAEK;AACP;AACA;AACA;AACA,EAAE;AACF;;AAEO;AACP;AACA,EAAE;AACF;;AAEA;;AAEO;AACP;AACA,EAAE;;AAEF;;AAEO;AACP,yBAAyB,6DAAM;AAC/B;AACA,EAAE;AACF;;AAEA;;AAEO;AACP,qBAAqB,6DAAM;AAC3B,wBAAwB,6DAAM;AAC9B,EAAE;AACF;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,0BAA0B,+DAAO;AACjC,2BAA2B,+DAAO;AAClC;AACA;;AAEA;AACA,0CAA0C,+DAAO;AACjD,6CAA6C,+DAAO;AACpD;AACA,EAAE;AACF;;AAEO;AACP;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEK;AACP;;AAEA;AACA;AACA,GAAG;;AAEH;AACA,EAAE;;AAEK;AACP;AACA;AACA,GAAG;;AAEH;AACA,E;;;;;;;;AC9TA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACgD;AACM;AACZ;;AAEnC;AACP,MAAM,qEAAQ,CAAC,yEAAgB;AAC/B,EAAE;AACF;;AAEO,cAAc,oDAAG;AACxB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA,+CAA+C,8DAAiB;AAChE,KAAK;AACL;AACA,CAAC,E;;;;;;;;ACjDD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gD;;;;;;;;AC/DP;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iB","file":"photosmith.85e2f9d459b64af0621d.js","sourcesContent":["export var EVENT_NAME_ACTIVATE_TAB = 'activate-tab';\nexport var EVENT_NAME_BLUR = 'blur';\nexport var EVENT_NAME_CANCEL = 'cancel';\nexport var EVENT_NAME_CHANGE = 'change';\nexport var EVENT_NAME_CHANGED = 'changed';\nexport var EVENT_NAME_CLICK = 'click';\nexport var EVENT_NAME_CLOSE = 'close';\nexport var EVENT_NAME_CONTEXT = 'context';\nexport var EVENT_NAME_CONTEXT_CHANGED = 'context-changed';\nexport var EVENT_NAME_DESTROYED = 'destroyed';\nexport var EVENT_NAME_DISABLE = 'disable';\nexport var EVENT_NAME_DISABLED = 'disabled';\nexport var EVENT_NAME_DISMISSED = 'dismissed';\nexport var EVENT_NAME_DISMISS_COUNT_DOWN = 'dismiss-count-down';\nexport var EVENT_NAME_ENABLE = 'enable';\nexport var EVENT_NAME_ENABLED = 'enabled';\nexport var EVENT_NAME_FILTERED = 'filtered';\nexport var EVENT_NAME_FIRST = 'first';\nexport var EVENT_NAME_FOCUSIN = 'focusin';\nexport var EVENT_NAME_FOCUSOUT = 'focusout';\nexport var EVENT_NAME_HEAD_CLICKED = 'head-clicked';\nexport var EVENT_NAME_HIDDEN = 'hidden';\nexport var EVENT_NAME_HIDE = 'hide';\nexport var EVENT_NAME_IMG_ERROR = 'img-error';\nexport var EVENT_NAME_INPUT = 'input';\nexport var EVENT_NAME_LAST = 'last';\nexport var EVENT_NAME_MOUSEENTER = 'mouseenter';\nexport var EVENT_NAME_MOUSELEAVE = 'mouseleave';\nexport var EVENT_NAME_NEXT = 'next';\nexport var EVENT_NAME_OK = 'ok';\nexport var EVENT_NAME_OPEN = 'open';\nexport var EVENT_NAME_PAGE_CLICK = 'page-click';\nexport var EVENT_NAME_PAUSED = 'paused';\nexport var EVENT_NAME_PREV = 'prev';\nexport var EVENT_NAME_REFRESH = 'refresh';\nexport var EVENT_NAME_REFRESHED = 'refreshed';\nexport var EVENT_NAME_REMOVE = 'remove';\nexport var EVENT_NAME_ROW_CLICKED = 'row-clicked';\nexport var EVENT_NAME_ROW_CONTEXTMENU = 'row-contextmenu';\nexport var EVENT_NAME_ROW_DBLCLICKED = 'row-dblclicked';\nexport var EVENT_NAME_ROW_HOVERED = 'row-hovered';\nexport var EVENT_NAME_ROW_MIDDLE_CLICKED = 'row-middle-clicked';\nexport var EVENT_NAME_ROW_SELECTED = 'row-selected';\nexport var EVENT_NAME_ROW_UNHOVERED = 'row-unhovered';\nexport var EVENT_NAME_SELECTED = 'selected';\nexport var EVENT_NAME_SHOW = 'show';\nexport var EVENT_NAME_SHOWN = 'shown';\nexport var EVENT_NAME_SLIDING_END = 'sliding-end';\nexport var EVENT_NAME_SLIDING_START = 'sliding-start';\nexport var EVENT_NAME_SORT_CHANGED = 'sort-changed';\nexport var EVENT_NAME_TAG_STATE = 'tag-state';\nexport var EVENT_NAME_TOGGLE = 'toggle';\nexport var EVENT_NAME_UNPAUSED = 'unpaused';\nexport var EVENT_NAME_UPDATE = 'update';\nexport var HOOK_EVENT_NAME_BEFORE_DESTROY = 'hook:beforeDestroy';\nexport var HOOK_EVENT_NAME_DESTROYED = 'hook:destroyed';\nexport var MODEL_EVENT_NAME_PREFIX = 'update:';\nexport var ROOT_EVENT_NAME_PREFIX = 'bv';\nexport var ROOT_EVENT_NAME_SEPARATOR = '::';\nexport var EVENT_OPTIONS_PASSIVE = {\n  passive: true\n};\nexport var EVENT_OPTIONS_NO_CAPTURE = {\n  passive: true,\n  capture: false\n};","import { isFunction } from './inspect'; // --- Static ---\n\nexport var from = function from() {\n  return Array.from.apply(Array, arguments);\n}; // --- Instance ---\n\nexport var arrayIncludes = function arrayIncludes(array, value) {\n  return array.indexOf(value) !== -1;\n};\nexport var concat = function concat() {\n  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n    args[_key] = arguments[_key];\n  }\n\n  return Array.prototype.concat.apply([], args);\n}; // --- Utilities ---\n\nexport var createArray = function createArray(length, fillFn) {\n  var mapFn = isFunction(fillFn) ? fillFn : function () {\n    return fillFn;\n  };\n  return Array.apply(null, {\n    length: length\n  }).map(mapFn);\n};\nexport var flatten = function flatten(array) {\n  return array.reduce(function (result, item) {\n    return concat(result, item);\n  }, []);\n};\nexport var flattenDeep = function flattenDeep(array) {\n  return array.reduce(function (result, item) {\n    return concat(result, Array.isArray(item) ? flattenDeep(item) : item);\n  }, []);\n};","import Vue from 'vue';\nimport { mergeData } from 'vue-functional-data-merge'; // --- Constants ---\n\nvar COMPONENT_UID_KEY = '_uid';\nexport { COMPONENT_UID_KEY, Vue, mergeData };","import { concat } from './array';\nimport { identity } from './identity';\nimport { isFunction } from './inspect'; // Note for functional components:\n// In functional components, `slots` is a function so it must be called\n// first before passing to the below methods. `scopedSlots` is always an\n// object and may be undefined (for Vue < 2.6.x)\n\n/**\n * Returns true if either scoped or unscoped named slot exists\n *\n * @param {String, Array} name or name[]\n * @param {Object} scopedSlots\n * @param {Object} slots\n * @returns {Array|undefined} VNodes\n */\n\nexport var hasNormalizedSlot = function hasNormalizedSlot(names) {\n  var $scopedSlots = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  var $slots = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  // Ensure names is an array\n  names = concat(names).filter(identity); // Returns true if the either a $scopedSlot or $slot exists with the specified name\n\n  return names.some(function (name) {\n    return $scopedSlots[name] || $slots[name];\n  });\n};\n/**\n * Returns VNodes for named slot either scoped or unscoped\n *\n * @param {String, Array} name or name[]\n * @param {String} scope\n * @param {Object} scopedSlots\n * @param {Object} slots\n * @returns {Array|undefined} VNodes\n */\n\nexport var normalizeSlot = function normalizeSlot(names) {\n  var scope = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  var $scopedSlots = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  var $slots = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n  // Ensure names is an array\n  names = concat(names).filter(identity);\n  var slot;\n\n  for (var i = 0; i < names.length && !slot; i++) {\n    var name = names[i];\n    slot = $scopedSlots[name] || $slots[name];\n  } // Note: in Vue 2.6.x, all named slots are also scoped slots\n\n\n  return isFunction(slot) ? slot(scope) : slot;\n};","import { hasOwnProperty, keys } from './object';\nimport { isArray, isDate, isObject } from './inspect'; // Assumes both a and b are arrays!\n// Handles when arrays are \"sparse\" (array.every(...) doesn't handle sparse)\n\nvar compareArrays = function compareArrays(a, b) {\n  if (a.length !== b.length) {\n    return false;\n  }\n\n  var equal = true;\n\n  for (var i = 0; equal && i < a.length; i++) {\n    equal = looseEqual(a[i], b[i]);\n  }\n\n  return equal;\n};\n/**\n * Check if two values are loosely equal - that is,\n * if they are plain objects, do they have the same shape?\n * Returns boolean true or false\n */\n\n\nexport var looseEqual = function looseEqual(a, b) {\n  if (a === b) {\n    return true;\n  }\n\n  var aValidType = isDate(a);\n  var bValidType = isDate(b);\n\n  if (aValidType || bValidType) {\n    return aValidType && bValidType ? a.getTime() === b.getTime() : false;\n  }\n\n  aValidType = isArray(a);\n  bValidType = isArray(b);\n\n  if (aValidType || bValidType) {\n    return aValidType && bValidType ? compareArrays(a, b) : false;\n  }\n\n  aValidType = isObject(a);\n  bValidType = isObject(b);\n\n  if (aValidType || bValidType) {\n    /* istanbul ignore if: this if will probably never be called */\n    if (!aValidType || !bValidType) {\n      return false;\n    }\n\n    var aKeysCount = keys(a).length;\n    var bKeysCount = keys(b).length;\n\n    if (aKeysCount !== bKeysCount) {\n      return false;\n    }\n\n    for (var key in a) {\n      var aHasKey = hasOwnProperty(a, key);\n      var bHasKey = hasOwnProperty(b, key);\n\n      if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) {\n        return false;\n      }\n    }\n  }\n\n  return String(a) === String(b);\n};","import { makePropCacheMixin } from '../utils/cache';\nexport var attrsMixin = makePropCacheMixin('$attrs', 'bvAttrs');","function _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 { EVENT_NAME_INPUT } from '../constants/events';\nimport { PROP_TYPE_ANY } from '../constants/props';\nimport { makeProp } from './props';\nexport var makeModelMixin = function makeModelMixin(prop) {\n  var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n      _ref$type = _ref.type,\n      type = _ref$type === void 0 ? PROP_TYPE_ANY : _ref$type,\n      _ref$defaultValue = _ref.defaultValue,\n      defaultValue = _ref$defaultValue === void 0 ? undefined : _ref$defaultValue,\n      _ref$validator = _ref.validator,\n      validator = _ref$validator === void 0 ? undefined : _ref$validator,\n      _ref$event = _ref.event,\n      event = _ref$event === void 0 ? EVENT_NAME_INPUT : _ref$event;\n\n  var props = _defineProperty({}, prop, makeProp(type, defaultValue, validator)); // @vue/component\n\n\n  var mixin = Vue.extend({\n    model: {\n      prop: prop,\n      event: event\n    },\n    props: props\n  });\n  return {\n    mixin: mixin,\n    props: props,\n    prop: prop,\n    event: event\n  };\n};","import { Vue } from '../vue';\nimport { HOOK_EVENT_NAME_BEFORE_DESTROY } from '../constants/events'; // @vue/component\n\nexport var listenOnRootMixin = Vue.extend({\n  methods: {\n    /**\n     * Safely register event listeners on the root Vue node\n     * While Vue automatically removes listeners for individual components,\n     * when a component registers a listener on root and is destroyed,\n     * this orphans a callback because the node is gone,\n     * but the root does not clear the callback\n     *\n     * When registering a `$root` listener, it also registers a listener on\n     * the component's `beforeDestroy()` hook to automatically remove the\n     * event listener from the `$root` instance\n     *\n     * @param {string} event\n     * @param {function} callback\n     */\n    listenOnRoot: function listenOnRoot(event, callback) {\n      var _this = this;\n\n      this.$root.$on(event, callback);\n      this.$on(HOOK_EVENT_NAME_BEFORE_DESTROY, function () {\n        _this.$root.$off(event, callback);\n      });\n    },\n\n    /**\n     * Safely register a `$once()` event listener on the root Vue node\n     * While Vue automatically removes listeners for individual components,\n     * when a component registers a listener on root and is destroyed,\n     * this orphans a callback because the node is gone,\n     * but the root does not clear the callback\n     *\n     * When registering a $root listener, it also registers a listener on\n     * the component's `beforeDestroy` hook to automatically remove the\n     * event listener from the $root instance.\n     *\n     * @param {string} event\n     * @param {function} callback\n     */\n    listenOnRootOnce: function listenOnRootOnce(event, callback) {\n      var _this2 = this;\n\n      this.$root.$once(event, callback);\n      this.$on(HOOK_EVENT_NAME_BEFORE_DESTROY, function () {\n        _this2.$root.$off(event, callback);\n      });\n    },\n\n    /**\n     * Convenience method for calling `vm.$emit()` on `vm.$root`\n     *\n     * @param {string} event\n     * @param {*} args\n     */\n    emitOnRoot: function emitOnRoot(event) {\n      var _this$$root;\n\n      for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n        args[_key - 1] = arguments[_key];\n      }\n\n      (_this$$root = this.$root).$emit.apply(_this$$root, [event].concat(args));\n    }\n  }\n});","import { HAS_PASSIVE_EVENT_SUPPORT } from '../constants/env';\nimport { ROOT_EVENT_NAME_PREFIX, ROOT_EVENT_NAME_SEPARATOR } from '../constants/events';\nimport { RX_BV_PREFIX } from '../constants/regex';\nimport { isObject } from './inspect';\nimport { kebabCase } from './string'; // --- Utils ---\n// Normalize event options based on support of passive option\n// Exported only for testing purposes\n\nexport var parseEventOptions = function parseEventOptions(options) {\n  /* istanbul ignore else: can't test in JSDOM, as it supports passive */\n  if (HAS_PASSIVE_EVENT_SUPPORT) {\n    return isObject(options) ? options : {\n      capture: !!options || false\n    };\n  } else {\n    // Need to translate to actual Boolean value\n    return !!(isObject(options) ? options.capture : options);\n  }\n}; // Attach an event listener to an element\n\nexport var eventOn = function eventOn(el, eventName, handler, options) {\n  if (el && el.addEventListener) {\n    el.addEventListener(eventName, handler, parseEventOptions(options));\n  }\n}; // Remove an event listener from an element\n\nexport var eventOff = function eventOff(el, eventName, handler, options) {\n  if (el && el.removeEventListener) {\n    el.removeEventListener(eventName, handler, parseEventOptions(options));\n  }\n}; // Utility method to add/remove a event listener based on first argument (boolean)\n// It passes all other arguments to the `eventOn()` or `eventOff` method\n\nexport var eventOnOff = function eventOnOff(on) {\n  var method = on ? eventOn : eventOff;\n\n  for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n    args[_key - 1] = arguments[_key];\n  }\n\n  method.apply(void 0, args);\n}; // Utility method to prevent the default event handling and propagation\n\nexport var stopEvent = function stopEvent(event) {\n  var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n      _ref$preventDefault = _ref.preventDefault,\n      preventDefault = _ref$preventDefault === void 0 ? true : _ref$preventDefault,\n      _ref$propagation = _ref.propagation,\n      propagation = _ref$propagation === void 0 ? true : _ref$propagation,\n      _ref$immediatePropaga = _ref.immediatePropagation,\n      immediatePropagation = _ref$immediatePropaga === void 0 ? false : _ref$immediatePropaga;\n\n  if (preventDefault) {\n    event.preventDefault();\n  }\n\n  if (propagation) {\n    event.stopPropagation();\n  }\n\n  if (immediatePropagation) {\n    event.stopImmediatePropagation();\n  }\n}; // Helper method to convert a component/directive name to a base event name\n// `getBaseEventName('BNavigationItem')` => 'navigation-item'\n// `getBaseEventName('BVToggle')` => 'toggle'\n\nvar getBaseEventName = function getBaseEventName(value) {\n  return kebabCase(value.replace(RX_BV_PREFIX, ''));\n}; // Get a root event name by component/directive and event name\n// `getBaseEventName('BModal', 'show')` => 'bv::modal::show'\n\n\nexport var getRootEventName = function getRootEventName(name, eventName) {\n  return [ROOT_EVENT_NAME_PREFIX, getBaseEventName(name), eventName].join(ROOT_EVENT_NAME_SEPARATOR);\n}; // Get a root action event name by component/directive and action name\n// `getRootActionEventName('BModal', 'show')` => 'bv::show::modal'\n\nexport var getRootActionEventName = function getRootActionEventName(name, actionName) {\n  return [ROOT_EVENT_NAME_PREFIX, actionName, getBaseEventName(name)].join(ROOT_EVENT_NAME_SEPARATOR);\n};","import { Vue } from '../vue';\nimport { SLOT_NAME_DEFAULT } from '../constants/slots';\nimport { hasNormalizedSlot as _hasNormalizedSlot, normalizeSlot as _normalizeSlot } from '../utils/normalize-slot';\nimport { concat } from '../utils/array'; // @vue/component\n\nexport var normalizeSlotMixin = Vue.extend({\n  methods: {\n    // Returns `true` if the either a `$scopedSlot` or `$slot` exists with the specified name\n    // `name` can be a string name or an array of names\n    hasNormalizedSlot: function hasNormalizedSlot() {\n      var name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : SLOT_NAME_DEFAULT;\n      var scopedSlots = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.$scopedSlots;\n      var slots = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this.$slots;\n      return _hasNormalizedSlot(name, scopedSlots, slots);\n    },\n    // Returns an array of rendered VNodes if slot found, otherwise `undefined`\n    // `name` can be a string name or an array of names\n    normalizeSlot: function normalizeSlot() {\n      var name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : SLOT_NAME_DEFAULT;\n      var scope = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n      var scopedSlots = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this.$scopedSlots;\n      var slots = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : this.$slots;\n\n      var vNodes = _normalizeSlot(name, scope, scopedSlots, slots);\n\n      return vNodes ? concat(vNodes) : vNodes;\n    }\n  }\n});","function _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 { cloneDeep } from './clone-deep';\nimport { looseEqual } from './loose-equal';\nimport { hasOwnProperty, keys } from './object';\n\nvar isEmpty = function isEmpty(value) {\n  return !value || keys(value).length === 0;\n};\n\nexport var makePropWatcher = function makePropWatcher(propName) {\n  return {\n    handler: function handler(newValue, oldValue) {\n      if (looseEqual(newValue, oldValue)) {\n        return;\n      }\n\n      if (isEmpty(newValue) || isEmpty(oldValue)) {\n        this[propName] = cloneDeep(newValue);\n        return;\n      }\n\n      for (var key in oldValue) {\n        if (!hasOwnProperty(newValue, key)) {\n          this.$delete(this.$data[propName], key);\n        }\n      }\n\n      for (var _key in newValue) {\n        this.$set(this.$data[propName], _key, newValue[_key]);\n      }\n    }\n  };\n};\nexport var makePropCacheMixin = function makePropCacheMixin(propName, proxyPropName) {\n  return Vue.extend({\n    data: function data() {\n      return _defineProperty({}, proxyPropName, cloneDeep(this[propName]));\n    },\n    watch: _defineProperty({}, propName, makePropWatcher(proxyPropName))\n  });\n};","import { DOCUMENT, WINDOW } from '../constants/env';\nimport { Element } from '../constants/safe-types';\nimport { from as arrayFrom } from './array';\nimport { isFunction, isNull } from './inspect';\nimport { toFloat } from './number';\nimport { toString } from './string'; // --- Constants ---\n\nvar ELEMENT_PROTO = Element.prototype;\nvar TABABLE_SELECTOR = ['button', '[href]:not(.disabled)', 'input', 'select', 'textarea', '[tabindex]', '[contenteditable]'].map(function (s) {\n  return \"\".concat(s, \":not(:disabled):not([disabled])\");\n}).join(', '); // --- Normalization utils ---\n// See: https://developer.mozilla.org/en-US/docs/Web/API/Element/matches#Polyfill\n\n/* istanbul ignore next */\n\nexport var matchesEl = ELEMENT_PROTO.matches || ELEMENT_PROTO.msMatchesSelector || ELEMENT_PROTO.webkitMatchesSelector; // See: https://developer.mozilla.org/en-US/docs/Web/API/Element/closest\n\n/* istanbul ignore next */\n\nexport var closestEl = ELEMENT_PROTO.closest || function (sel) {\n  var el = this;\n\n  do {\n    // Use our \"patched\" matches function\n    if (matches(el, sel)) {\n      return el;\n    }\n\n    el = el.parentElement || el.parentNode;\n  } while (!isNull(el) && el.nodeType === Node.ELEMENT_NODE);\n\n  return null;\n}; // `requestAnimationFrame()` convenience method\n\n/* istanbul ignore next: JSDOM always returns the first option */\n\nexport var requestAF = WINDOW.requestAnimationFrame || WINDOW.webkitRequestAnimationFrame || WINDOW.mozRequestAnimationFrame || WINDOW.msRequestAnimationFrame || WINDOW.oRequestAnimationFrame || // Fallback, but not a true polyfill\n// Only needed for Opera Mini\n\n/* istanbul ignore next */\nfunction (cb) {\n  return setTimeout(cb, 16);\n};\nexport var MutationObs = WINDOW.MutationObserver || WINDOW.WebKitMutationObserver || WINDOW.MozMutationObserver || null; // --- Utils ---\n// Remove a node from DOM\n\nexport var removeNode = function removeNode(el) {\n  return el && el.parentNode && el.parentNode.removeChild(el);\n}; // Determine if an element is an HTML element\n\nexport var isElement = function isElement(el) {\n  return !!(el && el.nodeType === Node.ELEMENT_NODE);\n}; // Get the currently active HTML element\n\nexport var getActiveElement = function getActiveElement() {\n  var excludes = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n  var activeElement = DOCUMENT.activeElement;\n  return activeElement && !excludes.some(function (el) {\n    return el === activeElement;\n  }) ? activeElement : null;\n}; // Returns `true` if a tag's name equals `name`\n\nexport var isTag = function isTag(tag, name) {\n  return toString(tag).toLowerCase() === toString(name).toLowerCase();\n}; // Determine if an HTML element is the currently active element\n\nexport var isActiveElement = function isActiveElement(el) {\n  return isElement(el) && el === getActiveElement();\n}; // Determine if an HTML element is visible - Faster than CSS check\n\nexport var isVisible = function isVisible(el) {\n  if (!isElement(el) || !el.parentNode || !contains(DOCUMENT.body, el)) {\n    // Note this can fail for shadow dom elements since they\n    // are not a direct descendant of document.body\n    return false;\n  }\n\n  if (getStyle(el, 'display') === 'none') {\n    // We do this check to help with vue-test-utils when using v-show\n\n    /* istanbul ignore next */\n    return false;\n  } // All browsers support getBoundingClientRect(), except JSDOM as it returns all 0's for values :(\n  // So any tests that need isVisible will fail in JSDOM\n  // Except when we override the getBCR prototype in some tests\n\n\n  var bcr = getBCR(el);\n  return !!(bcr && bcr.height > 0 && bcr.width > 0);\n}; // Determine if an element is disabled\n\nexport var isDisabled = function isDisabled(el) {\n  return !isElement(el) || el.disabled || hasAttr(el, 'disabled') || hasClass(el, 'disabled');\n}; // Cause/wait-for an element to reflow its content (adjusting its height/width)\n\nexport var reflow = function reflow(el) {\n  // Requesting an elements offsetHight will trigger a reflow of the element content\n\n  /* istanbul ignore next: reflow doesn't happen in JSDOM */\n  return isElement(el) && el.offsetHeight;\n}; // Select all elements matching selector. Returns `[]` if none found\n\nexport var selectAll = function selectAll(selector, root) {\n  return arrayFrom((isElement(root) ? root : DOCUMENT).querySelectorAll(selector));\n}; // Select a single element, returns `null` if not found\n\nexport var select = function select(selector, root) {\n  return (isElement(root) ? root : DOCUMENT).querySelector(selector) || null;\n}; // Determine if an element matches a selector\n\nexport var matches = function matches(el, selector) {\n  return isElement(el) ? matchesEl.call(el, selector) : false;\n}; // Finds closest element matching selector. Returns `null` if not found\n\nexport var closest = function closest(selector, root) {\n  var includeRoot = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n  if (!isElement(root)) {\n    return null;\n  }\n\n  var el = closestEl.call(root, selector); // Native closest behaviour when `includeRoot` is truthy,\n  // else emulate jQuery closest and return `null` if match is\n  // the passed in root element when `includeRoot` is falsey\n\n  return includeRoot ? el : el === root ? null : el;\n}; // Returns true if the parent element contains the child element\n\nexport var contains = function contains(parent, child) {\n  return parent && isFunction(parent.contains) ? parent.contains(child) : false;\n}; // Get an element given an ID\n\nexport var getById = function getById(id) {\n  return DOCUMENT.getElementById(/^#/.test(id) ? id.slice(1) : id) || null;\n}; // Add a class to an element\n\nexport var addClass = function addClass(el, className) {\n  // We are checking for `el.classList` existence here since IE 11\n  // returns `undefined` for some elements (e.g. SVG elements)\n  // See https://github.com/bootstrap-vue/bootstrap-vue/issues/2713\n  if (className && isElement(el) && el.classList) {\n    el.classList.add(className);\n  }\n}; // Remove a class from an element\n\nexport var removeClass = function removeClass(el, className) {\n  // We are checking for `el.classList` existence here since IE 11\n  // returns `undefined` for some elements (e.g. SVG elements)\n  // See https://github.com/bootstrap-vue/bootstrap-vue/issues/2713\n  if (className && isElement(el) && el.classList) {\n    el.classList.remove(className);\n  }\n}; // Test if an element has a class\n\nexport var hasClass = function hasClass(el, className) {\n  // We are checking for `el.classList` existence here since IE 11\n  // returns `undefined` for some elements (e.g. SVG elements)\n  // See https://github.com/bootstrap-vue/bootstrap-vue/issues/2713\n  if (className && isElement(el) && el.classList) {\n    return el.classList.contains(className);\n  }\n\n  return false;\n}; // Set an attribute on an element\n\nexport var setAttr = function setAttr(el, attr, value) {\n  if (attr && isElement(el)) {\n    el.setAttribute(attr, value);\n  }\n}; // Remove an attribute from an element\n\nexport var removeAttr = function removeAttr(el, attr) {\n  if (attr && isElement(el)) {\n    el.removeAttribute(attr);\n  }\n}; // Get an attribute value from an element\n// Returns `null` if not found\n\nexport var getAttr = function getAttr(el, attr) {\n  return attr && isElement(el) ? el.getAttribute(attr) : null;\n}; // Determine if an attribute exists on an element\n// Returns `true` or `false`, or `null` if element not found\n\nexport var hasAttr = function hasAttr(el, attr) {\n  return attr && isElement(el) ? el.hasAttribute(attr) : null;\n}; // Set an style property on an element\n\nexport var setStyle = function setStyle(el, prop, value) {\n  if (prop && isElement(el)) {\n    el.style[prop] = value;\n  }\n}; // Remove an style property from an element\n\nexport var removeStyle = function removeStyle(el, prop) {\n  if (prop && isElement(el)) {\n    el.style[prop] = '';\n  }\n}; // Get an style property value from an element\n// Returns `null` if not found\n\nexport var getStyle = function getStyle(el, prop) {\n  return prop && isElement(el) ? el.style[prop] || null : null;\n}; // Return the Bounding Client Rect of an element\n// Returns `null` if not an element\n\n/* istanbul ignore next: getBoundingClientRect() doesn't work in JSDOM */\n\nexport var getBCR = function getBCR(el) {\n  return isElement(el) ? el.getBoundingClientRect() : null;\n}; // Get computed style object for an element\n\n/* istanbul ignore next: getComputedStyle() doesn't work in JSDOM */\n\nexport var getCS = function getCS(el) {\n  var getComputedStyle = WINDOW.getComputedStyle;\n  return getComputedStyle && isElement(el) ? getComputedStyle(el) : {};\n}; // Returns a `Selection` object representing the range of text selected\n// Returns `null` if no window support is given\n\n/* istanbul ignore next: getSelection() doesn't work in JSDOM */\n\nexport var getSel = function getSel() {\n  var getSelection = WINDOW.getSelection;\n  return getSelection ? WINDOW.getSelection() : null;\n}; // Return an element's offset with respect to document element\n// https://j11y.io/jquery/#v=git&fn=jQuery.fn.offset\n\nexport var offset = function offset(el)\n/* istanbul ignore next: getBoundingClientRect(), getClientRects() doesn't work in JSDOM */\n{\n  var _offset = {\n    top: 0,\n    left: 0\n  };\n\n  if (!isElement(el) || el.getClientRects().length === 0) {\n    return _offset;\n  }\n\n  var bcr = getBCR(el);\n\n  if (bcr) {\n    var win = el.ownerDocument.defaultView;\n    _offset.top = bcr.top + win.pageYOffset;\n    _offset.left = bcr.left + win.pageXOffset;\n  }\n\n  return _offset;\n}; // Return an element's offset with respect to to its offsetParent\n// https://j11y.io/jquery/#v=git&fn=jQuery.fn.position\n\nexport var position = function position(el)\n/* istanbul ignore next: getBoundingClientRect() doesn't work in JSDOM */\n{\n  var _offset = {\n    top: 0,\n    left: 0\n  };\n\n  if (!isElement(el)) {\n    return _offset;\n  }\n\n  var parentOffset = {\n    top: 0,\n    left: 0\n  };\n  var elStyles = getCS(el);\n\n  if (elStyles.position === 'fixed') {\n    _offset = getBCR(el) || _offset;\n  } else {\n    _offset = offset(el);\n    var doc = el.ownerDocument;\n    var offsetParent = el.offsetParent || doc.documentElement;\n\n    while (offsetParent && (offsetParent === doc.body || offsetParent === doc.documentElement) && getCS(offsetParent).position === 'static') {\n      offsetParent = offsetParent.parentNode;\n    }\n\n    if (offsetParent && offsetParent !== el && offsetParent.nodeType === Node.ELEMENT_NODE) {\n      parentOffset = offset(offsetParent);\n      var offsetParentStyles = getCS(offsetParent);\n      parentOffset.top += toFloat(offsetParentStyles.borderTopWidth, 0);\n      parentOffset.left += toFloat(offsetParentStyles.borderLeftWidth, 0);\n    }\n  }\n\n  return {\n    top: _offset.top - parentOffset.top - toFloat(elStyles.marginTop, 0),\n    left: _offset.left - parentOffset.left - toFloat(elStyles.marginLeft, 0)\n  };\n}; // Find all tabable elements in the given element\n// Assumes users have not used `tabindex` > `0` on elements\n\nexport var getTabables = function getTabables() {\n  var rootEl = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document;\n  return selectAll(TABABLE_SELECTOR, rootEl).filter(isVisible).filter(function (el) {\n    return el.tabIndex > -1 && !el.disabled;\n  });\n}; // Attempt to focus an element, and return `true` if successful\n\nexport var attemptFocus = function attemptFocus(el) {\n  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n  try {\n    el.focus(options);\n  } catch (_unused) {}\n\n  return isActiveElement(el);\n}; // Attempt to blur an element, and return `true` if successful\n\nexport var attemptBlur = function attemptBlur(el) {\n  try {\n    el.blur();\n  } catch (_unused2) {}\n\n  return !isActiveElement(el);\n};","// SSR safe client-side ID attribute generation\n// ID's can only be generated client-side, after mount\n// `this._uid` is not synched between server and client\nimport { COMPONENT_UID_KEY, Vue } from '../vue';\nimport { PROP_TYPE_STRING } from '../constants/props';\nimport { makeProp } from '../utils/props'; // --- Props ---\n\nexport var props = {\n  id: makeProp(PROP_TYPE_STRING)\n}; // --- Mixin ---\n// @vue/component\n\nexport var idMixin = Vue.extend({\n  props: props,\n  data: function data() {\n    return {\n      localId_: null\n    };\n  },\n  computed: {\n    safeId: function safeId() {\n      // Computed property that returns a dynamic function for creating the ID\n      // Reacts to changes in both `.id` and `.localId_` and regenerates a new function\n      var id = this.id || this.localId_; // We return a function that accepts an optional suffix string\n      // So this computed prop looks and works like a method\n      // but benefits from Vue's computed prop caching\n\n      var fn = function fn(suffix) {\n        if (!id) {\n          return null;\n        }\n\n        suffix = String(suffix || '').replace(/\\s+/g, '_');\n        return suffix ? id + '_' + suffix : id;\n      };\n\n      return fn;\n    }\n  },\n  mounted: function mounted() {\n    var _this = this;\n\n    // `mounted()` only occurs client-side\n    this.$nextTick(function () {\n      // Update DOM with auto-generated ID after mount\n      // to prevent SSR hydration errors\n      _this.localId_ = \"__BVID__\".concat(_this[COMPONENT_UID_KEY]);\n    });\n  }\n});","export var SLOT_NAME_ADD_BUTTON_TEXT = 'add-button-text';\nexport var SLOT_NAME_APPEND = 'append';\nexport var SLOT_NAME_ASIDE = 'aside';\nexport var SLOT_NAME_BADGE = 'badge';\nexport var SLOT_NAME_BOTTOM_ROW = 'bottom-row';\nexport var SLOT_NAME_BUTTON_CONTENT = 'button-content';\nexport var SLOT_NAME_CUSTOM_FOOT = 'custom-foot';\nexport var SLOT_NAME_DECREMENT = 'decrement';\nexport var SLOT_NAME_DEFAULT = 'default';\nexport var SLOT_NAME_DESCRIPTION = 'description';\nexport var SLOT_NAME_DISMISS = 'dismiss';\nexport var SLOT_NAME_DROP_PLACEHOLDER = 'drop-placeholder';\nexport var SLOT_NAME_ELLIPSIS_TEXT = 'ellipsis-text';\nexport var SLOT_NAME_EMPTY = 'empty';\nexport var SLOT_NAME_EMPTYFILTERED = 'emptyfiltered';\nexport var SLOT_NAME_FILE_NAME = 'file-name';\nexport var SLOT_NAME_FIRST = 'first';\nexport var SLOT_NAME_FIRST_TEXT = 'first-text';\nexport var SLOT_NAME_FOOTER = 'footer';\nexport var SLOT_NAME_HEADER = 'header';\nexport var SLOT_NAME_HEADER_CLOSE = 'header-close';\nexport var SLOT_NAME_ICON_CLEAR = 'icon-clear';\nexport var SLOT_NAME_ICON_EMPTY = 'icon-empty';\nexport var SLOT_NAME_ICON_FULL = 'icon-full';\nexport var SLOT_NAME_ICON_HALF = 'icon-half';\nexport var SLOT_NAME_IMG = 'img';\nexport var SLOT_NAME_INCREMENT = 'increment';\nexport var SLOT_NAME_INVALID_FEEDBACK = 'invalid-feedback';\nexport var SLOT_NAME_LABEL = 'label';\nexport var SLOT_NAME_LAST_TEXT = 'last-text';\nexport var SLOT_NAME_LEAD = 'lead';\nexport var SLOT_NAME_LOADING = 'loading';\nexport var SLOT_NAME_MODAL_BACKDROP = 'modal-backdrop';\nexport var SLOT_NAME_MODAL_CANCEL = 'modal-cancel';\nexport var SLOT_NAME_MODAL_FOOTER = 'modal-footer';\nexport var SLOT_NAME_MODAL_HEADER = 'modal-header';\nexport var SLOT_NAME_MODAL_HEADER_CLOSE = 'modal-header-close';\nexport var SLOT_NAME_MODAL_OK = 'modal-ok';\nexport var SLOT_NAME_MODAL_TITLE = 'modal-title';\nexport var SLOT_NAME_NAV_NEXT_DECADE = 'nav-next-decade';\nexport var SLOT_NAME_NAV_NEXT_MONTH = 'nav-next-month';\nexport var SLOT_NAME_NAV_NEXT_YEAR = 'nav-next-year';\nexport var SLOT_NAME_NAV_PEV_DECADE = 'nav-prev-decade';\nexport var SLOT_NAME_NAV_PEV_MONTH = 'nav-prev-month';\nexport var SLOT_NAME_NAV_PEV_YEAR = 'nav-prev-year';\nexport var SLOT_NAME_NAV_THIS_MONTH = 'nav-this-month';\nexport var SLOT_NAME_NEXT_TEXT = 'next-text';\nexport var SLOT_NAME_OVERLAY = 'overlay';\nexport var SLOT_NAME_PAGE = 'page';\nexport var SLOT_NAME_PLACEHOLDER = 'placeholder';\nexport var SLOT_NAME_PREPEND = 'prepend';\nexport var SLOT_NAME_PREV_TEXT = 'prev-text';\nexport var SLOT_NAME_ROW_DETAILS = 'row-details';\nexport var SLOT_NAME_TABLE_BUSY = 'table-busy';\nexport var SLOT_NAME_TABLE_CAPTION = 'table-caption';\nexport var SLOT_NAME_TABLE_COLGROUP = 'table-colgroup';\nexport var SLOT_NAME_TABS_END = 'tabs-end';\nexport var SLOT_NAME_TABS_START = 'tabs-start';\nexport var SLOT_NAME_TEXT = 'text';\nexport var SLOT_NAME_THEAD_TOP = 'thead-top';\nexport var SLOT_NAME_TITLE = 'title';\nexport var SLOT_NAME_TOAST_TITLE = 'toast-title';\nexport var SLOT_NAME_TOP_ROW = 'top-row';\nexport var SLOT_NAME_VALID_FEEDBACK = 'valid-feedback';","export var CODE_BACKSPACE = 8;\nexport var CODE_BREAK = 19;\nexport var CODE_DELETE = 46;\nexport var CODE_DOWN = 40;\nexport var CODE_END = 35;\nexport var CODE_ENTER = 13;\nexport var CODE_ESC = 27;\nexport var CODE_HOME = 36;\nexport var CODE_LEFT = 37;\nexport var CODE_PAGEDOWN = 34;\nexport var CODE_PAGEUP = 33;\nexport var CODE_RIGHT = 39;\nexport var CODE_SPACE = 32;\nexport var CODE_UP = 38;"],"sourceRoot":""}