{"version":3,"sources":["webpack:////build/source/node_modules/sortablejs/modular/sortable.esm.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/new_dropdowns/listbox/utils.js","webpack:///./vue_shared/components/project_avatar.vue","webpack:///./vue_shared/components/project_avatar.vue?dc9d","webpack:///vue_shared/components/project_avatar.vue","webpack:///./vue_shared/components/project_avatar.vue?5b42","webpack:///./whats_new/utils/notification.js","webpack:////build/source/node_modules/lodash/isNil.js","webpack:///./invite_members/event_hub.js","webpack:///./super_sidebar/components/scroll_scrim.vue","webpack:///./super_sidebar/components/scroll_scrim.vue?0d71","webpack:///super_sidebar/components/scroll_scrim.vue","webpack:///./super_sidebar/components/scroll_scrim.vue?8211","webpack:///./super_sidebar/graphql/queries/current_user_frecent_groups.query.graphql","webpack:///./super_sidebar/components/global_search/constants.js","webpack:///./super_sidebar/components/global_search/components/global_search.vue?ccdf","webpack:///./super_sidebar/components/global_search/command_palette/constants.js","webpack:///./invite_members/components/invite_members_trigger.vue","webpack:///./invite_members/components/invite_members_trigger.vue?f47d","webpack:///invite_members/components/invite_members_trigger.vue","webpack:///./invite_members/components/invite_members_trigger.vue?c527","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/directives/modal/modal.js","webpack:////build/source/ee/app/assets/javascripts/super_sidebar/graphql/queries/super_sidebar_count.fragment.graphql","webpack:////build/source/node_modules/lodash/random.js","webpack:///./super_sidebar/components/global_search/command_palette/search_item.vue?90a5","webpack:///super_sidebar/components/global_search/command_palette/search_item.vue","webpack:///./super_sidebar/components/global_search/command_palette/search_item.vue?9aa5","webpack:///./super_sidebar/components/global_search/command_palette/search_item.vue","webpack:///./super_sidebar/components/global_search/command_palette/utils.js","webpack:///super_sidebar/components/global_search/command_palette/command_palette_items.vue","webpack:///./super_sidebar/components/global_search/command_palette/command_palette_items.vue?afb1","webpack:///./super_sidebar/components/global_search/tracking_constants.js","webpack:///./super_sidebar/components/global_search/command_palette/command_palette_items.vue?0200","webpack:///./super_sidebar/components/global_search/command_palette/command_palette_items.vue","webpack:///./super_sidebar/components/global_search/command_palette/fake_search_input.vue?c20b","webpack:///super_sidebar/components/global_search/command_palette/fake_search_input.vue","webpack:///./super_sidebar/components/global_search/command_palette/fake_search_input.vue?35cd","webpack:///./super_sidebar/components/global_search/command_palette/fake_search_input.vue?5def","webpack:///./super_sidebar/components/global_search/command_palette/fake_search_input.vue","webpack:///./super_sidebar/components/global_search/command_palette/command_palette_lottery.vue?6caf","webpack:///super_sidebar/components/global_search/command_palette/command_palette_lottery.vue","webpack:///./super_sidebar/components/global_search/command_palette/command_palette_lottery.vue?d265","webpack:///./super_sidebar/components/global_search/command_palette/command_palette_lottery.vue","webpack:///super_sidebar/components/global_search/command_palette/command_overview_dropdown.vue","webpack:///./super_sidebar/components/global_search/command_palette/command_overview_dropdown.vue?4517","webpack:///./super_sidebar/components/global_search/command_palette/command_overview_dropdown.vue?6fa2","webpack:///./super_sidebar/components/global_search/command_palette/command_overview_dropdown.vue","webpack:///./super_sidebar/components/global_search/components/global_search_hover_overlay.vue?67aa","webpack:///super_sidebar/components/global_search/components/global_search_hover_overlay.vue","webpack:///./super_sidebar/components/global_search/components/global_search_hover_overlay.vue?56aa","webpack:///./super_sidebar/components/global_search/components/global_search_hover_overlay.vue","webpack:///./super_sidebar/components/global_search/components/global_search_no_results.vue?39e0","webpack:///super_sidebar/components/global_search/components/global_search_no_results.vue","webpack:///./super_sidebar/components/global_search/components/global_search_no_results.vue?c9da","webpack:///./super_sidebar/components/global_search/components/global_search_no_results.vue","webpack:///super_sidebar/components/global_search/components/global_search_autocomplete_items.vue","webpack:///./super_sidebar/components/global_search/components/global_search_autocomplete_items.vue?4c57","webpack:///./super_sidebar/components/global_search/components/global_search_autocomplete_items.vue?a62c","webpack:///./super_sidebar/components/global_search/components/global_search_autocomplete_items.vue","webpack:///super_sidebar/components/global_search/components/global_search_default_places.vue","webpack:///./super_sidebar/components/global_search/components/global_search_default_places.vue?d7be","webpack:///./super_sidebar/components/global_search/components/global_search_default_places.vue?a3e5","webpack:///./super_sidebar/components/global_search/components/global_search_default_places.vue","webpack:///super_sidebar/components/global_search/components/global_search_default_issuables.vue","webpack:///./super_sidebar/components/global_search/components/global_search_default_issuables.vue?cfc8","webpack:///./super_sidebar/components/global_search/components/global_search_default_issuables.vue?6367","webpack:///./super_sidebar/components/global_search/components/global_search_default_issuables.vue","webpack:///./super_sidebar/components/global_search/components/frequent_item.vue?ce92","webpack:///super_sidebar/components/global_search/components/frequent_item.vue","webpack:///./super_sidebar/components/global_search/components/frequent_item.vue?01ea","webpack:///./super_sidebar/components/global_search/components/frequent_item.vue","webpack:///./super_sidebar/components/global_search/components/frequent_item_skeleton.vue?0c19","webpack:///super_sidebar/components/global_search/components/frequent_item_skeleton.vue","webpack:///./super_sidebar/components/global_search/components/frequent_item_skeleton.vue?96e1","webpack:///./super_sidebar/components/global_search/components/frequent_item_skeleton.vue","webpack:///./super_sidebar/components/global_search/components/frequent_items.vue?528a","webpack:///super_sidebar/components/global_search/components/frequent_items.vue","webpack:///./super_sidebar/components/global_search/components/frequent_items.vue?9e33","webpack:///./super_sidebar/components/global_search/components/frequent_items.vue","webpack:///./super_sidebar/components/global_search/components/frequent_groups.vue?4b1b","webpack:///super_sidebar/components/global_search/components/frequent_groups.vue","webpack:///./super_sidebar/components/global_search/components/frequent_groups.vue?8998","webpack:///./super_sidebar/components/global_search/components/frequent_groups.vue","webpack:///./super_sidebar/components/global_search/components/frequent_projects.vue?3d8a","webpack:///super_sidebar/components/global_search/components/frequent_projects.vue","webpack:///super_sidebar/components/global_search/components/global_search_default_items.vue","webpack:///./super_sidebar/components/global_search/components/frequent_projects.vue?cb7a","webpack:///./super_sidebar/components/global_search/components/frequent_projects.vue","webpack:///./super_sidebar/components/global_search/components/global_search_default_items.vue?1d41","webpack:///./super_sidebar/components/global_search/components/global_search_default_items.vue?af40","webpack:///./super_sidebar/components/global_search/components/global_search_default_items.vue","webpack:///super_sidebar/components/global_search/components/global_search_scoped_items.vue","webpack:///./super_sidebar/components/global_search/components/global_search_scoped_items.vue?75c2","webpack:///./super_sidebar/components/global_search/components/global_search_scoped_items.vue?f33e","webpack:///./super_sidebar/components/global_search/components/global_search_scoped_items.vue","webpack:///super_sidebar/components/global_search/components/global_search.vue","webpack:///./super_sidebar/components/global_search/components/global_search.vue?5e58","webpack:///./super_sidebar/tracking_constants.js","webpack:///./super_sidebar/components/global_search/components/global_search.vue?405c","webpack:///./super_sidebar/components/global_search/components/global_search.vue?cd7b","webpack:///./super_sidebar/components/global_search/components/global_search.vue","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/new_dropdowns/listbox/listbox_search_input.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/new_dropdowns/listbox/listbox_group.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/new_dropdowns/listbox/listbox.js","webpack:///./behaviors/shortcuts/keybindings.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/utilities/intersection_observer/intersection_observer.js","webpack:///./super_sidebar/components/global_search/store/mutation_types.js","webpack:///./super_sidebar/components/global_search/store/actions.js","webpack:///./super_sidebar/components/global_search/store/getters.js","webpack:///./super_sidebar/components/global_search/store/mutations.js","webpack:///./super_sidebar/components/global_search/store/state.js","webpack:///./super_sidebar/components/global_search/store/index.js","webpack:///./super_sidebar/components/extra_info.vue?756d","webpack:///super_sidebar/components/extra_info.vue","webpack:///./super_sidebar/components/extra_info.vue?6afb","webpack:///./super_sidebar/components/extra_info.vue","webpack:///./super_sidebar/user_counts_manager.js","webpack:///./super_sidebar/components/brand_logo.vue?75d9","webpack:///super_sidebar/components/brand_logo.vue","webpack:////build/source/app/views/shared/_logo.svg","webpack:///./super_sidebar/components/brand_logo.vue?4f09","webpack:///./super_sidebar/components/brand_logo.vue","webpack:///super_sidebar/components/create_menu.vue","webpack:///./super_sidebar/components/create_menu.vue?3dd9","webpack:///./super_sidebar/components/create_menu.vue?d32d","webpack:///./super_sidebar/components/create_menu.vue","webpack:///./super_sidebar/components/counter.vue?9541","webpack:///super_sidebar/components/counter.vue","webpack:///./super_sidebar/components/counter.vue?ac5f","webpack:///./super_sidebar/components/counter.vue","webpack:///./super_sidebar/components/merge_request_menu.vue?df4e","webpack:///super_sidebar/components/merge_request_menu.vue","webpack:///./super_sidebar/components/merge_request_menu.vue?11c0","webpack:///./super_sidebar/components/merge_request_menu.vue","webpack:///./super_sidebar/components/user_menu_profile_item.vue?de1e","webpack:///super_sidebar/components/user_menu_profile_item.vue","webpack:///./super_sidebar/components/user_menu_profile_item.vue?590a","webpack:///./super_sidebar/components/user_menu_profile_item.vue","webpack:///super_sidebar/components/user_menu.vue","webpack:///./super_sidebar/components/user_menu.vue?fb46","webpack:///./super_sidebar/components/user_menu.vue?01a8","webpack:///./super_sidebar/components/user_menu.vue","webpack:///super_sidebar/components/user_bar.vue","webpack:///./super_sidebar/components/user_bar.vue?1dba","webpack:///./super_sidebar/components/user_bar.vue?6797","webpack:///./super_sidebar/components/user_bar.vue","webpack:///./super_sidebar/components/sidebar_portal_target.vue?3b5f","webpack:///super_sidebar/components/sidebar_portal_target.vue","webpack:///./super_sidebar/components/sidebar_portal_target.vue?7ca8","webpack:///./super_sidebar/components/sidebar_portal_target.vue","webpack:///./super_sidebar/components/help_center.vue?c752","webpack:///super_sidebar/components/help_center.vue","webpack:///./super_sidebar/components/help_center.vue?e489","webpack:///./super_sidebar/components/help_center.vue","webpack:///super_sidebar/components/pinned_section.vue","webpack:///./super_sidebar/components/pinned_section.vue?a7b0","webpack:///./super_sidebar/components/pinned_section.vue?3327","webpack:///./super_sidebar/components/pinned_section.vue","webpack:///./super_sidebar/components/sidebar_menu.vue?68b9","webpack:///super_sidebar/components/sidebar_menu.vue","webpack:///./super_sidebar/components/sidebar_menu.vue?4cb3","webpack:///./super_sidebar/components/sidebar_menu.vue","webpack:///./super_sidebar/components/sidebar_peek_behavior.vue?d11e","webpack:///super_sidebar/components/sidebar_peek_behavior.vue","webpack:///./super_sidebar/components/sidebar_peek_behavior.vue","webpack:///./super_sidebar/components/sidebar_hover_peek_behavior.vue?13e0","webpack:///super_sidebar/components/sidebar_hover_peek_behavior.vue","webpack:///./super_sidebar/components/sidebar_hover_peek_behavior.vue","webpack:///./super_sidebar/components/super_sidebar.vue?f52b","webpack:///super_sidebar/components/super_sidebar.vue","webpack:///./super_sidebar/components/super_sidebar.vue?956d","webpack:///./super_sidebar/components/super_sidebar.vue","webpack:///super_sidebar/components/global_search/components/global_search_header_app.vue","webpack:///./super_sidebar/components/global_search/components/global_search_header_app.vue?35a6","webpack:///./super_sidebar/components/global_search/components/global_search_header_app.vue?c6be","webpack:///./super_sidebar/components/global_search/components/global_search_header_app.vue","webpack:///./super_sidebar/super_sidebar_bundle.js","webpack:///./entrypoints/super_sidebar.js","webpack:///./super_sidebar/graphql/queries/current_user_frecent_projects.query.graphql","webpack:///./super_sidebar/components/global_search/utils.js","webpack:///./invite_members/constants.js","webpack:///./super_sidebar/graphql/queries/super_sidebar.query.graphql","webpack:////build/source/node_modules/lodash/_baseRandom.js","webpack:///./super_sidebar/components/global_search/command_palette/fake_search_input.vue?4d7a","webpack:///./lib/utils/breadcrumbs.js","webpack:////build/source/node_modules/portal-vue/dist/portal-vue.common.js","webpack:///./vue_shared/mixins/modal_keyboard_navigation_mixin.js","webpack:////build/source/node_modules/vuedraggable/dist/vuedraggable.common.js","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/toast/toaster.js","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/toast/toast.js","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/toast/helpers/bv-toast.js","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/toast/index.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/toast/toast.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/new_dropdowns/listbox/listbox_item.js"],"names":["_typeof","obj","Symbol","iterator","constructor","prototype","_defineProperty","key","value","Object","defineProperty","enumerable","configurable","writable","_extends","assign","target","i","arguments","length","source","hasOwnProperty","call","apply","this","_objectSpread","ownKeys","keys","getOwnPropertySymbols","concat","filter","sym","getOwnPropertyDescriptor","forEach","_objectWithoutProperties","excluded","sourceKeys","indexOf","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","_toConsumableArray","arr","Array","isArray","arr2","_arrayWithoutHoles","iter","toString","from","_iterableToArray","TypeError","_nonIterableSpread","userAgent","pattern","window","navigator","match","IE11OrLess","Edge","FireFox","Safari","IOS","ChromeForAndroid","captureMode","capture","passive","on","el","event","fn","addEventListener","off","removeEventListener","matches","selector","substring","msMatchesSelector","webkitMatchesSelector","_","getParentOrHost","host","document","nodeType","parentNode","closest","ctx","includeCTX","_throttleTimeout","R_SPACE","toggleClass","name","state","classList","className","replace","css","prop","val","style","defaultView","getComputedStyle","currentStyle","matrix","selfOnly","appliedTransforms","transform","matrixFn","DOMMatrix","WebKitCSSMatrix","CSSMatrix","MSCSSMatrix","find","tagName","list","getElementsByTagName","n","getWindowScrollingElement","scrollingElement","documentElement","getRect","relativeToContainingBlock","relativeToNonStaticParent","undoScale","container","getBoundingClientRect","elRect","top","left","bottom","right","height","width","innerHeight","innerWidth","containerRect","parseInt","elMatrix","scaleX","a","scaleY","d","isScrolledPast","elSide","parentSide","parent","getParentAutoScrollElement","elSideVal","parentSideVal","getChild","childNum","options","currentChild","children","display","Sortable","ghost","dragged","draggable","lastChild","last","lastElementChild","previousElementSibling","index","nodeName","toUpperCase","clone","getRelativeScrollOffset","offsetLeft","offsetTop","winScroller","scrollLeft","scrollTop","includeSelf","elem","gotSelf","clientWidth","scrollWidth","clientHeight","scrollHeight","elemCSS","overflowX","overflowY","body","isRectEqual","rect1","rect2","Math","round","throttle","callback","ms","args","_this","setTimeout","scrollBy","x","y","Polymer","$","jQuery","Zepto","dom","cloneNode","setRect","rect","unsetRect","expando","Date","getTime","AnimationStateManager","animationCallbackId","animationStates","captureAnimationState","animation","slice","child","push","fromRect","thisAnimationDuration","childMatrix","f","e","addAnimationState","removeAnimationState","splice","Number","indexOfObject","animateAll","clearTimeout","animating","animationTime","time","toRect","prevFromRect","prevToRect","animatingRect","targetMatrix","sqrt","pow","calculateRealTime","animate","max","animationResetTimer","currentRect","duration","translateX","translateY","animatingX","animatingY","offsetWidth","repaint","easing","animated","plugins","defaults","initializeByDefault","PluginManager","mount","plugin","option","pluginEvent","eventName","sortable","evt","eventCanceled","cancel","eventNameGlobal","pluginName","initializePlugins","initialized","modified","modifyOption","getEventProperties","eventProperties","modifiedValue","optionListeners","dispatchEvent","_ref","rootEl","targetEl","cloneEl","toEl","fromEl","oldIndex","newIndex","oldDraggableIndex","newDraggableIndex","originalEvent","putSortable","extraEventProperties","onName","charAt","substr","CustomEvent","createEvent","initEvent","bubbles","cancelable","to","item","pullMode","lastPutMode","undefined","allEventProperties","data","bind","dragEl","parentEl","ghostEl","nextEl","lastDownEl","cloneHidden","dragStarted","moved","activeSortable","active","hideGhostForTarget","_hideGhostForTarget","unhideGhostForTarget","_unhideGhostForTarget","cloneNowHidden","cloneNowShown","dispatchSortableEvent","_dispatchEvent","info","activeGroup","tapEvt","touchEvt","lastDx","lastDy","tapDistanceLeft","tapDistanceTop","lastTarget","lastDirection","targetMoveDistance","ghostRelativeParent","awaitingDragStarted","ignoreNextClick","sortables","pastFirstInvertThresh","isCircumstantialInvert","ghostRelativeParentInitialScroll","_silent","savedInputChecked","documentExists","PositionGhostAbsolutely","CSSFloatProperty","supportDraggable","createElement","supportCssPointerEvents","cssText","pointerEvents","_detectDirection","elCSS","elWidth","paddingLeft","paddingRight","borderLeftWidth","borderRightWidth","child1","child2","firstChildCSS","secondChildCSS","firstChildWidth","marginLeft","marginRight","secondChildWidth","flexDirection","gridTemplateColumns","split","touchingSideChild2","clear","_prepareGroup","toFn","pull","sameGroup","group","otherGroup","join","originalGroup","checkPull","checkPut","put","revertClone","preventDefault","stopPropagation","stopImmediatePropagation","nearestEmptyInsertDetectEvent","touches","nearest","clientX","clientY","some","threshold","emptyInsertThreshold","insideHorizontally","insideVertically","ret","_onDragOver","_checkOutsideTargetEl","_isOutsideThisEl","sort","disabled","store","handle","test","swapThreshold","invertSwap","invertedSwapThreshold","removeCloneOnHide","direction","ghostClass","chosenClass","dragClass","ignore","preventOnFilter","setData","dataTransfer","textContent","dropBubble","dragoverBubble","dataIdAttr","delay","delayOnTouchOnly","touchStartThreshold","devicePixelRatio","forceFallback","fallbackClass","fallbackOnBody","fallbackTolerance","fallbackOffset","supportPointer","nativeDraggable","_onTapStart","get","_onMove","dragRect","targetRect","willInsertAfter","retVal","onMoveFn","onMove","draggedRect","related","relatedRect","_disableDraggable","_unsilent","_generateId","str","src","href","sum","charCodeAt","_nextTick","_cancelNextTick","id","contains","_getDirection","type","touch","pointerType","originalTarget","shadowRoot","path","composedPath","root","inputs","idx","checked","_saveInputCheckedState","button","isContentEditable","criteria","trim","_prepareDragStart","dragStartFn","ownerDocument","nextSibling","_lastX","_lastY","_onDrop","_disableDelayedDragEvents","_triggerDragStart","_disableDelayedDrag","_delayedDragTouchMoveHandler","_dragStartTimer","abs","floor","_onTouchMove","_onDragStart","selection","empty","getSelection","removeAllRanges","err","_dragStarted","fallback","_appendGhost","_nulling","_emulateDragOver","elementFromPoint","ghostMatrix","relativeScrollOffset","dx","dy","b","c","cssMatrix","appendChild","_hideClone","cloneId","insertBefore","_loopId","setInterval","effectAllowed","_dragStartId","revert","vertical","isOwner","canSort","fromSortable","completedFired","dragOverEvent","_ignoreWhileAnimating","completed","elLastChild","_ghostIsLast","changed","targetBeforeFirstSwap","sibling","differentLevel","differentRowCol","dragElS1Opp","dragElS2Opp","dragElOppLength","targetS1Opp","targetS2Opp","targetOppLength","_dragElInRowColumn","side1","scrolledPastTop","scrollBefore","isLastTarget","mouseOnAxis","targetLength","targetS1","targetS2","invert","_getInsertDirection","_getSwapDirection","dragIndex","nextElementSibling","after","moveVector","extra","axis","insertion","_showClone","_offMoveEvents","_offUpEvents","clearInterval","removeChild","save","handleEvent","dropEffect","_globalDragOver","toArray","order","getAttribute","items","set","destroy","querySelectorAll","removeAttribute","utils","is","extend","dst","nextTick","cancelNextTick","detectDirection","element","_len","_key","create","version","scrollEl","scrollRootEl","lastAutoScrollX","lastAutoScrollY","touchEvt$1","pointerElemChangedInterval","autoScrolls","scrolling","clearAutoScrolls","autoScroll","pid","clearPointerElemChangedInterval","lastSwapEl","isFallback","scroll","scrollCustomFn","sens","scrollSensitivity","speed","scrollSpeed","scrollThisInstance","scrollFn","layersOut","currentParent","canScrollX","canScrollY","scrollPosX","scrollPosY","vx","vy","layer","scrollOffsetY","scrollOffsetX","bubbleScroll","drop","toSortable","changedTouches","onSpill","Revert","Remove","SwapPlugin","Swap","swapClass","dragStart","dragOverValid","_ref2","swap","prevSwapEl","_ref3","n1","n2","i1","i2","p1","p2","isEqualNode","swapNodes","nulling","swapItem","startIndex","_ref4","parentSortable","lastMultiDragSelect","multiDragSortable","dragEl$1","clonesFromRect","clonesHidden","multiDragElements","multiDragClones","initialFolding","folding","MultiDragPlugin","MultiDrag","_deselectMultiDrag","_checkKeyDown","_checkKeyUp","selectedClass","multiDragKey","multiDragElement","multiDragKeyDown","isMultiDrag","delayStartGlobal","delayEnded","setupClone","sortableIndex","insertMultiDragClones","showClone","hideClone","_ref5","dragStartGlobal","_ref6","multiDrag","_ref7","_this2","removeMultiDragElements","dragOver","_ref8","_ref9","clonesInserted","insertMultiDragElements","dragOverCompleted","_ref10","dragRectAbsolute","clonesHiddenBefore","dragOverAnimationCapture","_ref11","dragMatrix","dragOverAnimationComplete","_ref12","originalEvt","shiftKey","lastIndex","currentIndex","multiDragIndex","update","nullingGlobal","destroyGlobal","shift","select","deselect","_this3","oldIndicies","newIndicies","clones","toLowerCase","elementsInserted","AutoScroll","_handleAutoScroll","_handleFallbackAutoScroll","dragOverBubble","ogElemScroller","newElem","isOption","Boolean","isGroup","every","hasNoDuplicates","array","Set","size","flattenedOptions","flatMap","itemsValidator","isAllOptionsOrAllGroups","map","hasUniqueValues","text","hasUniqueGroups","components","GlAvatar","props","projectId","String","default","required","validator","isGid","projectName","projectAvatarUrl","alt","computed","avatarAlt","_this$alt","entityId","getIdFromGraphQLId","AVATAR_SHAPE_OPTION_RECT","component","_c","_self","attrs","$options","STORAGE_KEY","module","exports","createEventHub","topBoundaryVisible","bottomBoundaryVisible","scrimClasses","mounted","observeScroll","beforeDestroy","_this$scrollObserver","scrollObserver","disconnect","methods","_this$scrollObserver2","rootMargin","$el","observer","IntersectionObserver","entries","entry","_entry$target","$__visibilityProp","isIntersecting","topBoundary","$refs","bottomBoundary","observe","staticClass","class","_m","_v","ref","_t","doc","loc","definitionRefs","findOperation","definitions","def","refs","collectFragmentReferences","node","kind","add","selectionSet","selections","variableDefinitions","operationName","newDoc","opRefs","allRefs","newRefs","refName","prevRefs","has","childRef","op","oneQuery","ICON_PROJECT","ICON_GROUP","ICON_SUBGROUP","LARGE_AVATAR_PX","SMALL_AVATAR_PX","SEARCH_SHORTCUTS_MIN_CHARACTERS","SEARCH_INPUT_DESCRIPTION","SEARCH_RESULTS_DESCRIPTION","SCOPE_TOKEN_MAX_LENGTH","FETCH_TYPES","SEARCH_MODAL_ID","SEARCH_INPUT_SELECTOR","SEARCH_RESULTS_ITEM_SELECTOR","KEY_N","KEY_P","COMMAND_HANDLE","USER_HANDLE","PROJECT_HANDLE","ISSUE_HANDLE","PATH_HANDLE","COMMANDS_TOGGLE_KEYBINDING","TRACKING_ACTIVATE_COMMAND_PALETTE","TRACKING_CLICK_COMMAND_PALETTE_ITEM","TRACKING_HANDLE_LABEL_MAP","COMMON_HANDLES","SEARCH_SCOPE_PLACEHOLDER","s__","SEARCH_SCOPE","GLOBAL_COMMANDS_GROUP_TITLE","USERS_GROUP_TITLE","PAGES_GROUP_TITLE","PROJECTS_GROUP_TITLE","GROUPS_GROUP_TITLE","ISSUES_GROUP_TITLE","PATH_GROUP_TITLE","SETTINGS_GROUP_TITLE","MODAL_CLOSE_ESC","MODAL_CLOSE_BACKGROUND","MODAL_CLOSE_HEADERCLOSE","SCOPE_SEARCH_ALL","SCOPE_SEARCH_GROUP","SCOPE_SEARCH_PROJECT","GROUP_TITLES","MAX_ROWS","OVERLAY_CHANGE_CONTEXT","OVERLAY_SEARCH","OVERLAY_PROFILE","OVERLAY_PROJECT","OVERLAY_FILE","OVERLAY_GOTO","FREQUENTLY_VISITED_PROJECTS_HANDLE","FREQUENTLY_VISITED_GROUPS_HANDLE","GlButton","GlLink","GlDropdownItem","GlDisclosureDropdownItem","displayText","icon","classes","variant","category","triggerSource","triggerElement","componentAttributes","isButtonTrigger","TRIGGER_ELEMENT_BUTTON","isWithEmojiTrigger","TRIGGER_ELEMENT_WITH_EMOJI","isDropdownWithEmojiTrigger","TRIGGER_ELEMENT_DROPDOWN_WITH_EMOJI","isDisclosureTrigger","TRIGGER_ELEMENT_DISCLOSURE_DROPDOWN","openModal","eventHub","$emit","handleDisclosureDropdownAction","_vm","_b","_s","ROOT_ACTION_EVENT_NAME_SHOW","PROPERTY","getTarget","modifiers","arg","reverse","getTriggerElement","setRole","trigger","unbind","oldProp","handler","componentUpdated","binding","vnode","currentTarget","keyCode","VBModal","inserted","updated","baseRandom","isIterateeCall","toFinite","freeParseFloat","parseFloat","nativeMin","min","nativeRandom","random","lower","upper","floating","temp","rand","GlIcon","directives","SafeHtml","searchQuery","highlightedName","highlight","avatar_url","entity_id","entity_name","avatar_size","_e","rawName","expression","namespace","commandMapper","linksReducer","acc","menuItem","_menuItem$items","trackingAttrs","title","extraAttrs","TRACKING_UNKNOWN_ID","JSON","stringify","keywords","link","fileMapper","projectBlobPath","file","encodeSaferUrl","joinPaths","trackingMixin","InternalEvents","mixin","GlDisclosureDropdownGroup","GlLoadingIcon","SearchItem","mixins","Tracking","inject","includes","groups","loading","projectFiles","debouncedSearch","_debounce","getCommandsAndPages","getScopedItems","getProjectFiles","DEFAULT_DEBOUNCE_AND_THROTTLE_MS","settings","isCommandMode","isPathMode","commands","commandPaletteCommands","links","commandPaletteLinks","reduce","filteredCommands","filterBySearchQuery","hasResults","_this$groups","_group$items","hasSearchQuery","_this$searchQuery2","_this$searchQuery","searchTerm","filteredProjectFiles","watch","immediate","oldValue","_TRACKING_HANDLE_LABE","label","track","fetchSettings","_this$searchContext$p","_this$searchContext$g","settingsUrl","searchContext","project","groupId","settingsPath","axios","then","response","catch","logError","fuzzaldrinPlus","projectFilesPath","error","Sentry","matchedLinks","matchedSettings","_this$searchQuery3","_this$searchContext$p2","query","_omitBy","term","project_id","scope","_isNil","objectToQuery","autocompleteQuery","autocompletePath","getFormattedItem","trackingCommands","command","_this$searchContext$p3","setting","trackEvent","_l","scopedSlots","_u","__","userInput","placeholder","locals","GlSprintf","i18n","getTipNum","_random","content","GlCollapsibleListbox","header","modKey","getModifierKey","emitSelected","selected","emitHidden","open","commandsDropdown","close","EVENT_CLICK_COMMANDS_SUB_MENU_IN_COMMAND_PALETTE","$event","proxy","textMessage","NO_SEARCH_RESULTS","AUTOCOMPLETE_ERROR_MESSAGE","MERGE_REQUESTS_GROUP_TITLE","RECENT_ISSUES_GROUP_TITLE","RECENT_EPICS_GROUP_TITLE","RECENT_MERGE_REQUESTS_GROUP_TITLE","GlAlert","SearchResultHoverLayover","GlobalSearchNoResults","mapState","mapGetters","autocompleteGroupedSearchOptions","_this$autocompleteGro","hasNoResults","autocompleteError","search","overlayText","trackingTypes","PLACES","YOUR_WORK_TITLE","EXPLORE_TITLE","PROFILE_TITLE","PREFERENCES_TITLE","shouldRender","contextSwitcherLinks","rest","TRACKING_UNKNOWN_PANEL","startsWith","_kebabCase","created","$attrs","ALL_GITLAB","ISSUES_ASSIGNED_TO_ME_TITLE","ISSUES_I_HAVE_CREATED_TITLE","MERGE_REQUESTS_THAT_I_AM_A_REVIEWER","MERGE_REQUESTS_I_HAVE_CREATED_TITLE","MERGE_REQUESTS_ASSIGNED_TO_ME_TITLE","currentContextName","_this$searchContext","_this$searchContext2","_this$defaultSearchOp","defaultSearchOptions","ProjectAvatar","avatar","subtitle","GlSkeletonLoader","FrequentItem","FrequentItemSkeleton","emptyStateText","groupName","viewAllItemsText","viewAllItemsIcon","viewAllItemsPath","formattedItems","forDropdown","gon","relative_url_root","fullPath","forRenderer","truncateNamespace","avatarUrl","showEmptyState","viewAllItem","FrequentItems","apollo","frecentGroups","currentUserFrecentGroupsQuery","viewAllText","_g","$apollo","queries","groupsPath","$listeners","frecentProjects","currentUserFrecentProjectsQuery","DefaultPlaces","projectsPath","FrequentGroups","DefaultIssuables","componentNames","componentFromName","remove","nameToRemove","indexToRemove","findIndex","bordered","trackItems","tag","scopedSearchGroup","injectRegexSearch","scopeName","description","titleLabel","sprintf","getTruncatedScope","truncate","COMMAND_PALETTE","SEARCH_DESCRIBED_BY_WITH_RESULTS","SEARCH_DESCRIBED_BY_DEFAULT","SEARCH_DESCRIBED_BY_UPDATED","SEARCH_OR_COMMAND_MODE_PLACEHOLDER","SEARCH_RESULTS_LOADING","MIN_SEARCH_TERM","COMMAND_PALETTE_TIP","GlSearchBoxByType","GlobalSearchDefaultItems","GlobalSearchScopedItems","GlobalSearchAutocompleteItems","GlModal","CommandPaletteItems","FakeSearchInput","CommandPaletteLottery","ScrollScrim","CommandsOverviewDropdown","modalKeyboardNavigationMixin","nextFocusedItemIndex","commandPaletteDropdownItems","commandPaletteDropdownOpen","focusIndex","childListItems","searchText","stringHasCommand","setCommand","stringFirstChar","setSearch","showDefaultItems","searchTermOverMin","_this$searchText","showScopedSearchItems","scopedSearchOptions","searchResultsDescription","count","searchOptions","searchBarItem","_this$searchOptions","commandPaletteQuery","_this$searchText2","commandHighlightClass","darkModeEnabled","highlightFirstCommand","addStopCallback","allowMousetrapBindingOnSearchInput","mapActions","getAutocompleteOptions","fetchAutocompleteOptions","clearAutocomplete","getFocusableOptions","_this$$refs$resultsLi","resultsList","handleSubmitSearch","submitSearch","getListItemsAndFocusIndex","_this$$refs$resultsLi2","childItems","activeElement","onKeydown","_this$childListItems$","_this$childListItems$2","code","ctrlKey","stop","isSearchInput","elements","ENTER_KEY","NUMPAD_ENTER_KEY","HOME_KEY","focusItem","END_KEY","ARROW_UP_KEY","focusSearchInput","focusNextItem","ARROW_DOWN_KEY","focus","ESC_KEY","modal","onKeyComboToggleDropdown","commandDropdown","combo","searchInput","handleClosing","_this$$refs","querySelector","offset","nextIndex","_clamp","_elements$index","_this$search","runFirstCommand","visitUrl","_this$getFocusableOpt","firstChild","click","onSearchModalShown","Mousetrap","onSearchModalHidden","_this$getFocusableOpt2","activeCommand","toggle","handleCommandSelection","string","isHandle","model","$$v","commandChar","domProps","code_search","for_snippets","__vue_script__","GlClearIconButton","input","focusInput","render","_h","$createElement","inputListeners","clearInput","staticRenderFns","textSrOnly","nameId","GROUP_TOP_BORDER_CLASSES","HEADER_ITEMS_BORDER_CLASSES","events","GL_DROPDOWN_SHOWN","GL_DROPDOWN_HIDDEN","GlBaseDropdown","GlListboxItem","GlListboxGroup","GlListboxSearchInput","GlIntersectionObserver","multiple","toggleText","headerText","primary","noCaret","placement","isCheckCentered","toggleAriaLabelledBy","listAriaLabelledBy","searchable","searching","infiniteScroll","totalItems","infiniteScrollLoading","noResultsText","searchPlaceholder","resetButtonLabel","showSelectAllButtonLabel","block","dropdownOffset","fluidWidth","positioningStrategy","strategy","startOpened","srOnlyResultsLabel","Function","selectedValues","toggleId","listboxId","searchStr","hasItems","listboxTag","_this$flattenedOption","showNoResultsText","showSelectAllButton","$scopedSlots","toggleClasses","hasSelection","footer","newSelected","$nextTick","baseDropdown","groupClasses","_this$selectedIndices","selectedIndices","getFocusableListItemElements","_this$$refs$list","searchBox","isSelected","onMultiSelect","onSingleSelect","closeAndFocus","selectedValue","listboxToggleText","toggleButtonClasses","_d","onShow","onHide","headerId","onResetButtonClicked","onSelectAllButtonClicked","_k","listboxClasses","itemTag","hasHeader","isFocused","onSelect","listboxItemMoreItemsAriaAttributes","onIntersectionObserverAppear","hasFooter","getCustomizations","_memoize","parsedCustomizations","AccessorUtilities","canUseLocalStorage","parse","localStorage","getItem","TOGGLE_KEYBOARD_SHORTCUTS_DIALOG","defaultKeys","GO_TO_YOUR_PROJECTS","GO_TO_YOUR_GROUPS","GO_TO_ACTIVITY_FEED","GO_TO_MILESTONE_LIST","GO_TO_YOUR_SNIPPETS","START_SEARCH","FOCUS_FILTER_BAR","GO_TO_YOUR_ISSUES","GO_TO_YOUR_MERGE_REQUESTS","GO_TO_YOUR_REVIEW_REQUESTS","GO_TO_YOUR_TODO_LIST","TOGGLE_PERFORMANCE_BAR","HIDE_APPEARING_CONTENT","TOGGLE_SUPER_SIDEBAR","TOGGLE_CANARY","BOLD_TEXT","customizable","ITALIC_TEXT","STRIKETHROUGH_TEXT","LINK_TEXT","INDENT_LINE","OUTDENT_LINE","FIND_AND_REPLACE","TOGGLE_MARKDOWN_PREVIEW","EDIT_RECENT_COMMENT","SAVE_CHANGES","EDIT_WIKI_PAGE","REPO_GRAPH_SCROLL_LEFT","REPO_GRAPH_SCROLL_RIGHT","REPO_GRAPH_SCROLL_UP","REPO_GRAPH_SCROLL_DOWN","REPO_GRAPH_SCROLL_TOP","REPO_GRAPH_SCROLL_BOTTOM","GO_TO_PROJECT_OVERVIEW","GO_TO_PROJECT_ACTIVITY_FEED","GO_TO_PROJECT_RELEASES","GO_TO_PROJECT_FILES","START_SEARCH_PROJECT_FILE","GO_TO_PROJECT_COMMITS","GO_TO_PROJECT_REPO_GRAPH","GO_TO_PROJECT_REPO_CHARTS","GO_TO_PROJECT_ISSUES","NEW_ISSUE","GO_TO_PROJECT_ISSUE_BOARDS","GO_TO_PROJECT_MERGE_REQUESTS","GO_TO_PROJECT_PIPELINES","GO_TO_PROJECT_JOBS","GO_TO_PROJECT_ENVIRONMENTS","GO_TO_PROJECT_KUBERNETES","GO_TO_PROJECT_SNIPPETS","GO_TO_PROJECT_WIKI","GO_TO_PROJECT_WEBIDE","PROJECT_FILES_MOVE_SELECTION_UP","PROJECT_FILES_MOVE_SELECTION_DOWN","PROJECT_FILES_OPEN_SELECTION","PROJECT_FILES_GO_BACK","PROJECT_FILES_GO_TO_PERMALINK","PROJECT_FILES_GO_TO_COMPARE","ISSUABLE_COMMENT_OR_REPLY","ISSUABLE_EDIT_DESCRIPTION","ISSUABLE_CHANGE_LABEL","ISSUABLE_COPY_REF","ISSUE_MR_CHANGE_ASSIGNEE","ISSUE_MR_CHANGE_MILESTONE","MR_NEXT_FILE_IN_DIFF","MR_PREVIOUS_FILE_IN_DIFF","MR_GO_TO_FILE","MR_TOGGLE_FILE_BROWSER","MR_ADD_TO_REVIEW","MR_ADD_COMMENT_NOW","MR_NEXT_UNRESOLVED_DISCUSSION","MR_PREVIOUS_UNRESOLVED_DISCUSSION","MR_COPY_SOURCE_BRANCH_NAME","MR_EXPAND_ALL_FILES","MR_COLLAPSE_ALL_FILES","MR_COMMITS_NEXT_COMMIT","MR_COMMITS_PREVIOUS_COMMIT","ISSUE_NEXT_DESIGN","ISSUE_PREVIOUS_DESIGN","ISSUE_CLOSE_DESIGN","SIDEBAR_CLOSE_WIDGET","WEB_IDE_GO_TO_FILE","WEB_IDE_COMMIT","keybindingGroups","keybindings","keysFor","isCustomizable","getObserver","$_gl_intersectionHandler","$_gl_intersectionObserver","unobserve","__vue_component__","fetchType","_state$searchContext","_state$searchContext2","project_ref","commit","promises","doFetch","Promise","all","_state$searchContext3","_state$searchContext4","_state$searchContext5","_state$searchContext6","nav_source","group_id","snippets","search_code","repository_ref","searchPath","scopedIssuesPath","_state$searchContext7","_state$searchContext8","_state$searchContext9","_state$searchContext10","project_metadata","issues_path","group_metadata","current_username","issuesPath","scopedMRPath","_state$searchContext11","_state$searchContext12","mr_path","mrPath","getters","userName","ISSUES_CATEGORY","MERGE_REQUEST_CATEGORY","issues","MSG_ISSUES_ASSIGNED_TO_ME","MSG_ISSUES_IVE_CREATED","mergeRequests","MSG_MR_ASSIGNED_TO_ME","MSG_MR_IM_REVIEWER","MSG_MR_IVE_CREATED","projectUrl","_state$searchContext13","_state$searchContext14","_state$searchContext15","_state$searchContext16","_state$searchContext17","_state$searchContext18","groupUrl","_state$searchContext19","_state$searchContext20","_state$searchContext21","_state$searchContext22","_state$searchContext23","allUrl","_state$searchContext24","_state$searchContext25","_state$searchContext26","_state$searchContext27","_state$searchContext28","_state$searchContext29","_state$searchContext$","_state$searchContext$2","_state$searchContext$3","scopeCategory","PROJECTS_CATEGORY","GROUPS_CATEGORY","full_name","MSG_IN_ALL_GITLAB","_getters$scopedSearch","COMMAND_PALETTE_SEARCH_SCOPE_HEADER","COMMAND_PALETTE_PAGES_CHAR","COMMAND_PALETTE_PAGES_SCOPE_HEADER","COMMAND_PALETTE_USERS_CHAR","COMMAND_PALETTE_USERS_SCOPE_HEADER","COMMAND_PALETTE_PROJECTS_CHAR","COMMAND_PALETTE_PROJECTS_SCOPE_HEADER","COMMAND_PALETTE_FILES_CHAR","COMMAND_PALETTE_FILES_SCOPE_HEADER","groupedOptions","results","autocompleteOptions","formattedItem","SEARCH_RESULTS_ORDER","_state$search","_getters$scopedSearch2","sortedAutocompleteOptions","values","createState","Vue","use","Vuex","createStore","config","Store","actions","mutations","getStoreConfig","userCounts","observable","last_update","todos","assigned_issues","assigned_merge_requests","review_requested_merge_requests","updateCounts","payload","_payload$last_update","isInteger","broadcastChannel","broadcastUserCounts","_broadcastChannel","postMessage","async","retrieveUserCountsFromApi","lastUpdate","now","getUserCounts","console","updateTodos","_e$detail","_e$detail2","isSafeInteger","detail","delta","destroyUserCountsManager","_broadcastChannel2","logo","homepage","GlTooltip","GlTooltipDirective","logoUrl","rootPath","DROPDOWN_X_OFFSET_IMPERSONATING","IMPERSONATING_OFFSET","GlDisclosureDropdown","InviteMembersTrigger","CreateWorkItemModal","createNew","dropdownOpen","showCreateWorkItemModal","mainAxis","DROPDOWN_Y_OFFSET","crossAxis","isImpersonating","isInvitedMembers","groupItem","TOP_NAV_INVITE_MEMBERS_COMPONENT","isCreateWorkItem","CREATE_NEW_WORK_ITEM_MODAL","WORK_ITEM_TYPE_ENUM_EPIC","ariaLabel","formattedCount","isFinite","highCountTrim","GlBadge","getCount","_userCounts$item$user","userCount","user","busy","has_link_to_profile","link_to_profile","USER_MENU_TRACKING_DEFAULTS","status","username","customized","emoji","message_html","statusTooltipTarget","SET_STATUS_MODAL_ID","setStatus","editStatus","editProfile","preferences","buyPipelineMinutes","oneOfGroupsRunningOutOfPipelineMinutes","gitlabNext","startTrial","enterAdminMode","leaveAdminMode","signOut","UserMenuProfileItem","SetStatusModal","GlModalDirective","setStatusModalReady","updatedAvatarUrl","statusItem","trialItem","trial","url","showTrialItem","_this$data$trial","has_start_trial","editProfileItem","profile_path","preferencesItem","profile_preferences_path","addBuyPipelineMinutesMenuItem","_this$data$pipeline_m","pipeline_minutes","show_buy_pipeline_minutes","buyPipelineMinutesItem","_this$data$pipeline_m2","warningText","buy_pipeline_minutes_path","gitlabNextItem","canary_toggle_com_url","enterAdminModeItem","admin_mode","enter_admin_mode_url","leaveAdminModeItem","leave_admin_mode_url","signOutGroup","sign_out_link","statusModalData","_this$data","can_update","message","availability","clear_after","clearAfter","buyPipelineMinutesCalloutData","showNotificationDot","callout_attrs","feature_id","dismiss_endpoint","showEnterAdminModeItem","user_is_admin","admin_mode_feature_enabled","admin_mode_active","showLeaveAdminModeItem","_this$data$pipeline_m3","show_notification_dot","updateAvatar","unmounted","_event$detail","initBuyCIMinsCallout","closeDropdown","userDropdown","PersistentUserCallout","factory","buyPipelineMinutesNotificationCallout","trackBuyCIMins","trackAction","property","tracking_attrs","trackSignOut","notification_dot_attrs","show_with_subtext","gitlab_com_but_not_canary","can_sign_out","NEXT_LABEL","JS_TOGGLE_COLLAPSE_CLASS","Counter","CreateMenu","MergeRequestMenu","UserMenu","SearchModal","SuperSidebarToggle","BrandLogo","OrganizationSwitcher","searchKbdHelp","kbdOpen","kbdClose","todoList","stopImpersonating","searchBtnText","glFeatureFlagsMixin","hasCollapseButton","sidebarData","mrMenuShown","searchTooltip","isLoggedIn","mergeRequestTotalCount","mergeRequestMenuComponent","merge_request_menu","_gon","_gon2","user_counts","BroadcastChannel","current_user_id","onmessage","ev","hideSearchTooltip","showSearchTooltip","is_logged_in","logo_url","gitlab_com_and_canary","create_new_menu_groups","stop_impersonation_path","glFeatures","uiForOrganizations","issues_dashboard_path","merge_request_dashboard_path","todos_dashboard_path","searchButtonTopRight","portalState","ready","mountId","SIDEBAR_PORTAL_ID","GitlabVersionCheckBadge","help","support","docs","plans","forum","contribute","feedback","shortcuts","whatsnew","terms","privacy","showWhatsNewNotification","shouldShowWhatsNewNotification","duoChatGlobalState","toggleWhatsNewDrawer","itemGroups","helpLinks","helpPagePath","support_path","docs_path","PROMO_URL","FORUM_URL","anchor","isSaas","helpActions","action","HELP_MENU_TRACKING_DEFAULTS","shortcut","display_whats_new","showWhatsNew","whats_new_most_recent_release_items_count","show_version_check","versionCheck","gitlab_version","major","minor","updateSeverity","_this$sidebarData$git","gitlab_version_check","severity","whats_new_version_digest","trackDropdownToggle","show","AMBIGUOUS_SETTINGS","ci_cd","merge_request_settings","monitor","repository","pinned","emptyHint","Draggable","MenuSection","NavItem","hasFlyout","wasPinnedNav","asyncCount","expanded","getCookie","SIDEBAR_PINS_EXPANDED_COOKIE","draggableItems","renameSettings","sectionItem","is_active","itemIds","newExpanded","setCookie","expires","SIDEBAR_COOKIE_EXPIRATION","newItems","handleDrag","onPinRemove","itemId","itemTitle","writePinnedClick","sessionStorage","setItem","PINNED_NAV_STORAGE_KEY","staticStyle","PinnedSection","pinAdded","pinRemoved","provide","pinnedItemIds","changedPinnedItemIds","panelSupportsPins","supportsPins","panelType","updatePinsUrl","showFlyoutMenus","readAndResetPinnedNav","ids","superSidebarDataQuery","variables","currentPath","skip","_data$namespace$sideb","_data$namespace","sidebar","staticItems","nonStaticItems","showAsActive","flatPinnableItems","pinnedItems","PANELS_WITH_PINS","hasStaticItems","decideFlyoutState","createPin","$toast","updatePins","destroyPin","movePin","fromId","toId","isDownwards","fromIndex","toIndex","panel","menu_item_ids","isSection","navItem","_navItem$items","GlBreakpointInstance","windowWidth","breakpoints","md","removeItem","separated","isMouseOverSidebar","openTimer","closeTimer","xNearWindowEdge","xSidebarEdge","xAwayFromSidebar","getCssClassDimensions","onMouseMove","onDocumentLeave","changeState","STATE_CLOSED","clearTimers","willOpen","STATE_WILL_OPEN","STATE_OPEN","willClose","STATE_WILL_CLOSE","SUPER_SIDEBAR_PEEK_CLOSE_DELAY","SUPER_SIDEBAR_PEEK_OPEN_DELAY","isMouseWithinSidebarArea","JS_TOGGLE_EXPAND_CLASS","onMouseEnter","onMouseLeave","UserBar","HelpCenter","ExtraInfo","SidebarMenu","SidebarPeekBehavior","SidebarHoverPeekBehavior","SidebarPortalTarget","TrialWidget","skipToMainContent","primaryNavigation","adminArea","sidebarState","showPeekHint","isMouseover","breakpoint","showOverlay","isPeek","isHoverPeek","menuItems","current_menu_items","peekClasses","hasPeeked","collapsed","setupFocusTrapListener","isNotPeeking","firstFocusableElement","current_context","currentContext","track_visits_path","trackVisitsPath","trackContextAccess","toggleSidebar","focusTrap","isCollapsed","toggleSuperSidebarCollapsed","isOverlapping","xl","collapseSidebar","handleEscKey","_document$querySelect","onPeekChange","onHoverPeekChange","userBar","lastFocusableElement","is_admin","adminAreaLink","helpCenter","TAB_KEY_CODE","current_context_header","panel_type","pinned_items","update_pins_url","showTrialWidget","admin_url","shortcut_links","shortcutLink","css_class","isPeekable","isNarrowScreen","isNarrowScreenAddListener","handleNarrowScreenChange","isNarrowScreenRemoveListener","GlToast","VueApollo","getTrialStatusWidgetData","trial_widget_data_attrs","trialType","daysRemaining","percentageComplete","trialDiscoverPagePath","purchaseNowUrl","featureId","dismissEndpoint","convertObjectPropsToCamelCase","toggleInstantiated","superSidebarData","_sidebarData$current_","_sidebarData$current_2","forceDesktopExpandedSidebar","commandPalette","dataset","searchData","projects_path","groups_path","commandPaletteData","project_files_url","project_blob_url","context_switcher_links","parseBoolean","is_impersonating","CONTEXT_NAMESPACE_GROUPS","getSuperSidebarData","_sidebarData$work_ite","_sidebarData$work_ite2","_sidebarData$work_ite3","_sidebarData$work_ite4","_sidebarData$work_ite5","bindSuperSidebarCollapsedEvents","initSuperSidebarCollapsedState","apolloProvider","work_items","full_path","hasIssuableHealthStatusFeature","has_issuable_health_status_feature","issuesListPath","issues_list_path","canAdminLabel","can_admin_label","labelsManagePath","labels_manage_path","h","SuperSidebar","initSuperSidebar","initSuperSidebarToggle","breadcrumbsJson","staticBreadcrumbs","GlBreadcrumb","initPageBreadcrumbs","_sidebarData$work_ite6","AdvancedSearchModal","initAdvancedSearchModal","avatarSize","getAvatarSize","_searchContext$group","_searchContext$projec","RECENT_EPICS_CATEGORY","getEntityId","entityName","_searchContext$group2","_searchContext$projec2","group_name","project_name","getEntityName","slugify","_pickBy","COMMAND_PALETTE_TYPE_PAGES","COMMAND_PALETTE_TYPE_FILES","PROJECT_SELECT_LABEL_ID","SEARCH_DELAY","VALID_TOKEN_BACKGROUND","WARNING_TOKEN_BACKGROUND","INVALID_TOKEN_BACKGROUND","TOAST_MESSAGE_LOCALSTORAGE_KEY","MEMBERS_WITH_QUEUED_STATUS_LOCALSTORAGE_KEY","GROUP_FILTERS","ALL","DESCENDANT_GROUPS","USERS_FILTER_ALL","USERS_FILTER_SAML_PROVIDER_ID","INVITE_MEMBER_MODAL_TRACKING_CATEGORY","IMPORT_PROJECT_MEMBERS_MODAL_TRACKING_CATEGORY","IMPORT_PROJECT_MEMBERS_MODAL_TRACKING_LABEL","MEMBERS_MODAL_DEFAULT_TITLE","MEMBERS_MODAL_CELEBRATE_TITLE","MEMBERS_MODAL_CELEBRATE_INTRO","MEMBERS_TO_GROUP_DEFAULT_INTRO_TEXT","MEMBERS_TO_PROJECT_DEFAULT_INTRO_TEXT","MEMBERS_TO_PROJECT_CELEBRATE_INTRO_TEXT","MEMBERS_SEARCH_FIELD","MEMBERS_PLACEHOLDER","GROUP_MODAL_DEFAULT_TITLE","GROUP_MODAL_TO_GROUP_DEFAULT_INTRO_TEXT","GROUP_MODAL_TO_PROJECT_DEFAULT_INTRO_TEXT","GROUP_MODAL_TO_GROUP_ALERT_BODY","GROUP_MODAL_TO_GROUP_ALERT_LINK","GROUP_MODAL_TO_PROJECT_ALERT_BODY","GROUP_MODAL_TO_PROJECT_ALERT_LINK","GROUP_SEARCH_FIELD","GROUP_PLACEHOLDER","ACCESS_LEVEL","ACCESS_EXPIRE_DATE","TOAST_MESSAGE_SUCCESSFUL","QUEUED_MESSAGE_SUCCESSFUL","INVALID_FEEDBACK_MESSAGE_DEFAULT","READ_MORE_TEXT","READ_MORE_ACCESS_EXPIRATION_TEXT","INVITE_BUTTON_TEXT","INVITE_BUTTON_TEXT_DISABLED","CANCEL_BUTTON_TEXT","HEADER_CLOSE_LABEL","MEMBER_ERROR_LIST_TEXT","COLLAPSED_ERRORS","EXPANDED_ERRORS","EMPTY_INVITES_ALERT_TEXT","MEMBER_MODAL_LABELS","celebrate","intro","toGroup","introText","toProject","searchField","placeHolder","toastMessageSuccessful","memberErrorListText","collapsedErrors","expandedErrors","emptyInvitesAlertText","GROUP_MODAL_LABELS","notificationText","notificationLink","ON_SHOW_TRACK_LABEL","ON_CELEBRATION_TRACK_LABEL","WARNING_ALERT_TITLE","DANGER_ALERT_TITLE","REACHED_LIMIT_VARIANT","CLOSE_TO_LIMIT_VARIANT","REACHED_LIMIT_UPGRADE_SUGGESTION_MESSAGE","CLOSE_TO_LIMIT_MESSAGE","BLOCKED_SEAT_OVERAGES_BODY","BLOCKED_SEAT_OVERAGES_CTA","BLOCKED_SEAT_OVERAGES_CTA_DOCS","BLOCKED_SEAT_OVERAGES_ERROR_REASON","names","nativeFloor","injectVueAppBreadcrumbs","router","BreadcrumbsComponent","injectBreadcrumbEl","ex","inBrowser","pick","transports","targets","sources","wormhole","trackInstances","transport","passengers","_transport$order","Infinity","newTransport","freeze","compareFn","$_getTransportIndex","newTransports","v","force","registerTarget","vm","warn","$set","unregisterTarget","$delete","registerSource","unregisterSource","hasTarget","hasSource","hasContentFor","_id","Portal","slim","slotProps","sendUpdate","newValue","closer","normalizeSlots","$slots","normalizeOwnChildren","slotContent","Tag","PortalTarget","transition","firstRender","ownTransports","newVal","oldVal","newPassengers","combinePassengers","noWrapper","_id$1","portalProps","targetProps","MountingPortal","inheritAttrs","append","bail","mountTo","targetSlim","targetSlotProps","targetTag","$props","portalTarget","mountEl","_props","$parent","propsData","$destroy","manual","install","Vue$$1","portalName","portalTargetName","MountingPortalName","Wormhole","_event$target","_this$$refs$searchInp","modules","installedModules","__webpack_require__","moduleId","l","m","getter","o","r","toStringTag","t","mode","__esModule","ns","object","p","s","toInteger","defined","TO_STRING","that","pos","at","S","unicode","it","anObject","result","global","ignoreCase","multiline","sticky","$at","iterated","_i","point","O","done","$export","isObject","valueOf","$defineProperty","createDesc","redefine","hide","fails","wks","regexpExec","SPECIES","REPLACE_SUPPORTS_NAMED_GROUPS","re","exec","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","KEY","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","nativeRegExpMethod","fns","nativeMethod","regexp","arg2","forceStringMethod","strfn","rxfn","RegExp","cof","TAG","ARG","T","B","tryGet","callee","SRC","$toString","TPL","inspectSource","safe","isFunction","uid","USE_SYMBOL","context","P","F","searchString","LIBRARY","Iterators","$iterCreate","setToStringTag","getPrototypeOf","ITERATOR","BUGGY","returnThis","Base","NAME","Constructor","next","DEFAULT","IS_SET","FORCED","IteratorPrototype","getMethod","proto","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","toObject","$keys","dP","IObject","ArrayProto","ceil","isNaN","stat","bitmap","SAFE_CLOSING","riter","skipClosing","MATCH","re1","re2","regexpFlags","nativeExec","nativeReplace","patchedExec","UPDATES_LAST_INDEX_WRONG","NPCG_INCLUDED","reCopy","IE_PROTO","ObjectProto","isArrayIter","toLength","createProperty","getIterFn","arrayLike","step","C","aLen","mapfn","mapping","iterFn","core","copyright","shared","__e","toIObject","toAbsoluteIndex","IS_INCLUDES","$this","own","out","exp","IS_FORCED","IS_GLOBAL","G","IS_STATIC","IS_PROTO","IS_BIND","expProto","U","W","R","classof","builtinExec","px","IS_WRAP","virtual","$includes","TO_STRING_TAG","DOMIterables","Collection","self","__g","getIteratorMethod","getIterator","getKeys","defineProperties","Properties","IE8_DOM_DEFINE","toPrimitive","Attributes","descriptor","gOPS","pIE","$assign","A","K","k","getSymbols","isEnum","j","isIterable","aFunction","UNSCOPABLES","dPs","enumBugKeys","Empty","createDict","iframeDocument","iframe","contentWindow","write","lt","advanceStringIndex","regExpExec","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","REPLACE","$replace","maybeCallNative","searchValue","replaceValue","res","rx","functionalReplace","fullUnicode","accumulatedResult","nextSourcePosition","matched","position","captures","namedCaptures","replacerArgs","replacement","getSubstitution","tailPos","symbols","ch","isRegExp","forced","addToUnscopables","Arguments","__webpack_exports__","insertNodeAt","camelize","removeNode","F_source_vuedraggable_node_modules_babel_runtime_corejs2_core_js_object_create__WEBPACK_IMPORTED_MODULE_1__","F_source_vuedraggable_node_modules_babel_runtime_corejs2_core_js_object_create__WEBPACK_IMPORTED_MODULE_1___default","cache","regex","parentElement","fatherNode","refNode","g","$Object","D","arrayIndexOf","$startsWith","setPublicPath_i","currentScript","object_assign","assign_default","keys_default","is_array","is_array_default","get_iterator","get_iterator_default","_slicedToArray","_arrayWithHoles","_arr","_n","_iterableToArrayLimit","_nonIterableRest","from_default","is_iterable","is_iterable_default","external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_","external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_default","helper","emit","evtName","evtData","delegateAndEmit","realList","isTransitionName","getSlot","slot","scopedSlot","eventsListened","eventsToEmit","readonlyProperties","draggingElement","draggableComponent","noTransitionOnDrag","original","move","componentData","transitionMode","noneFunctionalComponentMode","slots","componentOptions","vuedraggable_isTransition","_computeChildrenAndOf","headerOffset","footerOffset","computeChildrenAndOffsets","attributes","propName","buildAttribute","componentDataAttrs","getComponentAttributes","getTag","getIsFunctional","Error","optionsAdded","elt","onDragMove","_sortable","rootContainer","computeIndexes","newOptionValue","updateOptions","deep","fnOptions","_vnode","functional","getChildrenNodes","$children","rawNodes","_this4","visibleIndexes","isTransition","elmFromNodes","elm","footerIndex","rawIndexes","ind","_computeIndexes","getUnderlyingVm","htmlElt","vnodes","computeVmIndex","getUnderlyingPotencialDraggableComponent","vue","__vue__","_componentTag","emitChanges","_this5","alterList","onList","newList","spliceList","_arguments","updatePosition","getRelatedContextFromMoveEvent","destination","getVmIndex","domIndex","indexes","numberIndexes","getComponent","componentInstance","resetTransitionData","transitionContainer","kept","onDragStart","_underlying_vm_","onDragAdd","added","onDragRemove","removed","onDragUpdate","updateProperty","propertyName","computeFutureIndex","relatedContext","domChildren","currentDOMIndex","draggedContext","futureIndex","onDragEnd","vuedraggable","DefaultTransition","afterEnter","onAfterEnter","normalizeSlot","ariaAtomic","ariaLive","role","BToaster","doRender","dead","staticName","emitOnRoot","$toaster","$target","modelMixin","modelProps","MODEL_PROP_NAME","MODEL_EVENT_NAME","defaultValue","linkProps","appendToast","autoHideDelay","bodyClass","headerClass","headerTag","isStatus","noAutoHide","noFade","noHoverPause","solid","static","toastClass","toaster","BToast","isMounted","localShow","isTransitioning","isHiding","dismissStarted","resumeDismiss","math","beforeEnter","onBeforeEnter","beforeLeave","onBeforeLeave","afterLeave","onAfterLeave","bvAttrs","safeId","tabindex","ensureToaster","$_dismissTimer","listenOnRoot","computedToaster","clearDismissTimer","showEvent","buildEvent","emitEvent","hideEvent","setHoverHandler","relatedTarget","vueTarget","componentId","bvEvent","div","bvEventRoot","$mount","computedDuration","onPause","onUnPause","passed","startDismissTimer","hiddenEvent","slotScope","$headerContent","$title","$header","$body","onLinkClick","computedAttrs","isStatic","toastClasses","scopedStyleAttrs","transitionHandlers","makeToast","BASE_PROPS","propsToSlots","toastContent","filterOptions","memo","BVToastPlugin","BVToastPop","extends","handleDestroy","bvParent","$once","BvToast","_root","toast","visible","ToastPlugin","DEFAULT_OPTIONS","toastsCount","renderTitle","nodes","onClick","showToast","$bvToast","onComplete","toastHiddenCallback","$root","$off","$on","updatedAutoHideDelay","toggleSelection","checkedClasses"],"mappings":"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","file":"super_sidebar.151ba159.chunk.js","sourcesContent":["/**!\n * Sortable 1.10.2\n * @author\tRubaXa   <trash@rubaxa.org>\n * @author\towenm    <owen23355@gmail.com>\n * @license MIT\n */\nfunction _typeof(obj) {\n  if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n    _typeof = function (obj) {\n      return typeof obj;\n    };\n  } else {\n    _typeof = function (obj) {\n      return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n    };\n  }\n\n  return _typeof(obj);\n}\n\nfunction _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n}\n\nfunction _extends() {\n  _extends = Object.assign || function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n\n    return target;\n  };\n\n  return _extends.apply(this, arguments);\n}\n\nfunction _objectSpread(target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i] != null ? arguments[i] : {};\n    var ownKeys = Object.keys(source);\n\n    if (typeof Object.getOwnPropertySymbols === 'function') {\n      ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n        return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n      }));\n    }\n\n    ownKeys.forEach(function (key) {\n      _defineProperty(target, key, source[key]);\n    });\n  }\n\n  return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n  if (source == null) return {};\n  var target = {};\n  var sourceKeys = Object.keys(source);\n  var key, i;\n\n  for (i = 0; i < sourceKeys.length; i++) {\n    key = sourceKeys[i];\n    if (excluded.indexOf(key) >= 0) continue;\n    target[key] = source[key];\n  }\n\n  return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n  if (source == null) return {};\n\n  var target = _objectWithoutPropertiesLoose(source, excluded);\n\n  var key, i;\n\n  if (Object.getOwnPropertySymbols) {\n    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n    for (i = 0; i < sourceSymbolKeys.length; i++) {\n      key = sourceSymbolKeys[i];\n      if (excluded.indexOf(key) >= 0) continue;\n      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n      target[key] = source[key];\n    }\n  }\n\n  return target;\n}\n\nfunction _toConsumableArray(arr) {\n  return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n  if (Array.isArray(arr)) {\n    for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n    return arr2;\n  }\n}\n\nfunction _iterableToArray(iter) {\n  if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nvar version = \"1.10.2\";\n\nfunction userAgent(pattern) {\n  if (typeof window !== 'undefined' && window.navigator) {\n    return !!\n    /*@__PURE__*/\n    navigator.userAgent.match(pattern);\n  }\n}\n\nvar IE11OrLess = userAgent(/(?:Trident.*rv[ :]?11\\.|msie|iemobile|Windows Phone)/i);\nvar Edge = userAgent(/Edge/i);\nvar FireFox = userAgent(/firefox/i);\nvar Safari = userAgent(/safari/i) && !userAgent(/chrome/i) && !userAgent(/android/i);\nvar IOS = userAgent(/iP(ad|od|hone)/i);\nvar ChromeForAndroid = userAgent(/chrome/i) && userAgent(/android/i);\n\nvar captureMode = {\n  capture: false,\n  passive: false\n};\n\nfunction on(el, event, fn) {\n  el.addEventListener(event, fn, !IE11OrLess && captureMode);\n}\n\nfunction off(el, event, fn) {\n  el.removeEventListener(event, fn, !IE11OrLess && captureMode);\n}\n\nfunction matches(\n/**HTMLElement*/\nel,\n/**String*/\nselector) {\n  if (!selector) return;\n  selector[0] === '>' && (selector = selector.substring(1));\n\n  if (el) {\n    try {\n      if (el.matches) {\n        return el.matches(selector);\n      } else if (el.msMatchesSelector) {\n        return el.msMatchesSelector(selector);\n      } else if (el.webkitMatchesSelector) {\n        return el.webkitMatchesSelector(selector);\n      }\n    } catch (_) {\n      return false;\n    }\n  }\n\n  return false;\n}\n\nfunction getParentOrHost(el) {\n  return el.host && el !== document && el.host.nodeType ? el.host : el.parentNode;\n}\n\nfunction closest(\n/**HTMLElement*/\nel,\n/**String*/\nselector,\n/**HTMLElement*/\nctx, includeCTX) {\n  if (el) {\n    ctx = ctx || document;\n\n    do {\n      if (selector != null && (selector[0] === '>' ? el.parentNode === ctx && matches(el, selector) : matches(el, selector)) || includeCTX && el === ctx) {\n        return el;\n      }\n\n      if (el === ctx) break;\n      /* jshint boss:true */\n    } while (el = getParentOrHost(el));\n  }\n\n  return null;\n}\n\nvar R_SPACE = /\\s+/g;\n\nfunction toggleClass(el, name, state) {\n  if (el && name) {\n    if (el.classList) {\n      el.classList[state ? 'add' : 'remove'](name);\n    } else {\n      var className = (' ' + el.className + ' ').replace(R_SPACE, ' ').replace(' ' + name + ' ', ' ');\n      el.className = (className + (state ? ' ' + name : '')).replace(R_SPACE, ' ');\n    }\n  }\n}\n\nfunction css(el, prop, val) {\n  var style = el && el.style;\n\n  if (style) {\n    if (val === void 0) {\n      if (document.defaultView && document.defaultView.getComputedStyle) {\n        val = document.defaultView.getComputedStyle(el, '');\n      } else if (el.currentStyle) {\n        val = el.currentStyle;\n      }\n\n      return prop === void 0 ? val : val[prop];\n    } else {\n      if (!(prop in style) && prop.indexOf('webkit') === -1) {\n        prop = '-webkit-' + prop;\n      }\n\n      style[prop] = val + (typeof val === 'string' ? '' : 'px');\n    }\n  }\n}\n\nfunction matrix(el, selfOnly) {\n  var appliedTransforms = '';\n\n  if (typeof el === 'string') {\n    appliedTransforms = el;\n  } else {\n    do {\n      var transform = css(el, 'transform');\n\n      if (transform && transform !== 'none') {\n        appliedTransforms = transform + ' ' + appliedTransforms;\n      }\n      /* jshint boss:true */\n\n    } while (!selfOnly && (el = el.parentNode));\n  }\n\n  var matrixFn = window.DOMMatrix || window.WebKitCSSMatrix || window.CSSMatrix || window.MSCSSMatrix;\n  /*jshint -W056 */\n\n  return matrixFn && new matrixFn(appliedTransforms);\n}\n\nfunction find(ctx, tagName, iterator) {\n  if (ctx) {\n    var list = ctx.getElementsByTagName(tagName),\n        i = 0,\n        n = list.length;\n\n    if (iterator) {\n      for (; i < n; i++) {\n        iterator(list[i], i);\n      }\n    }\n\n    return list;\n  }\n\n  return [];\n}\n\nfunction getWindowScrollingElement() {\n  var scrollingElement = document.scrollingElement;\n\n  if (scrollingElement) {\n    return scrollingElement;\n  } else {\n    return document.documentElement;\n  }\n}\n/**\r\n * Returns the \"bounding client rect\" of given element\r\n * @param  {HTMLElement} el                       The element whose boundingClientRect is wanted\r\n * @param  {[Boolean]} relativeToContainingBlock  Whether the rect should be relative to the containing block of (including) the container\r\n * @param  {[Boolean]} relativeToNonStaticParent  Whether the rect should be relative to the relative parent of (including) the contaienr\r\n * @param  {[Boolean]} undoScale                  Whether the container's scale() should be undone\r\n * @param  {[HTMLElement]} container              The parent the element will be placed in\r\n * @return {Object}                               The boundingClientRect of el, with specified adjustments\r\n */\n\n\nfunction getRect(el, relativeToContainingBlock, relativeToNonStaticParent, undoScale, container) {\n  if (!el.getBoundingClientRect && el !== window) return;\n  var elRect, top, left, bottom, right, height, width;\n\n  if (el !== window && el !== getWindowScrollingElement()) {\n    elRect = el.getBoundingClientRect();\n    top = elRect.top;\n    left = elRect.left;\n    bottom = elRect.bottom;\n    right = elRect.right;\n    height = elRect.height;\n    width = elRect.width;\n  } else {\n    top = 0;\n    left = 0;\n    bottom = window.innerHeight;\n    right = window.innerWidth;\n    height = window.innerHeight;\n    width = window.innerWidth;\n  }\n\n  if ((relativeToContainingBlock || relativeToNonStaticParent) && el !== window) {\n    // Adjust for translate()\n    container = container || el.parentNode; // solves #1123 (see: https://stackoverflow.com/a/37953806/6088312)\n    // Not needed on <= IE11\n\n    if (!IE11OrLess) {\n      do {\n        if (container && container.getBoundingClientRect && (css(container, 'transform') !== 'none' || relativeToNonStaticParent && css(container, 'position') !== 'static')) {\n          var containerRect = container.getBoundingClientRect(); // Set relative to edges of padding box of container\n\n          top -= containerRect.top + parseInt(css(container, 'border-top-width'));\n          left -= containerRect.left + parseInt(css(container, 'border-left-width'));\n          bottom = top + elRect.height;\n          right = left + elRect.width;\n          break;\n        }\n        /* jshint boss:true */\n\n      } while (container = container.parentNode);\n    }\n  }\n\n  if (undoScale && el !== window) {\n    // Adjust for scale()\n    var elMatrix = matrix(container || el),\n        scaleX = elMatrix && elMatrix.a,\n        scaleY = elMatrix && elMatrix.d;\n\n    if (elMatrix) {\n      top /= scaleY;\n      left /= scaleX;\n      width /= scaleX;\n      height /= scaleY;\n      bottom = top + height;\n      right = left + width;\n    }\n  }\n\n  return {\n    top: top,\n    left: left,\n    bottom: bottom,\n    right: right,\n    width: width,\n    height: height\n  };\n}\n/**\r\n * Checks if a side of an element is scrolled past a side of its parents\r\n * @param  {HTMLElement}  el           The element who's side being scrolled out of view is in question\r\n * @param  {String}       elSide       Side of the element in question ('top', 'left', 'right', 'bottom')\r\n * @param  {String}       parentSide   Side of the parent in question ('top', 'left', 'right', 'bottom')\r\n * @return {HTMLElement}               The parent scroll element that the el's side is scrolled past, or null if there is no such element\r\n */\n\n\nfunction isScrolledPast(el, elSide, parentSide) {\n  var parent = getParentAutoScrollElement(el, true),\n      elSideVal = getRect(el)[elSide];\n  /* jshint boss:true */\n\n  while (parent) {\n    var parentSideVal = getRect(parent)[parentSide],\n        visible = void 0;\n\n    if (parentSide === 'top' || parentSide === 'left') {\n      visible = elSideVal >= parentSideVal;\n    } else {\n      visible = elSideVal <= parentSideVal;\n    }\n\n    if (!visible) return parent;\n    if (parent === getWindowScrollingElement()) break;\n    parent = getParentAutoScrollElement(parent, false);\n  }\n\n  return false;\n}\n/**\r\n * Gets nth child of el, ignoring hidden children, sortable's elements (does not ignore clone if it's visible)\r\n * and non-draggable elements\r\n * @param  {HTMLElement} el       The parent element\r\n * @param  {Number} childNum      The index of the child\r\n * @param  {Object} options       Parent Sortable's options\r\n * @return {HTMLElement}          The child at index childNum, or null if not found\r\n */\n\n\nfunction getChild(el, childNum, options) {\n  var currentChild = 0,\n      i = 0,\n      children = el.children;\n\n  while (i < children.length) {\n    if (children[i].style.display !== 'none' && children[i] !== Sortable.ghost && children[i] !== Sortable.dragged && closest(children[i], options.draggable, el, false)) {\n      if (currentChild === childNum) {\n        return children[i];\n      }\n\n      currentChild++;\n    }\n\n    i++;\n  }\n\n  return null;\n}\n/**\r\n * Gets the last child in the el, ignoring ghostEl or invisible elements (clones)\r\n * @param  {HTMLElement} el       Parent element\r\n * @param  {selector} selector    Any other elements that should be ignored\r\n * @return {HTMLElement}          The last child, ignoring ghostEl\r\n */\n\n\nfunction lastChild(el, selector) {\n  var last = el.lastElementChild;\n\n  while (last && (last === Sortable.ghost || css(last, 'display') === 'none' || selector && !matches(last, selector))) {\n    last = last.previousElementSibling;\n  }\n\n  return last || null;\n}\n/**\r\n * Returns the index of an element within its parent for a selected set of\r\n * elements\r\n * @param  {HTMLElement} el\r\n * @param  {selector} selector\r\n * @return {number}\r\n */\n\n\nfunction index(el, selector) {\n  var index = 0;\n\n  if (!el || !el.parentNode) {\n    return -1;\n  }\n  /* jshint boss:true */\n\n\n  while (el = el.previousElementSibling) {\n    if (el.nodeName.toUpperCase() !== 'TEMPLATE' && el !== Sortable.clone && (!selector || matches(el, selector))) {\n      index++;\n    }\n  }\n\n  return index;\n}\n/**\r\n * Returns the scroll offset of the given element, added with all the scroll offsets of parent elements.\r\n * The value is returned in real pixels.\r\n * @param  {HTMLElement} el\r\n * @return {Array}             Offsets in the format of [left, top]\r\n */\n\n\nfunction getRelativeScrollOffset(el) {\n  var offsetLeft = 0,\n      offsetTop = 0,\n      winScroller = getWindowScrollingElement();\n\n  if (el) {\n    do {\n      var elMatrix = matrix(el),\n          scaleX = elMatrix.a,\n          scaleY = elMatrix.d;\n      offsetLeft += el.scrollLeft * scaleX;\n      offsetTop += el.scrollTop * scaleY;\n    } while (el !== winScroller && (el = el.parentNode));\n  }\n\n  return [offsetLeft, offsetTop];\n}\n/**\r\n * Returns the index of the object within the given array\r\n * @param  {Array} arr   Array that may or may not hold the object\r\n * @param  {Object} obj  An object that has a key-value pair unique to and identical to a key-value pair in the object you want to find\r\n * @return {Number}      The index of the object in the array, or -1\r\n */\n\n\nfunction indexOfObject(arr, obj) {\n  for (var i in arr) {\n    if (!arr.hasOwnProperty(i)) continue;\n\n    for (var key in obj) {\n      if (obj.hasOwnProperty(key) && obj[key] === arr[i][key]) return Number(i);\n    }\n  }\n\n  return -1;\n}\n\nfunction getParentAutoScrollElement(el, includeSelf) {\n  // skip to window\n  if (!el || !el.getBoundingClientRect) return getWindowScrollingElement();\n  var elem = el;\n  var gotSelf = false;\n\n  do {\n    // we don't need to get elem css if it isn't even overflowing in the first place (performance)\n    if (elem.clientWidth < elem.scrollWidth || elem.clientHeight < elem.scrollHeight) {\n      var elemCSS = css(elem);\n\n      if (elem.clientWidth < elem.scrollWidth && (elemCSS.overflowX == 'auto' || elemCSS.overflowX == 'scroll') || elem.clientHeight < elem.scrollHeight && (elemCSS.overflowY == 'auto' || elemCSS.overflowY == 'scroll')) {\n        if (!elem.getBoundingClientRect || elem === document.body) return getWindowScrollingElement();\n        if (gotSelf || includeSelf) return elem;\n        gotSelf = true;\n      }\n    }\n    /* jshint boss:true */\n\n  } while (elem = elem.parentNode);\n\n  return getWindowScrollingElement();\n}\n\nfunction extend(dst, src) {\n  if (dst && src) {\n    for (var key in src) {\n      if (src.hasOwnProperty(key)) {\n        dst[key] = src[key];\n      }\n    }\n  }\n\n  return dst;\n}\n\nfunction isRectEqual(rect1, rect2) {\n  return Math.round(rect1.top) === Math.round(rect2.top) && Math.round(rect1.left) === Math.round(rect2.left) && Math.round(rect1.height) === Math.round(rect2.height) && Math.round(rect1.width) === Math.round(rect2.width);\n}\n\nvar _throttleTimeout;\n\nfunction throttle(callback, ms) {\n  return function () {\n    if (!_throttleTimeout) {\n      var args = arguments,\n          _this = this;\n\n      if (args.length === 1) {\n        callback.call(_this, args[0]);\n      } else {\n        callback.apply(_this, args);\n      }\n\n      _throttleTimeout = setTimeout(function () {\n        _throttleTimeout = void 0;\n      }, ms);\n    }\n  };\n}\n\nfunction cancelThrottle() {\n  clearTimeout(_throttleTimeout);\n  _throttleTimeout = void 0;\n}\n\nfunction scrollBy(el, x, y) {\n  el.scrollLeft += x;\n  el.scrollTop += y;\n}\n\nfunction clone(el) {\n  var Polymer = window.Polymer;\n  var $ = window.jQuery || window.Zepto;\n\n  if (Polymer && Polymer.dom) {\n    return Polymer.dom(el).cloneNode(true);\n  } else if ($) {\n    return $(el).clone(true)[0];\n  } else {\n    return el.cloneNode(true);\n  }\n}\n\nfunction setRect(el, rect) {\n  css(el, 'position', 'absolute');\n  css(el, 'top', rect.top);\n  css(el, 'left', rect.left);\n  css(el, 'width', rect.width);\n  css(el, 'height', rect.height);\n}\n\nfunction unsetRect(el) {\n  css(el, 'position', '');\n  css(el, 'top', '');\n  css(el, 'left', '');\n  css(el, 'width', '');\n  css(el, 'height', '');\n}\n\nvar expando = 'Sortable' + new Date().getTime();\n\nfunction AnimationStateManager() {\n  var animationStates = [],\n      animationCallbackId;\n  return {\n    captureAnimationState: function captureAnimationState() {\n      animationStates = [];\n      if (!this.options.animation) return;\n      var children = [].slice.call(this.el.children);\n      children.forEach(function (child) {\n        if (css(child, 'display') === 'none' || child === Sortable.ghost) return;\n        animationStates.push({\n          target: child,\n          rect: getRect(child)\n        });\n\n        var fromRect = _objectSpread({}, animationStates[animationStates.length - 1].rect); // If animating: compensate for current animation\n\n\n        if (child.thisAnimationDuration) {\n          var childMatrix = matrix(child, true);\n\n          if (childMatrix) {\n            fromRect.top -= childMatrix.f;\n            fromRect.left -= childMatrix.e;\n          }\n        }\n\n        child.fromRect = fromRect;\n      });\n    },\n    addAnimationState: function addAnimationState(state) {\n      animationStates.push(state);\n    },\n    removeAnimationState: function removeAnimationState(target) {\n      animationStates.splice(indexOfObject(animationStates, {\n        target: target\n      }), 1);\n    },\n    animateAll: function animateAll(callback) {\n      var _this = this;\n\n      if (!this.options.animation) {\n        clearTimeout(animationCallbackId);\n        if (typeof callback === 'function') callback();\n        return;\n      }\n\n      var animating = false,\n          animationTime = 0;\n      animationStates.forEach(function (state) {\n        var time = 0,\n            target = state.target,\n            fromRect = target.fromRect,\n            toRect = getRect(target),\n            prevFromRect = target.prevFromRect,\n            prevToRect = target.prevToRect,\n            animatingRect = state.rect,\n            targetMatrix = matrix(target, true);\n\n        if (targetMatrix) {\n          // Compensate for current animation\n          toRect.top -= targetMatrix.f;\n          toRect.left -= targetMatrix.e;\n        }\n\n        target.toRect = toRect;\n\n        if (target.thisAnimationDuration) {\n          // Could also check if animatingRect is between fromRect and toRect\n          if (isRectEqual(prevFromRect, toRect) && !isRectEqual(fromRect, toRect) && // Make sure animatingRect is on line between toRect & fromRect\n          (animatingRect.top - toRect.top) / (animatingRect.left - toRect.left) === (fromRect.top - toRect.top) / (fromRect.left - toRect.left)) {\n            // If returning to same place as started from animation and on same axis\n            time = calculateRealTime(animatingRect, prevFromRect, prevToRect, _this.options);\n          }\n        } // if fromRect != toRect: animate\n\n\n        if (!isRectEqual(toRect, fromRect)) {\n          target.prevFromRect = fromRect;\n          target.prevToRect = toRect;\n\n          if (!time) {\n            time = _this.options.animation;\n          }\n\n          _this.animate(target, animatingRect, toRect, time);\n        }\n\n        if (time) {\n          animating = true;\n          animationTime = Math.max(animationTime, time);\n          clearTimeout(target.animationResetTimer);\n          target.animationResetTimer = setTimeout(function () {\n            target.animationTime = 0;\n            target.prevFromRect = null;\n            target.fromRect = null;\n            target.prevToRect = null;\n            target.thisAnimationDuration = null;\n          }, time);\n          target.thisAnimationDuration = time;\n        }\n      });\n      clearTimeout(animationCallbackId);\n\n      if (!animating) {\n        if (typeof callback === 'function') callback();\n      } else {\n        animationCallbackId = setTimeout(function () {\n          if (typeof callback === 'function') callback();\n        }, animationTime);\n      }\n\n      animationStates = [];\n    },\n    animate: function animate(target, currentRect, toRect, duration) {\n      if (duration) {\n        css(target, 'transition', '');\n        css(target, 'transform', '');\n        var elMatrix = matrix(this.el),\n            scaleX = elMatrix && elMatrix.a,\n            scaleY = elMatrix && elMatrix.d,\n            translateX = (currentRect.left - toRect.left) / (scaleX || 1),\n            translateY = (currentRect.top - toRect.top) / (scaleY || 1);\n        target.animatingX = !!translateX;\n        target.animatingY = !!translateY;\n        css(target, 'transform', 'translate3d(' + translateX + 'px,' + translateY + 'px,0)');\n        repaint(target); // repaint\n\n        css(target, 'transition', 'transform ' + duration + 'ms' + (this.options.easing ? ' ' + this.options.easing : ''));\n        css(target, 'transform', 'translate3d(0,0,0)');\n        typeof target.animated === 'number' && clearTimeout(target.animated);\n        target.animated = setTimeout(function () {\n          css(target, 'transition', '');\n          css(target, 'transform', '');\n          target.animated = false;\n          target.animatingX = false;\n          target.animatingY = false;\n        }, duration);\n      }\n    }\n  };\n}\n\nfunction repaint(target) {\n  return target.offsetWidth;\n}\n\nfunction calculateRealTime(animatingRect, fromRect, toRect, options) {\n  return Math.sqrt(Math.pow(fromRect.top - animatingRect.top, 2) + Math.pow(fromRect.left - animatingRect.left, 2)) / Math.sqrt(Math.pow(fromRect.top - toRect.top, 2) + Math.pow(fromRect.left - toRect.left, 2)) * options.animation;\n}\n\nvar plugins = [];\nvar defaults = {\n  initializeByDefault: true\n};\nvar PluginManager = {\n  mount: function mount(plugin) {\n    // Set default static properties\n    for (var option in defaults) {\n      if (defaults.hasOwnProperty(option) && !(option in plugin)) {\n        plugin[option] = defaults[option];\n      }\n    }\n\n    plugins.push(plugin);\n  },\n  pluginEvent: function pluginEvent(eventName, sortable, evt) {\n    var _this = this;\n\n    this.eventCanceled = false;\n\n    evt.cancel = function () {\n      _this.eventCanceled = true;\n    };\n\n    var eventNameGlobal = eventName + 'Global';\n    plugins.forEach(function (plugin) {\n      if (!sortable[plugin.pluginName]) return; // Fire global events if it exists in this sortable\n\n      if (sortable[plugin.pluginName][eventNameGlobal]) {\n        sortable[plugin.pluginName][eventNameGlobal](_objectSpread({\n          sortable: sortable\n        }, evt));\n      } // Only fire plugin event if plugin is enabled in this sortable,\n      // and plugin has event defined\n\n\n      if (sortable.options[plugin.pluginName] && sortable[plugin.pluginName][eventName]) {\n        sortable[plugin.pluginName][eventName](_objectSpread({\n          sortable: sortable\n        }, evt));\n      }\n    });\n  },\n  initializePlugins: function initializePlugins(sortable, el, defaults, options) {\n    plugins.forEach(function (plugin) {\n      var pluginName = plugin.pluginName;\n      if (!sortable.options[pluginName] && !plugin.initializeByDefault) return;\n      var initialized = new plugin(sortable, el, sortable.options);\n      initialized.sortable = sortable;\n      initialized.options = sortable.options;\n      sortable[pluginName] = initialized; // Add default options from plugin\n\n      _extends(defaults, initialized.defaults);\n    });\n\n    for (var option in sortable.options) {\n      if (!sortable.options.hasOwnProperty(option)) continue;\n      var modified = this.modifyOption(sortable, option, sortable.options[option]);\n\n      if (typeof modified !== 'undefined') {\n        sortable.options[option] = modified;\n      }\n    }\n  },\n  getEventProperties: function getEventProperties(name, sortable) {\n    var eventProperties = {};\n    plugins.forEach(function (plugin) {\n      if (typeof plugin.eventProperties !== 'function') return;\n\n      _extends(eventProperties, plugin.eventProperties.call(sortable[plugin.pluginName], name));\n    });\n    return eventProperties;\n  },\n  modifyOption: function modifyOption(sortable, name, value) {\n    var modifiedValue;\n    plugins.forEach(function (plugin) {\n      // Plugin must exist on the Sortable\n      if (!sortable[plugin.pluginName]) return; // If static option listener exists for this option, call in the context of the Sortable's instance of this plugin\n\n      if (plugin.optionListeners && typeof plugin.optionListeners[name] === 'function') {\n        modifiedValue = plugin.optionListeners[name].call(sortable[plugin.pluginName], value);\n      }\n    });\n    return modifiedValue;\n  }\n};\n\nfunction dispatchEvent(_ref) {\n  var sortable = _ref.sortable,\n      rootEl = _ref.rootEl,\n      name = _ref.name,\n      targetEl = _ref.targetEl,\n      cloneEl = _ref.cloneEl,\n      toEl = _ref.toEl,\n      fromEl = _ref.fromEl,\n      oldIndex = _ref.oldIndex,\n      newIndex = _ref.newIndex,\n      oldDraggableIndex = _ref.oldDraggableIndex,\n      newDraggableIndex = _ref.newDraggableIndex,\n      originalEvent = _ref.originalEvent,\n      putSortable = _ref.putSortable,\n      extraEventProperties = _ref.extraEventProperties;\n  sortable = sortable || rootEl && rootEl[expando];\n  if (!sortable) return;\n  var evt,\n      options = sortable.options,\n      onName = 'on' + name.charAt(0).toUpperCase() + name.substr(1); // Support for new CustomEvent feature\n\n  if (window.CustomEvent && !IE11OrLess && !Edge) {\n    evt = new CustomEvent(name, {\n      bubbles: true,\n      cancelable: true\n    });\n  } else {\n    evt = document.createEvent('Event');\n    evt.initEvent(name, true, true);\n  }\n\n  evt.to = toEl || rootEl;\n  evt.from = fromEl || rootEl;\n  evt.item = targetEl || rootEl;\n  evt.clone = cloneEl;\n  evt.oldIndex = oldIndex;\n  evt.newIndex = newIndex;\n  evt.oldDraggableIndex = oldDraggableIndex;\n  evt.newDraggableIndex = newDraggableIndex;\n  evt.originalEvent = originalEvent;\n  evt.pullMode = putSortable ? putSortable.lastPutMode : undefined;\n\n  var allEventProperties = _objectSpread({}, extraEventProperties, PluginManager.getEventProperties(name, sortable));\n\n  for (var option in allEventProperties) {\n    evt[option] = allEventProperties[option];\n  }\n\n  if (rootEl) {\n    rootEl.dispatchEvent(evt);\n  }\n\n  if (options[onName]) {\n    options[onName].call(sortable, evt);\n  }\n}\n\nvar pluginEvent = function pluginEvent(eventName, sortable) {\n  var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n      originalEvent = _ref.evt,\n      data = _objectWithoutProperties(_ref, [\"evt\"]);\n\n  PluginManager.pluginEvent.bind(Sortable)(eventName, sortable, _objectSpread({\n    dragEl: dragEl,\n    parentEl: parentEl,\n    ghostEl: ghostEl,\n    rootEl: rootEl,\n    nextEl: nextEl,\n    lastDownEl: lastDownEl,\n    cloneEl: cloneEl,\n    cloneHidden: cloneHidden,\n    dragStarted: moved,\n    putSortable: putSortable,\n    activeSortable: Sortable.active,\n    originalEvent: originalEvent,\n    oldIndex: oldIndex,\n    oldDraggableIndex: oldDraggableIndex,\n    newIndex: newIndex,\n    newDraggableIndex: newDraggableIndex,\n    hideGhostForTarget: _hideGhostForTarget,\n    unhideGhostForTarget: _unhideGhostForTarget,\n    cloneNowHidden: function cloneNowHidden() {\n      cloneHidden = true;\n    },\n    cloneNowShown: function cloneNowShown() {\n      cloneHidden = false;\n    },\n    dispatchSortableEvent: function dispatchSortableEvent(name) {\n      _dispatchEvent({\n        sortable: sortable,\n        name: name,\n        originalEvent: originalEvent\n      });\n    }\n  }, data));\n};\n\nfunction _dispatchEvent(info) {\n  dispatchEvent(_objectSpread({\n    putSortable: putSortable,\n    cloneEl: cloneEl,\n    targetEl: dragEl,\n    rootEl: rootEl,\n    oldIndex: oldIndex,\n    oldDraggableIndex: oldDraggableIndex,\n    newIndex: newIndex,\n    newDraggableIndex: newDraggableIndex\n  }, info));\n}\n\nvar dragEl,\n    parentEl,\n    ghostEl,\n    rootEl,\n    nextEl,\n    lastDownEl,\n    cloneEl,\n    cloneHidden,\n    oldIndex,\n    newIndex,\n    oldDraggableIndex,\n    newDraggableIndex,\n    activeGroup,\n    putSortable,\n    awaitingDragStarted = false,\n    ignoreNextClick = false,\n    sortables = [],\n    tapEvt,\n    touchEvt,\n    lastDx,\n    lastDy,\n    tapDistanceLeft,\n    tapDistanceTop,\n    moved,\n    lastTarget,\n    lastDirection,\n    pastFirstInvertThresh = false,\n    isCircumstantialInvert = false,\n    targetMoveDistance,\n    // For positioning ghost absolutely\nghostRelativeParent,\n    ghostRelativeParentInitialScroll = [],\n    // (left, top)\n_silent = false,\n    savedInputChecked = [];\n/** @const */\n\nvar documentExists = typeof document !== 'undefined',\n    PositionGhostAbsolutely = IOS,\n    CSSFloatProperty = Edge || IE11OrLess ? 'cssFloat' : 'float',\n    // This will not pass for IE9, because IE9 DnD only works on anchors\nsupportDraggable = documentExists && !ChromeForAndroid && !IOS && 'draggable' in document.createElement('div'),\n    supportCssPointerEvents = function () {\n  if (!documentExists) return; // false when <= IE11\n\n  if (IE11OrLess) {\n    return false;\n  }\n\n  var el = document.createElement('x');\n  el.style.cssText = 'pointer-events:auto';\n  return el.style.pointerEvents === 'auto';\n}(),\n    _detectDirection = function _detectDirection(el, options) {\n  var elCSS = css(el),\n      elWidth = parseInt(elCSS.width) - parseInt(elCSS.paddingLeft) - parseInt(elCSS.paddingRight) - parseInt(elCSS.borderLeftWidth) - parseInt(elCSS.borderRightWidth),\n      child1 = getChild(el, 0, options),\n      child2 = getChild(el, 1, options),\n      firstChildCSS = child1 && css(child1),\n      secondChildCSS = child2 && css(child2),\n      firstChildWidth = firstChildCSS && parseInt(firstChildCSS.marginLeft) + parseInt(firstChildCSS.marginRight) + getRect(child1).width,\n      secondChildWidth = secondChildCSS && parseInt(secondChildCSS.marginLeft) + parseInt(secondChildCSS.marginRight) + getRect(child2).width;\n\n  if (elCSS.display === 'flex') {\n    return elCSS.flexDirection === 'column' || elCSS.flexDirection === 'column-reverse' ? 'vertical' : 'horizontal';\n  }\n\n  if (elCSS.display === 'grid') {\n    return elCSS.gridTemplateColumns.split(' ').length <= 1 ? 'vertical' : 'horizontal';\n  }\n\n  if (child1 && firstChildCSS[\"float\"] && firstChildCSS[\"float\"] !== 'none') {\n    var touchingSideChild2 = firstChildCSS[\"float\"] === 'left' ? 'left' : 'right';\n    return child2 && (secondChildCSS.clear === 'both' || secondChildCSS.clear === touchingSideChild2) ? 'vertical' : 'horizontal';\n  }\n\n  return child1 && (firstChildCSS.display === 'block' || firstChildCSS.display === 'flex' || firstChildCSS.display === 'table' || firstChildCSS.display === 'grid' || firstChildWidth >= elWidth && elCSS[CSSFloatProperty] === 'none' || child2 && elCSS[CSSFloatProperty] === 'none' && firstChildWidth + secondChildWidth > elWidth) ? 'vertical' : 'horizontal';\n},\n    _dragElInRowColumn = function _dragElInRowColumn(dragRect, targetRect, vertical) {\n  var dragElS1Opp = vertical ? dragRect.left : dragRect.top,\n      dragElS2Opp = vertical ? dragRect.right : dragRect.bottom,\n      dragElOppLength = vertical ? dragRect.width : dragRect.height,\n      targetS1Opp = vertical ? targetRect.left : targetRect.top,\n      targetS2Opp = vertical ? targetRect.right : targetRect.bottom,\n      targetOppLength = vertical ? targetRect.width : targetRect.height;\n  return dragElS1Opp === targetS1Opp || dragElS2Opp === targetS2Opp || dragElS1Opp + dragElOppLength / 2 === targetS1Opp + targetOppLength / 2;\n},\n\n/**\n * Detects first nearest empty sortable to X and Y position using emptyInsertThreshold.\n * @param  {Number} x      X position\n * @param  {Number} y      Y position\n * @return {HTMLElement}   Element of the first found nearest Sortable\n */\n_detectNearestEmptySortable = function _detectNearestEmptySortable(x, y) {\n  var ret;\n  sortables.some(function (sortable) {\n    if (lastChild(sortable)) return;\n    var rect = getRect(sortable),\n        threshold = sortable[expando].options.emptyInsertThreshold,\n        insideHorizontally = x >= rect.left - threshold && x <= rect.right + threshold,\n        insideVertically = y >= rect.top - threshold && y <= rect.bottom + threshold;\n\n    if (threshold && insideHorizontally && insideVertically) {\n      return ret = sortable;\n    }\n  });\n  return ret;\n},\n    _prepareGroup = function _prepareGroup(options) {\n  function toFn(value, pull) {\n    return function (to, from, dragEl, evt) {\n      var sameGroup = to.options.group.name && from.options.group.name && to.options.group.name === from.options.group.name;\n\n      if (value == null && (pull || sameGroup)) {\n        // Default pull value\n        // Default pull and put value if same group\n        return true;\n      } else if (value == null || value === false) {\n        return false;\n      } else if (pull && value === 'clone') {\n        return value;\n      } else if (typeof value === 'function') {\n        return toFn(value(to, from, dragEl, evt), pull)(to, from, dragEl, evt);\n      } else {\n        var otherGroup = (pull ? to : from).options.group.name;\n        return value === true || typeof value === 'string' && value === otherGroup || value.join && value.indexOf(otherGroup) > -1;\n      }\n    };\n  }\n\n  var group = {};\n  var originalGroup = options.group;\n\n  if (!originalGroup || _typeof(originalGroup) != 'object') {\n    originalGroup = {\n      name: originalGroup\n    };\n  }\n\n  group.name = originalGroup.name;\n  group.checkPull = toFn(originalGroup.pull, true);\n  group.checkPut = toFn(originalGroup.put);\n  group.revertClone = originalGroup.revertClone;\n  options.group = group;\n},\n    _hideGhostForTarget = function _hideGhostForTarget() {\n  if (!supportCssPointerEvents && ghostEl) {\n    css(ghostEl, 'display', 'none');\n  }\n},\n    _unhideGhostForTarget = function _unhideGhostForTarget() {\n  if (!supportCssPointerEvents && ghostEl) {\n    css(ghostEl, 'display', '');\n  }\n}; // #1184 fix - Prevent click event on fallback if dragged but item not changed position\n\n\nif (documentExists) {\n  document.addEventListener('click', function (evt) {\n    if (ignoreNextClick) {\n      evt.preventDefault();\n      evt.stopPropagation && evt.stopPropagation();\n      evt.stopImmediatePropagation && evt.stopImmediatePropagation();\n      ignoreNextClick = false;\n      return false;\n    }\n  }, true);\n}\n\nvar nearestEmptyInsertDetectEvent = function nearestEmptyInsertDetectEvent(evt) {\n  if (dragEl) {\n    evt = evt.touches ? evt.touches[0] : evt;\n\n    var nearest = _detectNearestEmptySortable(evt.clientX, evt.clientY);\n\n    if (nearest) {\n      // Create imitation event\n      var event = {};\n\n      for (var i in evt) {\n        if (evt.hasOwnProperty(i)) {\n          event[i] = evt[i];\n        }\n      }\n\n      event.target = event.rootEl = nearest;\n      event.preventDefault = void 0;\n      event.stopPropagation = void 0;\n\n      nearest[expando]._onDragOver(event);\n    }\n  }\n};\n\nvar _checkOutsideTargetEl = function _checkOutsideTargetEl(evt) {\n  if (dragEl) {\n    dragEl.parentNode[expando]._isOutsideThisEl(evt.target);\n  }\n};\n/**\n * @class  Sortable\n * @param  {HTMLElement}  el\n * @param  {Object}       [options]\n */\n\n\nfunction Sortable(el, options) {\n  if (!(el && el.nodeType && el.nodeType === 1)) {\n    throw \"Sortable: `el` must be an HTMLElement, not \".concat({}.toString.call(el));\n  }\n\n  this.el = el; // root element\n\n  this.options = options = _extends({}, options); // Export instance\n\n  el[expando] = this;\n  var defaults = {\n    group: null,\n    sort: true,\n    disabled: false,\n    store: null,\n    handle: null,\n    draggable: /^[uo]l$/i.test(el.nodeName) ? '>li' : '>*',\n    swapThreshold: 1,\n    // percentage; 0 <= x <= 1\n    invertSwap: false,\n    // invert always\n    invertedSwapThreshold: null,\n    // will be set to same as swapThreshold if default\n    removeCloneOnHide: true,\n    direction: function direction() {\n      return _detectDirection(el, this.options);\n    },\n    ghostClass: 'sortable-ghost',\n    chosenClass: 'sortable-chosen',\n    dragClass: 'sortable-drag',\n    ignore: 'a, img',\n    filter: null,\n    preventOnFilter: true,\n    animation: 0,\n    easing: null,\n    setData: function setData(dataTransfer, dragEl) {\n      dataTransfer.setData('Text', dragEl.textContent);\n    },\n    dropBubble: false,\n    dragoverBubble: false,\n    dataIdAttr: 'data-id',\n    delay: 0,\n    delayOnTouchOnly: false,\n    touchStartThreshold: (Number.parseInt ? Number : window).parseInt(window.devicePixelRatio, 10) || 1,\n    forceFallback: false,\n    fallbackClass: 'sortable-fallback',\n    fallbackOnBody: false,\n    fallbackTolerance: 0,\n    fallbackOffset: {\n      x: 0,\n      y: 0\n    },\n    supportPointer: Sortable.supportPointer !== false && 'PointerEvent' in window,\n    emptyInsertThreshold: 5\n  };\n  PluginManager.initializePlugins(this, el, defaults); // Set default options\n\n  for (var name in defaults) {\n    !(name in options) && (options[name] = defaults[name]);\n  }\n\n  _prepareGroup(options); // Bind all private methods\n\n\n  for (var fn in this) {\n    if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n      this[fn] = this[fn].bind(this);\n    }\n  } // Setup drag mode\n\n\n  this.nativeDraggable = options.forceFallback ? false : supportDraggable;\n\n  if (this.nativeDraggable) {\n    // Touch start threshold cannot be greater than the native dragstart threshold\n    this.options.touchStartThreshold = 1;\n  } // Bind events\n\n\n  if (options.supportPointer) {\n    on(el, 'pointerdown', this._onTapStart);\n  } else {\n    on(el, 'mousedown', this._onTapStart);\n    on(el, 'touchstart', this._onTapStart);\n  }\n\n  if (this.nativeDraggable) {\n    on(el, 'dragover', this);\n    on(el, 'dragenter', this);\n  }\n\n  sortables.push(this.el); // Restore sorting\n\n  options.store && options.store.get && this.sort(options.store.get(this) || []); // Add animation state manager\n\n  _extends(this, AnimationStateManager());\n}\n\nSortable.prototype =\n/** @lends Sortable.prototype */\n{\n  constructor: Sortable,\n  _isOutsideThisEl: function _isOutsideThisEl(target) {\n    if (!this.el.contains(target) && target !== this.el) {\n      lastTarget = null;\n    }\n  },\n  _getDirection: function _getDirection(evt, target) {\n    return typeof this.options.direction === 'function' ? this.options.direction.call(this, evt, target, dragEl) : this.options.direction;\n  },\n  _onTapStart: function _onTapStart(\n  /** Event|TouchEvent */\n  evt) {\n    if (!evt.cancelable) return;\n\n    var _this = this,\n        el = this.el,\n        options = this.options,\n        preventOnFilter = options.preventOnFilter,\n        type = evt.type,\n        touch = evt.touches && evt.touches[0] || evt.pointerType && evt.pointerType === 'touch' && evt,\n        target = (touch || evt).target,\n        originalTarget = evt.target.shadowRoot && (evt.path && evt.path[0] || evt.composedPath && evt.composedPath()[0]) || target,\n        filter = options.filter;\n\n    _saveInputCheckedState(el); // Don't trigger start event when an element is been dragged, otherwise the evt.oldindex always wrong when set option.group.\n\n\n    if (dragEl) {\n      return;\n    }\n\n    if (/mousedown|pointerdown/.test(type) && evt.button !== 0 || options.disabled) {\n      return; // only left button and enabled\n    } // cancel dnd if original target is content editable\n\n\n    if (originalTarget.isContentEditable) {\n      return;\n    }\n\n    target = closest(target, options.draggable, el, false);\n\n    if (target && target.animated) {\n      return;\n    }\n\n    if (lastDownEl === target) {\n      // Ignoring duplicate `down`\n      return;\n    } // Get the index of the dragged element within its parent\n\n\n    oldIndex = index(target);\n    oldDraggableIndex = index(target, options.draggable); // Check filter\n\n    if (typeof filter === 'function') {\n      if (filter.call(this, evt, target, this)) {\n        _dispatchEvent({\n          sortable: _this,\n          rootEl: originalTarget,\n          name: 'filter',\n          targetEl: target,\n          toEl: el,\n          fromEl: el\n        });\n\n        pluginEvent('filter', _this, {\n          evt: evt\n        });\n        preventOnFilter && evt.cancelable && evt.preventDefault();\n        return; // cancel dnd\n      }\n    } else if (filter) {\n      filter = filter.split(',').some(function (criteria) {\n        criteria = closest(originalTarget, criteria.trim(), el, false);\n\n        if (criteria) {\n          _dispatchEvent({\n            sortable: _this,\n            rootEl: criteria,\n            name: 'filter',\n            targetEl: target,\n            fromEl: el,\n            toEl: el\n          });\n\n          pluginEvent('filter', _this, {\n            evt: evt\n          });\n          return true;\n        }\n      });\n\n      if (filter) {\n        preventOnFilter && evt.cancelable && evt.preventDefault();\n        return; // cancel dnd\n      }\n    }\n\n    if (options.handle && !closest(originalTarget, options.handle, el, false)) {\n      return;\n    } // Prepare `dragstart`\n\n\n    this._prepareDragStart(evt, touch, target);\n  },\n  _prepareDragStart: function _prepareDragStart(\n  /** Event */\n  evt,\n  /** Touch */\n  touch,\n  /** HTMLElement */\n  target) {\n    var _this = this,\n        el = _this.el,\n        options = _this.options,\n        ownerDocument = el.ownerDocument,\n        dragStartFn;\n\n    if (target && !dragEl && target.parentNode === el) {\n      var dragRect = getRect(target);\n      rootEl = el;\n      dragEl = target;\n      parentEl = dragEl.parentNode;\n      nextEl = dragEl.nextSibling;\n      lastDownEl = target;\n      activeGroup = options.group;\n      Sortable.dragged = dragEl;\n      tapEvt = {\n        target: dragEl,\n        clientX: (touch || evt).clientX,\n        clientY: (touch || evt).clientY\n      };\n      tapDistanceLeft = tapEvt.clientX - dragRect.left;\n      tapDistanceTop = tapEvt.clientY - dragRect.top;\n      this._lastX = (touch || evt).clientX;\n      this._lastY = (touch || evt).clientY;\n      dragEl.style['will-change'] = 'all';\n\n      dragStartFn = function dragStartFn() {\n        pluginEvent('delayEnded', _this, {\n          evt: evt\n        });\n\n        if (Sortable.eventCanceled) {\n          _this._onDrop();\n\n          return;\n        } // Delayed drag has been triggered\n        // we can re-enable the events: touchmove/mousemove\n\n\n        _this._disableDelayedDragEvents();\n\n        if (!FireFox && _this.nativeDraggable) {\n          dragEl.draggable = true;\n        } // Bind the events: dragstart/dragend\n\n\n        _this._triggerDragStart(evt, touch); // Drag start event\n\n\n        _dispatchEvent({\n          sortable: _this,\n          name: 'choose',\n          originalEvent: evt\n        }); // Chosen item\n\n\n        toggleClass(dragEl, options.chosenClass, true);\n      }; // Disable \"draggable\"\n\n\n      options.ignore.split(',').forEach(function (criteria) {\n        find(dragEl, criteria.trim(), _disableDraggable);\n      });\n      on(ownerDocument, 'dragover', nearestEmptyInsertDetectEvent);\n      on(ownerDocument, 'mousemove', nearestEmptyInsertDetectEvent);\n      on(ownerDocument, 'touchmove', nearestEmptyInsertDetectEvent);\n      on(ownerDocument, 'mouseup', _this._onDrop);\n      on(ownerDocument, 'touchend', _this._onDrop);\n      on(ownerDocument, 'touchcancel', _this._onDrop); // Make dragEl draggable (must be before delay for FireFox)\n\n      if (FireFox && this.nativeDraggable) {\n        this.options.touchStartThreshold = 4;\n        dragEl.draggable = true;\n      }\n\n      pluginEvent('delayStart', this, {\n        evt: evt\n      }); // Delay is impossible for native DnD in Edge or IE\n\n      if (options.delay && (!options.delayOnTouchOnly || touch) && (!this.nativeDraggable || !(Edge || IE11OrLess))) {\n        if (Sortable.eventCanceled) {\n          this._onDrop();\n\n          return;\n        } // If the user moves the pointer or let go the click or touch\n        // before the delay has been reached:\n        // disable the delayed drag\n\n\n        on(ownerDocument, 'mouseup', _this._disableDelayedDrag);\n        on(ownerDocument, 'touchend', _this._disableDelayedDrag);\n        on(ownerDocument, 'touchcancel', _this._disableDelayedDrag);\n        on(ownerDocument, 'mousemove', _this._delayedDragTouchMoveHandler);\n        on(ownerDocument, 'touchmove', _this._delayedDragTouchMoveHandler);\n        options.supportPointer && on(ownerDocument, 'pointermove', _this._delayedDragTouchMoveHandler);\n        _this._dragStartTimer = setTimeout(dragStartFn, options.delay);\n      } else {\n        dragStartFn();\n      }\n    }\n  },\n  _delayedDragTouchMoveHandler: function _delayedDragTouchMoveHandler(\n  /** TouchEvent|PointerEvent **/\n  e) {\n    var touch = e.touches ? e.touches[0] : e;\n\n    if (Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) >= Math.floor(this.options.touchStartThreshold / (this.nativeDraggable && window.devicePixelRatio || 1))) {\n      this._disableDelayedDrag();\n    }\n  },\n  _disableDelayedDrag: function _disableDelayedDrag() {\n    dragEl && _disableDraggable(dragEl);\n    clearTimeout(this._dragStartTimer);\n\n    this._disableDelayedDragEvents();\n  },\n  _disableDelayedDragEvents: function _disableDelayedDragEvents() {\n    var ownerDocument = this.el.ownerDocument;\n    off(ownerDocument, 'mouseup', this._disableDelayedDrag);\n    off(ownerDocument, 'touchend', this._disableDelayedDrag);\n    off(ownerDocument, 'touchcancel', this._disableDelayedDrag);\n    off(ownerDocument, 'mousemove', this._delayedDragTouchMoveHandler);\n    off(ownerDocument, 'touchmove', this._delayedDragTouchMoveHandler);\n    off(ownerDocument, 'pointermove', this._delayedDragTouchMoveHandler);\n  },\n  _triggerDragStart: function _triggerDragStart(\n  /** Event */\n  evt,\n  /** Touch */\n  touch) {\n    touch = touch || evt.pointerType == 'touch' && evt;\n\n    if (!this.nativeDraggable || touch) {\n      if (this.options.supportPointer) {\n        on(document, 'pointermove', this._onTouchMove);\n      } else if (touch) {\n        on(document, 'touchmove', this._onTouchMove);\n      } else {\n        on(document, 'mousemove', this._onTouchMove);\n      }\n    } else {\n      on(dragEl, 'dragend', this);\n      on(rootEl, 'dragstart', this._onDragStart);\n    }\n\n    try {\n      if (document.selection) {\n        // Timeout neccessary for IE9\n        _nextTick(function () {\n          document.selection.empty();\n        });\n      } else {\n        window.getSelection().removeAllRanges();\n      }\n    } catch (err) {}\n  },\n  _dragStarted: function _dragStarted(fallback, evt) {\n\n    awaitingDragStarted = false;\n\n    if (rootEl && dragEl) {\n      pluginEvent('dragStarted', this, {\n        evt: evt\n      });\n\n      if (this.nativeDraggable) {\n        on(document, 'dragover', _checkOutsideTargetEl);\n      }\n\n      var options = this.options; // Apply effect\n\n      !fallback && toggleClass(dragEl, options.dragClass, false);\n      toggleClass(dragEl, options.ghostClass, true);\n      Sortable.active = this;\n      fallback && this._appendGhost(); // Drag start event\n\n      _dispatchEvent({\n        sortable: this,\n        name: 'start',\n        originalEvent: evt\n      });\n    } else {\n      this._nulling();\n    }\n  },\n  _emulateDragOver: function _emulateDragOver() {\n    if (touchEvt) {\n      this._lastX = touchEvt.clientX;\n      this._lastY = touchEvt.clientY;\n\n      _hideGhostForTarget();\n\n      var target = document.elementFromPoint(touchEvt.clientX, touchEvt.clientY);\n      var parent = target;\n\n      while (target && target.shadowRoot) {\n        target = target.shadowRoot.elementFromPoint(touchEvt.clientX, touchEvt.clientY);\n        if (target === parent) break;\n        parent = target;\n      }\n\n      dragEl.parentNode[expando]._isOutsideThisEl(target);\n\n      if (parent) {\n        do {\n          if (parent[expando]) {\n            var inserted = void 0;\n            inserted = parent[expando]._onDragOver({\n              clientX: touchEvt.clientX,\n              clientY: touchEvt.clientY,\n              target: target,\n              rootEl: parent\n            });\n\n            if (inserted && !this.options.dragoverBubble) {\n              break;\n            }\n          }\n\n          target = parent; // store last element\n        }\n        /* jshint boss:true */\n        while (parent = parent.parentNode);\n      }\n\n      _unhideGhostForTarget();\n    }\n  },\n  _onTouchMove: function _onTouchMove(\n  /**TouchEvent*/\n  evt) {\n    if (tapEvt) {\n      var options = this.options,\n          fallbackTolerance = options.fallbackTolerance,\n          fallbackOffset = options.fallbackOffset,\n          touch = evt.touches ? evt.touches[0] : evt,\n          ghostMatrix = ghostEl && matrix(ghostEl, true),\n          scaleX = ghostEl && ghostMatrix && ghostMatrix.a,\n          scaleY = ghostEl && ghostMatrix && ghostMatrix.d,\n          relativeScrollOffset = PositionGhostAbsolutely && ghostRelativeParent && getRelativeScrollOffset(ghostRelativeParent),\n          dx = (touch.clientX - tapEvt.clientX + fallbackOffset.x) / (scaleX || 1) + (relativeScrollOffset ? relativeScrollOffset[0] - ghostRelativeParentInitialScroll[0] : 0) / (scaleX || 1),\n          dy = (touch.clientY - tapEvt.clientY + fallbackOffset.y) / (scaleY || 1) + (relativeScrollOffset ? relativeScrollOffset[1] - ghostRelativeParentInitialScroll[1] : 0) / (scaleY || 1); // only set the status to dragging, when we are actually dragging\n\n      if (!Sortable.active && !awaitingDragStarted) {\n        if (fallbackTolerance && Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) < fallbackTolerance) {\n          return;\n        }\n\n        this._onDragStart(evt, true);\n      }\n\n      if (ghostEl) {\n        if (ghostMatrix) {\n          ghostMatrix.e += dx - (lastDx || 0);\n          ghostMatrix.f += dy - (lastDy || 0);\n        } else {\n          ghostMatrix = {\n            a: 1,\n            b: 0,\n            c: 0,\n            d: 1,\n            e: dx,\n            f: dy\n          };\n        }\n\n        var cssMatrix = \"matrix(\".concat(ghostMatrix.a, \",\").concat(ghostMatrix.b, \",\").concat(ghostMatrix.c, \",\").concat(ghostMatrix.d, \",\").concat(ghostMatrix.e, \",\").concat(ghostMatrix.f, \")\");\n        css(ghostEl, 'webkitTransform', cssMatrix);\n        css(ghostEl, 'mozTransform', cssMatrix);\n        css(ghostEl, 'msTransform', cssMatrix);\n        css(ghostEl, 'transform', cssMatrix);\n        lastDx = dx;\n        lastDy = dy;\n        touchEvt = touch;\n      }\n\n      evt.cancelable && evt.preventDefault();\n    }\n  },\n  _appendGhost: function _appendGhost() {\n    // Bug if using scale(): https://stackoverflow.com/questions/2637058\n    // Not being adjusted for\n    if (!ghostEl) {\n      var container = this.options.fallbackOnBody ? document.body : rootEl,\n          rect = getRect(dragEl, true, PositionGhostAbsolutely, true, container),\n          options = this.options; // Position absolutely\n\n      if (PositionGhostAbsolutely) {\n        // Get relatively positioned parent\n        ghostRelativeParent = container;\n\n        while (css(ghostRelativeParent, 'position') === 'static' && css(ghostRelativeParent, 'transform') === 'none' && ghostRelativeParent !== document) {\n          ghostRelativeParent = ghostRelativeParent.parentNode;\n        }\n\n        if (ghostRelativeParent !== document.body && ghostRelativeParent !== document.documentElement) {\n          if (ghostRelativeParent === document) ghostRelativeParent = getWindowScrollingElement();\n          rect.top += ghostRelativeParent.scrollTop;\n          rect.left += ghostRelativeParent.scrollLeft;\n        } else {\n          ghostRelativeParent = getWindowScrollingElement();\n        }\n\n        ghostRelativeParentInitialScroll = getRelativeScrollOffset(ghostRelativeParent);\n      }\n\n      ghostEl = dragEl.cloneNode(true);\n      toggleClass(ghostEl, options.ghostClass, false);\n      toggleClass(ghostEl, options.fallbackClass, true);\n      toggleClass(ghostEl, options.dragClass, true);\n      css(ghostEl, 'transition', '');\n      css(ghostEl, 'transform', '');\n      css(ghostEl, 'box-sizing', 'border-box');\n      css(ghostEl, 'margin', 0);\n      css(ghostEl, 'top', rect.top);\n      css(ghostEl, 'left', rect.left);\n      css(ghostEl, 'width', rect.width);\n      css(ghostEl, 'height', rect.height);\n      css(ghostEl, 'opacity', '0.8');\n      css(ghostEl, 'position', PositionGhostAbsolutely ? 'absolute' : 'fixed');\n      css(ghostEl, 'zIndex', '100000');\n      css(ghostEl, 'pointerEvents', 'none');\n      Sortable.ghost = ghostEl;\n      container.appendChild(ghostEl); // Set transform-origin\n\n      css(ghostEl, 'transform-origin', tapDistanceLeft / parseInt(ghostEl.style.width) * 100 + '% ' + tapDistanceTop / parseInt(ghostEl.style.height) * 100 + '%');\n    }\n  },\n  _onDragStart: function _onDragStart(\n  /**Event*/\n  evt,\n  /**boolean*/\n  fallback) {\n    var _this = this;\n\n    var dataTransfer = evt.dataTransfer;\n    var options = _this.options;\n    pluginEvent('dragStart', this, {\n      evt: evt\n    });\n\n    if (Sortable.eventCanceled) {\n      this._onDrop();\n\n      return;\n    }\n\n    pluginEvent('setupClone', this);\n\n    if (!Sortable.eventCanceled) {\n      cloneEl = clone(dragEl);\n      cloneEl.draggable = false;\n      cloneEl.style['will-change'] = '';\n\n      this._hideClone();\n\n      toggleClass(cloneEl, this.options.chosenClass, false);\n      Sortable.clone = cloneEl;\n    } // #1143: IFrame support workaround\n\n\n    _this.cloneId = _nextTick(function () {\n      pluginEvent('clone', _this);\n      if (Sortable.eventCanceled) return;\n\n      if (!_this.options.removeCloneOnHide) {\n        rootEl.insertBefore(cloneEl, dragEl);\n      }\n\n      _this._hideClone();\n\n      _dispatchEvent({\n        sortable: _this,\n        name: 'clone'\n      });\n    });\n    !fallback && toggleClass(dragEl, options.dragClass, true); // Set proper drop events\n\n    if (fallback) {\n      ignoreNextClick = true;\n      _this._loopId = setInterval(_this._emulateDragOver, 50);\n    } else {\n      // Undo what was set in _prepareDragStart before drag started\n      off(document, 'mouseup', _this._onDrop);\n      off(document, 'touchend', _this._onDrop);\n      off(document, 'touchcancel', _this._onDrop);\n\n      if (dataTransfer) {\n        dataTransfer.effectAllowed = 'move';\n        options.setData && options.setData.call(_this, dataTransfer, dragEl);\n      }\n\n      on(document, 'drop', _this); // #1276 fix:\n\n      css(dragEl, 'transform', 'translateZ(0)');\n    }\n\n    awaitingDragStarted = true;\n    _this._dragStartId = _nextTick(_this._dragStarted.bind(_this, fallback, evt));\n    on(document, 'selectstart', _this);\n    moved = true;\n\n    if (Safari) {\n      css(document.body, 'user-select', 'none');\n    }\n  },\n  // Returns true - if no further action is needed (either inserted or another condition)\n  _onDragOver: function _onDragOver(\n  /**Event*/\n  evt) {\n    var el = this.el,\n        target = evt.target,\n        dragRect,\n        targetRect,\n        revert,\n        options = this.options,\n        group = options.group,\n        activeSortable = Sortable.active,\n        isOwner = activeGroup === group,\n        canSort = options.sort,\n        fromSortable = putSortable || activeSortable,\n        vertical,\n        _this = this,\n        completedFired = false;\n\n    if (_silent) return;\n\n    function dragOverEvent(name, extra) {\n      pluginEvent(name, _this, _objectSpread({\n        evt: evt,\n        isOwner: isOwner,\n        axis: vertical ? 'vertical' : 'horizontal',\n        revert: revert,\n        dragRect: dragRect,\n        targetRect: targetRect,\n        canSort: canSort,\n        fromSortable: fromSortable,\n        target: target,\n        completed: completed,\n        onMove: function onMove(target, after) {\n          return _onMove(rootEl, el, dragEl, dragRect, target, getRect(target), evt, after);\n        },\n        changed: changed\n      }, extra));\n    } // Capture animation state\n\n\n    function capture() {\n      dragOverEvent('dragOverAnimationCapture');\n\n      _this.captureAnimationState();\n\n      if (_this !== fromSortable) {\n        fromSortable.captureAnimationState();\n      }\n    } // Return invocation when dragEl is inserted (or completed)\n\n\n    function completed(insertion) {\n      dragOverEvent('dragOverCompleted', {\n        insertion: insertion\n      });\n\n      if (insertion) {\n        // Clones must be hidden before folding animation to capture dragRectAbsolute properly\n        if (isOwner) {\n          activeSortable._hideClone();\n        } else {\n          activeSortable._showClone(_this);\n        }\n\n        if (_this !== fromSortable) {\n          // Set ghost class to new sortable's ghost class\n          toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : activeSortable.options.ghostClass, false);\n          toggleClass(dragEl, options.ghostClass, true);\n        }\n\n        if (putSortable !== _this && _this !== Sortable.active) {\n          putSortable = _this;\n        } else if (_this === Sortable.active && putSortable) {\n          putSortable = null;\n        } // Animation\n\n\n        if (fromSortable === _this) {\n          _this._ignoreWhileAnimating = target;\n        }\n\n        _this.animateAll(function () {\n          dragOverEvent('dragOverAnimationComplete');\n          _this._ignoreWhileAnimating = null;\n        });\n\n        if (_this !== fromSortable) {\n          fromSortable.animateAll();\n          fromSortable._ignoreWhileAnimating = null;\n        }\n      } // Null lastTarget if it is not inside a previously swapped element\n\n\n      if (target === dragEl && !dragEl.animated || target === el && !target.animated) {\n        lastTarget = null;\n      } // no bubbling and not fallback\n\n\n      if (!options.dragoverBubble && !evt.rootEl && target !== document) {\n        dragEl.parentNode[expando]._isOutsideThisEl(evt.target); // Do not detect for empty insert if already inserted\n\n\n        !insertion && nearestEmptyInsertDetectEvent(evt);\n      }\n\n      !options.dragoverBubble && evt.stopPropagation && evt.stopPropagation();\n      return completedFired = true;\n    } // Call when dragEl has been inserted\n\n\n    function changed() {\n      newIndex = index(dragEl);\n      newDraggableIndex = index(dragEl, options.draggable);\n\n      _dispatchEvent({\n        sortable: _this,\n        name: 'change',\n        toEl: el,\n        newIndex: newIndex,\n        newDraggableIndex: newDraggableIndex,\n        originalEvent: evt\n      });\n    }\n\n    if (evt.preventDefault !== void 0) {\n      evt.cancelable && evt.preventDefault();\n    }\n\n    target = closest(target, options.draggable, el, true);\n    dragOverEvent('dragOver');\n    if (Sortable.eventCanceled) return completedFired;\n\n    if (dragEl.contains(evt.target) || target.animated && target.animatingX && target.animatingY || _this._ignoreWhileAnimating === target) {\n      return completed(false);\n    }\n\n    ignoreNextClick = false;\n\n    if (activeSortable && !options.disabled && (isOwner ? canSort || (revert = !rootEl.contains(dragEl)) // Reverting item into the original list\n    : putSortable === this || (this.lastPutMode = activeGroup.checkPull(this, activeSortable, dragEl, evt)) && group.checkPut(this, activeSortable, dragEl, evt))) {\n      vertical = this._getDirection(evt, target) === 'vertical';\n      dragRect = getRect(dragEl);\n      dragOverEvent('dragOverValid');\n      if (Sortable.eventCanceled) return completedFired;\n\n      if (revert) {\n        parentEl = rootEl; // actualization\n\n        capture();\n\n        this._hideClone();\n\n        dragOverEvent('revert');\n\n        if (!Sortable.eventCanceled) {\n          if (nextEl) {\n            rootEl.insertBefore(dragEl, nextEl);\n          } else {\n            rootEl.appendChild(dragEl);\n          }\n        }\n\n        return completed(true);\n      }\n\n      var elLastChild = lastChild(el, options.draggable);\n\n      if (!elLastChild || _ghostIsLast(evt, vertical, this) && !elLastChild.animated) {\n        // If already at end of list: Do not insert\n        if (elLastChild === dragEl) {\n          return completed(false);\n        } // assign target only if condition is true\n\n\n        if (elLastChild && el === evt.target) {\n          target = elLastChild;\n        }\n\n        if (target) {\n          targetRect = getRect(target);\n        }\n\n        if (_onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, !!target) !== false) {\n          capture();\n          el.appendChild(dragEl);\n          parentEl = el; // actualization\n\n          changed();\n          return completed(true);\n        }\n      } else if (target.parentNode === el) {\n        targetRect = getRect(target);\n        var direction = 0,\n            targetBeforeFirstSwap,\n            differentLevel = dragEl.parentNode !== el,\n            differentRowCol = !_dragElInRowColumn(dragEl.animated && dragEl.toRect || dragRect, target.animated && target.toRect || targetRect, vertical),\n            side1 = vertical ? 'top' : 'left',\n            scrolledPastTop = isScrolledPast(target, 'top', 'top') || isScrolledPast(dragEl, 'top', 'top'),\n            scrollBefore = scrolledPastTop ? scrolledPastTop.scrollTop : void 0;\n\n        if (lastTarget !== target) {\n          targetBeforeFirstSwap = targetRect[side1];\n          pastFirstInvertThresh = false;\n          isCircumstantialInvert = !differentRowCol && options.invertSwap || differentLevel;\n        }\n\n        direction = _getSwapDirection(evt, target, targetRect, vertical, differentRowCol ? 1 : options.swapThreshold, options.invertedSwapThreshold == null ? options.swapThreshold : options.invertedSwapThreshold, isCircumstantialInvert, lastTarget === target);\n        var sibling;\n\n        if (direction !== 0) {\n          // Check if target is beside dragEl in respective direction (ignoring hidden elements)\n          var dragIndex = index(dragEl);\n\n          do {\n            dragIndex -= direction;\n            sibling = parentEl.children[dragIndex];\n          } while (sibling && (css(sibling, 'display') === 'none' || sibling === ghostEl));\n        } // If dragEl is already beside target: Do not insert\n\n\n        if (direction === 0 || sibling === target) {\n          return completed(false);\n        }\n\n        lastTarget = target;\n        lastDirection = direction;\n        var nextSibling = target.nextElementSibling,\n            after = false;\n        after = direction === 1;\n\n        var moveVector = _onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, after);\n\n        if (moveVector !== false) {\n          if (moveVector === 1 || moveVector === -1) {\n            after = moveVector === 1;\n          }\n\n          _silent = true;\n          setTimeout(_unsilent, 30);\n          capture();\n\n          if (after && !nextSibling) {\n            el.appendChild(dragEl);\n          } else {\n            target.parentNode.insertBefore(dragEl, after ? nextSibling : target);\n          } // Undo chrome's scroll adjustment (has no effect on other browsers)\n\n\n          if (scrolledPastTop) {\n            scrollBy(scrolledPastTop, 0, scrollBefore - scrolledPastTop.scrollTop);\n          }\n\n          parentEl = dragEl.parentNode; // actualization\n          // must be done before animation\n\n          if (targetBeforeFirstSwap !== undefined && !isCircumstantialInvert) {\n            targetMoveDistance = Math.abs(targetBeforeFirstSwap - getRect(target)[side1]);\n          }\n\n          changed();\n          return completed(true);\n        }\n      }\n\n      if (el.contains(dragEl)) {\n        return completed(false);\n      }\n    }\n\n    return false;\n  },\n  _ignoreWhileAnimating: null,\n  _offMoveEvents: function _offMoveEvents() {\n    off(document, 'mousemove', this._onTouchMove);\n    off(document, 'touchmove', this._onTouchMove);\n    off(document, 'pointermove', this._onTouchMove);\n    off(document, 'dragover', nearestEmptyInsertDetectEvent);\n    off(document, 'mousemove', nearestEmptyInsertDetectEvent);\n    off(document, 'touchmove', nearestEmptyInsertDetectEvent);\n  },\n  _offUpEvents: function _offUpEvents() {\n    var ownerDocument = this.el.ownerDocument;\n    off(ownerDocument, 'mouseup', this._onDrop);\n    off(ownerDocument, 'touchend', this._onDrop);\n    off(ownerDocument, 'pointerup', this._onDrop);\n    off(ownerDocument, 'touchcancel', this._onDrop);\n    off(document, 'selectstart', this);\n  },\n  _onDrop: function _onDrop(\n  /**Event*/\n  evt) {\n    var el = this.el,\n        options = this.options; // Get the index of the dragged element within its parent\n\n    newIndex = index(dragEl);\n    newDraggableIndex = index(dragEl, options.draggable);\n    pluginEvent('drop', this, {\n      evt: evt\n    });\n    parentEl = dragEl && dragEl.parentNode; // Get again after plugin event\n\n    newIndex = index(dragEl);\n    newDraggableIndex = index(dragEl, options.draggable);\n\n    if (Sortable.eventCanceled) {\n      this._nulling();\n\n      return;\n    }\n\n    awaitingDragStarted = false;\n    isCircumstantialInvert = false;\n    pastFirstInvertThresh = false;\n    clearInterval(this._loopId);\n    clearTimeout(this._dragStartTimer);\n\n    _cancelNextTick(this.cloneId);\n\n    _cancelNextTick(this._dragStartId); // Unbind events\n\n\n    if (this.nativeDraggable) {\n      off(document, 'drop', this);\n      off(el, 'dragstart', this._onDragStart);\n    }\n\n    this._offMoveEvents();\n\n    this._offUpEvents();\n\n    if (Safari) {\n      css(document.body, 'user-select', '');\n    }\n\n    css(dragEl, 'transform', '');\n\n    if (evt) {\n      if (moved) {\n        evt.cancelable && evt.preventDefault();\n        !options.dropBubble && evt.stopPropagation();\n      }\n\n      ghostEl && ghostEl.parentNode && ghostEl.parentNode.removeChild(ghostEl);\n\n      if (rootEl === parentEl || putSortable && putSortable.lastPutMode !== 'clone') {\n        // Remove clone(s)\n        cloneEl && cloneEl.parentNode && cloneEl.parentNode.removeChild(cloneEl);\n      }\n\n      if (dragEl) {\n        if (this.nativeDraggable) {\n          off(dragEl, 'dragend', this);\n        }\n\n        _disableDraggable(dragEl);\n\n        dragEl.style['will-change'] = ''; // Remove classes\n        // ghostClass is added in dragStarted\n\n        if (moved && !awaitingDragStarted) {\n          toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : this.options.ghostClass, false);\n        }\n\n        toggleClass(dragEl, this.options.chosenClass, false); // Drag stop event\n\n        _dispatchEvent({\n          sortable: this,\n          name: 'unchoose',\n          toEl: parentEl,\n          newIndex: null,\n          newDraggableIndex: null,\n          originalEvent: evt\n        });\n\n        if (rootEl !== parentEl) {\n          if (newIndex >= 0) {\n            // Add event\n            _dispatchEvent({\n              rootEl: parentEl,\n              name: 'add',\n              toEl: parentEl,\n              fromEl: rootEl,\n              originalEvent: evt\n            }); // Remove event\n\n\n            _dispatchEvent({\n              sortable: this,\n              name: 'remove',\n              toEl: parentEl,\n              originalEvent: evt\n            }); // drag from one list and drop into another\n\n\n            _dispatchEvent({\n              rootEl: parentEl,\n              name: 'sort',\n              toEl: parentEl,\n              fromEl: rootEl,\n              originalEvent: evt\n            });\n\n            _dispatchEvent({\n              sortable: this,\n              name: 'sort',\n              toEl: parentEl,\n              originalEvent: evt\n            });\n          }\n\n          putSortable && putSortable.save();\n        } else {\n          if (newIndex !== oldIndex) {\n            if (newIndex >= 0) {\n              // drag & drop within the same list\n              _dispatchEvent({\n                sortable: this,\n                name: 'update',\n                toEl: parentEl,\n                originalEvent: evt\n              });\n\n              _dispatchEvent({\n                sortable: this,\n                name: 'sort',\n                toEl: parentEl,\n                originalEvent: evt\n              });\n            }\n          }\n        }\n\n        if (Sortable.active) {\n          /* jshint eqnull:true */\n          if (newIndex == null || newIndex === -1) {\n            newIndex = oldIndex;\n            newDraggableIndex = oldDraggableIndex;\n          }\n\n          _dispatchEvent({\n            sortable: this,\n            name: 'end',\n            toEl: parentEl,\n            originalEvent: evt\n          }); // Save sorting\n\n\n          this.save();\n        }\n      }\n    }\n\n    this._nulling();\n  },\n  _nulling: function _nulling() {\n    pluginEvent('nulling', this);\n    rootEl = dragEl = parentEl = ghostEl = nextEl = cloneEl = lastDownEl = cloneHidden = tapEvt = touchEvt = moved = newIndex = newDraggableIndex = oldIndex = oldDraggableIndex = lastTarget = lastDirection = putSortable = activeGroup = Sortable.dragged = Sortable.ghost = Sortable.clone = Sortable.active = null;\n    savedInputChecked.forEach(function (el) {\n      el.checked = true;\n    });\n    savedInputChecked.length = lastDx = lastDy = 0;\n  },\n  handleEvent: function handleEvent(\n  /**Event*/\n  evt) {\n    switch (evt.type) {\n      case 'drop':\n      case 'dragend':\n        this._onDrop(evt);\n\n        break;\n\n      case 'dragenter':\n      case 'dragover':\n        if (dragEl) {\n          this._onDragOver(evt);\n\n          _globalDragOver(evt);\n        }\n\n        break;\n\n      case 'selectstart':\n        evt.preventDefault();\n        break;\n    }\n  },\n\n  /**\n   * Serializes the item into an array of string.\n   * @returns {String[]}\n   */\n  toArray: function toArray() {\n    var order = [],\n        el,\n        children = this.el.children,\n        i = 0,\n        n = children.length,\n        options = this.options;\n\n    for (; i < n; i++) {\n      el = children[i];\n\n      if (closest(el, options.draggable, this.el, false)) {\n        order.push(el.getAttribute(options.dataIdAttr) || _generateId(el));\n      }\n    }\n\n    return order;\n  },\n\n  /**\n   * Sorts the elements according to the array.\n   * @param  {String[]}  order  order of the items\n   */\n  sort: function sort(order) {\n    var items = {},\n        rootEl = this.el;\n    this.toArray().forEach(function (id, i) {\n      var el = rootEl.children[i];\n\n      if (closest(el, this.options.draggable, rootEl, false)) {\n        items[id] = el;\n      }\n    }, this);\n    order.forEach(function (id) {\n      if (items[id]) {\n        rootEl.removeChild(items[id]);\n        rootEl.appendChild(items[id]);\n      }\n    });\n  },\n\n  /**\n   * Save the current sorting\n   */\n  save: function save() {\n    var store = this.options.store;\n    store && store.set && store.set(this);\n  },\n\n  /**\n   * For each element in the set, get the first element that matches the selector by testing the element itself and traversing up through its ancestors in the DOM tree.\n   * @param   {HTMLElement}  el\n   * @param   {String}       [selector]  default: `options.draggable`\n   * @returns {HTMLElement|null}\n   */\n  closest: function closest$1(el, selector) {\n    return closest(el, selector || this.options.draggable, this.el, false);\n  },\n\n  /**\n   * Set/get option\n   * @param   {string} name\n   * @param   {*}      [value]\n   * @returns {*}\n   */\n  option: function option(name, value) {\n    var options = this.options;\n\n    if (value === void 0) {\n      return options[name];\n    } else {\n      var modifiedValue = PluginManager.modifyOption(this, name, value);\n\n      if (typeof modifiedValue !== 'undefined') {\n        options[name] = modifiedValue;\n      } else {\n        options[name] = value;\n      }\n\n      if (name === 'group') {\n        _prepareGroup(options);\n      }\n    }\n  },\n\n  /**\n   * Destroy\n   */\n  destroy: function destroy() {\n    pluginEvent('destroy', this);\n    var el = this.el;\n    el[expando] = null;\n    off(el, 'mousedown', this._onTapStart);\n    off(el, 'touchstart', this._onTapStart);\n    off(el, 'pointerdown', this._onTapStart);\n\n    if (this.nativeDraggable) {\n      off(el, 'dragover', this);\n      off(el, 'dragenter', this);\n    } // Remove draggable attributes\n\n\n    Array.prototype.forEach.call(el.querySelectorAll('[draggable]'), function (el) {\n      el.removeAttribute('draggable');\n    });\n\n    this._onDrop();\n\n    this._disableDelayedDragEvents();\n\n    sortables.splice(sortables.indexOf(this.el), 1);\n    this.el = el = null;\n  },\n  _hideClone: function _hideClone() {\n    if (!cloneHidden) {\n      pluginEvent('hideClone', this);\n      if (Sortable.eventCanceled) return;\n      css(cloneEl, 'display', 'none');\n\n      if (this.options.removeCloneOnHide && cloneEl.parentNode) {\n        cloneEl.parentNode.removeChild(cloneEl);\n      }\n\n      cloneHidden = true;\n    }\n  },\n  _showClone: function _showClone(putSortable) {\n    if (putSortable.lastPutMode !== 'clone') {\n      this._hideClone();\n\n      return;\n    }\n\n    if (cloneHidden) {\n      pluginEvent('showClone', this);\n      if (Sortable.eventCanceled) return; // show clone at dragEl or original position\n\n      if (rootEl.contains(dragEl) && !this.options.group.revertClone) {\n        rootEl.insertBefore(cloneEl, dragEl);\n      } else if (nextEl) {\n        rootEl.insertBefore(cloneEl, nextEl);\n      } else {\n        rootEl.appendChild(cloneEl);\n      }\n\n      if (this.options.group.revertClone) {\n        this.animate(dragEl, cloneEl);\n      }\n\n      css(cloneEl, 'display', '');\n      cloneHidden = false;\n    }\n  }\n};\n\nfunction _globalDragOver(\n/**Event*/\nevt) {\n  if (evt.dataTransfer) {\n    evt.dataTransfer.dropEffect = 'move';\n  }\n\n  evt.cancelable && evt.preventDefault();\n}\n\nfunction _onMove(fromEl, toEl, dragEl, dragRect, targetEl, targetRect, originalEvent, willInsertAfter) {\n  var evt,\n      sortable = fromEl[expando],\n      onMoveFn = sortable.options.onMove,\n      retVal; // Support for new CustomEvent feature\n\n  if (window.CustomEvent && !IE11OrLess && !Edge) {\n    evt = new CustomEvent('move', {\n      bubbles: true,\n      cancelable: true\n    });\n  } else {\n    evt = document.createEvent('Event');\n    evt.initEvent('move', true, true);\n  }\n\n  evt.to = toEl;\n  evt.from = fromEl;\n  evt.dragged = dragEl;\n  evt.draggedRect = dragRect;\n  evt.related = targetEl || toEl;\n  evt.relatedRect = targetRect || getRect(toEl);\n  evt.willInsertAfter = willInsertAfter;\n  evt.originalEvent = originalEvent;\n  fromEl.dispatchEvent(evt);\n\n  if (onMoveFn) {\n    retVal = onMoveFn.call(sortable, evt, originalEvent);\n  }\n\n  return retVal;\n}\n\nfunction _disableDraggable(el) {\n  el.draggable = false;\n}\n\nfunction _unsilent() {\n  _silent = false;\n}\n\nfunction _ghostIsLast(evt, vertical, sortable) {\n  var rect = getRect(lastChild(sortable.el, sortable.options.draggable));\n  var spacer = 10;\n  return vertical ? evt.clientX > rect.right + spacer || evt.clientX <= rect.right && evt.clientY > rect.bottom && evt.clientX >= rect.left : evt.clientX > rect.right && evt.clientY > rect.top || evt.clientX <= rect.right && evt.clientY > rect.bottom + spacer;\n}\n\nfunction _getSwapDirection(evt, target, targetRect, vertical, swapThreshold, invertedSwapThreshold, invertSwap, isLastTarget) {\n  var mouseOnAxis = vertical ? evt.clientY : evt.clientX,\n      targetLength = vertical ? targetRect.height : targetRect.width,\n      targetS1 = vertical ? targetRect.top : targetRect.left,\n      targetS2 = vertical ? targetRect.bottom : targetRect.right,\n      invert = false;\n\n  if (!invertSwap) {\n    // Never invert or create dragEl shadow when target movemenet causes mouse to move past the end of regular swapThreshold\n    if (isLastTarget && targetMoveDistance < targetLength * swapThreshold) {\n      // multiplied only by swapThreshold because mouse will already be inside target by (1 - threshold) * targetLength / 2\n      // check if past first invert threshold on side opposite of lastDirection\n      if (!pastFirstInvertThresh && (lastDirection === 1 ? mouseOnAxis > targetS1 + targetLength * invertedSwapThreshold / 2 : mouseOnAxis < targetS2 - targetLength * invertedSwapThreshold / 2)) {\n        // past first invert threshold, do not restrict inverted threshold to dragEl shadow\n        pastFirstInvertThresh = true;\n      }\n\n      if (!pastFirstInvertThresh) {\n        // dragEl shadow (target move distance shadow)\n        if (lastDirection === 1 ? mouseOnAxis < targetS1 + targetMoveDistance // over dragEl shadow\n        : mouseOnAxis > targetS2 - targetMoveDistance) {\n          return -lastDirection;\n        }\n      } else {\n        invert = true;\n      }\n    } else {\n      // Regular\n      if (mouseOnAxis > targetS1 + targetLength * (1 - swapThreshold) / 2 && mouseOnAxis < targetS2 - targetLength * (1 - swapThreshold) / 2) {\n        return _getInsertDirection(target);\n      }\n    }\n  }\n\n  invert = invert || invertSwap;\n\n  if (invert) {\n    // Invert of regular\n    if (mouseOnAxis < targetS1 + targetLength * invertedSwapThreshold / 2 || mouseOnAxis > targetS2 - targetLength * invertedSwapThreshold / 2) {\n      return mouseOnAxis > targetS1 + targetLength / 2 ? 1 : -1;\n    }\n  }\n\n  return 0;\n}\n/**\n * Gets the direction dragEl must be swapped relative to target in order to make it\n * seem that dragEl has been \"inserted\" into that element's position\n * @param  {HTMLElement} target       The target whose position dragEl is being inserted at\n * @return {Number}                   Direction dragEl must be swapped\n */\n\n\nfunction _getInsertDirection(target) {\n  if (index(dragEl) < index(target)) {\n    return 1;\n  } else {\n    return -1;\n  }\n}\n/**\n * Generate id\n * @param   {HTMLElement} el\n * @returns {String}\n * @private\n */\n\n\nfunction _generateId(el) {\n  var str = el.tagName + el.className + el.src + el.href + el.textContent,\n      i = str.length,\n      sum = 0;\n\n  while (i--) {\n    sum += str.charCodeAt(i);\n  }\n\n  return sum.toString(36);\n}\n\nfunction _saveInputCheckedState(root) {\n  savedInputChecked.length = 0;\n  var inputs = root.getElementsByTagName('input');\n  var idx = inputs.length;\n\n  while (idx--) {\n    var el = inputs[idx];\n    el.checked && savedInputChecked.push(el);\n  }\n}\n\nfunction _nextTick(fn) {\n  return setTimeout(fn, 0);\n}\n\nfunction _cancelNextTick(id) {\n  return clearTimeout(id);\n} // Fixed #973:\n\n\nif (documentExists) {\n  on(document, 'touchmove', function (evt) {\n    if ((Sortable.active || awaitingDragStarted) && evt.cancelable) {\n      evt.preventDefault();\n    }\n  });\n} // Export utils\n\n\nSortable.utils = {\n  on: on,\n  off: off,\n  css: css,\n  find: find,\n  is: function is(el, selector) {\n    return !!closest(el, selector, el, false);\n  },\n  extend: extend,\n  throttle: throttle,\n  closest: closest,\n  toggleClass: toggleClass,\n  clone: clone,\n  index: index,\n  nextTick: _nextTick,\n  cancelNextTick: _cancelNextTick,\n  detectDirection: _detectDirection,\n  getChild: getChild\n};\n/**\n * Get the Sortable instance of an element\n * @param  {HTMLElement} element The element\n * @return {Sortable|undefined}         The instance of Sortable\n */\n\nSortable.get = function (element) {\n  return element[expando];\n};\n/**\n * Mount a plugin to Sortable\n * @param  {...SortablePlugin|SortablePlugin[]} plugins       Plugins being mounted\n */\n\n\nSortable.mount = function () {\n  for (var _len = arguments.length, plugins = new Array(_len), _key = 0; _key < _len; _key++) {\n    plugins[_key] = arguments[_key];\n  }\n\n  if (plugins[0].constructor === Array) plugins = plugins[0];\n  plugins.forEach(function (plugin) {\n    if (!plugin.prototype || !plugin.prototype.constructor) {\n      throw \"Sortable: Mounted plugin must be a constructor function, not \".concat({}.toString.call(plugin));\n    }\n\n    if (plugin.utils) Sortable.utils = _objectSpread({}, Sortable.utils, plugin.utils);\n    PluginManager.mount(plugin);\n  });\n};\n/**\n * Create sortable instance\n * @param {HTMLElement}  el\n * @param {Object}      [options]\n */\n\n\nSortable.create = function (el, options) {\n  return new Sortable(el, options);\n}; // Export\n\n\nSortable.version = version;\n\nvar autoScrolls = [],\n    scrollEl,\n    scrollRootEl,\n    scrolling = false,\n    lastAutoScrollX,\n    lastAutoScrollY,\n    touchEvt$1,\n    pointerElemChangedInterval;\n\nfunction AutoScrollPlugin() {\n  function AutoScroll() {\n    this.defaults = {\n      scroll: true,\n      scrollSensitivity: 30,\n      scrollSpeed: 10,\n      bubbleScroll: true\n    }; // Bind all private methods\n\n    for (var fn in this) {\n      if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n        this[fn] = this[fn].bind(this);\n      }\n    }\n  }\n\n  AutoScroll.prototype = {\n    dragStarted: function dragStarted(_ref) {\n      var originalEvent = _ref.originalEvent;\n\n      if (this.sortable.nativeDraggable) {\n        on(document, 'dragover', this._handleAutoScroll);\n      } else {\n        if (this.options.supportPointer) {\n          on(document, 'pointermove', this._handleFallbackAutoScroll);\n        } else if (originalEvent.touches) {\n          on(document, 'touchmove', this._handleFallbackAutoScroll);\n        } else {\n          on(document, 'mousemove', this._handleFallbackAutoScroll);\n        }\n      }\n    },\n    dragOverCompleted: function dragOverCompleted(_ref2) {\n      var originalEvent = _ref2.originalEvent;\n\n      // For when bubbling is canceled and using fallback (fallback 'touchmove' always reached)\n      if (!this.options.dragOverBubble && !originalEvent.rootEl) {\n        this._handleAutoScroll(originalEvent);\n      }\n    },\n    drop: function drop() {\n      if (this.sortable.nativeDraggable) {\n        off(document, 'dragover', this._handleAutoScroll);\n      } else {\n        off(document, 'pointermove', this._handleFallbackAutoScroll);\n        off(document, 'touchmove', this._handleFallbackAutoScroll);\n        off(document, 'mousemove', this._handleFallbackAutoScroll);\n      }\n\n      clearPointerElemChangedInterval();\n      clearAutoScrolls();\n      cancelThrottle();\n    },\n    nulling: function nulling() {\n      touchEvt$1 = scrollRootEl = scrollEl = scrolling = pointerElemChangedInterval = lastAutoScrollX = lastAutoScrollY = null;\n      autoScrolls.length = 0;\n    },\n    _handleFallbackAutoScroll: function _handleFallbackAutoScroll(evt) {\n      this._handleAutoScroll(evt, true);\n    },\n    _handleAutoScroll: function _handleAutoScroll(evt, fallback) {\n      var _this = this;\n\n      var x = (evt.touches ? evt.touches[0] : evt).clientX,\n          y = (evt.touches ? evt.touches[0] : evt).clientY,\n          elem = document.elementFromPoint(x, y);\n      touchEvt$1 = evt; // IE does not seem to have native autoscroll,\n      // Edge's autoscroll seems too conditional,\n      // MACOS Safari does not have autoscroll,\n      // Firefox and Chrome are good\n\n      if (fallback || Edge || IE11OrLess || Safari) {\n        autoScroll(evt, this.options, elem, fallback); // Listener for pointer element change\n\n        var ogElemScroller = getParentAutoScrollElement(elem, true);\n\n        if (scrolling && (!pointerElemChangedInterval || x !== lastAutoScrollX || y !== lastAutoScrollY)) {\n          pointerElemChangedInterval && clearPointerElemChangedInterval(); // Detect for pointer elem change, emulating native DnD behaviour\n\n          pointerElemChangedInterval = setInterval(function () {\n            var newElem = getParentAutoScrollElement(document.elementFromPoint(x, y), true);\n\n            if (newElem !== ogElemScroller) {\n              ogElemScroller = newElem;\n              clearAutoScrolls();\n            }\n\n            autoScroll(evt, _this.options, newElem, fallback);\n          }, 10);\n          lastAutoScrollX = x;\n          lastAutoScrollY = y;\n        }\n      } else {\n        // if DnD is enabled (and browser has good autoscrolling), first autoscroll will already scroll, so get parent autoscroll of first autoscroll\n        if (!this.options.bubbleScroll || getParentAutoScrollElement(elem, true) === getWindowScrollingElement()) {\n          clearAutoScrolls();\n          return;\n        }\n\n        autoScroll(evt, this.options, getParentAutoScrollElement(elem, false), false);\n      }\n    }\n  };\n  return _extends(AutoScroll, {\n    pluginName: 'scroll',\n    initializeByDefault: true\n  });\n}\n\nfunction clearAutoScrolls() {\n  autoScrolls.forEach(function (autoScroll) {\n    clearInterval(autoScroll.pid);\n  });\n  autoScrolls = [];\n}\n\nfunction clearPointerElemChangedInterval() {\n  clearInterval(pointerElemChangedInterval);\n}\n\nvar autoScroll = throttle(function (evt, options, rootEl, isFallback) {\n  // Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=505521\n  if (!options.scroll) return;\n  var x = (evt.touches ? evt.touches[0] : evt).clientX,\n      y = (evt.touches ? evt.touches[0] : evt).clientY,\n      sens = options.scrollSensitivity,\n      speed = options.scrollSpeed,\n      winScroller = getWindowScrollingElement();\n  var scrollThisInstance = false,\n      scrollCustomFn; // New scroll root, set scrollEl\n\n  if (scrollRootEl !== rootEl) {\n    scrollRootEl = rootEl;\n    clearAutoScrolls();\n    scrollEl = options.scroll;\n    scrollCustomFn = options.scrollFn;\n\n    if (scrollEl === true) {\n      scrollEl = getParentAutoScrollElement(rootEl, true);\n    }\n  }\n\n  var layersOut = 0;\n  var currentParent = scrollEl;\n\n  do {\n    var el = currentParent,\n        rect = getRect(el),\n        top = rect.top,\n        bottom = rect.bottom,\n        left = rect.left,\n        right = rect.right,\n        width = rect.width,\n        height = rect.height,\n        canScrollX = void 0,\n        canScrollY = void 0,\n        scrollWidth = el.scrollWidth,\n        scrollHeight = el.scrollHeight,\n        elCSS = css(el),\n        scrollPosX = el.scrollLeft,\n        scrollPosY = el.scrollTop;\n\n    if (el === winScroller) {\n      canScrollX = width < scrollWidth && (elCSS.overflowX === 'auto' || elCSS.overflowX === 'scroll' || elCSS.overflowX === 'visible');\n      canScrollY = height < scrollHeight && (elCSS.overflowY === 'auto' || elCSS.overflowY === 'scroll' || elCSS.overflowY === 'visible');\n    } else {\n      canScrollX = width < scrollWidth && (elCSS.overflowX === 'auto' || elCSS.overflowX === 'scroll');\n      canScrollY = height < scrollHeight && (elCSS.overflowY === 'auto' || elCSS.overflowY === 'scroll');\n    }\n\n    var vx = canScrollX && (Math.abs(right - x) <= sens && scrollPosX + width < scrollWidth) - (Math.abs(left - x) <= sens && !!scrollPosX);\n    var vy = canScrollY && (Math.abs(bottom - y) <= sens && scrollPosY + height < scrollHeight) - (Math.abs(top - y) <= sens && !!scrollPosY);\n\n    if (!autoScrolls[layersOut]) {\n      for (var i = 0; i <= layersOut; i++) {\n        if (!autoScrolls[i]) {\n          autoScrolls[i] = {};\n        }\n      }\n    }\n\n    if (autoScrolls[layersOut].vx != vx || autoScrolls[layersOut].vy != vy || autoScrolls[layersOut].el !== el) {\n      autoScrolls[layersOut].el = el;\n      autoScrolls[layersOut].vx = vx;\n      autoScrolls[layersOut].vy = vy;\n      clearInterval(autoScrolls[layersOut].pid);\n\n      if (vx != 0 || vy != 0) {\n        scrollThisInstance = true;\n        /* jshint loopfunc:true */\n\n        autoScrolls[layersOut].pid = setInterval(function () {\n          // emulate drag over during autoscroll (fallback), emulating native DnD behaviour\n          if (isFallback && this.layer === 0) {\n            Sortable.active._onTouchMove(touchEvt$1); // To move ghost if it is positioned absolutely\n\n          }\n\n          var scrollOffsetY = autoScrolls[this.layer].vy ? autoScrolls[this.layer].vy * speed : 0;\n          var scrollOffsetX = autoScrolls[this.layer].vx ? autoScrolls[this.layer].vx * speed : 0;\n\n          if (typeof scrollCustomFn === 'function') {\n            if (scrollCustomFn.call(Sortable.dragged.parentNode[expando], scrollOffsetX, scrollOffsetY, evt, touchEvt$1, autoScrolls[this.layer].el) !== 'continue') {\n              return;\n            }\n          }\n\n          scrollBy(autoScrolls[this.layer].el, scrollOffsetX, scrollOffsetY);\n        }.bind({\n          layer: layersOut\n        }), 24);\n      }\n    }\n\n    layersOut++;\n  } while (options.bubbleScroll && currentParent !== winScroller && (currentParent = getParentAutoScrollElement(currentParent, false)));\n\n  scrolling = scrollThisInstance; // in case another function catches scrolling as false in between when it is not\n}, 30);\n\nvar drop = function drop(_ref) {\n  var originalEvent = _ref.originalEvent,\n      putSortable = _ref.putSortable,\n      dragEl = _ref.dragEl,\n      activeSortable = _ref.activeSortable,\n      dispatchSortableEvent = _ref.dispatchSortableEvent,\n      hideGhostForTarget = _ref.hideGhostForTarget,\n      unhideGhostForTarget = _ref.unhideGhostForTarget;\n  if (!originalEvent) return;\n  var toSortable = putSortable || activeSortable;\n  hideGhostForTarget();\n  var touch = originalEvent.changedTouches && originalEvent.changedTouches.length ? originalEvent.changedTouches[0] : originalEvent;\n  var target = document.elementFromPoint(touch.clientX, touch.clientY);\n  unhideGhostForTarget();\n\n  if (toSortable && !toSortable.el.contains(target)) {\n    dispatchSortableEvent('spill');\n    this.onSpill({\n      dragEl: dragEl,\n      putSortable: putSortable\n    });\n  }\n};\n\nfunction Revert() {}\n\nRevert.prototype = {\n  startIndex: null,\n  dragStart: function dragStart(_ref2) {\n    var oldDraggableIndex = _ref2.oldDraggableIndex;\n    this.startIndex = oldDraggableIndex;\n  },\n  onSpill: function onSpill(_ref3) {\n    var dragEl = _ref3.dragEl,\n        putSortable = _ref3.putSortable;\n    this.sortable.captureAnimationState();\n\n    if (putSortable) {\n      putSortable.captureAnimationState();\n    }\n\n    var nextSibling = getChild(this.sortable.el, this.startIndex, this.options);\n\n    if (nextSibling) {\n      this.sortable.el.insertBefore(dragEl, nextSibling);\n    } else {\n      this.sortable.el.appendChild(dragEl);\n    }\n\n    this.sortable.animateAll();\n\n    if (putSortable) {\n      putSortable.animateAll();\n    }\n  },\n  drop: drop\n};\n\n_extends(Revert, {\n  pluginName: 'revertOnSpill'\n});\n\nfunction Remove() {}\n\nRemove.prototype = {\n  onSpill: function onSpill(_ref4) {\n    var dragEl = _ref4.dragEl,\n        putSortable = _ref4.putSortable;\n    var parentSortable = putSortable || this.sortable;\n    parentSortable.captureAnimationState();\n    dragEl.parentNode && dragEl.parentNode.removeChild(dragEl);\n    parentSortable.animateAll();\n  },\n  drop: drop\n};\n\n_extends(Remove, {\n  pluginName: 'removeOnSpill'\n});\n\nvar lastSwapEl;\n\nfunction SwapPlugin() {\n  function Swap() {\n    this.defaults = {\n      swapClass: 'sortable-swap-highlight'\n    };\n  }\n\n  Swap.prototype = {\n    dragStart: function dragStart(_ref) {\n      var dragEl = _ref.dragEl;\n      lastSwapEl = dragEl;\n    },\n    dragOverValid: function dragOverValid(_ref2) {\n      var completed = _ref2.completed,\n          target = _ref2.target,\n          onMove = _ref2.onMove,\n          activeSortable = _ref2.activeSortable,\n          changed = _ref2.changed,\n          cancel = _ref2.cancel;\n      if (!activeSortable.options.swap) return;\n      var el = this.sortable.el,\n          options = this.options;\n\n      if (target && target !== el) {\n        var prevSwapEl = lastSwapEl;\n\n        if (onMove(target) !== false) {\n          toggleClass(target, options.swapClass, true);\n          lastSwapEl = target;\n        } else {\n          lastSwapEl = null;\n        }\n\n        if (prevSwapEl && prevSwapEl !== lastSwapEl) {\n          toggleClass(prevSwapEl, options.swapClass, false);\n        }\n      }\n\n      changed();\n      completed(true);\n      cancel();\n    },\n    drop: function drop(_ref3) {\n      var activeSortable = _ref3.activeSortable,\n          putSortable = _ref3.putSortable,\n          dragEl = _ref3.dragEl;\n      var toSortable = putSortable || this.sortable;\n      var options = this.options;\n      lastSwapEl && toggleClass(lastSwapEl, options.swapClass, false);\n\n      if (lastSwapEl && (options.swap || putSortable && putSortable.options.swap)) {\n        if (dragEl !== lastSwapEl) {\n          toSortable.captureAnimationState();\n          if (toSortable !== activeSortable) activeSortable.captureAnimationState();\n          swapNodes(dragEl, lastSwapEl);\n          toSortable.animateAll();\n          if (toSortable !== activeSortable) activeSortable.animateAll();\n        }\n      }\n    },\n    nulling: function nulling() {\n      lastSwapEl = null;\n    }\n  };\n  return _extends(Swap, {\n    pluginName: 'swap',\n    eventProperties: function eventProperties() {\n      return {\n        swapItem: lastSwapEl\n      };\n    }\n  });\n}\n\nfunction swapNodes(n1, n2) {\n  var p1 = n1.parentNode,\n      p2 = n2.parentNode,\n      i1,\n      i2;\n  if (!p1 || !p2 || p1.isEqualNode(n2) || p2.isEqualNode(n1)) return;\n  i1 = index(n1);\n  i2 = index(n2);\n\n  if (p1.isEqualNode(p2) && i1 < i2) {\n    i2++;\n  }\n\n  p1.insertBefore(n2, p1.children[i1]);\n  p2.insertBefore(n1, p2.children[i2]);\n}\n\nvar multiDragElements = [],\n    multiDragClones = [],\n    lastMultiDragSelect,\n    // for selection with modifier key down (SHIFT)\nmultiDragSortable,\n    initialFolding = false,\n    // Initial multi-drag fold when drag started\nfolding = false,\n    // Folding any other time\ndragStarted = false,\n    dragEl$1,\n    clonesFromRect,\n    clonesHidden;\n\nfunction MultiDragPlugin() {\n  function MultiDrag(sortable) {\n    // Bind all private methods\n    for (var fn in this) {\n      if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n        this[fn] = this[fn].bind(this);\n      }\n    }\n\n    if (sortable.options.supportPointer) {\n      on(document, 'pointerup', this._deselectMultiDrag);\n    } else {\n      on(document, 'mouseup', this._deselectMultiDrag);\n      on(document, 'touchend', this._deselectMultiDrag);\n    }\n\n    on(document, 'keydown', this._checkKeyDown);\n    on(document, 'keyup', this._checkKeyUp);\n    this.defaults = {\n      selectedClass: 'sortable-selected',\n      multiDragKey: null,\n      setData: function setData(dataTransfer, dragEl) {\n        var data = '';\n\n        if (multiDragElements.length && multiDragSortable === sortable) {\n          multiDragElements.forEach(function (multiDragElement, i) {\n            data += (!i ? '' : ', ') + multiDragElement.textContent;\n          });\n        } else {\n          data = dragEl.textContent;\n        }\n\n        dataTransfer.setData('Text', data);\n      }\n    };\n  }\n\n  MultiDrag.prototype = {\n    multiDragKeyDown: false,\n    isMultiDrag: false,\n    delayStartGlobal: function delayStartGlobal(_ref) {\n      var dragged = _ref.dragEl;\n      dragEl$1 = dragged;\n    },\n    delayEnded: function delayEnded() {\n      this.isMultiDrag = ~multiDragElements.indexOf(dragEl$1);\n    },\n    setupClone: function setupClone(_ref2) {\n      var sortable = _ref2.sortable,\n          cancel = _ref2.cancel;\n      if (!this.isMultiDrag) return;\n\n      for (var i = 0; i < multiDragElements.length; i++) {\n        multiDragClones.push(clone(multiDragElements[i]));\n        multiDragClones[i].sortableIndex = multiDragElements[i].sortableIndex;\n        multiDragClones[i].draggable = false;\n        multiDragClones[i].style['will-change'] = '';\n        toggleClass(multiDragClones[i], this.options.selectedClass, false);\n        multiDragElements[i] === dragEl$1 && toggleClass(multiDragClones[i], this.options.chosenClass, false);\n      }\n\n      sortable._hideClone();\n\n      cancel();\n    },\n    clone: function clone(_ref3) {\n      var sortable = _ref3.sortable,\n          rootEl = _ref3.rootEl,\n          dispatchSortableEvent = _ref3.dispatchSortableEvent,\n          cancel = _ref3.cancel;\n      if (!this.isMultiDrag) return;\n\n      if (!this.options.removeCloneOnHide) {\n        if (multiDragElements.length && multiDragSortable === sortable) {\n          insertMultiDragClones(true, rootEl);\n          dispatchSortableEvent('clone');\n          cancel();\n        }\n      }\n    },\n    showClone: function showClone(_ref4) {\n      var cloneNowShown = _ref4.cloneNowShown,\n          rootEl = _ref4.rootEl,\n          cancel = _ref4.cancel;\n      if (!this.isMultiDrag) return;\n      insertMultiDragClones(false, rootEl);\n      multiDragClones.forEach(function (clone) {\n        css(clone, 'display', '');\n      });\n      cloneNowShown();\n      clonesHidden = false;\n      cancel();\n    },\n    hideClone: function hideClone(_ref5) {\n      var _this = this;\n\n      var sortable = _ref5.sortable,\n          cloneNowHidden = _ref5.cloneNowHidden,\n          cancel = _ref5.cancel;\n      if (!this.isMultiDrag) return;\n      multiDragClones.forEach(function (clone) {\n        css(clone, 'display', 'none');\n\n        if (_this.options.removeCloneOnHide && clone.parentNode) {\n          clone.parentNode.removeChild(clone);\n        }\n      });\n      cloneNowHidden();\n      clonesHidden = true;\n      cancel();\n    },\n    dragStartGlobal: function dragStartGlobal(_ref6) {\n      var sortable = _ref6.sortable;\n\n      if (!this.isMultiDrag && multiDragSortable) {\n        multiDragSortable.multiDrag._deselectMultiDrag();\n      }\n\n      multiDragElements.forEach(function (multiDragElement) {\n        multiDragElement.sortableIndex = index(multiDragElement);\n      }); // Sort multi-drag elements\n\n      multiDragElements = multiDragElements.sort(function (a, b) {\n        return a.sortableIndex - b.sortableIndex;\n      });\n      dragStarted = true;\n    },\n    dragStarted: function dragStarted(_ref7) {\n      var _this2 = this;\n\n      var sortable = _ref7.sortable;\n      if (!this.isMultiDrag) return;\n\n      if (this.options.sort) {\n        // Capture rects,\n        // hide multi drag elements (by positioning them absolute),\n        // set multi drag elements rects to dragRect,\n        // show multi drag elements,\n        // animate to rects,\n        // unset rects & remove from DOM\n        sortable.captureAnimationState();\n\n        if (this.options.animation) {\n          multiDragElements.forEach(function (multiDragElement) {\n            if (multiDragElement === dragEl$1) return;\n            css(multiDragElement, 'position', 'absolute');\n          });\n          var dragRect = getRect(dragEl$1, false, true, true);\n          multiDragElements.forEach(function (multiDragElement) {\n            if (multiDragElement === dragEl$1) return;\n            setRect(multiDragElement, dragRect);\n          });\n          folding = true;\n          initialFolding = true;\n        }\n      }\n\n      sortable.animateAll(function () {\n        folding = false;\n        initialFolding = false;\n\n        if (_this2.options.animation) {\n          multiDragElements.forEach(function (multiDragElement) {\n            unsetRect(multiDragElement);\n          });\n        } // Remove all auxiliary multidrag items from el, if sorting enabled\n\n\n        if (_this2.options.sort) {\n          removeMultiDragElements();\n        }\n      });\n    },\n    dragOver: function dragOver(_ref8) {\n      var target = _ref8.target,\n          completed = _ref8.completed,\n          cancel = _ref8.cancel;\n\n      if (folding && ~multiDragElements.indexOf(target)) {\n        completed(false);\n        cancel();\n      }\n    },\n    revert: function revert(_ref9) {\n      var fromSortable = _ref9.fromSortable,\n          rootEl = _ref9.rootEl,\n          sortable = _ref9.sortable,\n          dragRect = _ref9.dragRect;\n\n      if (multiDragElements.length > 1) {\n        // Setup unfold animation\n        multiDragElements.forEach(function (multiDragElement) {\n          sortable.addAnimationState({\n            target: multiDragElement,\n            rect: folding ? getRect(multiDragElement) : dragRect\n          });\n          unsetRect(multiDragElement);\n          multiDragElement.fromRect = dragRect;\n          fromSortable.removeAnimationState(multiDragElement);\n        });\n        folding = false;\n        insertMultiDragElements(!this.options.removeCloneOnHide, rootEl);\n      }\n    },\n    dragOverCompleted: function dragOverCompleted(_ref10) {\n      var sortable = _ref10.sortable,\n          isOwner = _ref10.isOwner,\n          insertion = _ref10.insertion,\n          activeSortable = _ref10.activeSortable,\n          parentEl = _ref10.parentEl,\n          putSortable = _ref10.putSortable;\n      var options = this.options;\n\n      if (insertion) {\n        // Clones must be hidden before folding animation to capture dragRectAbsolute properly\n        if (isOwner) {\n          activeSortable._hideClone();\n        }\n\n        initialFolding = false; // If leaving sort:false root, or already folding - Fold to new location\n\n        if (options.animation && multiDragElements.length > 1 && (folding || !isOwner && !activeSortable.options.sort && !putSortable)) {\n          // Fold: Set all multi drag elements's rects to dragEl's rect when multi-drag elements are invisible\n          var dragRectAbsolute = getRect(dragEl$1, false, true, true);\n          multiDragElements.forEach(function (multiDragElement) {\n            if (multiDragElement === dragEl$1) return;\n            setRect(multiDragElement, dragRectAbsolute); // Move element(s) to end of parentEl so that it does not interfere with multi-drag clones insertion if they are inserted\n            // while folding, and so that we can capture them again because old sortable will no longer be fromSortable\n\n            parentEl.appendChild(multiDragElement);\n          });\n          folding = true;\n        } // Clones must be shown (and check to remove multi drags) after folding when interfering multiDragElements are moved out\n\n\n        if (!isOwner) {\n          // Only remove if not folding (folding will remove them anyways)\n          if (!folding) {\n            removeMultiDragElements();\n          }\n\n          if (multiDragElements.length > 1) {\n            var clonesHiddenBefore = clonesHidden;\n\n            activeSortable._showClone(sortable); // Unfold animation for clones if showing from hidden\n\n\n            if (activeSortable.options.animation && !clonesHidden && clonesHiddenBefore) {\n              multiDragClones.forEach(function (clone) {\n                activeSortable.addAnimationState({\n                  target: clone,\n                  rect: clonesFromRect\n                });\n                clone.fromRect = clonesFromRect;\n                clone.thisAnimationDuration = null;\n              });\n            }\n          } else {\n            activeSortable._showClone(sortable);\n          }\n        }\n      }\n    },\n    dragOverAnimationCapture: function dragOverAnimationCapture(_ref11) {\n      var dragRect = _ref11.dragRect,\n          isOwner = _ref11.isOwner,\n          activeSortable = _ref11.activeSortable;\n      multiDragElements.forEach(function (multiDragElement) {\n        multiDragElement.thisAnimationDuration = null;\n      });\n\n      if (activeSortable.options.animation && !isOwner && activeSortable.multiDrag.isMultiDrag) {\n        clonesFromRect = _extends({}, dragRect);\n        var dragMatrix = matrix(dragEl$1, true);\n        clonesFromRect.top -= dragMatrix.f;\n        clonesFromRect.left -= dragMatrix.e;\n      }\n    },\n    dragOverAnimationComplete: function dragOverAnimationComplete() {\n      if (folding) {\n        folding = false;\n        removeMultiDragElements();\n      }\n    },\n    drop: function drop(_ref12) {\n      var evt = _ref12.originalEvent,\n          rootEl = _ref12.rootEl,\n          parentEl = _ref12.parentEl,\n          sortable = _ref12.sortable,\n          dispatchSortableEvent = _ref12.dispatchSortableEvent,\n          oldIndex = _ref12.oldIndex,\n          putSortable = _ref12.putSortable;\n      var toSortable = putSortable || this.sortable;\n      if (!evt) return;\n      var options = this.options,\n          children = parentEl.children; // Multi-drag selection\n\n      if (!dragStarted) {\n        if (options.multiDragKey && !this.multiDragKeyDown) {\n          this._deselectMultiDrag();\n        }\n\n        toggleClass(dragEl$1, options.selectedClass, !~multiDragElements.indexOf(dragEl$1));\n\n        if (!~multiDragElements.indexOf(dragEl$1)) {\n          multiDragElements.push(dragEl$1);\n          dispatchEvent({\n            sortable: sortable,\n            rootEl: rootEl,\n            name: 'select',\n            targetEl: dragEl$1,\n            originalEvt: evt\n          }); // Modifier activated, select from last to dragEl\n\n          if (evt.shiftKey && lastMultiDragSelect && sortable.el.contains(lastMultiDragSelect)) {\n            var lastIndex = index(lastMultiDragSelect),\n                currentIndex = index(dragEl$1);\n\n            if (~lastIndex && ~currentIndex && lastIndex !== currentIndex) {\n              // Must include lastMultiDragSelect (select it), in case modified selection from no selection\n              // (but previous selection existed)\n              var n, i;\n\n              if (currentIndex > lastIndex) {\n                i = lastIndex;\n                n = currentIndex;\n              } else {\n                i = currentIndex;\n                n = lastIndex + 1;\n              }\n\n              for (; i < n; i++) {\n                if (~multiDragElements.indexOf(children[i])) continue;\n                toggleClass(children[i], options.selectedClass, true);\n                multiDragElements.push(children[i]);\n                dispatchEvent({\n                  sortable: sortable,\n                  rootEl: rootEl,\n                  name: 'select',\n                  targetEl: children[i],\n                  originalEvt: evt\n                });\n              }\n            }\n          } else {\n            lastMultiDragSelect = dragEl$1;\n          }\n\n          multiDragSortable = toSortable;\n        } else {\n          multiDragElements.splice(multiDragElements.indexOf(dragEl$1), 1);\n          lastMultiDragSelect = null;\n          dispatchEvent({\n            sortable: sortable,\n            rootEl: rootEl,\n            name: 'deselect',\n            targetEl: dragEl$1,\n            originalEvt: evt\n          });\n        }\n      } // Multi-drag drop\n\n\n      if (dragStarted && this.isMultiDrag) {\n        // Do not \"unfold\" after around dragEl if reverted\n        if ((parentEl[expando].options.sort || parentEl !== rootEl) && multiDragElements.length > 1) {\n          var dragRect = getRect(dragEl$1),\n              multiDragIndex = index(dragEl$1, ':not(.' + this.options.selectedClass + ')');\n          if (!initialFolding && options.animation) dragEl$1.thisAnimationDuration = null;\n          toSortable.captureAnimationState();\n\n          if (!initialFolding) {\n            if (options.animation) {\n              dragEl$1.fromRect = dragRect;\n              multiDragElements.forEach(function (multiDragElement) {\n                multiDragElement.thisAnimationDuration = null;\n\n                if (multiDragElement !== dragEl$1) {\n                  var rect = folding ? getRect(multiDragElement) : dragRect;\n                  multiDragElement.fromRect = rect; // Prepare unfold animation\n\n                  toSortable.addAnimationState({\n                    target: multiDragElement,\n                    rect: rect\n                  });\n                }\n              });\n            } // Multi drag elements are not necessarily removed from the DOM on drop, so to reinsert\n            // properly they must all be removed\n\n\n            removeMultiDragElements();\n            multiDragElements.forEach(function (multiDragElement) {\n              if (children[multiDragIndex]) {\n                parentEl.insertBefore(multiDragElement, children[multiDragIndex]);\n              } else {\n                parentEl.appendChild(multiDragElement);\n              }\n\n              multiDragIndex++;\n            }); // If initial folding is done, the elements may have changed position because they are now\n            // unfolding around dragEl, even though dragEl may not have his index changed, so update event\n            // must be fired here as Sortable will not.\n\n            if (oldIndex === index(dragEl$1)) {\n              var update = false;\n              multiDragElements.forEach(function (multiDragElement) {\n                if (multiDragElement.sortableIndex !== index(multiDragElement)) {\n                  update = true;\n                  return;\n                }\n              });\n\n              if (update) {\n                dispatchSortableEvent('update');\n              }\n            }\n          } // Must be done after capturing individual rects (scroll bar)\n\n\n          multiDragElements.forEach(function (multiDragElement) {\n            unsetRect(multiDragElement);\n          });\n          toSortable.animateAll();\n        }\n\n        multiDragSortable = toSortable;\n      } // Remove clones if necessary\n\n\n      if (rootEl === parentEl || putSortable && putSortable.lastPutMode !== 'clone') {\n        multiDragClones.forEach(function (clone) {\n          clone.parentNode && clone.parentNode.removeChild(clone);\n        });\n      }\n    },\n    nullingGlobal: function nullingGlobal() {\n      this.isMultiDrag = dragStarted = false;\n      multiDragClones.length = 0;\n    },\n    destroyGlobal: function destroyGlobal() {\n      this._deselectMultiDrag();\n\n      off(document, 'pointerup', this._deselectMultiDrag);\n      off(document, 'mouseup', this._deselectMultiDrag);\n      off(document, 'touchend', this._deselectMultiDrag);\n      off(document, 'keydown', this._checkKeyDown);\n      off(document, 'keyup', this._checkKeyUp);\n    },\n    _deselectMultiDrag: function _deselectMultiDrag(evt) {\n      if (typeof dragStarted !== \"undefined\" && dragStarted) return; // Only deselect if selection is in this sortable\n\n      if (multiDragSortable !== this.sortable) return; // Only deselect if target is not item in this sortable\n\n      if (evt && closest(evt.target, this.options.draggable, this.sortable.el, false)) return; // Only deselect if left click\n\n      if (evt && evt.button !== 0) return;\n\n      while (multiDragElements.length) {\n        var el = multiDragElements[0];\n        toggleClass(el, this.options.selectedClass, false);\n        multiDragElements.shift();\n        dispatchEvent({\n          sortable: this.sortable,\n          rootEl: this.sortable.el,\n          name: 'deselect',\n          targetEl: el,\n          originalEvt: evt\n        });\n      }\n    },\n    _checkKeyDown: function _checkKeyDown(evt) {\n      if (evt.key === this.options.multiDragKey) {\n        this.multiDragKeyDown = true;\n      }\n    },\n    _checkKeyUp: function _checkKeyUp(evt) {\n      if (evt.key === this.options.multiDragKey) {\n        this.multiDragKeyDown = false;\n      }\n    }\n  };\n  return _extends(MultiDrag, {\n    // Static methods & properties\n    pluginName: 'multiDrag',\n    utils: {\n      /**\r\n       * Selects the provided multi-drag item\r\n       * @param  {HTMLElement} el    The element to be selected\r\n       */\n      select: function select(el) {\n        var sortable = el.parentNode[expando];\n        if (!sortable || !sortable.options.multiDrag || ~multiDragElements.indexOf(el)) return;\n\n        if (multiDragSortable && multiDragSortable !== sortable) {\n          multiDragSortable.multiDrag._deselectMultiDrag();\n\n          multiDragSortable = sortable;\n        }\n\n        toggleClass(el, sortable.options.selectedClass, true);\n        multiDragElements.push(el);\n      },\n\n      /**\r\n       * Deselects the provided multi-drag item\r\n       * @param  {HTMLElement} el    The element to be deselected\r\n       */\n      deselect: function deselect(el) {\n        var sortable = el.parentNode[expando],\n            index = multiDragElements.indexOf(el);\n        if (!sortable || !sortable.options.multiDrag || !~index) return;\n        toggleClass(el, sortable.options.selectedClass, false);\n        multiDragElements.splice(index, 1);\n      }\n    },\n    eventProperties: function eventProperties() {\n      var _this3 = this;\n\n      var oldIndicies = [],\n          newIndicies = [];\n      multiDragElements.forEach(function (multiDragElement) {\n        oldIndicies.push({\n          multiDragElement: multiDragElement,\n          index: multiDragElement.sortableIndex\n        }); // multiDragElements will already be sorted if folding\n\n        var newIndex;\n\n        if (folding && multiDragElement !== dragEl$1) {\n          newIndex = -1;\n        } else if (folding) {\n          newIndex = index(multiDragElement, ':not(.' + _this3.options.selectedClass + ')');\n        } else {\n          newIndex = index(multiDragElement);\n        }\n\n        newIndicies.push({\n          multiDragElement: multiDragElement,\n          index: newIndex\n        });\n      });\n      return {\n        items: _toConsumableArray(multiDragElements),\n        clones: [].concat(multiDragClones),\n        oldIndicies: oldIndicies,\n        newIndicies: newIndicies\n      };\n    },\n    optionListeners: {\n      multiDragKey: function multiDragKey(key) {\n        key = key.toLowerCase();\n\n        if (key === 'ctrl') {\n          key = 'Control';\n        } else if (key.length > 1) {\n          key = key.charAt(0).toUpperCase() + key.substr(1);\n        }\n\n        return key;\n      }\n    }\n  });\n}\n\nfunction insertMultiDragElements(clonesInserted, rootEl) {\n  multiDragElements.forEach(function (multiDragElement, i) {\n    var target = rootEl.children[multiDragElement.sortableIndex + (clonesInserted ? Number(i) : 0)];\n\n    if (target) {\n      rootEl.insertBefore(multiDragElement, target);\n    } else {\n      rootEl.appendChild(multiDragElement);\n    }\n  });\n}\n/**\r\n * Insert multi-drag clones\r\n * @param  {[Boolean]} elementsInserted  Whether the multi-drag elements are inserted\r\n * @param  {HTMLElement} rootEl\r\n */\n\n\nfunction insertMultiDragClones(elementsInserted, rootEl) {\n  multiDragClones.forEach(function (clone, i) {\n    var target = rootEl.children[clone.sortableIndex + (elementsInserted ? Number(i) : 0)];\n\n    if (target) {\n      rootEl.insertBefore(clone, target);\n    } else {\n      rootEl.appendChild(clone);\n    }\n  });\n}\n\nfunction removeMultiDragElements() {\n  multiDragElements.forEach(function (multiDragElement) {\n    if (multiDragElement === dragEl$1) return;\n    multiDragElement.parentNode && multiDragElement.parentNode.removeChild(multiDragElement);\n  });\n}\n\nSortable.mount(new AutoScrollPlugin());\nSortable.mount(Remove, Revert);\n\nexport default Sortable;\nexport { MultiDragPlugin as MultiDrag, Sortable, SwapPlugin as Swap };\n","import isNumber from 'lodash/isNumber';\nimport isString from 'lodash/isString';\n\nconst isOption = item => Boolean(item) && (isString(item.value) || isNumber(item.value));\n\n// eslint-disable-next-line unicorn/no-array-callback-reference\nconst isGroup = function () {\n  let {\n    options\n  } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  return Array.isArray(options) && options.every(isOption);\n};\nconst hasNoDuplicates = array => array.length === new Set(array).size;\nconst flattenedOptions = items => items.flatMap(item => isOption(item) ? item : item.options);\n\n// eslint-disable-next-line unicorn/no-array-callback-reference\nconst isAllOptionsOrAllGroups = items => items.every(isOption) || items.every(isGroup);\nconst hasUniqueValues = items => hasNoDuplicates(flattenedOptions(items).map(_ref => {\n  let {\n    value\n  } = _ref;\n  return value;\n}));\n\n// eslint-disable-next-line unicorn/no-array-callback-reference\nconst hasUniqueGroups = items => hasNoDuplicates(items.filter(isGroup).map(_ref2 => {\n  let {\n    text\n  } = _ref2;\n  return text;\n}));\nconst itemsValidator = items => isAllOptionsOrAllGroups(items) && hasUniqueValues(items) && hasUniqueGroups(items);\n\nexport { flattenedOptions, isOption, itemsValidator };\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-avatar',{attrs:{\"shape\":_vm.$options.AVATAR_SHAPE_OPTION_RECT,\"entity-id\":_vm.entityId,\"entity-name\":_vm.projectName,\"src\":_vm.projectAvatarUrl,\"alt\":_vm.avatarAlt,\"size\":_vm.size,\"fallback-on-error\":true,\"itemprop\":\"image\"}})\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!./project_avatar.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!./project_avatar.vue?vue&type=script&lang=js\"","<script>\nimport { GlAvatar } from '@gitlab/ui';\nimport { getIdFromGraphQLId, isGid } from '~/graphql_shared/utils';\nimport { AVATAR_SHAPE_OPTION_RECT } from '~/vue_shared/constants';\n\nexport default {\n  components: {\n    GlAvatar,\n  },\n  props: {\n    projectId: {\n      type: [Number, String],\n      default: 0,\n      required: false,\n      validator(value) {\n        return typeof value === 'string' ? isGid(value) : true;\n      },\n    },\n    projectName: {\n      type: String,\n      required: true,\n    },\n    projectAvatarUrl: {\n      type: String,\n      required: false,\n      default: '',\n    },\n    size: {\n      type: Number,\n      default: 32,\n      required: false,\n    },\n    alt: {\n      type: String,\n      required: false,\n      default: undefined,\n    },\n  },\n  computed: {\n    avatarAlt() {\n      return this.alt ?? this.projectName;\n    },\n    entityId() {\n      return isGid(this.projectId) ? getIdFromGraphQLId(this.projectId) : this.projectId;\n    },\n  },\n  AVATAR_SHAPE_OPTION_RECT,\n};\n</script>\n\n<template>\n  <gl-avatar\n    :shape=\"$options.AVATAR_SHAPE_OPTION_RECT\"\n    :entity-id=\"entityId\"\n    :entity-name=\"projectName\"\n    :src=\"projectAvatarUrl\"\n    :alt=\"avatarAlt\"\n    :size=\"size\"\n    :fallback-on-error=\"true\"\n    itemprop=\"image\"\n  />\n</template>\n","import { render, staticRenderFns } from \"./project_avatar.vue?vue&type=template&id=4edf7bc5\"\nimport script from \"./project_avatar.vue?vue&type=script&lang=js\"\nexport * from \"./project_avatar.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","export const STORAGE_KEY = 'display-whats-new-notification';\n","/**\n * Checks if `value` is `null` or `undefined`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is nullish, else `false`.\n * @example\n *\n * _.isNil(null);\n * // => true\n *\n * _.isNil(void 0);\n * // => true\n *\n * _.isNil(NaN);\n * // => false\n */\nfunction isNil(value) {\n  return value == null;\n}\n\nmodule.exports = isNil;\n","import createEventHub from '~/helpers/event_hub_factory';\n\nexport default createEventHub();\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"gl-scroll-scrim gl-overflow-auto\",class:_vm.scrimClasses},[_vm._m(0),_vm._v(\" \"),_c('div',{ref:\"top-boundary\"}),_vm._v(\" \"),_vm._t(\"default\"),_vm._v(\" \"),_c('div',{ref:\"bottom-boundary\"}),_vm._v(\" \"),_vm._m(1)],2)\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"top-scrim-wrapper\"},[_c('div',{staticClass:\"top-scrim\"})])\n},function (){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"bottom-scrim-wrapper\"},[_c('div',{staticClass:\"bottom-scrim\"})])\n}]\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!./scroll_scrim.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!./scroll_scrim.vue?vue&type=script&lang=js\"","<script>\nexport default {\n  name: 'ScrollScrim',\n  data() {\n    return {\n      topBoundaryVisible: true,\n      bottomBoundaryVisible: true,\n    };\n  },\n  computed: {\n    scrimClasses() {\n      return {\n        'top-scrim-visible gl-border-t': !this.topBoundaryVisible,\n        'bottom-scrim-visible gl-border-b': !this.bottomBoundaryVisible,\n      };\n    },\n  },\n  mounted() {\n    this.observeScroll();\n  },\n  beforeDestroy() {\n    this.scrollObserver?.disconnect();\n  },\n\n  methods: {\n    observeScroll() {\n      const root = this.$el;\n\n      const options = {\n        rootMargin: '8px',\n        root,\n        threshold: 1.0,\n      };\n\n      this.scrollObserver?.disconnect();\n\n      const observer = new IntersectionObserver((entries) => {\n        entries.forEach((entry) => {\n          this[entry.target?.$__visibilityProp] = entry.isIntersecting;\n        });\n      }, options);\n\n      const topBoundary = this.$refs['top-boundary'];\n      const bottomBoundary = this.$refs['bottom-boundary'];\n\n      topBoundary.$__visibilityProp = 'topBoundaryVisible';\n      observer.observe(topBoundary);\n\n      bottomBoundary.$__visibilityProp = 'bottomBoundaryVisible';\n      observer.observe(bottomBoundary);\n\n      this.scrollObserver = observer;\n    },\n  },\n};\n</script>\n\n<template>\n  <div class=\"gl-scroll-scrim gl-overflow-auto\" :class=\"scrimClasses\">\n    <div class=\"top-scrim-wrapper\">\n      <div class=\"top-scrim\"></div>\n    </div>\n    <div ref=\"top-boundary\"></div>\n\n    <slot></slot>\n\n    <div ref=\"bottom-boundary\"></div>\n    <div class=\"bottom-scrim-wrapper\">\n      <div class=\"bottom-scrim\"></div>\n    </div>\n  </div>\n</template>\n","import { render, staticRenderFns } from \"./scroll_scrim.vue?vue&type=template&id=652107b2\"\nimport script from \"./scroll_scrim.vue?vue&type=script&lang=js\"\nexport * from \"./scroll_scrim.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    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"CurrentUserFrecentGroups\"},\"variableDefinitions\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"frecentGroups\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"namespace\"},\"name\":{\"kind\":\"Name\",\"value\":\"fullName\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"avatarUrl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":124}};\n    doc.loc.source = {\"body\":\"query CurrentUserFrecentGroups {\\n  frecentGroups {\\n    id\\n    name\\n    namespace: fullName\\n    avatarUrl\\n    fullPath\\n  }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"CurrentUserFrecentGroups\"] = oneQuery(doc, \"CurrentUserFrecentGroups\");\n        \n","export const ICON_PROJECT = 'project';\n\nexport const ICON_GROUP = 'group';\n\nexport const ICON_SUBGROUP = 'subgroup';\n\nexport const LARGE_AVATAR_PX = 32;\n\nexport const SMALL_AVATAR_PX = 16;\n\nexport const SEARCH_SHORTCUTS_MIN_CHARACTERS = 2;\n\nexport const SEARCH_INPUT_DESCRIPTION = 'search-input-description';\n\nexport const SEARCH_RESULTS_DESCRIPTION = 'search-results-description';\n\nexport const SCOPE_TOKEN_MAX_LENGTH = 36;\n\nexport const INPUT_FIELD_PADDING = 84;\n\nexport const FETCH_TYPES = ['generic', 'search'];\nexport const SEARCH_MODAL_ID = 'super-sidebar-search-modal';\n\nexport const SEARCH_INPUT_SELECTOR = 'input[role=\"searchbox\"]';\n\nexport const SEARCH_RESULTS_ITEM_SELECTOR = '.gl-new-dropdown-item';\n\nexport const KEY_K = 'KeyK';\n\nexport const KEY_N = 'KeyN';\n\nexport const KEY_P = 'KeyP';\n","exports = module.exports = require(\"../../../../../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \"\\n.input-box-wrapper[data-v-86e5ca72] {\\n  position: relative;\\n}\\n.fake-input-wrapper[data-v-86e5ca72] {\\n  position: absolute;\\n}\\n\", \"\"]);\n\n","import { s__ } from '~/locale';\n\nexport const COMMAND_HANDLE = '>';\nexport const USER_HANDLE = '@';\nexport const PROJECT_HANDLE = ':';\nexport const ISSUE_HANDLE = '#';\nexport const PATH_HANDLE = '~';\n\nexport const COMMANDS_TOGGLE_KEYBINDING = 'mod+k';\nexport const COMMANDS_SKIP_NEXT_KEYBINDING = ['ctrl+n', 'command+n', 'alt+mod+n'];\nexport const COMMANDS_SKIP_PREV_KEYBINDING = ['ctrl+p', 'command+p', 'alt+mod+p'];\n\nexport const TRACKING_ACTIVATE_COMMAND_PALETTE = 'activate_command_palette';\nexport const TRACKING_CLICK_COMMAND_PALETTE_ITEM = 'click_command_palette_item';\nexport const TRACKING_HANDLE_LABEL_MAP = {\n  [COMMAND_HANDLE]: 'command',\n  [USER_HANDLE]: 'user',\n  [PROJECT_HANDLE]: 'project',\n  [PATH_HANDLE]: 'path',\n  // No ISSUE_HANDLE. See https://gitlab.com/gitlab-org/gitlab/-/issues/417434.\n};\n\nexport const COMMON_HANDLES = [COMMAND_HANDLE, USER_HANDLE, PROJECT_HANDLE, PATH_HANDLE];\n\nexport const SEARCH_SCOPE_PLACEHOLDER = {\n  [COMMAND_HANDLE]: s__('CommandPalette|command'),\n  [USER_HANDLE]: s__('CommandPalette|user (enter at least 3 chars)'),\n  [PROJECT_HANDLE]: s__('CommandPalette|project (enter at least 3 chars)'),\n  [ISSUE_HANDLE]: s__('CommandPalette|issue (enter at least 3 chars)'),\n  [PATH_HANDLE]: s__('CommandPalette|go to project file'),\n};\n\nexport const SEARCH_SCOPE = {\n  [USER_HANDLE]: 'users',\n  [PROJECT_HANDLE]: 'projects',\n  [ISSUE_HANDLE]: 'issues',\n};\n\nexport const GLOBAL_COMMANDS_GROUP_TITLE = s__('CommandPalette|Global Commands');\nexport const USERS_GROUP_TITLE = s__('GlobalSearch|Users');\nexport const PAGES_GROUP_TITLE = s__('CommandPalette|Pages');\nexport const PROJECTS_GROUP_TITLE = s__('GlobalSearch|Projects');\nexport const GROUPS_GROUP_TITLE = s__('GlobalSearch|Groups');\nexport const ISSUES_GROUP_TITLE = s__('GlobalSearch|Issues');\nexport const PATH_GROUP_TITLE = s__('CommandPalette|Project files');\nexport const SETTINGS_GROUP_TITLE = s__('CommandPalette|Settings');\n\nexport const MODAL_CLOSE_ESC = 'esc';\nexport const MODAL_CLOSE_BACKGROUND = 'backdrop';\nexport const MODAL_CLOSE_HEADERCLOSE = 'headerclose';\n\nexport const SCOPE_SEARCH_ALL = 'scoped-in-all';\nexport const SCOPE_SEARCH_GROUP = 'scoped-in-group';\nexport const SCOPE_SEARCH_PROJECT = 'scoped-in-project';\n\nexport const GROUP_TITLES = {\n  [USER_HANDLE]: USERS_GROUP_TITLE,\n  [PROJECT_HANDLE]: PROJECTS_GROUP_TITLE,\n  [ISSUE_HANDLE]: ISSUES_GROUP_TITLE,\n  [PATH_HANDLE]: PATH_GROUP_TITLE,\n};\n\nexport const MAX_ROWS = 20;\n\nexport const OVERLAY_CHANGE_CONTEXT = s__('GlobalSearch|Change context %{kbdStart}↵%{kbdEnd}');\nexport const OVERLAY_SEARCH = s__('GlobalSearch|Search %{kbdStart}↵%{kbdEnd}');\n\nexport const OVERLAY_PROFILE = s__('GlobalSearch|Go to profile %{kbdStart}↵%{kbdEnd}');\n\nexport const OVERLAY_PROJECT = s__('GlobalSearch|Go to project %{kbdStart}↵%{kbdEnd}');\n\nexport const OVERLAY_FILE = s__('GlobalSearch|Go to file %{kbdStart}↵%{kbdEnd}');\n\nexport const OVERLAY_GOTO = s__('GlobalSearch|Go to %{kbdStart}↵%{kbdEnd}');\n\nexport const FREQUENTLY_VISITED_PROJECTS_HANDLE = 'FREQUENTLY_VISITED_PROJECTS_HANDLE';\nexport const FREQUENTLY_VISITED_GROUPS_HANDLE = 'FREQUENTLY_VISITED_GROUPS_HANDLE';\n","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.isButtonTrigger)?_c('gl-button',_vm._b({attrs:{\"variant\":_vm.variant,\"category\":_vm.category,\"icon\":_vm.icon},on:{\"click\":_vm.openModal}},'gl-button',_vm.componentAttributes,false),[_vm._v(\"\\n  \"+_vm._s(_vm.displayText)+\"\\n\")]):(_vm.isWithEmojiTrigger)?_c('gl-link',_vm._b({on:{\"click\":_vm.openModal}},'gl-link',_vm.componentAttributes,false),[_vm._v(\"\\n  \"+_vm._s(_vm.displayText)+\"\\n  \"),_c('gl-emoji',{staticClass:\"gl-mr-1 gl-align-baseline gl-text-size-reset\",attrs:{\"data-name\":_vm.icon}})],1):(_vm.isDropdownWithEmojiTrigger)?_c('gl-dropdown-item',_vm._b({on:{\"click\":_vm.openModal}},'gl-dropdown-item',_vm.componentAttributes,false),[_vm._v(\"\\n  \"+_vm._s(_vm.displayText)+\"\\n  \"),_c('gl-emoji',{staticClass:\"gl-mr-1 gl-align-baseline gl-text-size-reset\",attrs:{\"data-name\":_vm.icon}})],1):(_vm.isDisclosureTrigger)?_c('gl-disclosure-dropdown-item',_vm._b({attrs:{\"item\":_vm.item},on:{\"action\":_vm.handleDisclosureDropdownAction}},'gl-disclosure-dropdown-item',_vm.componentAttributes,false)):_c('gl-link',_vm._b({attrs:{\"data-is-link\":\"true\"},on:{\"click\":_vm.openModal}},'gl-link',_vm.componentAttributes,false),[_vm._v(\"\\n  \"+_vm._s(_vm.displayText)+\"\\n\")])\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!./invite_members_trigger.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!./invite_members_trigger.vue?vue&type=script&lang=js\"","<script>\nimport { GlButton, GlLink, GlDropdownItem, GlDisclosureDropdownItem } from '@gitlab/ui';\nimport { s__ } from '~/locale';\nimport eventHub from '../event_hub';\nimport {\n  TRIGGER_ELEMENT_BUTTON,\n  TRIGGER_ELEMENT_WITH_EMOJI,\n  TRIGGER_ELEMENT_DROPDOWN_WITH_EMOJI,\n  TRIGGER_ELEMENT_DISCLOSURE_DROPDOWN,\n} from '../constants';\n\nexport default {\n  components: { GlButton, GlLink, GlDropdownItem, GlDisclosureDropdownItem },\n  props: {\n    displayText: {\n      type: String,\n      required: false,\n      default: s__('InviteMembers|Invite team members'),\n    },\n    icon: {\n      type: String,\n      required: false,\n      default: '',\n    },\n    classes: {\n      type: String,\n      required: false,\n      default: '',\n    },\n    variant: {\n      type: String,\n      required: false,\n      default: undefined,\n    },\n    category: {\n      type: String,\n      required: false,\n      default: undefined,\n    },\n    triggerSource: {\n      type: String,\n      required: true,\n    },\n    triggerElement: {\n      type: String,\n      required: false,\n      default: 'button',\n    },\n  },\n  computed: {\n    componentAttributes() {\n      return {\n        class: this.classes,\n        'data-testid': 'invite-members-button',\n      };\n    },\n    item() {\n      return { text: this.displayText };\n    },\n    isButtonTrigger() {\n      return this.triggerElement === TRIGGER_ELEMENT_BUTTON;\n    },\n    isWithEmojiTrigger() {\n      return this.triggerElement === TRIGGER_ELEMENT_WITH_EMOJI;\n    },\n    isDropdownWithEmojiTrigger() {\n      return this.triggerElement === TRIGGER_ELEMENT_DROPDOWN_WITH_EMOJI;\n    },\n    isDisclosureTrigger() {\n      return this.triggerElement === TRIGGER_ELEMENT_DISCLOSURE_DROPDOWN;\n    },\n  },\n  methods: {\n    openModal() {\n      eventHub.$emit('openModal', { source: this.triggerSource });\n    },\n    handleDisclosureDropdownAction() {\n      this.openModal();\n      this.$emit('modal-opened');\n    },\n  },\n};\n</script>\n\n<template>\n  <gl-button\n    v-if=\"isButtonTrigger\"\n    v-bind=\"componentAttributes\"\n    :variant=\"variant\"\n    :category=\"category\"\n    :icon=\"icon\"\n    @click=\"openModal\"\n  >\n    {{ displayText }}\n  </gl-button>\n  <gl-link v-else-if=\"isWithEmojiTrigger\" v-bind=\"componentAttributes\" @click=\"openModal\">\n    {{ displayText }}\n    <gl-emoji class=\"gl-mr-1 gl-align-baseline gl-text-size-reset\" :data-name=\"icon\" />\n  </gl-link>\n  <gl-dropdown-item\n    v-else-if=\"isDropdownWithEmojiTrigger\"\n    v-bind=\"componentAttributes\"\n    @click=\"openModal\"\n  >\n    {{ displayText }}\n    <gl-emoji class=\"gl-mr-1 gl-align-baseline gl-text-size-reset\" :data-name=\"icon\" />\n  </gl-dropdown-item>\n  <gl-disclosure-dropdown-item\n    v-else-if=\"isDisclosureTrigger\"\n    v-bind=\"componentAttributes\"\n    :item=\"item\"\n    @action=\"handleDisclosureDropdownAction\"\n  />\n  <gl-link v-else v-bind=\"componentAttributes\" data-is-link=\"true\" @click=\"openModal\">\n    {{ displayText }}\n  </gl-link>\n</template>\n","import { render, staticRenderFns } from \"./invite_members_trigger.vue?vue&type=template&id=cb0ec660\"\nimport script from \"./invite_members_trigger.vue?vue&type=script&lang=js\"\nexport * from \"./invite_members_trigger.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 { NAME_MODAL } from '../../constants/components';\nimport { EVENT_NAME_SHOW, EVENT_OPTIONS_PASSIVE } from '../../constants/events';\nimport { CODE_ENTER, CODE_SPACE } from '../../constants/key-codes';\nimport { matches, select, hasAttr, setAttr, getAttr, isDisabled } from '../../utils/dom';\nimport { getRootActionEventName, eventOff, eventOn } from '../../utils/events';\nimport { isString } from '../../utils/inspect';\nimport { keys } from '../../utils/object';\nimport { getEventRoot } from '../../utils/get-event-root';\nimport { getInstanceFromDirective } from '../../utils/get-instance-from-directive';\n\n// Emitted show event for modal\nconst ROOT_ACTION_EVENT_NAME_SHOW = getRootActionEventName(NAME_MODAL, EVENT_NAME_SHOW);\n\n// Prop name we use to store info on root element\nconst PROPERTY = '__bv_modal_directive__';\nconst getTarget = _ref => {\n  let {\n    modifiers = {},\n    arg,\n    value\n  } = _ref;\n  // Try value, then arg, otherwise pick last modifier\n  return isString(value) ? value : isString(arg) ? arg : keys(modifiers).reverse()[0];\n};\nconst getTriggerElement = el => {\n  // If root element is a dropdown-item or nav-item, we\n  // need to target the inner link or button instead\n  return el && matches(el, '.dropdown-menu > li, li.nav-item') ? select('a, button', el) || el : el;\n};\nconst setRole = trigger => {\n  // Ensure accessibility on non button elements\n  if (trigger && trigger.tagName !== 'BUTTON') {\n    // Only set a role if the trigger element doesn't have one\n    if (!hasAttr(trigger, 'role')) {\n      setAttr(trigger, 'role', 'button');\n    }\n    // Add a tabindex is not a button or link, and tabindex is not provided\n    if (trigger.tagName !== 'A' && !hasAttr(trigger, 'tabindex')) {\n      setAttr(trigger, 'tabindex', '0');\n    }\n  }\n};\nconst bind = (el, binding, vnode) => {\n  const target = getTarget(binding);\n  const trigger = getTriggerElement(el);\n  if (target && trigger) {\n    const handler = event => {\n      // `currentTarget` is the element with the listener on it\n      const currentTarget = event.currentTarget;\n      if (!isDisabled(currentTarget)) {\n        const type = event.type;\n        const key = event.keyCode;\n        // Open modal only if trigger is not disabled\n        if (type === 'click' || type === 'keydown' && (key === CODE_ENTER || key === CODE_SPACE)) {\n          getEventRoot(getInstanceFromDirective(vnode, binding)).$emit(ROOT_ACTION_EVENT_NAME_SHOW, target, currentTarget);\n        }\n      }\n    };\n    el[PROPERTY] = {\n      handler,\n      target,\n      trigger\n    };\n    // If element is not a button, we add `role=\"button\"` for accessibility\n    setRole(trigger);\n    // Listen for click events\n    eventOn(trigger, 'click', handler, EVENT_OPTIONS_PASSIVE);\n    if (trigger.tagName !== 'BUTTON' && getAttr(trigger, 'role') === 'button') {\n      // If trigger isn't a button but has role button,\n      // we also listen for `keydown.space` && `keydown.enter`\n      eventOn(trigger, 'keydown', handler, EVENT_OPTIONS_PASSIVE);\n    }\n  }\n};\nconst unbind = el => {\n  const oldProp = el[PROPERTY] || {};\n  const trigger = oldProp.trigger;\n  const handler = oldProp.handler;\n  if (trigger && handler) {\n    eventOff(trigger, 'click', handler, EVENT_OPTIONS_PASSIVE);\n    eventOff(trigger, 'keydown', handler, EVENT_OPTIONS_PASSIVE);\n    eventOff(el, 'click', handler, EVENT_OPTIONS_PASSIVE);\n    eventOff(el, 'keydown', handler, EVENT_OPTIONS_PASSIVE);\n  }\n  delete el[PROPERTY];\n};\nconst componentUpdated = (el, binding, vnode) => {\n  const oldProp = el[PROPERTY] || {};\n  const target = getTarget(binding);\n  const trigger = getTriggerElement(el);\n  if (target !== oldProp.target || trigger !== oldProp.trigger) {\n    // We bind and rebind if the target or trigger changes\n    unbind(el);\n    bind(el, binding, vnode);\n  }\n  // If trigger element is not a button, ensure `role=\"button\"`\n  // is still set for accessibility\n  setRole(trigger);\n};\nconst updated = () => {};\n\n/*\n * Export our directive\n */\nconst VBModal = {\n  inserted: componentUpdated,\n  updated,\n  componentUpdated,\n  unbind\n};\n\nexport { VBModal };\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"SuperSideBarCount\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"NamespaceSidebar\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"openIssuesCount\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"openMergeRequestsCount\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"openEpicsCount\"},\"arguments\":[],\"directives\":[]}]}}],\"loc\":{\"start\":0,\"end\":111}};\n    doc.loc.source = {\"body\":\"fragment SuperSideBarCount on NamespaceSidebar {\\n  openIssuesCount\\n  openMergeRequestsCount\\n  openEpicsCount\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"SuperSideBarCount\"] = oneQuery(doc, \"SuperSideBarCount\");\n        \n","var baseRandom = require('./_baseRandom'),\n    isIterateeCall = require('./_isIterateeCall'),\n    toFinite = require('./toFinite');\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseFloat = parseFloat;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMin = Math.min,\n    nativeRandom = Math.random;\n\n/**\n * Produces a random number between the inclusive `lower` and `upper` bounds.\n * If only one argument is provided a number between `0` and the given number\n * is returned. If `floating` is `true`, or either `lower` or `upper` are\n * floats, a floating-point number is returned instead of an integer.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @memberOf _\n * @since 0.7.0\n * @category Number\n * @param {number} [lower=0] The lower bound.\n * @param {number} [upper=1] The upper bound.\n * @param {boolean} [floating] Specify returning a floating-point number.\n * @returns {number} Returns the random number.\n * @example\n *\n * _.random(0, 5);\n * // => an integer between 0 and 5\n *\n * _.random(5);\n * // => also an integer between 0 and 5\n *\n * _.random(5, true);\n * // => a floating-point number between 0 and 5\n *\n * _.random(1.2, 5.2);\n * // => a floating-point number between 1.2 and 5.2\n */\nfunction random(lower, upper, floating) {\n  if (floating && typeof floating != 'boolean' && isIterateeCall(lower, upper, floating)) {\n    upper = floating = undefined;\n  }\n  if (floating === undefined) {\n    if (typeof upper == 'boolean') {\n      floating = upper;\n      upper = undefined;\n    }\n    else if (typeof lower == 'boolean') {\n      floating = lower;\n      lower = undefined;\n    }\n  }\n  if (lower === undefined && upper === undefined) {\n    lower = 0;\n    upper = 1;\n  }\n  else {\n    lower = toFinite(lower);\n    if (upper === undefined) {\n      upper = lower;\n      lower = 0;\n    } else {\n      upper = toFinite(upper);\n    }\n  }\n  if (lower > upper) {\n    var temp = lower;\n    lower = upper;\n    upper = temp;\n  }\n  if (floating || lower % 1 || upper % 1) {\n    var rand = nativeRandom();\n    return nativeMin(lower + (rand * (upper - lower + freeParseFloat('1e-' + ((rand + '').length - 1)))), upper);\n  }\n  return baseRandom(lower, upper);\n}\n\nmodule.exports = random;\n","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!./search_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!./search_item.vue?vue&type=script&lang=js\"","<script>\nimport { GlAvatar, GlIcon } from '@gitlab/ui';\nimport SafeHtml from '~/vue_shared/directives/safe_html';\nimport highlight from '~/lib/utils/highlight';\nimport { AVATAR_SHAPE_OPTION_RECT } from '~/vue_shared/constants';\n\nexport default {\n  name: 'CommandPaletteSearchItem',\n  components: {\n    GlAvatar,\n    GlIcon,\n  },\n  directives: {\n    SafeHtml,\n  },\n  props: {\n    item: {\n      type: Object,\n      required: true,\n    },\n    searchQuery: {\n      type: String,\n      required: true,\n    },\n  },\n  computed: {\n    highlightedName() {\n      return highlight(this.item.text, this.searchQuery);\n    },\n  },\n  AVATAR_SHAPE_OPTION_RECT,\n};\n</script>\n\n<template>\n  <div class=\"gl-flex gl-items-center\">\n    <gl-avatar\n      v-if=\"item.avatar_url !== undefined\"\n      class=\"gl-mr-3\"\n      :src=\"item.avatar_url\"\n      :entity-id=\"item.entity_id\"\n      :entity-name=\"item.entity_name\"\n      :size=\"item.avatar_size\"\n      :shape=\"$options.AVATAR_SHAPE_OPTION_RECT\"\n      aria-hidden=\"true\"\n    />\n    <gl-icon v-if=\"item.icon\" class=\"gl-mr-3 gl-shrink-0\" :name=\"item.icon\" />\n    <span class=\"gl-flex gl-w-full gl-min-w-0 gl-flex-col\">\n      <span v-safe-html=\"highlightedName\" class=\"gl-truncate gl-text-strong\"></span>\n      <span\n        v-if=\"item.namespace\"\n        v-safe-html=\"item.namespace\"\n        class=\"gl-truncate gl-text-sm gl-text-subtle\"\n      ></span>\n    </span>\n  </div>\n</template>\n","import { render, staticRenderFns } from \"./search_item.vue?vue&type=template&id=33d904de\"\nimport script from \"./search_item.vue?vue&type=script&lang=js\"\nexport * from \"./search_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('div',{staticClass:\"gl-flex gl-items-center\"},[(_vm.item.avatar_url !== undefined)?_c('gl-avatar',{staticClass:\"gl-mr-3\",attrs:{\"src\":_vm.item.avatar_url,\"entity-id\":_vm.item.entity_id,\"entity-name\":_vm.item.entity_name,\"size\":_vm.item.avatar_size,\"shape\":_vm.$options.AVATAR_SHAPE_OPTION_RECT,\"aria-hidden\":\"true\"}}):_vm._e(),_vm._v(\" \"),(_vm.item.icon)?_c('gl-icon',{staticClass:\"gl-mr-3 gl-shrink-0\",attrs:{\"name\":_vm.item.icon}}):_vm._e(),_vm._v(\" \"),_c('span',{staticClass:\"gl-flex gl-w-full gl-min-w-0 gl-flex-col\"},[_c('span',{directives:[{name:\"safe-html\",rawName:\"v-safe-html\",value:(_vm.highlightedName),expression:\"highlightedName\"}],staticClass:\"gl-truncate gl-text-strong\"}),_vm._v(\" \"),(_vm.item.namespace)?_c('span',{directives:[{name:\"safe-html\",rawName:\"v-safe-html\",value:(_vm.item.namespace),expression:\"item.namespace\"}],staticClass:\"gl-truncate gl-text-sm gl-text-subtle\"}):_vm._e()])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { isNil, omitBy } from 'lodash';\nimport { objectToQuery, joinPaths, encodeSaferUrl } from '~/lib/utils/url_utility';\nimport { TRACKING_UNKNOWN_ID } from '~/super_sidebar/constants';\nimport {\n  SEARCH_SCOPE,\n  GLOBAL_COMMANDS_GROUP_TITLE,\n  TRACKING_CLICK_COMMAND_PALETTE_ITEM,\n} from './constants';\n\nexport const commandMapper = ({ name, items }) => {\n  // TODO: we filter out invite_members for now, because it is complicated to add the invite members modal here\n  // and is out of scope for the basic command palette items. If it proves to be useful, we can add it later.\n  return {\n    name: name || GLOBAL_COMMANDS_GROUP_TITLE,\n    items: items.filter(({ component }) => component !== 'invite_members'),\n  };\n};\n\nexport const linksReducer = (acc, menuItem) => {\n  const trackingAttrs = ({ id, title }) => {\n    return {\n      extraAttrs: {\n        'data-track-action': TRACKING_CLICK_COMMAND_PALETTE_ITEM,\n        'data-track-label': id || TRACKING_UNKNOWN_ID,\n        ...(id\n          ? {}\n          : {\n              'data-track-extra': JSON.stringify({ title }),\n            }),\n      },\n    };\n  };\n\n  acc.push({\n    text: menuItem.title,\n    keywords: menuItem.title,\n    icon: menuItem.icon,\n    href: menuItem.link,\n    ...trackingAttrs(menuItem),\n  });\n  if (menuItem.items?.length) {\n    const items = menuItem.items.map((item) => ({\n      keywords: item.title,\n      text: [menuItem.title, item.title].join(' > '),\n      href: item.link,\n      icon: menuItem.icon,\n      ...trackingAttrs(item),\n    }));\n\n    /* eslint-disable-next-line no-param-reassign */\n    acc = [...acc, ...items];\n  }\n  return acc;\n};\n\nexport const fileMapper = (projectBlobPath, file) => {\n  return {\n    icon: 'doc-code',\n    text: file,\n    href: encodeSaferUrl(joinPaths(projectBlobPath, file)),\n    extraAttrs: {\n      'data-track-action': TRACKING_CLICK_COMMAND_PALETTE_ITEM,\n      'data-track-label': 'file',\n    },\n  };\n};\n\nexport const autocompleteQuery = ({ path, searchTerm, handle, projectId }) => {\n  const query = omitBy(\n    {\n      term: searchTerm,\n      project_id: projectId,\n      filter: 'search',\n      scope: SEARCH_SCOPE[handle],\n    },\n    isNil,\n  );\n\n  return `${path}?${objectToQuery(query)}`;\n};\n","<script>\nimport { debounce } from 'lodash';\nimport fuzzaldrinPlus from 'fuzzaldrin-plus';\nimport { GlDisclosureDropdownGroup, GlLoadingIcon } from '@gitlab/ui';\nimport * as Sentry from '~/sentry/sentry_browser_wrapper';\nimport axios from '~/lib/utils/axios_utils';\nimport { DEFAULT_DEBOUNCE_AND_THROTTLE_MS } from '~/lib/utils/constants';\nimport Tracking, { InternalEvents } from '~/tracking';\nimport { logError } from '~/lib/logger';\nimport { getFormattedItem } from '../utils';\n\nimport { EVENT_CLICK_PROJECT_SETTING_IN_COMMAND_PALETTE } from '../tracking_constants';\nimport {\n  COMMON_HANDLES,\n  COMMAND_HANDLE,\n  USER_HANDLE,\n  PROJECT_HANDLE,\n  ISSUE_HANDLE,\n  PATH_HANDLE,\n  PAGES_GROUP_TITLE,\n  SETTINGS_GROUP_TITLE,\n  PATH_GROUP_TITLE,\n  GROUP_TITLES,\n  MAX_ROWS,\n  TRACKING_ACTIVATE_COMMAND_PALETTE,\n  TRACKING_HANDLE_LABEL_MAP,\n} from './constants';\nimport SearchItem from './search_item.vue';\nimport { commandMapper, linksReducer, autocompleteQuery, fileMapper } from './utils';\n\nconst trackingMixin = InternalEvents.mixin();\n\nexport default {\n  name: 'CommandPaletteItems',\n  components: {\n    GlDisclosureDropdownGroup,\n    GlLoadingIcon,\n    SearchItem,\n  },\n  mixins: [Tracking.mixin(), trackingMixin],\n  inject: [\n    'commandPaletteCommands',\n    'commandPaletteLinks',\n    'autocompletePath',\n    'settingsPath',\n    'searchContext',\n    'projectFilesPath',\n    'projectBlobPath',\n  ],\n  props: {\n    searchQuery: {\n      type: String,\n      required: true,\n    },\n    handle: {\n      type: String,\n      required: true,\n      validator: (value) => {\n        return [...COMMON_HANDLES, PATH_HANDLE].includes(value);\n      },\n    },\n  },\n  data: () => ({\n    groups: [],\n    loading: false,\n    projectFiles: [],\n    debouncedSearch: debounce(function debouncedSearch() {\n      switch (this.handle) {\n        case COMMAND_HANDLE:\n          this.getCommandsAndPages();\n          break;\n        /* TODO: Search for recent issues initiated by #(ISSUE_HANDLE) from the command palette scope\n         was removed as using the # in command palette conflicted\n         with the existing global search functionality to search for issue by its id.\n         The code that performs the Recent issues search was not removed from the code base\n         as it would be nice to bring it back when we decide how to combine both search by id and text.\n         In scope of https://gitlab.com/gitlab-org/gitlab/-/issues/417434\n         we either bring back the search by #issue_text or remove the related code completely */\n        case USER_HANDLE:\n        case PROJECT_HANDLE:\n        case ISSUE_HANDLE:\n          this.getScopedItems();\n          break;\n        case PATH_HANDLE:\n          this.getProjectFiles();\n          break;\n        default:\n          break;\n      }\n    }, DEFAULT_DEBOUNCE_AND_THROTTLE_MS),\n    settings: [],\n  }),\n  computed: {\n    isCommandMode() {\n      return this.handle === COMMAND_HANDLE;\n    },\n    isPathMode() {\n      return this.handle === PATH_HANDLE;\n    },\n    commands() {\n      return this.commandPaletteCommands.map(commandMapper);\n    },\n    links() {\n      return this.commandPaletteLinks.reduce(linksReducer, []);\n    },\n    filteredCommands() {\n      return this.searchQuery\n        ? this.commands\n            .map(({ name, items }) => {\n              return {\n                name,\n                items: this.filterBySearchQuery(items, 'text'),\n              };\n            })\n            .filter(({ items }) => items.length)\n        : this.commands;\n    },\n    hasResults() {\n      return this.groups?.length && this.groups.some((group) => group.items?.length);\n    },\n    hasSearchQuery() {\n      if (this.isCommandMode || this.isPathMode) {\n        return this.searchQuery?.length > 0;\n      }\n      return this.searchQuery?.length > 2;\n    },\n    searchTerm() {\n      if (this.handle === ISSUE_HANDLE) {\n        return `${ISSUE_HANDLE}${this.searchQuery}`;\n      }\n      return this.searchQuery;\n    },\n    filteredProjectFiles() {\n      if (!this.searchQuery) {\n        return this.projectFiles.slice(0, MAX_ROWS);\n      }\n      return this.filterBySearchQuery(this.projectFiles, 'text').slice(0, MAX_ROWS);\n    },\n  },\n  watch: {\n    searchQuery: {\n      handler() {\n        this.debouncedSearch();\n      },\n      immediate: true,\n    },\n    handle: {\n      handler(value, oldValue) {\n        // Do not run search immediately on component creation\n        if (oldValue !== undefined) this.debouncedSearch();\n\n        // Track immediately on component creation\n        const label = TRACKING_HANDLE_LABEL_MAP[value] ?? 'unknown';\n        this.track(TRACKING_ACTIVATE_COMMAND_PALETTE, { label });\n\n        // Fetch settings results only for \">\"\n        if (value === COMMAND_HANDLE) this.fetchSettings();\n      },\n      immediate: true,\n    },\n  },\n  updated() {\n    this.$emit('updated');\n  },\n  methods: {\n    fetchSettings() {\n      let settingsUrl = null;\n      const projectId = this.searchContext.project?.id;\n      const groupId = this.searchContext.group?.id;\n\n      if (projectId) {\n        settingsUrl = `${this.settingsPath}?project_id=${projectId}`;\n      } else if (groupId) {\n        settingsUrl = `${this.settingsPath}?group_id=${groupId}`;\n      } else {\n        this.settings = [];\n        return;\n      }\n\n      axios\n        .get(settingsUrl)\n        .then((response) => {\n          this.settings = response.data;\n        })\n        .catch((e) => {\n          logError(e);\n          this.settings = [];\n        });\n    },\n    filterBySearchQuery(items, key = 'keywords') {\n      return fuzzaldrinPlus.filter(items, this.searchQuery, { key });\n    },\n    async getProjectFiles() {\n      if (this.projectFilesPath && !this.projectFiles.length) {\n        this.loading = true;\n\n        try {\n          const response = await axios.get(this.projectFilesPath);\n          this.projectFiles = response?.data.map(fileMapper.bind(null, this.projectBlobPath));\n        } catch (error) {\n          Sentry.captureException(error);\n        } finally {\n          this.loading = false;\n        }\n      }\n\n      this.groups = [\n        {\n          name: PATH_GROUP_TITLE,\n          items: this.filteredProjectFiles,\n        },\n      ];\n    },\n    getCommandsAndPages() {\n      if (!this.searchQuery) {\n        this.groups = [...this.commands];\n        return;\n      }\n\n      this.groups = [...this.filteredCommands];\n\n      const matchedLinks = this.filterBySearchQuery(this.links);\n\n      if (matchedLinks.length) {\n        this.groups.push({\n          name: PAGES_GROUP_TITLE,\n          items: matchedLinks,\n        });\n      }\n\n      const matchedSettings = this.filterBySearchQuery(this.settings, 'text');\n\n      if (matchedSettings.length) {\n        this.groups.push({\n          name: SETTINGS_GROUP_TITLE,\n          items: matchedSettings,\n        });\n      }\n    },\n    async getScopedItems() {\n      if (this.searchQuery?.length < 3) return;\n\n      this.loading = true;\n\n      try {\n        const response = await axios.get(\n          autocompleteQuery({\n            path: this.autocompletePath,\n            searchTerm: this.searchTerm,\n            handle: this.handle,\n            projectId: this.searchContext.project?.id,\n          }),\n        );\n\n        this.groups = [\n          {\n            name: GROUP_TITLES[this.handle],\n            items: response.data.map(getFormattedItem),\n          },\n        ];\n      } catch (error) {\n        Sentry.captureException(error);\n      } finally {\n        this.loading = false;\n      }\n    },\n    trackingCommands({ text: command }) {\n      if (!this.isCommandMode || !this.searchContext.project?.id) {\n        return;\n      }\n      const isSettings = this.settings.some((setting) => setting.text === command);\n      if (!isSettings) {\n        return;\n      }\n\n      this.trackEvent(EVENT_CLICK_PROJECT_SETTING_IN_COMMAND_PALETTE, {\n        label: command,\n      });\n    },\n  },\n};\n</script>\n\n<template>\n  <div>\n    <gl-loading-icon v-if=\"loading\" size=\"lg\" class=\"gl-my-5\" />\n\n    <ul v-else-if=\"hasResults\" class=\"gl-m-0 gl-list-none gl-p-0\">\n      <gl-disclosure-dropdown-group\n        v-for=\"(group, index) in groups\"\n        :key=\"index\"\n        :group=\"group\"\n        bordered\n        :class=\"{ '!gl-mt-0': index === 0 }\"\n        @action=\"trackingCommands\"\n      >\n        <template #list-item=\"{ item }\">\n          <search-item :item=\"item\" :search-query=\"searchQuery\" />\n        </template>\n      </gl-disclosure-dropdown-group>\n    </ul>\n\n    <div v-else-if=\"hasSearchQuery && !hasResults\" class=\"gl-py-3 gl-pl-5 gl-text-default\">\n      {{ __('No results found') }}\n    </div>\n  </div>\n</template>\n","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!./command_palette_items.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!./command_palette_items.vue?vue&type=script&lang=js\"","export const EVENT_CLICK_ISSUES_ASSIGNED_TO_ME_IN_COMMAND_PALETTE =\n  'click_issues_assigned_to_me_in_command_palette';\nexport const EVENT_CLICK_ISSUES_I_CREATED_IN_COMMAND_PALETTE =\n  'click_issues_i_created_in_command_palette';\nexport const EVENT_CLICK_MERGE_REQUESTS_ASSIGNED_TO_ME_IN_COMMAND_PALETTE =\n  'click_merge_requests_assigned_to_me_in_command_palette';\nexport const EVENT_CLICK_MERGE_REQUESTS_THAT_IM_A_REVIEWER_IN_COMMAND_PALETTE =\n  'click_merge_requests_that_im_a_reviewer_in_command_palette';\nexport const EVENT_CLICK_MERGE_REQUESTS_I_CREATED_IN_COMMAND_PALETTE =\n  'click_merge_requests_i_created_in_command_palette';\nexport const EVENT_CLICK_YOUR_WORK_IN_COMMAND_PALETTE = 'click_your_work_in_command_palette';\nexport const EVENT_CLICK_EXPLORE_IN_COMMAND_PALETTE = 'click_explore_in_command_palette';\nexport const EVENT_CLICK_PROFILE_IN_COMMAND_PALETTE = 'click_profile_in_command_palette';\nexport const EVENT_CLICK_PREFERENCES_IN_COMMAND_PALETTE = 'click_preferences_in_command_palette';\n\nexport const EVENT_CLICK_ALL_GITLAB_SCOPED_SEARCH_TO_ADVANCED_SEARCH =\n  'click_all_gitlab_scoped_search_to_advanced_search';\nexport const EVENT_CLICK_GROUP_SCOPED_SEARCH_TO_ADVANCED_SEARCH =\n  'click_group_scoped_search_to_advanced_search';\nexport const EVENT_CLICK_PROJECT_SCOPED_SEARCH_TO_ADVANCED_SEARCH =\n  'click_project_scoped_search_to_advanced_search';\nexport const EVENT_CLICK_PROJECT_RESULT_IN_COMMAND_PALETTE =\n  'click_project_result_in_command_palette';\nexport const EVENT_CLICK_GROUP_RESULT_IN_COMMAND_PALETTE = 'click_group_result_in_command_palette';\nexport const EVENT_CLICK_MERGE_REQUEST_RESULT_IN_COMMAND_PALETTE =\n  'click_merge_request_result_in_command_palette';\nexport const EVENT_CLICK_ISSUE_RESULT_IN_COMMAND_PALETTE = 'click_issue_result_in_command_palette';\nexport const EVENT_CLICK_RECENT_ISSUE_RESULT_IN_COMMAND_PALETTE =\n  'click_recent_issue_result_in_command_palette';\nexport const EVENT_CLICK_RECENT_EPIC_RESULT_IN_COMMAND_PALETTE =\n  'click_recent_epic_result_in_command_palette';\nexport const EVENT_CLICK_RECENT_MERGE_REQUEST_RESULT_IN_COMMAND_PALETTE =\n  'click_recent_merge_request_result_in_command_palette';\nexport const EVENT_CLICK_USER_RESULT_IN_COMMAND_PALETTE = 'click_user_result_in_command_palette';\nexport const EVENT_CLICK_FREQUENT_PROJECT_IN_COMMAND_PALETTE =\n  'click_frequent_project_in_command_palette';\nexport const EVENT_CLICK_FREQUENT_GROUP_IN_COMMAND_PALETTE =\n  'click_frequent_group_in_command_palette';\nexport const EVENT_CLICK_COMMANDS_SUB_MENU_IN_COMMAND_PALETTE =\n  'click_commands_sub_menu_in_command_palette';\n\nexport const EVENT_CLICK_PROJECT_SETTING_IN_COMMAND_PALETTE =\n  'click_project_setting_in_command_palette';\n","import { render, staticRenderFns } from \"./command_palette_items.vue?vue&type=template&id=84971572\"\nimport script from \"./command_palette_items.vue?vue&type=script&lang=js\"\nexport * from \"./command_palette_items.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('div',[(_vm.loading)?_c('gl-loading-icon',{staticClass:\"gl-my-5\",attrs:{\"size\":\"lg\"}}):(_vm.hasResults)?_c('ul',{staticClass:\"gl-m-0 gl-list-none gl-p-0\"},_vm._l((_vm.groups),function(group,index){return _c('gl-disclosure-dropdown-group',{key:index,class:{ '!gl-mt-0': index === 0 },attrs:{\"group\":group,\"bordered\":\"\"},on:{\"action\":_vm.trackingCommands},scopedSlots:_vm._u([{key:\"list-item\",fn:function({ item }){return [_c('search-item',{attrs:{\"item\":item,\"search-query\":_vm.searchQuery}})]}}],null,true)})}),1):(_vm.hasSearchQuery && !_vm.hasResults)?_c('div',{staticClass:\"gl-py-3 gl-pl-5 gl-text-default\"},[_vm._v(\"\\n    \"+_vm._s(_vm.__('No results found'))+\"\\n  \")]):_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!./fake_search_input.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!./fake_search_input.vue?vue&type=script&lang=js\"","<script>\nimport { COMMON_HANDLES, PATH_HANDLE, SEARCH_SCOPE_PLACEHOLDER } from './constants';\n\nexport default {\n  name: 'FakeSearchInput',\n  props: {\n    userInput: {\n      type: String,\n      required: true,\n    },\n    scope: {\n      type: String,\n      required: true,\n      validator: (value) => [...COMMON_HANDLES, PATH_HANDLE].includes(value),\n    },\n  },\n  computed: {\n    placeholder() {\n      return SEARCH_SCOPE_PLACEHOLDER[this.scope];\n    },\n  },\n};\n</script>\n\n<template>\n  <div class=\"fake-input gl-pointer-events-none gl-flex\">\n    <span class=\"gl-opacity-0\" data-testid=\"search-scope\">{{ scope }}&nbsp;</span>\n    <span\n      v-if=\"!userInput\"\n      data-testid=\"search-scope-placeholder\"\n      class=\"gl-pointer-events-none gl-text-subtle\"\n      >{{ placeholder }}</span\n    >\n  </div>\n</template>\n\n<style scoped>\n.fake-input {\n  position: absolute;\n  top: 14px;\n  left: 39px;\n}\n</style>\n","import api from \"!../../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n            import content from \"!!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--20-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./fake_search_input.vue?vue&type=style&index=0&id=26a01bbc&prod&scoped=true&lang=css\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import { render, staticRenderFns } from \"./fake_search_input.vue?vue&type=template&id=26a01bbc&scoped=true\"\nimport script from \"./fake_search_input.vue?vue&type=script&lang=js\"\nexport * from \"./fake_search_input.vue?vue&type=script&lang=js\"\nimport style0 from \"./fake_search_input.vue?vue&type=style&index=0&id=26a01bbc&prod&scoped=true&lang=css\"\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  \"26a01bbc\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"fake-input gl-pointer-events-none gl-flex\"},[_c('span',{staticClass:\"gl-opacity-0\",attrs:{\"data-testid\":\"search-scope\"}},[_vm._v(_vm._s(_vm.scope)+\" \")]),_vm._v(\" \"),(!_vm.userInput)?_c('span',{staticClass:\"gl-pointer-events-none gl-text-subtle\",attrs:{\"data-testid\":\"search-scope-placeholder\"}},[_vm._v(_vm._s(_vm.placeholder))]):_vm._e()])\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!./command_palette_lottery.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!./command_palette_lottery.vue?vue&type=script&lang=js\"","<script>\n// eslint-disable-next-line no-restricted-syntax\nimport { GlSafeHtmlDirective as SafeHtml, GlSprintf } from '@gitlab/ui';\nimport { random } from 'lodash';\nimport { s__ } from '~/locale';\n\nexport default {\n  name: 'CommandPaletteLottery',\n  components: {\n    GlSprintf,\n  },\n  directives: {\n    SafeHtml,\n  },\n  i18n: [\n    s__('GlobalSearch|Type %{linkStart}@%{linkEnd} to search for users'),\n    s__('GlobalSearch|Type %{linkStart}&gt;%{linkEnd} to search for pages or actions'),\n    s__('GlobalSearch|Type %{linkStart}:%{linkEnd} to search for projects'),\n    s__('GlobalSearch|Type %{linkStart}t%{linkEnd} to search for files'),\n  ],\n  computed: {\n    getTipNum() {\n      const max = this.$options.i18n.length - 1;\n      return random(0, max);\n    },\n  },\n};\n</script>\n\n<template>\n  <span>\n    <gl-sprintf :message=\"$options.i18n[getTipNum]\">\n      <template #link=\"{ content }\">\n        <kbd v-safe-html=\"content\" class=\"vertical-align-normalization gl-py-2 gl-text-base\">{{\n          content\n        }}</kbd>\n      </template>\n    </gl-sprintf>\n  </span>\n</template>\n","import { render, staticRenderFns } from \"./command_palette_lottery.vue?vue&type=template&id=72c1bbe5\"\nimport script from \"./command_palette_lottery.vue?vue&type=script&lang=js\"\nexport * from \"./command_palette_lottery.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('span',[_c('gl-sprintf',{attrs:{\"message\":_vm.$options.i18n[_vm.getTipNum]},scopedSlots:_vm._u([{key:\"link\",fn:function({ content }){return [_c('kbd',{directives:[{name:\"safe-html\",rawName:\"v-safe-html\",value:(content),expression:\"content\"}],staticClass:\"vertical-align-normalization gl-py-2 gl-text-base\"},[_vm._v(_vm._s(content))])]}}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport { GlCollapsibleListbox, GlSprintf } from '@gitlab/ui';\nimport { getModifierKey } from '~/constants';\nimport { InternalEvents } from '~/tracking';\nimport { s__ } from '~/locale';\nimport { EVENT_CLICK_COMMANDS_SUB_MENU_IN_COMMAND_PALETTE } from '~/super_sidebar/components/global_search/tracking_constants';\n\nconst trackingMixin = InternalEvents.mixin();\n\nexport default {\n  name: 'CommandsOverviewDropdown',\n  components: { GlCollapsibleListbox, GlSprintf },\n  mixins: [trackingMixin],\n  i18n: {\n    header: s__(\"GlobalSearch|I'm looking for\"),\n    button: s__('GlobalSearch|Commands %{superKey} %{link2Start}k%{link2End}'),\n  },\n  props: {\n    items: {\n      type: Array,\n      required: true,\n    },\n  },\n  computed: {\n    modKey() {\n      return getModifierKey(true);\n    },\n  },\n  methods: {\n    emitSelected(selected) {\n      this.$emit('selected', selected);\n    },\n    emitHidden() {\n      this.$emit('hidden');\n    },\n    open() {\n      this.$refs.commandsDropdown.open();\n    },\n    close() {\n      this.$refs.commandsDropdown.close();\n    },\n  },\n  EVENT_CLICK_COMMANDS_SUB_MENU_IN_COMMAND_PALETTE,\n};\n</script>\n\n<template>\n  <div>\n    <gl-collapsible-listbox\n      ref=\"commandsDropdown\"\n      :items=\"items\"\n      :header-text=\"$options.i18n.header\"\n      category=\"tertiary\"\n      @select=\"emitSelected\"\n      @shown=\"trackEvent($options.EVENT_CLICK_COMMANDS_SUB_MENU_IN_COMMAND_PALETTE)\"\n      @hidden=\"emitHidden\"\n    >\n      <template #toggle>\n        <button class=\"gl-rounded-base gl-border-0\">\n          <gl-sprintf :message=\"$options.i18n.button\">\n            <template #superKey>\n              <kbd class=\"vertical-align-normalization gl-py-2 gl-text-base\">{{ modKey }}</kbd>\n            </template>\n            <template #link2=\"{ content }\">\n              <kbd class=\"vertical-align-normalization gl-py-2 gl-text-base\">{{ content }}</kbd>\n            </template>\n          </gl-sprintf>\n        </button>\n      </template>\n      <template #header>\n        <span class=\"gl-border-b-1 gl-border-dropdown gl-p-4 gl-border-b-solid\">\n          {{ $options.i18n.header }}\n        </span>\n      </template>\n      <template #list-item=\"{ item }\">\n        <span class=\"gl-flex gl-items-center gl-justify-between\">\n          <span data-testid=\"listbox-item-text\">{{ item.text }}</span>\n          <kbd>{{ item.value }}</kbd>\n        </span>\n      </template>\n    </gl-collapsible-listbox>\n  </div>\n</template>\n","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!./command_overview_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!./command_overview_dropdown.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./command_overview_dropdown.vue?vue&type=template&id=04edb652\"\nimport script from \"./command_overview_dropdown.vue?vue&type=script&lang=js\"\nexport * from \"./command_overview_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('div',[_c('gl-collapsible-listbox',{ref:\"commandsDropdown\",attrs:{\"items\":_vm.items,\"header-text\":_vm.$options.i18n.header,\"category\":\"tertiary\"},on:{\"select\":_vm.emitSelected,\"shown\":function($event){return _vm.trackEvent(_vm.$options.EVENT_CLICK_COMMANDS_SUB_MENU_IN_COMMAND_PALETTE)},\"hidden\":_vm.emitHidden},scopedSlots:_vm._u([{key:\"toggle\",fn:function(){return [_c('button',{staticClass:\"gl-rounded-base gl-border-0\"},[_c('gl-sprintf',{attrs:{\"message\":_vm.$options.i18n.button},scopedSlots:_vm._u([{key:\"superKey\",fn:function(){return [_c('kbd',{staticClass:\"vertical-align-normalization gl-py-2 gl-text-base\"},[_vm._v(_vm._s(_vm.modKey))])]},proxy:true},{key:\"link2\",fn:function({ content }){return [_c('kbd',{staticClass:\"vertical-align-normalization gl-py-2 gl-text-base\"},[_vm._v(_vm._s(content))])]}}])})],1)]},proxy:true},{key:\"header\",fn:function(){return [_c('span',{staticClass:\"gl-border-b-1 gl-border-dropdown gl-p-4 gl-border-b-solid\"},[_vm._v(\"\\n        \"+_vm._s(_vm.$options.i18n.header)+\"\\n      \")])]},proxy:true},{key:\"list-item\",fn:function({ item }){return [_c('span',{staticClass:\"gl-flex gl-items-center gl-justify-between\"},[_c('span',{attrs:{\"data-testid\":\"listbox-item-text\"}},[_vm._v(_vm._s(item.text))]),_vm._v(\" \"),_c('kbd',[_vm._v(_vm._s(item.value))])])]}}])})],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!./global_search_hover_overlay.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!./global_search_hover_overlay.vue?vue&type=script&lang=js\"","<script>\nimport { GlSprintf } from '@gitlab/ui';\n\nexport default {\n  name: 'SearchResultHoverLayover',\n  components: {\n    GlSprintf,\n  },\n  props: {\n    textMessage: {\n      type: String,\n      required: true,\n    },\n  },\n};\n</script>\n\n<template>\n  <span class=\"gl-flex gl-min-w-0 gl-items-center gl-justify-between gl-gap-3\">\n    <span class=\"gl-flex gl-min-w-0 gl-grow gl-gap-3\">\n      <slot></slot>\n    </span>\n    <span\n      class=\"show-hover-layover-hint gl-hidden gl-items-center gl-justify-end gl-opacity-0 sm:gl-flex\"\n    >\n      <span class=\"gl-whitespace-nowrap gl-text-default\" data-testid=\"overlay-message\">\n        <gl-sprintf :message=\"textMessage\">\n          <template #kbd=\"{ content }\">\n            <kbd class=\"vertical-align-normalization gl-pb-3 gl-align-middle gl-text-base\">\n              {{ content }}\n            </kbd>\n          </template>\n        </gl-sprintf>\n      </span>\n    </span>\n  </span>\n</template>\n","import { render, staticRenderFns } from \"./global_search_hover_overlay.vue?vue&type=template&id=e4c94eaa\"\nimport script from \"./global_search_hover_overlay.vue?vue&type=script&lang=js\"\nexport * from \"./global_search_hover_overlay.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('span',{staticClass:\"gl-flex gl-min-w-0 gl-items-center gl-justify-between gl-gap-3\"},[_c('span',{staticClass:\"gl-flex gl-min-w-0 gl-grow gl-gap-3\"},[_vm._t(\"default\")],2),_vm._v(\" \"),_c('span',{staticClass:\"show-hover-layover-hint gl-hidden gl-items-center gl-justify-end gl-opacity-0 sm:gl-flex\"},[_c('span',{staticClass:\"gl-whitespace-nowrap gl-text-default\",attrs:{\"data-testid\":\"overlay-message\"}},[_c('gl-sprintf',{attrs:{\"message\":_vm.textMessage},scopedSlots:_vm._u([{key:\"kbd\",fn:function({ content }){return [_c('kbd',{staticClass:\"vertical-align-normalization gl-pb-3 gl-align-middle gl-text-base\"},[_vm._v(\"\\n            \"+_vm._s(content)+\"\\n          \")])]}}])})],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!./global_search_no_results.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!./global_search_no_results.vue?vue&type=script&lang=js\"","<script>\nimport { NO_SEARCH_RESULTS } from '~/vue_shared/global_search/constants';\n\nexport default {\n  name: 'GlobalSearchNoResults',\n  i18n: {\n    NO_SEARCH_RESULTS,\n  },\n};\n</script>\n\n<template>\n  <ul class=\"gl-m-0 gl-list-none gl-p-0\">\n    <li class=\"command-palette-px gl-border-t gl-border-t-dropdown gl-py-5 gl-text-default\">\n      {{ $options.i18n.NO_SEARCH_RESULTS }}\n    </li>\n  </ul>\n</template>\n","import { render, staticRenderFns } from \"./global_search_no_results.vue?vue&type=template&id=4b60a457\"\nimport script from \"./global_search_no_results.vue?vue&type=script&lang=js\"\nexport * from \"./global_search_no_results.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('ul',{staticClass:\"gl-m-0 gl-list-none gl-p-0\"},[_c('li',{staticClass:\"command-palette-px gl-border-t gl-border-t-dropdown gl-py-5 gl-text-default\"},[_vm._v(\"\\n    \"+_vm._s(_vm.$options.i18n.NO_SEARCH_RESULTS)+\"\\n  \")])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport { GlAvatar, GlAlert, GlLoadingIcon, GlDisclosureDropdownGroup } from '@gitlab/ui';\n// eslint-disable-next-line no-restricted-imports\nimport { mapState, mapGetters } from 'vuex';\nimport { s__ } from '~/locale';\nimport { InternalEvents } from '~/tracking';\nimport SafeHtml from '~/vue_shared/directives/safe_html';\nimport highlight from '~/lib/utils/highlight';\nimport { AVATAR_SHAPE_OPTION_RECT } from '~/vue_shared/constants';\nimport {\n  AUTOCOMPLETE_ERROR_MESSAGE,\n  NO_SEARCH_RESULTS,\n} from '~/vue_shared/global_search/constants';\nimport {\n  EVENT_CLICK_PROJECT_RESULT_IN_COMMAND_PALETTE,\n  EVENT_CLICK_GROUP_RESULT_IN_COMMAND_PALETTE,\n  EVENT_CLICK_MERGE_REQUEST_RESULT_IN_COMMAND_PALETTE,\n  EVENT_CLICK_ISSUE_RESULT_IN_COMMAND_PALETTE,\n  EVENT_CLICK_RECENT_ISSUE_RESULT_IN_COMMAND_PALETTE,\n  EVENT_CLICK_RECENT_EPIC_RESULT_IN_COMMAND_PALETTE,\n  EVENT_CLICK_RECENT_MERGE_REQUEST_RESULT_IN_COMMAND_PALETTE,\n  EVENT_CLICK_USER_RESULT_IN_COMMAND_PALETTE,\n} from '~/super_sidebar/components/global_search/tracking_constants';\nimport {\n  OVERLAY_GOTO,\n  OVERLAY_PROFILE,\n  OVERLAY_PROJECT,\n  OVERLAY_FILE,\n  USERS_GROUP_TITLE,\n  PROJECTS_GROUP_TITLE,\n  ISSUES_GROUP_TITLE,\n  PAGES_GROUP_TITLE,\n  GROUPS_GROUP_TITLE,\n} from '../command_palette/constants';\nimport SearchResultHoverLayover from './global_search_hover_overlay.vue';\nimport GlobalSearchNoResults from './global_search_no_results.vue';\n\nconst trackingMixin = InternalEvents.mixin();\n\nexport default {\n  name: 'GlobalSearchAutocompleteItems',\n  i18n: {\n    AUTOCOMPLETE_ERROR_MESSAGE,\n    NO_SEARCH_RESULTS,\n    OVERLAY_GOTO,\n    OVERLAY_PROFILE,\n    OVERLAY_PROJECT,\n    OVERLAY_FILE,\n    USERS_GROUP_TITLE,\n    PROJECTS_GROUP_TITLE,\n    ISSUES_GROUP_TITLE,\n    PAGES_GROUP_TITLE,\n    GROUPS_GROUP_TITLE,\n    MERGE_REQUESTS_GROUP_TITLE: s__('GlobalSearch|Merge requests'),\n    RECENT_ISSUES_GROUP_TITLE: s__('GlobalSearch|Recent issues'),\n    RECENT_EPICS_GROUP_TITLE: s__('GlobalSearch|Recent epics'),\n    RECENT_MERGE_REQUESTS_GROUP_TITLE: s__('GlobalSearch|Recent merge requests'),\n  },\n  components: {\n    GlAvatar,\n    GlAlert,\n    GlLoadingIcon,\n    GlDisclosureDropdownGroup,\n    SearchResultHoverLayover,\n    GlobalSearchNoResults,\n  },\n  directives: {\n    SafeHtml,\n  },\n  mixins: [trackingMixin],\n  computed: {\n    ...mapState(['search', 'loading', 'autocompleteError']),\n    ...mapGetters(['autocompleteGroupedSearchOptions', 'scopedSearchOptions']),\n    groups() {\n      return this.autocompleteGroupedSearchOptions.map((group) => {\n        return {\n          name: group?.name,\n          items: group?.items?.map((item) => {\n            return {\n              ...item,\n              extraAttrs: {\n                class: 'show-hover-layover gl-flex gl-items-center gl-justify-between',\n              },\n            };\n          }),\n        };\n      });\n    },\n    hasResults() {\n      return this.autocompleteGroupedSearchOptions?.length > 0;\n    },\n    hasNoResults() {\n      return !this.hasResults && !this.autocompleteError;\n    },\n  },\n  methods: {\n    highlightedName(val) {\n      return highlight(val, this.search);\n    },\n    overlayText(group) {\n      let text = OVERLAY_GOTO;\n\n      switch (group) {\n        case this.$options.i18n.USERS_GROUP_TITLE:\n          text = this.$options.i18n.OVERLAY_PROFILE;\n          break;\n        case this.$options.i18n.PROJECTS_GROUP_TITLE:\n          text = this.$options.i18n.OVERLAY_PROJECT;\n          break;\n        case this.$options.i18n.ISSUES_GROUP_TITLE:\n          text = this.$options.i18n.OVERLAY_GOTO;\n          break;\n        case this.$options.i18n.PAGES_GROUP_TITLE:\n          text = this.$options.i18n.OVERLAY_FILE;\n          break;\n        default:\n      }\n      return text;\n    },\n    trackingTypes({ name }) {\n      switch (name) {\n        case this.$options.i18n.PROJECTS_GROUP_TITLE: {\n          this.trackEvent(EVENT_CLICK_PROJECT_RESULT_IN_COMMAND_PALETTE);\n          break;\n        }\n        case this.$options.i18n.GROUPS_GROUP_TITLE: {\n          this.trackEvent(EVENT_CLICK_GROUP_RESULT_IN_COMMAND_PALETTE);\n          break;\n        }\n        case this.$options.i18n.MERGE_REQUESTS_GROUP_TITLE: {\n          this.trackEvent(EVENT_CLICK_MERGE_REQUEST_RESULT_IN_COMMAND_PALETTE);\n          break;\n        }\n        case this.$options.i18n.ISSUES_GROUP_TITLE: {\n          this.trackEvent(EVENT_CLICK_ISSUE_RESULT_IN_COMMAND_PALETTE);\n          break;\n        }\n        case this.$options.i18n.RECENT_ISSUES_GROUP_TITLE: {\n          this.trackEvent(EVENT_CLICK_RECENT_ISSUE_RESULT_IN_COMMAND_PALETTE);\n          break;\n        }\n        case this.$options.i18n.RECENT_EPICS_GROUP_TITLE: {\n          this.trackEvent(EVENT_CLICK_RECENT_EPIC_RESULT_IN_COMMAND_PALETTE);\n          break;\n        }\n        case this.$options.i18n.RECENT_MERGE_REQUESTS_GROUP_TITLE: {\n          this.trackEvent(EVENT_CLICK_RECENT_MERGE_REQUEST_RESULT_IN_COMMAND_PALETTE);\n          break;\n        }\n\n        default: {\n          this.trackEvent(EVENT_CLICK_USER_RESULT_IN_COMMAND_PALETTE);\n        }\n      }\n    },\n  },\n  AVATAR_SHAPE_OPTION_RECT,\n};\n</script>\n\n<template>\n  <div>\n    <gl-alert\n      v-if=\"autocompleteError\"\n      class=\"gl-mt-2 gl-text-default\"\n      :dismissible=\"false\"\n      variant=\"danger\"\n    >\n      {{ $options.i18n.AUTOCOMPLETE_ERROR_MESSAGE }}\n    </gl-alert>\n\n    <ul v-if=\"!loading && hasResults\" class=\"gl-m-0 gl-list-none gl-p-0\">\n      <gl-disclosure-dropdown-group\n        v-for=\"(group, index) in groups\"\n        :key=\"group.name\"\n        :class=\"{ '!gl-mt-0': index === 0 }\"\n        :group=\"group\"\n        bordered\n        @action=\"trackingTypes\"\n      >\n        <template #list-item=\"{ item }\">\n          <search-result-hover-layover :text-message=\"overlayText(group.name)\">\n            <gl-avatar\n              v-if=\"item.avatar_url !== undefined\"\n              :src=\"item.avatar_url\"\n              :entity-id=\"item.entity_id\"\n              :entity-name=\"item.entity_name\"\n              :size=\"item.avatar_size\"\n              :shape=\"$options.AVATAR_SHAPE_OPTION_RECT\"\n              aria-hidden=\"true\"\n            />\n            <span class=\"gl-flex gl-min-w-0 gl-grow gl-flex-col\">\n              <span\n                v-safe-html=\"highlightedName(item.text)\"\n                class=\"gl-truncate gl-text-strong\"\n                data-testid=\"autocomplete-item-name\"\n              ></span>\n              <span\n                v-if=\"item.value\"\n                v-safe-html=\"item.namespace\"\n                class=\"gl-truncate gl-text-sm gl-text-subtle\"\n                data-testid=\"autocomplete-item-namespace\"\n              ></span>\n            </span>\n          </search-result-hover-layover>\n        </template>\n      </gl-disclosure-dropdown-group>\n    </ul>\n\n    <gl-loading-icon v-if=\"loading\" size=\"lg\" class=\"gl-my-6\" />\n\n    <global-search-no-results v-if=\"hasNoResults\" />\n  </div>\n</template>\n","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!./global_search_autocomplete_items.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!./global_search_autocomplete_items.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./global_search_autocomplete_items.vue?vue&type=template&id=e84111d0\"\nimport script from \"./global_search_autocomplete_items.vue?vue&type=script&lang=js\"\nexport * from \"./global_search_autocomplete_items.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('div',[(_vm.autocompleteError)?_c('gl-alert',{staticClass:\"gl-mt-2 gl-text-default\",attrs:{\"dismissible\":false,\"variant\":\"danger\"}},[_vm._v(\"\\n    \"+_vm._s(_vm.$options.i18n.AUTOCOMPLETE_ERROR_MESSAGE)+\"\\n  \")]):_vm._e(),_vm._v(\" \"),(!_vm.loading && _vm.hasResults)?_c('ul',{staticClass:\"gl-m-0 gl-list-none gl-p-0\"},_vm._l((_vm.groups),function(group,index){return _c('gl-disclosure-dropdown-group',{key:group.name,class:{ '!gl-mt-0': index === 0 },attrs:{\"group\":group,\"bordered\":\"\"},on:{\"action\":_vm.trackingTypes},scopedSlots:_vm._u([{key:\"list-item\",fn:function({ item }){return [_c('search-result-hover-layover',{attrs:{\"text-message\":_vm.overlayText(group.name)}},[(item.avatar_url !== undefined)?_c('gl-avatar',{attrs:{\"src\":item.avatar_url,\"entity-id\":item.entity_id,\"entity-name\":item.entity_name,\"size\":item.avatar_size,\"shape\":_vm.$options.AVATAR_SHAPE_OPTION_RECT,\"aria-hidden\":\"true\"}}):_vm._e(),_vm._v(\" \"),_c('span',{staticClass:\"gl-flex gl-min-w-0 gl-grow gl-flex-col\"},[_c('span',{directives:[{name:\"safe-html\",rawName:\"v-safe-html\",value:(_vm.highlightedName(item.text)),expression:\"highlightedName(item.text)\"}],staticClass:\"gl-truncate gl-text-strong\",attrs:{\"data-testid\":\"autocomplete-item-name\"}}),_vm._v(\" \"),(item.value)?_c('span',{directives:[{name:\"safe-html\",rawName:\"v-safe-html\",value:(item.namespace),expression:\"item.namespace\"}],staticClass:\"gl-truncate gl-text-sm gl-text-subtle\",attrs:{\"data-testid\":\"autocomplete-item-namespace\"}}):_vm._e()])],1)]}}],null,true)})}),1):_vm._e(),_vm._v(\" \"),(_vm.loading)?_c('gl-loading-icon',{staticClass:\"gl-my-6\",attrs:{\"size\":\"lg\"}}):_vm._e(),_vm._v(\" \"),(_vm.hasNoResults)?_c('global-search-no-results'):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport { GlDisclosureDropdownGroup } from '@gitlab/ui';\nimport { kebabCase } from 'lodash';\nimport { s__ } from '~/locale';\nimport { InternalEvents } from '~/tracking';\nimport { PLACES } from '~/vue_shared/global_search/constants';\nimport { TRACKING_UNKNOWN_ID, TRACKING_UNKNOWN_PANEL } from '~/super_sidebar/constants';\nimport {\n  EVENT_CLICK_YOUR_WORK_IN_COMMAND_PALETTE,\n  EVENT_CLICK_EXPLORE_IN_COMMAND_PALETTE,\n  EVENT_CLICK_PROFILE_IN_COMMAND_PALETTE,\n  EVENT_CLICK_PREFERENCES_IN_COMMAND_PALETTE,\n} from '~/super_sidebar/components/global_search/tracking_constants';\nimport {\n  TRACKING_CLICK_COMMAND_PALETTE_ITEM,\n  OVERLAY_CHANGE_CONTEXT,\n} from '../command_palette/constants';\nimport SearchResultHoverLayover from './global_search_hover_overlay.vue';\n\nconst trackingMixin = InternalEvents.mixin();\n\nexport default {\n  name: 'DefaultPlaces',\n  i18n: {\n    PLACES,\n    OVERLAY_CHANGE_CONTEXT,\n    YOUR_WORK_TITLE: s__('GlobalSearch|Your work'),\n    EXPLORE_TITLE: s__('GlobalSearch|Explore'),\n    PROFILE_TITLE: s__('GlobalSearch|Profile'),\n    PREFERENCES_TITLE: s__('GlobalSearch|Preferences'),\n  },\n  components: {\n    GlDisclosureDropdownGroup,\n    SearchResultHoverLayover,\n  },\n  mixins: [trackingMixin],\n  inject: ['contextSwitcherLinks'],\n  computed: {\n    shouldRender() {\n      return this.contextSwitcherLinks.length > 0;\n    },\n    group() {\n      return {\n        name: this.$options.i18n.PLACES,\n        items: this.contextSwitcherLinks.map(({ title, link, ...rest }) => ({\n          text: title,\n          href: link,\n          extraAttrs: {\n            'data-track-action': TRACKING_CLICK_COMMAND_PALETTE_ITEM,\n            // The label and property are hard-coded as unknown for now for\n            // parity with the existing corresponding context switcher items.\n            // Once the context switcher is removed, these can be changed.\n            'data-track-label': TRACKING_UNKNOWN_ID,\n            'data-track-property': TRACKING_UNKNOWN_PANEL,\n            'data-track-extra': JSON.stringify({ title }),\n\n            // QA attributes\n            'data-testid': 'places-item-link',\n            'data-qa-places-item': title,\n\n            // this is helper class for popover-hint\n            class: 'show-hover-layover',\n\n            // Any other data- attributes (e.g., for @rails/ujs)\n            ...Object.entries(rest).reduce((acc, [name, value]) => {\n              if (name.startsWith('data')) acc[kebabCase(name)] = value;\n              return acc;\n            }, {}),\n          },\n        })),\n      };\n    },\n  },\n  created() {\n    if (!this.shouldRender) {\n      this.$emit('nothing-to-render');\n    }\n  },\n  methods: {\n    trackingTypes({ text }) {\n      switch (text) {\n        case this.$options.i18n.YOUR_WORK_TITLE: {\n          this.trackEvent(EVENT_CLICK_YOUR_WORK_IN_COMMAND_PALETTE);\n          break;\n        }\n        case this.$options.i18n.EXPLORE_TITLE: {\n          this.trackEvent(EVENT_CLICK_EXPLORE_IN_COMMAND_PALETTE);\n          break;\n        }\n        case this.$options.i18n.PROFILE_TITLE: {\n          this.trackEvent(EVENT_CLICK_PROFILE_IN_COMMAND_PALETTE);\n          break;\n        }\n        case this.$options.i18n.PREFERENCES_TITLE: {\n          this.trackEvent(EVENT_CLICK_PREFERENCES_IN_COMMAND_PALETTE);\n          break;\n        }\n\n        default: {\n          /* empty */\n        }\n      }\n    },\n  },\n};\n</script>\n\n<template>\n  <gl-disclosure-dropdown-group\n    v-if=\"shouldRender\"\n    v-bind=\"$attrs\"\n    :group=\"group\"\n    @action=\"trackingTypes\"\n  >\n    <template #list-item=\"{ item }\">\n      <search-result-hover-layover :text-message=\"$options.i18n.OVERLAY_CHANGE_CONTEXT\">\n        <span>{{ item.text }}</span>\n      </search-result-hover-layover>\n    </template>\n  </gl-disclosure-dropdown-group>\n</template>\n","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!./global_search_default_places.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!./global_search_default_places.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./global_search_default_places.vue?vue&type=template&id=59de740a\"\nimport script from \"./global_search_default_places.vue?vue&type=script&lang=js\"\nexport * from \"./global_search_default_places.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 (_vm.shouldRender)?_c('gl-disclosure-dropdown-group',_vm._b({attrs:{\"group\":_vm.group},on:{\"action\":_vm.trackingTypes},scopedSlots:_vm._u([{key:\"list-item\",fn:function({ item }){return [_c('search-result-hover-layover',{attrs:{\"text-message\":_vm.$options.i18n.OVERLAY_CHANGE_CONTEXT}},[_c('span',[_vm._v(_vm._s(item.text))])])]}}],null,false,3096787143)},'gl-disclosure-dropdown-group',_vm.$attrs,false)):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport { GlDisclosureDropdownGroup } from '@gitlab/ui';\n// eslint-disable-next-line no-restricted-imports\nimport { mapState, mapGetters } from 'vuex';\nimport { s__ } from '~/locale';\nimport { InternalEvents } from '~/tracking';\nimport { ALL_GITLAB } from '~/vue_shared/global_search/constants';\nimport {\n  EVENT_CLICK_ISSUES_ASSIGNED_TO_ME_IN_COMMAND_PALETTE,\n  EVENT_CLICK_ISSUES_I_CREATED_IN_COMMAND_PALETTE,\n  EVENT_CLICK_MERGE_REQUESTS_ASSIGNED_TO_ME_IN_COMMAND_PALETTE,\n  EVENT_CLICK_MERGE_REQUESTS_THAT_IM_A_REVIEWER_IN_COMMAND_PALETTE,\n  EVENT_CLICK_MERGE_REQUESTS_I_CREATED_IN_COMMAND_PALETTE,\n} from '~/super_sidebar/components/global_search/tracking_constants';\nimport { OVERLAY_GOTO } from '~/super_sidebar/components/global_search/command_palette/constants';\nimport SearchResultHoverLayover from './global_search_hover_overlay.vue';\n\nconst trackingMixin = InternalEvents.mixin();\n\nexport default {\n  name: 'DefaultIssuables',\n  i18n: {\n    ALL_GITLAB,\n    OVERLAY_GOTO,\n    ISSUES_ASSIGNED_TO_ME_TITLE: s__('GlobalSearch|Issues assigned to me'),\n    ISSUES_I_HAVE_CREATED_TITLE: s__(\"GlobalSearch|Issues I've created\"),\n    MERGE_REQUESTS_THAT_I_AM_A_REVIEWER: s__(\"GlobalSearch|Merge requests that I'm a reviewer\"),\n    MERGE_REQUESTS_I_HAVE_CREATED_TITLE: s__(\"GlobalSearch|Merge requests I've created\"),\n    MERGE_REQUESTS_ASSIGNED_TO_ME_TITLE: s__('GlobalSearch|Merge requests assigned to me'),\n  },\n  components: {\n    GlDisclosureDropdownGroup,\n    SearchResultHoverLayover,\n  },\n  mixins: [trackingMixin],\n  computed: {\n    ...mapState(['searchContext']),\n    ...mapGetters(['defaultSearchOptions']),\n    currentContextName() {\n      return (\n        this.searchContext?.project?.name ||\n        this.searchContext?.group?.name ||\n        this.$options.i18n.ALL_GITLAB\n      );\n    },\n    shouldRender() {\n      return this.group.items.length > 0;\n    },\n    group() {\n      return {\n        name: this.currentContextName,\n        items: this.defaultSearchOptions?.map((item) => ({\n          ...item,\n          extraAttrs: {\n            class: 'show-hover-layover',\n          },\n        })),\n      };\n    },\n  },\n  created() {\n    if (!this.shouldRender) {\n      this.$emit('nothing-to-render');\n    }\n  },\n  methods: {\n    trackingTypes({ text }) {\n      switch (text) {\n        case this.$options.i18n.ISSUES_ASSIGNED_TO_ME_TITLE: {\n          this.trackEvent(EVENT_CLICK_ISSUES_ASSIGNED_TO_ME_IN_COMMAND_PALETTE);\n          break;\n        }\n        case this.$options.i18n.ISSUES_I_HAVE_CREATED_TITLE: {\n          this.trackEvent(EVENT_CLICK_ISSUES_I_CREATED_IN_COMMAND_PALETTE);\n          break;\n        }\n        case this.$options.i18n.MERGE_REQUESTS_ASSIGNED_TO_ME_TITLE: {\n          this.trackEvent(EVENT_CLICK_MERGE_REQUESTS_ASSIGNED_TO_ME_IN_COMMAND_PALETTE);\n          break;\n        }\n        case this.$options.i18n.MERGE_REQUESTS_THAT_I_AM_A_REVIEWER: {\n          this.trackEvent(EVENT_CLICK_MERGE_REQUESTS_THAT_IM_A_REVIEWER_IN_COMMAND_PALETTE);\n          break;\n        }\n        case this.$options.i18n.MERGE_REQUESTS_I_HAVE_CREATED_TITLE: {\n          this.trackEvent(EVENT_CLICK_MERGE_REQUESTS_I_CREATED_IN_COMMAND_PALETTE);\n          break;\n        }\n\n        default: {\n          break;\n        }\n      }\n    },\n  },\n};\n</script>\n\n<template>\n  <gl-disclosure-dropdown-group\n    v-if=\"shouldRender\"\n    v-bind=\"$attrs\"\n    :group=\"group\"\n    @action=\"trackingTypes\"\n  >\n    <template #list-item=\"{ item }\">\n      <search-result-hover-layover :text-message=\"$options.i18n.OVERLAY_GOTO\">\n        <span>{{ item.text }}</span>\n      </search-result-hover-layover>\n    </template>\n  </gl-disclosure-dropdown-group>\n</template>\n","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!./global_search_default_issuables.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!./global_search_default_issuables.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./global_search_default_issuables.vue?vue&type=template&id=1a9971fe\"\nimport script from \"./global_search_default_issuables.vue?vue&type=script&lang=js\"\nexport * from \"./global_search_default_issuables.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 (_vm.shouldRender)?_c('gl-disclosure-dropdown-group',_vm._b({attrs:{\"group\":_vm.group},on:{\"action\":_vm.trackingTypes},scopedSlots:_vm._u([{key:\"list-item\",fn:function({ item }){return [_c('search-result-hover-layover',{attrs:{\"text-message\":_vm.$options.i18n.OVERLAY_GOTO}},[_c('span',[_vm._v(_vm._s(item.text))])])]}}],null,false,2103025810)},'gl-disclosure-dropdown-group',_vm.$attrs,false)):_vm._e()\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!./frequent_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!./frequent_item.vue?vue&type=script&lang=js\"","<script>\nimport ProjectAvatar from '~/vue_shared/components/project_avatar.vue';\nimport { OVERLAY_GOTO } from '../command_palette/constants';\nimport SearchResultHoverLayover from './global_search_hover_overlay.vue';\n\nexport default {\n  name: 'FrequentlyVisitedItem',\n  i18n: {\n    OVERLAY_GOTO,\n  },\n  components: {\n    ProjectAvatar,\n    SearchResultHoverLayover,\n  },\n  props: {\n    item: {\n      type: Object,\n      required: true,\n    },\n  },\n};\n</script>\n\n<template>\n  <search-result-hover-layover :text-message=\"$options.i18n.OVERLAY_GOTO\">\n    <project-avatar\n      :project-id=\"item.id\"\n      :project-name=\"item.title\"\n      :project-avatar-url=\"item.avatar\"\n      :size=\"32\"\n      aria-hidden=\"true\"\n    />\n\n    <div class=\"gl-grow gl-truncate\">\n      {{ item.title }}\n      <div\n        v-if=\"item.subtitle\"\n        data-testid=\"subtitle\"\n        class=\"gl-truncate gl-text-sm gl-text-subtle\"\n      >\n        {{ item.subtitle }}\n      </div>\n    </div>\n  </search-result-hover-layover>\n</template>\n","import { render, staticRenderFns } from \"./frequent_item.vue?vue&type=template&id=965df1bc\"\nimport script from \"./frequent_item.vue?vue&type=script&lang=js\"\nexport * from \"./frequent_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('search-result-hover-layover',{attrs:{\"text-message\":_vm.$options.i18n.OVERLAY_GOTO}},[_c('project-avatar',{attrs:{\"project-id\":_vm.item.id,\"project-name\":_vm.item.title,\"project-avatar-url\":_vm.item.avatar,\"size\":32,\"aria-hidden\":\"true\"}}),_vm._v(\" \"),_c('div',{staticClass:\"gl-grow gl-truncate\"},[_vm._v(\"\\n    \"+_vm._s(_vm.item.title)+\"\\n    \"),(_vm.item.subtitle)?_c('div',{staticClass:\"gl-truncate gl-text-sm gl-text-subtle\",attrs:{\"data-testid\":\"subtitle\"}},[_vm._v(\"\\n      \"+_vm._s(_vm.item.subtitle)+\"\\n    \")]):_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!./frequent_item_skeleton.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!./frequent_item_skeleton.vue?vue&type=script&lang=js\"","<script>\nimport { GlSkeletonLoader } from '@gitlab/ui';\n\nexport default {\n  components: {\n    GlSkeletonLoader,\n  },\n};\n</script>\n\n<template>\n  <gl-skeleton-loader :width=\"737\" :height=\"48\">\n    <rect width=\"24\" height=\"24\" y=\"12\" x=\"8\" />\n    <rect width=\"120\" height=\"12\" y=\"10\" x=\"36\" />\n    <rect width=\"100\" height=\"12\" y=\"26\" x=\"36\" />\n  </gl-skeleton-loader>\n</template>\n","import { render, staticRenderFns } from \"./frequent_item_skeleton.vue?vue&type=template&id=795aff18\"\nimport script from \"./frequent_item_skeleton.vue?vue&type=script&lang=js\"\nexport * from \"./frequent_item_skeleton.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-skeleton-loader',{attrs:{\"width\":737,\"height\":48}},[_c('rect',{attrs:{\"width\":\"24\",\"height\":\"24\",\"y\":\"12\",\"x\":\"8\"}}),_vm._v(\" \"),_c('rect',{attrs:{\"width\":\"120\",\"height\":\"12\",\"y\":\"10\",\"x\":\"36\"}}),_vm._v(\" \"),_c('rect',{attrs:{\"width\":\"100\",\"height\":\"12\",\"y\":\"26\",\"x\":\"36\"}})])\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!./frequent_items.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!./frequent_items.vue?vue&type=script&lang=js\"","<script>\nimport { GlDisclosureDropdownGroup, GlDisclosureDropdownItem, GlIcon } from '@gitlab/ui';\nimport { truncateNamespace } from '~/lib/utils/text_utility';\nimport { joinPaths } from '~/lib/utils/url_utility';\nimport { TRACKING_UNKNOWN_PANEL } from '~/super_sidebar/constants';\nimport { TRACKING_CLICK_COMMAND_PALETTE_ITEM, OVERLAY_GOTO } from '../command_palette/constants';\nimport FrequentItem from './frequent_item.vue';\nimport FrequentItemSkeleton from './frequent_item_skeleton.vue';\nimport SearchResultHoverLayover from './global_search_hover_overlay.vue';\n\nexport default {\n  name: 'FrequentlyVisitedItems',\n  i18n: {\n    OVERLAY_GOTO,\n  },\n  components: {\n    GlDisclosureDropdownGroup,\n    GlDisclosureDropdownItem,\n    GlIcon,\n    FrequentItem,\n    FrequentItemSkeleton,\n    SearchResultHoverLayover,\n  },\n  props: {\n    loading: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    emptyStateText: {\n      type: String,\n      required: true,\n    },\n    groupName: {\n      type: String,\n      required: true,\n    },\n    viewAllItemsText: {\n      type: String,\n      required: true,\n    },\n    viewAllItemsIcon: {\n      type: String,\n      required: true,\n    },\n    viewAllItemsPath: {\n      type: String,\n      required: false,\n      default: null,\n    },\n    items: {\n      type: Array,\n      required: false,\n      default: () => [],\n    },\n  },\n  computed: {\n    formattedItems() {\n      // Each item needs two different representations. One is for the\n      // GlDisclosureDropdownItem, and the other is for the FrequentItem\n      // renderer component inside it.\n      return this.items.map((item) => ({\n        forDropdown: {\n          id: item.id,\n\n          // The text field satsifies GlDisclosureDropdownItem's prop\n          // validator, and the href field ensures it renders a link.\n          text: item.name,\n          href: joinPaths(gon.relative_url_root || '/', item.fullPath),\n          extraAttrs: {\n            'data-track-action': TRACKING_CLICK_COMMAND_PALETTE_ITEM,\n            'data-track-label': item.id,\n            'data-track-property': TRACKING_UNKNOWN_PANEL,\n            'data-track-extra': JSON.stringify({ title: item.name }),\n          },\n        },\n        forRenderer: {\n          id: item.id,\n          title: item.name,\n          subtitle: truncateNamespace(item.namespace),\n          avatar: item.avatarUrl,\n        },\n      }));\n    },\n    showEmptyState() {\n      return !this.loading && this.formattedItems.length === 0;\n    },\n    viewAllItem() {\n      return {\n        text: this.viewAllItemsText,\n        href: this.viewAllItemsPath,\n      };\n    },\n  },\n};\n</script>\n\n<template>\n  <gl-disclosure-dropdown-group v-bind=\"$attrs\">\n    <template #group-label>{{ groupName }}</template>\n\n    <gl-disclosure-dropdown-item v-if=\"loading\">\n      <frequent-item-skeleton />\n    </gl-disclosure-dropdown-item>\n    <template v-else>\n      <gl-disclosure-dropdown-item\n        v-for=\"item of formattedItems\"\n        :key=\"item.forDropdown.id\"\n        :item=\"item.forDropdown\"\n        class=\"show-on-focus-or-hover--context show-hover-layover\"\n        @action=\"$emit('action')\"\n      >\n        <template #list-item><frequent-item :item=\"item.forRenderer\" /></template>\n      </gl-disclosure-dropdown-item>\n    </template>\n\n    <gl-disclosure-dropdown-item v-if=\"showEmptyState\" class=\"gl-cursor-text\">\n      <span class=\"gl-mx-3 gl-my-3 gl-text-sm gl-text-subtle\">{{ emptyStateText }}</span>\n    </gl-disclosure-dropdown-item>\n\n    <gl-disclosure-dropdown-item key=\"all\" :item=\"viewAllItem\" class=\"show-hover-layover\">\n      <template #list-item>\n        <search-result-hover-layover :text-message=\"$options.i18n.OVERLAY_GOTO\">\n          <gl-icon :name=\"viewAllItemsIcon\" class=\"!gl-w-6\" />\n          {{ viewAllItemsText }}\n        </search-result-hover-layover>\n      </template>\n    </gl-disclosure-dropdown-item>\n  </gl-disclosure-dropdown-group>\n</template>\n","import { render, staticRenderFns } from \"./frequent_items.vue?vue&type=template&id=7217cb34\"\nimport script from \"./frequent_items.vue?vue&type=script&lang=js\"\nexport * from \"./frequent_items.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-group',_vm._b({scopedSlots:_vm._u([{key:\"group-label\",fn:function(){return [_vm._v(_vm._s(_vm.groupName))]},proxy:true}])},'gl-disclosure-dropdown-group',_vm.$attrs,false),[_vm._v(\" \"),(_vm.loading)?_c('gl-disclosure-dropdown-item',[_c('frequent-item-skeleton')],1):_vm._l((_vm.formattedItems),function(item){return _c('gl-disclosure-dropdown-item',{key:item.forDropdown.id,staticClass:\"show-on-focus-or-hover--context show-hover-layover\",attrs:{\"item\":item.forDropdown},on:{\"action\":function($event){return _vm.$emit('action')}},scopedSlots:_vm._u([{key:\"list-item\",fn:function(){return [_c('frequent-item',{attrs:{\"item\":item.forRenderer}})]},proxy:true}],null,true)})}),_vm._v(\" \"),(_vm.showEmptyState)?_c('gl-disclosure-dropdown-item',{staticClass:\"gl-cursor-text\"},[_c('span',{staticClass:\"gl-mx-3 gl-my-3 gl-text-sm gl-text-subtle\"},[_vm._v(_vm._s(_vm.emptyStateText))])]):_vm._e(),_vm._v(\" \"),_c('gl-disclosure-dropdown-item',{key:\"all\",staticClass:\"show-hover-layover\",attrs:{\"item\":_vm.viewAllItem},scopedSlots:_vm._u([{key:\"list-item\",fn:function(){return [_c('search-result-hover-layover',{attrs:{\"text-message\":_vm.$options.i18n.OVERLAY_GOTO}},[_c('gl-icon',{staticClass:\"!gl-w-6\",attrs:{\"name\":_vm.viewAllItemsIcon}}),_vm._v(\"\\n        \"+_vm._s(_vm.viewAllItemsText)+\"\\n      \")],1)]},proxy:true}])})],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!./frequent_groups.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!./frequent_groups.vue?vue&type=script&lang=js\"","<script>\nimport { s__ } from '~/locale';\nimport currentUserFrecentGroupsQuery from '~/super_sidebar/graphql/queries/current_user_frecent_groups.query.graphql';\nimport { FREQUENTLY_VISITED_GROUPS_HANDLE } from '~/super_sidebar/components/global_search/command_palette/constants';\nimport FrequentItems from './frequent_items.vue';\n\nexport default {\n  name: 'FrequentlyVisitedGroups',\n  components: {\n    FrequentItems,\n  },\n  inject: ['groupsPath'],\n  apollo: {\n    // eslint-disable-next-line @gitlab/vue-no-undef-apollo-properties\n    frecentGroups: {\n      query: currentUserFrecentGroupsQuery,\n    },\n  },\n  i18n: {\n    groupName: s__('Navigation|Frequently visited groups'),\n    viewAllText: s__('Navigation|View all my groups'),\n    emptyStateText: s__('Navigation|Groups you visit often will appear here.'),\n  },\n  computed: {\n    items() {\n      return this.frecentGroups || [];\n    },\n  },\n  FREQUENTLY_VISITED_GROUPS_HANDLE,\n};\n</script>\n\n<template>\n  <frequent-items\n    :loading=\"$apollo.queries.frecentGroups.loading\"\n    :empty-state-text=\"$options.i18n.emptyStateText\"\n    :group-name=\"$options.i18n.groupName\"\n    :items=\"items\"\n    view-all-items-icon=\"group\"\n    :view-all-items-text=\"$options.i18n.viewAllText\"\n    :view-all-items-path=\"groupsPath\"\n    v-bind=\"$attrs\"\n    v-on=\"$listeners\"\n    @action=\"$emit('action', $options.FREQUENTLY_VISITED_GROUPS_HANDLE)\"\n  />\n</template>\n","import { render, staticRenderFns } from \"./frequent_groups.vue?vue&type=template&id=127d3f8b\"\nimport script from \"./frequent_groups.vue?vue&type=script&lang=js\"\nexport * from \"./frequent_groups.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('frequent-items',_vm._g(_vm._b({attrs:{\"loading\":_vm.$apollo.queries.frecentGroups.loading,\"empty-state-text\":_vm.$options.i18n.emptyStateText,\"group-name\":_vm.$options.i18n.groupName,\"items\":_vm.items,\"view-all-items-icon\":\"group\",\"view-all-items-text\":_vm.$options.i18n.viewAllText,\"view-all-items-path\":_vm.groupsPath},on:{\"action\":function($event){return _vm.$emit('action', _vm.$options.FREQUENTLY_VISITED_GROUPS_HANDLE)}}},'frequent-items',_vm.$attrs,false),_vm.$listeners))\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!./frequent_projects.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!./frequent_projects.vue?vue&type=script&lang=js\"","<script>\nimport { s__ } from '~/locale';\nimport currentUserFrecentProjectsQuery from '~/super_sidebar/graphql/queries/current_user_frecent_projects.query.graphql';\nimport { FREQUENTLY_VISITED_PROJECTS_HANDLE } from '~/super_sidebar/components/global_search/command_palette/constants';\nimport FrequentItems from './frequent_items.vue';\n\nexport default {\n  name: 'FrequentlyVisitedProjects',\n  components: {\n    FrequentItems,\n  },\n  inject: ['projectsPath'],\n  apollo: {\n    // eslint-disable-next-line @gitlab/vue-no-undef-apollo-properties\n    frecentProjects: {\n      query: currentUserFrecentProjectsQuery,\n    },\n  },\n  i18n: {\n    groupName: s__('Navigation|Frequently visited projects'),\n    viewAllText: s__('Navigation|View all my projects'),\n    emptyStateText: s__('Navigation|Projects you visit often will appear here.'),\n  },\n  computed: {\n    items() {\n      return this.frecentProjects || [];\n    },\n  },\n  FREQUENTLY_VISITED_PROJECTS_HANDLE,\n};\n</script>\n\n<template>\n  <frequent-items\n    :loading=\"$apollo.queries.frecentProjects.loading\"\n    :empty-state-text=\"$options.i18n.emptyStateText\"\n    :group-name=\"$options.i18n.groupName\"\n    :items=\"items\"\n    view-all-items-icon=\"project\"\n    :view-all-items-text=\"$options.i18n.viewAllText\"\n    :view-all-items-path=\"projectsPath\"\n    v-bind=\"$attrs\"\n    v-on=\"$listeners\"\n    @action=\"$emit('action', $options.FREQUENTLY_VISITED_PROJECTS_HANDLE)\"\n  />\n</template>\n","<script>\nimport {\n  FREQUENTLY_VISITED_PROJECTS_HANDLE,\n  FREQUENTLY_VISITED_GROUPS_HANDLE,\n} from '~/super_sidebar/components/global_search/command_palette/constants';\n\nimport {\n  EVENT_CLICK_FREQUENT_GROUP_IN_COMMAND_PALETTE,\n  EVENT_CLICK_FREQUENT_PROJECT_IN_COMMAND_PALETTE,\n} from '~/super_sidebar/components/global_search/tracking_constants';\n\nimport { InternalEvents } from '~/tracking';\nimport DefaultPlaces from './global_search_default_places.vue';\nimport DefaultIssuables from './global_search_default_issuables.vue';\nimport FrequentGroups from './frequent_groups.vue';\nimport FrequentProjects from './frequent_projects.vue';\n\nconst components = [DefaultPlaces, FrequentProjects, FrequentGroups, DefaultIssuables];\nconst trackingMixin = InternalEvents.mixin();\n\nexport default {\n  name: 'GlobalSearchDefaultItems',\n  mixins: [trackingMixin],\n  data() {\n    return {\n      // The components here are expected to:\n      // - be responsible for getting their own data,\n      // - render a GlDisclosureDropdownGroup as the root vnode,\n      // - transparently pass all attrs to it (e.g., `bordered`),\n      // - not render anything if they have no data,\n      // - emit a `nothing-to-render` event if they have nothing to render.\n      // - have a unique `name`\n      componentNames: components.map(({ name }) => name),\n    };\n  },\n  methods: {\n    componentFromName(name) {\n      return components.find((component) => component.name === name);\n    },\n    remove(nameToRemove) {\n      const indexToRemove = this.componentNames.findIndex((name) => name === nameToRemove);\n      if (indexToRemove !== -1) this.componentNames.splice(indexToRemove, 1);\n    },\n    attrs(index) {\n      return index === 0\n        ? null\n        : {\n            bordered: true,\n            class: 'gl-mt-3',\n          };\n    },\n    trackItems(type) {\n      switch (type) {\n        case FREQUENTLY_VISITED_PROJECTS_HANDLE: {\n          this.trackEvent(EVENT_CLICK_FREQUENT_PROJECT_IN_COMMAND_PALETTE);\n          break;\n        }\n        case FREQUENTLY_VISITED_GROUPS_HANDLE: {\n          this.trackEvent(EVENT_CLICK_FREQUENT_GROUP_IN_COMMAND_PALETTE);\n          break;\n        }\n        default: {\n          break;\n        }\n      }\n    },\n  },\n};\n</script>\n\n<template>\n  <ul class=\"gl-m-0 gl-list-none gl-p-0 gl-pt-2\">\n    <component\n      :is=\"componentFromName(name)\"\n      v-for=\"(name, index) in componentNames\"\n      :key=\"name\"\n      v-bind=\"attrs(index)\"\n      @nothing-to-render=\"remove(name)\"\n      @action=\"trackItems\"\n    />\n  </ul>\n</template>\n","import { render, staticRenderFns } from \"./frequent_projects.vue?vue&type=template&id=7eb941e5\"\nimport script from \"./frequent_projects.vue?vue&type=script&lang=js\"\nexport * from \"./frequent_projects.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('frequent-items',_vm._g(_vm._b({attrs:{\"loading\":_vm.$apollo.queries.frecentProjects.loading,\"empty-state-text\":_vm.$options.i18n.emptyStateText,\"group-name\":_vm.$options.i18n.groupName,\"items\":_vm.items,\"view-all-items-icon\":\"project\",\"view-all-items-text\":_vm.$options.i18n.viewAllText,\"view-all-items-path\":_vm.projectsPath},on:{\"action\":function($event){return _vm.$emit('action', _vm.$options.FREQUENTLY_VISITED_PROJECTS_HANDLE)}}},'frequent-items',_vm.$attrs,false),_vm.$listeners))\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!./global_search_default_items.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!./global_search_default_items.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./global_search_default_items.vue?vue&type=template&id=45505646\"\nimport script from \"./global_search_default_items.vue?vue&type=script&lang=js\"\nexport * from \"./global_search_default_items.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('ul',{staticClass:\"gl-m-0 gl-list-none gl-p-0 gl-pt-2\"},_vm._l((_vm.componentNames),function(name,index){return _c(_vm.componentFromName(name),_vm._b({key:name,tag:\"component\",on:{\"nothing-to-render\":function($event){return _vm.remove(name)},\"action\":_vm.trackItems}},'component',_vm.attrs(index),false))}),1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport { GlIcon, GlDisclosureDropdownGroup } from '@gitlab/ui';\n// eslint-disable-next-line no-restricted-imports\nimport { mapState, mapGetters } from 'vuex';\nimport { InternalEvents } from '~/tracking';\nimport { s__, sprintf } from '~/locale';\nimport { truncate } from '~/lib/utils/text_utility';\nimport {\n  EVENT_CLICK_ALL_GITLAB_SCOPED_SEARCH_TO_ADVANCED_SEARCH,\n  EVENT_CLICK_GROUP_SCOPED_SEARCH_TO_ADVANCED_SEARCH,\n  EVENT_CLICK_PROJECT_SCOPED_SEARCH_TO_ADVANCED_SEARCH,\n} from '~/super_sidebar/components/global_search/tracking_constants';\nimport { injectRegexSearch } from '~/search/store/utils';\nimport {\n  OVERLAY_SEARCH,\n  SCOPE_SEARCH_ALL,\n  SCOPE_SEARCH_GROUP,\n  SCOPE_SEARCH_PROJECT,\n} from '../command_palette/constants';\nimport { SCOPE_TOKEN_MAX_LENGTH } from '../constants';\nimport SearchResultHoverLayover from './global_search_hover_overlay.vue';\n\nconst trackingMixin = InternalEvents.mixin();\n\nexport default {\n  name: 'GlobalSearchScopedItems',\n  components: {\n    GlIcon,\n    GlDisclosureDropdownGroup,\n    SearchResultHoverLayover,\n  },\n  mixins: [trackingMixin],\n  i18n: {\n    OVERLAY_SEARCH,\n  },\n  computed: {\n    ...mapState(['search']),\n    ...mapGetters(['scopedSearchGroup']),\n    group() {\n      return {\n        name: this.scopedSearchGroup.name,\n        items: this.scopedSearchGroup.items.map((item) => ({\n          ...item,\n          href: item.text === SCOPE_SEARCH_PROJECT ? injectRegexSearch(item.href) : item.href,\n          scopeName: item.scope || item.description,\n          extraAttrs: {\n            class: 'show-hover-layover',\n          },\n        })),\n      };\n    },\n  },\n  methods: {\n    titleLabel(item) {\n      return sprintf(s__('GlobalSearch|in %{scope}'), {\n        search: this.search,\n        scope: item.scope || item.description,\n      });\n    },\n    getTruncatedScope(scope) {\n      return truncate(scope, SCOPE_TOKEN_MAX_LENGTH);\n    },\n    trackingTypes({ text }) {\n      switch (text) {\n        case this.$options.SCOPE_SEARCH_ALL: {\n          this.trackEvent(EVENT_CLICK_ALL_GITLAB_SCOPED_SEARCH_TO_ADVANCED_SEARCH);\n          break;\n        }\n        case this.$options.SCOPE_SEARCH_GROUP: {\n          this.trackEvent(EVENT_CLICK_GROUP_SCOPED_SEARCH_TO_ADVANCED_SEARCH);\n          break;\n        }\n        case this.$options.SCOPE_SEARCH_PROJECT: {\n          this.trackEvent(EVENT_CLICK_PROJECT_SCOPED_SEARCH_TO_ADVANCED_SEARCH);\n          break;\n        }\n        default: {\n          /* empty */\n        }\n      }\n    },\n  },\n  SCOPE_SEARCH_ALL,\n  SCOPE_SEARCH_GROUP,\n  SCOPE_SEARCH_PROJECT,\n};\n</script>\n\n<template>\n  <div>\n    <ul class=\"gl-m-0 gl-list-none gl-p-0 gl-pb-2\" data-testid=\"scoped-items\">\n      <gl-disclosure-dropdown-group :group=\"group\" @action=\"trackingTypes\">\n        <template #list-item=\"{ item }\">\n          <search-result-hover-layover :text-message=\"$options.i18n.OVERLAY_SEARCH\">\n            <gl-icon\n              name=\"search-results\"\n              class=\"-gl-mt-2 gl-mr-2 gl-shrink-0 gl-pt-2 gl-text-subtle\"\n            />\n            <span class=\"gl-grow\">\n              {{ item.scopeName }}\n            </span>\n          </search-result-hover-layover>\n        </template>\n      </gl-disclosure-dropdown-group>\n    </ul>\n  </div>\n</template>\n","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!./global_search_scoped_items.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!./global_search_scoped_items.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./global_search_scoped_items.vue?vue&type=template&id=9519a366\"\nimport script from \"./global_search_scoped_items.vue?vue&type=script&lang=js\"\nexport * from \"./global_search_scoped_items.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('div',[_c('ul',{staticClass:\"gl-m-0 gl-list-none gl-p-0 gl-pb-2\",attrs:{\"data-testid\":\"scoped-items\"}},[_c('gl-disclosure-dropdown-group',{attrs:{\"group\":_vm.group},on:{\"action\":_vm.trackingTypes},scopedSlots:_vm._u([{key:\"list-item\",fn:function({ item }){return [_c('search-result-hover-layover',{attrs:{\"text-message\":_vm.$options.i18n.OVERLAY_SEARCH}},[_c('gl-icon',{staticClass:\"-gl-mt-2 gl-mr-2 gl-shrink-0 gl-pt-2 gl-text-subtle\",attrs:{\"name\":\"search-results\"}}),_vm._v(\" \"),_c('span',{staticClass:\"gl-grow\"},[_vm._v(\"\\n            \"+_vm._s(item.scopeName)+\"\\n          \")])],1)]}}])})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport { GlSearchBoxByType, GlModal } from '@gitlab/ui';\n// eslint-disable-next-line no-restricted-imports\nimport { mapState, mapActions, mapGetters } from 'vuex';\nimport { debounce, clamp } from 'lodash';\nimport { InternalEvents } from '~/tracking';\nimport { Mousetrap, addStopCallback } from '~/lib/mousetrap';\nimport { visitUrl } from '~/lib/utils/url_utility';\nimport { DEFAULT_DEBOUNCE_AND_THROTTLE_MS } from '~/lib/utils/constants';\nimport { s__, sprintf } from '~/locale';\nimport {\n  ARROW_DOWN_KEY,\n  ARROW_UP_KEY,\n  END_KEY,\n  HOME_KEY,\n  ESC_KEY,\n  NUMPAD_ENTER_KEY,\n  ENTER_KEY,\n} from '~/lib/utils/keys';\nimport {\n  COMMAND_PALETTE,\n  MIN_SEARCH_TERM,\n  SEARCH_DESCRIBED_BY_WITH_RESULTS,\n  SEARCH_DESCRIBED_BY_DEFAULT,\n  SEARCH_DESCRIBED_BY_UPDATED,\n  SEARCH_RESULTS_LOADING,\n  COMMAND_PALETTE_TIP,\n} from '~/vue_shared/global_search/constants';\nimport modalKeyboardNavigationMixin from '~/vue_shared/mixins/modal_keyboard_navigation_mixin';\nimport { darkModeEnabled } from '~/lib/utils/color_utils';\nimport ScrollScrim from '~/super_sidebar/components/scroll_scrim.vue';\nimport { injectRegexSearch } from '~/search/store/utils';\nimport {\n  EVENT_PRESS_ENTER_TO_ADVANCED_SEARCH,\n  EVENT_PRESS_ESCAPE_IN_COMMAND_PALETTE,\n  EVENT_CLICK_OUTSIDE_OF_COMMAND_PALETTE,\n  EVENT_PRESS_GREATER_THAN_IN_COMMAND_PALETTE,\n  EVENT_PRESS_AT_SYMBOL_IN_COMMAND_PALETTE,\n  EVENT_PRESS_COLON_IN_COMMAND_PALETTE,\n  EVENT_PRESS_FORWARD_SLASH_IN_COMMAND_PALETTE,\n  LABEL_COMMAND_PALETTE,\n} from '~/super_sidebar/tracking_constants';\nimport {\n  SEARCH_INPUT_DESCRIPTION,\n  SEARCH_RESULTS_DESCRIPTION,\n  SEARCH_SHORTCUTS_MIN_CHARACTERS,\n  SEARCH_MODAL_ID,\n  KEY_N,\n  KEY_P,\n  SEARCH_INPUT_SELECTOR,\n  SEARCH_RESULTS_ITEM_SELECTOR,\n} from '../constants';\nimport CommandPaletteItems from '../command_palette/command_palette_items.vue';\nimport FakeSearchInput from '../command_palette/fake_search_input.vue';\nimport {\n  COMMON_HANDLES,\n  COMMAND_HANDLE,\n  USER_HANDLE,\n  PROJECT_HANDLE,\n  ISSUE_HANDLE,\n  PATH_HANDLE,\n  MODAL_CLOSE_ESC,\n  MODAL_CLOSE_BACKGROUND,\n  MODAL_CLOSE_HEADERCLOSE,\n  COMMANDS_TOGGLE_KEYBINDING,\n} from '../command_palette/constants';\nimport CommandPaletteLottery from '../command_palette/command_palette_lottery.vue';\nimport CommandsOverviewDropdown from '../command_palette/command_overview_dropdown.vue';\nimport { commandPaletteDropdownItems } from '../utils';\nimport GlobalSearchAutocompleteItems from './global_search_autocomplete_items.vue';\nimport GlobalSearchDefaultItems from './global_search_default_items.vue';\nimport GlobalSearchScopedItems from './global_search_scoped_items.vue';\n\nconst trackingMixin = InternalEvents.mixin();\n\nexport default {\n  name: 'GlobalSearchModal',\n  SEARCH_MODAL_ID,\n  i18n: {\n    COMMAND_PALETTE,\n    SEARCH_DESCRIBED_BY_WITH_RESULTS,\n    SEARCH_DESCRIBED_BY_DEFAULT,\n    SEARCH_DESCRIBED_BY_UPDATED,\n    SEARCH_OR_COMMAND_MODE_PLACEHOLDER: s__('GlobalSearch|Type to search...'),\n    SEARCH_RESULTS_LOADING,\n    MIN_SEARCH_TERM,\n    COMMAND_PALETTE_TIP,\n    COMMON_HANDLES,\n  },\n  components: {\n    GlSearchBoxByType,\n    GlobalSearchDefaultItems,\n    GlobalSearchScopedItems,\n    GlobalSearchAutocompleteItems,\n    GlModal,\n    CommandPaletteItems,\n    FakeSearchInput,\n    CommandPaletteLottery,\n    ScrollScrim,\n    CommandsOverviewDropdown,\n  },\n  mixins: [trackingMixin, modalKeyboardNavigationMixin],\n  data() {\n    return {\n      nextFocusedItemIndex: null,\n      commandPaletteDropdownItems,\n      commandPaletteDropdownOpen: false,\n      focusIndex: -1,\n      childListItems: [],\n    };\n  },\n  computed: {\n    ...mapState(['search', 'loading', 'searchContext', 'commandChar']),\n    ...mapGetters(['searchQuery', 'searchOptions', 'scopedSearchOptions', 'isCommandMode']),\n    searchText: {\n      get() {\n        return this.search;\n      },\n      set(value) {\n        if (this.stringHasCommand(value)) {\n          this.setCommand(this.stringFirstChar(value));\n          this.setSearch(value);\n          return;\n        }\n\n        this.setCommand('');\n        this.setSearch(value);\n      },\n    },\n    showDefaultItems() {\n      return !this.searchText;\n    },\n    searchTermOverMin() {\n      return this.searchText?.length > SEARCH_SHORTCUTS_MIN_CHARACTERS;\n    },\n    showScopedSearchItems() {\n      return this.searchTermOverMin && this.scopedSearchOptions.length > 0;\n    },\n    searchResultsDescription() {\n      if (this.showDefaultItems) {\n        return sprintf(this.$options.i18n.SEARCH_DESCRIBED_BY_DEFAULT, {\n          count: this.searchOptions.length,\n        });\n      }\n\n      if (!this.searchTermOverMin) {\n        return this.$options.i18n.MIN_SEARCH_TERM;\n      }\n\n      return this.loading\n        ? this.$options.i18n.SEARCH_RESULTS_LOADING\n        : sprintf(this.$options.i18n.SEARCH_DESCRIBED_BY_UPDATED, {\n            count: this.searchOptions.length,\n          });\n    },\n    searchBarItem() {\n      return this.searchOptions?.[0];\n    },\n    commandPaletteQuery() {\n      if (this.isCommandMode) {\n        return this.searchText?.trim().substring(1);\n      }\n      return '';\n    },\n    commandHighlightClass() {\n      return darkModeEnabled() ? '!gl-bg-subtle' : '!gl-bg-strong';\n    },\n  },\n  watch: {\n    nextFocusedItemIndex() {\n      this.highlightFirstCommand();\n    },\n  },\n  created() {\n    addStopCallback(this.allowMousetrapBindingOnSearchInput);\n  },\n  methods: {\n    ...mapActions(['setSearch', 'setCommand', 'fetchAutocompleteOptions', 'clearAutocomplete']),\n    getAutocompleteOptions: debounce(function debouncedSearch(searchTerm) {\n      if (this.isCommandMode) {\n        return;\n      }\n      if (!searchTerm) {\n        this.clearAutocomplete();\n      } else {\n        this.fetchAutocompleteOptions();\n      }\n    }, DEFAULT_DEBOUNCE_AND_THROTTLE_MS),\n    getFocusableOptions() {\n      return Array.from(\n        this.$refs.resultsList?.querySelectorAll(SEARCH_RESULTS_ITEM_SELECTOR) || [],\n      );\n    },\n    handleSubmitSearch(event) {\n      this.submitSearch();\n      event.stopPropagation();\n      event.preventDefault();\n    },\n    getListItemsAndFocusIndex() {\n      const childItems = this.$refs.resultsList?.querySelectorAll('.gl-new-dropdown-item') || [];\n      if (childItems.length !== this.childListItems.length) {\n        this.childListItems = childItems;\n\n        Array.from(childItems).forEach((item, index) => {\n          if (item === document.activeElement) {\n            this.focusIndex = index;\n          }\n        });\n      }\n    },\n    onKeydown(event) {\n      const { code, ctrlKey, target } = event;\n\n      let stop = true;\n      const isSearchInput = target && target?.matches(SEARCH_INPUT_SELECTOR);\n      const elements = this.getFocusableOptions();\n      this.getListItemsAndFocusIndex();\n\n      switch (code) {\n        case ENTER_KEY:\n        case NUMPAD_ENTER_KEY:\n          // we want to submit search term specifically if isSearchInput\n          // we want to submit search term if there are no results (elements.length < 1)\n          this.trackEvent(EVENT_PRESS_ENTER_TO_ADVANCED_SEARCH, { label: LABEL_COMMAND_PALETTE });\n          this.handleSubmitSearch(event);\n          break;\n\n        case HOME_KEY:\n          if (isSearchInput) return;\n          if (elements.length < 1) return;\n\n          this.focusItem(0, elements);\n          break;\n\n        case END_KEY:\n          if (isSearchInput) return;\n          if (elements.length < 1) return;\n\n          this.focusItem(elements.length - 1, elements);\n          break;\n\n        case ARROW_UP_KEY:\n          if (isSearchInput) return;\n          if (elements.length < 1) return;\n\n          if (elements.indexOf(target) === 0) {\n            this.focusSearchInput();\n          } else {\n            this.focusNextItem(event, elements, -1);\n          }\n          break;\n\n        case ARROW_DOWN_KEY:\n          if (elements.length < 1) return;\n          this.focusNextItem(event, elements, 1);\n          break;\n\n        case KEY_P:\n          if (!ctrlKey) {\n            return;\n          }\n\n          this.focusIndex =\n            this.focusIndex > 0 ? this.focusIndex - 1 : this.childListItems.length - 1;\n          this.childListItems[this.focusIndex]?.focus();\n          break;\n\n        case KEY_N:\n          if (!ctrlKey) {\n            return;\n          }\n\n          this.focusIndex =\n            this.focusIndex < this.childListItems.length - 1 ? this.focusIndex + 1 : 0;\n          this.childListItems[this.focusIndex]?.focus();\n          break;\n\n        case ESC_KEY:\n          this.$refs.modal.close();\n          break;\n\n        default:\n          stop = false;\n          break;\n      }\n\n      if (stop) {\n        event.preventDefault();\n      }\n    },\n    onKeyComboToggleDropdown(event) {\n      if (event.preventDefault) {\n        event.preventDefault();\n      }\n\n      if (!this.commandPaletteDropdownOpen) {\n        this.$refs.commandDropdown.open();\n        this.commandPaletteDropdownOpen = true;\n      } else {\n        this.$refs.commandDropdown.close();\n        this.commandPaletteDropdownOpen = false;\n      }\n    },\n    allowMousetrapBindingOnSearchInput(event, element, combo) {\n      if (combo !== COMMANDS_TOGGLE_KEYBINDING) {\n        return undefined;\n      }\n\n      const search = this.$refs.searchInput.$el;\n      if (search?.contains(element)) {\n        return false;\n      }\n\n      return undefined;\n    },\n    handleClosing() {\n      this.commandPaletteDropdownOpen = false;\n    },\n    focusSearchInput() {\n      this.$refs?.searchInput?.$el?.querySelector('input')?.focus();\n    },\n    focusNextItem(event, elements, offset) {\n      const { target } = event;\n      const currentIndex = elements.indexOf(target);\n      const nextIndex = clamp(currentIndex + offset, 0, elements.length - 1);\n\n      this.focusItem(nextIndex, elements);\n    },\n    focusItem(index, elements) {\n      this.nextFocusedItemIndex = index;\n      elements[index]?.focus();\n    },\n    submitSearch() {\n      if (this.isCommandMode) {\n        this.runFirstCommand();\n        return;\n      }\n      if (this.search?.length <= SEARCH_SHORTCUTS_MIN_CHARACTERS) {\n        return;\n      }\n\n      visitUrl(injectRegexSearch(this.searchQuery));\n    },\n    runFirstCommand() {\n      this.getFocusableOptions()[0]?.firstChild?.click();\n    },\n    onSearchModalShown() {\n      this.$emit('shown');\n\n      Mousetrap.bind(COMMANDS_TOGGLE_KEYBINDING, this.onKeyComboToggleDropdown);\n    },\n    onSearchModalHidden({ trigger } = {}) {\n      this.searchText = '';\n      this.$emit('hidden');\n\n      Mousetrap.unbind(COMMANDS_TOGGLE_KEYBINDING);\n\n      switch (trigger) {\n        case this.$options.MODAL_CLOSE_ESC:\n        case this.$options.MODAL_CLOSE_HEADERCLOSE: {\n          // when esc is pressed with focus\n          // in the input field modal issues headerclose\n          this.trackEvent(EVENT_PRESS_ESCAPE_IN_COMMAND_PALETTE);\n          break;\n        }\n        case this.$options.MODAL_CLOSE_BACKGROUND: {\n          this.trackEvent(EVENT_CLICK_OUTSIDE_OF_COMMAND_PALETTE);\n          break;\n        }\n        default: {\n          /* empty */\n        }\n      }\n    },\n    highlightFirstCommand() {\n      if (this.isCommandMode) {\n        const activeCommand = this.getFocusableOptions()[0]?.firstChild;\n        activeCommand?.classList.toggle(\n          this.commandHighlightClass,\n          Boolean(!this.nextFocusedItemIndex),\n        );\n      }\n    },\n    handleCommandSelection(selected) {\n      this.searchText = this.stringHasCommand(this.searchText)\n        ? `${selected}${this.searchText.slice(1)}`\n        : `${selected}${this.searchText}`;\n\n      this.focusSearchInput();\n\n      switch (selected) {\n        case this.$options.COMMAND_HANDLE: {\n          this.trackEvent(EVENT_PRESS_GREATER_THAN_IN_COMMAND_PALETTE);\n          break;\n        }\n        case this.$options.USER_HANDLE: {\n          this.trackEvent(EVENT_PRESS_AT_SYMBOL_IN_COMMAND_PALETTE);\n          break;\n        }\n        case this.$options.PROJECT_HANDLE: {\n          this.trackEvent(EVENT_PRESS_COLON_IN_COMMAND_PALETTE);\n          break;\n        }\n        case this.$options.PATH_HANDLE: {\n          this.trackEvent(EVENT_PRESS_FORWARD_SLASH_IN_COMMAND_PALETTE);\n          break;\n        }\n        default: {\n          /* empty */\n        }\n      }\n    },\n    stringHasCommand(string) {\n      const isHandle = (handle) => handle === string?.trim().charAt(0);\n\n      return (\n        COMMON_HANDLES.some(isHandle) ||\n        (this.searchContext?.project && COMMON_HANDLES.some(isHandle))\n      );\n    },\n    stringFirstChar(string) {\n      return string?.trim().charAt(0);\n    },\n  },\n  SEARCH_INPUT_DESCRIPTION,\n  SEARCH_RESULTS_DESCRIPTION,\n  COMMAND_HANDLE,\n  USER_HANDLE,\n  PROJECT_HANDLE,\n  ISSUE_HANDLE,\n  PATH_HANDLE,\n  MODAL_CLOSE_ESC,\n  MODAL_CLOSE_BACKGROUND,\n  MODAL_CLOSE_HEADERCLOSE,\n};\n</script>\n\n<template>\n  <gl-modal\n    ref=\"modal\"\n    :modal-id=\"$options.SEARCH_MODAL_ID\"\n    hide-header\n    hide-header-close\n    scrollable\n    :title=\"$options.i18n.COMMAND_PALETTE\"\n    body-class=\"!gl-p-0 !gl-min-h-26\"\n    modal-class=\"global-search-modal\"\n    :centered=\"false\"\n    @shown=\"onSearchModalShown\"\n    @hide=\"onSearchModalHidden\"\n  >\n    <form\n      role=\"search\"\n      :aria-label=\"$options.i18n.SEARCH_OR_COMMAND_MODE_PLACEHOLDER\"\n      class=\"gl-relative gl-w-full gl-rounded-lg gl-pb-0\"\n    >\n      <div class=\"input-box-wrapper gl-border-b -gl-mb-1 gl-bg-default gl-p-2\">\n        <gl-search-box-by-type\n          id=\"search\"\n          ref=\"searchInput\"\n          v-model=\"searchText\"\n          role=\"searchbox\"\n          data-testid=\"global-search-input\"\n          autocomplete=\"off\"\n          :placeholder=\"$options.i18n.SEARCH_OR_COMMAND_MODE_PLACEHOLDER\"\n          :aria-describedby=\"$options.SEARCH_INPUT_DESCRIPTION\"\n          borderless\n          @input=\"getAutocompleteOptions\"\n          @keydown=\"onKeydown\"\n        />\n        <span :id=\"$options.SEARCH_INPUT_DESCRIPTION\" role=\"region\" class=\"gl-sr-only\">\n          {{ $options.i18n.SEARCH_DESCRIBED_BY_WITH_RESULTS }}\n        </span>\n\n        <fake-search-input\n          v-if=\"isCommandMode\"\n          :user-input=\"commandPaletteQuery\"\n          :scope=\"commandChar\"\n          class=\"fake-input-wrapper\"\n        />\n      </div>\n      <span\n        role=\"region\"\n        :data-testid=\"$options.SEARCH_RESULTS_DESCRIPTION\"\n        class=\"gl-sr-only\"\n        aria-live=\"polite\"\n        aria-atomic=\"true\"\n      >\n        {{ searchResultsDescription }}\n      </span>\n      <div\n        ref=\"resultsList\"\n        class=\"global-search-results gl-flex gl-w-full gl-grow gl-flex-col gl-overflow-hidden\"\n        @keydown=\"onKeydown\"\n      >\n        <scroll-scrim class=\"gl-grow !gl-overflow-x-hidden\" data-testid=\"nav-container\">\n          <div class=\"gl-pb-3\">\n            <command-palette-items\n              v-if=\"isCommandMode\"\n              :search-query=\"commandPaletteQuery\"\n              :handle=\"commandChar\"\n              @updated=\"highlightFirstCommand\"\n            />\n            <template v-else>\n              <global-search-scoped-items v-if=\"showScopedSearchItems\" />\n              <global-search-default-items v-if=\"showDefaultItems\" />\n              <global-search-autocomplete-items v-else />\n            </template>\n          </div>\n        </scroll-scrim>\n      </div>\n      <template v-if=\"searchContext\">\n        <input\n          v-if=\"searchContext.group\"\n          type=\"hidden\"\n          name=\"group_id\"\n          :value=\"searchContext.group.id\"\n        />\n        <input\n          v-if=\"searchContext.project\"\n          type=\"hidden\"\n          name=\"project_id\"\n          :value=\"searchContext.project.id\"\n        />\n\n        <template v-if=\"searchContext.group || searchContext.project\">\n          <input type=\"hidden\" name=\"scope\" :value=\"searchContext.scope\" />\n          <input type=\"hidden\" name=\"search_code\" :value=\"searchContext.code_search\" />\n        </template>\n\n        <input type=\"hidden\" name=\"snippets\" :value=\"searchContext.for_snippets\" />\n        <input type=\"hidden\" name=\"repository_ref\" :value=\"searchContext.ref\" />\n      </template>\n    </form>\n    <template #modal-footer>\n      <div class=\"gl-m-0 gl-flex gl-grow gl-justify-between gl-align-middle\">\n        <span class=\"gl-text-subtle\"\n          >{{ $options.i18n.COMMAND_PALETTE_TIP }} <command-palette-lottery\n        /></span>\n        <span\n          ><commands-overview-dropdown\n            ref=\"commandDropdown\"\n            :items=\"commandPaletteDropdownItems\"\n            @selected=\"handleCommandSelection\"\n            @hidden=\"handleClosing\"\n        /></span>\n      </div>\n    </template>\n  </gl-modal>\n</template>\n\n<style scoped>\n.input-box-wrapper {\n  position: relative;\n}\n.fake-input-wrapper {\n  position: absolute;\n}\n</style>\n","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!./global_search.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!./global_search.vue?vue&type=script&lang=js\"","export const EVENT_PRESS_ENTER_TO_ADVANCED_SEARCH = 'press_enter_to_advanced_search';\nexport const EVENT_PRESS_ESCAPE_IN_COMMAND_PALETTE = 'press_escape_in_command_palette';\nexport const EVENT_CLICK_OUTSIDE_OF_COMMAND_PALETTE = 'click_outside_of_command_palette';\nexport const EVENT_PRESS_GREATER_THAN_IN_COMMAND_PALETTE = 'press_greater_than_in_command_palette';\nexport const EVENT_PRESS_AT_SYMBOL_IN_COMMAND_PALETTE = 'press_at_symbol_in_command_palette';\nexport const EVENT_PRESS_COLON_IN_COMMAND_PALETTE = 'press_colon_in_command_palette';\nexport const EVENT_PRESS_FORWARD_SLASH_IN_COMMAND_PALETTE =\n  'press_forward_slash_in_command_palette';\nexport const LABEL_COMMAND_PALETTE = 'command_palette';\n","import api from \"!../../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n            import content from \"!!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--20-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./global_search.vue?vue&type=style&index=0&id=86e5ca72&prod&scoped=true&lang=css\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import { render, staticRenderFns } from \"./global_search.vue?vue&type=template&id=86e5ca72&scoped=true\"\nimport script from \"./global_search.vue?vue&type=script&lang=js\"\nexport * from \"./global_search.vue?vue&type=script&lang=js\"\nimport style0 from \"./global_search.vue?vue&type=style&index=0&id=86e5ca72&prod&scoped=true&lang=css\"\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  \"86e5ca72\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-modal',{ref:\"modal\",attrs:{\"modal-id\":_vm.$options.SEARCH_MODAL_ID,\"hide-header\":\"\",\"hide-header-close\":\"\",\"scrollable\":\"\",\"title\":_vm.$options.i18n.COMMAND_PALETTE,\"body-class\":\"!gl-p-0 !gl-min-h-26\",\"modal-class\":\"global-search-modal\",\"centered\":false},on:{\"shown\":_vm.onSearchModalShown,\"hide\":_vm.onSearchModalHidden},scopedSlots:_vm._u([{key:\"modal-footer\",fn:function(){return [_c('div',{staticClass:\"gl-m-0 gl-flex gl-grow gl-justify-between gl-align-middle\"},[_c('span',{staticClass:\"gl-text-subtle\"},[_vm._v(_vm._s(_vm.$options.i18n.COMMAND_PALETTE_TIP)+\" \"),_c('command-palette-lottery')],1),_vm._v(\" \"),_c('span',[_c('commands-overview-dropdown',{ref:\"commandDropdown\",attrs:{\"items\":_vm.commandPaletteDropdownItems},on:{\"selected\":_vm.handleCommandSelection,\"hidden\":_vm.handleClosing}})],1)])]},proxy:true}])},[_c('form',{staticClass:\"gl-relative gl-w-full gl-rounded-lg gl-pb-0\",attrs:{\"role\":\"search\",\"aria-label\":_vm.$options.i18n.SEARCH_OR_COMMAND_MODE_PLACEHOLDER}},[_c('div',{staticClass:\"input-box-wrapper gl-border-b -gl-mb-1 gl-bg-default gl-p-2\"},[_c('gl-search-box-by-type',{ref:\"searchInput\",attrs:{\"id\":\"search\",\"role\":\"searchbox\",\"data-testid\":\"global-search-input\",\"autocomplete\":\"off\",\"placeholder\":_vm.$options.i18n.SEARCH_OR_COMMAND_MODE_PLACEHOLDER,\"aria-describedby\":_vm.$options.SEARCH_INPUT_DESCRIPTION,\"borderless\":\"\"},on:{\"input\":_vm.getAutocompleteOptions,\"keydown\":_vm.onKeydown},model:{value:(_vm.searchText),callback:function ($$v) {_vm.searchText=$$v},expression:\"searchText\"}}),_vm._v(\" \"),_c('span',{staticClass:\"gl-sr-only\",attrs:{\"id\":_vm.$options.SEARCH_INPUT_DESCRIPTION,\"role\":\"region\"}},[_vm._v(\"\\n        \"+_vm._s(_vm.$options.i18n.SEARCH_DESCRIBED_BY_WITH_RESULTS)+\"\\n      \")]),_vm._v(\" \"),(_vm.isCommandMode)?_c('fake-search-input',{staticClass:\"fake-input-wrapper\",attrs:{\"user-input\":_vm.commandPaletteQuery,\"scope\":_vm.commandChar}}):_vm._e()],1),_vm._v(\" \"),_c('span',{staticClass:\"gl-sr-only\",attrs:{\"role\":\"region\",\"data-testid\":_vm.$options.SEARCH_RESULTS_DESCRIPTION,\"aria-live\":\"polite\",\"aria-atomic\":\"true\"}},[_vm._v(\"\\n      \"+_vm._s(_vm.searchResultsDescription)+\"\\n    \")]),_vm._v(\" \"),_c('div',{ref:\"resultsList\",staticClass:\"global-search-results gl-flex gl-w-full gl-grow gl-flex-col gl-overflow-hidden\",on:{\"keydown\":_vm.onKeydown}},[_c('scroll-scrim',{staticClass:\"gl-grow !gl-overflow-x-hidden\",attrs:{\"data-testid\":\"nav-container\"}},[_c('div',{staticClass:\"gl-pb-3\"},[(_vm.isCommandMode)?_c('command-palette-items',{attrs:{\"search-query\":_vm.commandPaletteQuery,\"handle\":_vm.commandChar},on:{\"updated\":_vm.highlightFirstCommand}}):[(_vm.showScopedSearchItems)?_c('global-search-scoped-items'):_vm._e(),_vm._v(\" \"),(_vm.showDefaultItems)?_c('global-search-default-items'):_c('global-search-autocomplete-items')]],2)])],1),_vm._v(\" \"),(_vm.searchContext)?[(_vm.searchContext.group)?_c('input',{attrs:{\"type\":\"hidden\",\"name\":\"group_id\"},domProps:{\"value\":_vm.searchContext.group.id}}):_vm._e(),_vm._v(\" \"),(_vm.searchContext.project)?_c('input',{attrs:{\"type\":\"hidden\",\"name\":\"project_id\"},domProps:{\"value\":_vm.searchContext.project.id}}):_vm._e(),_vm._v(\" \"),(_vm.searchContext.group || _vm.searchContext.project)?[_c('input',{attrs:{\"type\":\"hidden\",\"name\":\"scope\"},domProps:{\"value\":_vm.searchContext.scope}}),_vm._v(\" \"),_c('input',{attrs:{\"type\":\"hidden\",\"name\":\"search_code\"},domProps:{\"value\":_vm.searchContext.code_search}})]:_vm._e(),_vm._v(\" \"),_c('input',{attrs:{\"type\":\"hidden\",\"name\":\"snippets\"},domProps:{\"value\":_vm.searchContext.for_snippets}}),_vm._v(\" \"),_c('input',{attrs:{\"type\":\"hidden\",\"name\":\"repository_ref\"},domProps:{\"value\":_vm.searchContext.ref}})]:_vm._e()],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import GlClearIconButton from '../../../shared_components/clear_icon_button/clear_icon_button';\nimport GlIcon from '../../icon/icon';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nvar script = {\n  name: 'GlListboxSearchInput',\n  components: {\n    GlClearIconButton,\n    GlIcon\n  },\n  model: {\n    prop: 'value',\n    event: 'input'\n  },\n  props: {\n    /**\n     * If provided, used as value of search input\n     */\n    value: {\n      type: String,\n      required: false,\n      default: ''\n    },\n    /**\n     * Search input placeholder text and aria-label\n     */\n    placeholder: {\n      type: String,\n      required: false,\n      default: 'Search'\n    }\n  },\n  computed: {\n    hasValue() {\n      return Boolean(this.value.length);\n    },\n    inputListeners() {\n      return {\n        ...this.$listeners,\n        input: event => {\n          this.$emit('input', event.target.value);\n        }\n      };\n    }\n  },\n  methods: {\n    clearInput() {\n      this.$emit('input', '');\n      this.focusInput();\n    },\n    focusInput() {\n      this.$refs.input.focus();\n    }\n  }\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"gl-listbox-search\"},[_c('gl-icon',{staticClass:\"gl-listbox-search-icon\",attrs:{\"name\":\"search-sm\",\"size\":12}}),_vm._v(\" \"),_c('input',_vm._g({ref:\"input\",staticClass:\"gl-listbox-search-input\",attrs:{\"type\":\"search\",\"aria-label\":_vm.placeholder,\"placeholder\":_vm.placeholder},domProps:{\"value\":_vm.value}},_vm.inputListeners)),_vm._v(\" \"),(_vm.hasValue)?_c('gl-clear-icon-button',{staticClass:\"gl-listbox-search-clear-button\",on:{\"click\":function($event){$event.stopPropagation();return _vm.clearInput.apply(null, arguments)}}}):_vm._e()],1)};\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 uniqueId from 'lodash/uniqueId';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nvar script = {\n  name: 'GlListboxGroup',\n  props: {\n    name: {\n      type: String,\n      required: true\n    },\n    textSrOnly: {\n      type: Boolean,\n      required: false,\n      default: false\n    }\n  },\n  created() {\n    this.nameId = uniqueId('gl-listbox-group-');\n  }\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ul',{staticClass:\"gl-mb-0 gl-pl-0\",attrs:{\"role\":\"group\",\"aria-labelledby\":_vm.nameId}},[_c('li',{staticClass:\"gl-pb-2 gl-pl-4 gl-pt-3 gl-text-sm gl-font-bold gl-text-strong\",class:{ 'gl-sr-only': _vm.textSrOnly },attrs:{\"id\":_vm.nameId,\"role\":\"presentation\"}},[_vm._t(\"group-label\",function(){return [_vm._v(_vm._s(_vm.name))]})],2),_vm._v(\" \"),_vm._t(\"default\")],2)};\nvar __vue_staticRenderFns__ = [];\n\n  /* style */\n  const __vue_inject_styles__ = undefined;\n  /* scoped */\n  const __vue_scope_id__ = undefined;\n  /* module identifier */\n  const __vue_module_identifier__ = undefined;\n  /* functional template */\n  const __vue_is_functional_template__ = false;\n  /* style inject */\n  \n  /* style inject SSR */\n  \n  /* style inject shadow dom */\n  \n\n  \n  const __vue_component__ = __vue_normalize__(\n    { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n    __vue_inject_styles__,\n    __vue_script__,\n    __vue_scope_id__,\n    __vue_is_functional_template__,\n    __vue_module_identifier__,\n    false,\n    undefined,\n    undefined,\n    undefined\n  );\n\nexport default __vue_component__;\n","import clamp from 'lodash/clamp';\nimport uniqueId from 'lodash/uniqueId';\nimport isNil from 'lodash/isNil';\nimport { stopEvent } from '../../../../utils/utils';\nimport { GL_DROPDOWN_SHOWN, GL_DROPDOWN_HIDDEN, POSITION_ABSOLUTE, POSITION_FIXED, GL_DROPDOWN_CONTENTS_CLASS, HOME, END, ARROW_UP, ARROW_DOWN } from '../constants';\nimport { buttonCategoryOptions, dropdownVariantOptions, buttonSizeOptions, dropdownPlacements } from '../../../../utils/constants';\nimport GlButton from '../../button/button';\nimport GlLoadingIcon from '../../loading_icon/loading_icon';\nimport GlIntersectionObserver from '../../../utilities/intersection_observer/intersection_observer';\nimport GlSearchBoxByType from '../../search_box_by_type/search_box_by_type';\nimport GlBaseDropdown from '../base_dropdown/base_dropdown';\nimport { translatePlural } from '../../../../utils/i18n';\nimport GlListboxItem from './listbox_item';\nimport GlListboxSearchInput from './listbox_search_input';\nimport GlListboxGroup from './listbox_group';\nimport { itemsValidator, isOption, flattenedOptions } from './utils';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\n//\nconst ITEM_SELECTOR = '[role=\"option\"]';\nconst HEADER_ITEMS_BORDER_CLASSES = ['gl-border-b-1', 'gl-border-b-solid', 'gl-border-b-dropdown'];\nconst GROUP_TOP_BORDER_CLASSES = ['gl-border-t', 'gl-border-t-dropdown', 'gl-pt-1', 'gl-mt-2'];\nconst SEARCH_INPUT_SELECTOR = '.gl-listbox-search-input';\nvar script = {\n  name: 'GlCollapsibleListbox',\n  HEADER_ITEMS_BORDER_CLASSES,\n  events: {\n    GL_DROPDOWN_SHOWN,\n    GL_DROPDOWN_HIDDEN\n  },\n  components: {\n    GlBaseDropdown,\n    GlListboxItem,\n    GlListboxGroup,\n    GlButton,\n    GlSearchBoxByType,\n    GlListboxSearchInput,\n    GlLoadingIcon,\n    GlIntersectionObserver\n  },\n  model: {\n    prop: 'selected',\n    event: 'select'\n  },\n  props: {\n    /**\n     * Items to display in the dropdown\n     */\n    items: {\n      type: Array,\n      required: false,\n      default: () => [],\n      validator: itemsValidator\n    },\n    /**\n     * Array of selected items values for multi-select and selected item value for single-select\n     */\n    selected: {\n      type: [Array, String, Number],\n      required: false,\n      default: () => []\n    },\n    /**\n     * Allow multi-selection\n     */\n    multiple: {\n      type: Boolean,\n      required: false,\n      default: false\n    },\n    /**\n     * Toggle button text\n     */\n    toggleText: {\n      type: String,\n      required: false,\n      default: ''\n    },\n    /**\n     * Toggle text to be read by screen readers only\n     */\n    textSrOnly: {\n      type: Boolean,\n      required: false,\n      default: false\n    },\n    /** The header text */\n    headerText: {\n      type: String,\n      required: false,\n      default: ''\n    },\n    /**\n     * Styling option - dropdown's toggle category\n     */\n    category: {\n      type: String,\n      required: false,\n      default: buttonCategoryOptions.primary,\n      validator: value => value in buttonCategoryOptions\n    },\n    /**\n     * Styling option - dropdown's toggle variant\n     */\n    variant: {\n      type: String,\n      required: false,\n      default: dropdownVariantOptions.default,\n      validator: value => value in dropdownVariantOptions\n    },\n    /**\n     * The size of the dropdown toggle\n     */\n    size: {\n      type: String,\n      required: false,\n      default: 'medium',\n      validator: value => value in buttonSizeOptions\n    },\n    /**\n     * Icon name that will be rendered in the toggle button\n     */\n    icon: {\n      type: String,\n      required: false,\n      default: ''\n    },\n    /**\n     * Set to \"true\" to disable the dropdown\n     */\n    disabled: {\n      type: Boolean,\n      required: false,\n      default: false\n    },\n    /**\n     * Set to \"true\" when dropdown content (items) is loading\n     * It will render a small loader in the dropdown toggle and make it disabled\n     */\n    loading: {\n      type: Boolean,\n      required: false,\n      default: false\n    },\n    /**\n     * Additional CSS classes to customize toggle appearance\n     */\n    toggleClass: {\n      type: [String, Array, Object],\n      required: false,\n      default: null\n    },\n    /**\n     * Set to \"true\" to hide the caret\n     */\n    noCaret: {\n      type: Boolean,\n      required: false,\n      default: false\n    },\n    /**\n     * Align listbox menu with respect to the toggle button\n     */\n    placement: {\n      type: String,\n      required: false,\n      default: 'bottom-start',\n      validator: value => Object.keys(dropdownPlacements).includes(value)\n    },\n    /**\n     * Center selected item checkmark\n     */\n    isCheckCentered: {\n      type: Boolean,\n      required: false,\n      default: false\n    },\n    /**\n     * The `aria-labelledby` attribute value for the toggle button\n     * Provide the string of ids seperated by space\n     */\n    toggleAriaLabelledBy: {\n      type: String,\n      required: false,\n      default: null\n    },\n    /**\n     * The `aria-labelledby` attribute value for the list of options\n     * Provide the string of ids seperated by space\n     */\n    listAriaLabelledBy: {\n      type: String,\n      required: false,\n      default: null\n    },\n    /**\n     * Enable search\n     */\n    searchable: {\n      type: Boolean,\n      required: false,\n      default: false\n    },\n    /**\n     * Set to \"true\" when items search is in progress.\n     * It will display loading icon below the search input\n     */\n    searching: {\n      type: Boolean,\n      required: false,\n      default: false\n    },\n    /**\n     * Enables infinite scroll.\n     * When set to `true`, the `@bottom-reached` event will be fired when\n     * the bottom of the listbox is scrolled to.\n     * Does not support groups.\n     */\n    infiniteScroll: {\n      type: Boolean,\n      required: false,\n      default: false\n    },\n    /**\n     * This prop is used for infinite scroll.\n     * It represents the total number of items that exist,\n     * even if they have not yet been loaded.\n     * Do not set this prop if the total number of items is unknown.\n     */\n    totalItems: {\n      type: Number,\n      required: false,\n      default: null\n    },\n    /**\n     * This prop is used for infinite scroll.\n     * Set to `true` when more items are being loaded.\n     */\n    infiniteScrollLoading: {\n      type: Boolean,\n      required: false,\n      default: false\n    },\n    /**\n     * Message to be displayed when filtering produced no results\n     */\n    noResultsText: {\n      type: String,\n      required: false,\n      default: 'No results found'\n    },\n    /**\n     * Search input placeholder text and aria-label\n     */\n    searchPlaceholder: {\n      type: String,\n      required: false,\n      default: 'Search'\n    },\n    /**\n     * The reset button's label, to be rendered in the header. If this is omitted, the button is not\n     * rendered.\n     * The reset button requires a header to be set, so this prop should be used in conjunction with\n     * headerText.\n     */\n    resetButtonLabel: {\n      type: String,\n      required: false,\n      default: ''\n    },\n    /**\n     * The select all button's label, to be rendered in the header. If this is omitted, the button is not\n     * rendered.\n     * The select all button requires a header to be set, so this prop should be used in conjunction with\n     * headerText.\n     */\n    showSelectAllButtonLabel: {\n      type: String,\n      required: false,\n      default: ''\n    },\n    /**\n     * Render the toggle button as a block element\n     */\n    block: {\n      type: Boolean,\n      required: false,\n      default: false\n    },\n    /**\n     * Custom offset to be applied to Floating UI's offset middleware.\n     * https://floating-ui.com/docs/offset\n     */\n    dropdownOffset: {\n      type: [Number, Object],\n      required: false,\n      default: undefined\n    },\n    /**\n     * Lets the dropdown extend to match its content's width, up to a maximum width\n     * defined by the `$gl-new-dropdown-max-width` variable.\n     */\n    fluidWidth: {\n      type: Boolean,\n      required: false,\n      default: false\n    },\n    /**\n     * Strategy to be applied by computePosition. If the dropdown's container is too short for it to\n     * fit in, setting this to fixed will let it position itself above its container.\n     * https://floating-ui.com/docs/computePosition#strategy\n     */\n    positioningStrategy: {\n      type: String,\n      required: false,\n      default: POSITION_ABSOLUTE,\n      validator: strategy => [POSITION_ABSOLUTE, POSITION_FIXED].includes(strategy)\n    },\n    /**\n     * Opens dropdown on render\n     */\n    startOpened: {\n      type: Boolean,\n      required: false,\n      default: false\n    },\n    srOnlyResultsLabel: {\n      type: Function,\n      required: false,\n      default: translatePlural('GlCollapsibleListbox.srOnlyResultsLabel', '%d result', '%d results')\n    }\n  },\n  data() {\n    return {\n      selectedValues: [],\n      toggleId: uniqueId('dropdown-toggle-btn-'),\n      listboxId: uniqueId('listbox-'),\n      nextFocusedItemIndex: null,\n      searchStr: '',\n      topBoundaryVisible: true,\n      bottomBoundaryVisible: true\n    };\n  },\n  computed: {\n    listboxTag() {\n      if (!this.hasItems || isOption(this.items[0])) return 'ul';\n      return 'div';\n    },\n    listboxClasses() {\n      return {\n        'top-scrim-visible': !this.topBoundaryVisible,\n        'bottom-scrim-visible': !this.bottomBoundaryVisible,\n        [GL_DROPDOWN_CONTENTS_CLASS]: true\n      };\n    },\n    itemTag() {\n      return this.listboxTag === 'ul' ? 'li' : 'div';\n    },\n    flattenedOptions() {\n      return flattenedOptions(this.items);\n    },\n    hasItems() {\n      return this.items.length > 0;\n    },\n    listboxToggleText() {\n      if (!this.toggleText) {\n        if (!this.multiple && this.selectedValues.length) {\n          var _this$flattenedOption;\n          return (_this$flattenedOption = this.flattenedOptions.find(_ref => {\n            let {\n              value\n            } = _ref;\n            return value === this.selectedValues[0];\n          })) === null || _this$flattenedOption === void 0 ? void 0 : _this$flattenedOption.text;\n        }\n        return '';\n      }\n      return this.toggleText;\n    },\n    selectedIndices() {\n      return this.selectedValues.map(selected => this.flattenedOptions.findIndex(_ref2 => {\n        let {\n          value\n        } = _ref2;\n        return value === selected;\n      })).sort();\n    },\n    showList() {\n      return this.flattenedOptions.length && !this.searching;\n    },\n    showNoResultsText() {\n      return !this.flattenedOptions.length && !this.searching;\n    },\n    announceSRSearchResults() {\n      return this.searchable && !this.showNoResultsText;\n    },\n    headerId() {\n      return this.headerText && uniqueId('listbox-header-');\n    },\n    showResetButton() {\n      if (!this.resetButtonLabel) {\n        return false;\n      }\n\n      /**\n       * if dropdown has no items\n       * reset all should be hidden\n       */\n      if (!this.hasItems) {\n        return false;\n      }\n\n      // hide if no selection\n      if (!this.selected || this.selected.length === 0) {\n        return false;\n      }\n\n      // only show reset button if show all button is not there\n      return !this.showSelectAllButton;\n    },\n    showSelectAllButton() {\n      if (!this.showSelectAllButtonLabel) {\n        return false;\n      }\n      if (!this.multiple) {\n        return false;\n      }\n\n      /**\n       * if dropdown has no items\n       * select all should be hidden\n       */\n      if (!this.hasItems) {\n        return false;\n      }\n      return this.selected.length !== this.flattenedOptions.length;\n    },\n    showIntersectionObserver() {\n      return this.infiniteScroll && !this.infiniteScrollLoading && !this.loading && !this.searching;\n    },\n    hasCustomToggle() {\n      return Boolean(this.$scopedSlots.toggle);\n    },\n    hasSelection() {\n      return Boolean(this.selectedValues.length);\n    },\n    toggleButtonClasses() {\n      const toggleClasses = [this.toggleClass];\n      if (!this.hasSelection) {\n        toggleClasses.push('!gl-text-subtle');\n      }\n      return toggleClasses;\n    },\n    hasHeader() {\n      return this.headerText || this.searchable;\n    },\n    hasFooter() {\n      return Boolean(this.$scopedSlots.footer);\n    }\n  },\n  watch: {\n    selected: {\n      immediate: true,\n      handler(newSelected) {\n        if (Array.isArray(newSelected)) {\n          if (process.env.NODE_ENV !== 'production' && !this.multiple && newSelected.length) {\n            throw new Error('To allow multi-selection, please, set \"multiple\" property to \"true\"');\n          }\n          this.selectedValues = [...newSelected];\n        } else {\n          this.selectedValues = isNil(newSelected) ? [] : [newSelected];\n        }\n      }\n    },\n    items: {\n      handler() {\n        this.$nextTick(() => {\n          /* Every time the list of items changes (on search),\n           * the observed elements are recreated, thus we need to start obesrving them again */\n          this.observeScroll();\n        });\n      }\n    },\n    ...(process.env.NODE_ENV !== 'production' ? {\n      resetButtonLabel: {\n        immediate: true,\n        handler(newResetButtonLabel) {\n          if (newResetButtonLabel && !this.headerText) {\n            throw new Error('The reset button cannot be rendered without a header. Either provide a header via the headerText prop, or do not provide the resetButtonLabel prop.');\n          }\n        }\n      },\n      showSelectAllButtonLabel: {\n        immediate: true,\n        handler(showSelectAllButtonLabel) {\n          if (showSelectAllButtonLabel && !this.headerText) {\n            throw new Error('The select all button cannot be rendered without a header. Either provide a header via the headerText prop, or do not provide the showSelectAllButtonLabel prop.');\n          }\n        }\n      },\n      infiniteScroll: {\n        immediate: true,\n        handler(newValue) {\n          if (newValue && this.items.some(item => !isOption(item))) {\n            throw new Error('Infinite scroll does not support groups. Please set the \"infiniteScroll\" prop to \"false\"');\n          }\n        }\n      }\n    } : {})\n  },\n  mounted() {\n    if (this.startOpened) {\n      this.open();\n    }\n    this.observeScroll();\n  },\n  beforeDestroy() {\n    var _this$scrollObserver;\n    (_this$scrollObserver = this.scrollObserver) === null || _this$scrollObserver === void 0 ? void 0 : _this$scrollObserver.disconnect();\n  },\n  methods: {\n    open() {\n      this.$refs.baseDropdown.open();\n    },\n    close() {\n      this.$refs.baseDropdown.close();\n    },\n    groupClasses(index) {\n      return index === 0 ? null : GROUP_TOP_BORDER_CLASSES;\n    },\n    onShow() {\n      if (this.searchable) {\n        this.focusSearchInput();\n      } else {\n        var _this$selectedIndices;\n        this.focusItem((_this$selectedIndices = this.selectedIndices[0]) !== null && _this$selectedIndices !== void 0 ? _this$selectedIndices : 0, this.getFocusableListItemElements());\n      }\n      /**\n       * Emitted when dropdown is shown\n       *\n       * @event shown\n       */\n      this.$emit(GL_DROPDOWN_SHOWN);\n    },\n    onHide() {\n      /**\n       * Emitted when dropdown is hidden\n       *\n       * @event hidden\n       */\n      this.$emit(GL_DROPDOWN_HIDDEN);\n      this.nextFocusedItemIndex = null;\n    },\n    onKeydown(event) {\n      const {\n        code,\n        target\n      } = event;\n      const elements = this.getFocusableListItemElements();\n      if (elements.length < 1) return;\n      let stop = true;\n      const isSearchInput = target.matches(SEARCH_INPUT_SELECTOR);\n      if (code === HOME) {\n        if (isSearchInput) {\n          return;\n        }\n        this.focusItem(0, elements);\n      } else if (code === END) {\n        if (isSearchInput) {\n          return;\n        }\n        this.focusItem(elements.length - 1, elements);\n      } else if (code === ARROW_UP) {\n        if (isSearchInput) {\n          return;\n        }\n        if (this.searchable && elements.indexOf(target) === 0) {\n          this.focusSearchInput();\n        } else {\n          this.focusNextItem(event, elements, -1);\n        }\n      } else if (code === ARROW_DOWN) {\n        if (isSearchInput) {\n          this.focusItem(0, elements);\n        } else {\n          this.focusNextItem(event, elements, 1);\n        }\n      } else {\n        stop = false;\n      }\n      if (stop) {\n        stopEvent(event);\n      }\n    },\n    getFocusableListItemElements() {\n      var _this$$refs$list;\n      const items = (_this$$refs$list = this.$refs.list) === null || _this$$refs$list === void 0 ? void 0 : _this$$refs$list.querySelectorAll(ITEM_SELECTOR);\n      return Array.from(items || []);\n    },\n    focusNextItem(event, elements, offset) {\n      const {\n        target\n      } = event;\n      const currentIndex = elements.indexOf(target);\n      const nextIndex = clamp(currentIndex + offset, 0, elements.length - 1);\n      this.focusItem(nextIndex, elements);\n    },\n    focusItem(index, elements) {\n      var _elements$index;\n      this.nextFocusedItemIndex = index;\n      (_elements$index = elements[index]) === null || _elements$index === void 0 ? void 0 : _elements$index.focus();\n    },\n    focusSearchInput() {\n      this.$refs.searchBox.focusInput();\n    },\n    onSelect(item, isSelected) {\n      if (this.multiple) {\n        this.onMultiSelect(item.value, isSelected);\n      } else {\n        this.onSingleSelect(item.value, isSelected);\n      }\n    },\n    isSelected(item) {\n      return this.selectedValues.some(value => value === item.value);\n    },\n    isFocused(item) {\n      return this.nextFocusedItemIndex === this.flattenedOptions.indexOf(item);\n    },\n    onSingleSelect(value, isSelected) {\n      if (isSelected) {\n        /**\n         * Emitted when selection is changed\n         *\n         * @event select\n         */\n        this.$emit('select', value);\n      }\n      this.closeAndFocus();\n    },\n    onMultiSelect(value, isSelected) {\n      if (isSelected) {\n        this.$emit('select', [...this.selectedValues, value]);\n      } else {\n        this.$emit('select', this.selectedValues.filter(selectedValue => selectedValue !== value));\n      }\n    },\n    search(searchTerm) {\n      /**\n       * Emitted when the search query string is changed\n       *\n       * @event search\n       * @type {string}\n       */\n      this.$emit('search', searchTerm);\n    },\n    onResetButtonClicked() {\n      /**\n       * Emitted when the reset button is clicked\n       *\n       * @event reset\n       */\n      this.$emit('reset');\n    },\n    onSelectAllButtonClicked() {\n      /**\n       * Emitted when the select all button is clicked\n       *\n       * @event select-all\n       */\n      this.$emit('select-all');\n    },\n    closeAndFocus() {\n      this.$refs.baseDropdown.closeAndFocus();\n    },\n    onIntersectionObserverAppear() {\n      /**\n       * Emitted when bottom of listbox has been scrolled to.\n       * Used for infinite scroll.\n       *\n       * @event bottom-reached\n       */\n      this.$emit('bottom-reached');\n    },\n    listboxItemMoreItemsAriaAttributes(index) {\n      if (this.totalItems === null) {\n        return {};\n      }\n      return {\n        'aria-setsize': this.totalItems,\n        'aria-posinset': index + 1\n      };\n    },\n    observeScroll() {\n      var _this$scrollObserver2;\n      const root = this.$refs.list;\n      const options = {\n        rootMargin: '8px',\n        root,\n        threshold: 1.0\n      };\n      (_this$scrollObserver2 = this.scrollObserver) === null || _this$scrollObserver2 === void 0 ? void 0 : _this$scrollObserver2.disconnect();\n      const observer = new IntersectionObserver(entries => {\n        entries.forEach(entry => {\n          var _entry$target;\n          this[(_entry$target = entry.target) === null || _entry$target === void 0 ? void 0 : _entry$target.$__visibilityProp] = entry.isIntersecting;\n        });\n      }, options);\n      const topBoundary = this.$refs['top-boundary'];\n      const bottomBoundary = this.$refs['bottom-boundary'];\n      if (topBoundary) {\n        topBoundary.$__visibilityProp = 'topBoundaryVisible';\n        observer.observe(topBoundary);\n      }\n      if (bottomBoundary) {\n        bottomBoundary.$__visibilityProp = 'bottomBoundaryVisible';\n        observer.observe(bottomBoundary);\n      }\n      this.scrollObserver = observer;\n    },\n    isOption\n  }\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('gl-base-dropdown',{ref:\"baseDropdown\",attrs:{\"aria-haspopup\":\"listbox\",\"aria-labelledby\":_vm.toggleAriaLabelledBy,\"block\":_vm.block,\"toggle-id\":_vm.toggleId,\"toggle-text\":_vm.listboxToggleText,\"toggle-class\":_vm.toggleButtonClasses,\"text-sr-only\":_vm.textSrOnly,\"category\":_vm.category,\"variant\":_vm.variant,\"size\":_vm.size,\"icon\":_vm.icon,\"disabled\":_vm.disabled,\"loading\":_vm.loading,\"no-caret\":_vm.noCaret,\"placement\":_vm.placement,\"offset\":_vm.dropdownOffset,\"fluid-width\":_vm.fluidWidth,\"positioning-strategy\":_vm.positioningStrategy},on:_vm._d({},[_vm.$options.events.GL_DROPDOWN_SHOWN,_vm.onShow,_vm.$options.events.GL_DROPDOWN_HIDDEN,_vm.onHide]),scopedSlots:_vm._u([(_vm.hasCustomToggle)?{key:\"toggle\",fn:function(){return [_vm._t(\"toggle\")]},proxy:true}:null],null,true)},[_vm._v(\" \"),(_vm.headerText)?_c('div',{staticClass:\"gl-flex gl-min-h-8 gl-items-center !gl-p-4\",class:_vm.$options.HEADER_ITEMS_BORDER_CLASSES},[_c('div',{staticClass:\"gl-grow gl-pr-2 gl-text-sm gl-font-bold gl-text-strong\",attrs:{\"id\":_vm.headerId,\"data-testid\":\"listbox-header-text\"}},[_vm._v(\"\\n      \"+_vm._s(_vm.headerText)+\"\\n    \")]),_vm._v(\" \"),(_vm.showResetButton)?_c('gl-button',{staticClass:\"!gl-m-0 !gl-w-auto gl-max-w-1/2 gl-flex-shrink-0 gl-text-ellipsis !gl-px-2 !gl-text-sm focus:!gl-shadow-inner-2-blue-400\",attrs:{\"category\":\"tertiary\",\"size\":\"small\",\"data-testid\":\"listbox-reset-button\"},on:{\"click\":_vm.onResetButtonClicked}},[_vm._v(\"\\n      \"+_vm._s(_vm.resetButtonLabel)+\"\\n    \")]):_vm._e(),_vm._v(\" \"),(_vm.showSelectAllButton)?_c('gl-button',{staticClass:\"!gl-m-0 !gl-w-auto gl-max-w-1/2 gl-flex-shrink-0 gl-text-ellipsis !gl-px-2 !gl-text-sm focus:!gl-shadow-inner-2-blue-400\",attrs:{\"category\":\"tertiary\",\"size\":\"small\",\"data-testid\":\"listbox-select-all-button\"},on:{\"click\":_vm.onSelectAllButtonClicked}},[_vm._v(\"\\n      \"+_vm._s(_vm.showSelectAllButtonLabel)+\"\\n    \")]):_vm._e()],1):_vm._e(),_vm._v(\" \"),(_vm.searchable)?_c('div',{class:_vm.$options.HEADER_ITEMS_BORDER_CLASSES},[_c('gl-listbox-search-input',{ref:\"searchBox\",class:{ 'gl-listbox-topmost': !_vm.headerText },attrs:{\"data-testid\":\"listbox-search-input\",\"placeholder\":_vm.searchPlaceholder},on:{\"input\":_vm.search,\"keydown\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }$event.preventDefault();},_vm.onKeydown]},model:{value:(_vm.searchStr),callback:function ($$v) {_vm.searchStr=$$v;},expression:\"searchStr\"}}),_vm._v(\" \"),(_vm.searching)?_c('gl-loading-icon',{staticClass:\"gl-my-3\",attrs:{\"data-testid\":\"listbox-search-loader\",\"size\":\"md\"}}):_vm._e()],1):_vm._e(),_vm._v(\" \"),(_vm.showList)?_c(_vm.listboxTag,{ref:\"list\",tag:\"component\",staticClass:\"gl-new-dropdown-contents gl-new-dropdown-contents-with-scrim-overlay\",class:_vm.listboxClasses,attrs:{\"id\":_vm.listboxId,\"aria-labelledby\":_vm.listAriaLabelledBy || _vm.headerId || _vm.toggleId,\"role\":\"listbox\",\"tabindex\":\"0\"},on:{\"keydown\":_vm.onKeydown}},[_c(_vm.itemTag,{tag:\"component\",staticClass:\"top-scrim-wrapper\",attrs:{\"aria-hidden\":\"true\",\"data-testid\":\"top-scrim\"}},[_c('div',{staticClass:\"top-scrim\",class:{ 'top-scrim-light': !_vm.hasHeader, 'top-scrim-dark': _vm.hasHeader }})]),_vm._v(\" \"),_c(_vm.itemTag,{ref:\"top-boundary\",tag:\"component\",attrs:{\"aria-hidden\":\"true\"}}),_vm._v(\" \"),_vm._l((_vm.items),function(item,index){return [(_vm.isOption(item))?[_c('gl-listbox-item',_vm._b({key:item.value,attrs:{\"data-testid\":(\"listbox-item-\" + (item.value)),\"is-selected\":_vm.isSelected(item),\"is-focused\":_vm.isFocused(item),\"is-check-centered\":_vm.isCheckCentered},on:{\"select\":function($event){return _vm.onSelect(item, $event)}}},'gl-listbox-item',_vm.listboxItemMoreItemsAriaAttributes(index),false),[_vm._t(\"list-item\",function(){return [_vm._v(\"\\n            \"+_vm._s(item.text)+\"\\n          \")]},{\"item\":item})],2)]:[_c('gl-listbox-group',{key:item.text,class:_vm.groupClasses(index),attrs:{\"name\":item.text,\"text-sr-only\":item.textSrOnly},scopedSlots:_vm._u([(_vm.$scopedSlots['group-label'])?{key:\"group-label\",fn:function(){return [_vm._t(\"group-label\",null,{\"group\":item})]},proxy:true}:null],null,true)},[_vm._v(\" \"),_vm._l((item.options),function(option){return _c('gl-listbox-item',{key:option.value,attrs:{\"data-testid\":(\"listbox-item-\" + (option.value)),\"is-selected\":_vm.isSelected(option),\"is-focused\":_vm.isFocused(option),\"is-check-centered\":_vm.isCheckCentered},on:{\"select\":function($event){return _vm.onSelect(option, $event)}}},[_vm._t(\"list-item\",function(){return [_vm._v(\"\\n              \"+_vm._s(option.text)+\"\\n            \")]},{\"item\":option})],2)})],2)]]}),_vm._v(\" \"),(_vm.infiniteScrollLoading)?_c(_vm.itemTag,{tag:\"component\"},[_c('gl-loading-icon',{staticClass:\"gl-my-3\",attrs:{\"data-testid\":\"listbox-infinite-scroll-loader\",\"size\":\"md\"}})],1):_vm._e(),_vm._v(\" \"),(_vm.showIntersectionObserver)?_c('gl-intersection-observer',{on:{\"appear\":_vm.onIntersectionObserverAppear}}):_vm._e(),_vm._v(\" \"),_c(_vm.itemTag,{ref:\"bottom-boundary\",tag:\"component\",attrs:{\"aria-hidden\":\"true\"}}),_vm._v(\" \"),_c(_vm.itemTag,{tag:\"component\",staticClass:\"bottom-scrim-wrapper\",attrs:{\"aria-hidden\":\"true\",\"data-testid\":\"bottom-scrim\"}},[_c('div',{staticClass:\"bottom-scrim\",class:{ '!gl-rounded-none': _vm.hasFooter }})])],2):_vm._e(),_vm._v(\" \"),(_vm.announceSRSearchResults)?_c('span',{staticClass:\"gl-sr-only\",attrs:{\"data-testid\":\"listbox-number-of-results\",\"aria-live\":\"assertive\"}},[_vm._t(\"search-summary-sr-only\",function(){return [_vm._v(\"\\n      \"+_vm._s(_vm.srOnlyResultsLabel(_vm.flattenedOptions.length))+\"\\n    \")]})],2):(_vm.showNoResultsText)?_c('div',{staticClass:\"gl-py-3 gl-pl-7 gl-pr-5 gl-text-base gl-text-subtle\",attrs:{\"aria-live\":\"assertive\",\"data-testid\":\"listbox-no-results-text\"}},[_vm._v(\"\\n    \"+_vm._s(_vm.noResultsText)+\"\\n  \")]):_vm._e(),_vm._v(\" \"),_vm._t(\"footer\")],2)};\nvar __vue_staticRenderFns__ = [];\n\n  /* style */\n  const __vue_inject_styles__ = undefined;\n  /* scoped */\n  const __vue_scope_id__ = undefined;\n  /* module identifier */\n  const __vue_module_identifier__ = undefined;\n  /* functional template */\n  const __vue_is_functional_template__ = false;\n  /* style inject */\n  \n  /* style inject SSR */\n  \n  /* style inject shadow dom */\n  \n\n  \n  const __vue_component__ = __vue_normalize__(\n    { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n    __vue_inject_styles__,\n    __vue_script__,\n    __vue_scope_id__,\n    __vue_is_functional_template__,\n    __vue_module_identifier__,\n    false,\n    undefined,\n    undefined,\n    undefined\n  );\n\nexport default __vue_component__;\nexport { ITEM_SELECTOR, SEARCH_INPUT_SELECTOR };\n","import { memoize } from 'lodash';\nimport AccessorUtilities from '~/lib/utils/accessor';\nimport { __, s__ } from '~/locale';\n\n/**\n * @param {object} command\n * @param {boolean} [command.customizable]\n */\nconst isCustomizable = ({ customizable }) => Boolean(customizable ?? true);\n\nexport const LOCAL_STORAGE_KEY = 'gl-keyboard-shortcuts-customizations';\n\n/**\n * @returns { Object.<string, string[]> } A map of command ID => keys of all\n * keyboard shortcuts that have been customized by the user. These\n * customizations are fetched from `localStorage`. This function is memoized,\n * so its return value will not reflect changes made to the `localStorage` data\n * after it has been called once.\n *\n * @example\n * { \"globalShortcuts.togglePerformanceBar\": [\"p e r f\"] }\n */\nexport const getCustomizations = memoize(() => {\n  let parsedCustomizations = {};\n  const localStorageIsSafe = AccessorUtilities.canUseLocalStorage();\n\n  if (localStorageIsSafe) {\n    try {\n      parsedCustomizations = JSON.parse(localStorage.getItem(LOCAL_STORAGE_KEY) || '{}');\n    } catch (e) {\n      /* do nothing */\n    }\n  }\n\n  return parsedCustomizations;\n});\n\n// All available commands\nexport const TOGGLE_KEYBOARD_SHORTCUTS_DIALOG = {\n  id: 'globalShortcuts.toggleKeyboardShortcutsDialog',\n  description: __('Toggle keyboard shortcuts help dialog'),\n  defaultKeys: ['?'],\n};\n\nexport const GO_TO_YOUR_PROJECTS = {\n  id: 'globalShortcuts.goToYourProjects',\n  description: __('Go to your projects'),\n  defaultKeys: ['shift+p'],\n};\n\nexport const GO_TO_YOUR_GROUPS = {\n  id: 'globalShortcuts.goToYourGroups',\n  description: __('Go to your groups'),\n  defaultKeys: ['shift+g'],\n};\n\nexport const GO_TO_ACTIVITY_FEED = {\n  id: 'globalShortcuts.goToActivityFeed',\n  description: __('Go to the activity feed'),\n  defaultKeys: ['shift+a'],\n};\n\nexport const GO_TO_MILESTONE_LIST = {\n  id: 'globalShortcuts.goToMilestoneList',\n  description: __('Go to the milestone list'),\n  defaultKeys: ['shift+l'],\n};\n\nexport const GO_TO_YOUR_SNIPPETS = {\n  id: 'globalShortcuts.goToYourSnippets',\n  description: __('Go to your snippets'),\n  defaultKeys: ['shift+s'],\n};\n\nexport const START_SEARCH = {\n  id: 'globalShortcuts.startSearch',\n  description: __('Start search'),\n  defaultKeys: ['s', '/'],\n};\n\nexport const FOCUS_FILTER_BAR = {\n  id: 'globalShortcuts.focusFilterBar',\n  description: __('Focus filter bar'),\n  defaultKeys: ['f'],\n};\n\nexport const GO_TO_YOUR_ISSUES = {\n  id: 'globalShortcuts.goToYourIssues',\n  description: __('Go to your issues'),\n  defaultKeys: ['shift+i'],\n};\n\nexport const GO_TO_YOUR_MERGE_REQUESTS = {\n  id: 'globalShortcuts.goToYourMergeRequests',\n  description: __('Go to your merge requests'),\n  defaultKeys: ['shift+m'],\n};\n\nexport const GO_TO_YOUR_REVIEW_REQUESTS = {\n  id: 'globalShortcuts.goToYourReviewRequests',\n  description: __('Go to your review requests'),\n  defaultKeys: ['shift+r'],\n};\n\nexport const GO_TO_YOUR_TODO_LIST = {\n  id: 'globalShortcuts.goToYourTodoList',\n  description: __('Go to your To-Do List'),\n  defaultKeys: ['shift+t'],\n};\n\nexport const TOGGLE_PERFORMANCE_BAR = {\n  id: 'globalShortcuts.togglePerformanceBar',\n  description: __('Toggle the Performance Bar'),\n  defaultKeys: ['p b'], // eslint-disable-line @gitlab/require-i18n-strings\n};\n\nexport const HIDE_APPEARING_CONTENT = {\n  id: 'globalShortcuts.hideAppearingContent',\n  description: __('Hide tooltips or popovers'),\n  defaultKeys: ['esc'],\n};\n\nexport const TOGGLE_SUPER_SIDEBAR = {\n  id: 'globalShortcuts.toggleSuperSidebar',\n  description: __('Toggle the navigation sidebar'),\n  defaultKeys: ['mod+\\\\'], // eslint-disable-line @gitlab/require-i18n-strings\n};\n\nexport const TOGGLE_CANARY = {\n  id: 'globalShortcuts.toggleCanary',\n  description: __('Toggle GitLab Next'),\n  defaultKeys: ['g x'], // eslint-disable-line @gitlab/require-i18n-strings\n};\n\nexport const BOLD_TEXT = {\n  id: 'editing.boldText',\n  description: __('Bold text'),\n  defaultKeys: ['mod+b'],\n  customizable: false,\n};\n\nexport const ITALIC_TEXT = {\n  id: 'editing.italicText',\n  description: __('Italic text'),\n  defaultKeys: ['mod+i'],\n  customizable: false,\n};\n\nexport const STRIKETHROUGH_TEXT = {\n  id: 'editing.strikethroughText',\n  description: __('Strikethrough text'),\n  defaultKeys: ['mod+shift+x'],\n  customizable: false,\n};\n\nexport const LINK_TEXT = {\n  id: 'editing.linkText',\n  description: __('Link text'),\n  defaultKeys: ['mod+k'],\n  customizable: false,\n};\n\nexport const INDENT_LINE = {\n  id: 'editing.indentLine',\n  description: __('Indent line'),\n  defaultKeys: ['mod+]'], // eslint-disable-line @gitlab/require-i18n-strings\n  customizable: false,\n};\n\nexport const OUTDENT_LINE = {\n  id: 'editing.outdentLine',\n  description: __('Outdent line'),\n  defaultKeys: ['mod+['], // eslint-disable-line @gitlab/require-i18n-strings\n  customizable: false,\n};\n\nexport const FIND_AND_REPLACE = {\n  id: 'editing.findAndReplace',\n  description: s__('MarkdownEditor|Find and replace'),\n  defaultKeys: ['mod+f'],\n  customizable: false,\n};\n\nexport const TOGGLE_MARKDOWN_PREVIEW = {\n  id: 'editing.toggleMarkdownPreview',\n  description: __('Toggle Markdown preview'),\n  // Note: Ideally, keyboard shortcuts should be made cross-platform by using the special `mod` key\n  // instead of binding both `ctrl` and `command` versions of the shortcut.\n  // See https://docs.gitlab.com/ee/development/fe_guide/keyboard_shortcuts.html#make-cross-platform-shortcuts.\n  // However, this particular shortcut has been in place since before the `mod` key was available.\n  // We've chosen to leave this implemented as-is for the time being to avoid breaking people's workflows.\n  // See discussion in https://gitlab.com/gitlab-org/gitlab/-/merge_requests/45308#note_527490548.\n  defaultKeys: ['ctrl+shift+p', 'command+shift+p'],\n};\n\n/**\n * @keydown.up event is handled here: https://gitlab.com/gitlab-org/gitlab/-/blob/f3e807cdff5cf25765894163b4e92f8b2bcf8a68/app/assets/javascripts/notes/components/comment_form.vue#L379\n */\nconst EDIT_RECENT_COMMENT = {\n  id: 'editing.editRecentComment',\n  description: __('Edit your most recent comment in a thread (from an empty textarea)'),\n  defaultKeys: ['up'],\n};\n\nexport const SAVE_CHANGES = {\n  id: 'globalShortcuts.saveChanges',\n  description: __('Submit/save changes'),\n  defaultKeys: ['mod+enter'],\n};\n\nexport const EDIT_WIKI_PAGE = {\n  id: 'wiki.editWikiPage',\n  description: __('Edit wiki page'),\n  defaultKeys: ['e'],\n};\n\nexport const REPO_GRAPH_SCROLL_LEFT = {\n  id: 'repositoryGraph.scrollLeft',\n  description: __('Scroll left'),\n  defaultKeys: ['left', 'h'],\n};\n\nexport const REPO_GRAPH_SCROLL_RIGHT = {\n  id: 'repositoryGraph.scrollRight',\n  description: __('Scroll right'),\n  defaultKeys: ['right', 'l'],\n};\n\nexport const REPO_GRAPH_SCROLL_UP = {\n  id: 'repositoryGraph.scrollUp',\n  description: __('Scroll up'),\n  defaultKeys: ['up', 'k'],\n};\n\nexport const REPO_GRAPH_SCROLL_DOWN = {\n  id: 'repositoryGraph.scrollDown',\n  description: __('Scroll down'),\n  defaultKeys: ['down', 'j'],\n};\n\nexport const REPO_GRAPH_SCROLL_TOP = {\n  id: 'repositoryGraph.scrollToTop',\n  description: __('Scroll to top'),\n  defaultKeys: ['shift+up', 'shift+k'],\n};\n\nexport const REPO_GRAPH_SCROLL_BOTTOM = {\n  id: 'repositoryGraph.scrollToBottom',\n  description: __('Scroll to bottom'),\n  defaultKeys: ['shift+down', 'shift+j'],\n};\n\nexport const GO_TO_PROJECT_OVERVIEW = {\n  id: 'project.goToOverview',\n  description: __(\"Go to the project's overview page\"),\n  defaultKeys: ['g o'], // eslint-disable-line @gitlab/require-i18n-strings\n};\n\nexport const GO_TO_PROJECT_ACTIVITY_FEED = {\n  id: 'project.goToActivityFeed',\n  description: __(\"Go to the project's activity feed\"),\n  defaultKeys: ['g v'], // eslint-disable-line @gitlab/require-i18n-strings\n};\n\nexport const GO_TO_PROJECT_RELEASES = {\n  id: 'project.goToReleases',\n  description: __('Go to releases'),\n  defaultKeys: ['g r'], // eslint-disable-line @gitlab/require-i18n-strings\n};\n\nexport const GO_TO_PROJECT_FILES = {\n  id: 'project.goToFiles',\n  description: __('Go to files'),\n  defaultKeys: ['g f'], // eslint-disable-line @gitlab/require-i18n-strings\n};\n\nexport const START_SEARCH_PROJECT_FILE = {\n  id: 'project.startSearchFile',\n  description: __('Go to find file'),\n  defaultKeys: ['t'],\n};\n\nexport const GO_TO_PROJECT_COMMITS = {\n  id: 'project.goToCommits',\n  description: __('Go to commits'),\n  defaultKeys: ['g c'], // eslint-disable-line @gitlab/require-i18n-strings\n};\n\nexport const GO_TO_PROJECT_REPO_GRAPH = {\n  id: 'project.goToRepoGraph',\n  description: __('Go to repository graph'),\n  defaultKeys: ['g n'], // eslint-disable-line @gitlab/require-i18n-strings\n};\n\nexport const GO_TO_PROJECT_REPO_CHARTS = {\n  id: 'project.goToRepoCharts',\n  description: __('Go to repository charts'),\n  defaultKeys: ['g d'], // eslint-disable-line @gitlab/require-i18n-strings\n};\n\nexport const GO_TO_PROJECT_ISSUES = {\n  id: 'project.goToIssues',\n  description: __('Go to issues'),\n  defaultKeys: ['g i'], // eslint-disable-line @gitlab/require-i18n-strings\n};\n\nexport const NEW_ISSUE = {\n  id: 'project.newIssue',\n  description: __('New issue'),\n  defaultKeys: ['i'],\n};\n\nexport const GO_TO_PROJECT_ISSUE_BOARDS = {\n  id: 'project.goToIssueBoards',\n  description: __('Go to issue boards'),\n  defaultKeys: ['g b'], // eslint-disable-line @gitlab/require-i18n-strings\n};\n\nexport const GO_TO_PROJECT_MERGE_REQUESTS = {\n  id: 'project.goToMergeRequests',\n  description: __('Go to merge requests'),\n  defaultKeys: ['g m'], // eslint-disable-line @gitlab/require-i18n-strings\n};\n\nexport const GO_TO_PROJECT_PIPELINES = {\n  id: 'project.goToPipelines',\n  description: __('Go to pipelines'),\n  defaultKeys: ['g p'], // eslint-disable-line @gitlab/require-i18n-strings\n};\n\nexport const GO_TO_PROJECT_JOBS = {\n  id: 'project.goToJobs',\n  description: __('Go to jobs'),\n  defaultKeys: ['g j'], // eslint-disable-line @gitlab/require-i18n-strings\n};\n\nexport const GO_TO_PROJECT_ENVIRONMENTS = {\n  id: 'project.goToEnvironments',\n  description: __('Go to environments'),\n  defaultKeys: ['g e'], // eslint-disable-line @gitlab/require-i18n-strings\n};\n\nexport const GO_TO_PROJECT_KUBERNETES = {\n  id: 'project.goToKubernetes',\n  description: __('Go to kubernetes'),\n  defaultKeys: ['g k'], // eslint-disable-line @gitlab/require-i18n-strings\n};\n\nexport const GO_TO_PROJECT_SNIPPETS = {\n  id: 'project.goToSnippets',\n  description: __('Go to snippets'),\n  defaultKeys: ['g s'], // eslint-disable-line @gitlab/require-i18n-strings\n};\n\nexport const GO_TO_PROJECT_WIKI = {\n  id: 'project.goToWiki',\n  description: __('Go to wiki'),\n  defaultKeys: ['g w'], // eslint-disable-line @gitlab/require-i18n-strings\n};\n\nexport const GO_TO_PROJECT_WEBIDE = {\n  id: 'project.goToWebIDE',\n  description: __('Open in Web IDE'),\n  defaultKeys: ['.'],\n};\n\nexport const PROJECT_FILES_MOVE_SELECTION_UP = {\n  id: 'projectFiles.moveSelectionUp',\n  description: __('Move selection up'),\n  defaultKeys: ['up'],\n};\n\nexport const PROJECT_FILES_MOVE_SELECTION_DOWN = {\n  id: 'projectFiles.moveSelectionDown',\n  description: __('Move selection down'),\n  defaultKeys: ['down'],\n};\n\nexport const PROJECT_FILES_OPEN_SELECTION = {\n  id: 'projectFiles.openSelection',\n  description: __('Open Selection'),\n  defaultKeys: ['enter'],\n};\n\nexport const PROJECT_FILES_GO_BACK = {\n  id: 'projectFiles.goBack',\n  description: __('Go back (while searching for files)'),\n  defaultKeys: ['esc'],\n};\n\nexport const PROJECT_FILES_GO_TO_PERMALINK = {\n  id: 'projectFiles.goToFilePermalink',\n  description: __('Go to file permalink (while viewing a file)'),\n  defaultKeys: ['y'],\n};\n\nexport const PROJECT_FILES_GO_TO_COMPARE = {\n  id: 'projectFiles.goToCompare',\n  description: __('Compare Branches'),\n  defaultKeys: ['shift+c'],\n};\n\nexport const ISSUABLE_COMMENT_OR_REPLY = {\n  id: 'issuables.commentReply',\n  description: __('Comment/Reply (quoting selected text)'),\n  defaultKeys: ['r'],\n};\n\nexport const ISSUABLE_EDIT_DESCRIPTION = {\n  id: 'issuables.editDescription',\n  description: __('Edit description'),\n  defaultKeys: ['e'],\n};\n\nexport const ISSUABLE_CHANGE_LABEL = {\n  id: 'issuables.changeLabel',\n  description: __('Change label'),\n  defaultKeys: ['l'],\n};\n\nexport const ISSUABLE_COPY_REF = {\n  id: 'issuables.copyIssuableRef',\n  description: __('Copy reference'),\n  defaultKeys: ['c r'], // eslint-disable-line @gitlab/require-i18n-strings\n};\n\nexport const ISSUE_MR_CHANGE_ASSIGNEE = {\n  id: 'issuesMRs.changeAssignee',\n  description: __('Change assignee'),\n  defaultKeys: ['a'],\n};\n\nexport const ISSUE_MR_CHANGE_MILESTONE = {\n  id: 'issuesMRs.changeMilestone',\n  description: __('Change milestone'),\n  defaultKeys: ['m'],\n};\n\nexport const MR_NEXT_FILE_IN_DIFF = {\n  id: 'mergeRequests.nextFileInDiff',\n  description: __('Next file in diff'),\n  defaultKeys: [']', 'j'],\n};\n\nexport const MR_PREVIOUS_FILE_IN_DIFF = {\n  id: 'mergeRequests.previousFileInDiff',\n  description: __('Previous file in diff'),\n  defaultKeys: ['[', 'k'],\n};\n\nexport const MR_GO_TO_FILE = {\n  id: 'mergeRequests.goToFile',\n  description: __('Go to file'),\n  defaultKeys: ['mod+p', 't'],\n  customizable: false,\n};\n\nexport const MR_TOGGLE_FILE_BROWSER = {\n  id: 'mergeRequests.toggleFileBrowser',\n  description: __('Toggle file browser'),\n  defaultKeys: ['f'],\n  customizable: false,\n};\n\nexport const MR_ADD_TO_REVIEW = {\n  id: 'mergeRequests.addToReview',\n  description: __('Add your comment to a review'),\n  defaultKeys: ['mod+enter'],\n  customizable: false,\n};\n\nexport const MR_ADD_COMMENT_NOW = {\n  id: 'mergeRequests.addCommentNow',\n  description: __('Publish your comment immediately'),\n  defaultKeys: ['shift+mod+enter'],\n  customizable: false,\n};\n\nexport const MR_NEXT_UNRESOLVED_DISCUSSION = {\n  id: 'mergeRequests.nextUnresolvedDiscussion',\n  description: __('Next unresolved thread'),\n  defaultKeys: ['n'],\n};\n\nexport const MR_PREVIOUS_UNRESOLVED_DISCUSSION = {\n  id: 'mergeRequests.previousUnresolvedDiscussion',\n  description: __('Previous unresolved thread'),\n  defaultKeys: ['p'],\n};\n\nexport const MR_COPY_SOURCE_BRANCH_NAME = {\n  id: 'mergeRequests.copySourceBranchName',\n  description: __('Copy source branch name'),\n  defaultKeys: ['b'],\n};\n\nexport const MR_EXPAND_ALL_FILES = {\n  id: 'mergeRequests.expandAllFiles',\n  description: __('Expand all files'),\n  defaultKeys: [';'],\n};\n\nexport const MR_COLLAPSE_ALL_FILES = {\n  id: 'mergeRequests.collapseAllFiles',\n  description: __('Collapse all files'),\n  // eslint-disable-next-line @gitlab/require-i18n-strings\n  defaultKeys: ['shift+;'],\n};\n\nexport const MR_COMMITS_NEXT_COMMIT = {\n  id: 'mergeRequestCommits.nextCommit',\n  description: __('Next commit'),\n  defaultKeys: ['c'],\n};\n\nexport const MR_COMMITS_PREVIOUS_COMMIT = {\n  id: 'mergeRequestCommits.previousCommit',\n  description: __('Previous commit'),\n  defaultKeys: ['x'],\n};\n\nexport const ISSUE_NEXT_DESIGN = {\n  id: 'issues.nextDesign',\n  description: __('Next design'),\n  defaultKeys: ['right'],\n};\n\nexport const ISSUE_PREVIOUS_DESIGN = {\n  id: 'issues.previousDesign',\n  description: __('Previous design'),\n  defaultKeys: ['left'],\n};\n\nexport const ISSUE_CLOSE_DESIGN = {\n  id: 'issues.closeDesign',\n  description: __('Close design'),\n  defaultKeys: ['esc'],\n};\n\nexport const SIDEBAR_CLOSE_WIDGET = {\n  id: 'sidebar.closeWidget',\n  description: __('Close sidebar widget'),\n  defaultKeys: ['esc'],\n};\n\n/**\n * Legacy Web IDE uses the same shortcuts as MR_GO_TO_FILE, from this shared component:\n * https://gitlab.com/gitlab-org/gitlab/-/blob/f3e807cdff5cf25765894163b4e92f8b2bcf8a68/app/assets/javascripts/vue_shared/components/file_finder/index.vue#L6\n */\nconst WEB_IDE_GO_TO_FILE = {\n  id: 'webIDE.goToFile',\n  description: __('Go to file'),\n  defaultKeys: ['mod+p', 't'],\n  customizable: false /* customize MR_GO_TO_FILE instead */,\n};\n\n/**\n * Legacy Web IDE uses @keydown.ctrl.enter and @keydown.meta.enter events here:\n * https://gitlab.com/gitlab-org/gitlab/-/blob/f3e807cdff5cf25765894163b4e92f8b2bcf8a68/app/assets/javascripts/ide/components/commit_sidebar/message_field.vue#L122-123\n */\nconst WEB_IDE_COMMIT = {\n  id: 'webIDE.commit',\n  description: __('Commit (when editing commit message)'),\n  defaultKeys: ['mod+enter'],\n  customizable: false,\n};\n// All keybinding groups\nconst GLOBAL_SHORTCUTS_GROUP = {\n  id: 'globalShortcuts',\n  name: __('Global Shortcuts'),\n  keybindings: [\n    TOGGLE_KEYBOARD_SHORTCUTS_DIALOG,\n    GO_TO_YOUR_PROJECTS,\n    GO_TO_YOUR_GROUPS,\n    GO_TO_ACTIVITY_FEED,\n    GO_TO_MILESTONE_LIST,\n    GO_TO_YOUR_SNIPPETS,\n    START_SEARCH,\n    FOCUS_FILTER_BAR,\n    GO_TO_YOUR_ISSUES,\n    GO_TO_YOUR_MERGE_REQUESTS,\n    GO_TO_YOUR_REVIEW_REQUESTS,\n    GO_TO_YOUR_TODO_LIST,\n    TOGGLE_PERFORMANCE_BAR,\n    HIDE_APPEARING_CONTENT,\n    TOGGLE_SUPER_SIDEBAR,\n  ],\n};\n\nexport const EDITING_SHORTCUTS_GROUP = {\n  id: 'editing',\n  name: __('Editing'),\n  keybindings: [\n    BOLD_TEXT,\n    ITALIC_TEXT,\n    STRIKETHROUGH_TEXT,\n    LINK_TEXT,\n    TOGGLE_MARKDOWN_PREVIEW,\n    FIND_AND_REPLACE,\n    EDIT_RECENT_COMMENT,\n    SAVE_CHANGES,\n  ],\n};\n\nconst WIKI_SHORTCUTS_GROUP = {\n  id: 'wiki',\n  name: __('Wiki'),\n  keybindings: [EDIT_WIKI_PAGE],\n};\n\nconst REPOSITORY_GRAPH_SHORTCUTS_GROUP = {\n  id: 'repositoryGraph',\n  name: __('Repository Graph'),\n  keybindings: [\n    REPO_GRAPH_SCROLL_LEFT,\n    REPO_GRAPH_SCROLL_RIGHT,\n    REPO_GRAPH_SCROLL_UP,\n    REPO_GRAPH_SCROLL_DOWN,\n    REPO_GRAPH_SCROLL_TOP,\n    REPO_GRAPH_SCROLL_BOTTOM,\n  ],\n};\n\nconst PROJECT_SHORTCUTS_GROUP = {\n  id: 'project',\n  name: __('Project'),\n  keybindings: [\n    GO_TO_PROJECT_OVERVIEW,\n    GO_TO_PROJECT_ACTIVITY_FEED,\n    GO_TO_PROJECT_RELEASES,\n    GO_TO_PROJECT_FILES,\n    START_SEARCH_PROJECT_FILE,\n    GO_TO_PROJECT_COMMITS,\n    GO_TO_PROJECT_REPO_GRAPH,\n    GO_TO_PROJECT_REPO_CHARTS,\n    GO_TO_PROJECT_ISSUES,\n    NEW_ISSUE,\n    GO_TO_PROJECT_ISSUE_BOARDS,\n    GO_TO_PROJECT_MERGE_REQUESTS,\n    GO_TO_PROJECT_PIPELINES,\n    GO_TO_PROJECT_JOBS,\n    GO_TO_PROJECT_ENVIRONMENTS,\n    GO_TO_PROJECT_KUBERNETES,\n    GO_TO_PROJECT_SNIPPETS,\n    GO_TO_PROJECT_WIKI,\n    GO_TO_PROJECT_WEBIDE,\n  ],\n};\n\nconst PROJECT_FILES_SHORTCUTS_GROUP = {\n  id: 'projectFiles',\n  name: __('Project Files'),\n  keybindings: [\n    PROJECT_FILES_MOVE_SELECTION_UP,\n    PROJECT_FILES_MOVE_SELECTION_DOWN,\n    PROJECT_FILES_OPEN_SELECTION,\n    PROJECT_FILES_GO_BACK,\n    PROJECT_FILES_GO_TO_PERMALINK,\n    PROJECT_FILES_GO_TO_COMPARE,\n  ],\n};\n\nconst ISSUABLE_SHORTCUTS_GROUP = {\n  id: 'issuables',\n  name: __('Epics, issues, and merge requests'),\n  keybindings: [\n    ISSUABLE_COMMENT_OR_REPLY,\n    ISSUABLE_EDIT_DESCRIPTION,\n    ISSUABLE_CHANGE_LABEL,\n    ISSUABLE_COPY_REF,\n  ],\n};\n\nconst ISSUE_MR_SHORTCUTS_GROUP = {\n  id: 'issuesMRs',\n  name: __('Issues and merge requests'),\n  keybindings: [ISSUE_MR_CHANGE_ASSIGNEE, ISSUE_MR_CHANGE_MILESTONE],\n};\n\nconst MR_SHORTCUTS_GROUP = {\n  id: 'mergeRequests',\n  name: __('Merge requests'),\n  keybindings: [\n    MR_NEXT_FILE_IN_DIFF,\n    MR_PREVIOUS_FILE_IN_DIFF,\n    MR_GO_TO_FILE,\n    MR_NEXT_UNRESOLVED_DISCUSSION,\n    MR_PREVIOUS_UNRESOLVED_DISCUSSION,\n    MR_COPY_SOURCE_BRANCH_NAME,\n    MR_TOGGLE_FILE_BROWSER,\n    MR_ADD_TO_REVIEW,\n    MR_ADD_COMMENT_NOW,\n  ],\n};\n\nconst MR_COMMITS_SHORTCUTS_GROUP = {\n  id: 'mergeRequestCommits',\n  name: __('Merge request commits'),\n  keybindings: [MR_COMMITS_NEXT_COMMIT, MR_COMMITS_PREVIOUS_COMMIT],\n};\n\nconst ISSUES_SHORTCUTS_GROUP = {\n  id: 'issues',\n  name: __('Issues'),\n  keybindings: [ISSUE_NEXT_DESIGN, ISSUE_PREVIOUS_DESIGN, ISSUE_CLOSE_DESIGN],\n};\n\nconst WEB_IDE_SHORTCUTS_GROUP = {\n  id: 'webIDE',\n  name: __('Legacy Web IDE'),\n  keybindings: [WEB_IDE_GO_TO_FILE, WEB_IDE_COMMIT],\n};\n\nexport const MISC_SHORTCUTS_GROUP = {\n  id: 'misc',\n  name: __('Miscellaneous'),\n  keybindings: [TOGGLE_CANARY],\n};\n\n/** All keybindings, grouped and ordered with descriptions */\nexport const keybindingGroups = [\n  GLOBAL_SHORTCUTS_GROUP,\n  EDITING_SHORTCUTS_GROUP,\n  WIKI_SHORTCUTS_GROUP,\n  REPOSITORY_GRAPH_SHORTCUTS_GROUP,\n  PROJECT_SHORTCUTS_GROUP,\n  PROJECT_FILES_SHORTCUTS_GROUP,\n  ISSUABLE_SHORTCUTS_GROUP,\n  ISSUE_MR_SHORTCUTS_GROUP,\n  MR_SHORTCUTS_GROUP,\n  MR_COMMITS_SHORTCUTS_GROUP,\n  ISSUES_SHORTCUTS_GROUP,\n  WEB_IDE_SHORTCUTS_GROUP,\n  MISC_SHORTCUTS_GROUP,\n];\n\n/**\n * Gets keyboard shortcuts associated with a command\n *\n * @param {Object} command The command object. All command objects are\n *     available as imports from this file.\n * @param {string} command.id\n * @param {string[]} command.defaultKeys\n * @param {boolean} [command.customizable]\n *\n * @returns {string[]} An array of keyboard shortcut strings bound to the command\n *\n * @example\n * import { keysFor, TOGGLE_PERFORMANCE_BAR } from '~/behaviors/shortcuts/keybindings'\n *\n * Mousetrap.bind(keysFor(TOGGLE_PERFORMANCE_BAR), handler);\n */\nexport const keysFor = (command) => {\n  if (!isCustomizable(command)) {\n    // if the command is defined with `customizable: false`,\n    // don't allow this command to be customized.\n    return command.defaultKeys;\n  }\n\n  return getCustomizations()[command.id] || command.defaultKeys;\n};\n","import memoize from 'lodash/memoize';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nconst getObserver = memoize(options => new IntersectionObserver(entries => {\n  entries.forEach(entry => {\n    entry.target.$_gl_intersectionHandler(entry);\n  });\n}, options || {}));\nvar script = {\n  name: 'GlIntersectionObserver',\n  props: {\n    /**\n     * Extra options to pass directly to the intersection observer API.\n     */\n    options: {\n      type: Object,\n      required: false,\n      default: null\n    }\n  },\n  mounted() {\n    const observer = getObserver(this.options);\n    this.$el.$_gl_intersectionHandler = entry => {\n      /**\n       * Emitted when the element's visibility changes\n       */\n      this.$emit('update', entry);\n      if (entry.isIntersecting) {\n        /**\n         * Emitted when the element appears on the page\n         */\n        this.$emit('appear');\n      } else {\n        /**\n         * Emitted when the element disappears from the page\n         */\n        this.$emit('disappear');\n      }\n    };\n    this.$el.$_gl_intersectionObserver = observer;\n    observer.observe(this.$el);\n  },\n  destroyed() {\n    this.$el.$_gl_intersectionObserver.unobserve(this.$el);\n    delete this.$el.$_gl_intersectionHandler;\n    delete this.$el.$_gl_intersectionObserver;\n  },\n  // Expose getObserver method for tests\n  getObserver\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('div',[_vm._t(\"default\")],2)};\nvar __vue_staticRenderFns__ = [];\n\n  /* style */\n  const __vue_inject_styles__ = undefined;\n  /* scoped */\n  const __vue_scope_id__ = undefined;\n  /* module identifier */\n  const __vue_module_identifier__ = undefined;\n  /* functional template */\n  const __vue_is_functional_template__ = false;\n  /* style inject */\n  \n  /* style inject SSR */\n  \n  /* style inject shadow dom */\n  \n\n  \n  const __vue_component__ = __vue_normalize__(\n    { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n    __vue_inject_styles__,\n    __vue_script__,\n    __vue_scope_id__,\n    __vue_is_functional_template__,\n    __vue_module_identifier__,\n    false,\n    undefined,\n    undefined,\n    undefined\n  );\n\nexport default __vue_component__;\n","export const REQUEST_AUTOCOMPLETE = 'REQUEST_AUTOCOMPLETE';\nexport const RECEIVE_AUTOCOMPLETE_SUCCESS = 'RECEIVE_AUTOCOMPLETE_SUCCESS';\nexport const RECEIVE_AUTOCOMPLETE_ERROR = 'RECEIVE_AUTOCOMPLETE_ERROR';\nexport const CLEAR_AUTOCOMPLETE = 'CLEAR_AUTOCOMPLETE';\nexport const SET_SEARCH = 'SET_SEARCH';\nexport const SET_COMMAND = 'SET_COMMAND';\n","import { omitBy, isNil } from 'lodash';\nimport { objectToQuery } from '~/lib/utils/url_utility';\nimport axios from '~/lib/utils/axios_utils';\nimport { FETCH_TYPES } from '../constants';\nimport * as types from './mutation_types';\n\nexport const autocompleteQuery = ({ state, fetchType }) => {\n  const query = omitBy(\n    {\n      term: state.search,\n      project_id: state.searchContext?.project?.id,\n      project_ref: state.searchContext?.ref,\n      filter: fetchType,\n    },\n    isNil,\n  );\n\n  return `${state.autocompletePath}?${objectToQuery(query)}`;\n};\n\nconst doFetch = ({ commit, state, fetchType }) => {\n  return axios\n    .get(autocompleteQuery({ state, fetchType }))\n    .then(({ data }) => {\n      commit(types.RECEIVE_AUTOCOMPLETE_SUCCESS, data);\n    })\n    .catch(() => {\n      commit(types.RECEIVE_AUTOCOMPLETE_ERROR);\n    });\n};\n\nexport const fetchAutocompleteOptions = ({ commit, state }) => {\n  commit(types.REQUEST_AUTOCOMPLETE);\n  const promises = FETCH_TYPES.map((fetchType) => doFetch({ commit, state, fetchType }));\n\n  return Promise.all(promises);\n};\n\nexport const clearAutocomplete = ({ commit }) => {\n  commit(types.CLEAR_AUTOCOMPLETE);\n};\n\nexport const setSearch = ({ commit }, value) => {\n  commit(types.SET_SEARCH, value);\n};\n\nexport const setCommand = ({ commit }, value) => {\n  commit(types.SET_COMMAND, value);\n};\n","import { omitBy, isNil } from 'lodash';\nimport { objectToQuery } from '~/lib/utils/url_utility';\nimport { sprintf } from '~/locale';\nimport {\n  ISSUES_CATEGORY,\n  MERGE_REQUEST_CATEGORY,\n  MSG_ISSUES_ASSIGNED_TO_ME,\n  MSG_ISSUES_IVE_CREATED,\n  MSG_MR_ASSIGNED_TO_ME,\n  MSG_MR_IM_REVIEWER,\n  MSG_MR_IVE_CREATED,\n  MSG_IN_ALL_GITLAB,\n  PROJECTS_CATEGORY,\n  GROUPS_CATEGORY,\n  SEARCH_RESULTS_ORDER,\n  COMMAND_PALETTE_SEARCH_SCOPE_HEADER,\n  COMMAND_PALETTE_PAGES_SCOPE_HEADER,\n  COMMAND_PALETTE_USERS_SCOPE_HEADER,\n  COMMAND_PALETTE_PROJECTS_SCOPE_HEADER,\n  COMMAND_PALETTE_FILES_SCOPE_HEADER,\n  COMMAND_PALETTE_PAGES_CHAR,\n  COMMAND_PALETTE_USERS_CHAR,\n  COMMAND_PALETTE_PROJECTS_CHAR,\n  COMMAND_PALETTE_FILES_CHAR,\n} from '~/vue_shared/global_search/constants';\nimport { getFormattedItem } from '../utils';\nimport {\n  TRACKING_CLICK_COMMAND_PALETTE_ITEM,\n  SCOPE_SEARCH_PROJECT,\n  SCOPE_SEARCH_GROUP,\n  SCOPE_SEARCH_ALL,\n} from '../command_palette/constants';\n\nimport {\n  ICON_GROUP,\n  ICON_SUBGROUP,\n  ICON_PROJECT,\n  SEARCH_SHORTCUTS_MIN_CHARACTERS,\n} from '../constants';\n\nexport const searchQuery = (state) => {\n  const query = omitBy(\n    {\n      search: state.search,\n      nav_source: 'navbar',\n      project_id: state.searchContext?.project?.id,\n      group_id: state.searchContext?.group?.id,\n      scope: state.searchContext?.scope,\n      snippets: state.searchContext?.for_snippets ? true : null,\n      search_code: state.searchContext?.code_search ? true : null,\n      repository_ref: state.searchContext?.ref,\n    },\n    isNil,\n  );\n\n  return `${state.searchPath}?${objectToQuery(query)}`;\n};\n\nexport const scopedIssuesPath = (state) => {\n  if (state.searchContext?.project?.id && !state.searchContext?.project_metadata?.issues_path) {\n    return false;\n  }\n\n  return (\n    state.searchContext?.project_metadata?.issues_path ||\n    state.searchContext?.group_metadata?.issues_path ||\n    (gon.current_username ? state.issuesPath : false)\n  );\n};\n\nexport const scopedMRPath = (state) => {\n  return (\n    state.searchContext?.project_metadata?.mr_path ||\n    state.searchContext?.group_metadata?.mr_path ||\n    (gon.current_username ? state.mrPath : false)\n  );\n};\n\nexport const defaultSearchOptions = (state, getters) => {\n  const userName = gon.current_username;\n\n  if (!userName) {\n    const options = [];\n\n    if (getters.scopedIssuesPath) {\n      options.push({\n        text: ISSUES_CATEGORY,\n        href: getters.scopedIssuesPath,\n      });\n    }\n\n    if (getters.scopedMRPath) {\n      options.push({\n        text: MERGE_REQUEST_CATEGORY,\n        href: getters.scopedMRPath,\n      });\n    }\n\n    return options;\n  }\n\n  const issues = [\n    {\n      text: MSG_ISSUES_ASSIGNED_TO_ME,\n      href: `${getters.scopedIssuesPath}/?assignee_username=${userName}`,\n    },\n    {\n      text: MSG_ISSUES_IVE_CREATED,\n      href: `${getters.scopedIssuesPath}/?author_username=${userName}`,\n    },\n  ];\n\n  const mergeRequests = [\n    {\n      text: MSG_MR_ASSIGNED_TO_ME,\n      href: `${getters.scopedMRPath}/?assignee_username=${userName}`,\n    },\n    {\n      text: MSG_MR_IM_REVIEWER,\n      href: `${getters.scopedMRPath}/?reviewer_username=${userName}`,\n    },\n    {\n      text: MSG_MR_IVE_CREATED,\n      href: `${getters.scopedMRPath}/?author_username=${userName}`,\n    },\n  ];\n  return [...(getters.scopedIssuesPath ? issues : []), ...mergeRequests];\n};\n\nexport const projectUrl = (state) => {\n  const query = omitBy(\n    {\n      search: state.search,\n      nav_source: 'navbar',\n      project_id: state.searchContext?.project?.id,\n      group_id: state.searchContext?.group?.id,\n      scope: state.searchContext?.scope,\n      snippets: state.searchContext?.for_snippets ? true : null,\n      search_code: state.searchContext?.code_search ? true : null,\n      repository_ref: state.searchContext?.ref,\n    },\n    isNil,\n  );\n\n  return `${state.searchPath}?${objectToQuery(query)}`;\n};\n\nexport const groupUrl = (state) => {\n  const query = omitBy(\n    {\n      search: state.search,\n      nav_source: 'navbar',\n      group_id: state.searchContext?.group?.id,\n      scope: state.searchContext?.scope,\n      snippets: state.searchContext?.for_snippets ? true : null,\n      search_code: state.searchContext?.code_search ? true : null,\n      repository_ref: state.searchContext?.ref,\n    },\n    isNil,\n  );\n\n  return `${state.searchPath}?${objectToQuery(query)}`;\n};\n\nexport const allUrl = (state) => {\n  const query = omitBy(\n    {\n      search: state.search,\n      nav_source: 'navbar',\n      scope: state.searchContext?.scope,\n      snippets: state.searchContext?.for_snippets ? true : null,\n      search_code: state.searchContext?.code_search ? true : null,\n      repository_ref: state.searchContext?.ref,\n    },\n    isNil,\n  );\n\n  return `${state.searchPath}?${objectToQuery(query)}`;\n};\n\nexport const scopedSearchOptions = (state, getters) => {\n  const items = [];\n\n  if (state.searchContext?.project) {\n    items.push({\n      text: SCOPE_SEARCH_PROJECT,\n      scope: state.searchContext.project?.name || '',\n      scopeCategory: PROJECTS_CATEGORY,\n      icon: ICON_PROJECT,\n      href: getters.projectUrl,\n      extraAttrs: {\n        'data-track-action': TRACKING_CLICK_COMMAND_PALETTE_ITEM,\n        'data-track-label': 'scoped_in_project',\n      },\n    });\n  }\n\n  if (state.searchContext?.group) {\n    items.push({\n      text: SCOPE_SEARCH_GROUP,\n      scope: state.searchContext.group?.name || '',\n      scopeCategory: GROUPS_CATEGORY,\n      icon: state.searchContext.group?.full_name?.includes('/') ? ICON_SUBGROUP : ICON_GROUP,\n      href: getters.groupUrl,\n      extraAttrs: {\n        'data-track-action': TRACKING_CLICK_COMMAND_PALETTE_ITEM,\n        'data-track-label': 'scoped_in_group',\n      },\n    });\n  }\n\n  items.push({\n    text: SCOPE_SEARCH_ALL,\n    description: MSG_IN_ALL_GITLAB,\n    href: getters.allUrl,\n    extraAttrs: {\n      'data-track-action': TRACKING_CLICK_COMMAND_PALETTE_ITEM,\n      'data-track-label': 'scoped_in_all',\n    },\n  });\n\n  return items;\n};\n\nexport const scopedSearchGroup = (state, getters) => {\n  let name = sprintf(COMMAND_PALETTE_SEARCH_SCOPE_HEADER, { searchTerm: state.search }, false);\n  const items = getters.scopedSearchOptions?.length > 0 ? getters.scopedSearchOptions : [];\n\n  switch (state.commandChar) {\n    case COMMAND_PALETTE_PAGES_CHAR:\n      name = sprintf(COMMAND_PALETTE_PAGES_SCOPE_HEADER, { searchTerm: state.search }, false);\n      break;\n    case COMMAND_PALETTE_USERS_CHAR:\n      name = sprintf(COMMAND_PALETTE_USERS_SCOPE_HEADER, { searchTerm: state.search }, false);\n      break;\n    case COMMAND_PALETTE_PROJECTS_CHAR:\n      name = sprintf(COMMAND_PALETTE_PROJECTS_SCOPE_HEADER, { searchTerm: state.search }, false);\n      break;\n    case COMMAND_PALETTE_FILES_CHAR:\n      name = sprintf(COMMAND_PALETTE_FILES_SCOPE_HEADER, { searchTerm: state.search }, false);\n      break;\n    default:\n      break;\n  }\n  return { name, items };\n};\n\nexport const autocompleteGroupedSearchOptions = (state) => {\n  const groupedOptions = {};\n  const results = [];\n\n  state.autocompleteOptions.forEach((item) => {\n    const group = groupedOptions[item.category];\n    const formattedItem = getFormattedItem(item, state.searchContext);\n\n    if (group) {\n      group.items.push(formattedItem);\n    } else {\n      groupedOptions[item.category] = {\n        name: formattedItem.category,\n        items: [formattedItem],\n      };\n\n      results.push(groupedOptions[formattedItem.category]);\n    }\n  });\n\n  return results.sort(\n    (a, b) => SEARCH_RESULTS_ORDER.indexOf(a.name) - SEARCH_RESULTS_ORDER.indexOf(b.name),\n  );\n};\n\nexport const searchOptions = (state, getters) => {\n  if (!state.search) {\n    return getters.defaultSearchOptions;\n  }\n\n  const sortedAutocompleteOptions = Object.values(getters.autocompleteGroupedSearchOptions).reduce(\n    (items, group) => {\n      return [...items, ...group.items];\n    },\n    [],\n  );\n\n  if (state.search?.length <= SEARCH_SHORTCUTS_MIN_CHARACTERS) {\n    return sortedAutocompleteOptions;\n  }\n\n  return (getters.scopedSearchOptions ?? []).concat(sortedAutocompleteOptions);\n};\n\nexport const isCommandMode = (state) => {\n  return state.commandChar !== '';\n};\n","import * as types from './mutation_types';\n\nexport default {\n  [types.REQUEST_AUTOCOMPLETE](state) {\n    state.loading = true;\n    state.autocompleteOptions = [];\n    state.autocompleteError = false;\n  },\n  [types.RECEIVE_AUTOCOMPLETE_SUCCESS](state, data) {\n    state.loading = false;\n    state.autocompleteOptions = [...state.autocompleteOptions].concat(data);\n    state.autocompleteError = false;\n  },\n  [types.RECEIVE_AUTOCOMPLETE_ERROR](state) {\n    state.loading = false;\n    state.autocompleteOptions = [];\n    state.autocompleteError = true;\n  },\n  [types.CLEAR_AUTOCOMPLETE](state) {\n    state.autocompleteOptions = [];\n    state.autocompleteError = false;\n  },\n  [types.SET_SEARCH](state, value) {\n    state.search = value;\n  },\n  [types.SET_COMMAND](state, value) {\n    state.commandChar = value;\n  },\n};\n","const createState = ({\n  searchPath,\n  issuesPath,\n  mrPath,\n  autocompletePath,\n  searchContext,\n  search,\n}) => ({\n  searchPath,\n  issuesPath,\n  mrPath,\n  autocompletePath,\n  searchContext,\n  search,\n  autocompleteOptions: [],\n  autocompleteError: false,\n  loading: false,\n  commandChar: '',\n});\nexport default createState;\n","import Vue from 'vue';\n// eslint-disable-next-line no-restricted-imports\nimport Vuex from 'vuex';\nimport * as actions from './actions';\nimport * as getters from './getters';\nimport mutations from './mutations';\nimport createState from './state';\n\nVue.use(Vuex);\n\nexport const getStoreConfig = ({\n  searchPath,\n  issuesPath,\n  mrPath,\n  autocompletePath,\n  searchContext,\n  search,\n}) => ({\n  actions,\n  getters,\n  mutations,\n  state: createState({ searchPath, issuesPath, mrPath, autocompletePath, searchContext, search }),\n});\n\nconst createStore = (config) => new Vuex.Store(getStoreConfig(config));\nexport default createStore;\n","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!./extra_info.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!./extra_info.vue?vue&type=script&lang=js\"","<script>\nexport default {};\n</script>\n<template>\n  <!-- This is intentionally left blank -->\n  <div></div>\n</template>\n","import { render, staticRenderFns } from \"./extra_info.vue?vue&type=template&id=25c6bc34\"\nimport script from \"./extra_info.vue?vue&type=script&lang=js\"\nexport * from \"./extra_info.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('div')\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\nimport { getUserCounts } from '~/api/user_api';\n\nexport const userCounts = Vue.observable({\n  last_update: 0,\n  // The following fields are part of\n  // https://docs.gitlab.com/ee/api/users.html#user-counts\n  todos: 0,\n  assigned_issues: 0,\n  assigned_merge_requests: 0,\n  review_requested_merge_requests: 0,\n});\n\nfunction updateCounts(payload = {}) {\n  if ((payload.last_update ?? 0) < userCounts.last_update) {\n    return;\n  }\n  for (const key in userCounts) {\n    if (Number.isInteger(payload[key])) {\n      userCounts[key] = payload[key];\n    }\n  }\n}\n\nlet broadcastChannel = null;\n\nfunction broadcastUserCounts(data) {\n  broadcastChannel?.postMessage(data);\n}\n\nasync function retrieveUserCountsFromApi() {\n  try {\n    const lastUpdate = Date.now();\n    const { data } = await getUserCounts();\n    const payload = { ...data, last_update: lastUpdate };\n    updateCounts(payload);\n    broadcastUserCounts(userCounts);\n  } catch (e) {\n    // eslint-disable-next-line no-console, @gitlab/require-i18n-strings\n    console.error('Error retrieving user counts', e);\n  }\n}\n\nfunction updateTodos(e) {\n  if (Number.isSafeInteger(e?.detail?.count)) {\n    userCounts.todos = Math.max(e.detail.count, 0);\n  } else if (Number.isSafeInteger(e?.detail?.delta)) {\n    userCounts.todos = Math.max(userCounts.todos + e.detail.delta, 0);\n  }\n}\n\nexport function destroyUserCountsManager() {\n  document.removeEventListener('userCounts:fetch', retrieveUserCountsFromApi);\n  document.removeEventListener('todo:toggle', updateTodos);\n  broadcastChannel?.close();\n  broadcastChannel = null;\n}\n\n/**\n * The createUserCountsManager does three things:\n * 1. Set the initial state of userCounts\n * 2. Create a broadcast channel to communicate user count updates across tabs\n * 3. Add event listeners for other parts in the app which:\n *     - Update todos\n *     - Trigger a refetch of all counts\n */\nexport function createUserCountsManager() {\n  destroyUserCountsManager();\n  document.addEventListener('userCounts:fetch', retrieveUserCountsFromApi);\n  document.addEventListener('todo:toggle', updateTodos);\n\n  if (window.BroadcastChannel && gon?.current_user_id) {\n    broadcastChannel = new BroadcastChannel(`user_counts_${gon?.current_user_id}`);\n    broadcastChannel.onmessage = (ev) => {\n      updateCounts(ev.data);\n    };\n    broadcastUserCounts(userCounts);\n  }\n}\n","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!./brand_logo.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!./brand_logo.vue?vue&type=script&lang=js\"","<script>\nimport { GlTooltipDirective } from '@gitlab/ui';\nimport { __ } from '~/locale';\nimport SafeHtml from '~/vue_shared/directives/safe_html';\nimport logo from '../../../../views/shared/_logo.svg?raw';\n\nexport default {\n  logo,\n  i18n: {\n    homepage: __('Homepage'),\n  },\n  directives: {\n    GlTooltip: GlTooltipDirective,\n    SafeHtml,\n  },\n  inject: ['rootPath'],\n  props: {\n    logoUrl: {\n      type: String,\n      required: false,\n      default: '',\n    },\n  },\n};\n</script>\n\n<template>\n  <a\n    v-gl-tooltip:super-sidebar.right=\"$options.i18n.homepage\"\n    class=\"brand-logo\"\n    :href=\"rootPath\"\n    data-track-action=\"click_link\"\n    data-track-label=\"gitlab_logo_link\"\n    data-track-property=\"nav_core_menu\"\n  >\n    <span class=\"gl-sr-only\">{{ $options.i18n.homepage }}</span>\n    <!-- eslint-disable @gitlab/vue-require-i18n-attribute-strings -->\n    <img\n      v-if=\"logoUrl\"\n      alt=\"\"\n      data-testid=\"brand-header-custom-logo\"\n      :src=\"logoUrl\"\n      class=\"gl-h-6 gl-max-w-full\"\n    />\n    <!-- eslint-enable @gitlab/vue-require-i18n-attribute-strings -->\n    <span\n      v-else\n      v-safe-html=\"$options.logo\"\n      aria-hidden=\"true\"\n      data-testid=\"brand-header-default-logo\"\n    ></span>\n  </a>\n</template>\n","export default \"<svg aria-hidden=\\\"true\\\" role=\\\"img\\\" class=\\\"tanuki-logo\\\" width=\\\"25\\\" height=\\\"24\\\" viewBox=\\\"0 0 25 24\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n  <path class=\\\"tanuki-shape tanuki\\\" d=\\\"m24.507 9.5-.034-.09L21.082.562a.896.896 0 0 0-1.694.091l-2.29 7.01H7.825L5.535.653a.898.898 0 0 0-1.694-.09L.451 9.411.416 9.5a6.297 6.297 0 0 0 2.09 7.278l.012.01.03.022 5.16 3.867 2.56 1.935 1.554 1.176a1.051 1.051 0 0 0 1.268 0l1.555-1.176 2.56-1.935 5.197-3.89.014-.01A6.297 6.297 0 0 0 24.507 9.5Z\\\"\\n        fill=\\\"#E24329\\\"/>\\n  <path class=\\\"tanuki-shape right-cheek\\\" d=\\\"m24.507 9.5-.034-.09a11.44 11.44 0 0 0-4.56 2.051l-7.447 5.632 4.742 3.584 5.197-3.89.014-.01A6.297 6.297 0 0 0 24.507 9.5Z\\\"\\n        fill=\\\"#FC6D26\\\"/>\\n  <path class=\\\"tanuki-shape chin\\\" d=\\\"m7.707 20.677 2.56 1.935 1.555 1.176a1.051 1.051 0 0 0 1.268 0l1.555-1.176 2.56-1.935-4.743-3.584-4.755 3.584Z\\\"\\n        fill=\\\"#FCA326\\\"/>\\n  <path class=\\\"tanuki-shape left-cheek\\\" d=\\\"M5.01 11.461a11.43 11.43 0 0 0-4.56-2.05L.416 9.5a6.297 6.297 0 0 0 2.09 7.278l.012.01.03.022 5.16 3.867 4.745-3.584-7.444-5.632Z\\\"\\n        fill=\\\"#FC6D26\\\"/>\\n</svg>\\n\";","import { render, staticRenderFns } from \"./brand_logo.vue?vue&type=template&id=46893e12\"\nimport script from \"./brand_logo.vue?vue&type=script&lang=js\"\nexport * from \"./brand_logo.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('a',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip:super-sidebar.right\",value:(_vm.$options.i18n.homepage),expression:\"$options.i18n.homepage\",arg:\"super-sidebar\",modifiers:{\"right\":true}}],staticClass:\"brand-logo\",attrs:{\"href\":_vm.rootPath,\"data-track-action\":\"click_link\",\"data-track-label\":\"gitlab_logo_link\",\"data-track-property\":\"nav_core_menu\"}},[_c('span',{staticClass:\"gl-sr-only\"},[_vm._v(_vm._s(_vm.$options.i18n.homepage))]),_vm._v(\" \"),(_vm.logoUrl)?_c('img',{staticClass:\"gl-h-6 gl-max-w-full\",attrs:{\"alt\":\"\",\"data-testid\":\"brand-header-custom-logo\",\"src\":_vm.logoUrl}}):_c('span',{directives:[{name:\"safe-html\",rawName:\"v-safe-html\",value:(_vm.$options.logo),expression:\"$options.logo\"}],attrs:{\"aria-hidden\":\"true\",\"data-testid\":\"brand-header-default-logo\"}})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport {\n  GlDisclosureDropdown,\n  GlTooltipDirective,\n  GlDisclosureDropdownGroup,\n  GlDisclosureDropdownItem,\n} from '@gitlab/ui';\nimport InviteMembersTrigger from '~/invite_members/components/invite_members_trigger.vue';\nimport { __ } from '~/locale';\nimport {\n  TOP_NAV_INVITE_MEMBERS_COMPONENT,\n  TRIGGER_ELEMENT_DISCLOSURE_DROPDOWN,\n} from '~/invite_members/constants';\nimport { WORK_ITEM_TYPE_ENUM_EPIC, CREATE_NEW_WORK_ITEM_MODAL } from '~/work_items/constants';\nimport { DROPDOWN_Y_OFFSET, IMPERSONATING_OFFSET } from '../constants';\n\n// Left offset required for the dropdown to be aligned with the super sidebar\nconst DROPDOWN_X_OFFSET_BASE = -177;\nconst DROPDOWN_X_OFFSET_IMPERSONATING = DROPDOWN_X_OFFSET_BASE + IMPERSONATING_OFFSET;\n\nexport default {\n  components: {\n    GlDisclosureDropdown,\n    GlDisclosureDropdownGroup,\n    GlDisclosureDropdownItem,\n    InviteMembersTrigger,\n    CreateWorkItemModal: () => import('~/work_items/components/create_work_item_modal.vue'),\n  },\n  directives: {\n    GlTooltip: GlTooltipDirective,\n  },\n  i18n: {\n    createNew: __('Create new...'),\n  },\n  inject: ['isImpersonating'],\n  props: {\n    groups: {\n      type: Array,\n      required: true,\n    },\n  },\n  data() {\n    return {\n      dropdownOpen: false,\n      showCreateWorkItemModal: false,\n    };\n  },\n  computed: {\n    dropdownOffset() {\n      return {\n        mainAxis: DROPDOWN_Y_OFFSET,\n        crossAxis: this.isImpersonating ? DROPDOWN_X_OFFSET_IMPERSONATING : DROPDOWN_X_OFFSET_BASE,\n      };\n    },\n  },\n  methods: {\n    isInvitedMembers(groupItem) {\n      return groupItem.component === TOP_NAV_INVITE_MEMBERS_COMPONENT;\n    },\n    isCreateWorkItem(groupItem) {\n      return groupItem.component === CREATE_NEW_WORK_ITEM_MODAL;\n    },\n  },\n  toggleId: 'create-menu-toggle',\n  TRIGGER_ELEMENT_DISCLOSURE_DROPDOWN,\n  WORK_ITEM_TYPE_ENUM_EPIC,\n};\n</script>\n\n<template>\n  <gl-disclosure-dropdown\n    v-gl-tooltip:super-sidebar.bottom=\"dropdownOpen ? '' : $options.i18n.createNew\"\n    category=\"tertiary\"\n    icon=\"plus\"\n    no-caret\n    text-sr-only\n    :toggle-text=\"$options.i18n.createNew\"\n    :toggle-id=\"$options.toggleId\"\n    :dropdown-offset=\"dropdownOffset\"\n    data-testid=\"new-menu-toggle\"\n    @shown=\"dropdownOpen = true\"\n    @hidden=\"dropdownOpen = false\"\n  >\n    <gl-disclosure-dropdown-group\n      v-for=\"(group, index) in groups\"\n      :key=\"group.name\"\n      :bordered=\"index !== 0\"\n      :group=\"group\"\n    >\n      <template v-for=\"groupItem in group.items\">\n        <invite-members-trigger\n          v-if=\"isInvitedMembers(groupItem)\"\n          :key=\"`${groupItem.text}-trigger`\"\n          trigger-source=\"top_nav\"\n          :trigger-element=\"$options.TRIGGER_ELEMENT_DISCLOSURE_DROPDOWN\"\n        />\n        <gl-disclosure-dropdown-item\n          v-else-if=\"isCreateWorkItem(groupItem)\"\n          :key=\"`${groupItem.text}-modal-trigger`\"\n          :item=\"groupItem\"\n          @action=\"showCreateWorkItemModal = true\"\n        />\n        <gl-disclosure-dropdown-item v-else :key=\"groupItem.text\" :item=\"groupItem\" />\n      </template>\n    </gl-disclosure-dropdown-group>\n    <create-work-item-modal\n      v-if=\"showCreateWorkItemModal\"\n      visible\n      hide-button\n      is-group\n      :work-item-type-name=\"$options.WORK_ITEM_TYPE_ENUM_EPIC\"\n      @hideModal=\"showCreateWorkItemModal = false\"\n    />\n  </gl-disclosure-dropdown>\n</template>\n","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!./create_menu.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!./create_menu.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./create_menu.vue?vue&type=template&id=0cdd1335\"\nimport script from \"./create_menu.vue?vue&type=script&lang=js\"\nexport * from \"./create_menu.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:super-sidebar.bottom\",value:(_vm.dropdownOpen ? '' : _vm.$options.i18n.createNew),expression:\"dropdownOpen ? '' : $options.i18n.createNew\",arg:\"super-sidebar\",modifiers:{\"bottom\":true}}],attrs:{\"category\":\"tertiary\",\"icon\":\"plus\",\"no-caret\":\"\",\"text-sr-only\":\"\",\"toggle-text\":_vm.$options.i18n.createNew,\"toggle-id\":_vm.$options.toggleId,\"dropdown-offset\":_vm.dropdownOffset,\"data-testid\":\"new-menu-toggle\"},on:{\"shown\":function($event){_vm.dropdownOpen = true},\"hidden\":function($event){_vm.dropdownOpen = false}}},[_vm._l((_vm.groups),function(group,index){return _c('gl-disclosure-dropdown-group',{key:group.name,attrs:{\"bordered\":index !== 0,\"group\":group}},[_vm._l((group.items),function(groupItem){return [(_vm.isInvitedMembers(groupItem))?_c('invite-members-trigger',{key:`${groupItem.text}-trigger`,attrs:{\"trigger-source\":\"top_nav\",\"trigger-element\":_vm.$options.TRIGGER_ELEMENT_DISCLOSURE_DROPDOWN}}):(_vm.isCreateWorkItem(groupItem))?_c('gl-disclosure-dropdown-item',{key:`${groupItem.text}-modal-trigger`,attrs:{\"item\":groupItem},on:{\"action\":function($event){_vm.showCreateWorkItemModal = true}}}):_c('gl-disclosure-dropdown-item',{key:groupItem.text,attrs:{\"item\":groupItem}})]})],2)}),_vm._v(\" \"),(_vm.showCreateWorkItemModal)?_c('create-work-item-modal',{attrs:{\"visible\":\"\",\"hide-button\":\"\",\"is-group\":\"\",\"work-item-type-name\":_vm.$options.WORK_ITEM_TYPE_ENUM_EPIC},on:{\"hideModal\":function($event){_vm.showCreateWorkItemModal = false}}}):_vm._e()],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!./counter.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!./counter.vue?vue&type=script&lang=js\"","<!-- eslint-disable vue/multi-word-component-names -->\n<script>\nimport { GlIcon } from '@gitlab/ui';\nimport { highCountTrim } from '~/lib/utils/text_utility';\n\nexport default {\n  components: {\n    GlIcon,\n  },\n  props: {\n    count: {\n      type: [Number, String],\n      required: true,\n    },\n    href: {\n      type: String,\n      required: false,\n      default: null,\n    },\n    icon: {\n      type: String,\n      required: true,\n    },\n    label: {\n      type: String,\n      required: true,\n    },\n  },\n  computed: {\n    ariaLabel() {\n      return `${this.label} ${this.count}`;\n    },\n    component() {\n      return this.href ? 'a' : 'button';\n    },\n    formattedCount() {\n      if (Number.isFinite(this.count)) {\n        return highCountTrim(this.count);\n      }\n      return this.count;\n    },\n  },\n};\n</script>\n\n<template>\n  <component\n    :is=\"component\"\n    :aria-label=\"ariaLabel\"\n    :href=\"href\"\n    class=\"user-bar-button gl-block gl-grow gl-rounded-base gl-py-3 gl-text-center gl-text-sm gl-leading-1 hover:gl-no-underline\"\n  >\n    <gl-icon aria-hidden=\"true\" :name=\"icon\" />\n    <span v-if=\"count\" aria-hidden=\"true\" class=\"gl-ml-1\">{{ formattedCount }}</span>\n  </component>\n</template>\n","import { render, staticRenderFns } from \"./counter.vue?vue&type=template&id=074477aa\"\nimport script from \"./counter.vue?vue&type=script&lang=js\"\nexport * from \"./counter.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(_vm.component,{tag:\"component\",staticClass:\"user-bar-button gl-block gl-grow gl-rounded-base gl-py-3 gl-text-center gl-text-sm gl-leading-1 hover:gl-no-underline\",attrs:{\"aria-label\":_vm.ariaLabel,\"href\":_vm.href}},[_c('gl-icon',{attrs:{\"aria-hidden\":\"true\",\"name\":_vm.icon}}),_vm._v(\" \"),(_vm.count)?_c('span',{staticClass:\"gl-ml-1\",attrs:{\"aria-hidden\":\"true\"}},[_vm._v(_vm._s(_vm.formattedCount))]):_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!./merge_request_menu.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!./merge_request_menu.vue?vue&type=script&lang=js\"","<script>\nimport { GlBadge, GlDisclosureDropdown } from '@gitlab/ui';\nimport { userCounts } from '~/super_sidebar/user_counts_manager';\n\nexport default {\n  components: {\n    GlBadge,\n    GlDisclosureDropdown,\n  },\n  props: {\n    items: {\n      type: Array,\n      required: true,\n    },\n  },\n  methods: {\n    getCount(item) {\n      return userCounts[item.userCount] ?? item.count ?? 0;\n    },\n  },\n};\n</script>\n\n<template>\n  <gl-disclosure-dropdown\n    :items=\"items\"\n    placement=\"bottom\"\n    @shown=\"$emit('shown')\"\n    @hidden=\"$emit('hidden')\"\n  >\n    <template #toggle>\n      <slot></slot>\n    </template>\n    <template #list-item=\"{ item }\">\n      <span class=\"gl-flex gl-items-center gl-justify-between\">\n        {{ item.text }}\n        <gl-badge pill variant=\"neutral\">{{ getCount(item) }}</gl-badge>\n      </span>\n    </template>\n  </gl-disclosure-dropdown>\n</template>\n","import { render, staticRenderFns } from \"./merge_request_menu.vue?vue&type=template&id=126af7df\"\nimport script from \"./merge_request_menu.vue?vue&type=script&lang=js\"\nexport * from \"./merge_request_menu.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',{attrs:{\"items\":_vm.items,\"placement\":\"bottom\"},on:{\"shown\":function($event){return _vm.$emit('shown')},\"hidden\":function($event){return _vm.$emit('hidden')}},scopedSlots:_vm._u([{key:\"toggle\",fn:function(){return [_vm._t(\"default\")]},proxy:true},{key:\"list-item\",fn:function({ item }){return [_c('span',{staticClass:\"gl-flex gl-items-center gl-justify-between\"},[_vm._v(\"\\n      \"+_vm._s(item.text)+\"\\n      \"),_c('gl-badge',{attrs:{\"pill\":\"\",\"variant\":\"neutral\"}},[_vm._v(_vm._s(_vm.getCount(item)))])],1)]}}],null,true)})\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!./user_menu_profile_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!./user_menu_profile_item.vue?vue&type=script&lang=js\"","<script>\nimport { GlBadge, GlDisclosureDropdownItem, GlTooltip } from '@gitlab/ui';\nimport SafeHtml from '~/vue_shared/directives/safe_html';\nimport { s__ } from '~/locale';\nimport { USER_MENU_TRACKING_DEFAULTS } from '../constants';\n\nexport default {\n  i18n: {\n    user: {\n      busy: s__('UserProfile|Busy'),\n    },\n  },\n  components: {\n    GlBadge,\n    GlDisclosureDropdownItem,\n    GlTooltip,\n  },\n  directives: {\n    SafeHtml,\n  },\n  props: {\n    user: {\n      required: true,\n      type: Object,\n    },\n  },\n  computed: {\n    menuItem() {\n      const item = {\n        text: this.user.name,\n      };\n      if (this.user.has_link_to_profile) {\n        item.href = this.user.link_to_profile;\n\n        item.extraAttrs = {\n          ...USER_MENU_TRACKING_DEFAULTS,\n          'data-track-label': 'user_profile',\n          'data-testid': 'user-profile-link',\n        };\n      }\n\n      return item;\n    },\n  },\n};\n</script>\n\n<template>\n  <gl-disclosure-dropdown-item :item=\"menuItem\">\n    <template #list-item>\n      <span class=\"gl-flex gl-flex-col\">\n        <span>\n          <span class=\"gl-font-bold\">\n            {{ user.name }}\n          </span>\n          <gl-badge v-if=\"user.status.busy\" variant=\"warning\">\n            {{ $options.i18n.user.busy }}\n          </gl-badge>\n        </span>\n\n        <span class=\"gl-break-all gl-text-subtle\">@{{ user.username }}</span>\n\n        <span\n          v-if=\"user.status.customized\"\n          ref=\"statusTooltipTarget\"\n          data-testid=\"user-menu-status\"\n          class=\"gl-mt-2 gl-flex gl-items-baseline gl-text-sm\"\n        >\n          <gl-emoji :data-name=\"user.status.emoji\" class=\"gl-mr-1\" />\n          <span v-safe-html=\"user.status.message_html\" class=\"gl-truncate\"></span>\n          <gl-tooltip\n            v-if=\"user.status.message_html\"\n            :target=\"() => $refs.statusTooltipTarget\"\n            boundary=\"viewport\"\n            placement=\"bottom\"\n          >\n            <span v-safe-html=\"user.status.message_html\"></span>\n          </gl-tooltip>\n        </span>\n      </span>\n    </template>\n  </gl-disclosure-dropdown-item>\n</template>\n","import { render, staticRenderFns } from \"./user_menu_profile_item.vue?vue&type=template&id=6dbc4cfc\"\nimport script from \"./user_menu_profile_item.vue?vue&type=script&lang=js\"\nexport * from \"./user_menu_profile_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-disclosure-dropdown-item',{attrs:{\"item\":_vm.menuItem},scopedSlots:_vm._u([{key:\"list-item\",fn:function(){return [_c('span',{staticClass:\"gl-flex gl-flex-col\"},[_c('span',[_c('span',{staticClass:\"gl-font-bold\"},[_vm._v(\"\\n          \"+_vm._s(_vm.user.name)+\"\\n        \")]),_vm._v(\" \"),(_vm.user.status.busy)?_c('gl-badge',{attrs:{\"variant\":\"warning\"}},[_vm._v(\"\\n          \"+_vm._s(_vm.$options.i18n.user.busy)+\"\\n        \")]):_vm._e()],1),_vm._v(\" \"),_c('span',{staticClass:\"gl-break-all gl-text-subtle\"},[_vm._v(\"@\"+_vm._s(_vm.user.username))]),_vm._v(\" \"),(_vm.user.status.customized)?_c('span',{ref:\"statusTooltipTarget\",staticClass:\"gl-mt-2 gl-flex gl-items-baseline gl-text-sm\",attrs:{\"data-testid\":\"user-menu-status\"}},[_c('gl-emoji',{staticClass:\"gl-mr-1\",attrs:{\"data-name\":_vm.user.status.emoji}}),_vm._v(\" \"),_c('span',{directives:[{name:\"safe-html\",rawName:\"v-safe-html\",value:(_vm.user.status.message_html),expression:\"user.status.message_html\"}],staticClass:\"gl-truncate\"}),_vm._v(\" \"),(_vm.user.status.message_html)?_c('gl-tooltip',{attrs:{\"target\":() => _vm.$refs.statusTooltipTarget,\"boundary\":\"viewport\",\"placement\":\"bottom\"}},[_c('span',{directives:[{name:\"safe-html\",rawName:\"v-safe-html\",value:(_vm.user.status.message_html),expression:\"user.status.message_html\"}]})]):_vm._e()],1):_vm._e()])]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport {\n  GlAvatar,\n  GlDisclosureDropdown,\n  GlDisclosureDropdownGroup,\n  GlDisclosureDropdownItem,\n  GlButton,\n  GlModalDirective,\n} from '@gitlab/ui';\nimport SafeHtml from '~/vue_shared/directives/safe_html';\nimport { s__, __, sprintf } from '~/locale';\nimport Tracking from '~/tracking';\nimport PersistentUserCallout from '~/persistent_user_callout';\nimport { SET_STATUS_MODAL_ID } from '~/set_status_modal/constants';\nimport { USER_MENU_TRACKING_DEFAULTS, DROPDOWN_Y_OFFSET, IMPERSONATING_OFFSET } from '../constants';\nimport UserMenuProfileItem from './user_menu_profile_item.vue';\n\n// Left offset required for the dropdown to be aligned with the super sidebar\nconst DROPDOWN_X_OFFSET_BASE = -211;\nconst DROPDOWN_X_OFFSET_IMPERSONATING = DROPDOWN_X_OFFSET_BASE + IMPERSONATING_OFFSET;\n\nexport default {\n  SET_STATUS_MODAL_ID,\n  i18n: {\n    setStatus: s__('SetStatusModal|Set status'),\n    editStatus: s__('SetStatusModal|Edit status'),\n    editProfile: s__('CurrentUser|Edit profile'),\n    preferences: s__('CurrentUser|Preferences'),\n    buyPipelineMinutes: s__('CurrentUser|Buy compute minutes'),\n    oneOfGroupsRunningOutOfPipelineMinutes: s__('CurrentUser|One of your groups is running out'),\n    gitlabNext: s__('CurrentUser|Switch to GitLab Next'),\n    startTrial: s__('CurrentUser|Start an Ultimate trial'),\n    enterAdminMode: s__('CurrentUser|Enter Admin Mode'),\n    leaveAdminMode: s__('CurrentUser|Leave Admin Mode'),\n    signOut: __('Sign out'),\n  },\n  components: {\n    GlAvatar,\n    GlDisclosureDropdown,\n    GlDisclosureDropdownGroup,\n    GlDisclosureDropdownItem,\n    GlButton,\n    UserMenuProfileItem,\n    SetStatusModal: () =>\n      import(\n        /* webpackChunkName: 'statusModalBundle' */ '~/set_status_modal/set_status_modal_wrapper.vue'\n      ),\n  },\n  directives: {\n    SafeHtml,\n    GlModal: GlModalDirective,\n  },\n  mixins: [Tracking.mixin()],\n  inject: ['isImpersonating'],\n  props: {\n    data: {\n      required: true,\n      type: Object,\n    },\n  },\n  data() {\n    return {\n      setStatusModalReady: false,\n      updatedAvatarUrl: null,\n    };\n  },\n  computed: {\n    avatarUrl() {\n      return this.updatedAvatarUrl || this.data.avatar_url;\n    },\n    toggleText() {\n      return sprintf(__('%{user} user’s menu'), { user: this.data.name });\n    },\n    statusItem() {\n      const { busy, customized } = this.data.status;\n\n      const statusLabel =\n        busy || customized ? this.$options.i18n.editStatus : this.$options.i18n.setStatus;\n\n      return {\n        text: statusLabel,\n        extraAttrs: {\n          ...USER_MENU_TRACKING_DEFAULTS,\n          'data-track-label': 'user_edit_status',\n        },\n      };\n    },\n    trialItem() {\n      return {\n        text: this.$options.i18n.startTrial,\n        href: this.data.trial.url,\n        extraAttrs: {\n          ...USER_MENU_TRACKING_DEFAULTS,\n          'data-track-label': 'start_trial',\n        },\n      };\n    },\n    showTrialItem() {\n      return this.data.trial?.has_start_trial;\n    },\n    editProfileItem() {\n      return {\n        text: this.$options.i18n.editProfile,\n        href: this.data.settings.profile_path,\n        extraAttrs: {\n          'data-testid': 'edit-profile-link',\n          ...USER_MENU_TRACKING_DEFAULTS,\n          'data-track-label': 'user_edit_profile',\n        },\n      };\n    },\n    preferencesItem() {\n      return {\n        text: this.$options.i18n.preferences,\n        href: this.data.settings.profile_preferences_path,\n        extraAttrs: {\n          ...USER_MENU_TRACKING_DEFAULTS,\n          'data-track-label': 'user_preferences',\n        },\n      };\n    },\n    addBuyPipelineMinutesMenuItem() {\n      return this.data.pipeline_minutes?.show_buy_pipeline_minutes;\n    },\n    buyPipelineMinutesItem() {\n      return {\n        text: this.$options.i18n.buyPipelineMinutes,\n        warningText: this.$options.i18n.oneOfGroupsRunningOutOfPipelineMinutes,\n        href: this.data.pipeline_minutes?.buy_pipeline_minutes_path,\n        extraAttrs: {\n          class: 'js-follow-link',\n          ...USER_MENU_TRACKING_DEFAULTS,\n          'data-track-label': 'buy_pipeline_minutes',\n        },\n      };\n    },\n    gitlabNextItem() {\n      return {\n        text: this.$options.i18n.gitlabNext,\n        href: this.data.canary_toggle_com_url,\n        extraAttrs: {\n          ...USER_MENU_TRACKING_DEFAULTS,\n          'data-track-label': 'switch_to_canary',\n        },\n      };\n    },\n    enterAdminModeItem() {\n      return {\n        text: this.$options.i18n.enterAdminMode,\n        href: this.data.admin_mode.enter_admin_mode_url,\n        extraAttrs: {\n          ...USER_MENU_TRACKING_DEFAULTS,\n          'data-track-label': 'enter_admin_mode',\n        },\n      };\n    },\n    leaveAdminModeItem() {\n      return {\n        text: this.$options.i18n.leaveAdminMode,\n        href: this.data.admin_mode.leave_admin_mode_url,\n        extraAttrs: {\n          ...USER_MENU_TRACKING_DEFAULTS,\n          'data-track-label': 'leave_admin_mode',\n          'data-method': 'post',\n        },\n      };\n    },\n    signOutGroup() {\n      return {\n        items: [\n          {\n            text: this.$options.i18n.signOut,\n            href: this.data.sign_out_link,\n            extraAttrs: {\n              'data-method': 'post',\n              'data-testid': 'sign-out-link',\n              class: 'sign-out-link',\n            },\n          },\n        ],\n      };\n    },\n    statusModalData() {\n      if (!this.data?.status?.can_update) {\n        return null;\n      }\n\n      const { busy, customized } = this.data.status;\n\n      if (!busy && !customized) {\n        return {};\n      }\n      const { emoji, message, availability, clear_after: clearAfter } = this.data.status;\n\n      return {\n        'current-emoji': emoji || '',\n        'current-message': message || '',\n        'current-availability': availability || '',\n        'current-clear-status-after': clearAfter || '',\n      };\n    },\n    buyPipelineMinutesCalloutData() {\n      return this.showNotificationDot\n        ? {\n            'data-feature-id': this.data.pipeline_minutes.callout_attrs.feature_id,\n            'data-dismiss-endpoint': this.data.pipeline_minutes.callout_attrs.dismiss_endpoint,\n          }\n        : {};\n    },\n    showEnterAdminModeItem() {\n      return (\n        this.data.admin_mode.user_is_admin &&\n        this.data.admin_mode.admin_mode_feature_enabled &&\n        !this.data.admin_mode.admin_mode_active\n      );\n    },\n    showLeaveAdminModeItem() {\n      return (\n        this.data.admin_mode.user_is_admin &&\n        this.data.admin_mode.admin_mode_feature_enabled &&\n        this.data.admin_mode.admin_mode_active\n      );\n    },\n    showNotificationDot() {\n      return this.data.pipeline_minutes?.show_notification_dot;\n    },\n    dropdownOffset() {\n      return {\n        mainAxis: DROPDOWN_Y_OFFSET,\n        crossAxis: this.isImpersonating ? DROPDOWN_X_OFFSET_IMPERSONATING : DROPDOWN_X_OFFSET_BASE,\n      };\n    },\n  },\n  mounted() {\n    document.addEventListener('userAvatar:update', this.updateAvatar);\n  },\n  unmounted() {\n    document.removeEventListener('userAvatar:update', this.updateAvatar);\n  },\n  methods: {\n    updateAvatar(event) {\n      this.updatedAvatarUrl = event.detail?.url;\n    },\n    onShow() {\n      this.initBuyCIMinsCallout();\n    },\n    closeDropdown() {\n      this.$refs.userDropdown.close();\n    },\n    initBuyCIMinsCallout() {\n      if (this.showNotificationDot) {\n        PersistentUserCallout.factory(this.$refs?.buyPipelineMinutesNotificationCallout.$el);\n      }\n    },\n    /* We're not sure this event is tracked by anyone\n      whether it stays will depend on the outcome of this discussion:\n      https://gitlab.com/gitlab-org/gitlab/-/issues/402713#note_1343072135 */\n    trackBuyCIMins() {\n      if (this.addBuyPipelineMinutesMenuItem) {\n        const {\n          'track-action': trackAction,\n          'track-label': label,\n          'track-property': property,\n        } = this.data.pipeline_minutes.tracking_attrs;\n        this.track(trackAction, { label, property });\n      }\n    },\n    trackSignOut() {\n      this.track(USER_MENU_TRACKING_DEFAULTS['data-track-action'], {\n        label: 'user_sign_out',\n        property: USER_MENU_TRACKING_DEFAULTS['data-track-property'],\n      });\n    },\n  },\n};\n</script>\n\n<template>\n  <div>\n    <gl-disclosure-dropdown\n      ref=\"userDropdown\"\n      :dropdown-offset=\"dropdownOffset\"\n      data-testid=\"user-dropdown\"\n      :auto-close=\"false\"\n      @shown=\"onShow\"\n    >\n      <template #toggle>\n        <gl-button\n          category=\"tertiary\"\n          class=\"user-bar-dropdown-toggle btn-with-notification\"\n          data-testid=\"user-menu-toggle\"\n        >\n          <span class=\"gl-sr-only\">{{ toggleText }}</span>\n          <gl-avatar\n            :size=\"24\"\n            :entity-name=\"data.name\"\n            :src=\"avatarUrl\"\n            aria-hidden=\"true\"\n            data-testid=\"user-avatar-content\"\n          />\n          <span\n            v-if=\"showNotificationDot\"\n            class=\"notification-dot-warning\"\n            data-testid=\"buy-pipeline-minutes-notification-dot\"\n            v-bind=\"data.pipeline_minutes.notification_dot_attrs\"\n          >\n          </span>\n        </gl-button>\n      </template>\n\n      <gl-disclosure-dropdown-group>\n        <user-menu-profile-item :user=\"data\" />\n      </gl-disclosure-dropdown-group>\n\n      <gl-disclosure-dropdown-group bordered>\n        <gl-disclosure-dropdown-item\n          v-if=\"setStatusModalReady && statusModalData\"\n          v-gl-modal=\"$options.SET_STATUS_MODAL_ID\"\n          :item=\"statusItem\"\n          data-testid=\"status-item\"\n          @action=\"closeDropdown\"\n        />\n\n        <gl-disclosure-dropdown-item\n          v-if=\"showTrialItem\"\n          :item=\"trialItem\"\n          data-testid=\"start-trial-item\"\n        >\n          <template #list-item>\n            {{ trialItem.text }}\n            <gl-emoji data-name=\"rocket\" />\n          </template>\n        </gl-disclosure-dropdown-item>\n\n        <gl-disclosure-dropdown-item :item=\"editProfileItem\" data-testid=\"edit-profile-item\" />\n\n        <gl-disclosure-dropdown-item :item=\"preferencesItem\" data-testid=\"preferences-item\" />\n\n        <gl-disclosure-dropdown-item\n          v-if=\"addBuyPipelineMinutesMenuItem\"\n          ref=\"buyPipelineMinutesNotificationCallout\"\n          :item=\"buyPipelineMinutesItem\"\n          v-bind=\"buyPipelineMinutesCalloutData\"\n          data-testid=\"buy-pipeline-minutes-item\"\n          @action=\"trackBuyCIMins\"\n        >\n          <template #list-item>\n            <span class=\"gl-flex gl-flex-col\">\n              <span>{{ buyPipelineMinutesItem.text }} <gl-emoji data-name=\"clock9\" /></span>\n              <span\n                v-if=\"data.pipeline_minutes.show_with_subtext\"\n                class=\"small gl-pt-2 gl-text-sm gl-text-orange-800\"\n                >{{ buyPipelineMinutesItem.warningText }}</span\n              >\n            </span>\n          </template>\n        </gl-disclosure-dropdown-item>\n\n        <gl-disclosure-dropdown-item\n          v-if=\"data.gitlab_com_but_not_canary\"\n          :item=\"gitlabNextItem\"\n          data-testid=\"gitlab-next-item\"\n        />\n\n        <gl-disclosure-dropdown-item\n          v-if=\"showEnterAdminModeItem\"\n          :item=\"enterAdminModeItem\"\n          data-testid=\"enter-admin-mode-item\"\n        />\n        <gl-disclosure-dropdown-item\n          v-if=\"showLeaveAdminModeItem\"\n          :item=\"leaveAdminModeItem\"\n          data-testid=\"leave-admin-mode-item\"\n        />\n      </gl-disclosure-dropdown-group>\n\n      <gl-disclosure-dropdown-group\n        v-if=\"data.can_sign_out\"\n        bordered\n        :group=\"signOutGroup\"\n        data-testid=\"sign-out-group\"\n        @action=\"trackSignOut\"\n      />\n    </gl-disclosure-dropdown>\n    <set-status-modal\n      v-if=\"statusModalData\"\n      default-emoji=\"speech_balloon\"\n      v-bind=\"statusModalData\"\n      @mounted=\"setStatusModalReady = true\"\n    />\n  </div>\n</template>\n","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!./user_menu.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!./user_menu.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./user_menu.vue?vue&type=template&id=70f42c79\"\nimport script from \"./user_menu.vue?vue&type=script&lang=js\"\nexport * from \"./user_menu.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('div',[_c('gl-disclosure-dropdown',{ref:\"userDropdown\",attrs:{\"dropdown-offset\":_vm.dropdownOffset,\"data-testid\":\"user-dropdown\",\"auto-close\":false},on:{\"shown\":_vm.onShow},scopedSlots:_vm._u([{key:\"toggle\",fn:function(){return [_c('gl-button',{staticClass:\"user-bar-dropdown-toggle btn-with-notification\",attrs:{\"category\":\"tertiary\",\"data-testid\":\"user-menu-toggle\"}},[_c('span',{staticClass:\"gl-sr-only\"},[_vm._v(_vm._s(_vm.toggleText))]),_vm._v(\" \"),_c('gl-avatar',{attrs:{\"size\":24,\"entity-name\":_vm.data.name,\"src\":_vm.avatarUrl,\"aria-hidden\":\"true\",\"data-testid\":\"user-avatar-content\"}}),_vm._v(\" \"),(_vm.showNotificationDot)?_c('span',_vm._b({staticClass:\"notification-dot-warning\",attrs:{\"data-testid\":\"buy-pipeline-minutes-notification-dot\"}},'span',_vm.data.pipeline_minutes.notification_dot_attrs,false)):_vm._e()],1)]},proxy:true}])},[_vm._v(\" \"),_c('gl-disclosure-dropdown-group',[_c('user-menu-profile-item',{attrs:{\"user\":_vm.data}})],1),_vm._v(\" \"),_c('gl-disclosure-dropdown-group',{attrs:{\"bordered\":\"\"}},[(_vm.setStatusModalReady && _vm.statusModalData)?_c('gl-disclosure-dropdown-item',{directives:[{name:\"gl-modal\",rawName:\"v-gl-modal\",value:(_vm.$options.SET_STATUS_MODAL_ID),expression:\"$options.SET_STATUS_MODAL_ID\"}],attrs:{\"item\":_vm.statusItem,\"data-testid\":\"status-item\"},on:{\"action\":_vm.closeDropdown}}):_vm._e(),_vm._v(\" \"),(_vm.showTrialItem)?_c('gl-disclosure-dropdown-item',{attrs:{\"item\":_vm.trialItem,\"data-testid\":\"start-trial-item\"},scopedSlots:_vm._u([{key:\"list-item\",fn:function(){return [_vm._v(\"\\n          \"+_vm._s(_vm.trialItem.text)+\"\\n          \"),_c('gl-emoji',{attrs:{\"data-name\":\"rocket\"}})]},proxy:true}],null,false,1592713231)}):_vm._e(),_vm._v(\" \"),_c('gl-disclosure-dropdown-item',{attrs:{\"item\":_vm.editProfileItem,\"data-testid\":\"edit-profile-item\"}}),_vm._v(\" \"),_c('gl-disclosure-dropdown-item',{attrs:{\"item\":_vm.preferencesItem,\"data-testid\":\"preferences-item\"}}),_vm._v(\" \"),(_vm.addBuyPipelineMinutesMenuItem)?_c('gl-disclosure-dropdown-item',_vm._b({ref:\"buyPipelineMinutesNotificationCallout\",attrs:{\"item\":_vm.buyPipelineMinutesItem,\"data-testid\":\"buy-pipeline-minutes-item\"},on:{\"action\":_vm.trackBuyCIMins},scopedSlots:_vm._u([{key:\"list-item\",fn:function(){return [_c('span',{staticClass:\"gl-flex gl-flex-col\"},[_c('span',[_vm._v(_vm._s(_vm.buyPipelineMinutesItem.text)+\" \"),_c('gl-emoji',{attrs:{\"data-name\":\"clock9\"}})],1),_vm._v(\" \"),(_vm.data.pipeline_minutes.show_with_subtext)?_c('span',{staticClass:\"small gl-pt-2 gl-text-sm gl-text-orange-800\"},[_vm._v(_vm._s(_vm.buyPipelineMinutesItem.warningText))]):_vm._e()])]},proxy:true}],null,false,705946423)},'gl-disclosure-dropdown-item',_vm.buyPipelineMinutesCalloutData,false)):_vm._e(),_vm._v(\" \"),(_vm.data.gitlab_com_but_not_canary)?_c('gl-disclosure-dropdown-item',{attrs:{\"item\":_vm.gitlabNextItem,\"data-testid\":\"gitlab-next-item\"}}):_vm._e(),_vm._v(\" \"),(_vm.showEnterAdminModeItem)?_c('gl-disclosure-dropdown-item',{attrs:{\"item\":_vm.enterAdminModeItem,\"data-testid\":\"enter-admin-mode-item\"}}):_vm._e(),_vm._v(\" \"),(_vm.showLeaveAdminModeItem)?_c('gl-disclosure-dropdown-item',{attrs:{\"item\":_vm.leaveAdminModeItem,\"data-testid\":\"leave-admin-mode-item\"}}):_vm._e()],1),_vm._v(\" \"),(_vm.data.can_sign_out)?_c('gl-disclosure-dropdown-group',{attrs:{\"bordered\":\"\",\"group\":_vm.signOutGroup,\"data-testid\":\"sign-out-group\"},on:{\"action\":_vm.trackSignOut}}):_vm._e()],1),_vm._v(\" \"),(_vm.statusModalData)?_c('set-status-modal',_vm._b({attrs:{\"default-emoji\":\"speech_balloon\"},on:{\"mounted\":function($event){_vm.setStatusModalReady = true}}},'set-status-modal',_vm.statusModalData,false)):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport { GlBadge, GlButton, GlModalDirective, GlTooltipDirective, GlIcon } from '@gitlab/ui';\nimport { InternalEvents } from '~/tracking';\nimport { __, s__, sprintf } from '~/locale';\nimport { isLoggedIn } from '~/lib/utils/common_utils';\nimport {\n  destroyUserCountsManager,\n  createUserCountsManager,\n  userCounts,\n} from '~/super_sidebar/user_counts_manager';\nimport glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';\nimport BrandLogo from 'jh_else_ce/super_sidebar/components/brand_logo.vue';\nimport { JS_TOGGLE_COLLAPSE_CLASS } from '../constants';\nimport CreateMenu from './create_menu.vue';\nimport Counter from './counter.vue';\nimport MergeRequestMenu from './merge_request_menu.vue';\nimport UserMenu from './user_menu.vue';\nimport SuperSidebarToggle from './super_sidebar_toggle.vue';\nimport { SEARCH_MODAL_ID } from './global_search/constants';\n\nconst trackingMixin = InternalEvents.mixin();\n\nexport default {\n  // \"GitLab Next\" is a proper noun, so don't translate \"Next\"\n  /* eslint-disable-next-line @gitlab/require-i18n-strings */\n  NEXT_LABEL: 'Next',\n  JS_TOGGLE_COLLAPSE_CLASS,\n  SEARCH_MODAL_ID,\n  components: {\n    Counter,\n    CreateMenu,\n    GlBadge,\n    GlButton,\n    MergeRequestMenu,\n    UserMenu,\n    SearchModal: () =>\n      import(\n        /* webpackChunkName: 'global_search_modal' */ './global_search/components/global_search.vue'\n      ),\n    SuperSidebarToggle,\n    BrandLogo,\n    GlIcon,\n    OrganizationSwitcher: () =>\n      import(/* webpackChunkName: 'organization_switcher' */ './organization_switcher.vue'),\n  },\n  i18n: {\n    issues: __('Assigned issues'),\n    mergeRequests: __('Merge requests'),\n    searchKbdHelp: sprintf(\n      s__('GlobalSearch|Type %{kbdOpen}/%{kbdClose} to search'),\n      { kbdOpen: '<kbd>', kbdClose: '</kbd>' },\n      false,\n    ),\n    todoList: __('To-Do List'),\n    stopImpersonating: __('Stop impersonating'),\n    searchBtnText: __('Search or go to…'),\n  },\n  directives: {\n    GlTooltip: GlTooltipDirective,\n    GlModal: GlModalDirective,\n  },\n  mixins: [glFeatureFlagsMixin(), trackingMixin],\n  inject: ['isImpersonating'],\n  props: {\n    hasCollapseButton: {\n      default: true,\n      type: Boolean,\n      required: false,\n    },\n    sidebarData: {\n      type: Object,\n      required: true,\n    },\n  },\n  data() {\n    return {\n      mrMenuShown: false,\n      searchTooltip: this.$options.i18n.searchKbdHelp,\n      userCounts,\n      isLoggedIn: isLoggedIn(),\n    };\n  },\n  computed: {\n    mergeRequestTotalCount() {\n      return userCounts.assigned_merge_requests + userCounts.review_requested_merge_requests;\n    },\n    mergeRequestMenuComponent() {\n      return this.sidebarData.merge_request_menu ? 'merge-request-menu' : 'div';\n    },\n  },\n  created() {\n    Object.assign(userCounts, this.sidebarData.user_counts);\n    createUserCountsManager();\n  },\n  beforeDestroy() {\n    destroyUserCountsManager();\n  },\n  methods: {\n    hideSearchTooltip() {\n      this.searchTooltip = '';\n    },\n    showSearchTooltip() {\n      this.searchTooltip = this.$options.i18n.searchKbdHelp;\n    },\n  },\n};\n</script>\n\n<template>\n  <div\n    class=\"user-bar gl-flex gl-gap-1 gl-p-3\"\n    :class=\"{ 'gl-flex-col gl-gap-3': sidebarData.is_logged_in }\"\n  >\n    <div\n      v-if=\"hasCollapseButton || sidebarData.is_logged_in\"\n      class=\"gl-flex gl-items-center gl-gap-1\"\n    >\n      <template v-if=\"sidebarData.is_logged_in\">\n        <brand-logo :logo-url=\"sidebarData.logo_url\" />\n        <gl-badge\n          v-if=\"sidebarData.gitlab_com_and_canary\"\n          variant=\"success\"\n          data-testid=\"canary-badge-link\"\n          :href=\"sidebarData.canary_toggle_com_url\"\n        >\n          {{ $options.NEXT_LABEL }}\n        </gl-badge>\n        <div class=\"gl-grow\"></div>\n      </template>\n\n      <super-sidebar-toggle\n        v-if=\"hasCollapseButton\"\n        :class=\"$options.JS_TOGGLE_COLLAPSE_CLASS\"\n        data-testid=\"super-sidebar-collapse-button\"\n        type=\"collapse\"\n      />\n      <create-menu\n        v-if=\"sidebarData.is_logged_in && sidebarData.create_new_menu_groups.length > 0\"\n        :groups=\"sidebarData.create_new_menu_groups\"\n      />\n\n      <user-menu v-if=\"sidebarData.is_logged_in\" :data=\"sidebarData\" />\n\n      <gl-button\n        v-if=\"isImpersonating\"\n        v-gl-tooltip.bottom\n        :href=\"sidebarData.stop_impersonation_path\"\n        :title=\"$options.i18n.stopImpersonating\"\n        :aria-label=\"$options.i18n.stopImpersonating\"\n        icon=\"incognito\"\n        category=\"tertiary\"\n        data-method=\"delete\"\n        data-testid=\"stop-impersonation-btn\"\n      />\n    </div>\n    <organization-switcher v-if=\"glFeatures.uiForOrganizations && isLoggedIn\" />\n    <div v-if=\"sidebarData.is_logged_in\" class=\"gl-flex gl-justify-between gl-gap-2\">\n      <counter\n        v-gl-tooltip:super-sidebar.bottom=\"$options.i18n.issues\"\n        class=\"dashboard-shortcuts-issues gl-basis-1/3\"\n        icon=\"issues\"\n        :count=\"userCounts.assigned_issues\"\n        :href=\"sidebarData.issues_dashboard_path\"\n        :label=\"$options.i18n.issues\"\n        data-testid=\"issues-shortcut-button\"\n        data-track-action=\"click_link\"\n        data-track-label=\"issues_link\"\n        data-track-property=\"nav_core_menu\"\n      />\n      <component\n        :is=\"mergeRequestMenuComponent\"\n        class=\"!gl-block gl-basis-1/3\"\n        :items=\"sidebarData.merge_request_menu\"\n        @shown=\"mrMenuShown = true\"\n        @hidden=\"mrMenuShown = false\"\n      >\n        <counter\n          v-gl-tooltip:super-sidebar.bottom=\"mrMenuShown ? '' : $options.i18n.mergeRequests\"\n          class=\"gl-w-full\"\n          :class=\"{\n            'js-merge-request-dashboard-shortcut': !sidebarData.merge_request_menu,\n          }\"\n          icon=\"merge-request\"\n          :href=\"sidebarData.merge_request_dashboard_path\"\n          :count=\"mergeRequestTotalCount\"\n          :label=\"$options.i18n.mergeRequests\"\n          data-testid=\"merge-requests-shortcut-button\"\n          data-track-action=\"click_dropdown\"\n          data-track-label=\"merge_requests_menu\"\n          data-track-property=\"nav_core_menu\"\n        />\n      </component>\n      <counter\n        v-gl-tooltip:super-sidebar.bottom=\"$options.i18n.todoList\"\n        class=\"shortcuts-todos js-todos-count gl-basis-1/3\"\n        icon=\"todo-done\"\n        :count=\"userCounts.todos\"\n        :href=\"sidebarData.todos_dashboard_path\"\n        :label=\"$options.i18n.todoList\"\n        data-testid=\"todos-shortcut-button\"\n        data-track-action=\"click_link\"\n        data-track-label=\"todos_link\"\n        data-track-property=\"nav_core_menu\"\n      />\n    </div>\n\n    <div v-if=\"!glFeatures.searchButtonTopRight\" class=\"gl-grow\">\n      <gl-button\n        id=\"super-sidebar-search\"\n        v-gl-tooltip.bottom.html=\"searchTooltip\"\n        v-gl-modal=\"$options.SEARCH_MODAL_ID\"\n        class=\"user-bar-button gl-border-none\"\n        block\n        data-testid=\"super-sidebar-search-button\"\n        @click=\"trackEvent('click_search_button_to_activate_command_palette')\"\n      >\n        <gl-icon name=\"search\" />\n        {{ $options.i18n.searchBtnText }}\n      </gl-button>\n      <search-modal @shown=\"hideSearchTooltip\" @hidden=\"showSearchTooltip\" />\n    </div>\n  </div>\n</template>\n","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!./user_bar.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!./user_bar.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./user_bar.vue?vue&type=template&id=566bd8a2\"\nimport script from \"./user_bar.vue?vue&type=script&lang=js\"\nexport * from \"./user_bar.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('div',{staticClass:\"user-bar gl-flex gl-gap-1 gl-p-3\",class:{ 'gl-flex-col gl-gap-3': _vm.sidebarData.is_logged_in }},[(_vm.hasCollapseButton || _vm.sidebarData.is_logged_in)?_c('div',{staticClass:\"gl-flex gl-items-center gl-gap-1\"},[(_vm.sidebarData.is_logged_in)?[_c('brand-logo',{attrs:{\"logo-url\":_vm.sidebarData.logo_url}}),_vm._v(\" \"),(_vm.sidebarData.gitlab_com_and_canary)?_c('gl-badge',{attrs:{\"variant\":\"success\",\"data-testid\":\"canary-badge-link\",\"href\":_vm.sidebarData.canary_toggle_com_url}},[_vm._v(\"\\n        \"+_vm._s(_vm.$options.NEXT_LABEL)+\"\\n      \")]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"gl-grow\"})]:_vm._e(),_vm._v(\" \"),(_vm.hasCollapseButton)?_c('super-sidebar-toggle',{class:_vm.$options.JS_TOGGLE_COLLAPSE_CLASS,attrs:{\"data-testid\":\"super-sidebar-collapse-button\",\"type\":\"collapse\"}}):_vm._e(),_vm._v(\" \"),(_vm.sidebarData.is_logged_in && _vm.sidebarData.create_new_menu_groups.length > 0)?_c('create-menu',{attrs:{\"groups\":_vm.sidebarData.create_new_menu_groups}}):_vm._e(),_vm._v(\" \"),(_vm.sidebarData.is_logged_in)?_c('user-menu',{attrs:{\"data\":_vm.sidebarData}}):_vm._e(),_vm._v(\" \"),(_vm.isImpersonating)?_c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.bottom\",modifiers:{\"bottom\":true}}],attrs:{\"href\":_vm.sidebarData.stop_impersonation_path,\"title\":_vm.$options.i18n.stopImpersonating,\"aria-label\":_vm.$options.i18n.stopImpersonating,\"icon\":\"incognito\",\"category\":\"tertiary\",\"data-method\":\"delete\",\"data-testid\":\"stop-impersonation-btn\"}}):_vm._e()],2):_vm._e(),_vm._v(\" \"),(_vm.glFeatures.uiForOrganizations && _vm.isLoggedIn)?_c('organization-switcher'):_vm._e(),_vm._v(\" \"),(_vm.sidebarData.is_logged_in)?_c('div',{staticClass:\"gl-flex gl-justify-between gl-gap-2\"},[_c('counter',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip:super-sidebar.bottom\",value:(_vm.$options.i18n.issues),expression:\"$options.i18n.issues\",arg:\"super-sidebar\",modifiers:{\"bottom\":true}}],staticClass:\"dashboard-shortcuts-issues gl-basis-1/3\",attrs:{\"icon\":\"issues\",\"count\":_vm.userCounts.assigned_issues,\"href\":_vm.sidebarData.issues_dashboard_path,\"label\":_vm.$options.i18n.issues,\"data-testid\":\"issues-shortcut-button\",\"data-track-action\":\"click_link\",\"data-track-label\":\"issues_link\",\"data-track-property\":\"nav_core_menu\"}}),_vm._v(\" \"),_c(_vm.mergeRequestMenuComponent,{tag:\"component\",staticClass:\"!gl-block gl-basis-1/3\",attrs:{\"items\":_vm.sidebarData.merge_request_menu},on:{\"shown\":function($event){_vm.mrMenuShown = true},\"hidden\":function($event){_vm.mrMenuShown = false}}},[_c('counter',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip:super-sidebar.bottom\",value:(_vm.mrMenuShown ? '' : _vm.$options.i18n.mergeRequests),expression:\"mrMenuShown ? '' : $options.i18n.mergeRequests\",arg:\"super-sidebar\",modifiers:{\"bottom\":true}}],staticClass:\"gl-w-full\",class:{\n          'js-merge-request-dashboard-shortcut': !_vm.sidebarData.merge_request_menu,\n        },attrs:{\"icon\":\"merge-request\",\"href\":_vm.sidebarData.merge_request_dashboard_path,\"count\":_vm.mergeRequestTotalCount,\"label\":_vm.$options.i18n.mergeRequests,\"data-testid\":\"merge-requests-shortcut-button\",\"data-track-action\":\"click_dropdown\",\"data-track-label\":\"merge_requests_menu\",\"data-track-property\":\"nav_core_menu\"}})],1),_vm._v(\" \"),_c('counter',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip:super-sidebar.bottom\",value:(_vm.$options.i18n.todoList),expression:\"$options.i18n.todoList\",arg:\"super-sidebar\",modifiers:{\"bottom\":true}}],staticClass:\"shortcuts-todos js-todos-count gl-basis-1/3\",attrs:{\"icon\":\"todo-done\",\"count\":_vm.userCounts.todos,\"href\":_vm.sidebarData.todos_dashboard_path,\"label\":_vm.$options.i18n.todoList,\"data-testid\":\"todos-shortcut-button\",\"data-track-action\":\"click_link\",\"data-track-label\":\"todos_link\",\"data-track-property\":\"nav_core_menu\"}})],1):_vm._e(),_vm._v(\" \"),(!_vm.glFeatures.searchButtonTopRight)?_c('div',{staticClass:\"gl-grow\"},[_c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.bottom.html\",value:(_vm.searchTooltip),expression:\"searchTooltip\",modifiers:{\"bottom\":true,\"html\":true}},{name:\"gl-modal\",rawName:\"v-gl-modal\",value:(_vm.$options.SEARCH_MODAL_ID),expression:\"$options.SEARCH_MODAL_ID\"}],staticClass:\"user-bar-button gl-border-none\",attrs:{\"id\":\"super-sidebar-search\",\"block\":\"\",\"data-testid\":\"super-sidebar-search-button\"},on:{\"click\":function($event){return _vm.trackEvent('click_search_button_to_activate_command_palette')}}},[_c('gl-icon',{attrs:{\"name\":\"search\"}}),_vm._v(\"\\n      \"+_vm._s(_vm.$options.i18n.searchBtnText)+\"\\n    \")],1),_vm._v(\" \"),_c('search-modal',{on:{\"shown\":_vm.hideSearchTooltip,\"hidden\":_vm.showSearchTooltip}})],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!./sidebar_portal_target.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!./sidebar_portal_target.vue?vue&type=script&lang=js\"","<script>\nimport { SIDEBAR_PORTAL_ID, portalState } from '../constants';\n\nexport default {\n  mounted() {\n    portalState.ready = true;\n  },\n  beforeDestroy() {\n    portalState.ready = false;\n  },\n  mountId: SIDEBAR_PORTAL_ID,\n};\n</script>\n\n<template>\n  <div v-once :id=\"$options.mountId\"></div>\n</template>\n","import { render, staticRenderFns } from \"./sidebar_portal_target.vue?vue&type=template&id=3d0af8b2\"\nimport script from \"./sidebar_portal_target.vue?vue&type=script&lang=js\"\nexport * from \"./sidebar_portal_target.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 _vm._m(0)\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"id\":_vm.$options.mountId}})\n}]\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!./help_center.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!./help_center.vue?vue&type=script&lang=js\"","<script>\nimport { GlBadge, GlButton, GlDisclosureDropdown, GlDisclosureDropdownGroup } from '@gitlab/ui';\nimport GitlabVersionCheckBadge from '~/gitlab_version_check/components/gitlab_version_check_badge.vue';\nimport { helpPagePath } from '~/helpers/help_page_helper';\nimport { FORUM_URL, PROMO_URL } from '~/constants';\nimport { __ } from '~/locale';\nimport { STORAGE_KEY } from '~/whats_new/utils/notification';\nimport Tracking from '~/tracking';\nimport { DROPDOWN_Y_OFFSET, HELP_MENU_TRACKING_DEFAULTS, duoChatGlobalState } from '../constants';\n\nexport default {\n  components: {\n    GlBadge,\n    GlButton,\n\n    GlDisclosureDropdown,\n    GlDisclosureDropdownGroup,\n    GitlabVersionCheckBadge,\n  },\n  mixins: [Tracking.mixin({ property: 'nav_help_menu' })],\n  i18n: {\n    help: __('Help'),\n    support: __('Support'),\n    docs: __('GitLab documentation'),\n    plans: __('Compare GitLab plans'),\n    forum: __('Community forum'),\n    contribute: __('Contribute to GitLab'),\n    feedback: __('Provide feedback'),\n    shortcuts: __('Keyboard shortcuts'),\n    version: __('Your GitLab version'),\n    whatsnew: __(\"What's new\"),\n    terms: __('Terms and privacy'),\n    privacy: __('Privacy statement'),\n  },\n  inject: ['isSaas'],\n  props: {\n    sidebarData: {\n      type: Object,\n      required: true,\n    },\n  },\n  data() {\n    return {\n      showWhatsNewNotification: this.shouldShowWhatsNewNotification(),\n      duoChatGlobalState,\n      toggleWhatsNewDrawer: null,\n    };\n  },\n  computed: {\n    itemGroups() {\n      const groups = {\n        helpLinks: {\n          items: [\n            {\n              text: this.$options.i18n.help,\n              href: helpPagePath(),\n              extraAttrs: {\n                ...this.trackingAttrs('help'),\n              },\n            },\n            {\n              text: this.$options.i18n.support,\n              href: this.sidebarData.support_path,\n              extraAttrs: {\n                ...this.trackingAttrs('support'),\n              },\n            },\n            {\n              text: this.$options.i18n.docs,\n              href: this.sidebarData.docs_path,\n              extraAttrs: {\n                ...this.trackingAttrs('gitlab_documentation'),\n              },\n            },\n            {\n              text: this.$options.i18n.plans,\n              href: `${PROMO_URL}/pricing`,\n              extraAttrs: {\n                ...this.trackingAttrs('compare_gitlab_plans'),\n              },\n            },\n            {\n              text: this.$options.i18n.forum,\n              href: FORUM_URL,\n              extraAttrs: {\n                ...this.trackingAttrs('community_forum'),\n              },\n            },\n            {\n              text: this.$options.i18n.contribute,\n              href: helpPagePath('', { anchor: 'contribute-to-gitlab' }),\n              extraAttrs: {\n                ...this.trackingAttrs('contribute_to_gitlab'),\n              },\n            },\n            {\n              text: this.$options.i18n.feedback,\n              href: `${PROMO_URL}/submit-feedback`,\n              extraAttrs: {\n                ...this.trackingAttrs('submit_feedback'),\n              },\n            },\n            this.isSaas && {\n              text: this.$options.i18n.privacy,\n              href: `${PROMO_URL}/privacy`,\n              extraAttrs: {\n                ...this.trackingAttrs('privacy'),\n              },\n            },\n            this.sidebarData.terms &&\n              !this.isSaas && {\n                text: this.$options.i18n.terms,\n                href: this.sidebarData.terms,\n                extraAttrs: {\n                  ...this.trackingAttrs('terms'),\n                },\n              },\n          ].filter(Boolean),\n        },\n        helpActions: {\n          items: [\n            {\n              text: this.$options.i18n.shortcuts,\n              action: () => {},\n              extraAttrs: {\n                class: 'js-shortcuts-modal-trigger',\n                'data-track-action': 'click_button',\n                'data-track-label': 'keyboard_shortcuts_help',\n                'data-track-property': HELP_MENU_TRACKING_DEFAULTS['data-track-property'],\n              },\n              shortcut: '?',\n            },\n            this.sidebarData.display_whats_new && {\n              text: this.$options.i18n.whatsnew,\n              action: this.showWhatsNew,\n              count:\n                this.showWhatsNewNotification &&\n                this.sidebarData.whats_new_most_recent_release_items_count,\n              extraAttrs: {\n                'data-track-action': 'click_button',\n                'data-track-label': 'whats_new',\n                'data-track-property': HELP_MENU_TRACKING_DEFAULTS['data-track-property'],\n              },\n            },\n          ].filter(Boolean),\n        },\n      };\n\n      if (this.sidebarData.show_version_check) {\n        groups.versionCheck = {\n          items: [\n            {\n              text: this.$options.i18n.version,\n              href: helpPagePath('update/index.md'),\n              version: `${this.sidebarData.gitlab_version.major}.${this.sidebarData.gitlab_version.minor}`,\n              extraAttrs: {\n                ...this.trackingAttrs('version_help_dropdown'),\n              },\n            },\n          ],\n        };\n      }\n\n      return groups;\n    },\n    updateSeverity() {\n      return this.sidebarData.gitlab_version_check?.severity;\n    },\n  },\n  methods: {\n    shouldShowWhatsNewNotification() {\n      if (\n        !this.sidebarData.display_whats_new ||\n        localStorage.getItem(STORAGE_KEY) === this.sidebarData.whats_new_version_digest\n      ) {\n        return false;\n      }\n      return true;\n    },\n\n    async showWhatsNew() {\n      this.showWhatsNewNotification = false;\n\n      if (!this.toggleWhatsNewDrawer) {\n        const { default: toggleWhatsNewDrawer } = await import(\n          /* webpackChunkName: 'whatsNewApp' */ '~/whats_new'\n        );\n        this.toggleWhatsNewDrawer = toggleWhatsNewDrawer;\n        this.toggleWhatsNewDrawer(this.sidebarData.whats_new_version_digest);\n      } else {\n        this.toggleWhatsNewDrawer();\n      }\n    },\n\n    trackingAttrs(label) {\n      return {\n        ...HELP_MENU_TRACKING_DEFAULTS,\n        'data-track-label': label,\n      };\n    },\n\n    trackDropdownToggle(show) {\n      this.track('click_toggle', {\n        label: show ? 'show_help_dropdown' : 'hide_help_dropdown',\n      });\n    },\n  },\n  dropdownOffset: { mainAxis: DROPDOWN_Y_OFFSET },\n};\n</script>\n\n<template>\n  <gl-disclosure-dropdown\n    :dropdown-offset=\"$options.dropdownOffset\"\n    @shown=\"trackDropdownToggle(true)\"\n    @hidden=\"trackDropdownToggle(false)\"\n  >\n    <template #toggle>\n      <gl-button\n        category=\"tertiary\"\n        icon=\"question-o\"\n        class=\"super-sidebar-help-center-toggle btn-with-notification\"\n        data-testid=\"sidebar-help-button\"\n      >\n        <span\n          v-if=\"showWhatsNewNotification\"\n          data-testid=\"notification-dot\"\n          class=\"notification-dot-info\"\n        ></span>\n        {{ $options.i18n.help }}\n      </gl-button>\n    </template>\n\n    <gl-disclosure-dropdown-group\n      v-if=\"sidebarData.show_version_check\"\n      :group=\"itemGroups.versionCheck\"\n    >\n      <template #list-item=\"{ item }\">\n        <span class=\"gl-flex gl-flex-col gl-leading-24\">\n          <span class=\"gl-text-sm gl-font-bold\">\n            {{ item.text }}\n            <gl-emoji data-name=\"rocket\" />\n          </span>\n          <span>\n            <span class=\"gl-mr-2\">{{ item.version }}</span>\n            <gitlab-version-check-badge v-if=\"updateSeverity\" :status=\"updateSeverity\" />\n          </span>\n        </span>\n      </template>\n    </gl-disclosure-dropdown-group>\n\n    <gl-disclosure-dropdown-group\n      :group=\"itemGroups.helpLinks\"\n      :bordered=\"sidebarData.show_version_check\"\n    />\n\n    <gl-disclosure-dropdown-group :group=\"itemGroups.helpActions\" bordered>\n      <template #list-item=\"{ item }\">\n        <span class=\"-gl-my-1 gl-flex gl-items-center gl-justify-between\">\n          {{ item.text }}\n          <gl-badge v-if=\"item.count\" pill variant=\"info\">{{ item.count }}</gl-badge>\n          <kbd v-else-if=\"item.shortcut\" class=\"flat\">?</kbd>\n        </span>\n      </template>\n    </gl-disclosure-dropdown-group>\n  </gl-disclosure-dropdown>\n</template>\n","import { render, staticRenderFns } from \"./help_center.vue?vue&type=template&id=318f7b36\"\nimport script from \"./help_center.vue?vue&type=script&lang=js\"\nexport * from \"./help_center.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',{attrs:{\"dropdown-offset\":_vm.$options.dropdownOffset},on:{\"shown\":function($event){return _vm.trackDropdownToggle(true)},\"hidden\":function($event){return _vm.trackDropdownToggle(false)}},scopedSlots:_vm._u([{key:\"toggle\",fn:function(){return [_c('gl-button',{staticClass:\"super-sidebar-help-center-toggle btn-with-notification\",attrs:{\"category\":\"tertiary\",\"icon\":\"question-o\",\"data-testid\":\"sidebar-help-button\"}},[(_vm.showWhatsNewNotification)?_c('span',{staticClass:\"notification-dot-info\",attrs:{\"data-testid\":\"notification-dot\"}}):_vm._e(),_vm._v(\"\\n      \"+_vm._s(_vm.$options.i18n.help)+\"\\n    \")])]},proxy:true}])},[_vm._v(\" \"),(_vm.sidebarData.show_version_check)?_c('gl-disclosure-dropdown-group',{attrs:{\"group\":_vm.itemGroups.versionCheck},scopedSlots:_vm._u([{key:\"list-item\",fn:function({ item }){return [_c('span',{staticClass:\"gl-flex gl-flex-col gl-leading-24\"},[_c('span',{staticClass:\"gl-text-sm gl-font-bold\"},[_vm._v(\"\\n          \"+_vm._s(item.text)+\"\\n          \"),_c('gl-emoji',{attrs:{\"data-name\":\"rocket\"}})],1),_vm._v(\" \"),_c('span',[_c('span',{staticClass:\"gl-mr-2\"},[_vm._v(_vm._s(item.version))]),_vm._v(\" \"),(_vm.updateSeverity)?_c('gitlab-version-check-badge',{attrs:{\"status\":_vm.updateSeverity}}):_vm._e()],1)])]}}],null,false,2609500692)}):_vm._e(),_vm._v(\" \"),_c('gl-disclosure-dropdown-group',{attrs:{\"group\":_vm.itemGroups.helpLinks,\"bordered\":_vm.sidebarData.show_version_check}}),_vm._v(\" \"),_c('gl-disclosure-dropdown-group',{attrs:{\"group\":_vm.itemGroups.helpActions,\"bordered\":\"\"},scopedSlots:_vm._u([{key:\"list-item\",fn:function({ item }){return [_c('span',{staticClass:\"-gl-my-1 gl-flex gl-items-center gl-justify-between\"},[_vm._v(\"\\n        \"+_vm._s(item.text)+\"\\n        \"),(item.count)?_c('gl-badge',{attrs:{\"pill\":\"\",\"variant\":\"info\"}},[_vm._v(_vm._s(item.count))]):(item.shortcut)?_c('kbd',{staticClass:\"flat\"},[_vm._v(\"?\")]):_vm._e()],1)]}}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport Draggable from 'vuedraggable';\nimport { s__ } from '~/locale';\nimport { setCookie, getCookie } from '~/lib/utils/common_utils';\nimport {\n  PINNED_NAV_STORAGE_KEY,\n  SIDEBAR_PINS_EXPANDED_COOKIE,\n  SIDEBAR_COOKIE_EXPIRATION,\n} from '../constants';\nimport MenuSection from './menu_section.vue';\nimport NavItem from './nav_item.vue';\n\nconst AMBIGUOUS_SETTINGS = {\n  ci_cd: s__('Navigation|CI/CD settings'),\n  merge_request_settings: s__('Navigation|Merge requests settings'),\n  monitor: s__('Navigation|Monitor settings'),\n  repository: s__('Navigation|Repository settings'),\n};\n\nexport default {\n  i18n: {\n    pinned: s__('Navigation|Pinned'),\n    emptyHint: s__('Navigation|Your pinned items appear here.'),\n  },\n  name: 'PinnedSection',\n  components: {\n    Draggable,\n    MenuSection,\n    NavItem,\n  },\n  props: {\n    items: {\n      type: Array,\n      required: false,\n      default: () => [],\n    },\n    hasFlyout: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    wasPinnedNav: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    asyncCount: {\n      type: Object,\n      required: false,\n      default: () => ({}),\n    },\n  },\n  data() {\n    return {\n      expanded: getCookie(SIDEBAR_PINS_EXPANDED_COOKIE) !== 'false' || this.wasPinnedNav,\n      draggableItems: this.renameSettings(this.items),\n    };\n  },\n  computed: {\n    sectionItem() {\n      return {\n        title: this.$options.i18n.pinned,\n        icon: 'thumbtack',\n        is_active: this.wasPinnedNav,\n        items: this.draggableItems,\n      };\n    },\n    itemIds() {\n      return this.draggableItems.map((item) => item.id);\n    },\n  },\n  watch: {\n    expanded(newExpanded) {\n      setCookie(SIDEBAR_PINS_EXPANDED_COOKIE, newExpanded, {\n        expires: SIDEBAR_COOKIE_EXPIRATION,\n      });\n    },\n    items(newItems) {\n      this.draggableItems = this.renameSettings(newItems);\n    },\n  },\n  methods: {\n    handleDrag(event) {\n      if (event.oldIndex === event.newIndex) return;\n      this.$emit(\n        'pin-reorder',\n        this.items[event.oldIndex].id,\n        this.items[event.newIndex].id,\n        event.oldIndex < event.newIndex,\n      );\n    },\n    renameSettings(items) {\n      return items.map((i) => {\n        const title = AMBIGUOUS_SETTINGS[i.id] || i.title;\n        return { ...i, title };\n      });\n    },\n    onPinRemove(itemId, itemTitle) {\n      this.$emit('pin-remove', itemId, itemTitle);\n    },\n    writePinnedClick() {\n      sessionStorage.setItem(PINNED_NAV_STORAGE_KEY, true);\n    },\n  },\n};\n</script>\n\n<template>\n  <menu-section\n    :item=\"sectionItem\"\n    :expanded=\"expanded\"\n    :has-flyout=\"hasFlyout\"\n    @collapse-toggle=\"expanded = !expanded\"\n    @pin-remove=\"onPinRemove\"\n    @nav-link-click=\"writePinnedClick\"\n  >\n    <draggable\n      v-if=\"items.length > 0\"\n      v-model=\"draggableItems\"\n      class=\"gl-m-0 gl-list-none gl-p-0\"\n      data-testid=\"pinned-nav-items\"\n      handle=\".js-draggable-icon\"\n      tag=\"ul\"\n      @end=\"handleDrag\"\n    >\n      <nav-item\n        v-for=\"item of draggableItems\"\n        :key=\"item.id\"\n        :item=\"item\"\n        :async-count=\"asyncCount\"\n        is-in-pinned-section\n        @pin-remove=\"onPinRemove(item.id, item.title)\"\n        @nav-link-click=\"writePinnedClick\"\n      />\n    </draggable>\n    <li v-else class=\"gl-py-3 gl-text-sm gl-text-subtle\" style=\"margin-left: 2.5rem\">\n      {{ $options.i18n.emptyHint }}\n    </li>\n  </menu-section>\n</template>\n","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!./pinned_section.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!./pinned_section.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./pinned_section.vue?vue&type=template&id=664a2958\"\nimport script from \"./pinned_section.vue?vue&type=script&lang=js\"\nexport * from \"./pinned_section.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('menu-section',{attrs:{\"item\":_vm.sectionItem,\"expanded\":_vm.expanded,\"has-flyout\":_vm.hasFlyout},on:{\"collapse-toggle\":function($event){_vm.expanded = !_vm.expanded},\"pin-remove\":_vm.onPinRemove,\"nav-link-click\":_vm.writePinnedClick}},[(_vm.items.length > 0)?_c('draggable',{staticClass:\"gl-m-0 gl-list-none gl-p-0\",attrs:{\"data-testid\":\"pinned-nav-items\",\"handle\":\".js-draggable-icon\",\"tag\":\"ul\"},on:{\"end\":_vm.handleDrag},model:{value:(_vm.draggableItems),callback:function ($$v) {_vm.draggableItems=$$v},expression:\"draggableItems\"}},_vm._l((_vm.draggableItems),function(item){return _c('nav-item',{key:item.id,attrs:{\"item\":item,\"async-count\":_vm.asyncCount,\"is-in-pinned-section\":\"\"},on:{\"pin-remove\":function($event){return _vm.onPinRemove(item.id, item.title)},\"nav-link-click\":_vm.writePinnedClick}})}),1):_c('li',{staticClass:\"gl-py-3 gl-text-sm gl-text-subtle\",staticStyle:{\"margin-left\":\"2.5rem\"}},[_vm._v(\"\\n    \"+_vm._s(_vm.$options.i18n.emptyHint)+\"\\n  \")])],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!./sidebar_menu.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!./sidebar_menu.vue?vue&type=script&lang=js\"","<script>\nimport { GlBreakpointInstance, breakpoints } from '@gitlab/ui/dist/utils';\nimport superSidebarDataQuery from '~/super_sidebar/graphql/queries/super_sidebar.query.graphql';\nimport { s__, sprintf } from '~/locale';\nimport * as Sentry from '~/sentry/sentry_browser_wrapper';\nimport axios from '~/lib/utils/axios_utils';\nimport glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';\nimport { PANELS_WITH_PINS, PINNED_NAV_STORAGE_KEY } from '../constants';\nimport NavItem from './nav_item.vue';\nimport PinnedSection from './pinned_section.vue';\nimport MenuSection from './menu_section.vue';\n\nexport default {\n  name: 'SidebarMenu',\n  components: {\n    MenuSection,\n    NavItem,\n    PinnedSection,\n  },\n  mixins: [glFeatureFlagsMixin()],\n  i18n: {\n    pinAdded: s__('Navigation|%{title} added to pinned items'),\n    pinRemoved: s__('Navigation|%{title} removed from pinned items'),\n  },\n  inject: ['currentPath'],\n  provide() {\n    return {\n      pinnedItemIds: this.changedPinnedItemIds,\n      panelSupportsPins: this.supportsPins,\n      panelType: this.panelType,\n    };\n  },\n  props: {\n    items: {\n      type: Array,\n      required: true,\n    },\n    isLoggedIn: {\n      type: Boolean,\n      required: true,\n    },\n    pinnedItemIds: {\n      type: Array,\n      required: false,\n      default: () => [],\n    },\n    panelType: {\n      type: String,\n      required: false,\n      default: '',\n    },\n    updatePinsUrl: {\n      type: String,\n      required: false,\n      default: '',\n    },\n  },\n  data() {\n    return {\n      showFlyoutMenus: false,\n      asyncCount: {},\n\n      // This is used to detect if user came to this page by clicking a\n      // nav item in the pinned section.\n      wasPinnedNav: this.readAndResetPinnedNav(),\n\n      // This is used as a provide and injected into the nav items.\n      // Note: It has to be an object to be reactive.\n      changedPinnedItemIds: { ids: this.pinnedItemIds },\n    };\n  },\n  apollo: {\n    asyncCount: {\n      query: superSidebarDataQuery,\n      variables() {\n        return { fullPath: this.currentPath };\n      },\n      skip() {\n        return !this.currentPath;\n      },\n      update(data) {\n        return data?.namespace?.sidebar ?? {};\n      },\n      error(error) {\n        Sentry.captureException(error);\n      },\n    },\n  },\n  computed: {\n    // Returns the list of items that we want to have static at the top.\n    // Only sidebars that support pins also support a static section.\n    staticItems() {\n      if (!this.supportsPins) return [];\n      return this.items.filter((item) => !item.items || item.items.length === 0);\n    },\n\n    // Returns only the items that aren't static at the top and makes sure no\n    // section shows as active (and expanded) when a pinned nav item was used.\n\n    nonStaticItems() {\n      if (!this.supportsPins) return this.items;\n\n      return this.items\n        .filter((item) => item.items && item.items.length > 0)\n        .map((item) => {\n          const showAsActive = item.is_active && !this.wasPinnedNav;\n\n          return { ...item, is_active: showAsActive };\n        });\n    },\n\n    // Returns a flat list of all items that are in sections, but not the sections.\n    // Only items from sections (item.items) can be pinned.\n    flatPinnableItems() {\n      return this.nonStaticItems.flatMap((item) => item.items).filter(Boolean);\n    },\n\n    pinnedItems() {\n      return this.changedPinnedItemIds.ids\n        .map((id) => this.flatPinnableItems.find((item) => item.id === id))\n        .filter(Boolean);\n    },\n    supportsPins() {\n      return this.isLoggedIn && PANELS_WITH_PINS.includes(this.panelType);\n    },\n    hasStaticItems() {\n      return this.staticItems.length > 0;\n    },\n  },\n  mounted() {\n    this.decideFlyoutState();\n    window.addEventListener('resize', this.decideFlyoutState);\n  },\n  beforeDestroy() {\n    window.removeEventListener('resize', this.decideFlyoutState);\n  },\n  methods: {\n    createPin(itemId, itemTitle) {\n      this.changedPinnedItemIds.ids.push(itemId);\n      this.$toast.show(\n        sprintf(this.$options.i18n.pinAdded, {\n          title: itemTitle,\n        }),\n      );\n      this.updatePins();\n    },\n    destroyPin(itemId, itemTitle) {\n      this.changedPinnedItemIds.ids = this.changedPinnedItemIds.ids.filter((id) => id !== itemId);\n      this.$toast.show(\n        sprintf(this.$options.i18n.pinRemoved, {\n          title: itemTitle,\n        }),\n      );\n      this.updatePins();\n    },\n    movePin(fromId, toId, isDownwards) {\n      const fromIndex = this.changedPinnedItemIds.ids.indexOf(fromId);\n      this.changedPinnedItemIds.ids.splice(fromIndex, 1);\n\n      let toIndex = this.changedPinnedItemIds.ids.indexOf(toId);\n\n      // If the item was moved downwards, we insert it *after* the item it was dragged on to.\n      // This matches how vuedraggable previews the change while still dragging.\n      if (isDownwards) toIndex += 1;\n\n      this.changedPinnedItemIds.ids.splice(toIndex, 0, fromId);\n\n      this.updatePins();\n    },\n    updatePins() {\n      axios\n        .put(this.updatePinsUrl, {\n          panel: this.panelType,\n          menu_item_ids: this.changedPinnedItemIds.ids,\n        })\n        .then((response) => {\n          this.changedPinnedItemIds.ids = response.data;\n        })\n        .catch((e) => {\n          Sentry.captureException(e);\n        });\n    },\n    isSection(navItem) {\n      return navItem.items?.length;\n    },\n    decideFlyoutState() {\n      this.showFlyoutMenus = GlBreakpointInstance.windowWidth() >= breakpoints.md;\n    },\n    readAndResetPinnedNav() {\n      const wasPinnedNav = sessionStorage.getItem(PINNED_NAV_STORAGE_KEY);\n      sessionStorage.removeItem(PINNED_NAV_STORAGE_KEY);\n      return wasPinnedNav === 'true';\n    },\n  },\n};\n</script>\n\n<template>\n  <div class=\"gl-relative gl-p-2\">\n    <ul v-if=\"hasStaticItems\" class=\"gl-m-0 gl-list-none gl-p-0\" data-testid=\"static-items-section\">\n      <nav-item\n        v-for=\"item in staticItems\"\n        :key=\"item.id\"\n        :item=\"item\"\n        is-static\n        :async-count=\"asyncCount\"\n      />\n    </ul>\n    <pinned-section\n      v-if=\"supportsPins\"\n      :items=\"pinnedItems\"\n      :has-flyout=\"showFlyoutMenus\"\n      :was-pinned-nav=\"wasPinnedNav\"\n      :async-count=\"asyncCount\"\n      @pin-remove=\"destroyPin\"\n      @pin-reorder=\"movePin\"\n    />\n    <hr\n      v-if=\"supportsPins\"\n      aria-hidden=\"true\"\n      class=\"gl-mx-4 gl-my-2\"\n      data-testid=\"main-menu-separator\"\n    />\n    <ul\n      aria-labelledby=\"super-sidebar-context-header\"\n      class=\"gl-mb-0 gl-list-none gl-p-0\"\n      data-testid=\"non-static-items-section\"\n    >\n      <template v-for=\"item in nonStaticItems\">\n        <menu-section\n          v-if=\"isSection(item)\"\n          :key=\"item.id\"\n          :item=\"item\"\n          :separated=\"item.separated\"\n          :has-flyout=\"showFlyoutMenus\"\n          :async-count=\"asyncCount\"\n          tag=\"li\"\n          @pin-add=\"createPin\"\n          @pin-remove=\"destroyPin\"\n        />\n        <nav-item\n          v-else\n          :key=\"item.id\"\n          :item=\"item\"\n          :async-count=\"asyncCount\"\n          @pin-add=\"createPin\"\n          @pin-remove=\"destroyPin\"\n        />\n      </template>\n    </ul>\n  </div>\n</template>\n","import { render, staticRenderFns } from \"./sidebar_menu.vue?vue&type=template&id=9bd691f2\"\nimport script from \"./sidebar_menu.vue?vue&type=script&lang=js\"\nexport * from \"./sidebar_menu.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('div',{staticClass:\"gl-relative gl-p-2\"},[(_vm.hasStaticItems)?_c('ul',{staticClass:\"gl-m-0 gl-list-none gl-p-0\",attrs:{\"data-testid\":\"static-items-section\"}},_vm._l((_vm.staticItems),function(item){return _c('nav-item',{key:item.id,attrs:{\"item\":item,\"is-static\":\"\",\"async-count\":_vm.asyncCount}})}),1):_vm._e(),_vm._v(\" \"),(_vm.supportsPins)?_c('pinned-section',{attrs:{\"items\":_vm.pinnedItems,\"has-flyout\":_vm.showFlyoutMenus,\"was-pinned-nav\":_vm.wasPinnedNav,\"async-count\":_vm.asyncCount},on:{\"pin-remove\":_vm.destroyPin,\"pin-reorder\":_vm.movePin}}):_vm._e(),_vm._v(\" \"),(_vm.supportsPins)?_c('hr',{staticClass:\"gl-mx-4 gl-my-2\",attrs:{\"aria-hidden\":\"true\",\"data-testid\":\"main-menu-separator\"}}):_vm._e(),_vm._v(\" \"),_c('ul',{staticClass:\"gl-mb-0 gl-list-none gl-p-0\",attrs:{\"aria-labelledby\":\"super-sidebar-context-header\",\"data-testid\":\"non-static-items-section\"}},[_vm._l((_vm.nonStaticItems),function(item){return [(_vm.isSection(item))?_c('menu-section',{key:item.id,attrs:{\"item\":item,\"separated\":item.separated,\"has-flyout\":_vm.showFlyoutMenus,\"async-count\":_vm.asyncCount,\"tag\":\"li\"},on:{\"pin-add\":_vm.createPin,\"pin-remove\":_vm.destroyPin}}):_c('nav-item',{key:item.id,attrs:{\"item\":item,\"async-count\":_vm.asyncCount},on:{\"pin-add\":_vm.createPin,\"pin-remove\":_vm.destroyPin}})]})],2)],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!./sidebar_peek_behavior.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!./sidebar_peek_behavior.vue?vue&type=script&lang=js\"","<script>\nimport { getCssClassDimensions } from '~/lib/utils/css_utils';\nimport Tracking from '~/tracking';\nimport {\n  SUPER_SIDEBAR_PEEK_OPEN_DELAY,\n  SUPER_SIDEBAR_PEEK_CLOSE_DELAY,\n  SUPER_SIDEBAR_PEEK_STATE_CLOSED as STATE_CLOSED,\n  SUPER_SIDEBAR_PEEK_STATE_WILL_OPEN as STATE_WILL_OPEN,\n  SUPER_SIDEBAR_PEEK_STATE_OPEN as STATE_OPEN,\n  SUPER_SIDEBAR_PEEK_STATE_WILL_CLOSE as STATE_WILL_CLOSE,\n} from '../constants';\n\nexport default {\n  name: 'SidebarPeek',\n  mixins: [Tracking.mixin()],\n  props: {\n    isMouseOverSidebar: {\n      type: Boolean,\n      required: true,\n    },\n  },\n  created() {\n    // Nothing needs to observe these properties, so they are not reactive.\n    this.state = null;\n    this.openTimer = null;\n    this.closeTimer = null;\n    this.xNearWindowEdge = null;\n    this.xSidebarEdge = null;\n    this.xAwayFromSidebar = null;\n  },\n  mounted() {\n    this.xNearWindowEdge = getCssClassDimensions('gl-w-3').width;\n    this.xSidebarEdge = getCssClassDimensions('super-sidebar').width;\n    this.xAwayFromSidebar = 2 * this.xSidebarEdge;\n    document.addEventListener('mousemove', this.onMouseMove);\n    document.documentElement.addEventListener('mouseleave', this.onDocumentLeave);\n    this.changeState(STATE_CLOSED);\n  },\n  beforeDestroy() {\n    document.removeEventListener('mousemove', this.onMouseMove);\n    document.documentElement.removeEventListener('mouseleave', this.onDocumentLeave);\n    this.clearTimers();\n  },\n  methods: {\n    /**\n     * Callback for document-wide mousemove events.\n     *\n     * Since mousemove events can fire frequently, it's important for this to\n     * do as little work as possible.\n     *\n     * When mousemove events fire within one of the defined regions, this ends\n     * up being a no-op. Only when the cursor moves from one region to another\n     * does this do any work: it sets a non-reactive instance property, maybe\n     * cancels/starts timers, and emits an event.\n     *\n     * @params {MouseEvent} event\n     */\n    onMouseMove({ clientX }) {\n      if (this.state === STATE_CLOSED) {\n        if (clientX < this.xNearWindowEdge) {\n          this.willOpen();\n        }\n      } else if (this.state === STATE_WILL_OPEN) {\n        if (clientX >= this.xNearWindowEdge) {\n          this.close();\n        }\n      } else if (this.state === STATE_OPEN) {\n        // Do not close the sidebar if it or one of its child elements still\n        // has mouseover. This allows to move the mouse from the sidebar to\n        // one of its flyout menus.\n        if (this.isMouseOverSidebar) return;\n\n        if (clientX >= this.xAwayFromSidebar) {\n          this.close();\n        } else if (clientX >= this.xSidebarEdge) {\n          this.willClose();\n        }\n      } else if (this.state === STATE_WILL_CLOSE) {\n        if (clientX >= this.xAwayFromSidebar) {\n          this.close();\n        } else if (clientX < this.xSidebarEdge) {\n          this.open();\n        }\n      }\n    },\n    onDocumentLeave() {\n      if (this.state === STATE_OPEN) {\n        this.willClose();\n      } else if (this.state === STATE_WILL_OPEN) {\n        this.close();\n      }\n    },\n    willClose() {\n      if (this.changeState(STATE_WILL_CLOSE)) {\n        this.closeTimer = setTimeout(this.close, SUPER_SIDEBAR_PEEK_CLOSE_DELAY);\n      }\n    },\n    willOpen() {\n      if (this.changeState(STATE_WILL_OPEN)) {\n        this.openTimer = setTimeout(this.open, SUPER_SIDEBAR_PEEK_OPEN_DELAY);\n      }\n    },\n    open() {\n      if (this.changeState(STATE_OPEN)) {\n        this.clearTimers();\n        this.track('nav_peek', {\n          label: 'nav_hover',\n          property: 'nav_sidebar',\n        });\n      }\n    },\n    close() {\n      if (this.changeState(STATE_CLOSED)) {\n        this.clearTimers();\n      }\n    },\n    clearTimers() {\n      clearTimeout(this.closeTimer);\n      clearTimeout(this.openTimer);\n    },\n    /**\n     * Switches to the new state, and emits a change event.\n     *\n     * If the given state is the current state, do nothing.\n     *\n     * @param {string} state The state to transition to.\n     * @returns {boolean} True if the state changed, false otherwise.\n     */\n    changeState(state) {\n      if (this.state === state) return false;\n\n      this.state = state;\n      this.$emit('change', state);\n      return true;\n    },\n  },\n  render() {\n    return null;\n  },\n};\n</script>\n","var render, staticRenderFns\nimport script from \"./sidebar_peek_behavior.vue?vue&type=script&lang=js\"\nexport * from \"./sidebar_peek_behavior.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!./sidebar_hover_peek_behavior.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!./sidebar_hover_peek_behavior.vue?vue&type=script&lang=js\"","<script>\nimport { getCssClassDimensions } from '~/lib/utils/css_utils';\nimport Tracking from '~/tracking';\nimport {\n  JS_TOGGLE_EXPAND_CLASS,\n  SUPER_SIDEBAR_PEEK_OPEN_DELAY,\n  SUPER_SIDEBAR_PEEK_CLOSE_DELAY,\n  SUPER_SIDEBAR_PEEK_STATE_CLOSED as STATE_CLOSED,\n  SUPER_SIDEBAR_PEEK_STATE_WILL_OPEN as STATE_WILL_OPEN,\n  SUPER_SIDEBAR_PEEK_STATE_OPEN as STATE_OPEN,\n  SUPER_SIDEBAR_PEEK_STATE_WILL_CLOSE as STATE_WILL_CLOSE,\n} from '../constants';\n\nexport default {\n  name: 'SidebarHoverPeek',\n  mixins: [Tracking.mixin()],\n  props: {\n    isMouseOverSidebar: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n  },\n  created() {\n    // Nothing needs to observe these properties, so they are not reactive.\n    this.state = null;\n    this.openTimer = null;\n    this.closeTimer = null;\n    this.xSidebarEdge = null;\n    this.isMouseWithinSidebarArea = false;\n  },\n  async mounted() {\n    await this.$nextTick();\n    this.xSidebarEdge = getCssClassDimensions('super-sidebar').width;\n    document.addEventListener('mousemove', this.onMouseMove);\n    document.documentElement.addEventListener('mouseleave', this.onDocumentLeave);\n    document\n      .querySelector(`.${JS_TOGGLE_EXPAND_CLASS}`)\n      .addEventListener('mouseenter', this.onMouseEnter);\n    document\n      .querySelector(`.${JS_TOGGLE_EXPAND_CLASS}`)\n      .addEventListener('mouseleave', this.onMouseLeave);\n    this.changeState(STATE_CLOSED);\n  },\n  beforeDestroy() {\n    document.removeEventListener('mousemove', this.onMouseMove);\n    document.documentElement.removeEventListener('mouseleave', this.onDocumentLeave);\n    document\n      .querySelector(`.${JS_TOGGLE_EXPAND_CLASS}`)\n      .removeEventListener('mouseenter', this.onMouseEnter);\n    document\n      .querySelector(`.${JS_TOGGLE_EXPAND_CLASS}`)\n      .removeEventListener('mouseleave', this.onMouseLeave);\n    this.clearTimers();\n  },\n  methods: {\n    onMouseMove({ clientX }) {\n      if (clientX < this.xSidebarEdge) {\n        this.isMouseWithinSidebarArea = true;\n      } else {\n        this.isMouseWithinSidebarArea = false;\n        if (!this.isMouseOverSidebar && this.state === STATE_OPEN) {\n          this.willClose();\n        }\n      }\n    },\n    onDocumentLeave() {\n      this.isMouseWithinSidebarArea = false;\n      if (this.state === STATE_OPEN) {\n        this.willClose();\n      } else if (this.state === STATE_WILL_OPEN) {\n        this.close();\n      }\n    },\n    onMouseEnter() {\n      clearTimeout(this.closeTimer);\n      this.willOpen();\n    },\n    onMouseLeave() {\n      clearTimeout(this.openTimer);\n      if (this.isMouseWithinSidebarArea || this.isMouseOverSidebar) return;\n      this.willClose();\n    },\n    willClose() {\n      this.changeState(STATE_WILL_CLOSE);\n      this.closeTimer = setTimeout(this.close, SUPER_SIDEBAR_PEEK_CLOSE_DELAY);\n    },\n    willOpen() {\n      this.changeState(STATE_WILL_OPEN);\n      this.openTimer = setTimeout(this.open, SUPER_SIDEBAR_PEEK_OPEN_DELAY);\n    },\n    open() {\n      this.changeState(STATE_OPEN);\n      this.clearTimers();\n      this.track('nav_hover_peek', {\n        label: 'nav_sidebar_toggle',\n        property: 'nav_sidebar',\n      });\n    },\n    close() {\n      if (this.isMouseWithinSidebarArea) return;\n      this.changeState(STATE_CLOSED);\n      this.clearTimers();\n    },\n    clearTimers() {\n      clearTimeout(this.closeTimer);\n      clearTimeout(this.openTimer);\n    },\n    /**\n     * Switches to the new state, and emits a change event.\n     *\n     * If the given state is the current state, do nothing.\n     *\n     * @param {string} state The state to transition to.\n     */\n    changeState(state) {\n      if (this.state === state) return;\n      this.state = state;\n      this.$emit('change', state);\n    },\n  },\n  render() {\n    return null;\n  },\n};\n</script>\n","var render, staticRenderFns\nimport script from \"./sidebar_hover_peek_behavior.vue?vue&type=script&lang=js\"\nexport * from \"./sidebar_hover_peek_behavior.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!./super_sidebar.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!./super_sidebar.vue?vue&type=script&lang=js\"","<script>\nimport { GlButton } from '@gitlab/ui';\nimport { GlBreakpointInstance, breakpoints } from '@gitlab/ui/dist/utils';\nimport ExtraInfo from 'jh_else_ce/super_sidebar/components/extra_info.vue';\nimport { Mousetrap } from '~/lib/mousetrap';\nimport { TAB_KEY_CODE } from '~/lib/utils/keycodes';\nimport { keysFor, TOGGLE_SUPER_SIDEBAR } from '~/behaviors/shortcuts/keybindings';\nimport { __, s__ } from '~/locale';\nimport Tracking from '~/tracking';\nimport {\n  sidebarState,\n  JS_TOGGLE_EXPAND_CLASS,\n  SUPER_SIDEBAR_PEEK_STATE_CLOSED as STATE_CLOSED,\n  SUPER_SIDEBAR_PEEK_STATE_WILL_OPEN as STATE_WILL_OPEN,\n  SUPER_SIDEBAR_PEEK_STATE_OPEN as STATE_OPEN,\n} from '../constants';\nimport { isCollapsed, toggleSuperSidebarCollapsed } from '../super_sidebar_collapsed_state_manager';\nimport { trackContextAccess } from '../utils';\nimport UserBar from './user_bar.vue';\nimport SidebarPortalTarget from './sidebar_portal_target.vue';\nimport HelpCenter from './help_center.vue';\nimport SidebarMenu from './sidebar_menu.vue';\nimport SidebarPeekBehavior from './sidebar_peek_behavior.vue';\nimport SidebarHoverPeekBehavior from './sidebar_hover_peek_behavior.vue';\nimport ScrollScrim from './scroll_scrim.vue';\n\nexport default {\n  components: {\n    GlButton,\n    UserBar,\n    HelpCenter,\n    ExtraInfo,\n    SidebarMenu,\n    SidebarPeekBehavior,\n    SidebarHoverPeekBehavior,\n    SidebarPortalTarget,\n    ScrollScrim,\n    TrialWidget: () => import('jh_else_ee/contextual_sidebar/components/trial_widget.vue'),\n  },\n  mixins: [Tracking.mixin()],\n  i18n: {\n    skipToMainContent: __('Skip to main content'),\n    primaryNavigation: s__('Navigation|Primary navigation'),\n    adminArea: s__('Navigation|Admin'),\n  },\n  inject: ['showTrialWidget'],\n  props: {\n    sidebarData: {\n      type: Object,\n      required: true,\n    },\n  },\n  data() {\n    return {\n      sidebarState,\n      showPeekHint: false,\n      isMouseover: false,\n      breakpoint: null,\n    };\n  },\n  computed: {\n    showOverlay() {\n      return this.sidebarState.isPeek || this.sidebarState.isHoverPeek;\n    },\n    menuItems() {\n      return this.sidebarData.current_menu_items || [];\n    },\n    peekClasses() {\n      return {\n        'super-sidebar-peek-hint': this.showPeekHint,\n        'super-sidebar-peek': this.showOverlay,\n        'super-sidebar-has-peeked': this.sidebarState.hasPeeked,\n      };\n    },\n  },\n  watch: {\n    'sidebarState.isCollapsed': {\n      handler(collapsed) {\n        this.setupFocusTrapListener();\n\n        if (this.isNotPeeking() && !collapsed) {\n          this.$nextTick(() => {\n            this.firstFocusableElement().focus();\n          });\n        }\n      },\n    },\n  },\n  created() {\n    const {\n      is_logged_in: isLoggedIn,\n      current_context: currentContext,\n      username,\n      track_visits_path: trackVisitsPath,\n    } = this.sidebarData;\n    if (isLoggedIn && currentContext.namespace) {\n      trackContextAccess(username, currentContext, trackVisitsPath);\n    }\n  },\n  mounted() {\n    this.setupFocusTrapListener();\n    Mousetrap.bind(keysFor(TOGGLE_SUPER_SIDEBAR), this.toggleSidebar);\n  },\n  beforeDestroy() {\n    document.removeEventListener('keydown', this.focusTrap);\n    Mousetrap.unbind(keysFor(TOGGLE_SUPER_SIDEBAR));\n  },\n  methods: {\n    toggleSidebar() {\n      this.track(isCollapsed() ? 'nav_show' : 'nav_hide', {\n        label: 'nav_toggle_keyboard_shortcut',\n        property: 'nav_sidebar',\n      });\n      toggleSuperSidebarCollapsed(!isCollapsed(), true);\n    },\n    isOverlapping() {\n      return GlBreakpointInstance.windowWidth() < breakpoints.xl;\n    },\n    isNotPeeking() {\n      return !(sidebarState.isHoverPeek || sidebarState.isPeek);\n    },\n    setupFocusTrapListener() {\n      /**\n       * Only trap focus when sidebar displays over page content to avoid\n       * focus moving to page content and being obscured by the sidebar\n       */\n      if (this.isOverlapping() && !this.sidebarState.isCollapsed) {\n        document.addEventListener('keydown', this.focusTrap);\n      } else {\n        document.removeEventListener('keydown', this.focusTrap);\n      }\n    },\n    collapseSidebar() {\n      toggleSuperSidebarCollapsed(true, false);\n    },\n    handleEscKey() {\n      if (this.isOverlapping() && this.isNotPeeking()) {\n        this.collapseSidebar();\n        document.querySelector(`.${JS_TOGGLE_EXPAND_CLASS}`)?.focus();\n      }\n    },\n    onPeekChange(state) {\n      if (state === STATE_CLOSED) {\n        this.sidebarState.isPeek = false;\n        this.sidebarState.isCollapsed = true;\n        this.showPeekHint = false;\n      } else if (state === STATE_WILL_OPEN) {\n        this.sidebarState.hasPeeked = true;\n        this.sidebarState.isPeek = false;\n        this.sidebarState.isCollapsed = true;\n        this.showPeekHint = true;\n      } else {\n        this.sidebarState.isPeek = true;\n        this.sidebarState.isCollapsed = false;\n        this.showPeekHint = false;\n      }\n    },\n    onHoverPeekChange(state) {\n      if (state === STATE_OPEN) {\n        this.sidebarState.hasPeeked = true;\n        this.sidebarState.isHoverPeek = true;\n        this.sidebarState.isCollapsed = false;\n      } else if (state === STATE_CLOSED) {\n        this.sidebarState.isHoverPeek = false;\n        this.sidebarState.isCollapsed = true;\n      }\n    },\n    firstFocusableElement() {\n      return this.$refs.userBar.$el.querySelector('a');\n    },\n    lastFocusableElement() {\n      if (this.sidebarData.is_admin) {\n        return this.$refs.adminAreaLink.$el;\n      }\n      return this.$refs.helpCenter.$el.querySelector('button');\n    },\n    focusTrap(event) {\n      const { keyCode, shiftKey } = event;\n      const firstFocusableElement = this.firstFocusableElement();\n      const lastFocusableElement = this.lastFocusableElement();\n\n      if (keyCode !== TAB_KEY_CODE) return;\n\n      if (shiftKey) {\n        if (document.activeElement === firstFocusableElement) {\n          lastFocusableElement.focus();\n          event.preventDefault();\n        }\n      } else if (document.activeElement === lastFocusableElement) {\n        firstFocusableElement.focus();\n        event.preventDefault();\n      }\n    },\n  },\n};\n</script>\n\n<template>\n  <div>\n    <div ref=\"overlay\" class=\"super-sidebar-overlay\" @click=\"collapseSidebar\"></div>\n    <gl-button\n      v-if=\"sidebarData.is_logged_in\"\n      class=\"super-sidebar-skip-to gl-sr-only !gl-fixed gl-left-0 gl-m-3 focus:gl-not-sr-only\"\n      data-testid=\"super-sidebar-skip-to\"\n      href=\"#content-body\"\n      variant=\"confirm\"\n    >\n      {{ $options.i18n.skipToMainContent }}\n    </gl-button>\n    <nav\n      id=\"super-sidebar\"\n      aria-labelledby=\"super-sidebar-heading\"\n      class=\"super-sidebar\"\n      :class=\"peekClasses\"\n      data-testid=\"super-sidebar\"\n      :inert=\"sidebarState.isCollapsed\"\n      @mouseenter=\"isMouseover = true\"\n      @mouseleave=\"isMouseover = false\"\n      @keydown.esc=\"handleEscKey\"\n    >\n      <h2 id=\"super-sidebar-heading\" class=\"gl-sr-only\">\n        {{ $options.i18n.primaryNavigation }}\n      </h2>\n      <user-bar ref=\"userBar\" :has-collapse-button=\"!showOverlay\" :sidebar-data=\"sidebarData\" />\n      <div class=\"contextual-nav gl-flex gl-grow gl-flex-col gl-overflow-hidden\">\n        <div\n          v-if=\"sidebarData.current_context_header\"\n          id=\"super-sidebar-context-header\"\n          class=\"super-sidebar-context-header gl-m-0 gl-px-4 gl-py-3 gl-font-bold gl-leading-reset\"\n        >\n          {{ sidebarData.current_context_header }}\n        </div>\n        <scroll-scrim class=\"gl-grow\" data-testid=\"nav-container\">\n          <sidebar-menu\n            v-if=\"menuItems.length\"\n            :items=\"menuItems\"\n            :is-logged-in=\"sidebarData.is_logged_in\"\n            :panel-type=\"sidebarData.panel_type\"\n            :pinned-item-ids=\"sidebarData.pinned_items\"\n            :update-pins-url=\"sidebarData.update_pins_url\"\n          />\n          <sidebar-portal-target />\n        </scroll-scrim>\n        <div v-if=\"showTrialWidget\" class=\"gl-p-2\">\n          <trial-widget\n            class=\"gl-relative gl-mb-1 gl-flex gl-items-center gl-rounded-base gl-p-3 gl-leading-normal !gl-text-default !gl-no-underline\"\n          />\n        </div>\n        <div class=\"gl-p-2\">\n          <help-center ref=\"helpCenter\" :sidebar-data=\"sidebarData\" />\n          <gl-button\n            v-if=\"sidebarData.is_admin\"\n            ref=\"adminAreaLink\"\n            class=\"gl-fixed gl-right-0 gl-mr-3 gl-mt-2\"\n            data-testid=\"sidebar-admin-link\"\n            :href=\"sidebarData.admin_url\"\n            icon=\"admin\"\n            size=\"small\"\n          >\n            {{ $options.i18n.adminArea }}\n          </gl-button>\n          <extra-info />\n        </div>\n      </div>\n    </nav>\n    <a\n      v-for=\"shortcutLink in sidebarData.shortcut_links\"\n      :key=\"shortcutLink.href\"\n      :href=\"shortcutLink.href\"\n      :class=\"shortcutLink.css_class\"\n      class=\"gl-hidden\"\n    >\n      {{ shortcutLink.title }}\n    </a>\n\n    <!--\n      Only mount peek behavior components if the sidebar is peekable, to avoid\n      setting up event listeners unnecessarily.\n    -->\n    <sidebar-peek-behavior\n      v-if=\"sidebarState.isPeekable && !sidebarState.isHoverPeek\"\n      :is-mouse-over-sidebar=\"isMouseover\"\n      @change=\"onPeekChange\"\n    />\n    <sidebar-hover-peek-behavior\n      v-if=\"sidebarState.isPeekable && !sidebarState.isPeek\"\n      :is-mouse-over-sidebar=\"isMouseover\"\n      @change=\"onHoverPeekChange\"\n    />\n  </div>\n</template>\n","import { render, staticRenderFns } from \"./super_sidebar.vue?vue&type=template&id=51fc4404\"\nimport script from \"./super_sidebar.vue?vue&type=script&lang=js\"\nexport * from \"./super_sidebar.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('div',[_c('div',{ref:\"overlay\",staticClass:\"super-sidebar-overlay\",on:{\"click\":_vm.collapseSidebar}}),_vm._v(\" \"),(_vm.sidebarData.is_logged_in)?_c('gl-button',{staticClass:\"super-sidebar-skip-to gl-sr-only !gl-fixed gl-left-0 gl-m-3 focus:gl-not-sr-only\",attrs:{\"data-testid\":\"super-sidebar-skip-to\",\"href\":\"#content-body\",\"variant\":\"confirm\"}},[_vm._v(\"\\n    \"+_vm._s(_vm.$options.i18n.skipToMainContent)+\"\\n  \")]):_vm._e(),_vm._v(\" \"),_c('nav',{staticClass:\"super-sidebar\",class:_vm.peekClasses,attrs:{\"id\":\"super-sidebar\",\"aria-labelledby\":\"super-sidebar-heading\",\"data-testid\":\"super-sidebar\",\"inert\":_vm.sidebarState.isCollapsed},on:{\"mouseenter\":function($event){_vm.isMouseover = true},\"mouseleave\":function($event){_vm.isMouseover = false},\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"]))return null;return _vm.handleEscKey.apply(null, arguments)}}},[_c('h2',{staticClass:\"gl-sr-only\",attrs:{\"id\":\"super-sidebar-heading\"}},[_vm._v(\"\\n      \"+_vm._s(_vm.$options.i18n.primaryNavigation)+\"\\n    \")]),_vm._v(\" \"),_c('user-bar',{ref:\"userBar\",attrs:{\"has-collapse-button\":!_vm.showOverlay,\"sidebar-data\":_vm.sidebarData}}),_vm._v(\" \"),_c('div',{staticClass:\"contextual-nav gl-flex gl-grow gl-flex-col gl-overflow-hidden\"},[(_vm.sidebarData.current_context_header)?_c('div',{staticClass:\"super-sidebar-context-header gl-m-0 gl-px-4 gl-py-3 gl-font-bold gl-leading-reset\",attrs:{\"id\":\"super-sidebar-context-header\"}},[_vm._v(\"\\n        \"+_vm._s(_vm.sidebarData.current_context_header)+\"\\n      \")]):_vm._e(),_vm._v(\" \"),_c('scroll-scrim',{staticClass:\"gl-grow\",attrs:{\"data-testid\":\"nav-container\"}},[(_vm.menuItems.length)?_c('sidebar-menu',{attrs:{\"items\":_vm.menuItems,\"is-logged-in\":_vm.sidebarData.is_logged_in,\"panel-type\":_vm.sidebarData.panel_type,\"pinned-item-ids\":_vm.sidebarData.pinned_items,\"update-pins-url\":_vm.sidebarData.update_pins_url}}):_vm._e(),_vm._v(\" \"),_c('sidebar-portal-target')],1),_vm._v(\" \"),(_vm.showTrialWidget)?_c('div',{staticClass:\"gl-p-2\"},[_c('trial-widget',{staticClass:\"gl-relative gl-mb-1 gl-flex gl-items-center gl-rounded-base gl-p-3 gl-leading-normal !gl-text-default !gl-no-underline\"})],1):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"gl-p-2\"},[_c('help-center',{ref:\"helpCenter\",attrs:{\"sidebar-data\":_vm.sidebarData}}),_vm._v(\" \"),(_vm.sidebarData.is_admin)?_c('gl-button',{ref:\"adminAreaLink\",staticClass:\"gl-fixed gl-right-0 gl-mr-3 gl-mt-2\",attrs:{\"data-testid\":\"sidebar-admin-link\",\"href\":_vm.sidebarData.admin_url,\"icon\":\"admin\",\"size\":\"small\"}},[_vm._v(\"\\n          \"+_vm._s(_vm.$options.i18n.adminArea)+\"\\n        \")]):_vm._e(),_vm._v(\" \"),_c('extra-info')],1)],1)],1),_vm._v(\" \"),_vm._l((_vm.sidebarData.shortcut_links),function(shortcutLink){return _c('a',{key:shortcutLink.href,staticClass:\"gl-hidden\",class:shortcutLink.css_class,attrs:{\"href\":shortcutLink.href}},[_vm._v(\"\\n    \"+_vm._s(shortcutLink.title)+\"\\n  \")])}),_vm._v(\" \"),(_vm.sidebarState.isPeekable && !_vm.sidebarState.isHoverPeek)?_c('sidebar-peek-behavior',{attrs:{\"is-mouse-over-sidebar\":_vm.isMouseover},on:{\"change\":_vm.onPeekChange}}):_vm._e(),_vm._v(\" \"),(_vm.sidebarState.isPeekable && !_vm.sidebarState.isPeek)?_c('sidebar-hover-peek-behavior',{attrs:{\"is-mouse-over-sidebar\":_vm.isMouseover},on:{\"change\":_vm.onHoverPeekChange}}):_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport { GlModalDirective, GlTooltipDirective, GlIcon, GlButton } from '@gitlab/ui';\nimport { __, s__, sprintf } from '~/locale';\nimport glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';\nimport { InternalEvents } from '~/tracking';\nimport {\n  isNarrowScreen,\n  isNarrowScreenAddListener,\n  isNarrowScreenRemoveListener,\n} from '~/lib/utils/css_utils';\nimport { SEARCH_MODAL_ID } from '../constants';\nimport SearchModal from './global_search.vue';\n\nconst trackingMixin = InternalEvents.mixin();\n\nexport default {\n  SEARCH_MODAL_ID,\n  components: {\n    GlIcon,\n    SearchModal,\n    GlButton,\n  },\n  i18n: {\n    searchBtnText: __('Search or go to…'),\n    searchKbdHelp: sprintf(\n      s__('GlobalSearch|Type %{kbdOpen}/%{kbdClose} to search'),\n      { kbdOpen: '<kbd>', kbdClose: '</kbd>' },\n      false,\n    ),\n  },\n  directives: {\n    GlTooltip: GlTooltipDirective,\n    GlModal: GlModalDirective,\n  },\n  mixins: [glFeatureFlagsMixin(), trackingMixin],\n  data() {\n    return {\n      searchTooltip: this.$options.i18n.searchKbdHelp,\n      isNarrowScreen: false,\n    };\n  },\n  mounted() {\n    this.isNarrowScreen = isNarrowScreen();\n    isNarrowScreenAddListener(this.handleNarrowScreenChange);\n  },\n  beforeDestroy() {\n    isNarrowScreenRemoveListener(this.handleNarrowScreenChange);\n  },\n  methods: {\n    handleNarrowScreenChange({ matches }) {\n      this.isNarrowScreen = matches;\n    },\n    hideSearchTooltip() {\n      this.searchTooltip = '';\n    },\n    showSearchTooltip() {\n      this.searchTooltip = this.$options.i18n.searchKbdHelp;\n    },\n  },\n};\n</script>\n\n<template>\n  <div\n    v-if=\"glFeatures.searchButtonTopRight\"\n    :class=\"{ 'border-0 gl-w-[300px] gl-rounded-base': !isNarrowScreen }\"\n  >\n    <gl-button\n      id=\"super-sidebar-search\"\n      v-gl-tooltip.bottom.html=\"searchTooltip\"\n      v-gl-modal=\"$options.SEARCH_MODAL_ID\"\n      :class=\"\n        isNarrowScreen\n          ? 'border-0 shadow-none bg-transparent'\n          : 'user-bar-button gl-w-[300px] !gl-justify-start'\n      \"\n      data-testid=\"super-sidebar-search-button\"\n      @click=\"trackEvent('click_search_button_to_activate_command_palette', { label: 'top_right' })\"\n    >\n      <gl-icon name=\"search\" />\n      <span v-if=\"!isNarrowScreen\">{{ $options.i18n.searchBtnText }}</span>\n    </gl-button>\n    <search-modal @shown=\"hideSearchTooltip\" @hidden=\"showSearchTooltip\" />\n  </div>\n</template>\n","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!./global_search_header_app.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!./global_search_header_app.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./global_search_header_app.vue?vue&type=template&id=1630ff48\"\nimport script from \"./global_search_header_app.vue?vue&type=script&lang=js\"\nexport * from \"./global_search_header_app.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 (_vm.glFeatures.searchButtonTopRight)?_c('div',{class:{ 'border-0 gl-w-[300px] gl-rounded-base': !_vm.isNarrowScreen }},[_c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.bottom.html\",value:(_vm.searchTooltip),expression:\"searchTooltip\",modifiers:{\"bottom\":true,\"html\":true}},{name:\"gl-modal\",rawName:\"v-gl-modal\",value:(_vm.$options.SEARCH_MODAL_ID),expression:\"$options.SEARCH_MODAL_ID\"}],class:_vm.isNarrowScreen\n        ? 'border-0 shadow-none bg-transparent'\n        : 'user-bar-button gl-w-[300px] !gl-justify-start',attrs:{\"id\":\"super-sidebar-search\",\"data-testid\":\"super-sidebar-search-button\"},on:{\"click\":function($event){return _vm.trackEvent('click_search_button_to_activate_command_palette', { label: 'top_right' })}}},[_c('gl-icon',{attrs:{\"name\":\"search\"}}),_vm._v(\" \"),(!_vm.isNarrowScreen)?_c('span',[_vm._v(_vm._s(_vm.$options.i18n.searchBtnText))]):_vm._e()],1),_vm._v(\" \"),_c('search-modal',{on:{\"shown\":_vm.hideSearchTooltip,\"hidden\":_vm.showSearchTooltip}})],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\nimport { GlBreadcrumb, GlToast } from '@gitlab/ui';\nimport VueApollo from 'vue-apollo';\nimport { convertObjectPropsToCamelCase, parseBoolean } from '~/lib/utils/common_utils';\nimport { apolloProvider } from '~/graphql_shared/issuable_client';\nimport { staticBreadcrumbs } from '~/lib/utils/breadcrumbs';\nimport { JS_TOGGLE_EXPAND_CLASS, CONTEXT_NAMESPACE_GROUPS } from './constants';\nimport createStore from './components/global_search/store';\nimport {\n  bindSuperSidebarCollapsedEvents,\n  initSuperSidebarCollapsedState,\n} from './super_sidebar_collapsed_state_manager';\nimport SuperSidebar from './components/super_sidebar.vue';\nimport SuperSidebarToggle from './components/super_sidebar_toggle.vue';\nimport AdvancedSearchModal from './components/global_search/components/global_search_header_app.vue';\n\nVue.use(GlToast);\nVue.use(VueApollo);\n\nconst getTrialStatusWidgetData = (sidebarData) => {\n  if (sidebarData.trial_widget_data_attrs) {\n    const {\n      trialType,\n      daysRemaining,\n      percentageComplete,\n      groupId,\n      trialDiscoverPagePath,\n      purchaseNowUrl,\n      featureId,\n      dismissEndpoint,\n    } = convertObjectPropsToCamelCase(sidebarData.trial_widget_data_attrs);\n\n    return {\n      showTrialWidget: true,\n      trialType,\n      daysRemaining: Number(daysRemaining),\n      percentageComplete: Number(percentageComplete),\n      groupId,\n      trialDiscoverPagePath,\n      purchaseNowUrl,\n      featureId,\n      dismissEndpoint,\n    };\n  }\n\n  return {\n    showTrialWidget: false,\n  };\n};\n\nexport const getSuperSidebarData = () => {\n  const el = document.querySelector('.js-super-sidebar');\n  if (!el) return false;\n\n  const { rootPath, sidebar, forceDesktopExpandedSidebar, commandPalette, isSaas } = el.dataset;\n  const sidebarData = JSON.parse(sidebar);\n  const searchData = convertObjectPropsToCamelCase(sidebarData.search);\n  const { searchPath, issuesPath, mrPath, autocompletePath, settingsPath, searchContext } =\n    searchData;\n  const currentPath = sidebarData?.current_context?.item?.fullPath;\n  const projectsPath = sidebarData.projects_path;\n  const groupsPath = sidebarData.groups_path;\n  const commandPaletteData = JSON.parse(commandPalette);\n  const projectFilesPath = commandPaletteData.project_files_url;\n  const projectBlobPath = commandPaletteData.project_blob_url;\n  const commandPaletteCommands = sidebarData.create_new_menu_groups || [];\n  const commandPaletteLinks = convertObjectPropsToCamelCase(sidebarData.current_menu_items || []);\n  const contextSwitcherLinks = sidebarData.context_switcher_links;\n  const isImpersonating = parseBoolean(sidebarData.is_impersonating);\n  const isGroup = Boolean(sidebarData.current_context?.namespace === CONTEXT_NAMESPACE_GROUPS);\n\n  return {\n    el,\n    rootPath,\n    currentPath,\n    forceDesktopExpandedSidebar,\n    isSaas,\n    sidebarData,\n    searchPath,\n    issuesPath,\n    mrPath,\n    autocompletePath,\n    settingsPath,\n    searchContext,\n    projectsPath,\n    groupsPath,\n    projectFilesPath,\n    projectBlobPath,\n    commandPaletteCommands,\n    commandPaletteLinks,\n    contextSwitcherLinks,\n    isImpersonating,\n    isGroup,\n  };\n};\n\nexport const initSuperSidebar = ({\n  el,\n  rootPath,\n  currentPath,\n  forceDesktopExpandedSidebar,\n  isSaas,\n  sidebarData,\n  searchPath,\n  issuesPath,\n  mrPath,\n  autocompletePath,\n  settingsPath,\n  searchContext,\n  projectsPath,\n  groupsPath,\n  projectFilesPath,\n  projectBlobPath,\n  commandPaletteCommands,\n  commandPaletteLinks,\n  contextSwitcherLinks,\n  isImpersonating,\n  isGroup,\n}) => {\n  if (!el) return false;\n\n  bindSuperSidebarCollapsedEvents(forceDesktopExpandedSidebar);\n  initSuperSidebarCollapsedState(parseBoolean(forceDesktopExpandedSidebar));\n\n  return new Vue({\n    el,\n    name: 'SuperSidebarRoot',\n    apolloProvider,\n    provide: {\n      rootPath,\n      currentPath,\n      isImpersonating,\n      ...getTrialStatusWidgetData(sidebarData),\n      commandPaletteCommands,\n      commandPaletteLinks,\n      contextSwitcherLinks,\n      autocompletePath,\n      settingsPath,\n      searchContext,\n      projectFilesPath,\n      projectBlobPath,\n      projectsPath,\n      groupsPath,\n      fullPath: sidebarData.work_items?.full_path,\n      hasIssuableHealthStatusFeature: sidebarData.work_items?.has_issuable_health_status_feature,\n      issuesListPath: sidebarData.work_items?.issues_list_path,\n      canAdminLabel: parseBoolean(sidebarData.work_items?.can_admin_label),\n      labelsManagePath: sidebarData.work_items?.labels_manage_path,\n      isGroup,\n      isSaas: parseBoolean(isSaas),\n    },\n    store: createStore({\n      searchPath,\n      issuesPath,\n      mrPath,\n      autocompletePath,\n      searchContext,\n      search: '',\n    }),\n    render(h) {\n      return h(SuperSidebar, {\n        props: {\n          sidebarData,\n        },\n      });\n    },\n  });\n};\n\n/**\n * Guard against multiple instantiations, since the js-* class is persisted\n * in the Vue component.\n */\nlet toggleInstantiated = false;\n\nexport const initSuperSidebarToggle = () => {\n  const el = document.querySelector(`.${JS_TOGGLE_EXPAND_CLASS}`);\n\n  if (!el || toggleInstantiated) return false;\n\n  toggleInstantiated = true;\n\n  return new Vue({\n    el,\n    name: 'SuperSidebarToggleRoot',\n    render(h) {\n      // Copy classes from HAML-defined button to ensure same positioning,\n      // including JS_TOGGLE_EXPAND_CLASS.\n      return h(SuperSidebarToggle, { class: el.className });\n    },\n  });\n};\n\nexport function initPageBreadcrumbs() {\n  const el = document.querySelector('#js-vue-page-breadcrumbs');\n  if (!el) return false;\n  const { breadcrumbsJson } = el.dataset;\n\n  staticBreadcrumbs.items = JSON.parse(breadcrumbsJson);\n\n  return new Vue({\n    el,\n    render(h) {\n      return h(GlBreadcrumb, {\n        props: staticBreadcrumbs,\n      });\n    },\n  });\n}\n\nexport function initAdvancedSearchModal({\n  rootPath,\n  isSaas,\n  sidebarData,\n  searchPath,\n  issuesPath,\n  mrPath,\n  autocompletePath,\n  searchContext,\n  projectsPath,\n  groupsPath,\n  projectFilesPath,\n  projectBlobPath,\n  commandPaletteCommands,\n  commandPaletteLinks,\n  contextSwitcherLinks,\n  isGroup,\n}) {\n  const el = document.querySelector('#js-advanced-search-modal');\n\n  if (!el) return false;\n\n  return new Vue({\n    el,\n    name: 'SuperSidebarRoot',\n    apolloProvider,\n    provide: {\n      rootPath,\n      commandPaletteCommands,\n      commandPaletteLinks,\n      contextSwitcherLinks,\n      autocompletePath,\n      searchContext,\n      projectFilesPath,\n      projectBlobPath,\n      projectsPath,\n      groupsPath,\n      fullPath: sidebarData.work_items?.full_path,\n      isGroup,\n      isSaas: parseBoolean(isSaas),\n    },\n    store: createStore({\n      searchPath,\n      issuesPath,\n      mrPath,\n      autocompletePath,\n      searchContext,\n      search: '',\n    }),\n    render(h) {\n      return h(AdvancedSearchModal);\n    },\n  });\n}\n","import '~/webpack';\nimport '~/commons';\nimport {\n  initSuperSidebar,\n  initSuperSidebarToggle,\n  initPageBreadcrumbs,\n  getSuperSidebarData,\n  initAdvancedSearchModal,\n} from '~/super_sidebar/super_sidebar_bundle';\n\nconst superSidebarData = getSuperSidebarData();\n\ninitSuperSidebar(superSidebarData);\ninitSuperSidebarToggle();\ninitPageBreadcrumbs();\ninitAdvancedSearchModal(superSidebarData);\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"CurrentUserFrecentProjects\"},\"variableDefinitions\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"frecentProjects\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"namespace\"},\"name\":{\"kind\":\"Name\",\"value\":\"nameWithNamespace\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"avatarUrl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":137}};\n    doc.loc.source = {\"body\":\"query CurrentUserFrecentProjects {\\n  frecentProjects {\\n    id\\n    name\\n    namespace: nameWithNamespace\\n    avatarUrl\\n    fullPath\\n  }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"CurrentUserFrecentProjects\"] = oneQuery(doc, \"CurrentUserFrecentProjects\");\n        \n","import { pickBy } from 'lodash';\nimport { slugify, truncateNamespace } from '~/lib/utils/text_utility';\nimport {\n  GROUPS_CATEGORY,\n  PROJECTS_CATEGORY,\n  MERGE_REQUEST_CATEGORY,\n  ISSUES_CATEGORY,\n  RECENT_EPICS_CATEGORY,\n  COMMAND_PALETTE_TYPE_PAGES,\n  COMMAND_PALETTE_TYPE_FILES,\n} from '~/vue_shared/global_search/constants';\n\nimport {\n  TRACKING_CLICK_COMMAND_PALETTE_ITEM,\n  COMMON_HANDLES,\n  USERS_GROUP_TITLE,\n  PROJECTS_GROUP_TITLE,\n} from './command_palette/constants';\n\nimport { LARGE_AVATAR_PX, SMALL_AVATAR_PX } from './constants';\n\nconst getTruncatedNamespace = (string) => {\n  if (string.split(' / ').length > 2) {\n    return truncateNamespace(string);\n  }\n\n  return string;\n};\nconst getAvatarSize = (category) => {\n  if (category === GROUPS_CATEGORY || category === PROJECTS_CATEGORY) {\n    return LARGE_AVATAR_PX;\n  }\n\n  return SMALL_AVATAR_PX;\n};\n\nconst getEntityId = (item, searchContext) => {\n  switch (item.category) {\n    case GROUPS_CATEGORY:\n    case RECENT_EPICS_CATEGORY:\n      return item.group_id || item.id || searchContext?.group?.id;\n    case PROJECTS_CATEGORY:\n    case ISSUES_CATEGORY:\n    case MERGE_REQUEST_CATEGORY:\n      return item.project_id || item.id || searchContext?.project?.id;\n    default:\n      return item.id;\n  }\n};\nconst getEntityName = (item, searchContext) => {\n  switch (item.category) {\n    case GROUPS_CATEGORY:\n    case RECENT_EPICS_CATEGORY:\n      return item.group_name || item.value || item.label || searchContext?.group?.name;\n    case PROJECTS_CATEGORY:\n    case ISSUES_CATEGORY:\n    case MERGE_REQUEST_CATEGORY:\n      return item.project_name || item.value || item.label || searchContext?.project?.name;\n    default:\n      return item.label;\n  }\n};\n\nexport const getFormattedItem = (item, searchContext) => {\n  const { id, category, value, label, url: href, avatar_url, name } = item;\n  let namespace;\n  const text = value || label || name;\n  if (value) {\n    namespace = getTruncatedNamespace(label);\n  }\n  const avatarSize = getAvatarSize(category);\n  const entityId = getEntityId(item, searchContext);\n  const entityName = getEntityName(item, searchContext);\n  const trackingLabel = slugify(category ?? '');\n  const trackingAttrs = trackingLabel\n    ? {\n        extraAttrs: {\n          'data-track-action': TRACKING_CLICK_COMMAND_PALETTE_ITEM,\n          'data-track-label': slugify(category, '_'),\n        },\n      }\n    : {};\n\n  return pickBy(\n    {\n      id,\n      category,\n      value,\n      label,\n      text,\n      href,\n      avatar_url,\n      avatar_size: avatarSize,\n      namespace,\n      entity_id: entityId,\n      entity_name: entityName,\n      ...trackingAttrs,\n    },\n    (val) => val !== undefined,\n  );\n};\n\nexport const commandPaletteDropdownItems = [\n  {\n    value: COMMON_HANDLES[0],\n    text: COMMAND_PALETTE_TYPE_PAGES,\n  },\n  {\n    value: COMMON_HANDLES[1],\n    text: USERS_GROUP_TITLE,\n  },\n  {\n    value: COMMON_HANDLES[2],\n    text: PROJECTS_GROUP_TITLE,\n  },\n  {\n    value: COMMON_HANDLES[3],\n    text: COMMAND_PALETTE_TYPE_FILES,\n  },\n];\n","import { s__ } from '~/locale';\nimport { helpPagePath } from '~/helpers/help_page_helper';\n\nexport const PROJECT_SELECT_LABEL_ID = 'project-select';\nexport const SEARCH_DELAY = 200;\nexport const VALID_TOKEN_BACKGROUND = 'gl-bg-green-100';\nexport const WARNING_TOKEN_BACKGROUND = 'gl-bg-orange-100';\nexport const INVALID_TOKEN_BACKGROUND = 'gl-bg-red-100';\nexport const TOAST_MESSAGE_LOCALSTORAGE_KEY = 'members_invited_successfully';\nexport const MEMBERS_WITH_QUEUED_STATUS_LOCALSTORAGE_KEY = 'members_queued_successfully';\n\nexport const GROUP_FILTERS = {\n  ALL: 'all',\n  DESCENDANT_GROUPS: 'descendant_groups',\n};\n\nexport const USERS_FILTER_ALL = 'all';\nexport const USERS_FILTER_SAML_PROVIDER_ID = 'saml_provider_id';\nexport const TRIGGER_ELEMENT_BUTTON = 'button';\nexport const TOP_NAV_INVITE_MEMBERS_COMPONENT = 'invite_members';\nexport const TRIGGER_ELEMENT_WITH_EMOJI = 'text-emoji';\nexport const TRIGGER_ELEMENT_DROPDOWN_WITH_EMOJI = 'dropdown-text-emoji';\nexport const TRIGGER_ELEMENT_DISCLOSURE_DROPDOWN = 'dropdown-text';\nexport const INVITE_MEMBER_MODAL_TRACKING_CATEGORY = 'invite_members_modal';\nexport const IMPORT_PROJECT_MEMBERS_MODAL_TRACKING_CATEGORY = 'invite_project_members_modal';\nexport const IMPORT_PROJECT_MEMBERS_MODAL_TRACKING_LABEL = 'project-members-page';\nexport const MEMBERS_MODAL_DEFAULT_TITLE = s__('InviteMembersModal|Invite members');\nexport const MEMBERS_MODAL_CELEBRATE_TITLE = s__(\n  'InviteMembersModal|GitLab is better with colleagues!',\n);\nexport const MEMBERS_MODAL_CELEBRATE_INTRO = s__(\n  'InviteMembersModal|How about inviting a colleague or two to join you?',\n);\nexport const MEMBERS_TO_GROUP_DEFAULT_INTRO_TEXT = s__(\n  \"InviteMembersModal|You're inviting members to the %{strongStart}%{name}%{strongEnd} group.\",\n);\n\nexport const MEMBERS_TO_PROJECT_DEFAULT_INTRO_TEXT = s__(\n  \"InviteMembersModal|You're inviting members to the %{strongStart}%{name}%{strongEnd} project.\",\n);\nexport const MEMBERS_TO_PROJECT_CELEBRATE_INTRO_TEXT = s__(\n  \"InviteMembersModal|Congratulations on creating your project, you're almost there!\",\n);\nexport const MEMBERS_SEARCH_FIELD = s__('InviteMembersModal|Username, name or email address');\nexport const MEMBERS_PLACEHOLDER = s__(\n  'InviteMembersModal|Select from GitLab usernames or enter email addresses',\n);\n\nexport const GROUP_MODAL_DEFAULT_TITLE = s__('InviteMembersModal|Invite a group');\nexport const GROUP_MODAL_TO_GROUP_DEFAULT_INTRO_TEXT = s__(\n  \"InviteMembersModal|You're inviting a group to the %{strongStart}%{name}%{strongEnd} group.\",\n);\nexport const GROUP_MODAL_TO_PROJECT_DEFAULT_INTRO_TEXT = s__(\n  \"InviteMembersModal|You're inviting a group to the %{strongStart}%{name}%{strongEnd} project.\",\n);\n\nexport const GROUP_MODAL_TO_GROUP_ALERT_BODY = s__(\n  'InviteMembersModal|Inviting a group %{linkStart}adds its members to your group%{linkEnd}, including members who join after the invite. This might put your group over the free %{count} user limit.',\n);\nexport const GROUP_MODAL_TO_GROUP_ALERT_LINK = helpPagePath(\n  'user/project/members/sharing_projects_groups',\n  {\n    anchor: 'invite-a-group-to-a-group',\n  },\n);\nexport const GROUP_MODAL_TO_PROJECT_ALERT_BODY = s__(\n  'InviteMembersModal|Inviting a group %{linkStart}adds its members to your project%{linkEnd}, including members who join after the invite. This might put your group over the free %{count} user limit.',\n);\nexport const GROUP_MODAL_TO_PROJECT_ALERT_LINK = helpPagePath(\n  'user/project/members/sharing_projects_groups',\n  {\n    anchor: 'invite-a-group-to-a-project',\n  },\n);\n\nexport const GROUP_SEARCH_FIELD = s__('InviteMembersModal|Select a group to invite');\nexport const GROUP_PLACEHOLDER = s__('InviteMembersModal|Search for a group to invite');\n\nexport const ACCESS_LEVEL = s__('InviteMembersModal|Select maximum role');\nexport const ACCESS_EXPIRE_DATE = s__('InviteMembersModal|Access expiration date (optional)');\nexport const TOAST_MESSAGE_SUCCESSFUL = s__('InviteMembersModal|Members were successfully added.');\nexport const QUEUED_MESSAGE_SUCCESSFUL = s__(\n  'InviteMembersModal|Some invitations have been queued for administrator approval.',\n);\nexport const INVALID_FEEDBACK_MESSAGE_DEFAULT = s__('InviteMembersModal|Something went wrong');\nexport const READ_MORE_TEXT = s__(\n  `InviteMembersModal|%{linkStart}Read more%{linkEnd} about role permissions. You can change this later. Invited members are limited to this role or their current group role, whichever is lower.`,\n);\nexport const READ_MORE_ACCESS_EXPIRATION_TEXT = s__(\n  `InviteMembersModal|%{linkStart}Read more%{linkEnd} about access expiration`,\n);\nexport const INVITE_BUTTON_TEXT = s__('InviteMembersModal|Invite');\nexport const INVITE_BUTTON_TEXT_DISABLED = s__('InviteMembersModal|Manage members');\nexport const CANCEL_BUTTON_TEXT = s__('InviteMembersModal|Cancel');\nexport const HEADER_CLOSE_LABEL = s__('InviteMembersModal|Close invite team members');\nexport const MEMBER_ERROR_LIST_TEXT = s__(\n  'InviteMembersModal|Review the invite errors and try again:',\n);\nexport const COLLAPSED_ERRORS = s__('InviteMembersModal|Show more (%{count})');\nexport const EXPANDED_ERRORS = s__('InviteMembersModal|Show less');\nexport const EMPTY_INVITES_ALERT_TEXT = s__('InviteMembersModal|Please add members to invite');\n\nexport const MEMBER_MODAL_LABELS = {\n  modal: {\n    default: {\n      title: MEMBERS_MODAL_DEFAULT_TITLE,\n    },\n    celebrate: {\n      title: MEMBERS_MODAL_CELEBRATE_TITLE,\n      intro: MEMBERS_MODAL_CELEBRATE_INTRO,\n    },\n  },\n  toGroup: {\n    default: {\n      introText: MEMBERS_TO_GROUP_DEFAULT_INTRO_TEXT,\n    },\n  },\n  toProject: {\n    default: {\n      introText: MEMBERS_TO_PROJECT_DEFAULT_INTRO_TEXT,\n    },\n    celebrate: {\n      introText: MEMBERS_TO_PROJECT_CELEBRATE_INTRO_TEXT,\n    },\n  },\n  searchField: MEMBERS_SEARCH_FIELD,\n  placeHolder: MEMBERS_PLACEHOLDER,\n  toastMessageSuccessful: TOAST_MESSAGE_SUCCESSFUL,\n  memberErrorListText: MEMBER_ERROR_LIST_TEXT,\n  collapsedErrors: COLLAPSED_ERRORS,\n  expandedErrors: EXPANDED_ERRORS,\n  emptyInvitesAlertText: EMPTY_INVITES_ALERT_TEXT,\n};\n\nexport const GROUP_MODAL_LABELS = {\n  title: GROUP_MODAL_DEFAULT_TITLE,\n  toGroup: {\n    introText: GROUP_MODAL_TO_GROUP_DEFAULT_INTRO_TEXT,\n    notificationText: GROUP_MODAL_TO_GROUP_ALERT_BODY,\n    notificationLink: GROUP_MODAL_TO_GROUP_ALERT_LINK,\n  },\n  toProject: {\n    introText: GROUP_MODAL_TO_PROJECT_DEFAULT_INTRO_TEXT,\n    notificationText: GROUP_MODAL_TO_PROJECT_ALERT_BODY,\n    notificationLink: GROUP_MODAL_TO_PROJECT_ALERT_LINK,\n  },\n  searchField: GROUP_SEARCH_FIELD,\n  placeHolder: GROUP_PLACEHOLDER,\n  toastMessageSuccessful: TOAST_MESSAGE_SUCCESSFUL,\n};\n\nexport const ON_SHOW_TRACK_LABEL = 'over_limit_modal_viewed';\nexport const ON_CELEBRATION_TRACK_LABEL = 'invite_celebration_modal';\n\nexport const WARNING_ALERT_TITLE = s__(\n  'InviteMembersModal|You only have space for %{count} more %{members} in %{name}',\n);\nexport const DANGER_ALERT_TITLE = s__(\n  \"InviteMembersModal|You've reached your %{count} %{members} limit for %{name}\",\n);\n\nexport const REACHED_LIMIT_VARIANT = 'reached';\nexport const CLOSE_TO_LIMIT_VARIANT = 'close';\n\nexport const REACHED_LIMIT_MESSAGE = s__(\n  'InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects.',\n);\n\nexport const REACHED_LIMIT_UPGRADE_SUGGESTION_MESSAGE = REACHED_LIMIT_MESSAGE.concat(\n  s__(\n    'InviteMembersModal| To get more members, the owner of this top-level group can %{trialLinkStart}start a trial%{trialLinkEnd} or %{upgradeLinkStart}upgrade%{upgradeLinkEnd} to a paid tier.',\n  ),\n);\n\nexport const CLOSE_TO_LIMIT_MESSAGE = s__(\n  'InviteMembersModal|To get more members an owner of the group can %{trialLinkStart}start a trial%{trialLinkEnd} or %{upgradeLinkStart}upgrade%{upgradeLinkEnd} to a paid tier.',\n);\nexport const BLOCKED_SEAT_OVERAGES_BODY = s__(\n  'InviteMembersModal|You must purchase more seats for your subscription before this amount of users can be added.',\n);\nexport const BLOCKED_SEAT_OVERAGES_CTA = s__('InviteMembersModal|Purchase more seats');\nexport const BLOCKED_SEAT_OVERAGES_CTA_DOCS = s__('InviteMembersModal|Learn how to add seats');\nexport const BLOCKED_SEAT_OVERAGES_ERROR_REASON = 'seat_limit_exceeded_error';\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"getAsyncSuperSidebarData\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"namespace\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sidebar\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"SuperSideBarCount\"},\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":233}};\n    doc.loc.source = {\"body\":\"#import \\\"ee_else_ce/super_sidebar/graphql/queries/super_sidebar_count.fragment.graphql\\\"\\n\\nquery getAsyncSuperSidebarData($fullPath: ID!) {\\n  namespace(fullPath: $fullPath) {\\n    id\\n    sidebar {\\n      ...SuperSideBarCount\\n    }\\n  }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  doc.definitions = doc.definitions.concat(unique(require(\"ee_else_ce/super_sidebar/graphql/queries/super_sidebar_count.fragment.graphql\").definitions));\n\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"getAsyncSuperSidebarData\"] = oneQuery(doc, \"getAsyncSuperSidebarData\");\n        \n","/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeFloor = Math.floor,\n    nativeRandom = Math.random;\n\n/**\n * The base implementation of `_.random` without support for returning\n * floating-point numbers.\n *\n * @private\n * @param {number} lower The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the random number.\n */\nfunction baseRandom(lower, upper) {\n  return lower + nativeFloor(nativeRandom() * (upper - lower + 1));\n}\n\nmodule.exports = baseRandom;\n","exports = module.exports = require(\"../../../../../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \"\\n.fake-input[data-v-26a01bbc] {\\n  position: absolute;\\n  top: 14px;\\n  left: 39px;\\n}\\n\", \"\"]);\n\n","import Vue from 'vue';\n\nexport const staticBreadcrumbs = Vue.observable({});\n\nexport const injectVueAppBreadcrumbs = (\n  router,\n  BreadcrumbsComponent,\n  apolloProvider = null,\n  provide = {},\n  // eslint-disable-next-line max-params\n) => {\n  const injectBreadcrumbEl = document.querySelector('#js-injected-page-breadcrumbs');\n\n  if (!injectBreadcrumbEl) {\n    return false;\n  }\n\n  // Hide the last of the static breadcrumbs by nulling its values.\n  // This way, the separator \"/\" stays visible and also the new \"last\" static item isn't displayed in bold font.\n  staticBreadcrumbs.items[staticBreadcrumbs.items.length - 1].text = '';\n  staticBreadcrumbs.items[staticBreadcrumbs.items.length - 1].href = '';\n\n  return new Vue({\n    el: injectBreadcrumbEl,\n    router,\n    apolloProvider,\n    provide,\n    render(createElement) {\n      return createElement(BreadcrumbsComponent, {\n        class: injectBreadcrumbEl.className,\n      });\n    },\n  });\n};\n","\n /*! \n  * portal-vue © Thorsten Lünborg, 2019 \n  * \n  * Version: 2.1.7\n  * \n  * LICENCE: MIT \n  * \n  * https://github.com/linusborg/portal-vue\n  * \n */\n\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar Vue = _interopDefault(require('vue'));\n\nfunction _typeof(obj) {\n  if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n    _typeof = function (obj) {\n      return typeof obj;\n    };\n  } else {\n    _typeof = function (obj) {\n      return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n    };\n  }\n\n  return _typeof(obj);\n}\n\nfunction _toConsumableArray(arr) {\n  return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n  if (Array.isArray(arr)) {\n    for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n    return arr2;\n  }\n}\n\nfunction _iterableToArray(iter) {\n  if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nvar inBrowser = typeof window !== 'undefined';\nfunction freeze(item) {\n  if (Array.isArray(item) || _typeof(item) === 'object') {\n    return Object.freeze(item);\n  }\n\n  return item;\n}\nfunction combinePassengers(transports) {\n  var slotProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  return transports.reduce(function (passengers, transport) {\n    var temp = transport.passengers[0];\n    var newPassengers = typeof temp === 'function' ? temp(slotProps) : transport.passengers;\n    return passengers.concat(newPassengers);\n  }, []);\n}\nfunction stableSort(array, compareFn) {\n  return array.map(function (v, idx) {\n    return [idx, v];\n  }).sort(function (a, b) {\n    return compareFn(a[1], b[1]) || a[0] - b[0];\n  }).map(function (c) {\n    return c[1];\n  });\n}\nfunction pick(obj, keys) {\n  return keys.reduce(function (acc, key) {\n    if (obj.hasOwnProperty(key)) {\n      acc[key] = obj[key];\n    }\n\n    return acc;\n  }, {});\n}\n\nvar transports = {};\nvar targets = {};\nvar sources = {};\nvar Wormhole = Vue.extend({\n  data: function data() {\n    return {\n      transports: transports,\n      targets: targets,\n      sources: sources,\n      trackInstances: inBrowser\n    };\n  },\n  methods: {\n    open: function open(transport) {\n      if (!inBrowser) return;\n      var to = transport.to,\n          from = transport.from,\n          passengers = transport.passengers,\n          _transport$order = transport.order,\n          order = _transport$order === void 0 ? Infinity : _transport$order;\n      if (!to || !from || !passengers) return;\n      var newTransport = {\n        to: to,\n        from: from,\n        passengers: freeze(passengers),\n        order: order\n      };\n      var keys = Object.keys(this.transports);\n\n      if (keys.indexOf(to) === -1) {\n        Vue.set(this.transports, to, []);\n      }\n\n      var currentIndex = this.$_getTransportIndex(newTransport); // Copying the array here so that the PortalTarget change event will actually contain two distinct arrays\n\n      var newTransports = this.transports[to].slice(0);\n\n      if (currentIndex === -1) {\n        newTransports.push(newTransport);\n      } else {\n        newTransports[currentIndex] = newTransport;\n      }\n\n      this.transports[to] = stableSort(newTransports, function (a, b) {\n        return a.order - b.order;\n      });\n    },\n    close: function close(transport) {\n      var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n      var to = transport.to,\n          from = transport.from;\n      if (!to || !from && force === false) return;\n\n      if (!this.transports[to]) {\n        return;\n      }\n\n      if (force) {\n        this.transports[to] = [];\n      } else {\n        var index = this.$_getTransportIndex(transport);\n\n        if (index >= 0) {\n          // Copying the array here so that the PortalTarget change event will actually contain two distinct arrays\n          var newTransports = this.transports[to].slice(0);\n          newTransports.splice(index, 1);\n          this.transports[to] = newTransports;\n        }\n      }\n    },\n    registerTarget: function registerTarget(target, vm, force) {\n      if (!inBrowser) return;\n\n      if (this.trackInstances && !force && this.targets[target]) {\n        console.warn(\"[portal-vue]: Target \".concat(target, \" already exists\"));\n      }\n\n      this.$set(this.targets, target, Object.freeze([vm]));\n    },\n    unregisterTarget: function unregisterTarget(target) {\n      this.$delete(this.targets, target);\n    },\n    registerSource: function registerSource(source, vm, force) {\n      if (!inBrowser) return;\n\n      if (this.trackInstances && !force && this.sources[source]) {\n        console.warn(\"[portal-vue]: source \".concat(source, \" already exists\"));\n      }\n\n      this.$set(this.sources, source, Object.freeze([vm]));\n    },\n    unregisterSource: function unregisterSource(source) {\n      this.$delete(this.sources, source);\n    },\n    hasTarget: function hasTarget(to) {\n      return !!(this.targets[to] && this.targets[to][0]);\n    },\n    hasSource: function hasSource(to) {\n      return !!(this.sources[to] && this.sources[to][0]);\n    },\n    hasContentFor: function hasContentFor(to) {\n      return !!this.transports[to] && !!this.transports[to].length;\n    },\n    // Internal\n    $_getTransportIndex: function $_getTransportIndex(_ref) {\n      var to = _ref.to,\n          from = _ref.from;\n\n      for (var i in this.transports[to]) {\n        if (this.transports[to][i].from === from) {\n          return +i;\n        }\n      }\n\n      return -1;\n    }\n  }\n});\nvar wormhole = new Wormhole(transports);\n\nvar _id = 1;\nvar Portal = Vue.extend({\n  name: 'portal',\n  props: {\n    disabled: {\n      type: Boolean\n    },\n    name: {\n      type: String,\n      default: function _default() {\n        return String(_id++);\n      }\n    },\n    order: {\n      type: Number,\n      default: 0\n    },\n    slim: {\n      type: Boolean\n    },\n    slotProps: {\n      type: Object,\n      default: function _default() {\n        return {};\n      }\n    },\n    tag: {\n      type: String,\n      default: 'DIV'\n    },\n    to: {\n      type: String,\n      default: function _default() {\n        return String(Math.round(Math.random() * 10000000));\n      }\n    }\n  },\n  created: function created() {\n    var _this = this;\n\n    this.$nextTick(function () {\n      wormhole.registerSource(_this.name, _this);\n    });\n  },\n  mounted: function mounted() {\n    if (!this.disabled) {\n      this.sendUpdate();\n    }\n  },\n  updated: function updated() {\n    if (this.disabled) {\n      this.clear();\n    } else {\n      this.sendUpdate();\n    }\n  },\n  beforeDestroy: function beforeDestroy() {\n    wormhole.unregisterSource(this.name);\n    this.clear();\n  },\n  watch: {\n    to: function to(newValue, oldValue) {\n      oldValue && oldValue !== newValue && this.clear(oldValue);\n      this.sendUpdate();\n    }\n  },\n  methods: {\n    clear: function clear(target) {\n      var closer = {\n        from: this.name,\n        to: target || this.to\n      };\n      wormhole.close(closer);\n    },\n    normalizeSlots: function normalizeSlots() {\n      return this.$scopedSlots.default ? [this.$scopedSlots.default] : this.$slots.default;\n    },\n    normalizeOwnChildren: function normalizeOwnChildren(children) {\n      return typeof children === 'function' ? children(this.slotProps) : children;\n    },\n    sendUpdate: function sendUpdate() {\n      var slotContent = this.normalizeSlots();\n\n      if (slotContent) {\n        var transport = {\n          from: this.name,\n          to: this.to,\n          passengers: _toConsumableArray(slotContent),\n          order: this.order\n        };\n        wormhole.open(transport);\n      } else {\n        this.clear();\n      }\n    }\n  },\n  render: function render(h) {\n    var children = this.$slots.default || this.$scopedSlots.default || [];\n    var Tag = this.tag;\n\n    if (children && this.disabled) {\n      return children.length <= 1 && this.slim ? this.normalizeOwnChildren(children)[0] : h(Tag, [this.normalizeOwnChildren(children)]);\n    } else {\n      return this.slim ? h() : h(Tag, {\n        class: {\n          'v-portal': true\n        },\n        style: {\n          display: 'none'\n        },\n        key: 'v-portal-placeholder'\n      });\n    }\n  }\n});\n\nvar PortalTarget = Vue.extend({\n  name: 'portalTarget',\n  props: {\n    multiple: {\n      type: Boolean,\n      default: false\n    },\n    name: {\n      type: String,\n      required: true\n    },\n    slim: {\n      type: Boolean,\n      default: false\n    },\n    slotProps: {\n      type: Object,\n      default: function _default() {\n        return {};\n      }\n    },\n    tag: {\n      type: String,\n      default: 'div'\n    },\n    transition: {\n      type: [String, Object, Function]\n    }\n  },\n  data: function data() {\n    return {\n      transports: wormhole.transports,\n      firstRender: true\n    };\n  },\n  created: function created() {\n    var _this = this;\n\n    this.$nextTick(function () {\n      wormhole.registerTarget(_this.name, _this);\n    });\n  },\n  watch: {\n    ownTransports: function ownTransports() {\n      this.$emit('change', this.children().length > 0);\n    },\n    name: function name(newVal, oldVal) {\n      /**\r\n       * TODO\r\n       * This should warn as well ...\r\n       */\n      wormhole.unregisterTarget(oldVal);\n      wormhole.registerTarget(newVal, this);\n    }\n  },\n  mounted: function mounted() {\n    var _this2 = this;\n\n    if (this.transition) {\n      this.$nextTick(function () {\n        // only when we have a transition, because it causes a re-render\n        _this2.firstRender = false;\n      });\n    }\n  },\n  beforeDestroy: function beforeDestroy() {\n    wormhole.unregisterTarget(this.name);\n  },\n  computed: {\n    ownTransports: function ownTransports() {\n      var transports = this.transports[this.name] || [];\n\n      if (this.multiple) {\n        return transports;\n      }\n\n      return transports.length === 0 ? [] : [transports[transports.length - 1]];\n    },\n    passengers: function passengers() {\n      return combinePassengers(this.ownTransports, this.slotProps);\n    }\n  },\n  methods: {\n    // can't be a computed prop because it has to \"react\" to $slot changes.\n    children: function children() {\n      return this.passengers.length !== 0 ? this.passengers : this.$scopedSlots.default ? this.$scopedSlots.default(this.slotProps) : this.$slots.default || [];\n    },\n    // can't be a computed prop because it has to \"react\" to this.children().\n    noWrapper: function noWrapper() {\n      var noWrapper = this.slim && !this.transition;\n\n      if (noWrapper && this.children().length > 1) {\n        console.warn('[portal-vue]: PortalTarget with `slim` option received more than one child element.');\n      }\n\n      return noWrapper;\n    }\n  },\n  render: function render(h) {\n    var noWrapper = this.noWrapper();\n    var children = this.children();\n    var Tag = this.transition || this.tag;\n    return noWrapper ? children[0] : this.slim && !Tag ? h() : h(Tag, {\n      props: {\n        // if we have a transition component, pass the tag if it exists\n        tag: this.transition && this.tag ? this.tag : undefined\n      },\n      class: {\n        'vue-portal-target': true\n      }\n    }, children);\n  }\n});\n\nvar _id$1 = 0;\nvar portalProps = ['disabled', 'name', 'order', 'slim', 'slotProps', 'tag', 'to'];\nvar targetProps = ['multiple', 'transition'];\nvar MountingPortal = Vue.extend({\n  name: 'MountingPortal',\n  inheritAttrs: false,\n  props: {\n    append: {\n      type: [Boolean, String]\n    },\n    bail: {\n      type: Boolean\n    },\n    mountTo: {\n      type: String,\n      required: true\n    },\n    // Portal\n    disabled: {\n      type: Boolean\n    },\n    // name for the portal\n    name: {\n      type: String,\n      default: function _default() {\n        return 'mounted_' + String(_id$1++);\n      }\n    },\n    order: {\n      type: Number,\n      default: 0\n    },\n    slim: {\n      type: Boolean\n    },\n    slotProps: {\n      type: Object,\n      default: function _default() {\n        return {};\n      }\n    },\n    tag: {\n      type: String,\n      default: 'DIV'\n    },\n    // name for the target\n    to: {\n      type: String,\n      default: function _default() {\n        return String(Math.round(Math.random() * 10000000));\n      }\n    },\n    // Target\n    multiple: {\n      type: Boolean,\n      default: false\n    },\n    targetSlim: {\n      type: Boolean\n    },\n    targetSlotProps: {\n      type: Object,\n      default: function _default() {\n        return {};\n      }\n    },\n    targetTag: {\n      type: String,\n      default: 'div'\n    },\n    transition: {\n      type: [String, Object, Function]\n    }\n  },\n  created: function created() {\n    if (typeof document === 'undefined') return;\n    var el = document.querySelector(this.mountTo);\n\n    if (!el) {\n      console.error(\"[portal-vue]: Mount Point '\".concat(this.mountTo, \"' not found in document\"));\n      return;\n    }\n\n    var props = this.$props; // Target already exists\n\n    if (wormhole.targets[props.name]) {\n      if (props.bail) {\n        console.warn(\"[portal-vue]: Target \".concat(props.name, \" is already mounted.\\n        Aborting because 'bail: true' is set\"));\n      } else {\n        this.portalTarget = wormhole.targets[props.name];\n      }\n\n      return;\n    }\n\n    var append = props.append;\n\n    if (append) {\n      var type = typeof append === 'string' ? append : 'DIV';\n      var mountEl = document.createElement(type);\n      el.appendChild(mountEl);\n      el = mountEl;\n    } // get props for target from $props\n    // we have to rename a few of them\n\n\n    var _props = pick(this.$props, targetProps);\n\n    _props.slim = this.targetSlim;\n    _props.tag = this.targetTag;\n    _props.slotProps = this.targetSlotProps;\n    _props.name = this.to;\n    this.portalTarget = new PortalTarget({\n      el: el,\n      parent: this.$parent || this,\n      propsData: _props\n    });\n  },\n  beforeDestroy: function beforeDestroy() {\n    var target = this.portalTarget;\n\n    if (this.append) {\n      var el = target.$el;\n      el.parentNode.removeChild(el);\n    }\n\n    target.$destroy();\n  },\n  render: function render(h) {\n    if (!this.portalTarget) {\n      console.warn(\"[portal-vue] Target wasn't mounted\");\n      return h();\n    } // if there's no \"manual\" scoped slot, so we create a <Portal> ourselves\n\n\n    if (!this.$scopedSlots.manual) {\n      var props = pick(this.$props, portalProps);\n      return h(Portal, {\n        props: props,\n        attrs: this.$attrs,\n        on: this.$listeners,\n        scopedSlots: this.$scopedSlots\n      }, this.$slots.default);\n    } // else, we render the scoped slot\n\n\n    var content = this.$scopedSlots.manual({\n      to: this.to\n    }); // if user used <template> for the scoped slot\n    // content will be an array\n\n    if (Array.isArray(content)) {\n      content = content[0];\n    }\n\n    if (!content) return h();\n    return content;\n  }\n});\n\nfunction install(Vue$$1) {\n  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  Vue$$1.component(options.portalName || 'Portal', Portal);\n  Vue$$1.component(options.portalTargetName || 'PortalTarget', PortalTarget);\n  Vue$$1.component(options.MountingPortalName || 'MountingPortal', MountingPortal);\n}\n\nvar index = {\n  install: install\n};\n\nexports.default = index;\nexports.Portal = Portal;\nexports.PortalTarget = PortalTarget;\nexports.MountingPortal = MountingPortal;\nexports.Wormhole = wormhole;\n//# sourceMappingURL=portal-vue.common.js.map\n","import { clamp } from 'lodash';\nimport {\n  ARROW_DOWN_KEY,\n  ARROW_UP_KEY,\n  END_KEY,\n  HOME_KEY,\n  ESC_KEY,\n  NUMPAD_ENTER_KEY,\n} from '~/lib/utils/keys';\n\nexport default {\n  methods: {\n    getFocusableOptions() {\n      return Array.from(this.$refs.resultsList?.querySelectorAll('.gl-new-dropdown-item') || []);\n    },\n    onKeydown(event) {\n      const { code, target } = event;\n\n      let stop = true;\n\n      const elements = this.getFocusableOptions();\n      if (elements.length < 1) return;\n\n      const isSearchInput = target.matches('input[role=\"searchbox\"]');\n\n      if (code === HOME_KEY) {\n        if (isSearchInput) return;\n\n        this.focusItem(0, elements);\n      } else if (code === END_KEY) {\n        if (isSearchInput) return;\n\n        this.focusItem(elements.length - 1, elements);\n      } else if (code === ARROW_UP_KEY) {\n        if (isSearchInput) return;\n\n        if (elements.indexOf(target) === 0) {\n          this.focusSearchInput();\n        } else {\n          this.focusNextItem(event, elements, -1);\n        }\n      } else if (code === ARROW_DOWN_KEY) {\n        this.focusNextItem(event, elements, 1);\n      } else if (code === ESC_KEY) {\n        this.$refs.modal.close();\n      } else if (code === NUMPAD_ENTER_KEY) {\n        event.target?.firstChild.click();\n      } else {\n        stop = false;\n      }\n\n      if (stop) {\n        event.preventDefault();\n      }\n    },\n    focusSearchInput() {\n      this.$refs.searchInput.$el.querySelector('input')?.focus();\n    },\n    focusNextItem(event, elements, offset) {\n      const { target } = event;\n      const currentIndex = elements.indexOf(target);\n      const nextIndex = clamp(currentIndex + offset, 0, elements.length - 1);\n\n      this.focusItem(nextIndex, elements);\n    },\n    focusItem(index, elements) {\n      this.nextFocusedItemIndex = index;\n\n      elements[index]?.focus();\n    },\n  },\n};\n","module.exports =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = \"fb15\");\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"02f4\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(\"4588\");\nvar defined = __webpack_require__(\"be13\");\n// true  -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n  return function (that, pos) {\n    var s = String(defined(that));\n    var i = toInteger(pos);\n    var l = s.length;\n    var a, b;\n    if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n    a = s.charCodeAt(i);\n    return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n      ? TO_STRING ? s.charAt(i) : a\n      : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n  };\n};\n\n\n/***/ }),\n\n/***/ \"0390\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar at = __webpack_require__(\"02f4\")(true);\n\n // `AdvanceStringIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n  return index + (unicode ? at(S, index).length : 1);\n};\n\n\n/***/ }),\n\n/***/ \"07e3\":\n/***/ (function(module, exports) {\n\nvar hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n  return hasOwnProperty.call(it, key);\n};\n\n\n/***/ }),\n\n/***/ \"0bfb\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// 21.2.5.3 get RegExp.prototype.flags\nvar anObject = __webpack_require__(\"cb7c\");\nmodule.exports = function () {\n  var that = anObject(this);\n  var result = '';\n  if (that.global) result += 'g';\n  if (that.ignoreCase) result += 'i';\n  if (that.multiline) result += 'm';\n  if (that.unicode) result += 'u';\n  if (that.sticky) result += 'y';\n  return result;\n};\n\n\n/***/ }),\n\n/***/ \"0fc9\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(\"3a38\");\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n  index = toInteger(index);\n  return index < 0 ? max(index + length, 0) : min(index, length);\n};\n\n\n/***/ }),\n\n/***/ \"1654\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $at = __webpack_require__(\"71c1\")(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\n__webpack_require__(\"30f1\")(String, 'String', function (iterated) {\n  this._t = String(iterated); // target\n  this._i = 0;                // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n  var O = this._t;\n  var index = this._i;\n  var point;\n  if (index >= O.length) return { value: undefined, done: true };\n  point = $at(O, index);\n  this._i += point.length;\n  return { value: point, done: false };\n});\n\n\n/***/ }),\n\n/***/ \"1691\":\n/***/ (function(module, exports) {\n\n// IE 8- don't enum bug keys\nmodule.exports = (\n  'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n\n\n/***/ }),\n\n/***/ \"1af6\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)\nvar $export = __webpack_require__(\"63b6\");\n\n$export($export.S, 'Array', { isArray: __webpack_require__(\"9003\") });\n\n\n/***/ }),\n\n/***/ \"1bc3\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = __webpack_require__(\"f772\");\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n  if (!isObject(it)) return it;\n  var fn, val;\n  if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n  if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n  if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n  throw TypeError(\"Can't convert object to primitive value\");\n};\n\n\n/***/ }),\n\n/***/ \"1ec9\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(\"f772\");\nvar document = __webpack_require__(\"e53d\").document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n  return is ? document.createElement(it) : {};\n};\n\n\n/***/ }),\n\n/***/ \"20fd\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $defineProperty = __webpack_require__(\"d9f6\");\nvar createDesc = __webpack_require__(\"aebd\");\n\nmodule.exports = function (object, index, value) {\n  if (index in object) $defineProperty.f(object, index, createDesc(0, value));\n  else object[index] = value;\n};\n\n\n/***/ }),\n\n/***/ \"214f\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n__webpack_require__(\"b0c5\");\nvar redefine = __webpack_require__(\"2aba\");\nvar hide = __webpack_require__(\"32e9\");\nvar fails = __webpack_require__(\"79e5\");\nvar defined = __webpack_require__(\"be13\");\nvar wks = __webpack_require__(\"2b4c\");\nvar regexpExec = __webpack_require__(\"520a\");\n\nvar SPECIES = wks('species');\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n  // #replace needs built-in support for named groups.\n  // #match works fine because it just return the exec results, even if it has\n  // a \"grops\" property.\n  var re = /./;\n  re.exec = function () {\n    var result = [];\n    result.groups = { a: '7' };\n    return result;\n  };\n  return ''.replace(re, '$<a>') !== '7';\n});\n\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = (function () {\n  // Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n  var re = /(?:)/;\n  var originalExec = re.exec;\n  re.exec = function () { return originalExec.apply(this, arguments); };\n  var result = 'ab'.split(re);\n  return result.length === 2 && result[0] === 'a' && result[1] === 'b';\n})();\n\nmodule.exports = function (KEY, length, exec) {\n  var SYMBOL = wks(KEY);\n\n  var DELEGATES_TO_SYMBOL = !fails(function () {\n    // String methods call symbol-named RegEp methods\n    var O = {};\n    O[SYMBOL] = function () { return 7; };\n    return ''[KEY](O) != 7;\n  });\n\n  var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL ? !fails(function () {\n    // Symbol-named RegExp methods call .exec\n    var execCalled = false;\n    var re = /a/;\n    re.exec = function () { execCalled = true; return null; };\n    if (KEY === 'split') {\n      // RegExp[@@split] doesn't call the regex's exec method, but first creates\n      // a new one. We need to return the patched regex when creating the new one.\n      re.constructor = {};\n      re.constructor[SPECIES] = function () { return re; };\n    }\n    re[SYMBOL]('');\n    return !execCalled;\n  }) : undefined;\n\n  if (\n    !DELEGATES_TO_SYMBOL ||\n    !DELEGATES_TO_EXEC ||\n    (KEY === 'replace' && !REPLACE_SUPPORTS_NAMED_GROUPS) ||\n    (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)\n  ) {\n    var nativeRegExpMethod = /./[SYMBOL];\n    var fns = exec(\n      defined,\n      SYMBOL,\n      ''[KEY],\n      function maybeCallNative(nativeMethod, regexp, str, arg2, forceStringMethod) {\n        if (regexp.exec === regexpExec) {\n          if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n            // The native String method already delegates to @@method (this\n            // polyfilled function), leasing to infinite recursion.\n            // We avoid it by directly calling the native @@method method.\n            return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n          }\n          return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n        }\n        return { done: false };\n      }\n    );\n    var strfn = fns[0];\n    var rxfn = fns[1];\n\n    redefine(String.prototype, KEY, strfn);\n    hide(RegExp.prototype, SYMBOL, length == 2\n      // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n      // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n      ? function (string, arg) { return rxfn.call(string, this, arg); }\n      // 21.2.5.6 RegExp.prototype[@@match](string)\n      // 21.2.5.9 RegExp.prototype[@@search](string)\n      : function (string) { return rxfn.call(string, this); }\n    );\n  }\n};\n\n\n/***/ }),\n\n/***/ \"230e\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(\"d3f4\");\nvar document = __webpack_require__(\"7726\").document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n  return is ? document.createElement(it) : {};\n};\n\n\n/***/ }),\n\n/***/ \"23c6\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = __webpack_require__(\"2d95\");\nvar TAG = __webpack_require__(\"2b4c\")('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n  try {\n    return it[key];\n  } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n  var O, T, B;\n  return it === undefined ? 'Undefined' : it === null ? 'Null'\n    // @@toStringTag case\n    : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n    // builtinTag case\n    : ARG ? cof(O)\n    // ES3 arguments fallback\n    : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n\n\n/***/ }),\n\n/***/ \"241e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.13 ToObject(argument)\nvar defined = __webpack_require__(\"25eb\");\nmodule.exports = function (it) {\n  return Object(defined(it));\n};\n\n\n/***/ }),\n\n/***/ \"25eb\":\n/***/ (function(module, exports) {\n\n// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n  if (it == undefined) throw TypeError(\"Can't call method on  \" + it);\n  return it;\n};\n\n\n/***/ }),\n\n/***/ \"294c\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (exec) {\n  try {\n    return !!exec();\n  } catch (e) {\n    return true;\n  }\n};\n\n\n/***/ }),\n\n/***/ \"2aba\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"7726\");\nvar hide = __webpack_require__(\"32e9\");\nvar has = __webpack_require__(\"69a8\");\nvar SRC = __webpack_require__(\"ca5a\")('src');\nvar $toString = __webpack_require__(\"fa5b\");\nvar TO_STRING = 'toString';\nvar TPL = ('' + $toString).split(TO_STRING);\n\n__webpack_require__(\"8378\").inspectSource = function (it) {\n  return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n  var isFunction = typeof val == 'function';\n  if (isFunction) has(val, 'name') || hide(val, 'name', key);\n  if (O[key] === val) return;\n  if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n  if (O === global) {\n    O[key] = val;\n  } else if (!safe) {\n    delete O[key];\n    hide(O, key, val);\n  } else if (O[key]) {\n    O[key] = val;\n  } else {\n    hide(O, key, val);\n  }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n  return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n\n\n/***/ }),\n\n/***/ \"2b4c\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar store = __webpack_require__(\"5537\")('wks');\nvar uid = __webpack_require__(\"ca5a\");\nvar Symbol = __webpack_require__(\"7726\").Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n  return store[name] || (store[name] =\n    USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n\n\n/***/ }),\n\n/***/ \"2d00\":\n/***/ (function(module, exports) {\n\nmodule.exports = false;\n\n\n/***/ }),\n\n/***/ \"2d95\":\n/***/ (function(module, exports) {\n\nvar toString = {}.toString;\n\nmodule.exports = function (it) {\n  return toString.call(it).slice(8, -1);\n};\n\n\n/***/ }),\n\n/***/ \"2fdb\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n// 21.1.3.7 String.prototype.includes(searchString, position = 0)\n\nvar $export = __webpack_require__(\"5ca1\");\nvar context = __webpack_require__(\"d2c8\");\nvar INCLUDES = 'includes';\n\n$export($export.P + $export.F * __webpack_require__(\"5147\")(INCLUDES), 'String', {\n  includes: function includes(searchString /* , position = 0 */) {\n    return !!~context(this, searchString, INCLUDES)\n      .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n\n\n/***/ }),\n\n/***/ \"30f1\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar LIBRARY = __webpack_require__(\"b8e3\");\nvar $export = __webpack_require__(\"63b6\");\nvar redefine = __webpack_require__(\"9138\");\nvar hide = __webpack_require__(\"35e8\");\nvar Iterators = __webpack_require__(\"481b\");\nvar $iterCreate = __webpack_require__(\"8f60\");\nvar setToStringTag = __webpack_require__(\"45f2\");\nvar getPrototypeOf = __webpack_require__(\"53e2\");\nvar ITERATOR = __webpack_require__(\"5168\")('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n  $iterCreate(Constructor, NAME, next);\n  var getMethod = function (kind) {\n    if (!BUGGY && kind in proto) return proto[kind];\n    switch (kind) {\n      case KEYS: return function keys() { return new Constructor(this, kind); };\n      case VALUES: return function values() { return new Constructor(this, kind); };\n    } return function entries() { return new Constructor(this, kind); };\n  };\n  var TAG = NAME + ' Iterator';\n  var DEF_VALUES = DEFAULT == VALUES;\n  var VALUES_BUG = false;\n  var proto = Base.prototype;\n  var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n  var $default = $native || getMethod(DEFAULT);\n  var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n  var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n  var methods, key, IteratorPrototype;\n  // Fix native\n  if ($anyNative) {\n    IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n    if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n      // Set @@toStringTag to native iterators\n      setToStringTag(IteratorPrototype, TAG, true);\n      // fix for some old engines\n      if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n    }\n  }\n  // fix Array#{values, @@iterator}.name in V8 / FF\n  if (DEF_VALUES && $native && $native.name !== VALUES) {\n    VALUES_BUG = true;\n    $default = function values() { return $native.call(this); };\n  }\n  // Define iterator\n  if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n    hide(proto, ITERATOR, $default);\n  }\n  // Plug for library\n  Iterators[NAME] = $default;\n  Iterators[TAG] = returnThis;\n  if (DEFAULT) {\n    methods = {\n      values: DEF_VALUES ? $default : getMethod(VALUES),\n      keys: IS_SET ? $default : getMethod(KEYS),\n      entries: $entries\n    };\n    if (FORCED) for (key in methods) {\n      if (!(key in proto)) redefine(proto, key, methods[key]);\n    } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n  }\n  return methods;\n};\n\n\n/***/ }),\n\n/***/ \"32a6\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.14 Object.keys(O)\nvar toObject = __webpack_require__(\"241e\");\nvar $keys = __webpack_require__(\"c3a1\");\n\n__webpack_require__(\"ce7e\")('keys', function () {\n  return function keys(it) {\n    return $keys(toObject(it));\n  };\n});\n\n\n/***/ }),\n\n/***/ \"32e9\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar dP = __webpack_require__(\"86cc\");\nvar createDesc = __webpack_require__(\"4630\");\nmodule.exports = __webpack_require__(\"9e1e\") ? function (object, key, value) {\n  return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n  object[key] = value;\n  return object;\n};\n\n\n/***/ }),\n\n/***/ \"32fc\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar document = __webpack_require__(\"e53d\").document;\nmodule.exports = document && document.documentElement;\n\n\n/***/ }),\n\n/***/ \"335c\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = __webpack_require__(\"6b4c\");\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n  return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n\n/***/ }),\n\n/***/ \"355d\":\n/***/ (function(module, exports) {\n\nexports.f = {}.propertyIsEnumerable;\n\n\n/***/ }),\n\n/***/ \"35e8\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar dP = __webpack_require__(\"d9f6\");\nvar createDesc = __webpack_require__(\"aebd\");\nmodule.exports = __webpack_require__(\"8e60\") ? function (object, key, value) {\n  return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n  object[key] = value;\n  return object;\n};\n\n\n/***/ }),\n\n/***/ \"36c3\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = __webpack_require__(\"335c\");\nvar defined = __webpack_require__(\"25eb\");\nmodule.exports = function (it) {\n  return IObject(defined(it));\n};\n\n\n/***/ }),\n\n/***/ \"3702\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// check on default Array iterator\nvar Iterators = __webpack_require__(\"481b\");\nvar ITERATOR = __webpack_require__(\"5168\")('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n  return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n\n\n/***/ }),\n\n/***/ \"3a38\":\n/***/ (function(module, exports) {\n\n// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n  return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n\n\n/***/ }),\n\n/***/ \"40c3\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = __webpack_require__(\"6b4c\");\nvar TAG = __webpack_require__(\"5168\")('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n  try {\n    return it[key];\n  } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n  var O, T, B;\n  return it === undefined ? 'Undefined' : it === null ? 'Null'\n    // @@toStringTag case\n    : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n    // builtinTag case\n    : ARG ? cof(O)\n    // ES3 arguments fallback\n    : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n\n\n/***/ }),\n\n/***/ \"4588\":\n/***/ (function(module, exports) {\n\n// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n  return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n\n\n/***/ }),\n\n/***/ \"45f2\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar def = __webpack_require__(\"d9f6\").f;\nvar has = __webpack_require__(\"07e3\");\nvar TAG = __webpack_require__(\"5168\")('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n  if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n\n\n/***/ }),\n\n/***/ \"4630\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (bitmap, value) {\n  return {\n    enumerable: !(bitmap & 1),\n    configurable: !(bitmap & 2),\n    writable: !(bitmap & 4),\n    value: value\n  };\n};\n\n\n/***/ }),\n\n/***/ \"469f\":\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(\"6c1c\");\n__webpack_require__(\"1654\");\nmodule.exports = __webpack_require__(\"7d7b\");\n\n\n/***/ }),\n\n/***/ \"481b\":\n/***/ (function(module, exports) {\n\nmodule.exports = {};\n\n\n/***/ }),\n\n/***/ \"4aa6\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(\"dc62\");\n\n/***/ }),\n\n/***/ \"4bf8\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.13 ToObject(argument)\nvar defined = __webpack_require__(\"be13\");\nmodule.exports = function (it) {\n  return Object(defined(it));\n};\n\n\n/***/ }),\n\n/***/ \"4ee1\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar ITERATOR = __webpack_require__(\"5168\")('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n  var riter = [7][ITERATOR]();\n  riter['return'] = function () { SAFE_CLOSING = true; };\n  // eslint-disable-next-line no-throw-literal\n  Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n  if (!skipClosing && !SAFE_CLOSING) return false;\n  var safe = false;\n  try {\n    var arr = [7];\n    var iter = arr[ITERATOR]();\n    iter.next = function () { return { done: safe = true }; };\n    arr[ITERATOR] = function () { return iter; };\n    exec(arr);\n  } catch (e) { /* empty */ }\n  return safe;\n};\n\n\n/***/ }),\n\n/***/ \"50ed\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (done, value) {\n  return { value: value, done: !!done };\n};\n\n\n/***/ }),\n\n/***/ \"5147\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar MATCH = __webpack_require__(\"2b4c\")('match');\nmodule.exports = function (KEY) {\n  var re = /./;\n  try {\n    '/./'[KEY](re);\n  } catch (e) {\n    try {\n      re[MATCH] = false;\n      return !'/./'[KEY](re);\n    } catch (f) { /* empty */ }\n  } return true;\n};\n\n\n/***/ }),\n\n/***/ \"5168\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar store = __webpack_require__(\"dbdb\")('wks');\nvar uid = __webpack_require__(\"62a0\");\nvar Symbol = __webpack_require__(\"e53d\").Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n  return store[name] || (store[name] =\n    USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n\n\n/***/ }),\n\n/***/ \"5176\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(\"51b6\");\n\n/***/ }),\n\n/***/ \"51b6\":\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(\"a3c3\");\nmodule.exports = __webpack_require__(\"584a\").Object.assign;\n\n\n/***/ }),\n\n/***/ \"520a\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar regexpFlags = __webpack_require__(\"0bfb\");\n\nvar nativeExec = RegExp.prototype.exec;\n// This always refers to the native implementation, because the\n// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,\n// which loads this file before patching the method.\nvar nativeReplace = String.prototype.replace;\n\nvar patchedExec = nativeExec;\n\nvar LAST_INDEX = 'lastIndex';\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n  var re1 = /a/,\n      re2 = /b*/g;\n  nativeExec.call(re1, 'a');\n  nativeExec.call(re2, 'a');\n  return re1[LAST_INDEX] !== 0 || re2[LAST_INDEX] !== 0;\n})();\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED;\n\nif (PATCH) {\n  patchedExec = function exec(str) {\n    var re = this;\n    var lastIndex, reCopy, match, i;\n\n    if (NPCG_INCLUDED) {\n      reCopy = new RegExp('^' + re.source + '$(?!\\\\s)', regexpFlags.call(re));\n    }\n    if (UPDATES_LAST_INDEX_WRONG) lastIndex = re[LAST_INDEX];\n\n    match = nativeExec.call(re, str);\n\n    if (UPDATES_LAST_INDEX_WRONG && match) {\n      re[LAST_INDEX] = re.global ? match.index + match[0].length : lastIndex;\n    }\n    if (NPCG_INCLUDED && match && match.length > 1) {\n      // Fix browsers whose `exec` methods don't consistently return `undefined`\n      // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n      // eslint-disable-next-line no-loop-func\n      nativeReplace.call(match[0], reCopy, function () {\n        for (i = 1; i < arguments.length - 2; i++) {\n          if (arguments[i] === undefined) match[i] = undefined;\n        }\n      });\n    }\n\n    return match;\n  };\n}\n\nmodule.exports = patchedExec;\n\n\n/***/ }),\n\n/***/ \"53e2\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = __webpack_require__(\"07e3\");\nvar toObject = __webpack_require__(\"241e\");\nvar IE_PROTO = __webpack_require__(\"5559\")('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n  O = toObject(O);\n  if (has(O, IE_PROTO)) return O[IE_PROTO];\n  if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n    return O.constructor.prototype;\n  } return O instanceof Object ? ObjectProto : null;\n};\n\n\n/***/ }),\n\n/***/ \"549b\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ctx = __webpack_require__(\"d864\");\nvar $export = __webpack_require__(\"63b6\");\nvar toObject = __webpack_require__(\"241e\");\nvar call = __webpack_require__(\"b0dc\");\nvar isArrayIter = __webpack_require__(\"3702\");\nvar toLength = __webpack_require__(\"b447\");\nvar createProperty = __webpack_require__(\"20fd\");\nvar getIterFn = __webpack_require__(\"7cd6\");\n\n$export($export.S + $export.F * !__webpack_require__(\"4ee1\")(function (iter) { Array.from(iter); }), 'Array', {\n  // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n  from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n    var O = toObject(arrayLike);\n    var C = typeof this == 'function' ? this : Array;\n    var aLen = arguments.length;\n    var mapfn = aLen > 1 ? arguments[1] : undefined;\n    var mapping = mapfn !== undefined;\n    var index = 0;\n    var iterFn = getIterFn(O);\n    var length, result, step, iterator;\n    if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n    // if object isn't iterable or it's array with default iterator - use simple case\n    if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {\n      for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {\n        createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n      }\n    } else {\n      length = toLength(O.length);\n      for (result = new C(length); length > index; index++) {\n        createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n      }\n    }\n    result.length = index;\n    return result;\n  }\n});\n\n\n/***/ }),\n\n/***/ \"54a1\":\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(\"6c1c\");\n__webpack_require__(\"1654\");\nmodule.exports = __webpack_require__(\"95d5\");\n\n\n/***/ }),\n\n/***/ \"5537\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar core = __webpack_require__(\"8378\");\nvar global = __webpack_require__(\"7726\");\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n  return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n  version: core.version,\n  mode: __webpack_require__(\"2d00\") ? 'pure' : 'global',\n  copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n\n\n/***/ }),\n\n/***/ \"5559\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar shared = __webpack_require__(\"dbdb\")('keys');\nvar uid = __webpack_require__(\"62a0\");\nmodule.exports = function (key) {\n  return shared[key] || (shared[key] = uid(key));\n};\n\n\n/***/ }),\n\n/***/ \"584a\":\n/***/ (function(module, exports) {\n\nvar core = module.exports = { version: '2.6.5' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n\n\n/***/ }),\n\n/***/ \"5b4e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// false -> Array#indexOf\n// true  -> Array#includes\nvar toIObject = __webpack_require__(\"36c3\");\nvar toLength = __webpack_require__(\"b447\");\nvar toAbsoluteIndex = __webpack_require__(\"0fc9\");\nmodule.exports = function (IS_INCLUDES) {\n  return function ($this, el, fromIndex) {\n    var O = toIObject($this);\n    var length = toLength(O.length);\n    var index = toAbsoluteIndex(fromIndex, length);\n    var value;\n    // Array#includes uses SameValueZero equality algorithm\n    // eslint-disable-next-line no-self-compare\n    if (IS_INCLUDES && el != el) while (length > index) {\n      value = O[index++];\n      // eslint-disable-next-line no-self-compare\n      if (value != value) return true;\n    // Array#indexOf ignores holes, Array#includes - not\n    } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n      if (O[index] === el) return IS_INCLUDES || index || 0;\n    } return !IS_INCLUDES && -1;\n  };\n};\n\n\n/***/ }),\n\n/***/ \"5ca1\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"7726\");\nvar core = __webpack_require__(\"8378\");\nvar hide = __webpack_require__(\"32e9\");\nvar redefine = __webpack_require__(\"2aba\");\nvar ctx = __webpack_require__(\"9b43\");\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n  var IS_FORCED = type & $export.F;\n  var IS_GLOBAL = type & $export.G;\n  var IS_STATIC = type & $export.S;\n  var IS_PROTO = type & $export.P;\n  var IS_BIND = type & $export.B;\n  var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n  var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n  var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n  var key, own, out, exp;\n  if (IS_GLOBAL) source = name;\n  for (key in source) {\n    // contains in native\n    own = !IS_FORCED && target && target[key] !== undefined;\n    // export native or passed\n    out = (own ? target : source)[key];\n    // bind timers to global for call from export context\n    exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n    // extend global\n    if (target) redefine(target, key, out, type & $export.U);\n    // export\n    if (exports[key] != out) hide(exports, key, exp);\n    if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n  }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1;   // forced\n$export.G = 2;   // global\n$export.S = 4;   // static\n$export.P = 8;   // proto\n$export.B = 16;  // bind\n$export.W = 32;  // wrap\n$export.U = 64;  // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n\n\n/***/ }),\n\n/***/ \"5d73\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(\"469f\");\n\n/***/ }),\n\n/***/ \"5f1b\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar classof = __webpack_require__(\"23c6\");\nvar builtinExec = RegExp.prototype.exec;\n\n // `RegExpExec` abstract operation\n// https://tc39.github.io/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n  var exec = R.exec;\n  if (typeof exec === 'function') {\n    var result = exec.call(R, S);\n    if (typeof result !== 'object') {\n      throw new TypeError('RegExp exec method returned something other than an Object or null');\n    }\n    return result;\n  }\n  if (classof(R) !== 'RegExp') {\n    throw new TypeError('RegExp#exec called on incompatible receiver');\n  }\n  return builtinExec.call(R, S);\n};\n\n\n/***/ }),\n\n/***/ \"626a\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = __webpack_require__(\"2d95\");\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n  return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n\n/***/ }),\n\n/***/ \"62a0\":\n/***/ (function(module, exports) {\n\nvar id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n  return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n\n\n/***/ }),\n\n/***/ \"63b6\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"e53d\");\nvar core = __webpack_require__(\"584a\");\nvar ctx = __webpack_require__(\"d864\");\nvar hide = __webpack_require__(\"35e8\");\nvar has = __webpack_require__(\"07e3\");\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n  var IS_FORCED = type & $export.F;\n  var IS_GLOBAL = type & $export.G;\n  var IS_STATIC = type & $export.S;\n  var IS_PROTO = type & $export.P;\n  var IS_BIND = type & $export.B;\n  var IS_WRAP = type & $export.W;\n  var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n  var expProto = exports[PROTOTYPE];\n  var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];\n  var key, own, out;\n  if (IS_GLOBAL) source = name;\n  for (key in source) {\n    // contains in native\n    own = !IS_FORCED && target && target[key] !== undefined;\n    if (own && has(exports, key)) continue;\n    // export native or passed\n    out = own ? target[key] : source[key];\n    // prevent global pollution for namespaces\n    exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n    // bind timers to global for call from export context\n    : IS_BIND && own ? ctx(out, global)\n    // wrap global constructors for prevent change them in library\n    : IS_WRAP && target[key] == out ? (function (C) {\n      var F = function (a, b, c) {\n        if (this instanceof C) {\n          switch (arguments.length) {\n            case 0: return new C();\n            case 1: return new C(a);\n            case 2: return new C(a, b);\n          } return new C(a, b, c);\n        } return C.apply(this, arguments);\n      };\n      F[PROTOTYPE] = C[PROTOTYPE];\n      return F;\n    // make static versions for prototype methods\n    })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n    // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n    if (IS_PROTO) {\n      (exports.virtual || (exports.virtual = {}))[key] = out;\n      // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n      if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);\n    }\n  }\n};\n// type bitmap\n$export.F = 1;   // forced\n$export.G = 2;   // global\n$export.S = 4;   // static\n$export.P = 8;   // proto\n$export.B = 16;  // bind\n$export.W = 32;  // wrap\n$export.U = 64;  // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n\n\n/***/ }),\n\n/***/ \"6762\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// https://github.com/tc39/Array.prototype.includes\nvar $export = __webpack_require__(\"5ca1\");\nvar $includes = __webpack_require__(\"c366\")(true);\n\n$export($export.P, 'Array', {\n  includes: function includes(el /* , fromIndex = 0 */) {\n    return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n\n__webpack_require__(\"9c6c\")('includes');\n\n\n/***/ }),\n\n/***/ \"6821\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = __webpack_require__(\"626a\");\nvar defined = __webpack_require__(\"be13\");\nmodule.exports = function (it) {\n  return IObject(defined(it));\n};\n\n\n/***/ }),\n\n/***/ \"69a8\":\n/***/ (function(module, exports) {\n\nvar hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n  return hasOwnProperty.call(it, key);\n};\n\n\n/***/ }),\n\n/***/ \"6a99\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = __webpack_require__(\"d3f4\");\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n  if (!isObject(it)) return it;\n  var fn, val;\n  if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n  if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n  if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n  throw TypeError(\"Can't convert object to primitive value\");\n};\n\n\n/***/ }),\n\n/***/ \"6b4c\":\n/***/ (function(module, exports) {\n\nvar toString = {}.toString;\n\nmodule.exports = function (it) {\n  return toString.call(it).slice(8, -1);\n};\n\n\n/***/ }),\n\n/***/ \"6c1c\":\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(\"c367\");\nvar global = __webpack_require__(\"e53d\");\nvar hide = __webpack_require__(\"35e8\");\nvar Iterators = __webpack_require__(\"481b\");\nvar TO_STRING_TAG = __webpack_require__(\"5168\")('toStringTag');\n\nvar DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' +\n  'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' +\n  'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' +\n  'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' +\n  'TextTrackList,TouchList').split(',');\n\nfor (var i = 0; i < DOMIterables.length; i++) {\n  var NAME = DOMIterables[i];\n  var Collection = global[NAME];\n  var proto = Collection && Collection.prototype;\n  if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n  Iterators[NAME] = Iterators.Array;\n}\n\n\n/***/ }),\n\n/***/ \"71c1\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(\"3a38\");\nvar defined = __webpack_require__(\"25eb\");\n// true  -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n  return function (that, pos) {\n    var s = String(defined(that));\n    var i = toInteger(pos);\n    var l = s.length;\n    var a, b;\n    if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n    a = s.charCodeAt(i);\n    return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n      ? TO_STRING ? s.charAt(i) : a\n      : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n  };\n};\n\n\n/***/ }),\n\n/***/ \"7726\":\n/***/ (function(module, exports) {\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n  ? window : typeof self != 'undefined' && self.Math == Math ? self\n  // eslint-disable-next-line no-new-func\n  : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n\n\n/***/ }),\n\n/***/ \"774e\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(\"d2d5\");\n\n/***/ }),\n\n/***/ \"77f1\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(\"4588\");\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n  index = toInteger(index);\n  return index < 0 ? max(index + length, 0) : min(index, length);\n};\n\n\n/***/ }),\n\n/***/ \"794b\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = !__webpack_require__(\"8e60\") && !__webpack_require__(\"294c\")(function () {\n  return Object.defineProperty(__webpack_require__(\"1ec9\")('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n/***/ }),\n\n/***/ \"79aa\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n  if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n  return it;\n};\n\n\n/***/ }),\n\n/***/ \"79e5\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (exec) {\n  try {\n    return !!exec();\n  } catch (e) {\n    return true;\n  }\n};\n\n\n/***/ }),\n\n/***/ \"7cd6\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar classof = __webpack_require__(\"40c3\");\nvar ITERATOR = __webpack_require__(\"5168\")('iterator');\nvar Iterators = __webpack_require__(\"481b\");\nmodule.exports = __webpack_require__(\"584a\").getIteratorMethod = function (it) {\n  if (it != undefined) return it[ITERATOR]\n    || it['@@iterator']\n    || Iterators[classof(it)];\n};\n\n\n/***/ }),\n\n/***/ \"7d7b\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(\"e4ae\");\nvar get = __webpack_require__(\"7cd6\");\nmodule.exports = __webpack_require__(\"584a\").getIterator = function (it) {\n  var iterFn = get(it);\n  if (typeof iterFn != 'function') throw TypeError(it + ' is not iterable!');\n  return anObject(iterFn.call(it));\n};\n\n\n/***/ }),\n\n/***/ \"7e90\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar dP = __webpack_require__(\"d9f6\");\nvar anObject = __webpack_require__(\"e4ae\");\nvar getKeys = __webpack_require__(\"c3a1\");\n\nmodule.exports = __webpack_require__(\"8e60\") ? Object.defineProperties : function defineProperties(O, Properties) {\n  anObject(O);\n  var keys = getKeys(Properties);\n  var length = keys.length;\n  var i = 0;\n  var P;\n  while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n  return O;\n};\n\n\n/***/ }),\n\n/***/ \"8378\":\n/***/ (function(module, exports) {\n\nvar core = module.exports = { version: '2.6.5' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n\n\n/***/ }),\n\n/***/ \"8436\":\n/***/ (function(module, exports) {\n\nmodule.exports = function () { /* empty */ };\n\n\n/***/ }),\n\n/***/ \"86cc\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(\"cb7c\");\nvar IE8_DOM_DEFINE = __webpack_require__(\"c69a\");\nvar toPrimitive = __webpack_require__(\"6a99\");\nvar dP = Object.defineProperty;\n\nexports.f = __webpack_require__(\"9e1e\") ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n  anObject(O);\n  P = toPrimitive(P, true);\n  anObject(Attributes);\n  if (IE8_DOM_DEFINE) try {\n    return dP(O, P, Attributes);\n  } catch (e) { /* empty */ }\n  if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n  if ('value' in Attributes) O[P] = Attributes.value;\n  return O;\n};\n\n\n/***/ }),\n\n/***/ \"8aae\":\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(\"32a6\");\nmodule.exports = __webpack_require__(\"584a\").Object.keys;\n\n\n/***/ }),\n\n/***/ \"8e60\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !__webpack_require__(\"294c\")(function () {\n  return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n/***/ }),\n\n/***/ \"8f60\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar create = __webpack_require__(\"a159\");\nvar descriptor = __webpack_require__(\"aebd\");\nvar setToStringTag = __webpack_require__(\"45f2\");\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\n__webpack_require__(\"35e8\")(IteratorPrototype, __webpack_require__(\"5168\")('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n  Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n  setToStringTag(Constructor, NAME + ' Iterator');\n};\n\n\n/***/ }),\n\n/***/ \"9003\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.2.2 IsArray(argument)\nvar cof = __webpack_require__(\"6b4c\");\nmodule.exports = Array.isArray || function isArray(arg) {\n  return cof(arg) == 'Array';\n};\n\n\n/***/ }),\n\n/***/ \"9138\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(\"35e8\");\n\n\n/***/ }),\n\n/***/ \"9306\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// 19.1.2.1 Object.assign(target, source, ...)\nvar getKeys = __webpack_require__(\"c3a1\");\nvar gOPS = __webpack_require__(\"9aa9\");\nvar pIE = __webpack_require__(\"355d\");\nvar toObject = __webpack_require__(\"241e\");\nvar IObject = __webpack_require__(\"335c\");\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || __webpack_require__(\"294c\")(function () {\n  var A = {};\n  var B = {};\n  // eslint-disable-next-line no-undef\n  var S = Symbol();\n  var K = 'abcdefghijklmnopqrst';\n  A[S] = 7;\n  K.split('').forEach(function (k) { B[k] = k; });\n  return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n  var T = toObject(target);\n  var aLen = arguments.length;\n  var index = 1;\n  var getSymbols = gOPS.f;\n  var isEnum = pIE.f;\n  while (aLen > index) {\n    var S = IObject(arguments[index++]);\n    var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n    var length = keys.length;\n    var j = 0;\n    var key;\n    while (length > j) if (isEnum.call(S, key = keys[j++])) T[key] = S[key];\n  } return T;\n} : $assign;\n\n\n/***/ }),\n\n/***/ \"9427\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $export = __webpack_require__(\"63b6\");\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', { create: __webpack_require__(\"a159\") });\n\n\n/***/ }),\n\n/***/ \"95d5\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar classof = __webpack_require__(\"40c3\");\nvar ITERATOR = __webpack_require__(\"5168\")('iterator');\nvar Iterators = __webpack_require__(\"481b\");\nmodule.exports = __webpack_require__(\"584a\").isIterable = function (it) {\n  var O = Object(it);\n  return O[ITERATOR] !== undefined\n    || '@@iterator' in O\n    // eslint-disable-next-line no-prototype-builtins\n    || Iterators.hasOwnProperty(classof(O));\n};\n\n\n/***/ }),\n\n/***/ \"9aa9\":\n/***/ (function(module, exports) {\n\nexports.f = Object.getOwnPropertySymbols;\n\n\n/***/ }),\n\n/***/ \"9b43\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// optional / simple context binding\nvar aFunction = __webpack_require__(\"d8e8\");\nmodule.exports = function (fn, that, length) {\n  aFunction(fn);\n  if (that === undefined) return fn;\n  switch (length) {\n    case 1: return function (a) {\n      return fn.call(that, a);\n    };\n    case 2: return function (a, b) {\n      return fn.call(that, a, b);\n    };\n    case 3: return function (a, b, c) {\n      return fn.call(that, a, b, c);\n    };\n  }\n  return function (/* ...args */) {\n    return fn.apply(that, arguments);\n  };\n};\n\n\n/***/ }),\n\n/***/ \"9c6c\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 22.1.3.31 Array.prototype[@@unscopables]\nvar UNSCOPABLES = __webpack_require__(\"2b4c\")('unscopables');\nvar ArrayProto = Array.prototype;\nif (ArrayProto[UNSCOPABLES] == undefined) __webpack_require__(\"32e9\")(ArrayProto, UNSCOPABLES, {});\nmodule.exports = function (key) {\n  ArrayProto[UNSCOPABLES][key] = true;\n};\n\n\n/***/ }),\n\n/***/ \"9def\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.15 ToLength\nvar toInteger = __webpack_require__(\"4588\");\nvar min = Math.min;\nmodule.exports = function (it) {\n  return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n\n\n/***/ }),\n\n/***/ \"9e1e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !__webpack_require__(\"79e5\")(function () {\n  return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n/***/ }),\n\n/***/ \"a159\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = __webpack_require__(\"e4ae\");\nvar dPs = __webpack_require__(\"7e90\");\nvar enumBugKeys = __webpack_require__(\"1691\");\nvar IE_PROTO = __webpack_require__(\"5559\")('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n  // Thrash, waste and sodomy: IE GC bug\n  var iframe = __webpack_require__(\"1ec9\")('iframe');\n  var i = enumBugKeys.length;\n  var lt = '<';\n  var gt = '>';\n  var iframeDocument;\n  iframe.style.display = 'none';\n  __webpack_require__(\"32fc\").appendChild(iframe);\n  iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n  // createDict = iframe.contentWindow.Object;\n  // html.removeChild(iframe);\n  iframeDocument = iframe.contentWindow.document;\n  iframeDocument.open();\n  iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n  iframeDocument.close();\n  createDict = iframeDocument.F;\n  while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n  return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n  var result;\n  if (O !== null) {\n    Empty[PROTOTYPE] = anObject(O);\n    result = new Empty();\n    Empty[PROTOTYPE] = null;\n    // add \"__proto__\" for Object.getPrototypeOf polyfill\n    result[IE_PROTO] = O;\n  } else result = createDict();\n  return Properties === undefined ? result : dPs(result, Properties);\n};\n\n\n/***/ }),\n\n/***/ \"a352\":\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"sortablejs\");\n\n/***/ }),\n\n/***/ \"a3c3\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.3.1 Object.assign(target, source)\nvar $export = __webpack_require__(\"63b6\");\n\n$export($export.S + $export.F, 'Object', { assign: __webpack_require__(\"9306\") });\n\n\n/***/ }),\n\n/***/ \"a481\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar anObject = __webpack_require__(\"cb7c\");\nvar toObject = __webpack_require__(\"4bf8\");\nvar toLength = __webpack_require__(\"9def\");\nvar toInteger = __webpack_require__(\"4588\");\nvar advanceStringIndex = __webpack_require__(\"0390\");\nvar regExpExec = __webpack_require__(\"5f1b\");\nvar max = Math.max;\nvar min = Math.min;\nvar floor = Math.floor;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&`']|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&`']|\\d\\d?)/g;\n\nvar maybeToString = function (it) {\n  return it === undefined ? it : String(it);\n};\n\n// @@replace logic\n__webpack_require__(\"214f\")('replace', 2, function (defined, REPLACE, $replace, maybeCallNative) {\n  return [\n    // `String.prototype.replace` method\n    // https://tc39.github.io/ecma262/#sec-string.prototype.replace\n    function replace(searchValue, replaceValue) {\n      var O = defined(this);\n      var fn = searchValue == undefined ? undefined : searchValue[REPLACE];\n      return fn !== undefined\n        ? fn.call(searchValue, O, replaceValue)\n        : $replace.call(String(O), searchValue, replaceValue);\n    },\n    // `RegExp.prototype[@@replace]` method\n    // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace\n    function (regexp, replaceValue) {\n      var res = maybeCallNative($replace, regexp, this, replaceValue);\n      if (res.done) return res.value;\n\n      var rx = anObject(regexp);\n      var S = String(this);\n      var functionalReplace = typeof replaceValue === 'function';\n      if (!functionalReplace) replaceValue = String(replaceValue);\n      var global = rx.global;\n      if (global) {\n        var fullUnicode = rx.unicode;\n        rx.lastIndex = 0;\n      }\n      var results = [];\n      while (true) {\n        var result = regExpExec(rx, S);\n        if (result === null) break;\n        results.push(result);\n        if (!global) break;\n        var matchStr = String(result[0]);\n        if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n      }\n      var accumulatedResult = '';\n      var nextSourcePosition = 0;\n      for (var i = 0; i < results.length; i++) {\n        result = results[i];\n        var matched = String(result[0]);\n        var position = max(min(toInteger(result.index), S.length), 0);\n        var captures = [];\n        // NOTE: This is equivalent to\n        //   captures = result.slice(1).map(maybeToString)\n        // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n        // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n        // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n        for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n        var namedCaptures = result.groups;\n        if (functionalReplace) {\n          var replacerArgs = [matched].concat(captures, position, S);\n          if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n          var replacement = String(replaceValue.apply(undefined, replacerArgs));\n        } else {\n          replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n        }\n        if (position >= nextSourcePosition) {\n          accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n          nextSourcePosition = position + matched.length;\n        }\n      }\n      return accumulatedResult + S.slice(nextSourcePosition);\n    }\n  ];\n\n    // https://tc39.github.io/ecma262/#sec-getsubstitution\n  function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {\n    var tailPos = position + matched.length;\n    var m = captures.length;\n    var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n    if (namedCaptures !== undefined) {\n      namedCaptures = toObject(namedCaptures);\n      symbols = SUBSTITUTION_SYMBOLS;\n    }\n    return $replace.call(replacement, symbols, function (match, ch) {\n      var capture;\n      switch (ch.charAt(0)) {\n        case '$': return '$';\n        case '&': return matched;\n        case '`': return str.slice(0, position);\n        case \"'\": return str.slice(tailPos);\n        case '<':\n          capture = namedCaptures[ch.slice(1, -1)];\n          break;\n        default: // \\d\\d?\n          var n = +ch;\n          if (n === 0) return match;\n          if (n > m) {\n            var f = floor(n / 10);\n            if (f === 0) return match;\n            if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n            return match;\n          }\n          capture = captures[n - 1];\n      }\n      return capture === undefined ? '' : capture;\n    });\n  }\n});\n\n\n/***/ }),\n\n/***/ \"a4bb\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(\"8aae\");\n\n/***/ }),\n\n/***/ \"a745\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(\"f410\");\n\n/***/ }),\n\n/***/ \"aae3\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.2.8 IsRegExp(argument)\nvar isObject = __webpack_require__(\"d3f4\");\nvar cof = __webpack_require__(\"2d95\");\nvar MATCH = __webpack_require__(\"2b4c\")('match');\nmodule.exports = function (it) {\n  var isRegExp;\n  return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');\n};\n\n\n/***/ }),\n\n/***/ \"aebd\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (bitmap, value) {\n  return {\n    enumerable: !(bitmap & 1),\n    configurable: !(bitmap & 2),\n    writable: !(bitmap & 4),\n    value: value\n  };\n};\n\n\n/***/ }),\n\n/***/ \"b0c5\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar regexpExec = __webpack_require__(\"520a\");\n__webpack_require__(\"5ca1\")({\n  target: 'RegExp',\n  proto: true,\n  forced: regexpExec !== /./.exec\n}, {\n  exec: regexpExec\n});\n\n\n/***/ }),\n\n/***/ \"b0dc\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// call something on iterator step with safe closing on error\nvar anObject = __webpack_require__(\"e4ae\");\nmodule.exports = function (iterator, fn, value, entries) {\n  try {\n    return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n  // 7.4.6 IteratorClose(iterator, completion)\n  } catch (e) {\n    var ret = iterator['return'];\n    if (ret !== undefined) anObject(ret.call(iterator));\n    throw e;\n  }\n};\n\n\n/***/ }),\n\n/***/ \"b447\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.15 ToLength\nvar toInteger = __webpack_require__(\"3a38\");\nvar min = Math.min;\nmodule.exports = function (it) {\n  return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n\n\n/***/ }),\n\n/***/ \"b8e3\":\n/***/ (function(module, exports) {\n\nmodule.exports = true;\n\n\n/***/ }),\n\n/***/ \"be13\":\n/***/ (function(module, exports) {\n\n// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n  if (it == undefined) throw TypeError(\"Can't call method on  \" + it);\n  return it;\n};\n\n\n/***/ }),\n\n/***/ \"c366\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// false -> Array#indexOf\n// true  -> Array#includes\nvar toIObject = __webpack_require__(\"6821\");\nvar toLength = __webpack_require__(\"9def\");\nvar toAbsoluteIndex = __webpack_require__(\"77f1\");\nmodule.exports = function (IS_INCLUDES) {\n  return function ($this, el, fromIndex) {\n    var O = toIObject($this);\n    var length = toLength(O.length);\n    var index = toAbsoluteIndex(fromIndex, length);\n    var value;\n    // Array#includes uses SameValueZero equality algorithm\n    // eslint-disable-next-line no-self-compare\n    if (IS_INCLUDES && el != el) while (length > index) {\n      value = O[index++];\n      // eslint-disable-next-line no-self-compare\n      if (value != value) return true;\n    // Array#indexOf ignores holes, Array#includes - not\n    } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n      if (O[index] === el) return IS_INCLUDES || index || 0;\n    } return !IS_INCLUDES && -1;\n  };\n};\n\n\n/***/ }),\n\n/***/ \"c367\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar addToUnscopables = __webpack_require__(\"8436\");\nvar step = __webpack_require__(\"50ed\");\nvar Iterators = __webpack_require__(\"481b\");\nvar toIObject = __webpack_require__(\"36c3\");\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = __webpack_require__(\"30f1\")(Array, 'Array', function (iterated, kind) {\n  this._t = toIObject(iterated); // target\n  this._i = 0;                   // next index\n  this._k = kind;                // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n  var O = this._t;\n  var kind = this._k;\n  var index = this._i++;\n  if (!O || index >= O.length) {\n    this._t = undefined;\n    return step(1);\n  }\n  if (kind == 'keys') return step(0, index);\n  if (kind == 'values') return step(0, O[index]);\n  return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n\n/***/ }),\n\n/***/ \"c3a1\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = __webpack_require__(\"e6f3\");\nvar enumBugKeys = __webpack_require__(\"1691\");\n\nmodule.exports = Object.keys || function keys(O) {\n  return $keys(O, enumBugKeys);\n};\n\n\n/***/ }),\n\n/***/ \"c649\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return insertNodeAt; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return camelize; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return console; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return removeNode; });\n/* harmony import */ var core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\"a481\");\n/* harmony import */ var core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var F_source_vuedraggable_node_modules_babel_runtime_corejs2_core_js_object_create__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\"4aa6\");\n/* harmony import */ var F_source_vuedraggable_node_modules_babel_runtime_corejs2_core_js_object_create__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(F_source_vuedraggable_node_modules_babel_runtime_corejs2_core_js_object_create__WEBPACK_IMPORTED_MODULE_1__);\n\n\n\nfunction getConsole() {\n  if (typeof window !== \"undefined\") {\n    return window.console;\n  }\n\n  return global.console;\n}\n\nvar console = getConsole();\n\nfunction cached(fn) {\n  var cache = F_source_vuedraggable_node_modules_babel_runtime_corejs2_core_js_object_create__WEBPACK_IMPORTED_MODULE_1___default()(null);\n\n  return function cachedFn(str) {\n    var hit = cache[str];\n    return hit || (cache[str] = fn(str));\n  };\n}\n\nvar regex = /-(\\w)/g;\nvar camelize = cached(function (str) {\n  return str.replace(regex, function (_, c) {\n    return c ? c.toUpperCase() : \"\";\n  });\n});\n\nfunction removeNode(node) {\n  if (node.parentElement !== null) {\n    node.parentElement.removeChild(node);\n  }\n}\n\nfunction insertNodeAt(fatherNode, node, position) {\n  var refNode = position === 0 ? fatherNode.children[0] : fatherNode.children[position - 1].nextSibling;\n  fatherNode.insertBefore(node, refNode);\n}\n\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(\"c8ba\")))\n\n/***/ }),\n\n/***/ \"c69a\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = !__webpack_require__(\"9e1e\") && !__webpack_require__(\"79e5\")(function () {\n  return Object.defineProperty(__webpack_require__(\"230e\")('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n/***/ }),\n\n/***/ \"c8ba\":\n/***/ (function(module, exports) {\n\nvar g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n\n\n/***/ }),\n\n/***/ \"c8bb\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(\"54a1\");\n\n/***/ }),\n\n/***/ \"ca5a\":\n/***/ (function(module, exports) {\n\nvar id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n  return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n\n\n/***/ }),\n\n/***/ \"cb7c\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(\"d3f4\");\nmodule.exports = function (it) {\n  if (!isObject(it)) throw TypeError(it + ' is not an object!');\n  return it;\n};\n\n\n/***/ }),\n\n/***/ \"ce7e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// most Object methods by ES6 should accept primitives\nvar $export = __webpack_require__(\"63b6\");\nvar core = __webpack_require__(\"584a\");\nvar fails = __webpack_require__(\"294c\");\nmodule.exports = function (KEY, exec) {\n  var fn = (core.Object || {})[KEY] || Object[KEY];\n  var exp = {};\n  exp[KEY] = exec(fn);\n  $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n\n\n/***/ }),\n\n/***/ \"d2c8\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// helper for String#{startsWith, endsWith, includes}\nvar isRegExp = __webpack_require__(\"aae3\");\nvar defined = __webpack_require__(\"be13\");\n\nmodule.exports = function (that, searchString, NAME) {\n  if (isRegExp(searchString)) throw TypeError('String#' + NAME + \" doesn't accept regex!\");\n  return String(defined(that));\n};\n\n\n/***/ }),\n\n/***/ \"d2d5\":\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(\"1654\");\n__webpack_require__(\"549b\");\nmodule.exports = __webpack_require__(\"584a\").Array.from;\n\n\n/***/ }),\n\n/***/ \"d3f4\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n  return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n/***/ }),\n\n/***/ \"d864\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// optional / simple context binding\nvar aFunction = __webpack_require__(\"79aa\");\nmodule.exports = function (fn, that, length) {\n  aFunction(fn);\n  if (that === undefined) return fn;\n  switch (length) {\n    case 1: return function (a) {\n      return fn.call(that, a);\n    };\n    case 2: return function (a, b) {\n      return fn.call(that, a, b);\n    };\n    case 3: return function (a, b, c) {\n      return fn.call(that, a, b, c);\n    };\n  }\n  return function (/* ...args */) {\n    return fn.apply(that, arguments);\n  };\n};\n\n\n/***/ }),\n\n/***/ \"d8e8\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n  if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n  return it;\n};\n\n\n/***/ }),\n\n/***/ \"d9f6\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(\"e4ae\");\nvar IE8_DOM_DEFINE = __webpack_require__(\"794b\");\nvar toPrimitive = __webpack_require__(\"1bc3\");\nvar dP = Object.defineProperty;\n\nexports.f = __webpack_require__(\"8e60\") ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n  anObject(O);\n  P = toPrimitive(P, true);\n  anObject(Attributes);\n  if (IE8_DOM_DEFINE) try {\n    return dP(O, P, Attributes);\n  } catch (e) { /* empty */ }\n  if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n  if ('value' in Attributes) O[P] = Attributes.value;\n  return O;\n};\n\n\n/***/ }),\n\n/***/ \"dbdb\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar core = __webpack_require__(\"584a\");\nvar global = __webpack_require__(\"e53d\");\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n  return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n  version: core.version,\n  mode: __webpack_require__(\"b8e3\") ? 'pure' : 'global',\n  copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n\n\n/***/ }),\n\n/***/ \"dc62\":\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(\"9427\");\nvar $Object = __webpack_require__(\"584a\").Object;\nmodule.exports = function create(P, D) {\n  return $Object.create(P, D);\n};\n\n\n/***/ }),\n\n/***/ \"e4ae\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(\"f772\");\nmodule.exports = function (it) {\n  if (!isObject(it)) throw TypeError(it + ' is not an object!');\n  return it;\n};\n\n\n/***/ }),\n\n/***/ \"e53d\":\n/***/ (function(module, exports) {\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n  ? window : typeof self != 'undefined' && self.Math == Math ? self\n  // eslint-disable-next-line no-new-func\n  : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n\n\n/***/ }),\n\n/***/ \"e6f3\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar has = __webpack_require__(\"07e3\");\nvar toIObject = __webpack_require__(\"36c3\");\nvar arrayIndexOf = __webpack_require__(\"5b4e\")(false);\nvar IE_PROTO = __webpack_require__(\"5559\")('IE_PROTO');\n\nmodule.exports = function (object, names) {\n  var O = toIObject(object);\n  var i = 0;\n  var result = [];\n  var key;\n  for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n  // Don't enum bug & hidden keys\n  while (names.length > i) if (has(O, key = names[i++])) {\n    ~arrayIndexOf(result, key) || result.push(key);\n  }\n  return result;\n};\n\n\n/***/ }),\n\n/***/ \"f410\":\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(\"1af6\");\nmodule.exports = __webpack_require__(\"584a\").Array.isArray;\n\n\n/***/ }),\n\n/***/ \"f559\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n// 21.1.3.18 String.prototype.startsWith(searchString [, position ])\n\nvar $export = __webpack_require__(\"5ca1\");\nvar toLength = __webpack_require__(\"9def\");\nvar context = __webpack_require__(\"d2c8\");\nvar STARTS_WITH = 'startsWith';\nvar $startsWith = ''[STARTS_WITH];\n\n$export($export.P + $export.F * __webpack_require__(\"5147\")(STARTS_WITH), 'String', {\n  startsWith: function startsWith(searchString /* , position = 0 */) {\n    var that = context(this, searchString, STARTS_WITH);\n    var index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n    var search = String(searchString);\n    return $startsWith\n      ? $startsWith.call(that, search, index)\n      : that.slice(index, index + search.length) === search;\n  }\n});\n\n\n/***/ }),\n\n/***/ \"f772\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n  return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n/***/ }),\n\n/***/ \"fa5b\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(\"5537\")('native-function-to-string', Function.toString);\n\n\n/***/ }),\n\n/***/ \"fb15\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n\n// CONCATENATED MODULE: ./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js\n// This file is imported into lib/wc client bundles.\n\nif (typeof window !== 'undefined') {\n  var setPublicPath_i\n  if ((setPublicPath_i = window.document.currentScript) && (setPublicPath_i = setPublicPath_i.src.match(/(.+\\/)[^/]+\\.js(\\?.*)?$/))) {\n    __webpack_require__.p = setPublicPath_i[1] // eslint-disable-line\n  }\n}\n\n// Indicate to webpack that this file can be concatenated\n/* harmony default export */ var setPublicPath = (null);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime-corejs2/core-js/object/assign.js\nvar object_assign = __webpack_require__(\"5176\");\nvar assign_default = /*#__PURE__*/__webpack_require__.n(object_assign);\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.string.starts-with.js\nvar es6_string_starts_with = __webpack_require__(\"f559\");\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime-corejs2/core-js/object/keys.js\nvar keys = __webpack_require__(\"a4bb\");\nvar keys_default = /*#__PURE__*/__webpack_require__.n(keys);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime-corejs2/core-js/array/is-array.js\nvar is_array = __webpack_require__(\"a745\");\nvar is_array_default = /*#__PURE__*/__webpack_require__.n(is_array);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime-corejs2/helpers/esm/arrayWithHoles.js\n\nfunction _arrayWithHoles(arr) {\n  if (is_array_default()(arr)) return arr;\n}\n// EXTERNAL MODULE: ./node_modules/@babel/runtime-corejs2/core-js/get-iterator.js\nvar get_iterator = __webpack_require__(\"5d73\");\nvar get_iterator_default = /*#__PURE__*/__webpack_require__.n(get_iterator);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime-corejs2/helpers/esm/iterableToArrayLimit.js\n\nfunction _iterableToArrayLimit(arr, i) {\n  var _arr = [];\n  var _n = true;\n  var _d = false;\n  var _e = undefined;\n\n  try {\n    for (var _i = get_iterator_default()(arr), _s; !(_n = (_s = _i.next()).done); _n = true) {\n      _arr.push(_s.value);\n\n      if (i && _arr.length === i) break;\n    }\n  } catch (err) {\n    _d = true;\n    _e = err;\n  } finally {\n    try {\n      if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n    } finally {\n      if (_d) throw _e;\n    }\n  }\n\n  return _arr;\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime-corejs2/helpers/esm/nonIterableRest.js\nfunction _nonIterableRest() {\n  throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime-corejs2/helpers/esm/slicedToArray.js\n\n\n\nfunction _slicedToArray(arr, i) {\n  return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();\n}\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es7.array.includes.js\nvar es7_array_includes = __webpack_require__(\"6762\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.string.includes.js\nvar es6_string_includes = __webpack_require__(\"2fdb\");\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime-corejs2/helpers/esm/arrayWithoutHoles.js\n\nfunction _arrayWithoutHoles(arr) {\n  if (is_array_default()(arr)) {\n    for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n      arr2[i] = arr[i];\n    }\n\n    return arr2;\n  }\n}\n// EXTERNAL MODULE: ./node_modules/@babel/runtime-corejs2/core-js/array/from.js\nvar from = __webpack_require__(\"774e\");\nvar from_default = /*#__PURE__*/__webpack_require__.n(from);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime-corejs2/core-js/is-iterable.js\nvar is_iterable = __webpack_require__(\"c8bb\");\nvar is_iterable_default = /*#__PURE__*/__webpack_require__.n(is_iterable);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime-corejs2/helpers/esm/iterableToArray.js\n\n\nfunction _iterableToArray(iter) {\n  if (is_iterable_default()(Object(iter)) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return from_default()(iter);\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime-corejs2/helpers/esm/nonIterableSpread.js\nfunction _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime-corejs2/helpers/esm/toConsumableArray.js\n\n\n\nfunction _toConsumableArray(arr) {\n  return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n// EXTERNAL MODULE: external {\"commonjs\":\"sortablejs\",\"commonjs2\":\"sortablejs\",\"amd\":\"sortablejs\",\"root\":\"Sortable\"}\nvar external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_ = __webpack_require__(\"a352\");\nvar external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_default = /*#__PURE__*/__webpack_require__.n(external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_);\n\n// EXTERNAL MODULE: ./src/util/helper.js\nvar helper = __webpack_require__(\"c649\");\n\n// CONCATENATED MODULE: ./src/vuedraggable.js\n\n\n\n\n\n\n\n\n\n\nfunction buildAttribute(object, propName, value) {\n  if (value === undefined) {\n    return object;\n  }\n\n  object = object || {};\n  object[propName] = value;\n  return object;\n}\n\nfunction computeVmIndex(vnodes, element) {\n  return vnodes.map(function (elt) {\n    return elt.elm;\n  }).indexOf(element);\n}\n\nfunction _computeIndexes(slots, children, isTransition, footerOffset) {\n  if (!slots) {\n    return [];\n  }\n\n  var elmFromNodes = slots.map(function (elt) {\n    return elt.elm;\n  });\n  var footerIndex = children.length - footerOffset;\n\n  var rawIndexes = _toConsumableArray(children).map(function (elt, idx) {\n    return idx >= footerIndex ? elmFromNodes.length : elmFromNodes.indexOf(elt);\n  });\n\n  return isTransition ? rawIndexes.filter(function (ind) {\n    return ind !== -1;\n  }) : rawIndexes;\n}\n\nfunction emit(evtName, evtData) {\n  var _this = this;\n\n  this.$nextTick(function () {\n    return _this.$emit(evtName.toLowerCase(), evtData);\n  });\n}\n\nfunction delegateAndEmit(evtName) {\n  var _this2 = this;\n\n  return function (evtData) {\n    if (_this2.realList !== null) {\n      _this2[\"onDrag\" + evtName](evtData);\n    }\n\n    emit.call(_this2, evtName, evtData);\n  };\n}\n\nfunction isTransitionName(name) {\n  return [\"transition-group\", \"TransitionGroup\"].includes(name);\n}\n\nfunction vuedraggable_isTransition(slots) {\n  if (!slots || slots.length !== 1) {\n    return false;\n  }\n\n  var _slots = _slicedToArray(slots, 1),\n      componentOptions = _slots[0].componentOptions;\n\n  if (!componentOptions) {\n    return false;\n  }\n\n  return isTransitionName(componentOptions.tag);\n}\n\nfunction getSlot(slot, scopedSlot, key) {\n  return slot[key] || (scopedSlot[key] ? scopedSlot[key]() : undefined);\n}\n\nfunction computeChildrenAndOffsets(children, slot, scopedSlot) {\n  var headerOffset = 0;\n  var footerOffset = 0;\n  var header = getSlot(slot, scopedSlot, \"header\");\n\n  if (header) {\n    headerOffset = header.length;\n    children = children ? [].concat(_toConsumableArray(header), _toConsumableArray(children)) : _toConsumableArray(header);\n  }\n\n  var footer = getSlot(slot, scopedSlot, \"footer\");\n\n  if (footer) {\n    footerOffset = footer.length;\n    children = children ? [].concat(_toConsumableArray(children), _toConsumableArray(footer)) : _toConsumableArray(footer);\n  }\n\n  return {\n    children: children,\n    headerOffset: headerOffset,\n    footerOffset: footerOffset\n  };\n}\n\nfunction getComponentAttributes($attrs, componentData) {\n  var attributes = null;\n\n  var update = function update(name, value) {\n    attributes = buildAttribute(attributes, name, value);\n  };\n\n  var attrs = keys_default()($attrs).filter(function (key) {\n    return key === \"id\" || key.startsWith(\"data-\");\n  }).reduce(function (res, key) {\n    res[key] = $attrs[key];\n    return res;\n  }, {});\n\n  update(\"attrs\", attrs);\n\n  if (!componentData) {\n    return attributes;\n  }\n\n  var on = componentData.on,\n      props = componentData.props,\n      componentDataAttrs = componentData.attrs;\n  update(\"on\", on);\n  update(\"props\", props);\n\n  assign_default()(attributes.attrs, componentDataAttrs);\n\n  return attributes;\n}\n\nvar eventsListened = [\"Start\", \"Add\", \"Remove\", \"Update\", \"End\"];\nvar eventsToEmit = [\"Choose\", \"Unchoose\", \"Sort\", \"Filter\", \"Clone\"];\nvar readonlyProperties = [\"Move\"].concat(eventsListened, eventsToEmit).map(function (evt) {\n  return \"on\" + evt;\n});\nvar draggingElement = null;\nvar vuedraggable_props = {\n  options: Object,\n  list: {\n    type: Array,\n    required: false,\n    default: null\n  },\n  value: {\n    type: Array,\n    required: false,\n    default: null\n  },\n  noTransitionOnDrag: {\n    type: Boolean,\n    default: false\n  },\n  clone: {\n    type: Function,\n    default: function _default(original) {\n      return original;\n    }\n  },\n  element: {\n    type: String,\n    default: \"div\"\n  },\n  tag: {\n    type: String,\n    default: null\n  },\n  move: {\n    type: Function,\n    default: null\n  },\n  componentData: {\n    type: Object,\n    required: false,\n    default: null\n  }\n};\nvar draggableComponent = {\n  name: \"draggable\",\n  inheritAttrs: false,\n  props: vuedraggable_props,\n  data: function data() {\n    return {\n      transitionMode: false,\n      noneFunctionalComponentMode: false\n    };\n  },\n  render: function render(h) {\n    var slots = this.$slots.default;\n    this.transitionMode = vuedraggable_isTransition(slots);\n\n    var _computeChildrenAndOf = computeChildrenAndOffsets(slots, this.$slots, this.$scopedSlots),\n        children = _computeChildrenAndOf.children,\n        headerOffset = _computeChildrenAndOf.headerOffset,\n        footerOffset = _computeChildrenAndOf.footerOffset;\n\n    this.headerOffset = headerOffset;\n    this.footerOffset = footerOffset;\n    var attributes = getComponentAttributes(this.$attrs, this.componentData);\n    return h(this.getTag(), attributes, children);\n  },\n  created: function created() {\n    if (this.list !== null && this.value !== null) {\n      helper[\"b\" /* console */].error(\"Value and list props are mutually exclusive! Please set one or another.\");\n    }\n\n    if (this.element !== \"div\") {\n      helper[\"b\" /* console */].warn(\"Element props is deprecated please use tag props instead. See https://github.com/SortableJS/Vue.Draggable/blob/master/documentation/migrate.md#element-props\");\n    }\n\n    if (this.options !== undefined) {\n      helper[\"b\" /* console */].warn(\"Options props is deprecated, add sortable options directly as vue.draggable item, or use v-bind. See https://github.com/SortableJS/Vue.Draggable/blob/master/documentation/migrate.md#options-props\");\n    }\n  },\n  mounted: function mounted() {\n    var _this3 = this;\n\n    this.noneFunctionalComponentMode = this.getTag().toLowerCase() !== this.$el.nodeName.toLowerCase() && !this.getIsFunctional();\n\n    if (this.noneFunctionalComponentMode && this.transitionMode) {\n      throw new Error(\"Transition-group inside component is not supported. Please alter tag value or remove transition-group. Current tag value: \".concat(this.getTag()));\n    }\n\n    var optionsAdded = {};\n    eventsListened.forEach(function (elt) {\n      optionsAdded[\"on\" + elt] = delegateAndEmit.call(_this3, elt);\n    });\n    eventsToEmit.forEach(function (elt) {\n      optionsAdded[\"on\" + elt] = emit.bind(_this3, elt);\n    });\n\n    var attributes = keys_default()(this.$attrs).reduce(function (res, key) {\n      res[Object(helper[\"a\" /* camelize */])(key)] = _this3.$attrs[key];\n      return res;\n    }, {});\n\n    var options = assign_default()({}, this.options, attributes, optionsAdded, {\n      onMove: function onMove(evt, originalEvent) {\n        return _this3.onDragMove(evt, originalEvent);\n      }\n    });\n\n    !(\"draggable\" in options) && (options.draggable = \">*\");\n    this._sortable = new external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_default.a(this.rootContainer, options);\n    this.computeIndexes();\n  },\n  beforeDestroy: function beforeDestroy() {\n    if (this._sortable !== undefined) this._sortable.destroy();\n  },\n  computed: {\n    rootContainer: function rootContainer() {\n      return this.transitionMode ? this.$el.children[0] : this.$el;\n    },\n    realList: function realList() {\n      return this.list ? this.list : this.value;\n    }\n  },\n  watch: {\n    options: {\n      handler: function handler(newOptionValue) {\n        this.updateOptions(newOptionValue);\n      },\n      deep: true\n    },\n    $attrs: {\n      handler: function handler(newOptionValue) {\n        this.updateOptions(newOptionValue);\n      },\n      deep: true\n    },\n    realList: function realList() {\n      this.computeIndexes();\n    }\n  },\n  methods: {\n    getIsFunctional: function getIsFunctional() {\n      var fnOptions = this._vnode.fnOptions;\n      return fnOptions && fnOptions.functional;\n    },\n    getTag: function getTag() {\n      return this.tag || this.element;\n    },\n    updateOptions: function updateOptions(newOptionValue) {\n      for (var property in newOptionValue) {\n        var value = Object(helper[\"a\" /* camelize */])(property);\n\n        if (readonlyProperties.indexOf(value) === -1) {\n          this._sortable.option(value, newOptionValue[property]);\n        }\n      }\n    },\n    getChildrenNodes: function getChildrenNodes() {\n      if (this.noneFunctionalComponentMode) {\n        return this.$children[0].$slots.default;\n      }\n\n      var rawNodes = this.$slots.default;\n      return this.transitionMode ? rawNodes[0].child.$slots.default : rawNodes;\n    },\n    computeIndexes: function computeIndexes() {\n      var _this4 = this;\n\n      this.$nextTick(function () {\n        _this4.visibleIndexes = _computeIndexes(_this4.getChildrenNodes(), _this4.rootContainer.children, _this4.transitionMode, _this4.footerOffset);\n      });\n    },\n    getUnderlyingVm: function getUnderlyingVm(htmlElt) {\n      var index = computeVmIndex(this.getChildrenNodes() || [], htmlElt);\n\n      if (index === -1) {\n        //Edge case during move callback: related element might be\n        //an element different from collection\n        return null;\n      }\n\n      var element = this.realList[index];\n      return {\n        index: index,\n        element: element\n      };\n    },\n    getUnderlyingPotencialDraggableComponent: function getUnderlyingPotencialDraggableComponent(_ref) {\n      var vue = _ref.__vue__;\n\n      if (!vue || !vue.$options || !isTransitionName(vue.$options._componentTag)) {\n        if (!(\"realList\" in vue) && vue.$children.length === 1 && \"realList\" in vue.$children[0]) return vue.$children[0];\n        return vue;\n      }\n\n      return vue.$parent;\n    },\n    emitChanges: function emitChanges(evt) {\n      var _this5 = this;\n\n      this.$nextTick(function () {\n        _this5.$emit(\"change\", evt);\n      });\n    },\n    alterList: function alterList(onList) {\n      if (this.list) {\n        onList(this.list);\n        return;\n      }\n\n      var newList = _toConsumableArray(this.value);\n\n      onList(newList);\n      this.$emit(\"input\", newList);\n    },\n    spliceList: function spliceList() {\n      var _arguments = arguments;\n\n      var spliceList = function spliceList(list) {\n        return list.splice.apply(list, _toConsumableArray(_arguments));\n      };\n\n      this.alterList(spliceList);\n    },\n    updatePosition: function updatePosition(oldIndex, newIndex) {\n      var updatePosition = function updatePosition(list) {\n        return list.splice(newIndex, 0, list.splice(oldIndex, 1)[0]);\n      };\n\n      this.alterList(updatePosition);\n    },\n    getRelatedContextFromMoveEvent: function getRelatedContextFromMoveEvent(_ref2) {\n      var to = _ref2.to,\n          related = _ref2.related;\n      var component = this.getUnderlyingPotencialDraggableComponent(to);\n\n      if (!component) {\n        return {\n          component: component\n        };\n      }\n\n      var list = component.realList;\n      var context = {\n        list: list,\n        component: component\n      };\n\n      if (to !== related && list && component.getUnderlyingVm) {\n        var destination = component.getUnderlyingVm(related);\n\n        if (destination) {\n          return assign_default()(destination, context);\n        }\n      }\n\n      return context;\n    },\n    getVmIndex: function getVmIndex(domIndex) {\n      var indexes = this.visibleIndexes;\n      var numberIndexes = indexes.length;\n      return domIndex > numberIndexes - 1 ? numberIndexes : indexes[domIndex];\n    },\n    getComponent: function getComponent() {\n      return this.$slots.default[0].componentInstance;\n    },\n    resetTransitionData: function resetTransitionData(index) {\n      if (!this.noTransitionOnDrag || !this.transitionMode) {\n        return;\n      }\n\n      var nodes = this.getChildrenNodes();\n      nodes[index].data = null;\n      var transitionContainer = this.getComponent();\n      transitionContainer.children = [];\n      transitionContainer.kept = undefined;\n    },\n    onDragStart: function onDragStart(evt) {\n      this.context = this.getUnderlyingVm(evt.item);\n      evt.item._underlying_vm_ = this.clone(this.context.element);\n      draggingElement = evt.item;\n    },\n    onDragAdd: function onDragAdd(evt) {\n      var element = evt.item._underlying_vm_;\n\n      if (element === undefined) {\n        return;\n      }\n\n      Object(helper[\"d\" /* removeNode */])(evt.item);\n      var newIndex = this.getVmIndex(evt.newIndex);\n      this.spliceList(newIndex, 0, element);\n      this.computeIndexes();\n      var added = {\n        element: element,\n        newIndex: newIndex\n      };\n      this.emitChanges({\n        added: added\n      });\n    },\n    onDragRemove: function onDragRemove(evt) {\n      Object(helper[\"c\" /* insertNodeAt */])(this.rootContainer, evt.item, evt.oldIndex);\n\n      if (evt.pullMode === \"clone\") {\n        Object(helper[\"d\" /* removeNode */])(evt.clone);\n        return;\n      }\n\n      var oldIndex = this.context.index;\n      this.spliceList(oldIndex, 1);\n      var removed = {\n        element: this.context.element,\n        oldIndex: oldIndex\n      };\n      this.resetTransitionData(oldIndex);\n      this.emitChanges({\n        removed: removed\n      });\n    },\n    onDragUpdate: function onDragUpdate(evt) {\n      Object(helper[\"d\" /* removeNode */])(evt.item);\n      Object(helper[\"c\" /* insertNodeAt */])(evt.from, evt.item, evt.oldIndex);\n      var oldIndex = this.context.index;\n      var newIndex = this.getVmIndex(evt.newIndex);\n      this.updatePosition(oldIndex, newIndex);\n      var moved = {\n        element: this.context.element,\n        oldIndex: oldIndex,\n        newIndex: newIndex\n      };\n      this.emitChanges({\n        moved: moved\n      });\n    },\n    updateProperty: function updateProperty(evt, propertyName) {\n      evt.hasOwnProperty(propertyName) && (evt[propertyName] += this.headerOffset);\n    },\n    computeFutureIndex: function computeFutureIndex(relatedContext, evt) {\n      if (!relatedContext.element) {\n        return 0;\n      }\n\n      var domChildren = _toConsumableArray(evt.to.children).filter(function (el) {\n        return el.style[\"display\"] !== \"none\";\n      });\n\n      var currentDOMIndex = domChildren.indexOf(evt.related);\n      var currentIndex = relatedContext.component.getVmIndex(currentDOMIndex);\n      var draggedInList = domChildren.indexOf(draggingElement) !== -1;\n      return draggedInList || !evt.willInsertAfter ? currentIndex : currentIndex + 1;\n    },\n    onDragMove: function onDragMove(evt, originalEvent) {\n      var onMove = this.move;\n\n      if (!onMove || !this.realList) {\n        return true;\n      }\n\n      var relatedContext = this.getRelatedContextFromMoveEvent(evt);\n      var draggedContext = this.context;\n      var futureIndex = this.computeFutureIndex(relatedContext, evt);\n\n      assign_default()(draggedContext, {\n        futureIndex: futureIndex\n      });\n\n      var sendEvt = assign_default()({}, evt, {\n        relatedContext: relatedContext,\n        draggedContext: draggedContext\n      });\n\n      return onMove(sendEvt, originalEvent);\n    },\n    onDragEnd: function onDragEnd() {\n      this.computeIndexes();\n      draggingElement = null;\n    }\n  }\n};\n\nif (typeof window !== \"undefined\" && \"Vue\" in window) {\n  window.Vue.component(\"draggable\", draggableComponent);\n}\n\n/* harmony default export */ var vuedraggable = (draggableComponent);\n// CONCATENATED MODULE: ./node_modules/@vue/cli-service/lib/commands/build/entry-lib.js\n\n\n/* harmony default export */ var entry_lib = __webpack_exports__[\"default\"] = (vuedraggable);\n\n\n\n/***/ })\n\n/******/ })[\"default\"];\n//# sourceMappingURL=vuedraggable.common.js.map","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","import GlIcon from '../../icon/icon';\nimport { ENTER, SPACE } from '../constants';\nimport { stopEvent } from '../../../../utils/utils';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nvar script = {\n  name: 'GlListboxItem',\n  components: {\n    GlIcon\n  },\n  props: {\n    isSelected: {\n      type: Boolean,\n      default: false,\n      required: false\n    },\n    isFocused: {\n      type: Boolean,\n      default: false,\n      required: false\n    },\n    isCheckCentered: {\n      type: Boolean,\n      required: false,\n      default: false\n    }\n  },\n  computed: {\n    checkedClasses() {\n      if (this.isCheckCentered) {\n        return '';\n      }\n      return 'gl-mt-3 gl-self-start';\n    }\n  },\n  methods: {\n    toggleSelection() {\n      this.$emit('select', !this.isSelected);\n    },\n    onKeydown(event) {\n      const {\n        code\n      } = event;\n      if (code === ENTER || code === SPACE) {\n        stopEvent(event);\n        this.toggleSelection();\n      }\n    }\n  }\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('li',{staticClass:\"gl-new-dropdown-item\",attrs:{\"role\":\"option\",\"tabindex\":_vm.isFocused ? 0 : -1,\"aria-selected\":_vm.isSelected},on:{\"click\":_vm.toggleSelection,\"keydown\":_vm.onKeydown}},[_c('span',{staticClass:\"gl-new-dropdown-item-content\"},[_c('gl-icon',{class:[\n        'gl-new-dropdown-item-check-icon',\n        { 'gl-invisible': !_vm.isSelected },\n        _vm.checkedClasses ],attrs:{\"name\":\"mobile-issue-close\",\"data-testid\":\"dropdown-item-checkbox\"}}),_vm._v(\" \"),_c('span',{staticClass:\"gl-new-dropdown-item-text-wrapper\"},[_vm._t(\"default\")],2)],1)])};\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"],"sourceRoot":""}