{"version":3,"sources":["webpack:////build/source/node_modules/lodash/_compareMultiple.js","webpack:////build/source/node_modules/lodash/_baseOrderBy.js","webpack:////build/source/node_modules/lodash/_compareAscending.js","webpack:////build/source/node_modules/lodash/_baseMap.js","webpack:////build/source/node_modules/lodash/sortBy.js","webpack:///./notifications/components/notifications_dropdown.vue","webpack:///./notifications/constants.js","webpack:///./notifications/components/custom_notifications_modal.vue","webpack:///./notifications/components/custom_notifications_modal.vue?1c1b","webpack:///notifications/components/custom_notifications_modal.vue","webpack:///./notifications/components/custom_notifications_modal.vue?42ba","webpack:///./notifications/components/notifications_dropdown_item.vue?96d4","webpack:///notifications/components/notifications_dropdown_item.vue","webpack:///./notifications/components/notifications_dropdown_item.vue?b16c","webpack:///./notifications/components/notifications_dropdown_item.vue","webpack:///./notifications/components/notifications_dropdown.vue?bd9f","webpack:///notifications/components/notifications_dropdown.vue","webpack:///./notifications/components/notifications_dropdown.vue?02d7","webpack:///./groups_projects/components/more_actions_dropdown.vue","webpack:///./groups_projects/components/more_actions_dropdown.vue?f1b3","webpack:///groups_projects/components/more_actions_dropdown.vue","webpack:///./groups_projects/components/more_actions_dropdown.vue?d184","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"],"names":["compareAscending","module","exports","object","other","orders","index","objCriteria","criteria","othCriteria","length","ordersLength","result","arrayMap","baseGet","baseIteratee","baseMap","baseSortBy","baseUnary","compareMultiple","identity","isArray","collection","iteratees","iteratee","value","key","isSymbol","valIsDefined","undefined","valIsNull","valIsReflexive","valIsSymbol","othIsDefined","othIsNull","othIsReflexive","othIsSymbol","baseEach","isArrayLike","Array","baseFlatten","baseOrderBy","baseRest","isIterateeCall","sortBy","i18n","notificationTitles","participating","s__","mention","watch","global","disabled","custom","notificationTooltipTitle","__","notificationDescriptions","owner_disabled","updateNotificationLevelErrorMessage","loadNotificationLevelErrorMessage","customNotificationsModal","title","bodyTitle","bodyMessage","eventNames","change_reviewer_merge_request","close_issue","close_merge_request","failed_pipeline","fixed_pipeline","issue_due","merge_merge_request","moved_project","new_epic","new_issue","new_merge_request","new_note","new_release","push_to_merge_request","reassign_issue","reassign_merge_request","reopen_issue","reopen_merge_request","merge_when_pipeline_succeeds","success_pipeline","approver","name","components","GlModal","GlSprintf","GlLink","GlLoadingIcon","GlFormGroup","GlFormCheckbox","inject","projectId","default","groupId","helpPagePath","model","prop","event","props","modalId","type","String","required","visible","Boolean","data","isLoading","events","methods","open","$refs","modal","show","buildEvents","_this","rawEvents","Object","keys","map","id","enabled","$options","loading","_sortBy","loadNotificationSettings","Api","getNotificationSettings","error","$toast","isEnabled","findIndex","e","splice","updateNotificationSettings","_vm","this","_c","_self","_g","ref","attrs","on","onOpen","$listeners","staticClass","_v","_s","scopedSlots","_u","fn","content","_l","$event","updateEvent","callback","$$v","$set","expression","_e","GlDropdownItem","level","description","notificationLevel","computed","isActive","class","$emit","GlDropdown","GlDropdownDivider","NotificationsDropdownItem","CustomNotificationsModal","directives","GlTooltip","GlTooltipDirective","containerClass","emailsDisabled","dropdownItems","buttonSize","initialNotificationLevel","showLabel","noFlip","selectedNotificationLevel","notificationsModalVisible","notificationLevels","isCustomNotification","buttonIcon","buttonText","buttonTooltip","notificationTitle","sprintf","notification_title","openNotificationsModal","selectItem","updateNotificationLevel","customLevel","rawName","item","GlButton","GlDisclosureDropdownItem","GlDisclosureDropdownGroup","GlDisclosureDropdown","GlIcon","isDropdownVisible","namespaceType","isGroup","WORKSPACE_GROUP","WORKSPACE_PROJECT","hasPath","leavePath","withdrawPath","requestAccessPath","settingsTitle","groupSettings","projectSettings","leaveTitle","groupLeaveTitle","projectLeaveTitle","copyTitle","groupCopyTitle","projectCopyTitle","copiedToClipboard","groupCopiedToClipboard","projectCopiedToClipboard","leaveItem","text","href","extraAttrs","leaveConfirmMessage","rel","withdrawItem","withdrawAccessTitle","withdrawConfirmMessage","requestAccessItem","requestAccessTitle","copyIdItem","groupOrProjectId","action","settingsItem","editPath","showDropdownTooltip","actionsLabel","showDropdown","hideDropdown","component","proxy","canEdit","array","comparer","sort","DefaultTransition","mixins","el","h","tag","afterEnter","onAfterEnter","normalizeSlot","ariaAtomic","ariaLive","role","BToaster","doRender","dead","staticName","hasTarget","warn","emitOnRoot","$el","parentNode","removeChild","$toaster","$target","multiple","slim","transition","mixin","modelMixin","modelProps","MODEL_PROP_NAME","MODEL_EVENT_NAME","defaultValue","linkProps","appendToast","autoHideDelay","bodyClass","headerClass","headerTag","isStatus","noAutoHide","noFade","noHoverPause","solid","static","toastClass","toaster","variant","BToast","inheritAttrs","isMounted","localShow","isTransitioning","isHiding","order","dismissStarted","resumeDismiss","hide","math","beforeEnter","onBeforeEnter","beforeLeave","onBeforeLeave","afterLeave","onAfterLeave","bvAttrs","safeId","tabindex","newValue","$nextTick","ensureToaster","$_dismissTimer","listenOnRoot","computedToaster","clearDismissTimer","showEvent","buildEvent","emitEvent","Date","now","hideEvent","setHoverHandler","options","arguments","cancelable","target","relatedTarget","vueTarget","componentId","bvEvent","div","document","createElement","body","appendChild","bvEventRoot","propsData","$mount","setTimeout","computedDuration","clearTimeout","onPause","onUnPause","passed","startDismissTimer","hiddenEvent","slotScope","link","$headerContent","$title","push","$header","$body","click","onLinkClick","computedAttrs","isStatic","toastClasses","scopedStyleAttrs","transitionHandlers","makeToast","to","BASE_PROPS","propsToSlots","toastContent","filterOptions","reduce","memo","BVToastPlugin","plugins","plugin","Vue","BVToastPop","extend","extends","handleDestroy","$destroy","bvParent","$once","BvToast","vm","_root","parent","toast","forEach","$slots","prototype","ToastPlugin","DEFAULT_OPTIONS","toastsCount","renderTitle","nodes","onClick","showToast","message","$bvToast","onComplete","toastHiddenCallback","$root","$off","$on","updatedAutoHideDelay","Number","isNaN","$createElement","use","bind"],"mappings":"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","file":"commons-pages.groups.show-pages.projects.home_panel-pages.projects.show.780962d5.chunk.js","sourcesContent":["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","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","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","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 render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{class:_vm.containerClass},[_c('gl-dropdown',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\",value:({ title: _vm.buttonTooltip }),expression:\"{ title: buttonTooltip }\"}],attrs:{\"data-testid\":\"notification-dropdown\",\"size\":_vm.buttonSize,\"icon\":_vm.buttonIcon,\"loading\":_vm.isLoading,\"disabled\":_vm.emailsDisabled,\"split\":_vm.isCustomNotification,\"text\":_vm.buttonText,\"no-flip\":_vm.noFlip},on:{\"click\":_vm.openNotificationsModal}},[_vm._l((_vm.notificationLevels),function(item){return _c('notifications-dropdown-item',{key:item.level,attrs:{\"level\":item.level,\"title\":item.title,\"description\":item.description,\"notification-level\":_vm.selectedNotificationLevel},on:{\"item-selected\":_vm.selectItem}})}),_vm._v(\" \"),_c('gl-dropdown-divider'),_vm._v(\" \"),_c('notifications-dropdown-item',{key:_vm.$options.customLevel,attrs:{\"level\":_vm.$options.customLevel,\"title\":_vm.$options.i18n.notificationTitles.custom,\"description\":_vm.$options.i18n.notificationDescriptions.custom,\"notification-level\":_vm.selectedNotificationLevel},on:{\"item-selected\":_vm.selectItem}})],2),_vm._v(\" \"),_c('custom-notifications-modal',{attrs:{\"modal-id\":_vm.$options.modalId},model:{value:(_vm.notificationsModalVisible),callback:function ($$v) {_vm.notificationsModalVisible=$$v},expression:\"notificationsModalVisible\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { __, s__ } from '~/locale';\n\nexport const CUSTOM_LEVEL = 'custom';\n\nexport const i18n = {\n notificationTitles: {\n participating: s__('NotificationLevel|Participate'),\n mention: s__('NotificationLevel|On mention'),\n watch: s__('NotificationLevel|Watch'),\n global: s__('NotificationLevel|Global'),\n disabled: s__('NotificationLevel|Disabled'),\n custom: s__('NotificationLevel|Custom'),\n },\n notificationTooltipTitle: __('Notification setting - %{notification_title}'),\n notificationDescriptions: {\n participating: __('You will only receive notifications for items you have participated in'),\n mention: __('You will receive notifications only for comments in which you were @mentioned'),\n watch: __('You will receive notifications for any activity'),\n disabled: __('You will not get any notifications via email'),\n global: __('Use your global notification setting'),\n custom: __(\n 'You will only receive notifications for items you have participated in and the events you choose',\n ),\n owner_disabled: __('Notifications have been disabled by the project or group owner'),\n },\n updateNotificationLevelErrorMessage: __(\n 'An error occurred while updating the notification settings. Please try again.',\n ),\n loadNotificationLevelErrorMessage: __(\n 'An error occurred while loading the notification settings. Please try again.',\n ),\n customNotificationsModal: {\n title: __('Custom notification events'),\n bodyTitle: __('Notification events'),\n bodyMessage: __(\n 'With custom notification levels you receive notifications for the same events as in the Participate level, with additional selected events. For more information, see %{notificationLinkStart}notification emails%{notificationLinkEnd}.',\n ),\n },\n eventNames: {\n change_reviewer_merge_request: s__('NotificationEvent|Merge request reviewers are changed'),\n close_issue: s__('NotificationEvent|Issue is closed'),\n close_merge_request: s__('NotificationEvent|Merge request is closed'),\n failed_pipeline: s__('NotificationEvent|Pipeline fails'),\n fixed_pipeline: s__('NotificationEvent|Pipeline is fixed'),\n issue_due: s__('NotificationEvent|Issue is due soon'),\n merge_merge_request: s__('NotificationEvent|Merge request is merged'),\n moved_project: s__('NotificationEvent|Project is moved'),\n new_epic: s__('NotificationEvent|Epic is created'),\n new_issue: s__('NotificationEvent|Issue is created'),\n new_merge_request: s__('NotificationEvent|Merge request is created'),\n new_note: s__('NotificationEvent|Comment is added'),\n new_release: s__('NotificationEvent|Release is created'),\n push_to_merge_request: s__('NotificationEvent|Merge request receives a push'),\n reassign_issue: s__('NotificationEvent|Issue is reassigned'),\n reassign_merge_request: s__('NotificationEvent|Merge request is reassigned'),\n reopen_issue: s__('NotificationEvent|Issue is reopened'),\n reopen_merge_request: s__('NotificationEvent|Merge request is reopened'),\n merge_when_pipeline_succeeds: s__('NotificationEvent|Merge request is set to auto-merge'),\n success_pipeline: s__('NotificationEvent|Pipeline is successful'),\n approver: s__('NotificationEvent|You are added as an approver on a merge request'),\n },\n};\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-modal',_vm._g({ref:\"modal\",attrs:{\"visible\":_vm.visible,\"modal-id\":_vm.modalId,\"title\":_vm.$options.i18n.customNotificationsModal.title},on:{\"show\":_vm.onOpen}},_vm.$listeners),[_c('div',{staticClass:\"container-fluid\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-lg-4\"},[_c('h4',{staticClass:\"gl-mt-0\",attrs:{\"data-testid\":\"modalBodyTitle\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.customNotificationsModal.bodyTitle)+\"\\n \")]),_vm._v(\" \"),_c('gl-sprintf',{attrs:{\"message\":_vm.$options.i18n.customNotificationsModal.bodyMessage},scopedSlots:_vm._u([{key:\"notificationLink\",fn:function({ content }){return [_c('gl-link',{attrs:{\"href\":_vm.helpPagePath,\"target\":\"_blank\"}},[_vm._v(_vm._s(content))])]}}])})],1),_vm._v(\" \"),_c('div',{staticClass:\"col-lg-8\"},[(_vm.isLoading)?_c('gl-loading-icon',{staticClass:\"gl-mt-3\",attrs:{\"size\":\"lg\"}}):_vm._l((_vm.events),function(event){return _c('gl-form-group',{key:event.id},[_c('gl-form-checkbox',{attrs:{\"data-testid\":`notification-setting-${event.id}`},on:{\"change\":function($event){return _vm.updateEvent($event, event)}},model:{value:(event.enabled),callback:function ($$v) {_vm.$set(event, \"enabled\", $$v)},expression:\"event.enabled\"}},[_c('strong',[_vm._v(_vm._s(event.name))]),(event.loading)?_c('gl-loading-icon',{staticClass:\"gl-ml-2\",attrs:{\"size\":\"sm\",\"inline\":true}}):_vm._e()],1)],1)})],2)])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./custom_notifications_modal.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./custom_notifications_modal.vue?vue&type=script&lang=js\"","\n\n\n","import { render, staticRenderFns } from \"./custom_notifications_modal.vue?vue&type=template&id=08346b29\"\nimport script from \"./custom_notifications_modal.vue?vue&type=script&lang=js\"\nexport * from \"./custom_notifications_modal.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./notifications_dropdown_item.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./notifications_dropdown_item.vue?vue&type=script&lang=js\"","\n\n\n","import { render, staticRenderFns } from \"./notifications_dropdown_item.vue?vue&type=template&id=d42d504a\"\nimport script from \"./notifications_dropdown_item.vue?vue&type=script&lang=js\"\nexport * from \"./notifications_dropdown_item.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-dropdown-item',{class:{ 'is-active': _vm.isActive },attrs:{\"is-check-item\":\"\",\"is-checked\":_vm.isActive},on:{\"click\":function($event){return _vm.$emit('item-selected', _vm.level)}}},[_c('div',{staticClass:\"gl-flex gl-flex-col\"},[_c('span',{staticClass:\"gl-font-bold\"},[_vm._v(_vm._s(_vm.title))]),_vm._v(\" \"),_c('span',{staticClass:\"gl-text-subtle\"},[_vm._v(_vm._s(_vm.description))])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./notifications_dropdown.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./notifications_dropdown.vue?vue&type=script&lang=js\"","\n\n\n","import { render, staticRenderFns } from \"./notifications_dropdown.vue?vue&type=template&id=5e0e4ee8\"\nimport script from \"./notifications_dropdown.vue?vue&type=script&lang=js\"\nexport * from \"./notifications_dropdown.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-disclosure-dropdown',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\",value:(_vm.showDropdownTooltip),expression:\"showDropdownTooltip\"}],staticClass:\"gl-relative gl-w-full sm:gl-w-auto\",attrs:{\"category\":\"tertiary\",\"icon\":\"ellipsis_v\",\"no-caret\":\"\",\"toggle-text\":_vm.$options.i18n.actionsLabel,\"text-sr-only\":\"\",\"data-testid\":\"groups-projects-more-actions-dropdown\"},on:{\"shown\":_vm.showDropdown,\"hidden\":_vm.hideDropdown},scopedSlots:_vm._u([{key:\"toggle\",fn:function(){return [_c('div',{staticClass:\"gl-min-h-7\"},[_c('gl-button',{staticClass:\"gl-new-dropdown-toggle gl-absolute gl-left-0 gl-top-0 gl-w-full sm:gl-w-auto md:!gl-hidden\",attrs:{\"button-text-classes\":\"gl-w-full\",\"category\":\"secondary\",\"aria-label\":_vm.$options.i18n.actionsLabel,\"title\":_vm.$options.i18n.actionsLabel}},[_c('span',{staticClass:\"gl-new-dropdown-button-text\"},[_vm._v(_vm._s(_vm.$options.i18n.actionsLabel))]),_vm._v(\" \"),_c('gl-icon',{staticClass:\"dropdown-chevron\",attrs:{\"name\":\"chevron-down\"}})],1),_vm._v(\" \"),_c('gl-button',{ref:\"moreActionsDropdown\",staticClass:\"gl-new-dropdown-toggle gl-new-dropdown-icon-only gl-new-dropdown-toggle-no-caret gl-hidden md:!gl-flex\",attrs:{\"category\":\"tertiary\",\"icon\":\"ellipsis_v\",\"aria-label\":_vm.$options.i18n.actionsLabel,\"title\":_vm.$options.i18n.actionsLabel}})],1)]},proxy:true}])},[_vm._v(\" \"),(_vm.groupOrProjectId)?_c('gl-disclosure-dropdown-item',{attrs:{\"item\":_vm.copyIdItem,\"data-clipboard-text\":_vm.groupOrProjectId}}):_vm._e(),_vm._v(\" \"),(_vm.canEdit)?_c('gl-disclosure-dropdown-item',{attrs:{\"item\":_vm.settingsItem}}):_vm._e(),_vm._v(\" \"),(_vm.hasPath)?_c('gl-disclosure-dropdown-group',{attrs:{\"bordered\":\"\"}},[(_vm.leavePath)?_c('gl-disclosure-dropdown-item',{ref:\"leaveItem\",attrs:{\"item\":_vm.leaveItem}}):(_vm.withdrawPath)?_c('gl-disclosure-dropdown-item',{attrs:{\"item\":_vm.withdrawItem}}):(_vm.requestAccessPath)?_c('gl-disclosure-dropdown-item',{attrs:{\"item\":_vm.requestAccessItem}}):_vm._e()],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./more_actions_dropdown.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./more_actions_dropdown.vue?vue&type=script&lang=js\"","\n\n\n","import { render, staticRenderFns } from \"./more_actions_dropdown.vue?vue&type=template&id=726d9929\"\nimport script from \"./more_actions_dropdown.vue?vue&type=script&lang=js\"\nexport * from \"./more_actions_dropdown.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","/**\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 \"\" 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 `` 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":""}