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