{"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><script></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":""}