{"version":3,"sources":["webpack:////build/source/node_modules/lodash/template.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/shared_components/clear_icon_button/clear_icon_button.js","webpack:////build/source/node_modules/lodash/_compareMultiple.js","webpack:////build/source/node_modules/lodash/_escapeStringChar.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/new_dropdowns/disclosure/utils.js","webpack:////build/source/node_modules/lodash/assignInWith.js","webpack:////build/source/node_modules/lodash/_baseOrderBy.js","webpack:////build/source/node_modules/visibilityjs/index.js","webpack:////build/source/node_modules/lodash/_compareAscending.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/new_dropdowns/disclosure/constants.js","webpack:////build/source/node_modules/core-js/modules/esnext.string.at.js","webpack:////build/source/node_modules/lodash/_reInterpolate.js","webpack:////build/source/node_modules/lodash/isError.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/drawer/drawer.js","webpack:////build/source/node_modules/visibilityjs/lib/visibility.timers.js","webpack:////build/source/node_modules/lodash/_baseMap.js","webpack:////build/source/node_modules/lodash/sortBy.js","webpack:////build/source/node_modules/lodash/templateSettings.js","webpack:////build/source/node_modules/lodash/escapeRegExp.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/new_dropdowns/disclosure/disclosure_dropdown_item.js","webpack:////build/source/node_modules/lodash/_customDefaultsAssignIn.js","webpack:////build/source/node_modules/lodash/_reEvaluate.js","webpack:////build/source/node_modules/lodash/_reEscape.js","webpack:////build/source/node_modules/visibilityjs/lib/visibility.core.js","webpack:////build/source/node_modules/portal-vue/dist/portal-vue.common.js","webpack:////build/source/node_modules/core-js/internals/string-multibyte.js","webpack:////build/source/node_modules/lodash/_baseSortBy.js","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/toast/toaster.js","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/toast/toast.js","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/toast/helpers/bv-toast.js","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/toast/index.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/toast/toast.js","webpack:////build/source/node_modules/lodash/attempt.js"],"names":["assignInWith","attempt","baseValues","customDefaultsAssignIn","escapeStringChar","isError","isIterateeCall","keys","reInterpolate","templateSettings","toString","reEmptyStringLeading","reEmptyStringMiddle","reEmptyStringTrailing","reForbiddenIdentifierChars","reEsTemplate","reNoMatch","reUnescapedString","hasOwnProperty","Object","prototype","module","exports","string","options","guard","settings","imports","_","undefined","isEscaping","isEvaluating","importsKeys","importsValues","index","interpolate","source","reDelimiters","RegExp","escape","evaluate","sourceURL","call","replace","match","escapeValue","interpolateValue","esTemplateValue","evaluateValue","offset","slice","length","variable","test","Error","result","Function","apply","__vue_script__","name","components","GlButton","directives","GlTooltip","props","title","type","String","required","default","tooltipContainer","validator","value","HTMLElement","__vue_component__","render","_h","this","$createElement","_self","_c","_g","rawName","container","expression","modifiers","staticClass","attrs","$listeners","staticRenderFns","compareAscending","object","other","orders","objCriteria","criteria","othCriteria","ordersLength","stringEscapes","chr","isItem","item","Boolean","_item$text","text","Array","isArray","items","itemValidator","isGroup","group","every","itemsValidator","hasOnlyListItemsVue2","defaultSlot","nodes","tags","filter","vNode","tag","_vNode$componentOptio","componentOptions","includes","isValidSlotTagVue2","hasOnlyListItemsVue3","fragment","find","node","children","trim","_vNode$type","isValidSlotTagVue3","hasOnlyListItems","version","startsWith","copyObject","createAssigner","keysIn","srcIndex","customizer","arrayMap","baseGet","baseIteratee","baseMap","baseSortBy","baseUnary","compareMultiple","identity","collection","iteratees","iteratee","key","isSymbol","valIsDefined","valIsNull","valIsReflexive","valIsSymbol","othIsDefined","othIsNull","othIsReflexive","othIsSymbol","DISCLOSURE_DROPDOWN_ITEM_NAME","DISCLOSURE_DROPDOWN_GROUP_NAME","DISCLOSURE_DROPDOWN_GROUP_BORDER_POSITIONS","top","bottom","$","charAt","requireObjectCoercible","toIntegerOrInfinity","target","proto","forced","at","S","len","relativeIndex","k","baseGetTag","isObjectLike","isPlainObject","message","open","headerHeight","headerSticky","zIndex","Number","variant","computed","styles","positionFromTop","maxHeight","$slots","footer","watch","immediate","document","addEventListener","handleEscape","removeEventListener","methods","$emit","e","keyCode","_vm","on","emitOpened","class","variantClass","style","_t","_v","$event","shouldRenderFooter","_e","window","lastTimer","install","Visibility","interval","hiddenInterval","callback","_time","number","_timers","visible","hidden","_run","isSupported","_listen","stop","id","_stop","_timed","_wasHidden","change","_stopRun","runNow","timer","runner","last","Date","delay","setTimeout","setInterval","clearInterval","clearTimeout","event","isHidden","wasHidden","i","baseEach","isArrayLike","baseFlatten","baseOrderBy","baseRest","sortBy","reRegExpChar","reHasRegExpChar","ITEM_CLASS","BLink","_this$item","_this$item2","href","to","$scopedSlots","isLink","is","extraAttrs","listeners","click","action","_item$action","_this$item3","_this$item3$extraAttr","disabled","_this$item4","_this$item4$extraAttr","_this$item$wrapperCla","_this$item5","wrapperClass","keydown","onKeydown","isCustomContent","code","MouseEvent","bubbles","cancelable","_this$$refs$item","$refs","$el","dispatchEvent","$options","listIndex","wrapperListeners","itemComponent","_b","ref","componentIndex","_s","eq","objectProto","objValue","srcValue","global","lastId","self","onVisible","support","listener","state","unbind","_callbacks","afterPrerendering","_doc","webkitHidden","visibilityState","webkitVisibilityState","_change","_init","arguments","attachEvent","defineProperty","ex","Vue","_typeof","obj","Symbol","iterator","constructor","_toConsumableArray","arr","arr2","_arrayWithoutHoles","iter","from","_iterableToArray","TypeError","_nonIterableSpread","inBrowser","pick","reduce","acc","transports","targets","sources","wormhole","extend","data","trackInstances","transport","passengers","_transport$order","order","Infinity","newTransport","freeze","indexOf","set","compareFn","currentIndex","$_getTransportIndex","newTransports","push","a","b","map","v","idx","sort","c","close","force","splice","registerTarget","vm","console","warn","concat","$set","unregisterTarget","$delete","registerSource","unregisterSource","hasTarget","hasSource","hasContentFor","_ref","_id","Portal","slim","slotProps","Math","round","random","created","_this","$nextTick","mounted","sendUpdate","updated","clear","beforeDestroy","newValue","oldValue","closer","normalizeSlots","normalizeOwnChildren","slotContent","h","Tag","display","PortalTarget","multiple","transition","firstRender","ownTransports","newVal","oldVal","_this2","temp","newPassengers","combinePassengers","noWrapper","_id$1","portalProps","targetProps","MountingPortal","inheritAttrs","append","bail","mountTo","targetSlim","targetSlotProps","targetTag","el","querySelector","$props","portalTarget","mountEl","createElement","appendChild","_props","parent","$parent","propsData","error","parentNode","removeChild","$destroy","manual","$attrs","scopedSlots","content","Vue$$1","component","portalName","portalTargetName","MountingPortalName","Wormhole","uncurryThis","charCodeAt","stringSlice","createMethod","CONVERT_TO_STRING","$this","pos","first","second","position","size","codeAt","array","comparer","DefaultTransition","mixins","afterEnter","onAfterEnter","normalizeSlot","ariaAtomic","ariaLive","role","BToaster","doRender","dead","staticName","emitOnRoot","$toaster","$target","mixin","modelMixin","modelProps","prop","MODEL_PROP_NAME","MODEL_EVENT_NAME","defaultValue","linkProps","appendToast","autoHideDelay","bodyClass","headerClass","headerTag","isStatus","noAutoHide","noFade","noHoverPause","solid","static","toastClass","toaster","BToast","isMounted","localShow","isTransitioning","isHiding","dismissStarted","resumeDismiss","hide","math","beforeEnter","onBeforeEnter","beforeLeave","onBeforeLeave","afterLeave","onAfterLeave","bvAttrs","safeId","tabindex","ensureToaster","$_dismissTimer","show","listenOnRoot","computedToaster","clearDismissTimer","showEvent","buildEvent","emitEvent","now","hideEvent","setHoverHandler","relatedTarget","vueTarget","componentId","bvEvent","div","body","bvEventRoot","$mount","computedDuration","onPause","onUnPause","passed","startDismissTimer","hiddenEvent","slotScope","link","$headerContent","$title","$header","$body","onLinkClick","computedAttrs","isStatic","$toast","toastClasses","scopedStyleAttrs","transitionHandlers","makeToast","BASE_PROPS","propsToSlots","toastContent","filterOptions","memo","BVToastPlugin","plugins","plugin","BVToastPop","extends","handleDestroy","bvParent","$once","BvToast","_root","toast","forEach","ToastPlugin","DEFAULT_OPTIONS","toastsCount","renderTitle","onClick","showToast","$bvToast","onComplete","toastHiddenCallback","$root","$off","$on","updatedAutoHideDelay","isNaN","use","bind","func","args"],"mappings":"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","file":"vendors-initGFMInput.e0da5f99.chunk.js","sourcesContent":["var assignInWith = require('./assignInWith'),\n    attempt = require('./attempt'),\n    baseValues = require('./_baseValues'),\n    customDefaultsAssignIn = require('./_customDefaultsAssignIn'),\n    escapeStringChar = require('./_escapeStringChar'),\n    isError = require('./isError'),\n    isIterateeCall = require('./_isIterateeCall'),\n    keys = require('./keys'),\n    reInterpolate = require('./_reInterpolate'),\n    templateSettings = require('./templateSettings'),\n    toString = require('./toString');\n\n/** Error message constants. */\nvar INVALID_TEMPL_VAR_ERROR_TEXT = 'Invalid `variable` option passed into `_.template`';\n\n/** Used to match empty string literals in compiled template source. */\nvar reEmptyStringLeading = /\\b__p \\+= '';/g,\n    reEmptyStringMiddle = /\\b(__p \\+=) '' \\+/g,\n    reEmptyStringTrailing = /(__e\\(.*?\\)|\\b__t\\)) \\+\\n'';/g;\n\n/**\n * Used to validate the `validate` option in `_.template` variable.\n *\n * Forbids characters which could potentially change the meaning of the function argument definition:\n * - \"(),\" (modification of function parameters)\n * - \"=\" (default value)\n * - \"[]{}\" (destructuring of function parameters)\n * - \"/\" (beginning of a comment)\n * - whitespace\n */\nvar reForbiddenIdentifierChars = /[()=,{}\\[\\]\\/\\s]/;\n\n/**\n * Used to match\n * [ES template delimiters](http://ecma-international.org/ecma-262/7.0/#sec-template-literal-lexical-components).\n */\nvar reEsTemplate = /\\$\\{([^\\\\}]*(?:\\\\.[^\\\\}]*)*)\\}/g;\n\n/** Used to ensure capturing order of template delimiters. */\nvar reNoMatch = /($^)/;\n\n/** Used to match unescaped characters in compiled string literals. */\nvar reUnescapedString = /['\\n\\r\\u2028\\u2029\\\\]/g;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates a compiled template function that can interpolate data properties\n * in \"interpolate\" delimiters, HTML-escape interpolated data properties in\n * \"escape\" delimiters, and execute JavaScript in \"evaluate\" delimiters. Data\n * properties may be accessed as free variables in the template. If a setting\n * object is given, it takes precedence over `_.templateSettings` values.\n *\n * **Note:** In the development build `_.template` utilizes\n * [sourceURLs](http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/#toc-sourceurl)\n * for easier debugging.\n *\n * For more information on precompiling templates see\n * [lodash's custom builds documentation](https://lodash.com/custom-builds).\n *\n * For more information on Chrome extension sandboxes see\n * [Chrome's extensions documentation](https://developer.chrome.com/extensions/sandboxingEval).\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category String\n * @param {string} [string=''] The template string.\n * @param {Object} [options={}] The options object.\n * @param {RegExp} [options.escape=_.templateSettings.escape]\n *  The HTML \"escape\" delimiter.\n * @param {RegExp} [options.evaluate=_.templateSettings.evaluate]\n *  The \"evaluate\" delimiter.\n * @param {Object} [options.imports=_.templateSettings.imports]\n *  An object to import into the template as free variables.\n * @param {RegExp} [options.interpolate=_.templateSettings.interpolate]\n *  The \"interpolate\" delimiter.\n * @param {string} [options.sourceURL='templateSources[n]']\n *  The sourceURL of the compiled template.\n * @param {string} [options.variable='obj']\n *  The data object variable name.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the compiled template function.\n * @example\n *\n * // Use the \"interpolate\" delimiter to create a compiled template.\n * var compiled = _.template('hello <%= user %>!');\n * compiled({ 'user': 'fred' });\n * // => 'hello fred!'\n *\n * // Use the HTML \"escape\" delimiter to escape data property values.\n * var compiled = _.template('<b><%- value %></b>');\n * compiled({ 'value': '<script>' });\n * // => '<b>&lt;script&gt;</b>'\n *\n * // Use the \"evaluate\" delimiter to execute JavaScript and generate HTML.\n * var compiled = _.template('<% _.forEach(users, function(user) { %><li><%- user %></li><% }); %>');\n * compiled({ 'users': ['fred', 'barney'] });\n * // => '<li>fred</li><li>barney</li>'\n *\n * // Use the internal `print` function in \"evaluate\" delimiters.\n * var compiled = _.template('<% print(\"hello \" + user); %>!');\n * compiled({ 'user': 'barney' });\n * // => 'hello barney!'\n *\n * // Use the ES template literal delimiter as an \"interpolate\" delimiter.\n * // Disable support by replacing the \"interpolate\" delimiter.\n * var compiled = _.template('hello ${ user }!');\n * compiled({ 'user': 'pebbles' });\n * // => 'hello pebbles!'\n *\n * // Use backslashes to treat delimiters as plain text.\n * var compiled = _.template('<%= \"\\\\<%- value %\\\\>\" %>');\n * compiled({ 'value': 'ignored' });\n * // => '<%- value %>'\n *\n * // Use the `imports` option to import `jQuery` as `jq`.\n * var text = '<% jq.each(users, function(user) { %><li><%- user %></li><% }); %>';\n * var compiled = _.template(text, { 'imports': { 'jq': jQuery } });\n * compiled({ 'users': ['fred', 'barney'] });\n * // => '<li>fred</li><li>barney</li>'\n *\n * // Use the `sourceURL` option to specify a custom sourceURL for the template.\n * var compiled = _.template('hello <%= user %>!', { 'sourceURL': '/basic/greeting.jst' });\n * compiled(data);\n * // => Find the source of \"greeting.jst\" under the Sources tab or Resources panel of the web inspector.\n *\n * // Use the `variable` option to ensure a with-statement isn't used in the compiled template.\n * var compiled = _.template('hi <%= data.user %>!', { 'variable': 'data' });\n * compiled.source;\n * // => function(data) {\n * //   var __t, __p = '';\n * //   __p += 'hi ' + ((__t = ( data.user )) == null ? '' : __t) + '!';\n * //   return __p;\n * // }\n *\n * // Use custom template delimiters.\n * _.templateSettings.interpolate = /{{([\\s\\S]+?)}}/g;\n * var compiled = _.template('hello {{ user }}!');\n * compiled({ 'user': 'mustache' });\n * // => 'hello mustache!'\n *\n * // Use the `source` property to inline compiled templates for meaningful\n * // line numbers in error messages and stack traces.\n * fs.writeFileSync(path.join(process.cwd(), 'jst.js'), '\\\n *   var JST = {\\\n *     \"main\": ' + _.template(mainText).source + '\\\n *   };\\\n * ');\n */\nfunction template(string, options, guard) {\n  // Based on John Resig's `tmpl` implementation\n  // (http://ejohn.org/blog/javascript-micro-templating/)\n  // and Laura Doktorova's doT.js (https://github.com/olado/doT).\n  var settings = templateSettings.imports._.templateSettings || templateSettings;\n\n  if (guard && isIterateeCall(string, options, guard)) {\n    options = undefined;\n  }\n  string = toString(string);\n  options = assignInWith({}, options, settings, customDefaultsAssignIn);\n\n  var imports = assignInWith({}, options.imports, settings.imports, customDefaultsAssignIn),\n      importsKeys = keys(imports),\n      importsValues = baseValues(imports, importsKeys);\n\n  var isEscaping,\n      isEvaluating,\n      index = 0,\n      interpolate = options.interpolate || reNoMatch,\n      source = \"__p += '\";\n\n  // Compile the regexp to match each delimiter.\n  var reDelimiters = RegExp(\n    (options.escape || reNoMatch).source + '|' +\n    interpolate.source + '|' +\n    (interpolate === reInterpolate ? reEsTemplate : reNoMatch).source + '|' +\n    (options.evaluate || reNoMatch).source + '|$'\n  , 'g');\n\n  // Use a sourceURL for easier debugging.\n  // The sourceURL gets injected into the source that's eval-ed, so be careful\n  // to normalize all kinds of whitespace, so e.g. newlines (and unicode versions of it) can't sneak in\n  // and escape the comment, thus injecting code that gets evaled.\n  var sourceURL = hasOwnProperty.call(options, 'sourceURL')\n    ? ('//# sourceURL=' +\n       (options.sourceURL + '').replace(/\\s/g, ' ') +\n       '\\n')\n    : '';\n\n  string.replace(reDelimiters, function(match, escapeValue, interpolateValue, esTemplateValue, evaluateValue, offset) {\n    interpolateValue || (interpolateValue = esTemplateValue);\n\n    // Escape characters that can't be included in string literals.\n    source += string.slice(index, offset).replace(reUnescapedString, escapeStringChar);\n\n    // Replace delimiters with snippets.\n    if (escapeValue) {\n      isEscaping = true;\n      source += \"' +\\n__e(\" + escapeValue + \") +\\n'\";\n    }\n    if (evaluateValue) {\n      isEvaluating = true;\n      source += \"';\\n\" + evaluateValue + \";\\n__p += '\";\n    }\n    if (interpolateValue) {\n      source += \"' +\\n((__t = (\" + interpolateValue + \")) == null ? '' : __t) +\\n'\";\n    }\n    index = offset + match.length;\n\n    // The JS engine embedded in Adobe products needs `match` returned in\n    // order to produce the correct `offset` value.\n    return match;\n  });\n\n  source += \"';\\n\";\n\n  // If `variable` is not specified wrap a with-statement around the generated\n  // code to add the data object to the top of the scope chain.\n  var variable = hasOwnProperty.call(options, 'variable') && options.variable;\n  if (!variable) {\n    source = 'with (obj) {\\n' + source + '\\n}\\n';\n  }\n  // Throw an error if a forbidden character was found in `variable`, to prevent\n  // potential command injection attacks.\n  else if (reForbiddenIdentifierChars.test(variable)) {\n    throw new Error(INVALID_TEMPL_VAR_ERROR_TEXT);\n  }\n\n  // Cleanup code by stripping empty strings.\n  source = (isEvaluating ? source.replace(reEmptyStringLeading, '') : source)\n    .replace(reEmptyStringMiddle, '$1')\n    .replace(reEmptyStringTrailing, '$1;');\n\n  // Frame code as the function body.\n  source = 'function(' + (variable || 'obj') + ') {\\n' +\n    (variable\n      ? ''\n      : 'obj || (obj = {});\\n'\n    ) +\n    \"var __t, __p = ''\" +\n    (isEscaping\n       ? ', __e = _.escape'\n       : ''\n    ) +\n    (isEvaluating\n      ? ', __j = Array.prototype.join;\\n' +\n        \"function print() { __p += __j.call(arguments, '') }\\n\"\n      : ';\\n'\n    ) +\n    source +\n    'return __p\\n}';\n\n  var result = attempt(function() {\n    return Function(importsKeys, sourceURL + 'return ' + source)\n      .apply(undefined, importsValues);\n  });\n\n  // Provide the compiled function's source by its `toString` method or\n  // the `source` property as a convenience for inlining compiled templates.\n  result.source = source;\n  if (isError(result)) {\n    throw result;\n  }\n  return result;\n}\n\nmodule.exports = template;\n","import { GlTooltipDirective } from '../../../directives/tooltip';\nimport GlButton from '../../base/button/button';\nimport { translate } from '../../../utils/i18n';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nvar script = {\n  name: 'ClearIconButton',\n  components: {\n    GlButton\n  },\n  directives: {\n    GlTooltip: GlTooltipDirective\n  },\n  props: {\n    title: {\n      type: String,\n      required: false,\n      default: () => translate('ClearIconButton.title', 'Clear')\n    },\n    tooltipContainer: {\n      required: false,\n      default: false,\n      validator: value => value === false || typeof value === 'string' || value instanceof HTMLElement\n    }\n  }\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('gl-button',_vm._g({directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.hover\",value:({ container: _vm.tooltipContainer }),expression:\"{ container: tooltipContainer }\",modifiers:{\"hover\":true}}],staticClass:\"gl-clear-icon-button\",attrs:{\"variant\":\"default\",\"category\":\"tertiary\",\"size\":\"small\",\"name\":\"clear\",\"icon\":\"clear\",\"title\":_vm.title,\"aria-label\":_vm.title}},_vm.$listeners))};\nvar __vue_staticRenderFns__ = [];\n\n  /* style */\n  const __vue_inject_styles__ = undefined;\n  /* scoped */\n  const __vue_scope_id__ = undefined;\n  /* module identifier */\n  const __vue_module_identifier__ = undefined;\n  /* functional template */\n  const __vue_is_functional_template__ = false;\n  /* style inject */\n  \n  /* style inject SSR */\n  \n  /* style inject shadow dom */\n  \n\n  \n  const __vue_component__ = __vue_normalize__(\n    { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n    __vue_inject_styles__,\n    __vue_script__,\n    __vue_scope_id__,\n    __vue_is_functional_template__,\n    __vue_module_identifier__,\n    false,\n    undefined,\n    undefined,\n    undefined\n  );\n\nexport default __vue_component__;\n","var compareAscending = require('./_compareAscending');\n\n/**\n * Used by `_.orderBy` to compare multiple properties of a value to another\n * and stable sort them.\n *\n * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n * of corresponding values.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {boolean[]|string[]} orders The order to sort by for each property.\n * @returns {number} Returns the sort order indicator for `object`.\n */\nfunction compareMultiple(object, other, orders) {\n  var index = -1,\n      objCriteria = object.criteria,\n      othCriteria = other.criteria,\n      length = objCriteria.length,\n      ordersLength = orders.length;\n\n  while (++index < length) {\n    var result = compareAscending(objCriteria[index], othCriteria[index]);\n    if (result) {\n      if (index >= ordersLength) {\n        return result;\n      }\n      var order = orders[index];\n      return result * (order == 'desc' ? -1 : 1);\n    }\n  }\n  // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n  // that causes it, under certain circumstances, to provide the same value for\n  // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n  // for more details.\n  //\n  // This also ensures a stable sort in V8 and other engines.\n  // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n  return object.index - other.index;\n}\n\nmodule.exports = compareMultiple;\n","/** Used to escape characters for inclusion in compiled string literals. */\nvar stringEscapes = {\n  '\\\\': '\\\\',\n  \"'\": \"'\",\n  '\\n': 'n',\n  '\\r': 'r',\n  '\\u2028': 'u2028',\n  '\\u2029': 'u2029'\n};\n\n/**\n * Used by `_.template` to escape characters for inclusion in compiled string literals.\n *\n * @private\n * @param {string} chr The matched character to escape.\n * @returns {string} Returns the escaped character.\n */\nfunction escapeStringChar(chr) {\n  return '\\\\' + stringEscapes[chr];\n}\n\nmodule.exports = escapeStringChar;\n","import Vue from 'vue';\nimport isFunction from 'lodash/isFunction';\nimport isString from 'lodash/isString';\nimport { DISCLOSURE_DROPDOWN_ITEM_NAME, DISCLOSURE_DROPDOWN_GROUP_NAME } from './constants';\n\nconst itemValidator = item => {\n  var _item$text;\n  return (item === null || item === void 0 ? void 0 : (_item$text = item.text) === null || _item$text === void 0 ? void 0 : _item$text.length) > 0 && !Array.isArray(item === null || item === void 0 ? void 0 : item.items);\n};\nconst isItem = item => Boolean(item) && itemValidator(item);\nconst isGroup = group => Boolean(group) && Array.isArray(group.items) && Boolean(group.items.length) &&\n// eslint-disable-next-line unicorn/no-array-callback-reference\ngroup.items.every(isItem);\n\n// eslint-disable-next-line unicorn/no-array-callback-reference\nconst itemsValidator = items => items.every(isItem) || items.every(isGroup);\nconst isListItem = tag => ['gl-disclosure-dropdown-group', 'gl-disclosure-dropdown-item', 'li'].includes(tag);\nconst isValidSlotTagVue2 = vNode => {\n  var _vNode$componentOptio;\n  return Boolean(vNode) && isListItem(((_vNode$componentOptio = vNode.componentOptions) === null || _vNode$componentOptio === void 0 ? void 0 : _vNode$componentOptio.tag) || vNode.tag);\n};\nconst isValidSlotTagVue3 = vNode => {\n  var _vNode$type;\n  return [DISCLOSURE_DROPDOWN_ITEM_NAME, DISCLOSURE_DROPDOWN_GROUP_NAME].includes((_vNode$type = vNode.type) === null || _vNode$type === void 0 ? void 0 : _vNode$type.name) || vNode.type === 'li';\n};\nconst hasOnlyListItemsVue2 = defaultSlot => {\n  const nodes = defaultSlot();\n  if (!Array.isArray(nodes)) {\n    return false;\n  }\n  const tags = nodes.filter(vNode => vNode.tag);\n  return tags.length && tags.every(tag => isValidSlotTagVue2(tag));\n};\nconst hasOnlyListItemsVue3 = defaultSlot => {\n  const nodes = defaultSlot();\n  const fragment = nodes.find(node => Array.isArray(node.children) && node.children.length);\n  const targetNodes = fragment ? fragment.children : nodes;\n  return targetNodes\n  // Remove empty text vNodes\n  .filter(vNode => !isString(vNode.text) || vNode.text.trim().length > 0).every(vNode => isValidSlotTagVue3(vNode));\n};\nconst hasOnlyListItems = defaultSlot => {\n  if (!isFunction(defaultSlot)) {\n    return false;\n  }\n  if (Vue.version.startsWith('3')) {\n    return hasOnlyListItemsVue3(defaultSlot);\n  }\n  return hasOnlyListItemsVue2(defaultSlot);\n};\n\nexport { hasOnlyListItems, isGroup, isItem, itemsValidator };\n","var copyObject = require('./_copyObject'),\n    createAssigner = require('./_createAssigner'),\n    keysIn = require('./keysIn');\n\n/**\n * This method is like `_.assignIn` except that it accepts `customizer`\n * which is invoked to produce the assigned values. If `customizer` returns\n * `undefined`, assignment is handled by the method instead. The `customizer`\n * is invoked with five arguments: (objValue, srcValue, key, object, source).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias extendWith\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @see _.assignWith\n * @example\n *\n * function customizer(objValue, srcValue) {\n *   return _.isUndefined(objValue) ? srcValue : objValue;\n * }\n *\n * var defaults = _.partialRight(_.assignInWith, customizer);\n *\n * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\nvar assignInWith = createAssigner(function(object, source, srcIndex, customizer) {\n  copyObject(source, keysIn(source), object, customizer);\n});\n\nmodule.exports = assignInWith;\n","var arrayMap = require('./_arrayMap'),\n    baseGet = require('./_baseGet'),\n    baseIteratee = require('./_baseIteratee'),\n    baseMap = require('./_baseMap'),\n    baseSortBy = require('./_baseSortBy'),\n    baseUnary = require('./_baseUnary'),\n    compareMultiple = require('./_compareMultiple'),\n    identity = require('./identity'),\n    isArray = require('./isArray');\n\n/**\n * The base implementation of `_.orderBy` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n * @param {string[]} orders The sort orders of `iteratees`.\n * @returns {Array} Returns the new sorted array.\n */\nfunction baseOrderBy(collection, iteratees, orders) {\n  if (iteratees.length) {\n    iteratees = arrayMap(iteratees, function(iteratee) {\n      if (isArray(iteratee)) {\n        return function(value) {\n          return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);\n        }\n      }\n      return iteratee;\n    });\n  } else {\n    iteratees = [identity];\n  }\n\n  var index = -1;\n  iteratees = arrayMap(iteratees, baseUnary(baseIteratee));\n\n  var result = baseMap(collection, function(value, key, collection) {\n    var criteria = arrayMap(iteratees, function(iteratee) {\n      return iteratee(value);\n    });\n    return { 'criteria': criteria, 'index': ++index, 'value': value };\n  });\n\n  return baseSortBy(result, function(object, other) {\n    return compareMultiple(object, other, orders);\n  });\n}\n\nmodule.exports = baseOrderBy;\n","module.exports = require('./lib/visibility.timers.js')\n","var isSymbol = require('./isSymbol');\n\n/**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\nfunction compareAscending(value, other) {\n  if (value !== other) {\n    var valIsDefined = value !== undefined,\n        valIsNull = value === null,\n        valIsReflexive = value === value,\n        valIsSymbol = isSymbol(value);\n\n    var othIsDefined = other !== undefined,\n        othIsNull = other === null,\n        othIsReflexive = other === other,\n        othIsSymbol = isSymbol(other);\n\n    if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||\n        (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||\n        (valIsNull && othIsDefined && othIsReflexive) ||\n        (!valIsDefined && othIsReflexive) ||\n        !valIsReflexive) {\n      return 1;\n    }\n    if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||\n        (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||\n        (othIsNull && valIsDefined && valIsReflexive) ||\n        (!othIsDefined && valIsReflexive) ||\n        !othIsReflexive) {\n      return -1;\n    }\n  }\n  return 0;\n}\n\nmodule.exports = compareAscending;\n","const DISCLOSURE_DROPDOWN_ITEM_NAME = 'GlDisclosureDropdownItem';\nconst DISCLOSURE_DROPDOWN_GROUP_NAME = 'GlDisclosureDropdownGroup';\nconst DISCLOSURE_DROPDOWN_GROUP_BORDER_POSITIONS = {\n  top: 'top',\n  bottom: 'bottom'\n};\n\nexport { DISCLOSURE_DROPDOWN_GROUP_BORDER_POSITIONS, DISCLOSURE_DROPDOWN_GROUP_NAME, DISCLOSURE_DROPDOWN_ITEM_NAME };\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar charAt = require('../internals/string-multibyte').charAt;\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\n\n// `String.prototype.at` method\n// https://github.com/mathiasbynens/String.prototype.at\n$({ target: 'String', proto: true, forced: true }, {\n  at: function at(index) {\n    var S = toString(requireObjectCoercible(this));\n    var len = S.length;\n    var relativeIndex = toIntegerOrInfinity(index);\n    var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex;\n    return (k < 0 || k >= len) ? undefined : charAt(S, k);\n  }\n});\n","/** Used to match template delimiters. */\nvar reInterpolate = /<%=([\\s\\S]+?)%>/g;\n\nmodule.exports = reInterpolate;\n","var baseGetTag = require('./_baseGetTag'),\n    isObjectLike = require('./isObjectLike'),\n    isPlainObject = require('./isPlainObject');\n\n/** `Object#toString` result references. */\nvar domExcTag = '[object DOMException]',\n    errorTag = '[object Error]';\n\n/**\n * Checks if `value` is an `Error`, `EvalError`, `RangeError`, `ReferenceError`,\n * `SyntaxError`, `TypeError`, or `URIError` object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an error object, else `false`.\n * @example\n *\n * _.isError(new Error);\n * // => true\n *\n * _.isError(Error);\n * // => false\n */\nfunction isError(value) {\n  if (!isObjectLike(value)) {\n    return false;\n  }\n  var tag = baseGetTag(value);\n  return tag == errorTag || tag == domExcTag ||\n    (typeof value.message == 'string' && typeof value.name == 'string' && !isPlainObject(value));\n}\n\nmodule.exports = isError;\n","import isEmpty from 'lodash/isEmpty';\nimport { maxZIndex, drawerVariants } from '../../../utils/constants';\nimport GlButton from '../button/button';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\n//\nvar script = {\n  name: 'GlDrawer',\n  components: {\n    GlButton\n  },\n  props: {\n    open: {\n      type: Boolean,\n      required: true\n    },\n    headerHeight: {\n      type: String,\n      required: false,\n      default: ''\n    },\n    headerSticky: {\n      type: Boolean,\n      required: false,\n      default: false\n    },\n    zIndex: {\n      type: Number,\n      required: false,\n      default: maxZIndex\n    },\n    variant: {\n      type: String,\n      required: false,\n      default: drawerVariants.default,\n      validator: value => Object.keys(drawerVariants).includes(value)\n    }\n  },\n  computed: {\n    positionFromTop() {\n      return !isEmpty(this.headerHeight) ? this.headerHeight : 0;\n    },\n    drawerStyles() {\n      const styles = {\n        top: this.positionFromTop,\n        zIndex: this.zIndex\n      };\n      if (this.positionFromTop) {\n        styles.maxHeight = `calc(100vh - ${this.positionFromTop})`;\n      }\n      return styles;\n    },\n    drawerHeaderStyles() {\n      return {\n        zIndex: this.headerSticky ? maxZIndex : null\n      };\n    },\n    shouldRenderFooter() {\n      // eslint-disable-next-line @gitlab/vue-prefer-dollar-scopedslots\n      return Boolean(this.$slots.footer);\n    },\n    variantClass() {\n      // eslint-disable-next-line @gitlab/tailwind-no-interpolation -- Not a CSS utility\n      return `gl-drawer-${this.variant}`;\n    }\n  },\n  watch: {\n    open: {\n      immediate: true,\n      handler(open) {\n        if (open) {\n          document.addEventListener('keydown', this.handleEscape);\n        } else {\n          document.removeEventListener('keydown', this.handleEscape);\n        }\n      }\n    }\n  },\n  beforeDestroy() {\n    document.removeEventListener('keydown', this.handleEscape);\n  },\n  methods: {\n    emitOpened() {\n      /**\n       * Emits when the opening animation has finished.\n       * @event opened\n       */\n      this.$emit('opened');\n    },\n    handleEscape(e) {\n      const ESC = 27;\n      if (this.open && e.keyCode === ESC) {\n        this.$emit('close');\n      }\n    }\n  }\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('transition',{attrs:{\"name\":\"gl-drawer\"},on:{\"after-enter\":_vm.emitOpened}},[(_vm.open)?_c('aside',{staticClass:\"gl-drawer\",class:_vm.variantClass,style:(_vm.drawerStyles)},[_c('div',{staticClass:\"gl-drawer-header\",class:{ 'gl-drawer-header-sticky': _vm.headerSticky },style:(_vm.drawerHeaderStyles)},[_c('div',{staticClass:\"gl-drawer-title\"},[_vm._t(\"title\"),_vm._v(\" \"),_c('gl-button',{staticClass:\"gl-drawer-close-button\",attrs:{\"category\":\"tertiary\",\"size\":\"small\",\"icon\":\"close\",\"aria-label\":\"Close drawer\"},on:{\"click\":function($event){return _vm.$emit('close')}}})],2),_vm._v(\" \"),_vm._t(\"header\")],2),_vm._v(\" \"),_c('div',{staticClass:\"gl-drawer-body\",class:{ 'gl-drawer-body-scrim': !_vm.shouldRenderFooter }},[_vm._t(\"default\")],2),_vm._v(\" \"),(_vm.shouldRenderFooter)?_c('div',{staticClass:\"gl-drawer-footer gl-drawer-footer-sticky\",class:{ 'gl-drawer-body-scrim-on-footer': _vm.shouldRenderFooter },style:({ zIndex: _vm.zIndex })},[_vm._t(\"footer\")],2):_vm._e()]):_vm._e()])};\nvar __vue_staticRenderFns__ = [];\n\n  /* style */\n  const __vue_inject_styles__ = undefined;\n  /* scoped */\n  const __vue_scope_id__ = undefined;\n  /* module identifier */\n  const __vue_module_identifier__ = undefined;\n  /* functional template */\n  const __vue_is_functional_template__ = false;\n  /* style inject */\n  \n  /* style inject SSR */\n  \n  /* style inject shadow dom */\n  \n\n  \n  const __vue_component__ = __vue_normalize__(\n    { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n    __vue_inject_styles__,\n    __vue_script__,\n    __vue_scope_id__,\n    __vue_is_functional_template__,\n    __vue_module_identifier__,\n    false,\n    undefined,\n    undefined,\n    undefined\n  );\n\nexport default __vue_component__;\n",";(function (window) {\n    \"use strict\";\n\n    var lastTimer = -1;\n\n    var install = function (Visibility) {\n\n        // Run callback every `interval` milliseconds if page is visible and\n        // every `hiddenInterval` milliseconds if page is hidden.\n        //\n        //   Visibility.every(60 * 1000, 5 * 60 * 1000, function () {\n        //       checkNewMails();\n        //   });\n        //\n        // You can skip `hiddenInterval` and callback will be called only if\n        // page is visible.\n        //\n        //   Visibility.every(1000, function () {\n        //       updateCountdown();\n        //   });\n        //\n        // It is analog of `setInterval(callback, interval)` but use visibility\n        // state.\n        //\n        // It return timer ID, that you can use in `Visibility.stop(id)` to stop\n        // timer (`clearInterval` analog).\n        // Warning: timer ID is different from interval ID from `setInterval`,\n        // so don’t use it in `clearInterval`.\n        //\n        // On change state from hidden to visible timers will be execute.\n        Visibility.every = function (interval, hiddenInterval, callback) {\n            Visibility._time();\n\n            if ( !callback ) {\n                callback = hiddenInterval;\n                hiddenInterval = null;\n            }\n\n            lastTimer += 1;\n            var number = lastTimer;\n\n            Visibility._timers[number] = {\n                visible:  interval,\n                hidden:   hiddenInterval,\n                callback: callback\n            };\n            Visibility._run(number, false);\n\n            if ( Visibility.isSupported() ) {\n                Visibility._listen();\n            }\n            return number;\n        };\n\n        // Stop timer from `every` method by it ID (`every` method return it).\n        //\n        //   slideshow = Visibility.every(5 * 1000, function () {\n        //       changeSlide();\n        //   });\n        //   $('.stopSlideshow').click(function () {\n        //       Visibility.stop(slideshow);\n        //   });\n        Visibility.stop = function(id) {\n            if ( !Visibility._timers[id] ) {\n                return false;\n            }\n            Visibility._stop(id);\n            delete Visibility._timers[id];\n            return true;\n        };\n\n        // Callbacks and intervals added by `every` method.\n        Visibility._timers = { };\n\n        // Initialize variables on page loading.\n        Visibility._time = function () {\n            if ( Visibility._timed ) {\n                return;\n            }\n            Visibility._timed     = true;\n            Visibility._wasHidden = Visibility.hidden();\n\n            Visibility.change(function () {\n                Visibility._stopRun();\n                Visibility._wasHidden = Visibility.hidden();\n            });\n        };\n\n        // Try to run timer from every method by it’s ID. It will be use\n        // `interval` or `hiddenInterval` depending on visibility state.\n        // If page is hidden and `hiddenInterval` is null,\n        // it will not run timer.\n        //\n        // Argument `runNow` say, that timers must be execute now too.\n        Visibility._run = function (id, runNow) {\n            var interval,\n                timer = Visibility._timers[id];\n\n            if ( Visibility.hidden() ) {\n                if ( null === timer.hidden ) {\n                    return;\n                }\n                interval = timer.hidden;\n            } else {\n                interval = timer.visible;\n            }\n\n            var runner = function () {\n                timer.last = new Date();\n                timer.callback.call(window);\n            }\n\n            if ( runNow ) {\n                var now  = new Date();\n                var last = now - timer.last ;\n\n                if ( interval > last ) {\n                    timer.delay = setTimeout(function () {\n                        timer.id = setInterval(runner, interval);\n                        runner();\n                    }, interval - last);\n                } else {\n                    timer.id = setInterval(runner, interval);\n                    runner();\n                }\n\n            } else {\n              timer.id = setInterval(runner, interval);\n            }\n        };\n\n        // Stop timer from `every` method by it’s ID.\n        Visibility._stop = function (id) {\n            var timer = Visibility._timers[id];\n            clearInterval(timer.id);\n            clearTimeout(timer.delay);\n            delete timer.id;\n            delete timer.delay;\n        };\n\n        // Listener for `visibilitychange` event.\n        Visibility._stopRun = function (event) {\n            var isHidden  = Visibility.hidden(),\n                wasHidden = Visibility._wasHidden;\n\n            if ( (isHidden && !wasHidden) || (!isHidden && wasHidden) ) {\n                for ( var i in Visibility._timers ) {\n                    Visibility._stop(i);\n                    Visibility._run(i, !isHidden);\n                }\n            }\n        };\n\n        return Visibility;\n    }\n\n    if ( typeof(module) != 'undefined' && module.exports ) {\n        module.exports = install(require('./visibility.core'));\n    } else {\n        install(window.Visibility)\n    }\n\n})(window);\n","var baseEach = require('./_baseEach'),\n    isArrayLike = require('./isArrayLike');\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n  var index = -1,\n      result = isArrayLike(collection) ? Array(collection.length) : [];\n\n  baseEach(collection, function(value, key, collection) {\n    result[++index] = iteratee(value, key, collection);\n  });\n  return result;\n}\n\nmodule.exports = baseMap;\n","var baseFlatten = require('./_baseFlatten'),\n    baseOrderBy = require('./_baseOrderBy'),\n    baseRest = require('./_baseRest'),\n    isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates an array of elements, sorted in ascending order by the results of\n * running each element in a collection thru each iteratee. This method\n * performs a stable sort, that is, it preserves the original sort order of\n * equal elements. The iteratees are invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n *  The iteratees to sort by.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n *   { 'user': 'fred',   'age': 48 },\n *   { 'user': 'barney', 'age': 36 },\n *   { 'user': 'fred',   'age': 30 },\n *   { 'user': 'barney', 'age': 34 }\n * ];\n *\n * _.sortBy(users, [function(o) { return o.user; }]);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]]\n *\n * _.sortBy(users, ['user', 'age']);\n * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]]\n */\nvar sortBy = baseRest(function(collection, iteratees) {\n  if (collection == null) {\n    return [];\n  }\n  var length = iteratees.length;\n  if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {\n    iteratees = [];\n  } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {\n    iteratees = [iteratees[0]];\n  }\n  return baseOrderBy(collection, baseFlatten(iteratees, 1), []);\n});\n\nmodule.exports = sortBy;\n","var escape = require('./escape'),\n    reEscape = require('./_reEscape'),\n    reEvaluate = require('./_reEvaluate'),\n    reInterpolate = require('./_reInterpolate');\n\n/**\n * By default, the template delimiters used by lodash are like those in\n * embedded Ruby (ERB) as well as ES2015 template strings. Change the\n * following template settings to use alternative delimiters.\n *\n * @static\n * @memberOf _\n * @type {Object}\n */\nvar templateSettings = {\n\n  /**\n   * Used to detect `data` property values to be HTML-escaped.\n   *\n   * @memberOf _.templateSettings\n   * @type {RegExp}\n   */\n  'escape': reEscape,\n\n  /**\n   * Used to detect code to be evaluated.\n   *\n   * @memberOf _.templateSettings\n   * @type {RegExp}\n   */\n  'evaluate': reEvaluate,\n\n  /**\n   * Used to detect `data` property values to inject.\n   *\n   * @memberOf _.templateSettings\n   * @type {RegExp}\n   */\n  'interpolate': reInterpolate,\n\n  /**\n   * Used to reference the data object in the template text.\n   *\n   * @memberOf _.templateSettings\n   * @type {string}\n   */\n  'variable': '',\n\n  /**\n   * Used to import variables into the compiled template.\n   *\n   * @memberOf _.templateSettings\n   * @type {Object}\n   */\n  'imports': {\n\n    /**\n     * A reference to the `lodash` function.\n     *\n     * @memberOf _.templateSettings.imports\n     * @type {Function}\n     */\n    '_': { 'escape': escape }\n  }\n};\n\nmodule.exports = templateSettings;\n","var toString = require('./toString');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g,\n    reHasRegExpChar = RegExp(reRegExpChar.source);\n\n/**\n * Escapes the `RegExp` special characters \"^\", \"$\", \"\\\", \".\", \"*\", \"+\",\n * \"?\", \"(\", \")\", \"[\", \"]\", \"{\", \"}\", and \"|\" in `string`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escapeRegExp('[lodash](https://lodash.com/)');\n * // => '\\[lodash\\]\\(https://lodash\\.com/\\)'\n */\nfunction escapeRegExp(string) {\n  string = toString(string);\n  return (string && reHasRegExpChar.test(string))\n    ? string.replace(reRegExpChar, '\\\\$&')\n    : string;\n}\n\nmodule.exports = escapeRegExp;\n","import { BLink } from '../../../../vendor/bootstrap-vue/src/components/link/link';\nimport { ENTER, SPACE } from '../constants';\nimport { stopEvent } from '../../../../utils/utils';\nimport { isItem } from './utils';\nimport { DISCLOSURE_DROPDOWN_ITEM_NAME } from './constants';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nconst ITEM_CLASS = 'gl-new-dropdown-item';\nvar script = {\n  name: DISCLOSURE_DROPDOWN_ITEM_NAME,\n  ITEM_CLASS,\n  components: {\n    BLink\n  },\n  props: {\n    item: {\n      type: Object,\n      required: false,\n      default: null,\n      validator: isItem\n    }\n  },\n  computed: {\n    isLink() {\n      var _this$item, _this$item2;\n      return typeof ((_this$item = this.item) === null || _this$item === void 0 ? void 0 : _this$item.href) === 'string' || typeof ((_this$item2 = this.item) === null || _this$item2 === void 0 ? void 0 : _this$item2.to) === 'string';\n    },\n    isCustomContent() {\n      return Boolean(this.$scopedSlots.default);\n    },\n    itemComponent() {\n      const {\n        item\n      } = this;\n      if (this.isLink) return {\n        is: BLink,\n        attrs: {\n          href: item.href,\n          to: item.to,\n          ...item.extraAttrs\n        },\n        listeners: {\n          click: this.action\n        }\n      };\n      return {\n        is: 'button',\n        attrs: {\n          ...(item === null || item === void 0 ? void 0 : item.extraAttrs),\n          type: 'button'\n        },\n        listeners: {\n          click: () => {\n            var _item$action;\n            item === null || item === void 0 ? void 0 : (_item$action = item.action) === null || _item$action === void 0 ? void 0 : _item$action.call(undefined, item);\n            this.action();\n          }\n        }\n      };\n    },\n    listIndex() {\n      var _this$item3, _this$item3$extraAttr;\n      return (_this$item3 = this.item) !== null && _this$item3 !== void 0 && (_this$item3$extraAttr = _this$item3.extraAttrs) !== null && _this$item3$extraAttr !== void 0 && _this$item3$extraAttr.disabled ? null : 0;\n    },\n    componentIndex() {\n      var _this$item4, _this$item4$extraAttr;\n      return (_this$item4 = this.item) !== null && _this$item4 !== void 0 && (_this$item4$extraAttr = _this$item4.extraAttrs) !== null && _this$item4$extraAttr !== void 0 && _this$item4$extraAttr.disabled ? null : -1;\n    },\n    wrapperClass() {\n      var _this$item$wrapperCla, _this$item5;\n      return (_this$item$wrapperCla = (_this$item5 = this.item) === null || _this$item5 === void 0 ? void 0 : _this$item5.wrapperClass) !== null && _this$item$wrapperCla !== void 0 ? _this$item$wrapperCla : '';\n    },\n    wrapperListeners() {\n      const listeners = {\n        keydown: this.onKeydown\n      };\n      if (this.isCustomContent) {\n        listeners.click = this.action;\n      }\n      return listeners;\n    }\n  },\n  methods: {\n    onKeydown(event) {\n      const {\n        code\n      } = event;\n      if (code === ENTER || code === SPACE) {\n        if (this.isCustomContent) {\n          this.action();\n        } else {\n          stopEvent(event);\n          /** Instead of simply navigating or calling the action, we want\n           * the `a/button` to be the target of the event as it might have additional attributes.\n           * E.g. `a` might have `target` attribute.\n           */\n          const e = new MouseEvent('click', {\n            bubbles: true,\n            cancelable: true\n          });\n          if (this.isLink) {\n            this.$refs.item.$el.dispatchEvent(e);\n          } else {\n            var _this$$refs$item;\n            (_this$$refs$item = this.$refs.item) === null || _this$$refs$item === void 0 ? void 0 : _this$$refs$item.dispatchEvent(e);\n          }\n        }\n      }\n    },\n    action() {\n      this.$emit('action', this.item);\n    }\n  }\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('li',_vm._g({class:[_vm.$options.ITEM_CLASS, _vm.wrapperClass],attrs:{\"tabindex\":_vm.listIndex,\"data-testid\":\"disclosure-dropdown-item\"}},_vm.wrapperListeners),[_vm._t(\"default\",function(){return [_c(_vm.itemComponent.is,_vm._g(_vm._b({ref:\"item\",tag:\"component\",staticClass:\"gl-new-dropdown-item-content\",attrs:{\"tabindex\":_vm.componentIndex}},'component',_vm.itemComponent.attrs,false),_vm.itemComponent.listeners),[_c('span',{staticClass:\"gl-new-dropdown-item-text-wrapper\"},[_vm._t(\"list-item\",function(){return [_vm._v(\"\\n          \"+_vm._s(_vm.item.text)+\"\\n        \")]})],2)])]})],2)};\nvar __vue_staticRenderFns__ = [];\n\n  /* style */\n  const __vue_inject_styles__ = undefined;\n  /* scoped */\n  const __vue_scope_id__ = undefined;\n  /* module identifier */\n  const __vue_module_identifier__ = undefined;\n  /* functional template */\n  const __vue_is_functional_template__ = false;\n  /* style inject */\n  \n  /* style inject SSR */\n  \n  /* style inject shadow dom */\n  \n\n  \n  const __vue_component__ = __vue_normalize__(\n    { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n    __vue_inject_styles__,\n    __vue_script__,\n    __vue_scope_id__,\n    __vue_is_functional_template__,\n    __vue_module_identifier__,\n    false,\n    undefined,\n    undefined,\n    undefined\n  );\n\nexport default __vue_component__;\nexport { ITEM_CLASS };\n","var eq = require('./eq');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used by `_.defaults` to customize its `_.assignIn` use to assign properties\n * of source objects to the destination object for all destination properties\n * that resolve to `undefined`.\n *\n * @private\n * @param {*} objValue The destination value.\n * @param {*} srcValue The source value.\n * @param {string} key The key of the property to assign.\n * @param {Object} object The parent object of `objValue`.\n * @returns {*} Returns the value to assign.\n */\nfunction customDefaultsAssignIn(objValue, srcValue, key, object) {\n  if (objValue === undefined ||\n      (eq(objValue, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n    return srcValue;\n  }\n  return objValue;\n}\n\nmodule.exports = customDefaultsAssignIn;\n","/** Used to match template delimiters. */\nvar reEvaluate = /<%([\\s\\S]+?)%>/g;\n\nmodule.exports = reEvaluate;\n","/** Used to match template delimiters. */\nvar reEscape = /<%-([\\s\\S]+?)%>/g;\n\nmodule.exports = reEscape;\n",";(function (global) {\n    \"use strict\";\n\n    var lastId = -1;\n\n    // Visibility.js allow you to know, that your web page is in the background\n    // tab and thus not visible to the user. This library is wrap under\n    // Page Visibility API. It fix problems with different vendor prefixes and\n    // add high-level useful functions.\n    var self = {\n\n        // Call callback only when page become to visible for user or\n        // call it now if page is visible now or Page Visibility API\n        // doesn’t supported.\n        //\n        // Return false if API isn’t supported, true if page is already visible\n        // or listener ID (you can use it in `unbind` method) if page isn’t\n        // visible now.\n        //\n        //   Visibility.onVisible(function () {\n        //       startIntroAnimation();\n        //   });\n        onVisible: function (callback) {\n            var support = self.isSupported();\n            if ( !support || !self.hidden() ) {\n                callback();\n                return support;\n            }\n\n            var listener = self.change(function (e, state) {\n                if ( !self.hidden() ) {\n                    self.unbind(listener);\n                    callback();\n                }\n            });\n            return listener;\n        },\n\n        // Call callback when visibility will be changed. First argument for\n        // callback will be original event object, second will be visibility\n        // state name.\n        //\n        // Return listener ID to unbind listener by `unbind` method.\n        //\n        // If Page Visibility API doesn’t supported method will be return false\n        // and callback never will be called.\n        //\n        //   Visibility.change(function(e, state) {\n        //       Statistics.visibilityChange(state);\n        //   });\n        //\n        // It is just proxy to `visibilitychange` event, but use vendor prefix.\n        change: function (callback) {\n            if ( !self.isSupported() ) {\n                return false;\n            }\n            lastId += 1;\n            var number = lastId;\n            self._callbacks[number] = callback;\n            self._listen();\n            return number;\n        },\n\n        // Remove `change` listener by it ID.\n        //\n        //   var id = Visibility.change(function(e, state) {\n        //       firstChangeCallback();\n        //       Visibility.unbind(id);\n        //   });\n        unbind: function (id) {\n            delete self._callbacks[id];\n        },\n\n        // Call `callback` in any state, expect “prerender”. If current state\n        // is “prerender” it will wait until state will be changed.\n        // If Page Visibility API doesn’t supported, it will call `callback`\n        // immediately.\n        //\n        // Return false if API isn’t supported, true if page is already after\n        // prerendering or listener ID (you can use it in `unbind` method)\n        // if page is prerended now.\n        //\n        //   Visibility.afterPrerendering(function () {\n        //       Statistics.countVisitor();\n        //   });\n        afterPrerendering: function (callback) {\n            var support   = self.isSupported();\n            var prerender = 'prerender';\n\n            if ( !support || prerender != self.state() ) {\n                callback();\n                return support;\n            }\n\n            var listener = self.change(function (e, state) {\n                if ( prerender != state ) {\n                    self.unbind(listener);\n                    callback();\n                }\n            });\n            return listener;\n        },\n\n        // Return true if page now isn’t visible to user.\n        //\n        //   if ( !Visibility.hidden() ) {\n        //       VideoPlayer.play();\n        //   }\n        //\n        // It is just proxy to `document.hidden`, but use vendor prefix.\n        hidden: function () {\n            return !!(self._doc.hidden || self._doc.webkitHidden);\n        },\n\n        // Return visibility state: 'visible', 'hidden' or 'prerender'.\n        //\n        //   if ( 'prerender' == Visibility.state() ) {\n        //       Statistics.pageIsPrerendering();\n        //   }\n        //\n        // Don’t use `Visibility.state()` to detect, is page visible, because\n        // visibility states can extend in next API versions.\n        // Use more simpler and general `Visibility.hidden()` for this cases.\n        //\n        // It is just proxy to `document.visibilityState`, but use\n        // vendor prefix.\n        state: function () {\n            return self._doc.visibilityState       ||\n                   self._doc.webkitVisibilityState ||\n                   'visible';\n        },\n\n        // Return true if browser support Page Visibility API.\n        //\n        //   if ( Visibility.isSupported() ) {\n        //       Statistics.startTrackingVisibility();\n        //       Visibility.change(function(e, state)) {\n        //           Statistics.trackVisibility(state);\n        //       });\n        //   }\n        isSupported: function () {\n            return !!(self._doc.visibilityState ||\n                      self._doc.webkitVisibilityState);\n        },\n\n        // Link to document object to change it in tests.\n        _doc: document || {},\n\n        // Callbacks from `change` method, that wait visibility changes.\n        _callbacks: { },\n\n        // Listener for `visibilitychange` event.\n        _change: function(event) {\n            var state = self.state();\n\n            for ( var i in self._callbacks ) {\n                self._callbacks[i].call(self._doc, event, state);\n            }\n        },\n\n        // Set listener for `visibilitychange` event.\n        _listen: function () {\n            if ( self._init ) {\n                return;\n            }\n\n            var event = 'visibilitychange';\n            if ( self._doc.webkitVisibilityState ) {\n                event = 'webkit' + event;\n            }\n\n            var listener = function () {\n                self._change.apply(self, arguments);\n            };\n            if ( self._doc.addEventListener ) {\n                self._doc.addEventListener(event, listener);\n            } else {\n                self._doc.attachEvent(event, listener);\n            }\n            self._init = true;\n        }\n\n    };\n\n    if ( typeof(module) != 'undefined' && module.exports ) {\n        module.exports = self;\n    } else {\n        global.Visibility = self;\n    }\n\n})(this);\n","\n /*! \n  * portal-vue © Thorsten Lünborg, 2019 \n  * \n  * Version: 2.1.7\n  * \n  * LICENCE: MIT \n  * \n  * https://github.com/linusborg/portal-vue\n  * \n */\n\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar Vue = _interopDefault(require('vue'));\n\nfunction _typeof(obj) {\n  if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n    _typeof = function (obj) {\n      return typeof obj;\n    };\n  } else {\n    _typeof = function (obj) {\n      return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n    };\n  }\n\n  return _typeof(obj);\n}\n\nfunction _toConsumableArray(arr) {\n  return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n  if (Array.isArray(arr)) {\n    for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n    return arr2;\n  }\n}\n\nfunction _iterableToArray(iter) {\n  if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nvar inBrowser = typeof window !== 'undefined';\nfunction freeze(item) {\n  if (Array.isArray(item) || _typeof(item) === 'object') {\n    return Object.freeze(item);\n  }\n\n  return item;\n}\nfunction combinePassengers(transports) {\n  var slotProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  return transports.reduce(function (passengers, transport) {\n    var temp = transport.passengers[0];\n    var newPassengers = typeof temp === 'function' ? temp(slotProps) : transport.passengers;\n    return passengers.concat(newPassengers);\n  }, []);\n}\nfunction stableSort(array, compareFn) {\n  return array.map(function (v, idx) {\n    return [idx, v];\n  }).sort(function (a, b) {\n    return compareFn(a[1], b[1]) || a[0] - b[0];\n  }).map(function (c) {\n    return c[1];\n  });\n}\nfunction pick(obj, keys) {\n  return keys.reduce(function (acc, key) {\n    if (obj.hasOwnProperty(key)) {\n      acc[key] = obj[key];\n    }\n\n    return acc;\n  }, {});\n}\n\nvar transports = {};\nvar targets = {};\nvar sources = {};\nvar Wormhole = Vue.extend({\n  data: function data() {\n    return {\n      transports: transports,\n      targets: targets,\n      sources: sources,\n      trackInstances: inBrowser\n    };\n  },\n  methods: {\n    open: function open(transport) {\n      if (!inBrowser) return;\n      var to = transport.to,\n          from = transport.from,\n          passengers = transport.passengers,\n          _transport$order = transport.order,\n          order = _transport$order === void 0 ? Infinity : _transport$order;\n      if (!to || !from || !passengers) return;\n      var newTransport = {\n        to: to,\n        from: from,\n        passengers: freeze(passengers),\n        order: order\n      };\n      var keys = Object.keys(this.transports);\n\n      if (keys.indexOf(to) === -1) {\n        Vue.set(this.transports, to, []);\n      }\n\n      var currentIndex = this.$_getTransportIndex(newTransport); // Copying the array here so that the PortalTarget change event will actually contain two distinct arrays\n\n      var newTransports = this.transports[to].slice(0);\n\n      if (currentIndex === -1) {\n        newTransports.push(newTransport);\n      } else {\n        newTransports[currentIndex] = newTransport;\n      }\n\n      this.transports[to] = stableSort(newTransports, function (a, b) {\n        return a.order - b.order;\n      });\n    },\n    close: function close(transport) {\n      var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n      var to = transport.to,\n          from = transport.from;\n      if (!to || !from && force === false) return;\n\n      if (!this.transports[to]) {\n        return;\n      }\n\n      if (force) {\n        this.transports[to] = [];\n      } else {\n        var index = this.$_getTransportIndex(transport);\n\n        if (index >= 0) {\n          // Copying the array here so that the PortalTarget change event will actually contain two distinct arrays\n          var newTransports = this.transports[to].slice(0);\n          newTransports.splice(index, 1);\n          this.transports[to] = newTransports;\n        }\n      }\n    },\n    registerTarget: function registerTarget(target, vm, force) {\n      if (!inBrowser) return;\n\n      if (this.trackInstances && !force && this.targets[target]) {\n        console.warn(\"[portal-vue]: Target \".concat(target, \" already exists\"));\n      }\n\n      this.$set(this.targets, target, Object.freeze([vm]));\n    },\n    unregisterTarget: function unregisterTarget(target) {\n      this.$delete(this.targets, target);\n    },\n    registerSource: function registerSource(source, vm, force) {\n      if (!inBrowser) return;\n\n      if (this.trackInstances && !force && this.sources[source]) {\n        console.warn(\"[portal-vue]: source \".concat(source, \" already exists\"));\n      }\n\n      this.$set(this.sources, source, Object.freeze([vm]));\n    },\n    unregisterSource: function unregisterSource(source) {\n      this.$delete(this.sources, source);\n    },\n    hasTarget: function hasTarget(to) {\n      return !!(this.targets[to] && this.targets[to][0]);\n    },\n    hasSource: function hasSource(to) {\n      return !!(this.sources[to] && this.sources[to][0]);\n    },\n    hasContentFor: function hasContentFor(to) {\n      return !!this.transports[to] && !!this.transports[to].length;\n    },\n    // Internal\n    $_getTransportIndex: function $_getTransportIndex(_ref) {\n      var to = _ref.to,\n          from = _ref.from;\n\n      for (var i in this.transports[to]) {\n        if (this.transports[to][i].from === from) {\n          return +i;\n        }\n      }\n\n      return -1;\n    }\n  }\n});\nvar wormhole = new Wormhole(transports);\n\nvar _id = 1;\nvar Portal = Vue.extend({\n  name: 'portal',\n  props: {\n    disabled: {\n      type: Boolean\n    },\n    name: {\n      type: String,\n      default: function _default() {\n        return String(_id++);\n      }\n    },\n    order: {\n      type: Number,\n      default: 0\n    },\n    slim: {\n      type: Boolean\n    },\n    slotProps: {\n      type: Object,\n      default: function _default() {\n        return {};\n      }\n    },\n    tag: {\n      type: String,\n      default: 'DIV'\n    },\n    to: {\n      type: String,\n      default: function _default() {\n        return String(Math.round(Math.random() * 10000000));\n      }\n    }\n  },\n  created: function created() {\n    var _this = this;\n\n    this.$nextTick(function () {\n      wormhole.registerSource(_this.name, _this);\n    });\n  },\n  mounted: function mounted() {\n    if (!this.disabled) {\n      this.sendUpdate();\n    }\n  },\n  updated: function updated() {\n    if (this.disabled) {\n      this.clear();\n    } else {\n      this.sendUpdate();\n    }\n  },\n  beforeDestroy: function beforeDestroy() {\n    wormhole.unregisterSource(this.name);\n    this.clear();\n  },\n  watch: {\n    to: function to(newValue, oldValue) {\n      oldValue && oldValue !== newValue && this.clear(oldValue);\n      this.sendUpdate();\n    }\n  },\n  methods: {\n    clear: function clear(target) {\n      var closer = {\n        from: this.name,\n        to: target || this.to\n      };\n      wormhole.close(closer);\n    },\n    normalizeSlots: function normalizeSlots() {\n      return this.$scopedSlots.default ? [this.$scopedSlots.default] : this.$slots.default;\n    },\n    normalizeOwnChildren: function normalizeOwnChildren(children) {\n      return typeof children === 'function' ? children(this.slotProps) : children;\n    },\n    sendUpdate: function sendUpdate() {\n      var slotContent = this.normalizeSlots();\n\n      if (slotContent) {\n        var transport = {\n          from: this.name,\n          to: this.to,\n          passengers: _toConsumableArray(slotContent),\n          order: this.order\n        };\n        wormhole.open(transport);\n      } else {\n        this.clear();\n      }\n    }\n  },\n  render: function render(h) {\n    var children = this.$slots.default || this.$scopedSlots.default || [];\n    var Tag = this.tag;\n\n    if (children && this.disabled) {\n      return children.length <= 1 && this.slim ? this.normalizeOwnChildren(children)[0] : h(Tag, [this.normalizeOwnChildren(children)]);\n    } else {\n      return this.slim ? h() : h(Tag, {\n        class: {\n          'v-portal': true\n        },\n        style: {\n          display: 'none'\n        },\n        key: 'v-portal-placeholder'\n      });\n    }\n  }\n});\n\nvar PortalTarget = Vue.extend({\n  name: 'portalTarget',\n  props: {\n    multiple: {\n      type: Boolean,\n      default: false\n    },\n    name: {\n      type: String,\n      required: true\n    },\n    slim: {\n      type: Boolean,\n      default: false\n    },\n    slotProps: {\n      type: Object,\n      default: function _default() {\n        return {};\n      }\n    },\n    tag: {\n      type: String,\n      default: 'div'\n    },\n    transition: {\n      type: [String, Object, Function]\n    }\n  },\n  data: function data() {\n    return {\n      transports: wormhole.transports,\n      firstRender: true\n    };\n  },\n  created: function created() {\n    var _this = this;\n\n    this.$nextTick(function () {\n      wormhole.registerTarget(_this.name, _this);\n    });\n  },\n  watch: {\n    ownTransports: function ownTransports() {\n      this.$emit('change', this.children().length > 0);\n    },\n    name: function name(newVal, oldVal) {\n      /**\r\n       * TODO\r\n       * This should warn as well ...\r\n       */\n      wormhole.unregisterTarget(oldVal);\n      wormhole.registerTarget(newVal, this);\n    }\n  },\n  mounted: function mounted() {\n    var _this2 = this;\n\n    if (this.transition) {\n      this.$nextTick(function () {\n        // only when we have a transition, because it causes a re-render\n        _this2.firstRender = false;\n      });\n    }\n  },\n  beforeDestroy: function beforeDestroy() {\n    wormhole.unregisterTarget(this.name);\n  },\n  computed: {\n    ownTransports: function ownTransports() {\n      var transports = this.transports[this.name] || [];\n\n      if (this.multiple) {\n        return transports;\n      }\n\n      return transports.length === 0 ? [] : [transports[transports.length - 1]];\n    },\n    passengers: function passengers() {\n      return combinePassengers(this.ownTransports, this.slotProps);\n    }\n  },\n  methods: {\n    // can't be a computed prop because it has to \"react\" to $slot changes.\n    children: function children() {\n      return this.passengers.length !== 0 ? this.passengers : this.$scopedSlots.default ? this.$scopedSlots.default(this.slotProps) : this.$slots.default || [];\n    },\n    // can't be a computed prop because it has to \"react\" to this.children().\n    noWrapper: function noWrapper() {\n      var noWrapper = this.slim && !this.transition;\n\n      if (noWrapper && this.children().length > 1) {\n        console.warn('[portal-vue]: PortalTarget with `slim` option received more than one child element.');\n      }\n\n      return noWrapper;\n    }\n  },\n  render: function render(h) {\n    var noWrapper = this.noWrapper();\n    var children = this.children();\n    var Tag = this.transition || this.tag;\n    return noWrapper ? children[0] : this.slim && !Tag ? h() : h(Tag, {\n      props: {\n        // if we have a transition component, pass the tag if it exists\n        tag: this.transition && this.tag ? this.tag : undefined\n      },\n      class: {\n        'vue-portal-target': true\n      }\n    }, children);\n  }\n});\n\nvar _id$1 = 0;\nvar portalProps = ['disabled', 'name', 'order', 'slim', 'slotProps', 'tag', 'to'];\nvar targetProps = ['multiple', 'transition'];\nvar MountingPortal = Vue.extend({\n  name: 'MountingPortal',\n  inheritAttrs: false,\n  props: {\n    append: {\n      type: [Boolean, String]\n    },\n    bail: {\n      type: Boolean\n    },\n    mountTo: {\n      type: String,\n      required: true\n    },\n    // Portal\n    disabled: {\n      type: Boolean\n    },\n    // name for the portal\n    name: {\n      type: String,\n      default: function _default() {\n        return 'mounted_' + String(_id$1++);\n      }\n    },\n    order: {\n      type: Number,\n      default: 0\n    },\n    slim: {\n      type: Boolean\n    },\n    slotProps: {\n      type: Object,\n      default: function _default() {\n        return {};\n      }\n    },\n    tag: {\n      type: String,\n      default: 'DIV'\n    },\n    // name for the target\n    to: {\n      type: String,\n      default: function _default() {\n        return String(Math.round(Math.random() * 10000000));\n      }\n    },\n    // Target\n    multiple: {\n      type: Boolean,\n      default: false\n    },\n    targetSlim: {\n      type: Boolean\n    },\n    targetSlotProps: {\n      type: Object,\n      default: function _default() {\n        return {};\n      }\n    },\n    targetTag: {\n      type: String,\n      default: 'div'\n    },\n    transition: {\n      type: [String, Object, Function]\n    }\n  },\n  created: function created() {\n    if (typeof document === 'undefined') return;\n    var el = document.querySelector(this.mountTo);\n\n    if (!el) {\n      console.error(\"[portal-vue]: Mount Point '\".concat(this.mountTo, \"' not found in document\"));\n      return;\n    }\n\n    var props = this.$props; // Target already exists\n\n    if (wormhole.targets[props.name]) {\n      if (props.bail) {\n        console.warn(\"[portal-vue]: Target \".concat(props.name, \" is already mounted.\\n        Aborting because 'bail: true' is set\"));\n      } else {\n        this.portalTarget = wormhole.targets[props.name];\n      }\n\n      return;\n    }\n\n    var append = props.append;\n\n    if (append) {\n      var type = typeof append === 'string' ? append : 'DIV';\n      var mountEl = document.createElement(type);\n      el.appendChild(mountEl);\n      el = mountEl;\n    } // get props for target from $props\n    // we have to rename a few of them\n\n\n    var _props = pick(this.$props, targetProps);\n\n    _props.slim = this.targetSlim;\n    _props.tag = this.targetTag;\n    _props.slotProps = this.targetSlotProps;\n    _props.name = this.to;\n    this.portalTarget = new PortalTarget({\n      el: el,\n      parent: this.$parent || this,\n      propsData: _props\n    });\n  },\n  beforeDestroy: function beforeDestroy() {\n    var target = this.portalTarget;\n\n    if (this.append) {\n      var el = target.$el;\n      el.parentNode.removeChild(el);\n    }\n\n    target.$destroy();\n  },\n  render: function render(h) {\n    if (!this.portalTarget) {\n      console.warn(\"[portal-vue] Target wasn't mounted\");\n      return h();\n    } // if there's no \"manual\" scoped slot, so we create a <Portal> ourselves\n\n\n    if (!this.$scopedSlots.manual) {\n      var props = pick(this.$props, portalProps);\n      return h(Portal, {\n        props: props,\n        attrs: this.$attrs,\n        on: this.$listeners,\n        scopedSlots: this.$scopedSlots\n      }, this.$slots.default);\n    } // else, we render the scoped slot\n\n\n    var content = this.$scopedSlots.manual({\n      to: this.to\n    }); // if user used <template> for the scoped slot\n    // content will be an array\n\n    if (Array.isArray(content)) {\n      content = content[0];\n    }\n\n    if (!content) return h();\n    return content;\n  }\n});\n\nfunction install(Vue$$1) {\n  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  Vue$$1.component(options.portalName || 'Portal', Portal);\n  Vue$$1.component(options.portalTargetName || 'PortalTarget', PortalTarget);\n  Vue$$1.component(options.MountingPortalName || 'MountingPortal', MountingPortal);\n}\n\nvar index = {\n  install: install\n};\n\nexports.default = index;\nexports.Portal = Portal;\nexports.PortalTarget = PortalTarget;\nexports.MountingPortal = MountingPortal;\nexports.Wormhole = wormhole;\n//# sourceMappingURL=portal-vue.common.js.map\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n  return function ($this, pos) {\n    var S = toString(requireObjectCoercible($this));\n    var position = toIntegerOrInfinity(pos);\n    var size = S.length;\n    var first, second;\n    if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n    first = charCodeAt(S, position);\n    return first < 0xD800 || first > 0xDBFF || position + 1 === size\n      || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n        ? CONVERT_TO_STRING\n          ? charAt(S, position)\n          : first\n        : CONVERT_TO_STRING\n          ? stringSlice(S, position, position + 2)\n          : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n  };\n};\n\nmodule.exports = {\n  // `String.prototype.codePointAt` method\n  // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n  codeAt: createMethod(false),\n  // `String.prototype.at` method\n  // https://github.com/mathiasbynens/String.prototype.at\n  charAt: createMethod(true)\n};\n","/**\n * The base implementation of `_.sortBy` which uses `comparer` to define the\n * sort order of `array` and replaces criteria objects with their corresponding\n * values.\n *\n * @private\n * @param {Array} array The array to sort.\n * @param {Function} comparer The function to define sort order.\n * @returns {Array} Returns `array`.\n */\nfunction baseSortBy(array, comparer) {\n  var length = array.length;\n\n  array.sort(comparer);\n  while (length--) {\n    array[length] = array[length].value;\n  }\n  return array;\n}\n\nmodule.exports = baseSortBy;\n","import { Wormhole, PortalTarget } from 'portal-vue';\nimport { extend } from '../../vue';\nimport { NAME_TOASTER } from '../../constants/components';\nimport { EVENT_NAME_DESTROYED } from '../../constants/events';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { requestAF, removeClass } from '../../utils/dom';\nimport { getRootEventName } from '../../utils/events';\nimport { makePropsConfigurable, makeProp } from '../../utils/props';\nimport { warn } from '../../utils/warn';\nimport { listenOnRootMixin } from '../../mixins/listen-on-root';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\n\n// --- Helper components ---\n\n// @vue/component\nconst DefaultTransition = /*#__PURE__*/extend({\n  mixins: [normalizeSlotMixin],\n  data() {\n    return {\n      // Transition classes base name\n      name: 'b-toaster'\n    };\n  },\n  methods: {\n    onAfterEnter(el) {\n      // Work around a Vue.js bug where `*-enter-to` class is not removed\n      // See: https://github.com/vuejs/vue/pull/7901\n      // The `*-move` class is also stuck on elements that moved,\n      // but there are no JavaScript hooks to handle after move\n      // See: https://github.com/vuejs/vue/pull/7906\n      requestAF(() => {\n        removeClass(el, `${this.name}-enter-to`);\n      });\n    }\n  },\n  render(h) {\n    return h('transition-group', {\n      props: {\n        tag: 'div',\n        name: this.name\n      },\n      on: {\n        afterEnter: this.onAfterEnter\n      }\n    }, this.normalizeSlot());\n  }\n});\n\n// --- Props ---\n\nconst props = makePropsConfigurable({\n  // Allowed: 'true' or 'false' or `null`\n  ariaAtomic: makeProp(PROP_TYPE_STRING),\n  ariaLive: makeProp(PROP_TYPE_STRING),\n  name: makeProp(PROP_TYPE_STRING, undefined, true),\n  // Required\n  // Aria role\n  role: makeProp(PROP_TYPE_STRING)\n}, NAME_TOASTER);\n\n// --- Main component ---\n\n// @vue/component\nconst BToaster = /*#__PURE__*/extend({\n  name: NAME_TOASTER,\n  mixins: [listenOnRootMixin],\n  props,\n  data() {\n    return {\n      // We don't render on SSR or if a an existing target found\n      doRender: false,\n      dead: false,\n      // Toaster names cannot change once created\n      staticName: this.name\n    };\n  },\n  beforeMount() {\n    const {\n      name\n    } = this;\n    this.staticName = name;\n\n    /* istanbul ignore if */\n    if (Wormhole.hasTarget(name)) {\n      warn(`A \"<portal-target>\" with name \"${name}\" already exists in the document.`, NAME_TOASTER);\n      this.dead = true;\n    } else {\n      this.doRender = true;\n    }\n  },\n  beforeDestroy() {\n    // Let toasts made with `this.$bvToast.toast()` know that this toaster\n    // is being destroyed and should should also destroy/hide themselves\n    if (this.doRender) {\n      this.emitOnRoot(getRootEventName(NAME_TOASTER, EVENT_NAME_DESTROYED), this.name);\n    }\n  },\n  destroyed() {\n    // Remove from DOM if needed\n    const {\n      $el\n    } = this;\n    /* istanbul ignore next: difficult to test */\n    if ($el && $el.parentNode) {\n      $el.parentNode.removeChild($el);\n    }\n  },\n  render(h) {\n    let $toaster = h('div', {\n      class: ['gl-hidden', {\n        'b-dead-toaster': this.dead\n      }]\n    });\n    if (this.doRender) {\n      const $target = h(PortalTarget, {\n        staticClass: 'b-toaster-slot',\n        props: {\n          name: this.staticName,\n          multiple: true,\n          tag: 'div',\n          slim: false,\n          // transition: this.transition || DefaultTransition\n          transition: DefaultTransition\n        }\n      });\n      $toaster = h('div', {\n        staticClass: 'b-toaster',\n        class: [this.staticName],\n        attrs: {\n          id: this.staticName,\n          // Fallback to null to make sure attribute doesn't exist\n          role: this.role || null,\n          'aria-live': this.ariaLive,\n          'aria-atomic': this.ariaAtomic\n        }\n      }, [$target]);\n    }\n    return $toaster;\n  }\n});\n\nexport { BToaster, DefaultTransition, props };\n","import { Wormhole, Portal } from 'portal-vue';\nimport { extend, COMPONENT_UID_KEY } from '../../vue';\nimport { NAME_TOAST, NAME_TOASTER } from '../../constants/components';\nimport { EVENT_NAME_CHANGE, EVENT_NAME_SHOW, EVENT_NAME_HIDE, EVENT_NAME_DESTROYED, EVENT_OPTIONS_NO_CAPTURE, EVENT_NAME_SHOWN, EVENT_NAME_HIDDEN } from '../../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER_STRING, PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_TOAST_TITLE, SLOT_NAME_DEFAULT } from '../../constants/slots';\nimport { BvEvent } from '../../utils/bv-event.class';\nimport { requestAF } from '../../utils/dom';\nimport { getRootActionEventName, getRootEventName, eventOnOff } from '../../utils/events';\nimport { mathMax } from '../../utils/math';\nimport { makeModelMixin } from '../../utils/model';\nimport { toInteger } from '../../utils/number';\nimport { pick, sortKeys } from '../../utils/object';\nimport { makePropsConfigurable, makeProp, pluckProps } from '../../utils/props';\nimport { isLink } from '../../utils/router';\nimport { createNewChildComponent } from '../../utils/create-new-child-component';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { props as props$2, idMixin } from '../../mixins/id';\nimport { listenOnRootMixin } from '../../mixins/listen-on-root';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { scopedStyleMixin } from '../../mixins/scoped-style';\nimport { props as props$1, BLink } from '../link/link';\nimport { BVTransition } from '../transition/bv-transition';\nimport { BToaster } from './toaster';\n\n// --- Constants ---\n\nconst {\n  mixin: modelMixin,\n  props: modelProps,\n  prop: MODEL_PROP_NAME,\n  event: MODEL_EVENT_NAME\n} = makeModelMixin('visible', {\n  type: PROP_TYPE_BOOLEAN,\n  defaultValue: false,\n  event: EVENT_NAME_CHANGE\n});\nconst MIN_DURATION = 1000;\n\n// --- Props ---\n\nconst linkProps = pick(props$1, ['href', 'to']);\nconst props = makePropsConfigurable(sortKeys({\n  ...props$2,\n  ...modelProps,\n  ...linkProps,\n  appendToast: makeProp(PROP_TYPE_BOOLEAN, false),\n  autoHideDelay: makeProp(PROP_TYPE_NUMBER_STRING, 5000),\n  bodyClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n  headerClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n  headerTag: makeProp(PROP_TYPE_STRING, 'header'),\n  // Switches role to 'status' and aria-live to 'polite'\n  isStatus: makeProp(PROP_TYPE_BOOLEAN, false),\n  noAutoHide: makeProp(PROP_TYPE_BOOLEAN, false),\n  noFade: makeProp(PROP_TYPE_BOOLEAN, false),\n  noHoverPause: makeProp(PROP_TYPE_BOOLEAN, false),\n  solid: makeProp(PROP_TYPE_BOOLEAN, false),\n  // Render the toast in place, rather than in a portal-target\n  static: makeProp(PROP_TYPE_BOOLEAN, false),\n  title: makeProp(PROP_TYPE_STRING),\n  toastClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n  toaster: makeProp(PROP_TYPE_STRING, 'b-toaster-top-right'),\n  variant: makeProp(PROP_TYPE_STRING)\n}), NAME_TOAST);\n\n// --- Main component ---\n\n// @vue/component\nconst BToast = /*#__PURE__*/extend({\n  name: NAME_TOAST,\n  mixins: [attrsMixin, idMixin, modelMixin, listenOnRootMixin, normalizeSlotMixin, scopedStyleMixin],\n  inheritAttrs: false,\n  props,\n  data() {\n    return {\n      isMounted: false,\n      doRender: false,\n      localShow: false,\n      isTransitioning: false,\n      isHiding: false,\n      order: 0,\n      dismissStarted: 0,\n      resumeDismiss: 0\n    };\n  },\n  computed: {\n    toastClasses() {\n      const {\n        appendToast,\n        variant\n      } = this;\n      return {\n        'b-toast-solid': this.solid,\n        'b-toast-append': appendToast,\n        'b-toast-prepend': !appendToast,\n        [`b-toast-${variant}`]: variant\n      };\n    },\n    slotScope() {\n      const {\n        hide\n      } = this;\n      return {\n        hide\n      };\n    },\n    computedDuration() {\n      // Minimum supported duration is 1 second\n      return mathMax(toInteger(this.autoHideDelay, 0), MIN_DURATION);\n    },\n    computedToaster() {\n      return String(this.toaster);\n    },\n    transitionHandlers() {\n      return {\n        beforeEnter: this.onBeforeEnter,\n        afterEnter: this.onAfterEnter,\n        beforeLeave: this.onBeforeLeave,\n        afterLeave: this.onAfterLeave\n      };\n    },\n    computedAttrs() {\n      return {\n        ...this.bvAttrs,\n        id: this.safeId(),\n        tabindex: '0'\n      };\n    }\n  },\n  watch: {\n    [MODEL_PROP_NAME](newValue) {\n      this[newValue ? 'show' : 'hide']();\n    },\n    localShow(newValue) {\n      if (newValue !== this[MODEL_PROP_NAME]) {\n        this.$emit(MODEL_EVENT_NAME, newValue);\n      }\n    },\n    /* istanbul ignore next */\n    toaster() {\n      // If toaster target changed, make sure toaster exists\n      this.$nextTick(this.ensureToaster);\n    },\n    /* istanbul ignore next */\n    static(newValue) {\n      // If static changes to true, and the toast is showing,\n      // ensure the toaster target exists\n      if (newValue && this.localShow) {\n        this.ensureToaster();\n      }\n    }\n  },\n  created() {\n    // Create private non-reactive props\n    this.$_dismissTimer = null;\n  },\n  mounted() {\n    this.isMounted = true;\n    this.$nextTick(() => {\n      if (this[MODEL_PROP_NAME]) {\n        requestAF(() => {\n          this.show();\n        });\n      }\n    });\n    // Listen for global $root show events\n    this.listenOnRoot(getRootActionEventName(NAME_TOAST, EVENT_NAME_SHOW), id => {\n      if (id === this.safeId()) {\n        this.show();\n      }\n    });\n    // Listen for global $root hide events\n    this.listenOnRoot(getRootActionEventName(NAME_TOAST, EVENT_NAME_HIDE), id => {\n      if (!id || id === this.safeId()) {\n        this.hide();\n      }\n    });\n    // Make sure we hide when toaster is destroyed\n    /* istanbul ignore next: difficult to test */\n    this.listenOnRoot(getRootEventName(NAME_TOASTER, EVENT_NAME_DESTROYED), toaster => {\n      /* istanbul ignore next */\n      if (toaster === this.computedToaster) {\n        this.hide();\n      }\n    });\n  },\n  beforeDestroy() {\n    this.clearDismissTimer();\n  },\n  methods: {\n    show() {\n      if (!this.localShow) {\n        this.ensureToaster();\n        const showEvent = this.buildEvent(EVENT_NAME_SHOW);\n        this.emitEvent(showEvent);\n        this.dismissStarted = this.resumeDismiss = 0;\n        this.order = Date.now() * (this.appendToast ? 1 : -1);\n        this.isHiding = false;\n        this.doRender = true;\n        this.$nextTick(() => {\n          // We show the toast after we have rendered the portal and b-toast wrapper\n          // so that screen readers will properly announce the toast\n          requestAF(() => {\n            this.localShow = true;\n          });\n        });\n      }\n    },\n    hide() {\n      if (this.localShow) {\n        const hideEvent = this.buildEvent(EVENT_NAME_HIDE);\n        this.emitEvent(hideEvent);\n        this.setHoverHandler(false);\n        this.dismissStarted = this.resumeDismiss = 0;\n        this.clearDismissTimer();\n        this.isHiding = true;\n        requestAF(() => {\n          this.localShow = false;\n        });\n      }\n    },\n    buildEvent(type) {\n      let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n      return new BvEvent(type, {\n        cancelable: false,\n        target: this.$el || null,\n        relatedTarget: null,\n        ...options,\n        vueTarget: this,\n        componentId: this.safeId()\n      });\n    },\n    emitEvent(bvEvent) {\n      const {\n        type\n      } = bvEvent;\n      this.emitOnRoot(getRootEventName(NAME_TOAST, type), bvEvent);\n      this.$emit(type, bvEvent);\n    },\n    ensureToaster() {\n      if (this.static) {\n        return;\n      }\n      const {\n        computedToaster\n      } = this;\n      if (!Wormhole.hasTarget(computedToaster)) {\n        const div = document.createElement('div');\n        document.body.appendChild(div);\n        const toaster = createNewChildComponent(this.bvEventRoot, BToaster, {\n          propsData: {\n            name: computedToaster\n          }\n        });\n        toaster.$mount(div);\n      }\n    },\n    startDismissTimer() {\n      this.clearDismissTimer();\n      if (!this.noAutoHide) {\n        this.$_dismissTimer = setTimeout(this.hide, this.resumeDismiss || this.computedDuration);\n        this.dismissStarted = Date.now();\n        this.resumeDismiss = 0;\n      }\n    },\n    clearDismissTimer() {\n      clearTimeout(this.$_dismissTimer);\n      this.$_dismissTimer = null;\n    },\n    setHoverHandler(on) {\n      const el = this.$refs['b-toast'];\n      eventOnOff(on, el, 'mouseenter', this.onPause, EVENT_OPTIONS_NO_CAPTURE);\n      eventOnOff(on, el, 'mouseleave', this.onUnPause, EVENT_OPTIONS_NO_CAPTURE);\n    },\n    onPause() {\n      // Determine time remaining, and then pause timer\n      if (this.noAutoHide || this.noHoverPause || !this.$_dismissTimer || this.resumeDismiss) {\n        return;\n      }\n      const passed = Date.now() - this.dismissStarted;\n      if (passed > 0) {\n        this.clearDismissTimer();\n        this.resumeDismiss = mathMax(this.computedDuration - passed, MIN_DURATION);\n      }\n    },\n    onUnPause() {\n      // Restart timer with max of time remaining or 1 second\n      if (this.noAutoHide || this.noHoverPause || !this.resumeDismiss) {\n        this.resumeDismiss = this.dismissStarted = 0;\n        return;\n      }\n      this.startDismissTimer();\n    },\n    onLinkClick() {\n      // We delay the close to allow time for the\n      // browser to process the link click\n      this.$nextTick(() => {\n        requestAF(() => {\n          this.hide();\n        });\n      });\n    },\n    onBeforeEnter() {\n      this.isTransitioning = true;\n    },\n    onAfterEnter() {\n      this.isTransitioning = false;\n      const hiddenEvent = this.buildEvent(EVENT_NAME_SHOWN);\n      this.emitEvent(hiddenEvent);\n      this.startDismissTimer();\n      this.setHoverHandler(true);\n    },\n    onBeforeLeave() {\n      this.isTransitioning = true;\n    },\n    onAfterLeave() {\n      this.isTransitioning = false;\n      this.order = 0;\n      this.resumeDismiss = this.dismissStarted = 0;\n      const hiddenEvent = this.buildEvent(EVENT_NAME_HIDDEN);\n      this.emitEvent(hiddenEvent);\n      this.doRender = false;\n    },\n    // Render helper for generating the toast\n    makeToast(h) {\n      const {\n        slotScope\n      } = this;\n      const link = isLink(this);\n      const $headerContent = [];\n      const $title = this.normalizeSlot(SLOT_NAME_TOAST_TITLE, slotScope);\n      if ($title) {\n        $headerContent.push($title);\n      }\n      let $header = h();\n      if ($headerContent.length > 0) {\n        $header = h(this.headerTag, {\n          staticClass: 'toast-header',\n          class: this.headerClass\n        }, $headerContent);\n      }\n      const $body = h(link ? BLink : 'div', {\n        staticClass: 'toast-body',\n        class: this.bodyClass,\n        props: link ? pluckProps(linkProps, this) : {},\n        on: link ? {\n          click: this.onLinkClick\n        } : {}\n      }, this.normalizeSlot(SLOT_NAME_DEFAULT, slotScope));\n      return h('div', {\n        staticClass: 'toast',\n        class: this.toastClass,\n        attrs: this.computedAttrs,\n        key: `toast-${this[COMPONENT_UID_KEY]}`,\n        ref: 'toast'\n      }, [$header, $body]);\n    }\n  },\n  render(h) {\n    if (!this.doRender || !this.isMounted) {\n      return h();\n    }\n    const {\n      order,\n      static: isStatic,\n      isHiding,\n      isStatus\n    } = this;\n    const name = `b-toast-${this[COMPONENT_UID_KEY]}`;\n    const $toast = h('div', {\n      staticClass: 'b-toast',\n      class: this.toastClasses,\n      attrs: {\n        // If scoped styles are applied and the toast is not static,\n        // make sure the scoped style data attribute is applied\n        ...(isStatic ? {} : this.scopedStyleAttrs),\n        id: this.safeId('_toast_outer'),\n        role: isHiding ? null : isStatus ? 'status' : 'alert',\n        'aria-live': isHiding ? null : isStatus ? 'polite' : 'assertive',\n        'aria-atomic': isHiding ? null : 'true'\n      },\n      key: name,\n      ref: 'b-toast'\n    }, [h(BVTransition, {\n      props: {\n        noFade: this.noFade\n      },\n      on: this.transitionHandlers\n    }, [this.localShow ? this.makeToast(h) : h()])]);\n    return h(Portal, {\n      props: {\n        name,\n        to: this.computedToaster,\n        order,\n        slim: true,\n        disabled: isStatic\n      }\n    }, [$toast]);\n  }\n});\n\nexport { BToast, props };\n","import { NAME_TOAST_POP, NAME_TOASTER, NAME_TOAST } from '../../../constants/components';\nimport { HOOK_EVENT_NAME_DESTROYED, EVENT_NAME_HIDDEN, EVENT_NAME_DESTROYED, EVENT_NAME_SHOW, EVENT_NAME_HIDE } from '../../../constants/events';\nimport { useParentMixin } from '../../../mixins/use-parent';\nimport { concat } from '../../../utils/array';\nimport { getComponentConfig } from '../../../utils/config';\nimport { requestAF } from '../../../utils/dom';\nimport { getRootEventName, getRootActionEventName } from '../../../utils/events';\nimport { isUndefined } from '../../../utils/inspect';\nimport { keys, omit, hasOwnProperty, defineProperty, assign, defineProperties, readonlyDescriptor } from '../../../utils/object';\nimport { pluginFactory } from '../../../utils/plugins';\nimport { warn, warnNotClient } from '../../../utils/warn';\nimport { createNewChildComponent } from '../../../utils/create-new-child-component';\nimport { getEventRoot } from '../../../utils/get-event-root';\nimport { props, BToast } from '../toast';\n\n/**\n * Plugin for adding `$bvToast` property to all Vue instances\n */\n\n// --- Constants ---\n\nconst PROP_NAME = '$bvToast';\nconst PROP_NAME_PRIV = '_bv__toast';\n\n// Base toast props that are allowed\n// Some may be ignored or overridden on some message boxes\n// Prop ID is allowed, but really only should be used for testing\n// We need to add it in explicitly as it comes from the `idMixin`\nconst BASE_PROPS = ['id', ...keys(omit(props, ['static', 'visible']))];\n\n// Map prop names to toast slot names\nconst propsToSlots = {\n  toastContent: 'default',\n  title: 'toast-title'\n};\n\n// --- Helper methods ---\n\n// Method to filter only recognized props that are not undefined\nconst filterOptions = options => {\n  return BASE_PROPS.reduce((memo, key) => {\n    if (!isUndefined(options[key])) {\n      memo[key] = options[key];\n    }\n    return memo;\n  }, {});\n};\n\n// Method to install `$bvToast` VM injection\nconst plugin = Vue => {\n  // Create a private sub-component constructor that\n  // extends BToast and self-destructs after hidden\n  // @vue/component\n  const BVToastPop = Vue.extend({\n    name: NAME_TOAST_POP,\n    extends: BToast,\n    mixins: [useParentMixin],\n    destroyed() {\n      // Make sure we not in document any more\n      const {\n        $el\n      } = this;\n      if ($el && $el.parentNode) {\n        $el.parentNode.removeChild($el);\n      }\n    },\n    mounted() {\n      // Self destruct handler\n      const handleDestroy = () => {\n        // Ensure the toast has been force hidden\n        this.localShow = false;\n        this.doRender = false;\n        this.$nextTick(() => {\n          this.$nextTick(() => {\n            // In a `requestAF()` to release control back to application\n            // and to allow the portal-target time to remove the content\n            requestAF(() => {\n              this.$destroy();\n            });\n          });\n        });\n      };\n      // Self destruct if parent destroyed\n      this.bvParent.$once(HOOK_EVENT_NAME_DESTROYED, handleDestroy);\n      // Self destruct after hidden\n      this.$once(EVENT_NAME_HIDDEN, handleDestroy);\n      // Self destruct when toaster is destroyed\n      this.listenOnRoot(getRootEventName(NAME_TOASTER, EVENT_NAME_DESTROYED), toaster => {\n        /* istanbul ignore next: hard to test */\n        if (toaster === this.toaster) {\n          handleDestroy();\n        }\n      });\n    }\n  });\n\n  // Private method to generate the on-demand toast\n  const makeToast = (props, parent) => {\n    if (warnNotClient(PROP_NAME)) {\n      /* istanbul ignore next */\n      return;\n    }\n    // Create an instance of `BVToastPop` component\n    const toast = createNewChildComponent(parent, BVToastPop, {\n      // We set parent as the local VM so these toasts can emit events on the\n      // app `$root`, and it ensures `BToast` is destroyed when parent is destroyed\n      propsData: {\n        ...filterOptions(getComponentConfig(NAME_TOAST)),\n        // Add in (filtered) user supplied props\n        ...omit(props, keys(propsToSlots)),\n        // Props that can't be overridden\n        static: false,\n        visible: true\n      }\n    });\n    // Convert certain props to slots\n    keys(propsToSlots).forEach(prop => {\n      const value = props[prop];\n      if (!isUndefined(value)) {\n        toast.$slots[propsToSlots[prop]] = concat(value);\n      }\n    });\n    // Create a mount point (a DIV) and mount it (which triggers the show)\n    const div = document.createElement('div');\n    document.body.appendChild(div);\n    toast.$mount(div);\n  };\n\n  // Declare BvToast instance property class\n  class BvToast {\n    constructor(vm) {\n      // Assign the new properties to this instance\n      assign(this, {\n        _vm: vm,\n        _root: getEventRoot(vm)\n      });\n      // Set these properties as read-only and non-enumerable\n      defineProperties(this, {\n        _vm: readonlyDescriptor(),\n        _root: readonlyDescriptor()\n      });\n    }\n\n    // --- Public Instance methods ---\n\n    // Opens a user defined toast and returns immediately\n    toast(content) {\n      let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n      if (!content || warnNotClient(PROP_NAME)) {\n        /* istanbul ignore next */\n        return;\n      }\n      makeToast({\n        ...filterOptions(options),\n        toastContent: content\n      }, this._vm);\n    }\n\n    // shows a `<b-toast>` component with the specified ID\n    show(id) {\n      if (id) {\n        this._root.$emit(getRootActionEventName(NAME_TOAST, EVENT_NAME_SHOW), id);\n      }\n    }\n\n    // Hide a toast with specified ID, or if not ID all toasts\n    hide() {\n      let id = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n      this._root.$emit(getRootActionEventName(NAME_TOAST, EVENT_NAME_HIDE), id);\n    }\n  }\n\n  // Add our instance mixin\n  Vue.mixin({\n    beforeCreate() {\n      // Because we need access to `$root` for `$emits`, and VM for parenting,\n      // we have to create a fresh instance of `BvToast` for each VM\n      this[PROP_NAME_PRIV] = new BvToast(this);\n    }\n  });\n\n  // Define our read-only `$bvToast` instance property\n  // Placed in an if just in case in HMR mode\n  if (!hasOwnProperty(Vue.prototype, PROP_NAME)) {\n    defineProperty(Vue.prototype, PROP_NAME, {\n      get() {\n        /* istanbul ignore next */\n        if (!this || !this[PROP_NAME_PRIV]) {\n          warn(`\"${PROP_NAME}\" must be accessed from a Vue instance \"this\" context.`, NAME_TOAST);\n        }\n        return this[PROP_NAME_PRIV];\n      }\n    });\n  }\n};\nconst BVToastPlugin = /*#__PURE__*/pluginFactory({\n  plugins: {\n    plugin\n  }\n});\n\nexport { BVToastPlugin };\n","import { BVToastPlugin } from './helpers/bv-toast';\nimport { BToast } from './toast';\nexport { BToast } from './toast';\nimport { BToaster } from './toaster';\nexport { BToaster } from './toaster';\nimport { pluginFactory } from '../../utils/plugins';\n\nconst ToastPlugin = /*#__PURE__*/pluginFactory({\n  components: {\n    BToast,\n    BToaster\n  },\n  // $bvToast injection\n  plugins: {\n    BVToastPlugin\n  }\n});\n\nexport { ToastPlugin };\n","import isFunction from 'lodash/isFunction';\nimport { ToastPlugin } from '../../../vendor/bootstrap-vue/src/components/toast/index';\nimport CloseButton from '../../shared_components/close_button/close_button';\n\n/* eslint-disable import/no-default-export */\nconst DEFAULT_OPTIONS = {\n  autoHideDelay: 5000,\n  toastClass: 'gl-toast',\n  isStatus: true,\n  toaster: 'b-toaster-bottom-left'\n};\nlet toastsCount = 0;\nfunction renderTitle(h, toast, options) {\n  const nodes = [h(CloseButton, {\n    class: ['gl-toast-close-button'],\n    on: {\n      click: toast.hide\n    }\n  })];\n  if (options.action) {\n    nodes.splice(0, 0, h('a', {\n      role: 'button',\n      class: ['gl-toast-action'],\n      on: {\n        click: e => options.action.onClick(e, toast)\n      }\n    }, options.action.text));\n  }\n  return nodes;\n}\nfunction showToast(message) {\n  let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  // eslint-disable-next-line @gitlab/tailwind-no-interpolation -- Not a CSS utility\n  const id = `gl-toast-${toastsCount}`;\n  toastsCount += 1;\n  const hide = () => {\n    this.$bvToast.hide(id);\n  };\n  const toast = {\n    id,\n    hide\n  };\n  if (isFunction(options.onComplete)) {\n    const toastHiddenCallback = e => {\n      if (e.componentId === id) {\n        this.$root.$off('bv::toast:hidden', toastHiddenCallback);\n        options.onComplete(e);\n      }\n    };\n    this.$root.$on('bv::toast:hidden', toastHiddenCallback);\n  }\n  const updatedAutoHideDelay = !Number.isNaN(options === null || options === void 0 ? void 0 : options.autoHideDelay) ? {\n    autoHideDelay: options.autoHideDelay\n  } : null;\n  this.$bvToast.toast(message, {\n    ...DEFAULT_OPTIONS,\n    ...updatedAutoHideDelay,\n    id,\n    title: renderTitle(this.$createElement, toast, options)\n  });\n  return toast;\n}\n\n/**\n * Note: This is not a typical Vue component and needs to be registered before instantiating a Vue app.\n * Once registered, the toast will be globally available throughout your app.\n *\n * See https://gitlab-org.gitlab.io/gitlab-ui/ for detailed documentation.\n */\nvar toast = {\n  install(Vue) {\n    Vue.use(ToastPlugin);\n    Vue.mixin({\n      beforeCreate() {\n        if (this.$toast) {\n          return;\n        }\n        this.$toast = {\n          show: showToast.bind(this)\n        };\n      }\n    });\n  }\n};\n\nexport default toast;\n","var apply = require('./_apply'),\n    baseRest = require('./_baseRest'),\n    isError = require('./isError');\n\n/**\n * Attempts to invoke `func`, returning either the result or the caught error\n * object. Any additional arguments are provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Util\n * @param {Function} func The function to attempt.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {*} Returns the `func` result or error object.\n * @example\n *\n * // Avoid throwing errors for invalid selectors.\n * var elements = _.attempt(function(selector) {\n *   return document.querySelectorAll(selector);\n * }, '>_>');\n *\n * if (_.isError(elements)) {\n *   elements = [];\n * }\n */\nvar attempt = baseRest(function(func, args) {\n  try {\n    return apply(func, undefined, args);\n  } catch (e) {\n    return isError(e) ? e : new Error(e);\n  }\n});\n\nmodule.exports = attempt;\n"],"sourceRoot":""}