{"version":3,"sources":["webpack:////build/source/node_modules/lodash/invert.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/animated_icon/animated_notifications_icon.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/animated_icon/animated_todo_icon.js","webpack:////build/source/node_modules/lodash/_baseInverter.js","webpack:////build/source/node_modules/mousetrap/plugins/pause/mousetrap-pause.js","webpack:////build/source/node_modules/lodash/_createInverter.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"],"names":["constant","createInverter","identity","nativeObjectToString","Object","prototype","toString","invert","result","value","key","call","module","exports","__vue_script__","name","extends","__vue_component__","render","_h","this","$createElement","_c","_self","class","iconStateClass","attrs","ariaLabel","staticClass","_v","staticRenderFns","undefined","baseForOwn","object","setter","iteratee","accumulator","Mousetrap","_originalStopCallback","stopCallback","e","element","combo","paused","pause","unpause","init","baseInverter","toIteratee","DefaultTransition","mixins","data","methods","el","h","props","tag","on","afterEnter","onAfterEnter","normalizeSlot","ariaAtomic","ariaLive","role","BToaster","doRender","dead","staticName","hasTarget","warn","emitOnRoot","$el","parentNode","removeChild","$toaster","$target","multiple","slim","transition","id","mixin","modelMixin","modelProps","prop","MODEL_PROP_NAME","event","MODEL_EVENT_NAME","type","defaultValue","linkProps","appendToast","autoHideDelay","bodyClass","headerClass","headerTag","isStatus","noAutoHide","noFade","noHoverPause","solid","static","title","toastClass","toaster","variant","BToast","inheritAttrs","isMounted","localShow","isTransitioning","isHiding","order","dismissStarted","resumeDismiss","computed","hide","math","String","beforeEnter","onBeforeEnter","beforeLeave","onBeforeLeave","afterLeave","onAfterLeave","bvAttrs","safeId","tabindex","watch","newValue","$emit","$nextTick","ensureToaster","$_dismissTimer","show","listenOnRoot","computedToaster","clearDismissTimer","showEvent","buildEvent","emitEvent","Date","now","hideEvent","setHoverHandler","options","arguments","length","cancelable","target","relatedTarget","vueTarget","componentId","bvEvent","div","document","createElement","body","appendChild","bvEventRoot","propsData","$mount","setTimeout","computedDuration","clearTimeout","$refs","onPause","onUnPause","passed","startDismissTimer","hiddenEvent","slotScope","link","$headerContent","$title","push","$header","$body","click","onLinkClick","computedAttrs","ref","isStatic","$toast","toastClasses","scopedStyleAttrs","transitionHandlers","makeToast","to","disabled","BASE_PROPS","propsToSlots","toastContent","filterOptions","reduce","memo","BVToastPlugin","plugins","plugin","Vue","BVToastPop","extend","handleDestroy","$destroy","bvParent","$once","BvToast","vm","_vm","_root","content","parent","toast","visible","forEach","$slots","ToastPlugin","components","DEFAULT_OPTIONS","toastsCount","renderTitle","nodes","action","splice","onClick","text","showToast","message","$bvToast","onComplete","toastHiddenCallback","$root","$off","$on","updatedAutoHideDelay","Number","isNaN","use","bind"],"mappings":"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","file":"333.93d53e38.chunk.js","sourcesContent":["var constant = require('./constant'),\n createInverter = require('./_createInverter'),\n identity = require('./identity');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Creates an object composed of the inverted keys and values of `object`.\n * If `object` contains duplicate values, subsequent values overwrite\n * property assignments of previous values.\n *\n * @static\n * @memberOf _\n * @since 0.7.0\n * @category Object\n * @param {Object} object The object to invert.\n * @returns {Object} Returns the new inverted object.\n * @example\n *\n * var object = { 'a': 1, 'b': 2, 'c': 1 };\n *\n * _.invert(object);\n * // => { '1': 'c', '2': 'b' }\n */\nvar invert = createInverter(function(result, value, key) {\n if (value != null &&\n typeof value.toString != 'function') {\n value = nativeObjectToString.call(value);\n }\n\n result[value] = key;\n}, constant(identity));\n\nmodule.exports = invert;\n","import GlBaseAnimatedIcon from './base_animated_icon';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nvar script = {\n name: 'GlAnimatedNotificationIcon',\n extends: GlBaseAnimatedIcon\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('svg',{class:_vm.iconStateClass,attrs:{\"aria-label\":_vm.ariaLabel,\"width\":\"16\",\"height\":\"16\",\"viewBox\":\"0 0 16 16\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\"}},[_c('path',{staticClass:\"gl-animated-notifications-bottom-part\",attrs:{\"d\":\"M3.72 11.25L2.35519 12.837C2.21579 12.9991 2.33095 13.25 2.54473 13.25H13.4428C13.6586 13.25 13.773 12.995 13.6296 12.8338L12.22 11.25V7C12.22 6.06556 11.9184 5.20155 11.4073 4.5\",\"stroke\":\"currentColor\",\"stroke-width\":\"1.5\",\"stroke-linecap\":\"round\"}}),_vm._v(\" \"),_c('path',{staticClass:\"gl-animated-notifications-top-part\",attrs:{\"d\":\"M3.72 11.75V7C3.72 4.65279 5.62279 2.75 7.97 2.75C9.38277 2.75 10.6345 3.43933 11.4073 4.5\",\"stroke\":\"currentColor\",\"stroke-width\":\"1.5\",\"stroke-linecap\":\"round\"}}),_vm._v(\" \"),_c('path',{staticClass:\"gl-animated-notifications-line\",attrs:{\"d\":\"M1.75 14.25L14.2461 1.75391\",\"stroke\":\"currentColor\",\"stroke-width\":\"1.5\",\"stroke-linecap\":\"round\"}}),_vm._v(\" \"),_c('path',{attrs:{\"d\":\"M6 13H10V13C10 14.1046 9.10457 15 8 15V15C6.89543 15 6 14.1046 6 13V13Z\",\"fill\":\"currentColor\"}}),_vm._v(\" \"),_c('path',{attrs:{\"d\":\"M7 2C7 1.44772 7.44772 1 8 1V1C8.55228 1 9 1.44772 9 2V2C9 2.55228 8.55228 3 8 3V3C7.44772 3 7 2.55228 7 2V2Z\",\"fill\":\"currentColor\"}})])};\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","import GlBaseAnimatedIcon from './base_animated_icon';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nvar script = {\n name: 'GlAnimatedTodoIcon',\n extends: GlBaseAnimatedIcon\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('svg',{class:_vm.iconStateClass,attrs:{\"aria-label\":_vm.ariaLabel,\"width\":\"16\",\"height\":\"16\",\"viewBox\":\"0 0 16 16\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\"}},[_c('path',{staticClass:\"gl-animated-todo-box\",attrs:{\"d\":\"M14.25 6.75L14.25 13C14.25 13.6904 13.6904 14.25 13 14.25L3 14.25C2.30964 14.25 1.75 13.6904 1.75 13L1.75 3C1.75 2.30964 2.30964 1.75 3 1.75L13.25 1.75\",\"stroke\":\"currentColor\",\"stroke-width\":\"1.5\",\"stroke-linecap\":\"round\"}}),_vm._v(\" \"),_c('path',{staticClass:\"gl-animated-todo-plus-line\",attrs:{\"d\":\"M10.75 3L15.25 3\",\"stroke\":\"currentColor\",\"stroke-width\":\"1.5\",\"stroke-linecap\":\"round\"}}),_vm._v(\" \"),_c('path',{staticClass:\"gl-animated-todo-plus-line\",attrs:{\"d\":\"M13 5.25L13 0.75\",\"stroke\":\"currentColor\",\"stroke-width\":\"1.5\",\"stroke-linecap\":\"round\"}}),_vm._v(\" \"),_c('path',{staticClass:\"gl-animated-todo-check\",attrs:{\"d\":\"M6.75 7.76299L9.15312 10.2469L15.25 4.15\",\"stroke\":\"currentColor\",\"stroke-width\":\"1.5\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}})])};\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 baseForOwn = require('./_baseForOwn');\n\n/**\n * The base implementation of `_.invert` and `_.invertBy` which inverts\n * `object` with values transformed by `iteratee` and set by `setter`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform values.\n * @param {Object} accumulator The initial inverted object.\n * @returns {Function} Returns `accumulator`.\n */\nfunction baseInverter(object, setter, iteratee, accumulator) {\n baseForOwn(object, function(value, key, object) {\n setter(accumulator, iteratee(value), key, object);\n });\n return accumulator;\n}\n\nmodule.exports = baseInverter;\n","/**\n * adds a pause and unpause method to Mousetrap\n * this allows you to enable or disable keyboard shortcuts\n * without having to reset Mousetrap and rebind everything\n */\n/* global Mousetrap:true */\n(function(Mousetrap) {\n var _originalStopCallback = Mousetrap.prototype.stopCallback;\n\n Mousetrap.prototype.stopCallback = function(e, element, combo) {\n var self = this;\n\n if (self.paused) {\n return true;\n }\n\n return _originalStopCallback.call(self, e, element, combo);\n };\n\n Mousetrap.prototype.pause = function() {\n var self = this;\n self.paused = true;\n };\n\n Mousetrap.prototype.unpause = function() {\n var self = this;\n self.paused = false;\n };\n\n Mousetrap.init();\n}) (Mousetrap);\n","var baseInverter = require('./_baseInverter');\n\n/**\n * Creates a function like `_.invertBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} toIteratee The function to resolve iteratees.\n * @returns {Function} Returns the new inverter function.\n */\nfunction createInverter(setter, toIteratee) {\n return function(object, iteratee) {\n return baseInverter(object, setter, toIteratee(iteratee), {});\n };\n}\n\nmodule.exports = createInverter;\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"],"sourceRoot":""}