{"version":3,"sources":["webpack:////build/source/node_modules/lodash/clamp.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/new_dropdowns/listbox/utils.js","webpack:////build/source/node_modules/lodash/isNil.js","webpack:////build/source/node_modules/lodash/_baseClamp.js","webpack:////build/source/node_modules/jquery.caret/dist/jquery.caret.js","webpack:///./vue_shared/components/local_storage_sync.vue?a4c7","webpack:///vue_shared/components/local_storage_sync.vue","webpack:///./vue_shared/components/local_storage_sync.vue","webpack:///./vue_shared/components/markdown/markdown_editor.vue","webpack:///vue_shared/components/markdown/markdown_editor.vue","webpack:///./vue_shared/components/markdown/markdown_editor.vue?d0a9","webpack:///./vue_shared/components/markdown/markdown_editor.vue?00ed","webpack:////build/source/node_modules/@gitlab/ui/dist/directives/outside/outside.js","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/directives/modal/modal.js","webpack:////build/source/node_modules/modern-screenshot/dist/index.js","webpack:////build/source/node_modules/@gitlab/at.js/dist/js/jquery.atwho.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/new_dropdowns/constants.js","webpack:////build/source/node_modules/@floating-ui/dom/dist/floating-ui.dom.esm.js","webpack:////build/source/node_modules/@floating-ui/utils/dist/floating-ui.utils.esm.js","webpack:///./zen_mode.js","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:////build/source/node_modules/@gitlab/ui/dist/components/utilities/intersection_observer/intersection_observer.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/search_box_by_type/search_box_by_type.js","webpack:///./vue_shared/components/markdown/mount_markdown_editor.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/new_dropdowns/base_dropdown/base_dropdown.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/new_dropdowns/base_dropdown/constants.js","webpack:///./vue_shared/mixins/modal_keyboard_navigation_mixin.js","webpack:////build/source/node_modules/@floating-ui/core/dist/floating-ui.core.esm.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/new_dropdowns/listbox/listbox_item.js"],"names":["baseClamp","toNumber","module","exports","number","lower","upper","undefined","isOption","item","Boolean","value","isGroup","options","arguments","length","Array","isArray","every","hasNoDuplicates","array","Set","size","flattenedOptions","items","flatMap","itemsValidator","isAllOptionsOrAllGroups","map","_ref","hasUniqueValues","filter","_ref2","text","hasUniqueGroups","this","$","root","returnExportsGlobal","EditableCaret","InputCaret","Mirror","Utils","methods","oDocument","oWindow","setContextBy","$inputor","domInputor","prototype","setPos","pos","fn","found","offset","sel","getSelection","parent","node","range","_i","_len","_results","childNodes","nodeType","createRange","setStart","removeAllRanges","addRange","push","getIEPosition","getPosition","inputor_offset","getOffset","left","top","getOldIEPos","preCaretTextRange","textRange","selection","body","createTextRange","moveToElementText","setEndPoint","getPos","clonedRange","cloneRange","selectNodeContents","setEnd","endContainer","endOffset","toString","detach","getOldIEOffset","rect","duplicate","moveStart","height","getBoundingClientRect","bottom","shadowCaret","width","createTextNode","insertNode","selectNode","remove","scrollTop","scrollLeft","rangeCount","getRangeAt","getIEPos","endRange","inputor","len","textInputRange","parentElement","replace","moveToBookmark","getBookmark","collapse","compareEndPoints","selectionStart","move","select","setSelectionRange","getIEOffset","boundingLeft","boundingTop","boundingHeight","position","end_range","format","html","start_range","test","navigator","userAgent","val","slice","create","inputorOffset","css_attr","mirrorCss","css","_this","zIndex","prop","each","i","p","$mirror","after","$flag","find","contentEditable","settings","iframe","contentWindow","contentDocument","document","window","caret","method","isPlainObject","apply","error","apis","factory","props","storageKey","type","String","required","Number","Object","default","asString","persist","clear","watch","newVal","saveValue","serialize","localStorage","removeItem","mounted","exists","getStorageValue","_isEqual","$emit","getItem","deserialize","console","warn","setItem","_isString","JSON","stringify","parse","render","_this$$scopedSlots$de","_this$$scopedSlots","$scopedSlots","call","component","staticRenderFns","async","waitFor","getEl","interval","timeout","el","t","Promise","resolve","setTimeout","sleep","components","GlAlert","MarkdownField","LocalStorageSync","ContentEditor","setFacade","Function","renderMarkdownPath","uploadsPath","uploads_path","enableContentEditor","formFieldProps","autofocus","enableAutocomplete","autocompleteDataSources","supportsQuickActions","autosaveKey","markdownDocsPath","drawioEnabled","disabled","disableAttachments","codeSuggestionsConfig","noteableType","restrictedToolBarItems","restoreFromAutosave","data","_window$gon","editingMode","gon","text_editor","EDITING_MODE_CONTENT_EDITOR","EDITING_MODE_MARKDOWN_FIELD","$options","EDITING_MODE_KEY","autosaveValue","getDraft","alert","markdown","autofocused","computed","isContentEditorActive","contentEditorAutofocused","markdownFieldRestrictedToolBarItems","restrictAttachments","isDefaultEditorEnabled","_window$gon2","includes","_this$setFacade","autofocusTextarea","saveDraft","getValue","setValue","eventHub","$on","CLEAR_AUTOSAVE_ENTRY_EVENT","clearDraft","beforeDestroy","$off","updateValue","autosizeTextarea","append","_this2","focus","newValue","trim","join","$nextTick","setTemplate","template","force","_this3","dismiss","message","i18n","applyTemplateAlert","variant","primaryButtonText","secondaryButtonText","primaryAction","secondaryAction","updateMarkdownFromContentEditor","updateMarkdownFromMarkdownField","target","renderMarkdown","url","setUrlParams","render_quick_actions","joinPaths","location","origin","axios","post","then","otherData","onEditingModeChange","notifyEditingModeChange","onEditingModeRestored","_this4","componentToFocus","$refs","contentEditor","textarea","setEditorAsAutofocused","updateDraft","key","togglePreview","markdownField","previewMarkdown","_this5","Autosize","update","onKeydown","event","ctrlKey","metaKey","preventDefault","__","_vm","_c","_self","staticClass","_e","attrs","on","_v","_s","ref","placeholder","$event","scopedSlots","_u","_t","proxy","_b","domProps","canSuggest","line","lines","showPopover","$attrs","callbacks","Map","activeEventTypes","lastMousedown","globalListener","forEach","element","callback","eventTypes","originalEvent","contains","e","onMousedown","OutsideDirective","bind","bindings","_ref3","arg","modifiers","modifiersList","keys","parseBinding","has","set","eventType","addEventListener","capture","add","startListening","unbind","entry","get","eventTypesToUnbind","delete","values","removeEventListener","ROOT_ACTION_EVENT_NAME_SHOW","PROPERTY","getTarget","reverse","getTriggerElement","setRole","trigger","tagName","oldProp","handler","componentUpdated","binding","vnode","currentTarget","keyCode","VBModal","inserted","updated","h","Ue","Qt","defineProperty","Zt","defineProperties","er","getOwnPropertyDescriptors","Z","getOwnPropertySymbols","Le","hasOwnProperty","Me","propertyIsEnumerable","Oe","Math","pow","Be","C","T","enumerable","configurable","writable","D","L","E","N","M","z","R","W","next","j","O","throw","done","charCodeAt","Int32Array","r","n","ae","Uint8Array","a","s","o","ee","F","ze","se","Xe","te","ie","X","re","k","q","className","ce","V","style","Qe","_","G","le","at","A","lt","createElement","toDataURL","ne","startsWith","ue","match","protocol","Y","implementation","createHTMLDocument","head","appendChild","href","ownerDocument","J","fe","createElementNS","setAttributeNS","de","XMLSerializer","serializeToString","encodeURIComponent","ut","toBlob","Error","quality","l","split","atob","u","Blob","ft","me","FileReader","onload","result","onerror","onabort","readAsDataURL","readAsArrayBuffer","dt","U","decoding","loading","src","onError","clearTimeout","c","currentSrc","poster","readyState","f","d","m","once","baseVal","decode","dataset","originalSrc","complete","ge","all","from","querySelectorAll","he","random","we","toLowerCase","gt","time","it","timeEnd","ct","ht","cache","x","Ge","pe","autoDestruct","w","b","g","scale","workerUrl","workerNumber","debug","features","defaultView","backgroundColor","maximumCanvasSize","progress","fetch","requestInit","bypassingCache","placeholderImage","fetchFn","font","drawImageInterval","onCloneNode","onEmbedNode","onCreateForeignObjectSvg","includeStyleProperties","__CONTEXT__","log","ownerWindow","dpi","svgStyleElement","ye","svgDefsElement","svgStyles","defaultComputedStyles","workers","S","Worker","onmessage","y","P","Q","$e","v","I","reject","onmessageerror","fontFamilies","fontCssTexts","acceptOfImage","requests","drawImageCount","tasks","isEnable","getAttribute","wt","pt","canvas","context2d","floor","getContext","fillStyle","fillRect","yt","drawImage","bt","St","be","nodeName","sandbox","id","visibility","write","namespaceURI","textContent","getComputedStyle","getPropertyValue","removeChild","Se","getPropertyPriority","lastIndexOf","substring","Et","Ct","Ee","cloneNode","putImageData","getImageData","xt","et","st","oe","Nt","srcset","kt","crossOrigin","currentTime","offsetWidth","offsetHeight","It","Ce","Te","rt","nt","currentParentNodeStyle","currentNodeStyle","transform","DOMMatrix","translateSelf","Dt","ve","shadowRoot","firstChild","nextSibling","assignedNodes","Pt","Ze","getAttributeNames","removeAttribute","classList","scrollWidth","clientWidth","setProperty","At","Rt","scrollHeight","clientHeight","Tt","innerHTML","tt","ot","setAttribute","vt","Ae","Ft","responseType","indexOf","We","AbortController","abort","signal","ok","cause","blob","finally","H","requestType","imageDom","RegExp","Date","getTime","headers","accept","response","postMessage","rawUrl","catch","Ne","Ie","ke","Ut","$t","cssText","De","styleSheets","cssRules","constructor","name","Je","Bt","xe","exec","lastIndex","Lt","insertRule","rule","Ye","some","parentStyleSheet","Mt","Ot","preferredFormat","jt","Re","Wt","Ke","querySelector","insertAdjacentHTML","Vt","qt","Pe","pop","Ht","insertBefore","children","K","B","He","ceil","btoa","fromCharCode","Fe","createContext","destroyContext","domToBlob","mt","domToCanvas","domToDataUrl","domToForeignObjectSvg","domToImage","domToJpeg","domToPixel","domToPng","domToSvg","domToWebp","loadMedia","waitUntilLoad","Symbol","toStringTag","a0","DEFAULT_CALLBACKS","KEY_CODE","App","ESC","TAB","ENTER","CTRL","LEFT","UP","RIGHT","DOWN","BACKSPACE","SPACE","beforeSave","Controller","arrayToDefaultHash","matcher","flag","subtext","should_startWithSpace","acceptSpaceBar","_a","_y","decodeURI","query","searchKey","remoteFilter","sorter","atwho_order","sort","tplEval","tpl","tag","error1","highlighter","li","regexp","str","$1","$2","$3","beforeInsert","$li","beforeReposition","afterMatchFailed","currentFlag","controllers","aliasMaps","setupRootElement","listen","createContainer","doc","$el","asRoot","parentWindow","frameElement","atwho","iframeAsRoot","controller","current","setContextFor","reg","setting","base","is","EditableController","TextareaController","alias","init","view","hide","isComposing","dispatch","onKeyup","expectedQueryCBId","getOpt","lastScrollTop","currentScrollTop","shutdown","destroy","off","results","lookUp","noop","visible","prev","highlighted","choose","app","at1","uid","model","Model","View","substr","extend","reload","callDefault","args","funcName","eventName","default_value","insertContentFor","renderView","wait","catchQuery","_delayLookUp","_lookUp","now","remaining","previousCallTime","_stopDelayedCall","delayedCallTimeout","_generateQueryCBId","_callback","queryCBId","Api","child","hasProp","ctor","__super__","superClass","caretPos","content","end","isString","start","iframeOffset","scaleBottom","insert","source","startStr","suffix","max","headPos","change","_getRange","_setRange","setEndAfter","setStartAfter","setEndBefore","setStartBefore","_clearRange","ctrl_a_pressed","_movingEvent","which","_unwrap","unwrap","nodeValue","$inserted","$query","_range","index","lastNode","matched","query_content","collapsed","startContainer","closest","contents","last","ELEMENT_NODE","startOffset","cloneContents","TEXT_NODE","previousSibling","addClass","siblings","removeClass","attr","empty","surroundContents","hasClass","first","getClientRects","overrides","suffixNode","context","storage","saved","_remoteFilter","save","load","_load","$elUl","timeoutID","bindEvent","header_tpl","prepend","$menu","lastCoordX","lastCoordY","$cur","clientX","clientY","expr","filters","stopShowing","reposition","_window","overflowOffset","nextEl","offsetTop","prevEl","show","isNaN","list","$ul","isSelecting","setIframe","run","_args","$this","displayTpl","insertTpl","headerTpl","functionOverrides","hideWithoutSuffix","startWithSpace","highlightFirst","limit","maxLen","minLen","displayTimeout","delay","spaceSelectsMatch","tabSelectsMatch","editableAtwhoQueryAttrs","scrollDuration","suspendOnComposing","lookUpOnClick","GL_DROPDOWN_SHOWN","GL_DROPDOWN_HIDDEN","GL_DROPDOWN_BEFORE_CLOSE","GL_DROPDOWN_FOCUS_CONTENT","ARROW_DOWN","ARROW_UP","END","HOME","POSITION_ABSOLUTE","POSITION_FIXED","GL_DROPDOWN_CONTENTS_CLASS","getWindow","_node$ownerDocument","getComputedStyle$1","isNode","Node","getNodeName","isHTMLElement","HTMLElement","isElement","Element","isShadowRoot","ShadowRoot","isOverflowElement","overflow","overflowX","overflowY","display","isTableElement","isContainingBlock","safari","isSafari","perspective","containerType","backdropFilter","willChange","contain","CSS","supports","isLastTraversableNode","min","round","createEmptyCoords","getCssDimensions","parseFloat","hasOffset","shouldFallback","unwrapElement","contextElement","getScale","domElement","isFinite","noOffsets","getVisualOffsets","isFixed","floatingOffsetParent","_win$visualViewport","_win$visualViewport2","win","visualViewport","offsetLeft","includeScale","isFixedStrategy","offsetParent","clientRect","visualOffsets","offsetWin","currentIFrame","iframeScale","iframeRect","clientLeft","paddingLeft","clientTop","paddingTop","getDocumentElement","documentElement","getNodeScroll","pageXOffset","pageYOffset","getWindowScrollBarX","getParentNode","assignedSlot","parentNode","host","getOverflowAncestors","scrollableAncestor","getNearestOverflowAncestor","isBody","concat","getClientRectFromClippingAncestor","clippingAncestor","strategy","visualViewportBased","getViewportRect","scroll","direction","getDocumentRect","getInnerBoundingClientRect","hasFixedPositionAncestor","stopNode","getTrueOffsetParent","polyfill","getOffsetParent","currentNode","getContainingBlock","getRectRelativeToOffsetParent","isOffsetParentAnElement","offsets","offsetRect","platform","getClippingRect","boundary","rootBoundary","clippingAncestors","cachedResult","currentContainingBlockComputedStyle","elementIsFixed","computedStyle","currentNodeIsContaining","ancestor","getClippingElementAncestors","firstClippingAncestor","clippingRect","reduce","accRect","right","convertOffsetParentRelativeRectToViewportRelativeRect","getDimensions","reference","floating","getOffsetParentFn","getDimensionsFn","isRTL","autoUpdate","ancestorScroll","ancestorResize","elementResize","ResizeObserver","layoutShift","IntersectionObserver","animationFrame","referenceEl","ancestors","passive","cleanupIo","onMove","timeoutId","io","cleanup","disconnect","refresh","skip","threshold","rootMargin","isFirstUpdate","handleObserve","entries","ratio","intersectionRatio","observe","observeMove","frameId","reobserveFrame","resizeObserver","firstEntry","unobserve","cancelAnimationFrame","requestAnimationFrame","prevRefRect","frameLoop","nextRefRect","computePosition","mergedOptions","platformWithCache","sides","alignments","placements","acc","side","oppositeSideMap","oppositeAlignmentMap","clamp","evaluate","param","getSide","placement","getAlignment","getOppositeAxis","axis","getAxisLength","getSideAxis","getAlignmentAxis","getAlignmentSides","rects","rtl","alignment","alignmentAxis","mainAlignmentSide","getOppositePlacement","getExpandedPlacements","oppositePlacement","getOppositeAlignmentPlacement","getOppositeAxisPlacements","flipAlignment","isStart","lr","rl","tb","getSideList","getPaddingObject","padding","expandPaddingObject","rectToClientRect","Dropzone","autoDiscover","ZenMode","active_backdrop","active_textarea","storedStyle","enter","exit","backdrop","Mousetrap","pause","removeAttr","unpause","scrollToElement","duration","autosize","$dropzone","forElement","enable","__vue_script__","GlClearIconButton","GlIcon","$listeners","input","focusInput","_h","$createElement","_g","inputListeners","stopPropagation","clearInput","textSrOnly","nameId","class","GROUP_TOP_BORDER_CLASSES","HEADER_ITEMS_BORDER_CLASSES","events","GlBaseDropdown","GlListboxItem","GlListboxGroup","GlButton","GlSearchBoxByType","GlListboxSearchInput","GlLoadingIcon","GlIntersectionObserver","validator","selected","multiple","toggleText","headerText","category","primary","icon","toggleClass","noCaret","isCheckCentered","toggleAriaLabelledBy","listAriaLabelledBy","searchable","searching","infiniteScroll","totalItems","infiniteScrollLoading","noResultsText","searchPlaceholder","resetButtonLabel","showSelectAllButtonLabel","block","dropdownOffset","fluidWidth","positioningStrategy","startOpened","srOnlyResultsLabel","selectedValues","toggleId","listboxId","nextFocusedItemIndex","searchStr","topBoundaryVisible","bottomBoundaryVisible","hasItems","listboxTag","_this$flattenedOption","findIndex","showNoResultsText","showSelectAllButton","toggle","toggleClasses","hasSelection","footer","immediate","newSelected","observeScroll","open","_this$scrollObserver","scrollObserver","baseDropdown","close","groupClasses","_this$selectedIndices","focusSearchInput","focusItem","selectedIndices","getFocusableListItemElements","code","elements","stop","isSearchInput","matches","focusNextItem","_this$$refs$list","currentIndex","nextIndex","_elements$index","searchBox","isSelected","onMultiSelect","onSingleSelect","closeAndFocus","selectedValue","searchTerm","_this$scrollObserver2","observer","_entry$target","$__visibilityProp","isIntersecting","topBoundary","bottomBoundary","listboxToggleText","toggleButtonClasses","_d","onShow","onHide","headerId","onResetButtonClicked","onSelectAllButtonClicked","search","_k","$$v","expression","listboxClasses","itemTag","hasHeader","_l","isFocused","onSelect","listboxItemMoreItemsAriaAttributes","option","onIntersectionObserverAppear","hasFooter","getObserver","$_gl_intersectionHandler","$_gl_intersectionObserver","__vue_component__","GlFormInput","inheritAttrs","borderless","clearButtonTitle","isLoading","tooltipContainer","attributes","onInput","focusin","onFocusin","focusout","onFocusout","hasValue","_this$$refs$input","_this$$refs$clearButt","clearButton","relatedTarget","isInputOrClearButton","inputAttributes","showClearButton","MR_SOURCE_BRANCH","isFallbackKey","organizeQueryObject","obj","organizeQuery","queryToObject","legacySpacesDecode","objectToQuery","mountMarkdownEditor","_el$dataset$supportsQ","_el$dataset$enableAut","_el$dataset$disableAt","_el$dataset$autofocus","componentConfiguration","provide","quickActionsDocsPath","formFieldPlaceholder","formFieldClasses","testid","newIssuePath","parseBoolean","hiddenInput","formFieldName","formFieldId","formFieldValue","pathname","getSearchTerm","facade","assign","apolloProvider","VueApollo","defaultClient","createApolloClient","Vue","_gl$GfmAutoComplete","MarkdownEditor","gl","GfmAutoComplete","dataSources","resetAutosaveButtons","resetAutosaveButton","mountAutosaveClearOnSubmit","BASE_DROPDOWN_CLASS","directives","Outside","ariaHaspopup","ariaLabelledby","mainAxis","openedYet","baseDropdownId","_this$toggleText","hasNoVisibleToggleText","isIconOnly","toggleLabelledBy","isEllipsisButton","isCaretOnly","isDefaultToggle","buttonTextClasses","toggleButtonTextClasses","ariaAttributes","listeners","keydown","click","toggleOptions","_this$$refs$toggle","firstElementChild","middleware","allowedPlacements","_this$nonScrollableCo","availableHeight","contentsEl","contentsAvailableHeight","nonScrollableContentHeight","maxHeight","deep","toggleElement","checkToggleFocusable","stopFloating","calculateNonScrollableAreaHeight","MutationObserver","childList","subtree","stopAutoUpdate","floatingUIConfig","_this$observer","_this$stopAutoUpdate","prevented","startFloating","hadFocusWithin","activeElement","hasToggled","focusToggle","toggleOnEnter","toggleOnSpace","_this$$refs$content","scrollableArea","floatingElementBoundingBox","scrollableAreaBoundingBox","rawName","toggleComponent","toggleAttributes","toggleListeners","panelClasses","getFocusableOptions","_this$$refs$resultsLi","resultsList","HOME_KEY","END_KEY","ARROW_UP_KEY","ARROW_DOWN_KEY","ESC_KEY","modal","NUMPAD_ENTER_KEY","_event$target","_this$$refs$searchInp","searchInput","_clamp","computeCoordsFromPlacement","sideAxis","alignLength","isVertical","commonX","commonY","commonAlign","coords","config","validMiddleware","getElementRects","statefulPlacement","middlewareData","resetCount","nextX","nextY","reset","initialPlacement","detectOverflow","state","_await$platform$isEle","elementContext","altBoundary","paddingObject","clippingClientRect","offsetScale","elementClientRect","arrow","arrowDimensions","isYAxis","minProp","maxProp","clientProp","endDiff","startDiff","arrowOffsetParent","clientSize","centerToReference","largestPossiblePadding","minPadding","maxPadding","min$1","center","shouldAddOffset","alignmentOffset","centerOffset","autoPlacement","_middlewareData$autoP","_middlewareData$autoP2","_placementsThatFitOnE","crossAxis","autoAlignment","detectOverflowOptions","placements$1","getPlacementList","currentPlacement","alignmentSides","currentOverflows","allOverflows","overflows","nextPlacement","placementsSortedByMostSpace","resetPlacement","flip","_middlewareData$arrow","_middlewareData$flip","checkMainAxis","checkCrossAxis","fallbackPlacements","specifiedFallbackPlacements","fallbackStrategy","fallbackAxisSideDirection","initialSideAxis","isBasePlacement","hasFallbackAxisSideDirection","overflowsData","_middlewareData$flip2","_overflowsData$filter","_overflowsData$filter2","currentSideAxis","getSideOffsets","isAnySideFullyClipped","referenceHiddenOffsets","referenceHidden","escapedOffsets","escaped","getBoundingRect","minX","minY","inline","nativeClientRects","clientRects","sortedRects","groups","prevRect","getRectsByLine","fallback","resetRects","firstRect","lastRect","isTop","isLeftSide","maxRight","minLeft","measureRects","_middlewareData$offse","diffCoords","mainAxisMulti","crossAxisMulti","rawValue","convertValueToCoords","shift","limiter","mainAxisCoord","crossAxisCoord","maxSide","limitedCoords","enabled","limitShift","rawOffset","computedOffset","limitMin","limitMax","_middlewareData$offse2","isOriginSide","_state$middlewareData","_state$middlewareData2","heightSide","widthSide","maximumClippingHeight","maximumClippingWidth","overflowAvailableHeight","overflowAvailableWidth","noShift","availableWidth","xMin","xMax","yMin","yMax","nextDimensions","toggleSelection","checkedClasses"],"mappings":"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","file":"commons-pages.admin.topics.edit-pages.admin.topics.new-pages.groups.milestones.edit-pages.groups.mil-6d182b4e.6c901824.chunk.js","sourcesContent":["var baseClamp = require('./_baseClamp'),\n toNumber = require('./toNumber');\n\n/**\n * Clamps `number` within the inclusive `lower` and `upper` bounds.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Number\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n * @example\n *\n * _.clamp(-10, -5, 5);\n * // => -5\n *\n * _.clamp(10, -5, 5);\n * // => 5\n */\nfunction clamp(number, lower, upper) {\n if (upper === undefined) {\n upper = lower;\n lower = undefined;\n }\n if (upper !== undefined) {\n upper = toNumber(upper);\n upper = upper === upper ? upper : 0;\n }\n if (lower !== undefined) {\n lower = toNumber(lower);\n lower = lower === lower ? lower : 0;\n }\n return baseClamp(toNumber(number), lower, upper);\n}\n\nmodule.exports = clamp;\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","/**\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","/**\n * The base implementation of `_.clamp` which doesn't coerce arguments.\n *\n * @private\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n */\nfunction baseClamp(number, lower, upper) {\n if (number === number) {\n if (upper !== undefined) {\n number = number <= upper ? number : upper;\n }\n if (lower !== undefined) {\n number = number >= lower ? number : lower;\n }\n }\n return number;\n}\n\nmodule.exports = baseClamp;\n","(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define([\"jquery\"], function ($) {\n return (root.returnExportsGlobal = factory($));\n });\n } else if (typeof exports === 'object') {\n // Node. Does not work with strict CommonJS, but\n // only CommonJS-like enviroments that support module.exports,\n // like Node.\n module.exports = factory(require(\"jquery\"));\n } else {\n factory(jQuery);\n }\n}(this, function ($) {\n\n/*\n Implement Github like autocomplete mentions\n http://ichord.github.com/At.js\n\n Copyright (c) 2013 chord.luo@gmail.com\n Licensed under the MIT license.\n*/\n\n/*\n本插件操作 textarea 或者 input 内的插入符\n只实现了获得插入符在文本框中的位置,我设置\n插入符的位置.\n*/\n\n\"use strict\";\nvar EditableCaret, InputCaret, Mirror, Utils, discoveryIframeOf, methods, oDocument, oFrame, oWindow, pluginName, setContextBy;\n\npluginName = 'caret';\n\nEditableCaret = (function() {\n function EditableCaret($inputor) {\n this.$inputor = $inputor;\n this.domInputor = this.$inputor[0];\n }\n\n EditableCaret.prototype.setPos = function(pos) {\n var fn, found, offset, sel;\n if (sel = oWindow.getSelection()) {\n offset = 0;\n found = false;\n (fn = function(pos, parent) {\n var node, range, _i, _len, _ref, _results;\n _ref = parent.childNodes;\n _results = [];\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n node = _ref[_i];\n if (found) {\n break;\n }\n if (node.nodeType === 3) {\n if (offset + node.length >= pos) {\n found = true;\n range = oDocument.createRange();\n range.setStart(node, pos - offset);\n sel.removeAllRanges();\n sel.addRange(range);\n break;\n } else {\n _results.push(offset += node.length);\n }\n } else {\n _results.push(fn(pos, node));\n }\n }\n return _results;\n })(pos, this.domInputor);\n }\n return this.domInputor;\n };\n\n EditableCaret.prototype.getIEPosition = function() {\n return this.getPosition();\n };\n\n EditableCaret.prototype.getPosition = function() {\n var inputor_offset, offset;\n offset = this.getOffset();\n inputor_offset = this.$inputor.offset();\n offset.left -= inputor_offset.left;\n offset.top -= inputor_offset.top;\n return offset;\n };\n\n EditableCaret.prototype.getOldIEPos = function() {\n var preCaretTextRange, textRange;\n textRange = oDocument.selection.createRange();\n preCaretTextRange = oDocument.body.createTextRange();\n preCaretTextRange.moveToElementText(this.domInputor);\n preCaretTextRange.setEndPoint(\"EndToEnd\", textRange);\n return preCaretTextRange.text.length;\n };\n\n EditableCaret.prototype.getPos = function() {\n var clonedRange, pos, range;\n if (range = this.range()) {\n clonedRange = range.cloneRange();\n clonedRange.selectNodeContents(this.domInputor);\n clonedRange.setEnd(range.endContainer, range.endOffset);\n pos = clonedRange.toString().length;\n clonedRange.detach();\n return pos;\n } else if (oDocument.selection) {\n return this.getOldIEPos();\n }\n };\n\n EditableCaret.prototype.getOldIEOffset = function() {\n var range, rect;\n range = oDocument.selection.createRange().duplicate();\n range.moveStart(\"character\", -1);\n rect = range.getBoundingClientRect();\n return {\n height: rect.bottom - rect.top,\n left: rect.left,\n top: rect.top\n };\n };\n\n EditableCaret.prototype.getOffset = function(pos) {\n var clonedRange, offset, range, rect, shadowCaret;\n if (oWindow.getSelection && (range = this.range())) {\n if (range.endOffset - 1 > 0 && range.endContainer !== this.domInputor) {\n clonedRange = range.cloneRange();\n clonedRange.setStart(range.endContainer, range.endOffset - 1);\n clonedRange.setEnd(range.endContainer, range.endOffset);\n rect = clonedRange.getBoundingClientRect();\n offset = {\n height: rect.height,\n left: rect.left + rect.width,\n top: rect.top\n };\n clonedRange.detach();\n }\n if (!offset || (offset != null ? offset.height : void 0) === 0) {\n clonedRange = range.cloneRange();\n shadowCaret = $(oDocument.createTextNode(\"|\"));\n clonedRange.insertNode(shadowCaret[0]);\n clonedRange.selectNode(shadowCaret[0]);\n rect = clonedRange.getBoundingClientRect();\n offset = {\n height: rect.height,\n left: rect.left,\n top: rect.top\n };\n shadowCaret.remove();\n clonedRange.detach();\n }\n } else if (oDocument.selection) {\n offset = this.getOldIEOffset();\n }\n if (offset) {\n offset.top += $(oWindow).scrollTop();\n offset.left += $(oWindow).scrollLeft();\n }\n return offset;\n };\n\n EditableCaret.prototype.range = function() {\n var sel;\n if (!oWindow.getSelection) {\n return;\n }\n sel = oWindow.getSelection();\n if (sel.rangeCount > 0) {\n return sel.getRangeAt(0);\n } else {\n return null;\n }\n };\n\n return EditableCaret;\n\n})();\n\nInputCaret = (function() {\n function InputCaret($inputor) {\n this.$inputor = $inputor;\n this.domInputor = this.$inputor[0];\n }\n\n InputCaret.prototype.getIEPos = function() {\n var endRange, inputor, len, normalizedValue, pos, range, textInputRange;\n inputor = this.domInputor;\n range = oDocument.selection.createRange();\n pos = 0;\n if (range && range.parentElement() === inputor) {\n normalizedValue = inputor.value.replace(/\\r\\n/g, \"\\n\");\n len = normalizedValue.length;\n textInputRange = inputor.createTextRange();\n textInputRange.moveToBookmark(range.getBookmark());\n endRange = inputor.createTextRange();\n endRange.collapse(false);\n if (textInputRange.compareEndPoints(\"StartToEnd\", endRange) > -1) {\n pos = len;\n } else {\n pos = -textInputRange.moveStart(\"character\", -len);\n }\n }\n return pos;\n };\n\n InputCaret.prototype.getPos = function() {\n if (oDocument.selection) {\n return this.getIEPos();\n } else {\n return this.domInputor.selectionStart;\n }\n };\n\n InputCaret.prototype.setPos = function(pos) {\n var inputor, range;\n inputor = this.domInputor;\n if (oDocument.selection) {\n range = inputor.createTextRange();\n range.move(\"character\", pos);\n range.select();\n } else if (inputor.setSelectionRange) {\n inputor.setSelectionRange(pos, pos);\n }\n return inputor;\n };\n\n InputCaret.prototype.getIEOffset = function(pos) {\n var h, textRange, x, y;\n textRange = this.domInputor.createTextRange();\n pos || (pos = this.getPos());\n textRange.move('character', pos);\n x = textRange.boundingLeft;\n y = textRange.boundingTop;\n h = textRange.boundingHeight;\n return {\n left: x,\n top: y,\n height: h\n };\n };\n\n InputCaret.prototype.getOffset = function(pos) {\n var $inputor, offset, position;\n $inputor = this.$inputor;\n if (oDocument.selection) {\n offset = this.getIEOffset(pos);\n offset.top += $(oWindow).scrollTop() + $inputor.scrollTop();\n offset.left += $(oWindow).scrollLeft() + $inputor.scrollLeft();\n return offset;\n } else {\n offset = $inputor.offset();\n position = this.getPosition(pos);\n return offset = {\n left: offset.left + position.left - $inputor.scrollLeft(),\n top: offset.top + position.top - $inputor.scrollTop(),\n height: position.height\n };\n }\n };\n\n InputCaret.prototype.getPosition = function(pos) {\n var $inputor, at_rect, end_range, format, html, mirror, start_range;\n $inputor = this.$inputor;\n format = function(value) {\n value = value.replace(/<|>|`|\"|&/g, '?').replace(/\\r\\n|\\r|\\n/g, \"<br/>\");\n if (/firefox/i.test(navigator.userAgent)) {\n value = value.replace(/\\s/g, ' ');\n }\n return value;\n };\n if (pos === void 0) {\n pos = this.getPos();\n }\n start_range = $inputor.val().slice(0, pos);\n end_range = $inputor.val().slice(pos);\n html = \"<span style='position: relative; display: inline;'>\" + format(start_range) + \"</span>\";\n html += \"<span id='caret' style='position: relative; display: inline;'>|</span>\";\n html += \"<span style='position: relative; display: inline;'>\" + format(end_range) + \"</span>\";\n mirror = new Mirror($inputor);\n return at_rect = mirror.create(html).rect();\n };\n\n InputCaret.prototype.getIEPosition = function(pos) {\n var h, inputorOffset, offset, x, y;\n offset = this.getIEOffset(pos);\n inputorOffset = this.$inputor.offset();\n x = offset.left - inputorOffset.left;\n y = offset.top - inputorOffset.top;\n h = offset.height;\n return {\n left: x,\n top: y,\n height: h\n };\n };\n\n return InputCaret;\n\n})();\n\nMirror = (function() {\n Mirror.prototype.css_attr = [\"borderBottomWidth\", \"borderLeftWidth\", \"borderRightWidth\", \"borderTopStyle\", \"borderRightStyle\", \"borderBottomStyle\", \"borderLeftStyle\", \"borderTopWidth\", \"boxSizing\", \"fontFamily\", \"fontSize\", \"fontWeight\", \"height\", \"letterSpacing\", \"lineHeight\", \"marginBottom\", \"marginLeft\", \"marginRight\", \"marginTop\", \"outlineWidth\", \"overflow\", \"overflowX\", \"overflowY\", \"paddingBottom\", \"paddingLeft\", \"paddingRight\", \"paddingTop\", \"textAlign\", \"textOverflow\", \"textTransform\", \"whiteSpace\", \"wordBreak\", \"wordWrap\"];\n\n function Mirror($inputor) {\n this.$inputor = $inputor;\n }\n\n Mirror.prototype.mirrorCss = function() {\n var css,\n _this = this;\n css = {\n position: 'absolute',\n left: -9999,\n top: 0,\n zIndex: -20000\n };\n if (this.$inputor.prop('tagName') === 'TEXTAREA') {\n this.css_attr.push('width');\n }\n $.each(this.css_attr, function(i, p) {\n return css[p] = _this.$inputor.css(p);\n });\n return css;\n };\n\n Mirror.prototype.create = function(html) {\n this.$mirror = $('<div></div>');\n this.$mirror.css(this.mirrorCss());\n this.$mirror.html(html);\n this.$inputor.after(this.$mirror);\n return this;\n };\n\n Mirror.prototype.rect = function() {\n var $flag, pos, rect;\n $flag = this.$mirror.find(\"#caret\");\n pos = $flag.position();\n rect = {\n left: pos.left,\n top: pos.top,\n height: $flag.height()\n };\n this.$mirror.remove();\n return rect;\n };\n\n return Mirror;\n\n})();\n\nUtils = {\n contentEditable: function($inputor) {\n return !!($inputor[0].contentEditable && $inputor[0].contentEditable === 'true');\n }\n};\n\nmethods = {\n pos: function(pos) {\n if (pos || pos === 0) {\n return this.setPos(pos);\n } else {\n return this.getPos();\n }\n },\n position: function(pos) {\n if (oDocument.selection) {\n return this.getIEPosition(pos);\n } else {\n return this.getPosition(pos);\n }\n },\n offset: function(pos) {\n var offset;\n offset = this.getOffset(pos);\n return offset;\n }\n};\n\noDocument = null;\n\noWindow = null;\n\noFrame = null;\n\nsetContextBy = function(settings) {\n var iframe;\n if (iframe = settings != null ? settings.iframe : void 0) {\n oFrame = iframe;\n oWindow = iframe.contentWindow;\n return oDocument = iframe.contentDocument || oWindow.document;\n } else {\n oFrame = void 0;\n oWindow = window;\n return oDocument = document;\n }\n};\n\ndiscoveryIframeOf = function($dom) {\n var error;\n oDocument = $dom[0].ownerDocument;\n oWindow = oDocument.defaultView || oDocument.parentWindow;\n try {\n return oFrame = oWindow.frameElement;\n } catch (_error) {\n error = _error;\n }\n};\n\n$.fn.caret = function(method, value, settings) {\n var caret;\n if (methods[method]) {\n if ($.isPlainObject(value)) {\n setContextBy(value);\n value = void 0;\n } else {\n setContextBy(settings);\n }\n caret = Utils.contentEditable(this) ? new EditableCaret(this) : new InputCaret(this);\n return methods[method].apply(caret, [value]);\n } else {\n return $.error(\"Method \" + method + \" does not exist on jQuery.caret\");\n }\n};\n\n$.fn.caret.EditableCaret = EditableCaret;\n\n$.fn.caret.InputCaret = InputCaret;\n\n$.fn.caret.Utils = Utils;\n\n$.fn.caret.apis = methods;\n\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!./local_storage_sync.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!./local_storage_sync.vue?vue&type=script&lang=js\"","<script>\nimport { isEqual, isString } from 'lodash';\n\n/**\n * This component will save and restore a value to and from localStorage.\n * The value will be saved only when the value changes; the initial value won't be saved.\n *\n * By default, the value will be saved using JSON.stringify(), and retrieved back using JSON.parse().\n *\n * If you would like to save the raw string instead, you may set the 'asString' prop to true, though be aware that this is a\n * legacy prop to maintain backwards compatibility.\n *\n * For new components saving data for the first time, it's recommended to not use 'asString' even if you're saving a string; it will still be\n * saved and restored properly using JSON.stringify()/JSON.parse().\n */\nexport default {\n props: {\n storageKey: {\n type: String,\n required: true,\n },\n value: {\n type: [String, Number, Boolean, Array, Object],\n required: false,\n default: '',\n },\n asString: {\n type: Boolean,\n required: false,\n default: false,\n },\n persist: {\n type: Boolean,\n required: false,\n default: true,\n },\n clear: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n watch: {\n value(newVal) {\n if (!this.persist) return;\n\n this.saveValue(this.serialize(newVal));\n },\n clear(newVal) {\n if (newVal) {\n localStorage.removeItem(this.storageKey);\n }\n },\n },\n mounted() {\n // On mount, trigger update if we actually have a localStorageValue\n const { exists, value } = this.getStorageValue();\n\n if (exists && !isEqual(value, this.value)) {\n this.$emit('input', value);\n }\n },\n methods: {\n getStorageValue() {\n const value = localStorage.getItem(this.storageKey);\n\n if (value === null) {\n return { exists: false };\n }\n\n try {\n return { exists: true, value: this.deserialize(value) };\n } catch {\n // eslint-disable-next-line no-console\n console.warn(\n `[gitlab] Failed to deserialize value from localStorage (key=${this.storageKey})`,\n value,\n );\n // default to \"don't use localStorage value\"\n return { exists: false };\n }\n },\n saveValue(val) {\n localStorage.setItem(this.storageKey, val);\n },\n serialize(val) {\n if (!isString(val) && this.asString) {\n // eslint-disable-next-line no-console\n console.warn(\n `[gitlab] LocalStorageSync is saving`,\n val,\n `to the key \"${this.storageKey}\", but it is not a string and the 'asString' prop is true. This will save and restore the stringified value rather than the original value. If this is not intended, please remove or set the 'asString' prop to false.`,\n );\n }\n\n return this.asString ? val : JSON.stringify(val);\n },\n deserialize(val) {\n return this.asString ? val : JSON.parse(val);\n },\n },\n render() {\n return this.$scopedSlots.default?.();\n },\n};\n</script>\n","var render, staticRenderFns\nimport script from \"./local_storage_sync.vue?vue&type=script&lang=js\"\nexport * from \"./local_storage_sync.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:\"md-area-wrapper gl-rounded-lg !gl-px-0\"},[(!_vm.isDefaultEditorEnabled)?_c('local-storage-sync',{attrs:{\"value\":_vm.editingMode,\"as-string\":\"\",\"storage-key\":_vm.$options.EDITING_MODE_KEY},on:{\"input\":_vm.onEditingModeRestored}}):_vm._e(),_vm._v(\" \"),(_vm.alert)?_c('gl-alert',{staticClass:\"gl-mb-4\",attrs:{\"variant\":_vm.alert.variant,\"primary-button-text\":_vm.alert.primaryButtonText,\"secondary-button-text\":_vm.alert.secondaryButtonText},on:{\"primaryAction\":_vm.alert.primaryAction,\"secondaryAction\":_vm.alert.secondaryAction,\"dismiss\":_vm.alert.dismiss}},[_vm._v(\"\\n \"+_vm._s(_vm.alert.message)+\"\\n \")]):_vm._e(),_vm._v(\" \"),(!_vm.isContentEditorActive)?_c('markdown-field',_vm._b({ref:\"markdownField\",attrs:{\"data-testid\":\"markdown-field\",\"markdown-preview-path\":_vm.renderMarkdownPath,\"can-attach-file\":!_vm.disableAttachments,\"can-suggest\":_vm.codeSuggestionsConfig.canSuggest,\"line\":_vm.codeSuggestionsConfig.line,\"lines\":_vm.codeSuggestionsConfig.lines,\"show-suggest-popover\":_vm.codeSuggestionsConfig.showPopover,\"textarea-value\":_vm.markdown,\"uploads-path\":_vm.uploadsPath,\"enable-autocomplete\":_vm.enableAutocomplete,\"autocomplete-data-sources\":_vm.autocompleteDataSources,\"markdown-docs-path\":_vm.markdownDocsPath,\"supports-quick-actions\":_vm.supportsQuickActions,\"show-content-editor-switcher\":_vm.enableContentEditor,\"drawio-enabled\":_vm.drawioEnabled,\"restricted-tool-bar-items\":_vm.markdownFieldRestrictedToolBarItems,\"remove-border\":true},on:{\"enableContentEditor\":function($event){return _vm.onEditingModeChange('contentEditor')},\"handleSuggestDismissed\":() => _vm.$emit('handleSuggestDismissed')},scopedSlots:_vm._u([{key:\"header-buttons\",fn:function(){return [_vm._t(\"header-buttons\")]},proxy:true},{key:\"toolbar\",fn:function(){return [_vm._t(\"toolbar\")]},proxy:true},{key:\"textarea\",fn:function(){return [_c('textarea',_vm._b({ref:\"textarea\",staticClass:\"note-textarea js-gfm-input markdown-area\",attrs:{\"dir\":\"auto\",\"data-can-suggest\":_vm.codeSuggestionsConfig.canSuggest,\"data-noteable-type\":_vm.noteableType,\"data-supports-quick-actions\":_vm.supportsQuickActions,\"data-testid\":_vm.formFieldProps['data-testid'] || 'markdown-editor-form-field',\"disabled\":_vm.disabled},domProps:{\"value\":_vm.markdown},on:{\"input\":_vm.updateMarkdownFromMarkdownField,\"keydown\":function($event){return _vm.$emit('keydown', $event)}}},'textarea',_vm.formFieldProps,false))]},proxy:true}],null,true)},'markdown-field',_vm.$attrs,false)):_c('div',[_c('content-editor',{ref:\"contentEditor\",attrs:{\"render-markdown\":_vm.renderMarkdown,\"markdown-docs-path\":_vm.markdownDocsPath,\"uploads-path\":_vm.uploadsPath,\"markdown\":_vm.markdown,\"supports-quick-actions\":_vm.supportsQuickActions,\"autofocus\":_vm.contentEditorAutofocused,\"placeholder\":_vm.formFieldProps.placeholder,\"drawio-enabled\":_vm.drawioEnabled,\"enable-autocomplete\":_vm.enableAutocomplete,\"autocomplete-data-sources\":_vm.autocompleteDataSources,\"editable\":!_vm.disabled,\"disable-attachments\":_vm.disableAttachments,\"code-suggestions-config\":_vm.codeSuggestionsConfig,\"data-testid\":_vm.formFieldProps['data-testid'] || 'markdown-editor-form-field'},on:{\"initialized\":_vm.setEditorAsAutofocused,\"change\":_vm.updateMarkdownFromContentEditor,\"keydown\":_vm.onKeydown,\"enableMarkdownEditor\":function($event){return _vm.onEditingModeChange('markdownField')}},scopedSlots:_vm._u([{key:\"header-buttons\",fn:function(){return [_vm._t(\"header-buttons\")]},proxy:true},{key:\"toolbar\",fn:function(){return [_vm._t(\"toolbar\")]},proxy:true}],null,true)}),_vm._v(\" \"),_c('input',_vm._b({attrs:{\"type\":\"hidden\"},domProps:{\"value\":_vm.markdown}},'input',_vm.formFieldProps,false))],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport { GlAlert } from '@gitlab/ui';\nimport Autosize from 'autosize';\nimport { __ } from '~/locale';\nimport axios from '~/lib/utils/axios_utils';\nimport { updateDraft, clearDraft, getDraft } from '~/lib/utils/autosave';\nimport { setUrlParams, joinPaths } from '~/lib/utils/url_utility';\nimport LocalStorageSync from '~/vue_shared/components/local_storage_sync.vue';\nimport {\n EDITING_MODE_KEY,\n EDITING_MODE_MARKDOWN_FIELD,\n EDITING_MODE_CONTENT_EDITOR,\n CLEAR_AUTOSAVE_ENTRY_EVENT,\n} from '../../constants';\nimport MarkdownField from './field.vue';\nimport eventHub from './eventhub';\n\nasync function sleep(t = 10) {\n return new Promise((resolve) => {\n setTimeout(resolve, t);\n });\n}\n\nasync function waitFor(getEl, interval = 10, timeout = 2000) {\n if (timeout <= 0) return null;\n\n const el = getEl();\n if (el) return el;\n\n await sleep(interval);\n return waitFor(getEl, timeout - interval);\n}\n\nexport default {\n components: {\n GlAlert,\n MarkdownField,\n LocalStorageSync,\n ContentEditor: () =>\n import(\n /* webpackChunkName: 'content_editor' */ '~/content_editor/components/content_editor.vue'\n ),\n },\n props: {\n value: {\n type: String,\n required: true,\n },\n setFacade: {\n type: Function,\n required: false,\n default: null,\n },\n renderMarkdownPath: {\n type: String,\n required: true,\n },\n uploadsPath: {\n type: String,\n required: false,\n default: () => window.uploads_path || '',\n },\n enableContentEditor: {\n type: Boolean,\n required: false,\n default: true,\n },\n formFieldProps: {\n type: Object,\n required: true,\n },\n autofocus: {\n type: Boolean,\n required: false,\n default: false,\n },\n enableAutocomplete: {\n type: Boolean,\n required: false,\n default: true,\n },\n autocompleteDataSources: {\n type: Object,\n required: false,\n default: () => ({}),\n },\n supportsQuickActions: {\n type: Boolean,\n required: false,\n default: false,\n },\n autosaveKey: {\n type: String,\n required: false,\n default: null,\n },\n markdownDocsPath: {\n type: String,\n required: false,\n default: '',\n },\n drawioEnabled: {\n type: Boolean,\n required: false,\n default: false,\n },\n disabled: {\n type: Boolean,\n required: false,\n default: false,\n },\n disableAttachments: {\n type: Boolean,\n required: false,\n default: false,\n },\n codeSuggestionsConfig: {\n type: Object,\n required: false,\n default: () => ({}),\n },\n noteableType: {\n type: String,\n required: false,\n default: '',\n },\n restrictedToolBarItems: {\n type: Array,\n required: false,\n default: () => [],\n },\n restoreFromAutosave: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n data() {\n let editingMode;\n switch (window.gon?.text_editor) {\n case 'rich_text_editor':\n editingMode = EDITING_MODE_CONTENT_EDITOR;\n break;\n case 'plain_text_editor':\n editingMode = EDITING_MODE_MARKDOWN_FIELD;\n break;\n default:\n editingMode =\n localStorage.getItem(this.$options.EDITING_MODE_KEY) || EDITING_MODE_MARKDOWN_FIELD;\n }\n\n const autosaveValue = this.autosaveKey ? getDraft(this.autosaveKey) : '';\n const initialValue = this.restoreFromAutosave ? autosaveValue : this.value;\n\n return {\n alert: null,\n markdown: initialValue || autosaveValue || '',\n editingMode,\n autofocused: false,\n };\n },\n computed: {\n isContentEditorActive() {\n return this.enableContentEditor && this.editingMode === EDITING_MODE_CONTENT_EDITOR;\n },\n contentEditorAutofocused() {\n // Match textarea focus behavior\n return this.autofocus && !this.autofocused ? 'end' : false;\n },\n markdownFieldRestrictedToolBarItems() {\n const restrictAttachments = this.disableAttachments ? ['attach-file'] : [];\n\n return [...this.restrictedToolBarItems, ...restrictAttachments];\n },\n isDefaultEditorEnabled() {\n return ['plain_text_editor', 'rich_text_editor'].includes(window.gon?.text_editor);\n },\n },\n watch: {\n value: 'updateValue',\n },\n mounted() {\n this.autofocusTextarea();\n\n this.$emit('input', this.markdown);\n this.saveDraft();\n\n this.setFacade?.({\n getValue: () => this.getValue(),\n setValue: (val) => this.setValue(val),\n });\n\n eventHub.$on(CLEAR_AUTOSAVE_ENTRY_EVENT, this.clearDraft);\n },\n beforeDestroy() {\n eventHub.$off(CLEAR_AUTOSAVE_ENTRY_EVENT, this.clearDraft);\n },\n methods: {\n getValue() {\n return this.markdown;\n },\n setValue(value) {\n this.$emit('input', value);\n this.updateValue(value);\n },\n updateValue(value) {\n this.markdown = value;\n this.saveDraft();\n this.autosizeTextarea();\n },\n append(value) {\n if (!value) {\n this.focus();\n return;\n }\n const newValue = [this.markdown.trim(), value].filter(Boolean).join('\\n\\n');\n this.updateValue(`${newValue}\\n\\n`);\n this.$nextTick(() => {\n this.focus();\n });\n },\n setTemplate(template, force = false) {\n if (!this.markdown || force) {\n this.setValue(template);\n } else {\n const dismiss = () => {\n this.alert = null;\n };\n this.alert = {\n message: this.$options.i18n.applyTemplateAlert.message,\n variant: 'warning',\n primaryButtonText: this.$options.i18n.applyTemplateAlert.primaryButtonText,\n secondaryButtonText: this.$options.i18n.applyTemplateAlert.secondaryButtonText,\n primaryAction: () => {\n this.setValue(template, true);\n dismiss();\n },\n secondaryAction: dismiss,\n dismiss,\n };\n }\n },\n updateMarkdownFromContentEditor({ markdown }) {\n this.markdown = markdown;\n this.$emit('input', markdown);\n\n this.saveDraft();\n },\n updateMarkdownFromMarkdownField({ target }) {\n this.markdown = target.value;\n this.$emit('input', target.value);\n\n this.saveDraft();\n },\n renderMarkdown(markdown) {\n const url = setUrlParams(\n { render_quick_actions: this.supportsQuickActions },\n joinPaths(window.location.origin, this.renderMarkdownPath),\n );\n return axios\n .post(url, { text: markdown })\n .then(({ data: { html, body, ...otherData } = {} } = {}) => ({\n body: body || html,\n ...otherData,\n }));\n },\n onEditingModeChange(editingMode) {\n this.editingMode = editingMode;\n this.notifyEditingModeChange(editingMode);\n },\n onEditingModeRestored(editingMode) {\n if (!this.isDefaultEditorEnabled) return;\n if (editingMode === EDITING_MODE_CONTENT_EDITOR && !this.enableContentEditor) {\n this.editingMode = EDITING_MODE_MARKDOWN_FIELD;\n return;\n }\n\n this.editingMode = editingMode;\n this.$emit(editingMode);\n this.notifyEditingModeChange(editingMode);\n },\n async notifyEditingModeChange(editingMode) {\n this.$emit(editingMode);\n\n const componentToFocus =\n editingMode === EDITING_MODE_CONTENT_EDITOR\n ? () => this.$refs.contentEditor\n : () => this.$refs.textarea;\n\n (await waitFor(componentToFocus)).focus();\n },\n autofocusTextarea() {\n if (this.autofocus && this.editingMode === EDITING_MODE_MARKDOWN_FIELD) {\n this.$refs.textarea.focus();\n this.setEditorAsAutofocused();\n }\n },\n focus() {\n if (this.editingMode === EDITING_MODE_MARKDOWN_FIELD) {\n this.$refs.textarea.focus();\n } else {\n this.$refs.contentEditor.focus();\n }\n },\n setEditorAsAutofocused() {\n this.autofocused = true;\n },\n saveDraft() {\n if (!this.autosaveKey) return;\n if (this.markdown) updateDraft(this.autosaveKey, this.markdown);\n else clearDraft(this.autosaveKey);\n },\n clearDraft(key) {\n if (!this.autosaveKey || key !== this.autosaveKey) return;\n clearDraft(this.autosaveKey);\n },\n togglePreview(value) {\n if (this.editingMode === EDITING_MODE_MARKDOWN_FIELD) {\n this.$refs.markdownField.previewMarkdown = value;\n }\n },\n autosizeTextarea() {\n if (this.editingMode === EDITING_MODE_MARKDOWN_FIELD) {\n this.$nextTick(() => {\n Autosize.update(this.$refs.textarea);\n });\n }\n },\n onKeydown(event) {\n const isModifierKey = event.ctrlKey || event.metaKey;\n if (isModifierKey && event.key === 'k') {\n event.preventDefault();\n }\n this.$emit('keydown', event);\n },\n },\n EDITING_MODE_KEY,\n i18n: {\n applyTemplateAlert: {\n message: __(\n 'Applying a template will replace the existing content. Any changes you have made will be lost.',\n ),\n primaryButtonText: __('Apply template'),\n secondaryButtonText: __('Cancel'),\n },\n },\n};\n</script>\n<template>\n <div class=\"md-area-wrapper gl-rounded-lg !gl-px-0\">\n <local-storage-sync\n v-if=\"!isDefaultEditorEnabled\"\n :value=\"editingMode\"\n as-string\n :storage-key=\"$options.EDITING_MODE_KEY\"\n @input=\"onEditingModeRestored\"\n />\n <gl-alert\n v-if=\"alert\"\n class=\"gl-mb-4\"\n :variant=\"alert.variant\"\n :primary-button-text=\"alert.primaryButtonText\"\n :secondary-button-text=\"alert.secondaryButtonText\"\n @primaryAction=\"alert.primaryAction\"\n @secondaryAction=\"alert.secondaryAction\"\n @dismiss=\"alert.dismiss\"\n >\n {{ alert.message }}\n </gl-alert>\n <markdown-field\n v-if=\"!isContentEditorActive\"\n ref=\"markdownField\"\n v-bind=\"$attrs\"\n data-testid=\"markdown-field\"\n :markdown-preview-path=\"renderMarkdownPath\"\n :can-attach-file=\"!disableAttachments\"\n :can-suggest=\"codeSuggestionsConfig.canSuggest\"\n :line=\"codeSuggestionsConfig.line\"\n :lines=\"codeSuggestionsConfig.lines\"\n :show-suggest-popover=\"codeSuggestionsConfig.showPopover\"\n :textarea-value=\"markdown\"\n :uploads-path=\"uploadsPath\"\n :enable-autocomplete=\"enableAutocomplete\"\n :autocomplete-data-sources=\"autocompleteDataSources\"\n :markdown-docs-path=\"markdownDocsPath\"\n :supports-quick-actions=\"supportsQuickActions\"\n :show-content-editor-switcher=\"enableContentEditor\"\n :drawio-enabled=\"drawioEnabled\"\n :restricted-tool-bar-items=\"markdownFieldRestrictedToolBarItems\"\n :remove-border=\"true\"\n @enableContentEditor=\"onEditingModeChange('contentEditor')\"\n @handleSuggestDismissed=\"() => $emit('handleSuggestDismissed')\"\n >\n <template #header-buttons><slot name=\"header-buttons\"></slot></template>\n <template #toolbar><slot name=\"toolbar\"></slot></template>\n <template #textarea>\n <textarea\n v-bind=\"formFieldProps\"\n ref=\"textarea\"\n :value=\"markdown\"\n class=\"note-textarea js-gfm-input markdown-area\"\n dir=\"auto\"\n :data-can-suggest=\"codeSuggestionsConfig.canSuggest\"\n :data-noteable-type=\"noteableType\"\n :data-supports-quick-actions=\"supportsQuickActions\"\n :data-testid=\"formFieldProps['data-testid'] || 'markdown-editor-form-field'\"\n :disabled=\"disabled\"\n @input=\"updateMarkdownFromMarkdownField\"\n @keydown=\"$emit('keydown', $event)\"\n ></textarea>\n </template>\n </markdown-field>\n <div v-else>\n <content-editor\n ref=\"contentEditor\"\n :render-markdown=\"renderMarkdown\"\n :markdown-docs-path=\"markdownDocsPath\"\n :uploads-path=\"uploadsPath\"\n :markdown=\"markdown\"\n :supports-quick-actions=\"supportsQuickActions\"\n :autofocus=\"contentEditorAutofocused\"\n :placeholder=\"formFieldProps.placeholder\"\n :drawio-enabled=\"drawioEnabled\"\n :enable-autocomplete=\"enableAutocomplete\"\n :autocomplete-data-sources=\"autocompleteDataSources\"\n :editable=\"!disabled\"\n :disable-attachments=\"disableAttachments\"\n :code-suggestions-config=\"codeSuggestionsConfig\"\n :data-testid=\"formFieldProps['data-testid'] || 'markdown-editor-form-field'\"\n @initialized=\"setEditorAsAutofocused\"\n @change=\"updateMarkdownFromContentEditor\"\n @keydown=\"onKeydown\"\n @enableMarkdownEditor=\"onEditingModeChange('markdownField')\"\n >\n <template #header-buttons><slot name=\"header-buttons\"></slot></template>\n <template #toolbar><slot name=\"toolbar\"></slot></template>\n </content-editor>\n <input v-bind=\"formFieldProps\" :value=\"markdown\" type=\"hidden\" />\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!./markdown_editor.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!./markdown_editor.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./markdown_editor.vue?vue&type=template&id=27f649d3\"\nimport script from \"./markdown_editor.vue?vue&type=script&lang=js\"\nexport * from \"./markdown_editor.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 * Map<HTMLElement, { callback: Function, eventTypes: Array<string> }>\n */\nconst callbacks = new Map();\nconst click = 'click';\nconst focusin = 'focusin';\nconst supportedEventTypes = [click, focusin];\nconst defaultEventType = click;\n\n/**\n * A Set to keep track of currently active event types.\n * This ensures that event listeners are only added for the event types that are in use.\n *\n * @type {Set<string>}\n */\nconst activeEventTypes = new Set();\nlet lastMousedown = null;\nconst globalListener = event => {\n callbacks.forEach((_ref, element) => {\n let {\n callback,\n eventTypes\n } = _ref;\n const originalEvent = event.type === click ? lastMousedown || event : event;\n if (\n // Ignore events that aren't targeted outside the element\n element.contains(originalEvent.target) ||\n // Ignore events that aren't the specified types for this element\n !eventTypes.includes(event.type)) {\n return;\n }\n try {\n callback(event);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line no-console\n console.error(e);\n }\n }\n });\n if (event.type === click) {\n lastMousedown = null;\n }\n};\n\n// We need to listen for mouse events because text selection fires click event only when selection ends.\n// This means that the click event target could differ from the element where it originally started.\n// As example: if we use mouse events we could guarantee that selecting text within a dropdown won't close it.\nconst onMousedown = event => {\n lastMousedown = event;\n};\nconst startListening = eventTypes => {\n eventTypes.forEach(eventType => {\n if (!activeEventTypes.has(eventType)) {\n // Listening to mousedown events, ensures that a text selection doesn't trigger the\n // GlOutsideDirective 'click' callback if the selection started within the target element.\n if (eventType === click) {\n document.addEventListener('mousedown', onMousedown);\n }\n\n // Added { capture: true } to all event types to prevent the behavior discussed in https://gitlab.com/gitlab-org/gitlab-ui/-/merge_requests/1686#note_412545027\n // Ensures the event listener handles the event in the capturing phase, avoiding issues encountered previously.\n // Cannot be tested with Jest or Cypress, but can be tested with Playwright in the future: https://gitlab.com/gitlab-org/gitlab-ui/-/merge_requests/4272#note_1947425384\n document.addEventListener(eventType, globalListener, {\n capture: true\n });\n activeEventTypes.add(eventType);\n }\n });\n lastMousedown = null;\n};\nconst stopListening = eventTypesToUnbind => {\n eventTypesToUnbind.forEach(eventType => {\n if (activeEventTypes.has(eventType)) {\n if ([...callbacks.values()].every(_ref2 => {\n let {\n eventTypes\n } = _ref2;\n return !eventTypes.includes(eventType);\n })) {\n document.removeEventListener(eventType, globalListener);\n activeEventTypes.delete(eventType);\n }\n }\n });\n if (eventTypesToUnbind.includes(click) && !activeEventTypes.has(click)) {\n document.removeEventListener('mousedown', onMousedown);\n }\n};\nfunction parseBinding(_ref3) {\n let {\n arg,\n value,\n modifiers\n } = _ref3;\n const modifiersList = Object.keys(modifiers);\n if (process.env.NODE_ENV !== 'production') {\n if (typeof value !== 'function') {\n throw new Error(`[GlOutsideDirective] Value must be a function; got ${typeof value}!`);\n }\n if (typeof arg !== 'undefined') {\n throw new Error(`[GlOutsideDirective] Arguments are not supported. Consider using modifiers instead.`);\n }\n const unsupportedModifiers = modifiersList.filter(modifier => !supportedEventTypes.includes(modifier));\n if (unsupportedModifiers.length > 0) {\n throw new Error(`[GlOutsideDirective] Cannot bind ${unsupportedModifiers.join(', ')} events; supported event types are: ${supportedEventTypes.join(', ')}`);\n }\n }\n return {\n callback: value,\n eventTypes: modifiersList.length > 0 ? modifiersList : [defaultEventType]\n };\n}\nconst bind = (el, bindings) => {\n const {\n callback,\n eventTypes\n } = parseBinding(bindings);\n if (callbacks.has(el)) {\n // This element is already bound. This is possible if two components, which\n // share the same root node, (i.e., one is a higher-order component\n // wrapping another) _both_ have this directive applied.\n //\n // Because Vue binds directives in the direction towards the root, only the\n // deepest instance of this directive will be bound.\n //\n // A future iteration may add support for binding all instances on a given\n // element.\n return;\n }\n callbacks.set(el, {\n callback,\n eventTypes\n });\n startListening(eventTypes);\n};\nconst unbind = el => {\n const entry = callbacks.get(el);\n if (entry) {\n callbacks.delete(el);\n stopListening(entry.eventTypes);\n }\n};\nconst OutsideDirective = {\n bind,\n unbind\n};\n\nexport { OutsideDirective };\n","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","(function(h,C){typeof exports==\"object\"&&typeof module!=\"undefined\"?C(exports):typeof define==\"function\"&&define.amd?define([\"exports\"],C):(h=typeof globalThis!=\"undefined\"?globalThis:h||self,C(h.modernScreenshot={}))})(this,function(h){var Ue;\"use strict\";var Qt=Object.defineProperty,Zt=Object.defineProperties;var er=Object.getOwnPropertyDescriptors;var Z=Object.getOwnPropertySymbols;var Le=Object.prototype.hasOwnProperty,Me=Object.prototype.propertyIsEnumerable;var Oe=Math.pow,Be=(h,C,T)=>C in h?Qt(h,C,{enumerable:!0,configurable:!0,writable:!0,value:T}):h[C]=T,D=(h,C)=>{for(var T in C||(C={}))Le.call(C,T)&&Be(h,T,C[T]);if(Z)for(var T of Z(C))Me.call(C,T)&&Be(h,T,C[T]);return h},L=(h,C)=>Zt(h,er(C));var We=(h,C)=>{var T={};for(var N in h)Le.call(h,N)&&C.indexOf(N)<0&&(T[N]=h[N]);if(h!=null&&Z)for(var N of Z(h))C.indexOf(N)<0&&Me.call(h,N)&&(T[N]=h[N]);return T};var E=(h,C,T)=>new Promise((N,M)=>{var z=R=>{try{W(T.next(R))}catch(j){M(j)}},O=R=>{try{W(T.throw(R))}catch(j){M(j)}},W=R=>R.done?N(R.value):Promise.resolve(R.value).then(z,O);W((T=T.apply(h,C)).next())});function C(e,t){return e[13]=1,e[14]=t>>8,e[15]=t&255,e[16]=t>>8,e[17]=t&255,e}const T=\"p\".charCodeAt(0),N=\"H\".charCodeAt(0),M=\"Y\".charCodeAt(0),z=\"s\".charCodeAt(0);let O;function W(){const e=new Int32Array(256);for(let t=0;t<256;t++){let r=t;for(let n=0;n<8;n++)r=r&1?3988292384^r>>>1:r>>>1;e[t]=r}return e}function R(e){let t=-1;O||(O=W());for(let r=0;r<e.length;r++)t=O[(t^e[r])&255]^t>>>8;return t^-1}function j(e){const t=e.length-1;for(let r=t;r>=4;r--)if(e[r-4]===9&&e[r-3]===T&&e[r-2]===N&&e[r-1]===M&&e[r]===z)return r-3;return 0}function ae(e,t,r=!1){const n=new Uint8Array(13);t*=39.3701,n[0]=T,n[1]=N,n[2]=M,n[3]=z,n[4]=t>>>24,n[5]=t>>>16,n[6]=t>>>8,n[7]=t&255,n[8]=n[4],n[9]=n[5],n[10]=n[6],n[11]=n[7],n[12]=1;const a=R(n),s=new Uint8Array(4);if(s[0]=a>>>24,s[1]=a>>>16,s[2]=a>>>8,s[3]=a&255,r){const o=j(e);return e.set(n,o),e.set(s,o+13),e}else{const o=new Uint8Array(4);o[0]=0,o[1]=0,o[2]=0,o[3]=9;const i=new Uint8Array(54);return i.set(e,0),i.set(o,33),i.set(n,37),i.set(s,50),i}}const je=\"AAlwSFlz\",qe=\"AAAJcEhZ\",Ve=\"AAAACXBI\";function He(e){let t=e.indexOf(je);return t===-1&&(t=e.indexOf(qe)),t===-1&&(t=e.indexOf(Ve)),t}const ee=\"[modern-screenshot]\",F=typeof window!=\"undefined\",ze=F&&\"Worker\"in window,se=F&&\"atob\"in window,Xe=F&&\"btoa\"in window,te=F?(Ue=window.navigator)==null?void 0:Ue.userAgent:\"\",ie=te.includes(\"Chrome\"),X=te.includes(\"AppleWebKit\")&&!ie,re=te.includes(\"Firefox\"),Ge=e=>e&&\"__CONTEXT__\"in e,Ye=e=>e.constructor.name===\"CSSFontFaceRule\",Je=e=>e.constructor.name===\"CSSImportRule\",k=e=>e.nodeType===1,q=e=>typeof e.className==\"object\",ce=e=>e.tagName===\"image\",Ke=e=>e.tagName===\"use\",V=e=>k(e)&&typeof e.style!=\"undefined\"&&!q(e),Qe=e=>e.nodeType===8,Ze=e=>e.nodeType===3,_=e=>e.tagName===\"IMG\",G=e=>e.tagName===\"VIDEO\",et=e=>e.tagName===\"CANVAS\",le=e=>e.tagName===\"TEXTAREA\",tt=e=>e.tagName===\"INPUT\",rt=e=>e.tagName===\"STYLE\",nt=e=>e.tagName===\"SCRIPT\",ot=e=>e.tagName===\"SELECT\",at=e=>e.tagName===\"SLOT\",st=e=>e.tagName===\"IFRAME\",A=(...e)=>console.warn(ee,...e),it=e=>console.time(`${ee} ${e}`),ct=e=>console.timeEnd(`${ee} ${e}`),lt=e=>{var r;const t=(r=e==null?void 0:e.createElement)==null?void 0:r.call(e,\"canvas\");return t&&(t.height=t.width=1),t&&\"toDataURL\"in t&&Boolean(t.toDataURL(\"image/webp\").includes(\"image/webp\"))},ne=e=>e.startsWith(\"data:\");function ue(e,t){if(e.match(/^[a-z]+:\\/\\//i))return e;if(F&&e.match(/^\\/\\//))return window.location.protocol+e;if(e.match(/^[a-z]+:/i)||!F)return e;const r=Y().implementation.createHTMLDocument(),n=r.createElement(\"base\"),a=r.createElement(\"a\");return r.head.appendChild(n),r.body.appendChild(a),t&&(n.href=t),a.href=e,a.href}function Y(e){var t;return(t=e&&k(e)?e==null?void 0:e.ownerDocument:e)!=null?t:window.document}const J=\"http://www.w3.org/2000/svg\";function fe(e,t,r){const n=Y(r).createElementNS(J,\"svg\");return n.setAttributeNS(null,\"width\",e.toString()),n.setAttributeNS(null,\"height\",t.toString()),n.setAttributeNS(null,\"viewBox\",`0 0 ${e} ${t}`),n}function de(e,t){let r=new XMLSerializer().serializeToString(e);return t&&(r=r.replace(/[\\u0000-\\u0008\\u000B\\u000C\\u000E-\\u001F\\uD800-\\uDFFF\\uFFFE\\uFFFF]/ug,\"\")),`data:image/svg+xml;charset=utf-8,${encodeURIComponent(r)}`}function ut(e,t=\"image/png\",r=1){return E(this,null,function*(){try{return yield new Promise((n,a)=>{e.toBlob(s=>{s?n(s):a(new Error(\"Blob is null\"))},t,r)})}catch(n){if(se)return A(\"Failed canvas to blob\",{type:t,quality:r},n),ft(e.toDataURL(t,r));throw n}})}function ft(e){var i,l;const[t,r]=e.split(\",\"),n=(l=(i=t.match(/data:(.+);/))==null?void 0:i[1])!=null?l:void 0,a=window.atob(r),s=a.length,o=new Uint8Array(s);for(let u=0;u<s;u+=1)o[u]=a.charCodeAt(u);return new Blob([o],{type:n})}function me(e,t){return new Promise((r,n)=>{const a=new FileReader;a.onload=()=>r(a.result),a.onerror=()=>n(a.error),a.onabort=()=>n(new Error(`Failed read blob to ${t}`)),t===\"dataUrl\"?a.readAsDataURL(e):t===\"arrayBuffer\"&&a.readAsArrayBuffer(e)})}const dt=e=>me(e,\"dataUrl\"),mt=e=>me(e,\"arrayBuffer\");function U(e,t){const r=Y(t).createElement(\"img\");return r.decoding=\"sync\",r.loading=\"eager\",r.src=e,r}function $(e,t){return new Promise(r=>{const{timeout:n,ownerDocument:a,onError:s}=t!=null?t:{},o=typeof e==\"string\"?U(e,Y(a)):e;let i=null,l=null;function u(){r(o),i&&clearTimeout(i),l==null||l()}if(n&&(i=setTimeout(u,n)),G(o)){const c=o.currentSrc||o.src;if(!c)return o.poster?$(o.poster,t).then(r):u();if(o.readyState>=2)return u();const f=u,d=m=>{A(\"Failed video load\",c,m),s==null||s(m),u()};l=()=>{o.removeEventListener(\"loadeddata\",f),o.removeEventListener(\"error\",d)},o.addEventListener(\"loadeddata\",f,{once:!0}),o.addEventListener(\"error\",d,{once:!0})}else{const c=ce(o)?o.href.baseVal:o.currentSrc||o.src;if(!c)return u();const f=()=>E(this,null,function*(){if(_(o)&&\"decode\"in o)try{yield o.decode()}catch(m){A(\"Failed to decode image, trying to render anyway\",o.dataset.originalSrc||c,m)}u()}),d=m=>{A(\"Failed image load\",o.dataset.originalSrc||c,m),u()};if(_(o)&&o.complete)return f();l=()=>{o.removeEventListener(\"load\",f),o.removeEventListener(\"error\",d)},o.addEventListener(\"load\",f,{once:!0}),o.addEventListener(\"error\",d,{once:!0})}})}function ge(e,t){return E(this,null,function*(){V(e)&&(_(e)||G(e)?yield $(e,{timeout:t}):yield Promise.all([\"img\",\"video\"].flatMap(r=>Array.from(e.querySelectorAll(r)).map(n=>$(n,{timeout:t})))))})}const he=function(){let t=0;const r=()=>`0000${(Math.random()*Oe(36,4)<<0).toString(36)}`.slice(-4);return()=>(t+=1,`u${r()}${t}`)}();function we(e){return e==null?void 0:e.split(\",\").map(t=>t.trim().replace(/\"|'/g,\"\").toLowerCase()).filter(Boolean)}function gt(e){return{time:t=>e&&it(t),timeEnd:t=>e&&ct(t),warn:(...t)=>e&&A(...t)}}function ht(e){return{cache:e?\"no-cache\":\"force-cache\"}}function x(e,t){return E(this,null,function*(){return Ge(e)?e:pe(e,L(D({},t),{autoDestruct:!0}))})}function pe(e,t){return E(this,null,function*(){var m,w,p,b,g;const{scale:r=1,workerUrl:n,workerNumber:a=1}=t||{},s=Boolean(t==null?void 0:t.debug),o=(m=t==null?void 0:t.features)!=null?m:!0,i=(w=e.ownerDocument)!=null?w:F?window.document:void 0,l=(b=(p=e.ownerDocument)==null?void 0:p.defaultView)!=null?b:F?window:void 0,u=new Map,c=L(D({width:0,height:0,quality:1,type:\"image/png\",scale:r,backgroundColor:null,style:null,filter:null,maximumCanvasSize:0,timeout:3e4,progress:null,debug:s,fetch:D({requestInit:ht((g=t==null?void 0:t.fetch)==null?void 0:g.bypassingCache),placeholderImage:\"data:image/png;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\",bypassingCache:!1},t==null?void 0:t.fetch),fetchFn:null,font:{},drawImageInterval:100,workerUrl:null,workerNumber:a,onCloneNode:null,onEmbedNode:null,onCreateForeignObjectSvg:null,includeStyleProperties:null,autoDestruct:!1},t),{__CONTEXT__:!0,log:gt(s),node:e,ownerDocument:i,ownerWindow:l,dpi:r===1?null:96*r,svgStyleElement:ye(i),svgDefsElement:i==null?void 0:i.createElementNS(J,\"defs\"),svgStyles:new Map,defaultComputedStyles:new Map,workers:[...new Array(ze&&n&&a?a:0)].map(()=>{try{const S=new Worker(n);return S.onmessage=y=>E(this,null,function*(){var P,_e,Q,$e;const{url:v,result:I}=y.data;I?(_e=(P=u.get(v))==null?void 0:P.resolve)==null||_e.call(P,I):($e=(Q=u.get(v))==null?void 0:Q.reject)==null||$e.call(Q,new Error(`Error receiving message from worker: ${v}`))}),S.onmessageerror=y=>{var I,P;const{url:v}=y.data;(P=(I=u.get(v))==null?void 0:I.reject)==null||P.call(I,new Error(`Error receiving message from worker: ${v}`))},S}catch(S){return A(\"Failed to new Worker\",S),null}}).filter(Boolean),fontFamilies:new Set,fontCssTexts:new Map,acceptOfImage:`${[lt(i)&&\"image/webp\",\"image/svg+xml\",\"image/*\",\"*/*\"].filter(Boolean).join(\",\")};q=0.8`,requests:u,drawImageCount:0,tasks:[],features:o,isEnable:S=>{var y,v;return S===\"restoreScrollPosition\"?typeof o==\"boolean\"?!1:(y=o[S])!=null?y:!1:typeof o==\"boolean\"?o:(v=o[S])!=null?v:!0}});c.log.time(\"wait until load\"),yield ge(e,c.timeout),c.log.timeEnd(\"wait until load\");const{width:f,height:d}=wt(e,c);return c.width=f,c.height=d,c})}function ye(e){if(!e)return;const t=e.createElement(\"style\"),r=t.ownerDocument.createTextNode(`\n.______background-clip--text {\n background-clip: text;\n -webkit-background-clip: text;\n}\n`);return t.appendChild(r),t}function wt(e,t){let{width:r,height:n}=t;if(k(e)&&(!r||!n)){const a=e.getBoundingClientRect();r=r||a.width||Number(e.getAttribute(\"width\"))||0,n=n||a.height||Number(e.getAttribute(\"height\"))||0}return{width:r,height:n}}function pt(e,t){return E(this,null,function*(){const{log:r,timeout:n,drawImageCount:a,drawImageInterval:s}=t;r.time(\"image to canvas\");const o=yield $(e,{timeout:n}),{canvas:i,context2d:l}=yt(e.ownerDocument,t),u=()=>{try{l==null||l.drawImage(o,0,0,i.width,i.height)}catch(c){A(\"Failed to drawImage\",c)}};if(u(),t.isEnable(\"fixSvgXmlDecode\"))for(let c=0;c<a;c++)yield new Promise(f=>{setTimeout(()=>{u(),f()},c+s)});return t.drawImageCount=0,r.timeEnd(\"image to canvas\"),i})}function yt(e,t){const{width:r,height:n,scale:a,backgroundColor:s,maximumCanvasSize:o}=t,i=e.createElement(\"canvas\");i.width=Math.floor(r*a),i.height=Math.floor(n*a),i.style.width=`${r}px`,i.style.height=`${n}px`,o&&(i.width>o||i.height>o)&&(i.width>o&&i.height>o?i.width>i.height?(i.height*=o/i.width,i.width=o):(i.width*=o/i.height,i.height=o):i.width>o?(i.height*=o/i.width,i.width=o):(i.width*=o/i.height,i.height=o));const l=i.getContext(\"2d\");return l&&s&&(l.fillStyle=s,l.fillRect(0,0,i.width,i.height)),{canvas:i,context2d:l}}const bt=[\"width\",\"height\",\"-webkit-text-fill-color\"],St=[\"stroke\",\"fill\"];function be(e,t,r){var b;const{defaultComputedStyles:n,ownerDocument:a}=r,s=e.nodeName.toLowerCase(),o=q(e)&&s!==\"svg\",i=o?St.map(g=>[g,e.getAttribute(g)]).filter(([,g])=>g!==null):[],l=[o&&\"svg\",s,i.map((g,S)=>`${g}=${S}`).join(\",\"),t].filter(Boolean).join(\":\");if(n.has(l))return n.get(l);let u=r.sandbox;if(!u)try{a&&(u=a.createElement(\"iframe\"),u.id=`__SANDBOX__-${he()}`,u.width=\"0\",u.height=\"0\",u.style.visibility=\"hidden\",u.style.position=\"fixed\",a.body.appendChild(u),(b=u.contentWindow)==null||b.document.write('<!DOCTYPE html><meta charset=\"UTF-8\"><title></title><body>'),r.sandbox=u)}catch(g){A(\"Failed to create iframe sandbox\",g)}if(!u)return new Map;const c=u.contentWindow;if(!c)return new Map;const f=c.document;let d,m;o?(d=f.createElementNS(J,\"svg\"),m=d.ownerDocument.createElementNS(d.namespaceURI,s),i.forEach(([g,S])=>{m.setAttributeNS(null,g,S)}),d.appendChild(m)):d=m=f.createElement(s),m.textContent=\" \",f.body.appendChild(d);const w=c.getComputedStyle(m,t),p=new Map;for(let g=w.length,S=0;S<g;S++){const y=w.item(S);bt.includes(y)||p.set(y,w.getPropertyValue(y))}return f.body.removeChild(d),n.set(l,p),p}function Se(e,t,r){var i;const n=new Map,a=[],s=new Map;if(r)for(const l of r)o(l);else for(let l=e.length,u=0;u<l;u++){const c=e.item(u);o(c)}for(let l=a.length,u=0;u<l;u++)(i=s.get(a[u]))==null||i.forEach((c,f)=>n.set(f,c));function o(l){const u=e.getPropertyValue(l),c=e.getPropertyPriority(l),f=l.lastIndexOf(\"-\"),d=f>-1?l.substring(0,f):void 0;if(d){let m=s.get(d);m||(m=new Map,s.set(d,m)),m.set(l,[u,c])}t.get(l)===u&&!c||(d?a.push(d):n.set(l,[u,c]))}return n}const Et=[\":before\",\":after\"],Ct=[\":-webkit-scrollbar\",\":-webkit-scrollbar-button\",\":-webkit-scrollbar-thumb\",\":-webkit-scrollbar-track\",\":-webkit-scrollbar-track-piece\",\":-webkit-scrollbar-corner\",\":-webkit-resizer\"];function Tt(e,t,r,n){const{ownerWindow:a,svgStyleElement:s,svgStyles:o,currentNodeStyle:i}=n;if(!s||!a)return;function l(u){var S;const c=a.getComputedStyle(e,u);let f=c.getPropertyValue(\"content\");if(!f||f===\"none\")return;f=f.replace(/(')|(\")|(counter\\(.+\\))/g,\"\");const d=[he()],m=be(e,u,n);i==null||i.forEach((y,v)=>{m.delete(v)});const w=Se(c,m,n.includeStyleProperties);w.delete(\"content\"),w.delete(\"-webkit-locale\"),((S=w.get(\"background-clip\"))==null?void 0:S[0])===\"text\"&&t.classList.add(\"______background-clip--text\");const p=[`content: '${f}';`];if(w.forEach(([y,v],I)=>{p.push(`${I}: ${y}${v?\" !important\":\"\"};`)}),p.length===1)return;try{t.className=[t.className,...d].join(\" \")}catch(y){return}const b=p.join(`\n `);let g=o.get(b);g||(g=[],o.set(b,g)),g.push(`.${d[0]}:${u}`)}Et.forEach(l),r&&Ct.forEach(l)}function vt(e,t){le(e)&&(t.innerHTML=e.value),(le(e)||tt(e)||ot(e))&&t.setAttribute(\"value\",e.value)}function At(e,t,r,n){var f,d,m,w;const{ownerWindow:a,includeStyleProperties:s,currentParentNodeStyle:o}=n,i=t.style,l=a.getComputedStyle(e),u=be(e,null,n);o==null||o.forEach((p,b)=>{u.delete(b)});const c=Se(l,u,s);return c.delete(\"transition-property\"),c.delete(\"all\"),c.delete(\"d\"),c.delete(\"content\"),r&&(c.delete(\"margin-top\"),c.delete(\"margin-right\"),c.delete(\"margin-bottom\"),c.delete(\"margin-left\"),c.delete(\"margin-block-start\"),c.delete(\"margin-block-end\"),c.delete(\"margin-inline-start\"),c.delete(\"margin-inline-end\"),c.set(\"box-sizing\",[\"border-box\",\"\"])),((f=c.get(\"background-clip\"))==null?void 0:f[0])===\"text\"&&t.classList.add(\"______background-clip--text\"),ie&&(c.has(\"font-kerning\")||c.set(\"font-kerning\",[\"normal\",\"\"]),(((d=c.get(\"overflow-x\"))==null?void 0:d[0])===\"hidden\"||((m=c.get(\"overflow-y\"))==null?void 0:m[0])===\"hidden\")&&((w=c.get(\"text-overflow\"))==null?void 0:w[0])===\"ellipsis\"&&e.scrollWidth===e.clientWidth&&c.set(\"text-overflow\",[\"clip\",\"\"])),c.forEach(([p,b],g)=>{i.setProperty(g,p,b)}),c}function Nt(e,t){var r;try{if((r=e==null?void 0:e.contentDocument)!=null&&r.body)return oe(e.contentDocument.body,t)}catch(n){A(\"Failed to clone iframe\",n)}return e.cloneNode(!1)}function Ee(e){if(e.ownerDocument)try{const a=e.toDataURL();if(a!==\"data:,\")return U(a,e.ownerDocument)}catch(a){}const t=e.cloneNode(!1),r=e.getContext(\"2d\"),n=t.getContext(\"2d\");try{return r&&n&&n.putImageData(r.getImageData(0,0,e.width,e.height),0,0),t}catch(a){A(\"Failed to clone canvas\",a)}return t}function It(e){return E(this,null,function*(){if(e.ownerDocument&&!e.currentSrc&&e.poster)return U(e.poster,e.ownerDocument);const t=e.cloneNode(!1);t.crossOrigin=\"anonymous\",e.currentSrc&&e.currentSrc!==e.src&&(t.src=e.currentSrc);const r=t.ownerDocument;if(r){let n=!0;if(yield $(t,{onError:()=>n=!1}),!n)return e.poster?U(e.poster,e.ownerDocument):t;t.currentTime=e.currentTime,yield new Promise(s=>{t.addEventListener(\"seeked\",s,{once:!0})});const a=r.createElement(\"canvas\");a.width=e.offsetWidth,a.height=e.offsetHeight;try{const s=a.getContext(\"2d\");s&&s.drawImage(t,0,0,a.width,a.height)}catch(s){return A(\"Failed to clone video\",s),e.poster?U(e.poster,e.ownerDocument):t}return Ee(a)}return t})}function kt(e){const t=e.cloneNode(!1);return e.currentSrc&&e.currentSrc!==e.src&&(t.src=e.currentSrc,t.srcset=\"\"),t.loading===\"lazy\"&&(t.loading=\"eager\"),t}function xt(e,t){return et(e)?Ee(e):st(e)?Nt(e,t):_(e)?kt(e):G(e)?It(e):e.cloneNode(!1)}const Ce=new Set([\"symbol\"]);function Te(e,t,r,n){return E(this,null,function*(){if(k(r)&&(rt(r)||nt(r))||n.filter&&!n.filter(r))return;Ce.has(t.nodeName)||Ce.has(r.nodeName)?n.currentParentNodeStyle=void 0:n.currentParentNodeStyle=n.currentNodeStyle;const a=yield oe(r,n);n.isEnable(\"restoreScrollPosition\")&&Dt(e,a),t.appendChild(a)})}function ve(e,t,r){return E(this,null,function*(){var a,s;const n=(s=k(e)?(a=e.shadowRoot)==null?void 0:a.firstChild:void 0)!=null?s:e.firstChild;for(let o=n;o;o=o.nextSibling)if(!Qe(o))if(k(o)&&at(o)&&typeof o.assignedNodes==\"function\"){const i=o.assignedNodes();for(let l=0;l<i.length;l++)yield Te(e,t,i[l],r)}else yield Te(e,t,o,r)})}function Dt(e,t){if(!V(e)||!V(t))return;const{scrollTop:r,scrollLeft:n}=e;if(!r&&!n)return;const{transform:a}=t.style,s=new DOMMatrix(a),{a:o,b:i,c:l,d:u}=s;s.a=1,s.b=0,s.c=0,s.d=1,s.translateSelf(-n,-r),s.a=o,s.b=i,s.c=l,s.d=u,t.style.transform=s.toString()}function Rt(e,t){const{backgroundColor:r,width:n,height:a,style:s}=t,o=e.style;if(r&&o.setProperty(\"background-color\",r,\"important\"),n&&o.setProperty(\"width\",`${n}px`,\"important\"),a&&o.setProperty(\"height\",`${a}px`,\"important\"),s)for(const i in s)o[i]=s[i]}const Pt=/^[\\w-:]+$/;function oe(e,t,r=!1){return E(this,null,function*(){var i,l,u,c;const{ownerDocument:n,ownerWindow:a,fontFamilies:s}=t;if(n&&Ze(e))return n.createTextNode(e.data);if(n&&a&&k(e)&&(V(e)||q(e))){const f=yield xt(e,t);if(t.isEnable(\"removeAbnormalAttributes\")){const w=f.getAttributeNames();for(let p=w.length,b=0;b<p;b++){const g=w[b];Pt.test(g)||f.removeAttribute(g)}}const d=t.currentNodeStyle=At(e,f,r,t);r&&Rt(f,t);let m=!1;if(t.isEnable(\"copyScrollbar\")){const w=[(i=d.get(\"overflow-x\"))==null?void 0:i[0],(l=d.get(\"overflow-y\"))==null?void 0:l[1]];m=w.includes(\"scroll\")||(w.includes(\"auto\")||w.includes(\"overlay\"))&&(e.scrollHeight>e.clientHeight||e.scrollWidth>e.clientWidth)}return Tt(e,f,m,t),vt(e,f),(c=we((u=d.get(\"font-family\"))==null?void 0:u[0]))==null||c.forEach(w=>s.add(w)),G(e)||(yield ve(e,f,t)),f}const o=e.cloneNode(!1);return yield ve(e,o,t),o})}function Ae(e){if(e.ownerDocument=void 0,e.ownerWindow=void 0,e.svgStyleElement=void 0,e.svgDefsElement=void 0,e.svgStyles.clear(),e.defaultComputedStyles.clear(),e.sandbox){try{e.sandbox.remove()}catch(t){}e.sandbox=void 0}e.workers=[],e.fontFamilies.clear(),e.fontCssTexts.clear(),e.requests.clear(),e.tasks=[]}function Ft(e){const i=e,{url:t,timeout:r,responseType:n}=i,a=We(i,[\"url\",\"timeout\",\"responseType\"]),s=new AbortController,o=r?setTimeout(()=>s.abort(),r):void 0;return fetch(t,D({signal:s.signal},a)).then(l=>{if(!l.ok)throw new Error(\"Failed fetch, not 2xx response\",{cause:l});switch(n){case\"dataUrl\":return l.blob().then(dt);case\"text\":default:return l.text()}}).finally(()=>clearTimeout(o))}function H(e,t){const{url:r,requestType:n=\"text\",responseType:a=\"text\",imageDom:s}=t;let o=r;const{timeout:i,acceptOfImage:l,requests:u,fetchFn:c,fetch:{requestInit:f,bypassingCache:d,placeholderImage:m},workers:w}=e;n===\"image\"&&(X||re)&&e.drawImageCount++;let p=u.get(r);if(!p){d&&d instanceof RegExp&&d.test(o)&&(o+=(/\\?/.test(o)?\"&\":\"?\")+new Date().getTime());const b=D({url:o,timeout:i,responseType:a,headers:n===\"image\"?{accept:l}:void 0},f);p={type:n,resolve:void 0,reject:void 0,response:null},p.response=(()=>E(this,null,function*(){if(c&&n===\"image\"){const g=yield c(r);if(g)return g}return!X&&r.startsWith(\"http\")&&w.length?new Promise((g,S)=>{w[u.size&w.length-1].postMessage(D({rawUrl:r},b)),p.resolve=g,p.reject=S}):Ft(b)}))().catch(g=>{if(u.delete(r),n===\"image\"&&m)return A(\"Failed to fetch image base64, trying to use placeholder image\",o),typeof m==\"string\"?m:m(s);throw g}),u.set(r,p)}return p.response}function Ne(e,t,r,n){return E(this,null,function*(){if(!Ie(e))return e;for(const[a,s]of Ut(e,t))try{const o=yield H(r,{url:s,requestType:n?\"image\":\"text\",responseType:\"dataUrl\"});e=e.replace(_t(a),`$1${o}$3`)}catch(o){A(\"Failed to fetch css data url\",a,o)}return e})}function Ie(e){return/url\\((['\"]?)([^'\"]+?)\\1\\)/.test(e)}const ke=/url\\((['\"]?)([^'\"]+?)\\1\\)/g;function Ut(e,t){const r=[];return e.replace(ke,(n,a,s)=>(r.push([s,ue(s,t)]),n)),r.filter(([n])=>!ne(n))}function _t(e){const t=e.replace(/([.*+?^${}()|\\[\\]\\/\\\\])/g,\"\\\\$1\");return new RegExp(`(url\\\\(['\"]?)(${t})(['\"]?\\\\))`,\"g\")}function $t(e,t){return E(this,null,function*(){const{ownerDocument:r,svgStyleElement:n,fontFamilies:a,fontCssTexts:s,tasks:o,font:i}=t;if(!(!r||!n||!a.size))if(i&&i.cssText){const l=De(i.cssText,t);n.appendChild(r.createTextNode(`${l}\n`))}else{const l=Array.from(r.styleSheets).filter(c=>{try{return\"cssRules\"in c&&Boolean(c.cssRules.length)}catch(f){return A(`Error while reading CSS rules from ${c.href}`,f),!1}});yield Promise.all(l.flatMap(c=>Array.from(c.cssRules).map((f,d)=>E(this,null,function*(){if(Je(f)){let m=d+1;const w=f.href;let p=\"\";try{p=yield H(t,{url:w,requestType:\"text\",responseType:\"text\"})}catch(g){A(`Error fetch remote css import from ${w}`,g)}const b=p.replace(ke,(g,S,y)=>g.replace(y,ue(y,w)));for(const g of Lt(b))try{c.insertRule(g,g.startsWith(\"@import\")?m+=1:c.cssRules.length)}catch(S){A(\"Error inserting rule from remote css import\",{rule:g,error:S})}}})))),l.flatMap(c=>Array.from(c.cssRules)).filter(c=>{var f;return Ye(c)&&Ie(c.style.getPropertyValue(\"src\"))&&((f=we(c.style.getPropertyValue(\"font-family\")))==null?void 0:f.some(d=>a.has(d)))}).forEach(c=>{const f=c,d=s.get(f.cssText);d?n.appendChild(r.createTextNode(`${d}\n`)):o.push(Ne(f.cssText,f.parentStyleSheet?f.parentStyleSheet.href:null,t).then(m=>{m=De(m,t),s.set(f.cssText,m),n.appendChild(r.createTextNode(`${m}\n`))}))})}})}const Bt=/(\\/\\*[\\s\\S]*?\\*\\/)/gi,xe=/((@.*?keyframes [\\s\\S]*?){([\\s\\S]*?}\\s*?)})/gi;function Lt(e){if(e==null)return[];const t=[];let r=e.replace(Bt,\"\");for(;;){const s=xe.exec(r);if(!s)break;t.push(s[0])}r=r.replace(xe,\"\");const n=/@import[\\s\\S]*?url\\([^)]*\\)[\\s\\S]*?;/gi,a=new RegExp(\"((\\\\s*?(?:\\\\/\\\\*[\\\\s\\\\S]*?\\\\*\\\\/)?\\\\s*?@media[\\\\s\\\\S]*?){([\\\\s\\\\S]*?)}\\\\s*?})|(([\\\\s\\\\S]*?){([\\\\s\\\\S]*?)})\",\"gi\");for(;;){let s=n.exec(r);if(s)a.lastIndex=n.lastIndex;else if(s=a.exec(r),s)n.lastIndex=a.lastIndex;else break;t.push(s[0])}return t}const Mt=/url\\([^)]+\\)\\s*format\\(([\"']?)([^\"']+)\\1\\)/g,Ot=/src:\\s*(?:url\\([^)]+\\)\\s*format\\([^)]+\\)[,;]\\s*)+/g;function De(e,t){const{font:r}=t,n=r?r==null?void 0:r.preferredFormat:void 0;return n?e.replace(Ot,a=>{for(;;){const[s,,o]=Mt.exec(a)||[];if(!o)return\"\";if(o===n)return`src: ${s};`}}):e}function Wt(e,t){if(_(e)){const r=e.currentSrc||e.src;if(!ne(r))return[H(t,{url:r,imageDom:e,requestType:\"image\",responseType:\"dataUrl\"}).then(n=>{n&&(e.srcset=\"\",e.dataset.originalSrc=r,e.src=n||\"\")})];(X||re)&&t.drawImageCount++}else if(q(e)&&!ne(e.href.baseVal)){const r=e.href.baseVal;return[H(t,{url:r,imageDom:e,requestType:\"image\",responseType:\"dataUrl\"}).then(n=>{n&&(e.dataset.originalSrc=r,e.href.baseVal=n||\"\")})]}return[]}const jt=[\"background-image\",\"border-image-source\",\"-webkit-border-image\",\"-webkit-mask-image\",\"list-style-image\"];function qt(e,t){return jt.map(r=>{const n=e.getPropertyValue(r);return!n||n===\"none\"?null:((X||re)&&t.drawImageCount++,Ne(n,null,t,!0).then(a=>{!a||n===a||e.setProperty(r,a,e.getPropertyPriority(r))}))}).filter(Boolean)}function Vt(e,t){var i;const{ownerDocument:r,svgDefsElement:n}=t,a=(i=e.getAttribute(\"href\"))!=null?i:e.getAttribute(\"xlink:href\");if(!a)return[];const[s,o]=a.split(\"#\");if(o){const l=`#${o}`,u=r==null?void 0:r.querySelector(`svg ${l}`);if(s&&e.setAttribute(\"href\",l),n!=null&&n.querySelector(l))return[];if(u)return n==null||n.appendChild(u.cloneNode(!0)),[];if(s)return[H(t,{url:s,responseType:\"text\"}).then(c=>{n==null||n.insertAdjacentHTML(\"beforeend\",c)})]}return[]}function Re(e,t){const{tasks:r}=t;k(e)&&((_(e)||ce(e))&&r.push(...Wt(e,t)),Ke(e)&&r.push(...Vt(e,t))),V(e)&&r.push(...qt(e.style,t)),e.childNodes.forEach(n=>{Re(n,t)})}function Pe(e,t){return E(this,null,function*(){const r=yield x(e,t);if(k(r.node)&&q(r.node))return r.node;const{ownerDocument:n,log:a,tasks:s,svgStyleElement:o,svgDefsElement:i,svgStyles:l,font:u,progress:c,autoDestruct:f,onCloneNode:d,onEmbedNode:m,onCreateForeignObjectSvg:w}=r;a.time(\"clone node\");const p=yield oe(r.node,r,!0);if(o&&n){let v=\"\";l.forEach((I,P)=>{v+=`${I.join(`,\n`)} {\n ${P}\n}\n`}),o.appendChild(n.createTextNode(v))}a.timeEnd(\"clone node\"),d==null||d(p),u!==!1&&k(p)&&(a.time(\"embed web font\"),yield $t(p,r),a.timeEnd(\"embed web font\")),a.time(\"embed node\"),Re(p,r);const b=s.length;let g=0;const S=()=>E(this,null,function*(){for(;;){const v=s.pop();if(!v)break;try{yield v}catch(I){A(\"Failed to run task\",I)}c==null||c(++g,b)}});c==null||c(g,b),yield Promise.all([...Array(4)].map(S)),a.timeEnd(\"embed node\"),m==null||m(p);const y=Ht(p,r);return i&&y.insertBefore(i,y.children[0]),o&&y.insertBefore(o,y.children[0]),f&&Ae(r),w==null||w(y),y})}function Ht(e,t){const{width:r,height:n}=t,a=fe(r,n,e.ownerDocument),s=a.ownerDocument.createElementNS(a.namespaceURI,\"foreignObject\");return s.setAttributeNS(null,\"x\",\"0%\"),s.setAttributeNS(null,\"y\",\"0%\"),s.setAttributeNS(null,\"width\",\"100%\"),s.setAttributeNS(null,\"height\",\"100%\"),s.append(e),a.appendChild(s),a}function K(e,t){return E(this,null,function*(){var o;const r=yield x(e,t),n=yield Pe(r),a=de(n,r.isEnable(\"removeControlCharacter\"));r.autoDestruct||(r.svgStyleElement=ye(r.ownerDocument),r.svgDefsElement=(o=r.ownerDocument)==null?void 0:o.createElementNS(J,\"defs\"),r.svgStyles.clear());const s=U(a,n.ownerDocument);return yield pt(s,r)})}function zt(e,t){return E(this,null,function*(){const r=yield x(e,t),{log:n,type:a,quality:s,dpi:o}=r,i=yield K(r);n.time(\"canvas to blob\");const l=yield ut(i,a,s);if([\"image/png\",\"image/jpeg\"].includes(a)&&o){const u=yield mt(l.slice(0,33));let c=new Uint8Array(u);return a===\"image/png\"?c=ae(c,o):a===\"image/jpeg\"&&(c=C(c,o)),n.timeEnd(\"canvas to blob\"),new Blob([c,l.slice(33)],{type:a})}return n.timeEnd(\"canvas to blob\"),l})}function B(e,t){return E(this,null,function*(){const r=yield x(e,t),{log:n,quality:a,type:s,dpi:o}=r,i=yield K(r);n.time(\"canvas to data url\");let l=i.toDataURL(s,a);if([\"image/png\",\"image/jpeg\"].includes(s)&&o&&se&&Xe){const[u,c]=l.split(\",\");let f=0,d=!1;if(s===\"image/png\"){const y=He(c);y>=0?(f=Math.ceil((y+28)/3)*4,d=!0):f=33/3*4}else s===\"image/jpeg\"&&(f=18/3*4);const m=c.substring(0,f),w=c.substring(f),p=window.atob(m),b=new Uint8Array(p.length);for(let y=0;y<b.length;y++)b[y]=p.charCodeAt(y);const g=s===\"image/png\"?ae(b,o,d):C(b,o),S=window.btoa(String.fromCharCode(...g));l=[u,\",\",S,w].join(\"\")}return n.timeEnd(\"canvas to data url\"),l})}function Fe(e,t){return E(this,null,function*(){const r=yield x(e,t),{width:n,height:a,ownerDocument:s}=r,o=yield B(r),i=fe(n,a,s),l=i.ownerDocument.createElementNS(i.namespaceURI,\"image\");return l.setAttributeNS(null,\"href\",o),l.setAttributeNS(null,\"height\",\"100%\"),l.setAttributeNS(null,\"width\",\"100%\"),i.appendChild(l),de(i,r.isEnable(\"removeControlCharacter\"))})}function Xt(e,t){return E(this,null,function*(){const r=yield x(e,t),{ownerDocument:n,width:a,height:s,scale:o,type:i}=r,l=i===\"image/svg+xml\"?yield Fe(r):yield B(r),u=U(l,n);return u.width=Math.floor(a*o),u.height=Math.floor(s*o),u.style.width=`${a}px`,u.style.height=`${s}px`,u})}function Gt(e,t){return E(this,null,function*(){return B(yield x(e,L(D({},t),{type:\"image/jpeg\"})))})}function Yt(e,t){return E(this,null,function*(){const r=yield x(e,t),n=yield K(r);return n.getContext(\"2d\").getImageData(0,0,n.width,n.height).data})}function Jt(e,t){return E(this,null,function*(){return B(yield x(e,L(D({},t),{type:\"image/png\"})))})}function Kt(e,t){return E(this,null,function*(){return B(yield x(e,L(D({},t),{type:\"image/webp\"})))})}h.createContext=pe,h.destroyContext=Ae,h.domToBlob=zt,h.domToCanvas=K,h.domToDataUrl=B,h.domToForeignObjectSvg=Pe,h.domToImage=Xt,h.domToJpeg=Gt,h.domToPixel=Yt,h.domToPng=Jt,h.domToSvg=Fe,h.domToWebp=Kt,h.loadMedia=$,h.waitUntilLoad=ge,Object.defineProperty(h,Symbol.toStringTag,{value:\"Module\"})});\n","/**\n * @gitlab/at.js - 1.5.7\n * Copyright (c) 2021 chord.luo <chord.luo@gmail.com>;\n * Homepage: https://gitlab.com/gitlab-org/frontend/At.js\n * License: MIT\n */\n(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module unless amdModuleId is set\n define([\"jquery\"], function (a0) {\n return (factory(a0));\n });\n } else if (typeof exports === 'object') {\n // Node. Does not work with strict CommonJS, but\n // only CommonJS-like environments that support module.exports,\n // like Node.\n module.exports = factory(require(\"jquery\"));\n } else {\n factory(jQuery);\n }\n}(this, function ($) {\nvar DEFAULT_CALLBACKS, KEY_CODE;\n\nKEY_CODE = {\n ESC: 27,\n TAB: 9,\n ENTER: 13,\n CTRL: 17,\n A: 65,\n P: 80,\n N: 78,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n BACKSPACE: 8,\n SPACE: 32\n};\n\nDEFAULT_CALLBACKS = {\n beforeSave: function(data) {\n return Controller.arrayToDefaultHash(data);\n },\n matcher: function(flag, subtext, should_startWithSpace, acceptSpaceBar) {\n var _a, _y, match, regexp, space;\n flag = flag.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, \"\\\\$&\");\n if (should_startWithSpace) {\n flag = '(?:^|\\\\s)' + flag;\n }\n _a = decodeURI(\"%C3%80\");\n _y = decodeURI(\"%C3%BF\");\n space = acceptSpaceBar ? \"\\ \" : \"\";\n regexp = new RegExp(flag + \"([A-Za-z\" + _a + \"-\" + _y + \"0-9_\" + space + \"\\'\\.\\+\\-]*)$|\" + flag + \"([^\\\\x00-\\\\xff]*)$\", 'gi');\n match = regexp.exec(subtext);\n if (match) {\n return match[2] || match[1];\n } else {\n return null;\n }\n },\n filter: function(query, data, searchKey) {\n var _results, i, item, len;\n _results = [];\n for (i = 0, len = data.length; i < len; i++) {\n item = data[i];\n if (~new String(item[searchKey]).toLowerCase().indexOf(query.toLowerCase())) {\n _results.push(item);\n }\n }\n return _results;\n },\n remoteFilter: null,\n sorter: function(query, items, searchKey) {\n var _results, i, item, len;\n if (!query) {\n return items;\n }\n _results = [];\n for (i = 0, len = items.length; i < len; i++) {\n item = items[i];\n item.atwho_order = new String(item[searchKey]).toLowerCase().indexOf(query.toLowerCase());\n if (item.atwho_order > -1) {\n _results.push(item);\n }\n }\n return _results.sort(function(a, b) {\n return a.atwho_order - b.atwho_order;\n });\n },\n tplEval: function(tpl, map) {\n var error, template;\n template = tpl;\n try {\n if (typeof tpl !== 'string') {\n template = tpl(map);\n }\n return template.replace(/\\$\\{([^\\}]*)\\}/g, function(tag, key, pos) {\n return map[key];\n });\n } catch (error1) {\n error = error1;\n return \"\";\n }\n },\n highlighter: function(li, query) {\n var regexp;\n if (!query) {\n return li;\n }\n regexp = new RegExp(\">\\\\s*([^\\<]*?)(\" + query.replace(\"+\", \"\\\\+\") + \")([^\\<]*)\\\\s*<\", 'ig');\n return li.replace(regexp, function(str, $1, $2, $3) {\n return '> ' + $1 + '<strong>' + $2 + '</strong>' + $3 + ' <';\n });\n },\n beforeInsert: function(value, $li, e) {\n return value;\n },\n beforeReposition: function(offset) {\n return offset;\n },\n afterMatchFailed: function(at, el) {}\n};\n\nvar App;\n\nApp = (function() {\n function App(inputor) {\n this.currentFlag = null;\n this.controllers = {};\n this.aliasMaps = {};\n this.$inputor = $(inputor);\n this.setupRootElement();\n this.listen();\n }\n\n App.prototype.createContainer = function(doc) {\n var ref;\n if ((ref = this.$el) != null) {\n ref.remove();\n }\n return $(doc.body).append(this.$el = $(\"<div class='atwho-container'></div>\"));\n };\n\n App.prototype.setupRootElement = function(iframe, asRoot) {\n var error;\n if (asRoot == null) {\n asRoot = false;\n }\n if (iframe) {\n this.window = iframe.contentWindow;\n this.document = iframe.contentDocument || this.window.document;\n this.iframe = iframe;\n } else {\n this.document = this.$inputor[0].ownerDocument;\n this.window = this.document.defaultView || this.document.parentWindow;\n try {\n this.iframe = this.window.frameElement;\n } catch (error1) {\n error = error1;\n this.iframe = null;\n if ($.fn.atwho.debug) {\n throw new Error(\"iframe auto-discovery is failed.\\nPlease use `setIframe` to set the target iframe manually.\\n\" + error);\n }\n }\n }\n return this.createContainer((this.iframeAsRoot = asRoot) ? this.document : document);\n };\n\n App.prototype.controller = function(at) {\n var c, current, currentFlag, ref;\n if (this.aliasMaps[at]) {\n current = this.controllers[this.aliasMaps[at]];\n } else {\n ref = this.controllers;\n for (currentFlag in ref) {\n c = ref[currentFlag];\n if (currentFlag === at) {\n current = c;\n break;\n }\n }\n }\n if (current) {\n return current;\n } else {\n return this.controllers[this.currentFlag];\n }\n };\n\n App.prototype.setContextFor = function(at) {\n this.currentFlag = at;\n return this;\n };\n\n App.prototype.reg = function(flag, setting) {\n var base, controller;\n controller = (base = this.controllers)[flag] || (base[flag] = this.$inputor.is('[contentEditable]') ? new EditableController(this, flag) : new TextareaController(this, flag));\n if (setting.alias) {\n this.aliasMaps[setting.alias] = flag;\n }\n controller.init(setting);\n return this;\n };\n\n App.prototype.listen = function() {\n return this.$inputor.on('compositionstart', (function(_this) {\n return function(e) {\n var ref;\n if ((ref = _this.controller()) != null) {\n ref.view.hide();\n }\n _this.isComposing = true;\n return null;\n };\n })(this)).on('compositionend', (function(_this) {\n return function(e) {\n _this.isComposing = false;\n setTimeout(function(e) {\n return _this.dispatch(e);\n });\n return null;\n };\n })(this)).on('keyup.atwhoInner', (function(_this) {\n return function(e) {\n return _this.onKeyup(e);\n };\n })(this)).on('keydown.atwhoInner', (function(_this) {\n return function(e) {\n return _this.onKeydown(e);\n };\n })(this)).on('blur.atwhoInner', (function(_this) {\n return function(e) {\n var c;\n if (c = _this.controller()) {\n c.expectedQueryCBId = null;\n return c.view.hide(e, c.getOpt(\"displayTimeout\"));\n }\n };\n })(this)).on('click.atwhoInner', (function(_this) {\n return function(e) {\n return _this.dispatch(e);\n };\n })(this)).on('scroll.atwhoInner', (function(_this) {\n return function() {\n var lastScrollTop;\n lastScrollTop = _this.$inputor.scrollTop();\n return function(e) {\n var currentScrollTop, ref;\n currentScrollTop = e.target.scrollTop;\n if (lastScrollTop !== currentScrollTop) {\n if ((ref = _this.controller()) != null) {\n ref.view.hide(e);\n }\n }\n lastScrollTop = currentScrollTop;\n return true;\n };\n };\n })(this)());\n };\n\n App.prototype.shutdown = function() {\n var _, c, ref;\n ref = this.controllers;\n for (_ in ref) {\n c = ref[_];\n c.destroy();\n delete this.controllers[_];\n }\n this.$inputor.off('.atwhoInner');\n return this.$el.remove();\n };\n\n App.prototype.dispatch = function(e) {\n var _, c, ref, results;\n if (void 0 === e) {\n return;\n }\n ref = this.controllers;\n results = [];\n for (_ in ref) {\n c = ref[_];\n results.push(c.lookUp(e));\n }\n return results;\n };\n\n App.prototype.onKeyup = function(e) {\n var ref;\n switch (e.keyCode) {\n case KEY_CODE.ESC:\n e.preventDefault();\n if ((ref = this.controller()) != null) {\n ref.view.hide();\n }\n break;\n case KEY_CODE.DOWN:\n case KEY_CODE.UP:\n case KEY_CODE.CTRL:\n case KEY_CODE.ENTER:\n $.noop();\n break;\n case KEY_CODE.P:\n case KEY_CODE.N:\n if (!e.ctrlKey) {\n this.dispatch(e);\n }\n break;\n default:\n this.dispatch(e);\n }\n };\n\n App.prototype.onKeydown = function(e) {\n var ref, view;\n view = (ref = this.controller()) != null ? ref.view : void 0;\n if (!(view && view.visible())) {\n return;\n }\n switch (e.keyCode) {\n case KEY_CODE.ESC:\n e.preventDefault();\n view.hide(e);\n break;\n case KEY_CODE.UP:\n e.preventDefault();\n view.prev();\n break;\n case KEY_CODE.DOWN:\n e.preventDefault();\n view.next();\n break;\n case KEY_CODE.P:\n if (!e.ctrlKey) {\n return;\n }\n e.preventDefault();\n view.prev();\n break;\n case KEY_CODE.N:\n if (!e.ctrlKey) {\n return;\n }\n e.preventDefault();\n view.next();\n break;\n case KEY_CODE.TAB:\n case KEY_CODE.ENTER:\n case KEY_CODE.SPACE:\n if (!view.visible()) {\n return;\n }\n if (!this.controller().getOpt('spaceSelectsMatch') && e.keyCode === KEY_CODE.SPACE) {\n return;\n }\n if (!this.controller().getOpt('tabSelectsMatch') && e.keyCode === KEY_CODE.TAB) {\n return;\n }\n if (view.highlighted()) {\n e.preventDefault();\n view.choose(e);\n } else {\n view.hide(e);\n }\n break;\n default:\n $.noop();\n }\n };\n\n return App;\n\n})();\n\nvar Controller,\n slice = [].slice;\n\nController = (function() {\n Controller.prototype.uid = function() {\n return (Math.random().toString(16) + \"000000000\").substr(2, 8) + (new Date().getTime());\n };\n\n function Controller(app, at1) {\n this.app = app;\n this.at = at1;\n this.$inputor = this.app.$inputor;\n this.id = this.$inputor[0].id || this.uid();\n this.expectedQueryCBId = null;\n this.setting = null;\n this.query = null;\n this.pos = 0;\n this.range = null;\n if ((this.$el = $(\"#atwho-ground-\" + this.id, this.app.$el)).length === 0) {\n this.app.$el.append(this.$el = $(\"<div id='atwho-ground-\" + this.id + \"'></div>\"));\n }\n this.model = new Model(this);\n this.view = new View(this);\n }\n\n Controller.prototype.init = function(setting) {\n this.setting = $.extend({}, this.setting || $.fn.atwho[\"default\"], setting);\n this.view.init();\n return this.model.reload(this.setting.data);\n };\n\n Controller.prototype.destroy = function() {\n this.trigger('beforeDestroy');\n this.model.destroy();\n this.view.destroy();\n return this.$el.remove();\n };\n\n Controller.prototype.callDefault = function() {\n var args, error, funcName;\n funcName = arguments[0], args = 2 <= arguments.length ? slice.call(arguments, 1) : [];\n try {\n return DEFAULT_CALLBACKS[funcName].apply(this, args);\n } catch (error1) {\n error = error1;\n return $.error(error + \" Or maybe At.js doesn't have function \" + funcName);\n }\n };\n\n Controller.prototype.trigger = function(name, data) {\n var alias, eventName;\n if (data == null) {\n data = [];\n }\n data.push(this);\n alias = this.getOpt('alias');\n eventName = alias ? name + \"-\" + alias + \".atwho\" : name + \".atwho\";\n return this.$inputor.trigger(eventName, data);\n };\n\n Controller.prototype.callbacks = function(funcName) {\n return this.getOpt(\"callbacks\")[funcName] || DEFAULT_CALLBACKS[funcName];\n };\n\n Controller.prototype.getOpt = function(at, default_value) {\n var e;\n try {\n return this.setting[at];\n } catch (error1) {\n e = error1;\n return null;\n }\n };\n\n Controller.prototype.insertContentFor = function($li) {\n var data, tpl;\n tpl = this.getOpt('insertTpl');\n data = $.extend({}, $li.data('item-data'), {\n 'atwho-at': this.at\n });\n return this.callbacks(\"tplEval\").call(this, tpl, data, \"onInsert\");\n };\n\n Controller.prototype.renderView = function(data) {\n var searchKey;\n searchKey = this.getOpt(\"searchKey\");\n data = this.callbacks(\"sorter\").call(this, this.query.text, data, searchKey);\n return this.view.render(data.slice(0, this.getOpt('limit')));\n };\n\n Controller.arrayToDefaultHash = function(data) {\n var i, item, len, results;\n if (!$.isArray(data)) {\n return data;\n }\n results = [];\n for (i = 0, len = data.length; i < len; i++) {\n item = data[i];\n if ($.isPlainObject(item)) {\n results.push(item);\n } else {\n results.push({\n name: item\n });\n }\n }\n return results;\n };\n\n Controller.prototype.lookUp = function(e) {\n var query, wait;\n if (e && e.type === 'click' && !this.getOpt('lookUpOnClick')) {\n return;\n }\n if (this.getOpt('suspendOnComposing') && this.app.isComposing) {\n return;\n }\n query = this.catchQuery(e);\n if (!query) {\n this.expectedQueryCBId = null;\n return query;\n }\n this.app.setContextFor(this.at);\n if (wait = this.getOpt('delay')) {\n this._delayLookUp(query, wait);\n } else {\n this._lookUp(query);\n }\n return query;\n };\n\n Controller.prototype._delayLookUp = function(query, wait) {\n var now, remaining;\n now = Date.now ? Date.now() : new Date().getTime();\n this.previousCallTime || (this.previousCallTime = now);\n remaining = wait - (now - this.previousCallTime);\n if ((0 < remaining && remaining < wait)) {\n this.previousCallTime = now;\n this._stopDelayedCall();\n return this.delayedCallTimeout = setTimeout((function(_this) {\n return function() {\n _this.previousCallTime = 0;\n _this.delayedCallTimeout = null;\n return _this._lookUp(query);\n };\n })(this), wait);\n } else {\n this._stopDelayedCall();\n if (this.previousCallTime !== now) {\n this.previousCallTime = 0;\n }\n return this._lookUp(query);\n }\n };\n\n Controller.prototype._stopDelayedCall = function() {\n if (this.delayedCallTimeout) {\n clearTimeout(this.delayedCallTimeout);\n return this.delayedCallTimeout = null;\n }\n };\n\n Controller.prototype._generateQueryCBId = function() {\n return {};\n };\n\n Controller.prototype._lookUp = function(query) {\n var _callback;\n _callback = function(queryCBId, data) {\n if (queryCBId !== this.expectedQueryCBId) {\n return;\n }\n if (data && data.length > 0) {\n return this.renderView(this.constructor.arrayToDefaultHash(data));\n } else {\n return this.view.hide();\n }\n };\n this.expectedQueryCBId = this._generateQueryCBId();\n return this.model.query(query.text, $.proxy(_callback, this, this.expectedQueryCBId));\n };\n\n return Controller;\n\n})();\n\nvar TextareaController,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\nTextareaController = (function(superClass) {\n extend(TextareaController, superClass);\n\n function TextareaController() {\n return TextareaController.__super__.constructor.apply(this, arguments);\n }\n\n TextareaController.prototype.catchQuery = function() {\n var caretPos, content, end, isString, query, start, subtext;\n content = this.$inputor.val();\n caretPos = this.$inputor.caret('pos', {\n iframe: this.app.iframe\n });\n subtext = content.slice(0, caretPos);\n query = this.callbacks(\"matcher\").call(this, this.at, subtext, this.getOpt('startWithSpace'), this.getOpt(\"acceptSpaceBar\"));\n isString = typeof query === 'string';\n if (isString && query.length < this.getOpt('minLen', 0)) {\n return;\n }\n if (isString && query.length <= this.getOpt('maxLen', 20)) {\n start = caretPos - query.length;\n end = start + query.length;\n this.pos = start;\n query = {\n 'text': query,\n 'headPos': start,\n 'endPos': end\n };\n this.trigger(\"matched\", [this.at, query.text]);\n } else {\n query = null;\n this.view.hide();\n }\n return this.query = query;\n };\n\n TextareaController.prototype.rect = function() {\n var c, iframeOffset, scaleBottom;\n if (!(c = this.$inputor.caret('offset', this.pos - 1, {\n iframe: this.app.iframe\n }))) {\n return;\n }\n if (this.app.iframe && !this.app.iframeAsRoot) {\n iframeOffset = $(this.app.iframe).offset();\n c.left += iframeOffset.left;\n c.top += iframeOffset.top;\n }\n scaleBottom = this.app.document.selection ? 0 : 2;\n return {\n left: c.left,\n top: c.top,\n bottom: c.top + c.height + scaleBottom\n };\n };\n\n TextareaController.prototype.insert = function(content, $li) {\n var $inputor, source, startStr, suffix, text;\n $inputor = this.$inputor;\n source = $inputor.val();\n startStr = source.slice(0, Math.max(this.query.headPos - this.at.length, 0));\n suffix = (suffix = this.getOpt('suffix')) === \"\" ? suffix : suffix || \" \";\n content += suffix;\n text = \"\" + startStr + content + (source.slice(this.query['endPos'] || 0));\n $inputor.val(text);\n $inputor.caret('pos', startStr.length + content.length, {\n iframe: this.app.iframe\n });\n if (!$inputor.is(':focus')) {\n $inputor.focus();\n }\n return $inputor.change();\n };\n\n return TextareaController;\n\n})(Controller);\n\nvar EditableController,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\nEditableController = (function(superClass) {\n extend(EditableController, superClass);\n\n function EditableController() {\n return EditableController.__super__.constructor.apply(this, arguments);\n }\n\n EditableController.prototype._getRange = function() {\n var sel;\n sel = this.app.window.getSelection();\n if (sel.rangeCount > 0) {\n return sel.getRangeAt(0);\n }\n };\n\n EditableController.prototype._setRange = function(position, node, range) {\n if (range == null) {\n range = this._getRange();\n }\n if (!(range && node)) {\n return;\n }\n node = $(node)[0];\n if (position === 'after') {\n range.setEndAfter(node);\n range.setStartAfter(node);\n } else {\n range.setEndBefore(node);\n range.setStartBefore(node);\n }\n range.collapse(false);\n return this._clearRange(range);\n };\n\n EditableController.prototype._clearRange = function(range) {\n var sel;\n if (range == null) {\n range = this._getRange();\n }\n sel = this.app.window.getSelection();\n if (this.ctrl_a_pressed == null) {\n sel.removeAllRanges();\n return sel.addRange(range);\n }\n };\n\n EditableController.prototype._movingEvent = function(e) {\n var ref;\n return e.type === 'click' || ((ref = e.which) === KEY_CODE.RIGHT || ref === KEY_CODE.LEFT || ref === KEY_CODE.UP || ref === KEY_CODE.DOWN);\n };\n\n EditableController.prototype._unwrap = function(node) {\n var next;\n node = $(node).unwrap().get(0);\n if ((next = node.nextSibling) && next.nodeValue) {\n node.nodeValue += next.nodeValue;\n $(next).remove();\n }\n return node;\n };\n\n EditableController.prototype.catchQuery = function(e) {\n var $inserted, $query, _range, index, inserted, isString, lastNode, matched, offset, query, query_content, range;\n if (!(range = this._getRange())) {\n return;\n }\n if (!range.collapsed) {\n return;\n }\n if (e.which === KEY_CODE.ENTER) {\n ($query = $(range.startContainer).closest('.atwho-query')).contents().unwrap();\n if ($query.is(':empty')) {\n $query.remove();\n }\n ($query = $(\".atwho-query\", this.app.document)).text($query.text()).contents().last().unwrap();\n this._clearRange();\n return;\n }\n if (/firefox/i.test(navigator.userAgent)) {\n if ($(range.startContainer).is(this.$inputor)) {\n this._clearRange();\n return;\n }\n if (e.which === KEY_CODE.BACKSPACE && range.startContainer.nodeType === document.ELEMENT_NODE && (offset = range.startOffset - 1) >= 0) {\n _range = range.cloneRange();\n _range.setStart(range.startContainer, offset);\n if ($(_range.cloneContents()).contents().last().is('.atwho-inserted')) {\n inserted = $(range.startContainer).contents().get(offset);\n this._setRange('after', $(inserted).contents().last());\n }\n } else if (e.which === KEY_CODE.LEFT && range.startContainer.nodeType === document.TEXT_NODE) {\n $inserted = $(range.startContainer.previousSibling);\n if ($inserted.is('.atwho-inserted') && range.startOffset === 0) {\n this._setRange('after', $inserted.contents().last());\n }\n }\n }\n $(range.startContainer).closest('.atwho-inserted').addClass('atwho-query').siblings().removeClass('atwho-query');\n if (($query = $(\".atwho-query\", this.app.document)).length > 0 && $query.is(':empty') && $query.text().length === 0) {\n $query.remove();\n }\n if (!this._movingEvent(e)) {\n $query.removeClass('atwho-inserted');\n }\n if ($query.length > 0) {\n switch (e.which) {\n case KEY_CODE.LEFT:\n this._setRange('before', $query.get(0), range);\n $query.removeClass('atwho-query');\n return;\n case KEY_CODE.RIGHT:\n this._setRange('after', $query.get(0).nextSibling, range);\n $query.removeClass('atwho-query');\n return;\n }\n }\n if ($query.length > 0 && (query_content = $query.attr('data-atwho-at-query'))) {\n $query.empty().html(query_content).attr('data-atwho-at-query', null);\n this._setRange('after', $query.get(0), range);\n }\n _range = range.cloneRange();\n _range.setStart(range.startContainer, 0);\n matched = this.callbacks(\"matcher\").call(this, this.at, _range.toString(), this.getOpt('startWithSpace'), this.getOpt(\"acceptSpaceBar\"));\n isString = typeof matched === 'string';\n if ($query.length === 0 && isString && (index = range.startOffset - this.at.length - matched.length) >= 0) {\n range.setStart(range.startContainer, index);\n $query = $('<span/>', this.app.document).attr(this.getOpt(\"editableAtwhoQueryAttrs\")).addClass('atwho-query');\n range.surroundContents($query.get(0));\n lastNode = $query.contents().last().get(0);\n if (lastNode) {\n if (/firefox/i.test(navigator.userAgent)) {\n range.setStart(lastNode, lastNode.length);\n range.setEnd(lastNode, lastNode.length);\n this._clearRange(range);\n } else {\n this._setRange('after', lastNode, range);\n }\n }\n }\n if (isString && matched.length < this.getOpt('minLen', 0)) {\n return;\n }\n if (isString && matched.length <= this.getOpt('maxLen', 20)) {\n query = {\n text: matched,\n el: $query\n };\n this.trigger(\"matched\", [this.at, query.text]);\n return this.query = query;\n } else {\n this.view.hide();\n this.query = {\n el: $query\n };\n if ($query.text().indexOf(this.at) >= 0) {\n if (this._movingEvent(e) && $query.hasClass('atwho-inserted')) {\n $query.removeClass('atwho-query');\n } else if (false !== this.callbacks('afterMatchFailed').call(this, this.at, $query)) {\n this._setRange(\"after\", this._unwrap($query.text($query.text()).contents().first()));\n }\n }\n return null;\n }\n };\n\n EditableController.prototype.rect = function() {\n var $iframe, iframeOffset, rect;\n rect = this.query.el.offset();\n if (!(rect && this.query.el[0].getClientRects().length)) {\n return;\n }\n if (this.app.iframe && !this.app.iframeAsRoot) {\n iframeOffset = ($iframe = $(this.app.iframe)).offset();\n rect.left += iframeOffset.left - this.$inputor.scrollLeft();\n rect.top += iframeOffset.top - this.$inputor.scrollTop();\n }\n rect.bottom = rect.top + this.query.el.height();\n return rect;\n };\n\n EditableController.prototype.insert = function(content, $li) {\n var data, overrides, range, suffix, suffixNode;\n if (!this.$inputor.is(':focus')) {\n this.$inputor.focus();\n }\n overrides = this.getOpt('functionOverrides');\n if (overrides.insert) {\n return overrides.insert.call(this, content, $li);\n }\n suffix = (suffix = this.getOpt('suffix')) === \"\" ? suffix : suffix || \"\\u00A0\";\n data = $li.data('item-data');\n this.query.el.removeClass('atwho-query').addClass('atwho-inserted').html(content).attr('data-atwho-at-query', \"\" + data['atwho-at'] + this.query.text).attr('contenteditable', \"false\");\n if (range = this._getRange()) {\n if (this.query.el.length) {\n range.setEndAfter(this.query.el[0]);\n }\n range.collapse(false);\n range.insertNode(suffixNode = this.app.document.createTextNode(\"\" + suffix));\n this._setRange('after', suffixNode, range);\n }\n if (!this.$inputor.is(':focus')) {\n this.$inputor.focus();\n }\n return this.$inputor.change();\n };\n\n return EditableController;\n\n})(Controller);\n\nvar Model;\n\nModel = (function() {\n function Model(context) {\n this.context = context;\n this.at = this.context.at;\n this.storage = this.context.$inputor;\n }\n\n Model.prototype.destroy = function() {\n return this.storage.data(this.at, null);\n };\n\n Model.prototype.saved = function() {\n return this.fetch() > 0;\n };\n\n Model.prototype.query = function(query, callback) {\n var _remoteFilter, data, searchKey;\n data = this.fetch();\n searchKey = this.context.getOpt(\"searchKey\");\n data = this.context.callbacks('filter').call(this.context, query, data, searchKey) || [];\n _remoteFilter = this.context.callbacks('remoteFilter');\n if (data.length > 0 || (!_remoteFilter && data.length === 0)) {\n return callback(data);\n } else {\n return _remoteFilter.call(this.context, query, callback);\n }\n };\n\n Model.prototype.fetch = function() {\n return this.storage.data(this.at) || [];\n };\n\n Model.prototype.save = function(data) {\n return this.storage.data(this.at, this.context.callbacks(\"beforeSave\").call(this.context, data || []));\n };\n\n Model.prototype.load = function(data) {\n if (!(this.saved() || !data)) {\n return this._load(data);\n }\n };\n\n Model.prototype.reload = function(data) {\n return this._load(data);\n };\n\n Model.prototype._load = function(data) {\n if (typeof data === \"string\") {\n throw new Error(\"@gitlab/at.js removed support for $.ajax\");\n } else {\n return this.save(data);\n }\n };\n\n return Model;\n\n})();\n\nvar View;\n\nView = (function() {\n function View(context) {\n this.context = context;\n this.$el = $(\"<div class='atwho-view'><ul class='atwho-view-ul'></ul></div>\");\n this.$elUl = this.$el.children();\n this.timeoutID = null;\n this.context.$el.append(this.$el);\n this.bindEvent();\n }\n\n View.prototype.init = function() {\n var header_tpl, id;\n id = this.context.getOpt(\"alias\") || this.context.at.charCodeAt(0);\n header_tpl = this.context.getOpt(\"headerTpl\");\n if (header_tpl && this.$el.children().length === 1) {\n this.$el.prepend(header_tpl);\n }\n return this.$el.attr({\n 'id': \"at-view-\" + id\n });\n };\n\n View.prototype.destroy = function() {\n return this.$el.remove();\n };\n\n View.prototype.bindEvent = function() {\n var $menu, lastCoordX, lastCoordY;\n $menu = this.$el.find('ul');\n lastCoordX = 0;\n lastCoordY = 0;\n return $menu.on('mousemove.atwho-view', 'li', (function(_this) {\n return function(e) {\n var $cur;\n if (lastCoordX === e.clientX && lastCoordY === e.clientY) {\n return;\n }\n lastCoordX = e.clientX;\n lastCoordY = e.clientY;\n $cur = $(e.currentTarget);\n if ($cur.hasClass('cur')) {\n return;\n }\n $menu.find('.cur').removeClass('cur');\n return $cur.addClass('cur');\n };\n })(this)).on('click.atwho-view', 'li', (function(_this) {\n return function(e) {\n $menu.find('.cur').removeClass('cur');\n $(e.currentTarget).addClass('cur');\n _this.choose(e);\n return e.preventDefault();\n };\n })(this));\n };\n\n View.prototype.visible = function() {\n return $.expr.filters.visible(this.$el[0]);\n };\n\n View.prototype.highlighted = function() {\n return this.$el.find(\".cur\").length > 0;\n };\n\n View.prototype.choose = function(e) {\n var $li, content;\n if (($li = this.$el.find(\".cur\")).length) {\n content = this.context.insertContentFor($li);\n this.context._stopDelayedCall();\n this.context.insert(this.context.callbacks(\"beforeInsert\").call(this.context, content, $li, e), $li);\n this.context.trigger(\"inserted\", [$li, e]);\n this.hide(e);\n }\n if (this.context.getOpt(\"hideWithoutSuffix\")) {\n return this.stopShowing = true;\n }\n };\n\n View.prototype.reposition = function(rect) {\n var _window, offset, overflowOffset, ref;\n _window = this.context.app.iframeAsRoot ? this.context.app.window : window;\n if (rect.bottom + this.$el.height() - $(_window).scrollTop() > $(_window).height()) {\n rect.bottom = rect.top - this.$el.height();\n }\n if (rect.left > (overflowOffset = $(_window).width() - this.$el.width() - 5)) {\n rect.left = overflowOffset;\n }\n offset = {\n left: rect.left,\n top: rect.bottom\n };\n if ((ref = this.context.callbacks(\"beforeReposition\")) != null) {\n ref.call(this.context, offset);\n }\n this.$el.offset(offset);\n return this.context.trigger(\"reposition\", [offset]);\n };\n\n View.prototype.next = function() {\n var cur, next, nextEl, offset;\n cur = this.$el.find('.cur').removeClass('cur');\n next = cur.next();\n if (!next.length) {\n next = this.$el.find('li:first');\n }\n next.addClass('cur');\n nextEl = next[0];\n offset = nextEl.offsetTop + nextEl.offsetHeight + (nextEl.nextSibling ? nextEl.nextSibling.offsetHeight : 0);\n return this.scrollTop(Math.max(0, offset - this.$el.height()));\n };\n\n View.prototype.prev = function() {\n var cur, offset, prev, prevEl;\n cur = this.$el.find('.cur').removeClass('cur');\n prev = cur.prev();\n if (!prev.length) {\n prev = this.$el.find('li:last');\n }\n prev.addClass('cur');\n prevEl = prev[0];\n offset = prevEl.offsetTop + prevEl.offsetHeight + (prevEl.nextSibling ? prevEl.nextSibling.offsetHeight : 0);\n return this.scrollTop(Math.max(0, offset - this.$el.height()));\n };\n\n View.prototype.scrollTop = function(scrollTop) {\n return this.$elUl.scrollTop(scrollTop);\n };\n\n View.prototype.show = function() {\n var rect;\n if (this.stopShowing) {\n this.stopShowing = false;\n return;\n }\n if (!this.visible()) {\n this.$el.show();\n this.$el.scrollTop(0);\n this.context.trigger('shown');\n }\n if (rect = this.context.rect()) {\n return this.reposition(rect);\n }\n };\n\n View.prototype.hide = function(e, time) {\n var callback;\n if (!this.visible()) {\n return;\n }\n if (isNaN(time)) {\n this.$el.hide();\n return this.context.trigger('hidden', [e]);\n } else {\n callback = (function(_this) {\n return function() {\n return _this.hide();\n };\n })(this);\n clearTimeout(this.timeoutID);\n return this.timeoutID = setTimeout(callback, time);\n }\n };\n\n View.prototype.render = function(list) {\n var $li, $ul, i, item, len, li, tpl;\n if (!($.isArray(list) && list.length > 0)) {\n this.hide();\n return;\n }\n this.$el.find('ul').empty();\n $ul = this.$el.find('ul');\n tpl = this.context.getOpt('displayTpl');\n for (i = 0, len = list.length; i < len; i++) {\n item = list[i];\n item = $.extend({}, item, {\n 'atwho-at': this.context.at\n });\n li = this.context.callbacks(\"tplEval\").call(this.context, tpl, item, \"onDisplay\");\n $li = $(this.context.callbacks(\"highlighter\").call(this.context, li, this.context.query.text));\n $li.data(\"item-data\", item);\n $ul.append($li);\n }\n this.show();\n if (this.context.getOpt('highlightFirst')) {\n return $ul.find(\"li:first\").addClass(\"cur\");\n }\n };\n\n return View;\n\n})();\n\nvar Api;\n\nApi = {\n load: function(at, data) {\n var c;\n if (c = this.controller(at)) {\n return c.model.load(data);\n }\n },\n isSelecting: function() {\n var ref;\n return !!((ref = this.controller()) != null ? ref.view.visible() : void 0);\n },\n hide: function() {\n var ref;\n return (ref = this.controller()) != null ? ref.view.hide() : void 0;\n },\n reposition: function() {\n var c;\n if (c = this.controller()) {\n return c.view.reposition(c.rect());\n }\n },\n setIframe: function(iframe, asRoot) {\n this.setupRootElement(iframe, asRoot);\n return null;\n },\n run: function() {\n return this.dispatch();\n },\n destroy: function() {\n this.shutdown();\n return this.$inputor.data('atwho', null);\n }\n};\n\n$.fn.atwho = function(method) {\n var _args, result;\n _args = arguments;\n result = null;\n this.filter('textarea, input, [contenteditable=\"\"], [contenteditable=true]').each(function() {\n var $this, app;\n if (!(app = ($this = $(this)).data(\"atwho\"))) {\n $this.data('atwho', (app = new App(this)));\n }\n if (typeof method === 'object' || !method) {\n return app.reg(method.at, method);\n } else if (Api[method] && app) {\n return result = Api[method].apply(app, Array.prototype.slice.call(_args, 1));\n } else {\n return $.error(\"Method \" + method + \" does not exist on jQuery.atwho\");\n }\n });\n if (result != null) {\n return result;\n } else {\n return this;\n }\n};\n\n$.fn.atwho[\"default\"] = {\n at: void 0,\n alias: void 0,\n data: null,\n displayTpl: \"<li>${name}</li>\",\n insertTpl: \"${atwho-at}${name}\",\n headerTpl: null,\n callbacks: DEFAULT_CALLBACKS,\n functionOverrides: {},\n searchKey: \"name\",\n suffix: void 0,\n hideWithoutSuffix: false,\n startWithSpace: true,\n acceptSpaceBar: false,\n highlightFirst: true,\n limit: 5,\n maxLen: 20,\n minLen: 0,\n displayTimeout: 300,\n delay: null,\n spaceSelectsMatch: false,\n tabSelectsMatch: true,\n editableAtwhoQueryAttrs: {},\n scrollDuration: 150,\n suspendOnComposing: true,\n lookUpOnClick: true\n};\n\n$.fn.atwho.debug = false;\n\n}));\n","// base dropdown events\nconst GL_DROPDOWN_SHOWN = 'shown';\nconst GL_DROPDOWN_HIDDEN = 'hidden';\nconst GL_DROPDOWN_BEFORE_CLOSE = 'beforeClose';\nconst GL_DROPDOWN_FOCUS_CONTENT = 'focusContent';\n\n// KEY Codes\nconst ARROW_DOWN = 'ArrowDown';\nconst ARROW_UP = 'ArrowUp';\nconst END = 'End';\nconst ENTER = 'Enter';\nconst HOME = 'Home';\nconst SPACE = 'Space';\n\n// Positioning strategies\n// https://floating-ui.com/docs/computePosition#strategy\nconst POSITION_ABSOLUTE = 'absolute';\nconst POSITION_FIXED = 'fixed';\nconst GL_DROPDOWN_CONTENTS_CLASS = 'gl-new-dropdown-contents';\n\nexport { ARROW_DOWN, ARROW_UP, END, ENTER, GL_DROPDOWN_BEFORE_CLOSE, GL_DROPDOWN_CONTENTS_CLASS, GL_DROPDOWN_FOCUS_CONTENT, GL_DROPDOWN_HIDDEN, GL_DROPDOWN_SHOWN, HOME, POSITION_ABSOLUTE, POSITION_FIXED, SPACE };\n","import { rectToClientRect, computePosition as computePosition$1 } from '@floating-ui/core';\nexport { arrow, autoPlacement, detectOverflow, flip, hide, inline, limitShift, offset, shift, size } from '@floating-ui/core';\n\nfunction getWindow(node) {\n var _node$ownerDocument;\n return ((_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;\n}\n\nfunction getComputedStyle$1(element) {\n return getWindow(element).getComputedStyle(element);\n}\n\nfunction isNode(value) {\n return value instanceof getWindow(value).Node;\n}\nfunction getNodeName(node) {\n if (isNode(node)) {\n return (node.nodeName || '').toLowerCase();\n }\n // Mocked nodes in testing environments may not be instances of Node. By\n // returning `#document` an infinite loop won't occur.\n // https://github.com/floating-ui/floating-ui/issues/2317\n return '#document';\n}\n\nfunction isHTMLElement(value) {\n return value instanceof getWindow(value).HTMLElement;\n}\nfunction isElement(value) {\n return value instanceof getWindow(value).Element;\n}\nfunction isShadowRoot(node) {\n // Browsers without `ShadowRoot` support.\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n return node instanceof getWindow(node).ShadowRoot || node instanceof ShadowRoot;\n}\nfunction isOverflowElement(element) {\n const {\n overflow,\n overflowX,\n overflowY,\n display\n } = getComputedStyle$1(element);\n return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !['inline', 'contents'].includes(display);\n}\nfunction isTableElement(element) {\n return ['table', 'td', 'th'].includes(getNodeName(element));\n}\nfunction isContainingBlock(element) {\n const safari = isSafari();\n const css = getComputedStyle$1(element);\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n return css.transform !== 'none' || css.perspective !== 'none' || (css.containerType ? css.containerType !== 'normal' : false) || !safari && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !safari && (css.filter ? css.filter !== 'none' : false) || ['transform', 'perspective', 'filter'].some(value => (css.willChange || '').includes(value)) || ['paint', 'layout', 'strict', 'content'].some(value => (css.contain || '').includes(value));\n}\nfunction isSafari() {\n if (typeof CSS === 'undefined' || !CSS.supports) return false;\n return CSS.supports('-webkit-backdrop-filter', 'none');\n}\nfunction isLastTraversableNode(node) {\n return ['html', 'body', '#document'].includes(getNodeName(node));\n}\n\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\nconst floor = Math.floor;\nconst createEmptyCoords = v => ({\n x: v,\n y: v\n});\n\nfunction getCssDimensions(element) {\n const css = getComputedStyle$1(element);\n // In testing environments, the `width` and `height` properties are empty\n // strings for SVG elements, returning NaN. Fallback to `0` in this case.\n let width = parseFloat(css.width) || 0;\n let height = parseFloat(css.height) || 0;\n const hasOffset = isHTMLElement(element);\n const offsetWidth = hasOffset ? element.offsetWidth : width;\n const offsetHeight = hasOffset ? element.offsetHeight : height;\n const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;\n if (shouldFallback) {\n width = offsetWidth;\n height = offsetHeight;\n }\n return {\n width,\n height,\n $: shouldFallback\n };\n}\n\nfunction unwrapElement(element) {\n return !isElement(element) ? element.contextElement : element;\n}\n\nfunction getScale(element) {\n const domElement = unwrapElement(element);\n if (!isHTMLElement(domElement)) {\n return createEmptyCoords(1);\n }\n const rect = domElement.getBoundingClientRect();\n const {\n width,\n height,\n $\n } = getCssDimensions(domElement);\n let x = ($ ? round(rect.width) : rect.width) / width;\n let y = ($ ? round(rect.height) : rect.height) / height;\n\n // 0, NaN, or Infinity should always fallback to 1.\n\n if (!x || !Number.isFinite(x)) {\n x = 1;\n }\n if (!y || !Number.isFinite(y)) {\n y = 1;\n }\n return {\n x,\n y\n };\n}\n\nconst noOffsets = /*#__PURE__*/createEmptyCoords(0);\nfunction getVisualOffsets(element, isFixed, floatingOffsetParent) {\n var _win$visualViewport, _win$visualViewport2;\n if (isFixed === void 0) {\n isFixed = true;\n }\n if (!isSafari()) {\n return noOffsets;\n }\n const win = element ? getWindow(element) : window;\n if (!floatingOffsetParent || isFixed && floatingOffsetParent !== win) {\n return noOffsets;\n }\n return {\n x: ((_win$visualViewport = win.visualViewport) == null ? void 0 : _win$visualViewport.offsetLeft) || 0,\n y: ((_win$visualViewport2 = win.visualViewport) == null ? void 0 : _win$visualViewport2.offsetTop) || 0\n };\n}\n\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n const clientRect = element.getBoundingClientRect();\n const domElement = unwrapElement(element);\n let scale = createEmptyCoords(1);\n if (includeScale) {\n if (offsetParent) {\n if (isElement(offsetParent)) {\n scale = getScale(offsetParent);\n }\n } else {\n scale = getScale(element);\n }\n }\n const visualOffsets = getVisualOffsets(domElement, isFixedStrategy, offsetParent);\n let x = (clientRect.left + visualOffsets.x) / scale.x;\n let y = (clientRect.top + visualOffsets.y) / scale.y;\n let width = clientRect.width / scale.x;\n let height = clientRect.height / scale.y;\n if (domElement) {\n const win = getWindow(domElement);\n const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;\n let currentIFrame = win.frameElement;\n while (currentIFrame && offsetParent && offsetWin !== win) {\n const iframeScale = getScale(currentIFrame);\n const iframeRect = currentIFrame.getBoundingClientRect();\n const css = getComputedStyle(currentIFrame);\n const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\n const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\n x *= iframeScale.x;\n y *= iframeScale.y;\n width *= iframeScale.x;\n height *= iframeScale.y;\n x += left;\n y += top;\n currentIFrame = getWindow(currentIFrame).frameElement;\n }\n }\n return rectToClientRect({\n width,\n height,\n x,\n y\n });\n}\n\nfunction getDocumentElement(node) {\n return ((isNode(node) ? node.ownerDocument : node.document) || window.document).documentElement;\n}\n\nfunction getNodeScroll(element) {\n if (isElement(element)) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n }\n return {\n scrollLeft: element.pageXOffset,\n scrollTop: element.pageYOffset\n };\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n rect,\n offsetParent,\n strategy\n } = _ref;\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n if (offsetParent === documentElement) {\n return rect;\n }\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n let scale = createEmptyCoords(1);\n const offsets = createEmptyCoords(0);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && strategy !== 'fixed') {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isHTMLElement(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent);\n scale = getScale(offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n }\n }\n return {\n width: rect.width * scale.x,\n height: rect.height * scale.y,\n x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x,\n y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y\n };\n}\n\nfunction getWindowScrollBarX(element) {\n // If <html> has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n return getBoundingClientRect(getDocumentElement(element)).left + getNodeScroll(element).scrollLeft;\n}\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable.\nfunction getDocumentRect(element) {\n const html = getDocumentElement(element);\n const scroll = getNodeScroll(element);\n const body = element.ownerDocument.body;\n const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n const y = -scroll.scrollTop;\n if (getComputedStyle$1(body).direction === 'rtl') {\n x += max(html.clientWidth, body.clientWidth) - width;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\nfunction getParentNode(node) {\n if (getNodeName(node) === 'html') {\n return node;\n }\n const result =\n // Step into the shadow DOM of the parent of a slotted node.\n node.assignedSlot ||\n // DOM Element detected.\n node.parentNode ||\n // ShadowRoot detected.\n isShadowRoot(node) && node.host ||\n // Fallback.\n getDocumentElement(node);\n return isShadowRoot(result) ? result.host : result;\n}\n\nfunction getNearestOverflowAncestor(node) {\n const parentNode = getParentNode(node);\n if (isLastTraversableNode(parentNode)) {\n return node.ownerDocument ? node.ownerDocument.body : node.body;\n }\n if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n return parentNode;\n }\n return getNearestOverflowAncestor(parentNode);\n}\n\nfunction getOverflowAncestors(node, list) {\n var _node$ownerDocument;\n if (list === void 0) {\n list = [];\n }\n const scrollableAncestor = getNearestOverflowAncestor(node);\n const isBody = scrollableAncestor === ((_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.body);\n const win = getWindow(scrollableAncestor);\n if (isBody) {\n return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : []);\n }\n return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor));\n}\n\nfunction getViewportRect(element, strategy) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n const visualViewportBased = isSafari();\n if (!visualViewportBased || visualViewportBased && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\n// Returns the inner client rect, subtracting scrollbars if present.\nfunction getInnerBoundingClientRect(element, strategy) {\n const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');\n const top = clientRect.top + element.clientTop;\n const left = clientRect.left + element.clientLeft;\n const scale = isHTMLElement(element) ? getScale(element) : createEmptyCoords(1);\n const width = element.clientWidth * scale.x;\n const height = element.clientHeight * scale.y;\n const x = left * scale.x;\n const y = top * scale.y;\n return {\n width,\n height,\n x,\n y\n };\n}\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n let rect;\n if (clippingAncestor === 'viewport') {\n rect = getViewportRect(element, strategy);\n } else if (clippingAncestor === 'document') {\n rect = getDocumentRect(getDocumentElement(element));\n } else if (isElement(clippingAncestor)) {\n rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n } else {\n const visualOffsets = getVisualOffsets(element);\n rect = {\n ...clippingAncestor,\n x: clippingAncestor.x - visualOffsets.x,\n y: clippingAncestor.y - visualOffsets.y\n };\n }\n return rectToClientRect(rect);\n}\nfunction hasFixedPositionAncestor(element, stopNode) {\n const parentNode = getParentNode(element);\n if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {\n return false;\n }\n return getComputedStyle$1(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);\n}\n\n// A \"clipping ancestor\" is an `overflow` element with the characteristic of\n// clipping (or hiding) child elements. This returns all clipping ancestors\n// of the given element up the tree.\nfunction getClippingElementAncestors(element, cache) {\n const cachedResult = cache.get(element);\n if (cachedResult) {\n return cachedResult;\n }\n let result = getOverflowAncestors(element).filter(el => isElement(el) && getNodeName(el) !== 'body');\n let currentContainingBlockComputedStyle = null;\n const elementIsFixed = getComputedStyle$1(element).position === 'fixed';\n let currentNode = elementIsFixed ? getParentNode(element) : element;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {\n const computedStyle = getComputedStyle$1(currentNode);\n const currentNodeIsContaining = isContainingBlock(currentNode);\n if (!currentNodeIsContaining && computedStyle.position === 'fixed') {\n currentContainingBlockComputedStyle = null;\n }\n const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && ['absolute', 'fixed'].includes(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);\n if (shouldDropCurrentNode) {\n // Drop non-containing blocks.\n result = result.filter(ancestor => ancestor !== currentNode);\n } else {\n // Record last containing block for next iteration.\n currentContainingBlockComputedStyle = computedStyle;\n }\n currentNode = getParentNode(currentNode);\n }\n cache.set(element, result);\n return result;\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping ancestors.\nfunction getClippingRect(_ref) {\n let {\n element,\n boundary,\n rootBoundary,\n strategy\n } = _ref;\n const elementClippingAncestors = boundary === 'clippingAncestors' ? getClippingElementAncestors(element, this._c) : [].concat(boundary);\n const clippingAncestors = [...elementClippingAncestors, rootBoundary];\n const firstClippingAncestor = clippingAncestors[0];\n const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {\n const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));\n return {\n width: clippingRect.right - clippingRect.left,\n height: clippingRect.bottom - clippingRect.top,\n x: clippingRect.left,\n y: clippingRect.top\n };\n}\n\nfunction getDimensions(element) {\n return getCssDimensions(element);\n}\n\nfunction getTrueOffsetParent(element, polyfill) {\n if (!isHTMLElement(element) || getComputedStyle$1(element).position === 'fixed') {\n return null;\n }\n if (polyfill) {\n return polyfill(element);\n }\n return element.offsetParent;\n}\nfunction getContainingBlock(element) {\n let currentNode = getParentNode(element);\n while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {\n if (isContainingBlock(currentNode)) {\n return currentNode;\n } else {\n currentNode = getParentNode(currentNode);\n }\n }\n return null;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nfunction getOffsetParent(element, polyfill) {\n const window = getWindow(element);\n if (!isHTMLElement(element)) {\n return window;\n }\n let offsetParent = getTrueOffsetParent(element, polyfill);\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle$1(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n }\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle$1(offsetParent).position === 'static' && !isContainingBlock(offsetParent))) {\n return window;\n }\n return offsetParent || getContainingBlock(element) || window;\n}\n\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const isFixed = strategy === 'fixed';\n const rect = getBoundingClientRect(element, true, isFixed, offsetParent);\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = createEmptyCoords(0);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isHTMLElement(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}\n\nconst platform = {\n getClippingRect,\n convertOffsetParentRelativeRectToViewportRelativeRect,\n isElement,\n getDimensions,\n getOffsetParent,\n getDocumentElement,\n getScale,\n async getElementRects(_ref) {\n let {\n reference,\n floating,\n strategy\n } = _ref;\n const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n const getDimensionsFn = this.getDimensions;\n return {\n reference: getRectRelativeToOffsetParent(reference, await getOffsetParentFn(floating), strategy),\n floating: {\n x: 0,\n y: 0,\n ...(await getDimensionsFn(floating))\n }\n };\n },\n getClientRects: element => Array.from(element.getClientRects()),\n isRTL: element => getComputedStyle$1(element).direction === 'rtl'\n};\n\n// https://samthor.au/2021/observing-dom/\nfunction observeMove(element, onMove) {\n let io = null;\n let timeoutId;\n const root = getDocumentElement(element);\n function cleanup() {\n clearTimeout(timeoutId);\n io && io.disconnect();\n io = null;\n }\n function refresh(skip, threshold) {\n if (skip === void 0) {\n skip = false;\n }\n if (threshold === void 0) {\n threshold = 1;\n }\n cleanup();\n const {\n left,\n top,\n width,\n height\n } = element.getBoundingClientRect();\n if (!skip) {\n onMove();\n }\n if (!width || !height) {\n return;\n }\n const insetTop = floor(top);\n const insetRight = floor(root.clientWidth - (left + width));\n const insetBottom = floor(root.clientHeight - (top + height));\n const insetLeft = floor(left);\n const rootMargin = -insetTop + \"px \" + -insetRight + \"px \" + -insetBottom + \"px \" + -insetLeft + \"px\";\n const options = {\n rootMargin,\n threshold: max(0, min(1, threshold)) || 1\n };\n let isFirstUpdate = true;\n function handleObserve(entries) {\n const ratio = entries[0].intersectionRatio;\n if (ratio !== threshold) {\n if (!isFirstUpdate) {\n return refresh();\n }\n if (!ratio) {\n timeoutId = setTimeout(() => {\n refresh(false, 1e-7);\n }, 100);\n } else {\n refresh(false, ratio);\n }\n }\n isFirstUpdate = false;\n }\n\n // Older browsers don't support a `document` as the root and will throw an\n // error.\n try {\n io = new IntersectionObserver(handleObserve, {\n ...options,\n // Handle <iframe>s\n root: root.ownerDocument\n });\n } catch (e) {\n io = new IntersectionObserver(handleObserve, options);\n }\n io.observe(element);\n }\n refresh(true);\n return cleanup;\n}\n\n/**\n * Automatically updates the position of the floating element when necessary.\n * Should only be called when the floating element is mounted on the DOM or\n * visible on the screen.\n * @returns cleanup function that should be invoked when the floating element is\n * removed from the DOM or hidden from the screen.\n * @see https://floating-ui.com/docs/autoUpdate\n */\nfunction autoUpdate(reference, floating, update, options) {\n if (options === void 0) {\n options = {};\n }\n const {\n ancestorScroll = true,\n ancestorResize = true,\n elementResize = typeof ResizeObserver === 'function',\n layoutShift = typeof IntersectionObserver === 'function',\n animationFrame = false\n } = options;\n const referenceEl = unwrapElement(reference);\n const ancestors = ancestorScroll || ancestorResize ? [...(referenceEl ? getOverflowAncestors(referenceEl) : []), ...getOverflowAncestors(floating)] : [];\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.addEventListener('scroll', update, {\n passive: true\n });\n ancestorResize && ancestor.addEventListener('resize', update);\n });\n const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null;\n let reobserveFrame = -1;\n let resizeObserver = null;\n if (elementResize) {\n resizeObserver = new ResizeObserver(_ref => {\n let [firstEntry] = _ref;\n if (firstEntry && firstEntry.target === referenceEl && resizeObserver) {\n // Prevent update loops when using the `size` middleware.\n // https://github.com/floating-ui/floating-ui/issues/1740\n resizeObserver.unobserve(floating);\n cancelAnimationFrame(reobserveFrame);\n reobserveFrame = requestAnimationFrame(() => {\n resizeObserver && resizeObserver.observe(floating);\n });\n }\n update();\n });\n if (referenceEl && !animationFrame) {\n resizeObserver.observe(referenceEl);\n }\n resizeObserver.observe(floating);\n }\n let frameId;\n let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;\n if (animationFrame) {\n frameLoop();\n }\n function frameLoop() {\n const nextRefRect = getBoundingClientRect(reference);\n if (prevRefRect && (nextRefRect.x !== prevRefRect.x || nextRefRect.y !== prevRefRect.y || nextRefRect.width !== prevRefRect.width || nextRefRect.height !== prevRefRect.height)) {\n update();\n }\n prevRefRect = nextRefRect;\n frameId = requestAnimationFrame(frameLoop);\n }\n update();\n return () => {\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.removeEventListener('scroll', update);\n ancestorResize && ancestor.removeEventListener('resize', update);\n });\n cleanupIo && cleanupIo();\n resizeObserver && resizeObserver.disconnect();\n resizeObserver = null;\n if (animationFrame) {\n cancelAnimationFrame(frameId);\n }\n };\n}\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a reference element when it is given a certain CSS positioning\n * strategy.\n */\nconst computePosition = (reference, floating, options) => {\n // This caches the expensive `getClippingElementAncestors` function so that\n // multiple lifecycle resets re-use the same result. It only lives for a\n // single call. If other functions become expensive, we can add them as well.\n const cache = new Map();\n const mergedOptions = {\n platform,\n ...options\n };\n const platformWithCache = {\n ...mergedOptions.platform,\n _c: cache\n };\n return computePosition$1(reference, floating, {\n ...mergedOptions,\n platform: platformWithCache\n });\n};\n\nexport { autoUpdate, computePosition, getOverflowAncestors, platform };\n","/**\n * Custom positioning reference element.\n * @see https://floating-ui.com/docs/virtual-elements\n */\n\nconst sides = ['top', 'right', 'bottom', 'left'];\nconst alignments = ['start', 'end'];\nconst placements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-\" + alignments[0], side + \"-\" + alignments[1]), []);\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\nconst floor = Math.floor;\nconst createCoords = v => ({\n x: v,\n y: v\n});\nconst oppositeSideMap = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nconst oppositeAlignmentMap = {\n start: 'end',\n end: 'start'\n};\nfunction clamp(start, value, end) {\n return max(start, min(value, end));\n}\nfunction evaluate(value, param) {\n return typeof value === 'function' ? value(param) : value;\n}\nfunction getSide(placement) {\n return placement.split('-')[0];\n}\nfunction getAlignment(placement) {\n return placement.split('-')[1];\n}\nfunction getOppositeAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}\nfunction getAxisLength(axis) {\n return axis === 'y' ? 'height' : 'width';\n}\nfunction getSideAxis(placement) {\n return ['top', 'bottom'].includes(getSide(placement)) ? 'y' : 'x';\n}\nfunction getAlignmentAxis(placement) {\n return getOppositeAxis(getSideAxis(placement));\n}\nfunction getAlignmentSides(placement, rects, rtl) {\n if (rtl === void 0) {\n rtl = false;\n }\n const alignment = getAlignment(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const length = getAxisLength(alignmentAxis);\n let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\n}\nfunction getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\nfunction getOppositeAlignmentPlacement(placement) {\n return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);\n}\nfunction getSideList(side, isStart, rtl) {\n const lr = ['left', 'right'];\n const rl = ['right', 'left'];\n const tb = ['top', 'bottom'];\n const bt = ['bottom', 'top'];\n switch (side) {\n case 'top':\n case 'bottom':\n if (rtl) return isStart ? rl : lr;\n return isStart ? lr : rl;\n case 'left':\n case 'right':\n return isStart ? tb : bt;\n default:\n return [];\n }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n const alignment = getAlignment(placement);\n let list = getSideList(getSide(placement), direction === 'start', rtl);\n if (alignment) {\n list = list.map(side => side + \"-\" + alignment);\n if (flipAlignment) {\n list = list.concat(list.map(getOppositeAlignmentPlacement));\n }\n }\n return list;\n}\nfunction getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, side => oppositeSideMap[side]);\n}\nfunction expandPaddingObject(padding) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...padding\n };\n}\nfunction getPaddingObject(padding) {\n return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n}\nfunction rectToClientRect(rect) {\n const {\n x,\n y,\n width,\n height\n } = rect;\n return {\n width,\n height,\n top: y,\n left: x,\n right: x + width,\n bottom: y + height,\n x,\n y\n };\n}\n\nexport { alignments, clamp, createCoords, evaluate, expandPaddingObject, floor, getAlignment, getAlignmentAxis, getAlignmentSides, getAxisLength, getExpandedPlacements, getOppositeAlignmentPlacement, getOppositeAxis, getOppositeAxisPlacements, getOppositePlacement, getPaddingObject, getSide, getSideAxis, max, min, placements, rectToClientRect, round, sides };\n","// Zen Mode (full screen) textarea\n//\n/*= provides zen_mode:enter */\n/*= provides zen_mode:leave */\n\nimport autosize from 'autosize';\nimport Dropzone from 'dropzone';\nimport $ from 'jquery';\nimport { Mousetrap } from '~/lib/mousetrap';\nimport 'mousetrap/plugins/pause/mousetrap-pause';\nimport { scrollToElement } from '~/lib/utils/common_utils';\n\nDropzone.autoDiscover = false;\n\n//\n// ### Events\n//\n// `zen_mode:enter`\n//\n// Fired when the \"Edit in fullscreen\" link is clicked.\n//\n// **Synchronicity** Sync\n// **Bubbles** Yes\n// **Cancelable** No\n// **Target** a.js-zen-enter\n//\n// `zen_mode:leave`\n//\n// Fired when the \"Leave Fullscreen\" link is clicked.\n//\n// **Synchronicity** Sync\n// **Bubbles** Yes\n// **Cancelable** No\n// **Target** a.js-zen-leave\n//\n\nexport default class ZenMode {\n constructor() {\n this.active_backdrop = null;\n this.active_textarea = null;\n this.storedStyle = null;\n $(document).on('click', '.js-zen-enter', (e) => {\n e.preventDefault();\n return $(e.currentTarget).trigger('zen_mode:enter');\n });\n $(document).on('click', '.js-zen-leave', (e) => {\n e.preventDefault();\n return $(e.currentTarget).trigger('zen_mode:leave');\n });\n $(document).on('zen_mode:enter', (e) => {\n this.enter($(e.target).closest('.md-area').find('.zen-backdrop'));\n });\n $(document).on('zen_mode:leave', () => {\n this.exit();\n });\n // eslint-disable-next-line consistent-return\n $(document).on('keydown', (e) => {\n // Esc\n if (e.keyCode === 27) {\n e.preventDefault();\n return $(document).trigger('zen_mode:leave');\n }\n });\n }\n\n enter(backdrop) {\n Mousetrap.pause();\n this.active_backdrop = $(backdrop);\n this.active_backdrop.addClass('fullscreen');\n this.active_textarea = this.active_backdrop.find('textarea');\n // Prevent a user-resized textarea from persisting to fullscreen\n this.storedStyle = this.active_textarea.attr('style');\n this.active_textarea.removeAttr('style');\n this.active_textarea.focus();\n }\n\n exit() {\n if (this.active_textarea) {\n Mousetrap.unpause();\n this.active_textarea.closest('.zen-backdrop').removeClass('fullscreen');\n scrollToElement(this.active_textarea, { duration: 0, offset: -100 });\n this.active_textarea.attr('style', this.storedStyle);\n\n autosize(this.active_textarea);\n autosize.update(this.active_textarea);\n\n this.active_textarea = null;\n this.active_backdrop = null;\n\n const $dropzone = $('.div-dropzone');\n if ($dropzone && !$dropzone.hasClass('js-invalid-dropzone')) {\n Dropzone.forElement('.div-dropzone').enable();\n }\n }\n }\n}\n","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/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","import GlClearIconButton from '../../shared_components/clear_icon_button/clear_icon_button';\nimport GlFormInput from '../form/form_input/form_input';\nimport GlIcon from '../icon/icon';\nimport GlLoadingIcon from '../loading_icon/loading_icon';\nimport { translate } from '../../../utils/i18n';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nvar script = {\n name: 'GlSearchboxByType',\n components: {\n GlClearIconButton,\n GlIcon,\n GlFormInput,\n GlLoadingIcon\n },\n inheritAttrs: false,\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 borderless: {\n type: Boolean,\n required: false,\n default: false\n },\n clearButtonTitle: {\n type: String,\n required: false,\n default: () => translate('GlSearchBoxByType.clearButtonTitle', 'Clear')\n },\n /**\n * If provided and true, disables the input and controls\n */\n disabled: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Puts search box into loading state, rendering spinner\n */\n isLoading: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Container for tooltip. Valid values: DOM node, selector string or `false` for default\n */\n tooltipContainer: {\n required: false,\n default: false,\n validator: value => value === false || typeof value === 'string' || value instanceof HTMLElement\n }\n },\n computed: {\n inputAttributes() {\n const attributes = {\n type: 'search',\n placeholder: translate('GlSearchBoxByType.input.placeholder', 'Search'),\n ...this.$attrs\n };\n if (!attributes['aria-label']) {\n attributes['aria-label'] = attributes.placeholder;\n }\n return attributes;\n },\n hasValue() {\n return Boolean(this.value.length);\n },\n inputListeners() {\n return {\n ...this.$listeners,\n input: this.onInput,\n focusin: this.onFocusin,\n focusout: this.onFocusout\n };\n },\n showClearButton() {\n return this.hasValue && !this.disabled;\n }\n },\n methods: {\n isInputOrClearButton(element) {\n var _this$$refs$input, _this$$refs$clearButt;\n return element === ((_this$$refs$input = this.$refs.input) === null || _this$$refs$input === void 0 ? void 0 : _this$$refs$input.$el) || element === ((_this$$refs$clearButt = this.$refs.clearButton) === null || _this$$refs$clearButt === void 0 ? void 0 : _this$$refs$clearButt.$el);\n },\n clearInput() {\n this.onInput('');\n this.focusInput();\n },\n focusInput() {\n this.$refs.input.$el.focus();\n },\n onInput(value) {\n this.$emit('input', value);\n },\n onFocusout(event) {\n const {\n relatedTarget\n } = event;\n if (this.isInputOrClearButton(relatedTarget)) {\n return;\n }\n this.$emit('focusout', event);\n },\n onFocusin(event) {\n const {\n relatedTarget\n } = event;\n if (this.isInputOrClearButton(relatedTarget)) {\n return;\n }\n this.$emit('focusin', event);\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-search-box-by-type\"},[_c('gl-icon',{staticClass:\"gl-search-box-by-type-search-icon\",attrs:{\"name\":\"search\",\"variant\":\"subtle\"}}),_vm._v(\" \"),_c('gl-form-input',_vm._g(_vm._b({ref:\"input\",class:{\n 'gl-search-box-by-type-input': !_vm.borderless,\n 'gl-search-box-by-type-input-borderless': _vm.borderless,\n },attrs:{\"value\":_vm.value,\"disabled\":_vm.disabled}},'gl-form-input',_vm.inputAttributes,false),_vm.inputListeners)),_vm._v(\" \"),(_vm.isLoading || _vm.showClearButton)?_c('div',{staticClass:\"gl-search-box-by-type-right-icons\"},[(_vm.isLoading)?_c('gl-loading-icon',{staticClass:\"gl-search-box-by-type-loading-icon\"}):_vm._e(),_vm._v(\" \"),(_vm.showClearButton)?_c('gl-clear-icon-button',{ref:\"clearButton\",staticClass:\"gl-search-box-by-type-clear gl-clear-icon-button\",attrs:{\"title\":_vm.clearButtonTitle,\"tooltip-container\":_vm.tooltipContainer},on:{\"click\":function($event){$event.stopPropagation();return _vm.clearInput.apply(null, arguments)},\"focusin\":_vm.onFocusin,\"focusout\":_vm.onFocusout}}):_vm._e()],1):_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 Vue from 'vue';\nimport VueApollo from 'vue-apollo';\nimport createApolloClient from '~/lib/graphql';\nimport { queryToObject, objectToQuery } from '~/lib/utils/url_utility';\nimport { parseBoolean } from '~/lib/utils/common_utils';\n\nimport { CLEAR_AUTOSAVE_ENTRY_EVENT } from '../../constants';\nimport MarkdownEditor from './markdown_editor.vue';\nimport eventHub from './eventhub';\n\nconst MR_SOURCE_BRANCH = 'merge_request[source_branch]';\nconst MR_TARGET_BRANCH = 'merge_request[target_branch]';\n\nfunction organizeQuery(obj, isFallbackKey = false) {\n if (!obj[MR_SOURCE_BRANCH] && !obj[MR_TARGET_BRANCH]) {\n return obj;\n }\n\n if (isFallbackKey) {\n return {\n [MR_SOURCE_BRANCH]: obj[MR_SOURCE_BRANCH],\n };\n }\n\n return {\n [MR_SOURCE_BRANCH]: obj[MR_SOURCE_BRANCH],\n [MR_TARGET_BRANCH]: obj[MR_TARGET_BRANCH],\n };\n}\n\nfunction format(searchTerm, isFallbackKey = false) {\n const queryObject = queryToObject(searchTerm, { legacySpacesDecode: true });\n const organizeQueryObject = organizeQuery(queryObject, isFallbackKey);\n const formattedQuery = objectToQuery(organizeQueryObject);\n\n return formattedQuery;\n}\n\nfunction getSearchTerm(newIssuePath) {\n const { search, pathname } = document.location;\n return newIssuePath === pathname ? '' : format(search);\n}\n\nfunction mountAutosaveClearOnSubmit(autosaveKey) {\n const resetAutosaveButtons = document.querySelectorAll('.js-reset-autosave');\n if (resetAutosaveButtons.length === 0) {\n return;\n }\n\n for (const resetAutosaveButton of resetAutosaveButtons) {\n resetAutosaveButton.addEventListener('click', () => {\n eventHub.$emit(CLEAR_AUTOSAVE_ENTRY_EVENT, autosaveKey);\n });\n }\n}\n\nexport function mountMarkdownEditor(options = {}) {\n const el = document.querySelector('.js-markdown-editor');\n const componentConfiguration = {\n provide: {\n ...options.provide,\n },\n };\n\n if (!el) {\n return null;\n }\n\n const {\n renderMarkdownPath,\n markdownDocsPath,\n quickActionsDocsPath,\n formFieldPlaceholder,\n formFieldClasses,\n testid,\n newIssuePath,\n } = el.dataset;\n\n const supportsQuickActions = parseBoolean(el.dataset.supportsQuickActions ?? true);\n const enableAutocomplete = parseBoolean(el.dataset.enableAutocomplete ?? true);\n const disableAttachments = parseBoolean(el.dataset.disableAttachments ?? false);\n const autofocus = parseBoolean(el.dataset.autofocus ?? true);\n const hiddenInput = el.querySelector('input[type=\"hidden\"]');\n const formFieldName = hiddenInput.getAttribute('name');\n const formFieldId = hiddenInput.getAttribute('id');\n const formFieldValue = hiddenInput.value;\n\n const searchTerm = getSearchTerm(newIssuePath);\n const facade = {\n setValue() {},\n getValue() {},\n focus() {},\n };\n\n const setFacade = (props) => Object.assign(facade, props);\n const autosaveKey = `autosave/${document.location.pathname}/${searchTerm}/description`;\n\n componentConfiguration.apolloProvider =\n options.apolloProvider || new VueApollo({ defaultClient: createApolloClient() });\n\n // eslint-disable-next-line no-new\n new Vue({\n el,\n render(h) {\n return h(MarkdownEditor, {\n props: {\n setFacade,\n value: formFieldValue,\n renderMarkdownPath,\n markdownDocsPath,\n quickActionsDocsPath,\n formFieldProps: {\n placeholder: formFieldPlaceholder,\n id: formFieldId,\n name: formFieldName,\n class: formFieldClasses,\n 'data-testid': testid,\n },\n autosaveKey,\n enableAutocomplete,\n autocompleteDataSources: gl.GfmAutoComplete?.dataSources,\n supportsQuickActions,\n disableAttachments,\n autofocus,\n },\n });\n },\n ...componentConfiguration,\n });\n\n mountAutosaveClearOnSubmit(autosaveKey);\n\n return facade;\n}\n","import uniqueId from 'lodash/uniqueId';\nimport { offset, autoPlacement, shift, size, autoUpdate, computePosition } from '@floating-ui/dom';\nimport { buttonCategoryOptions, dropdownVariantOptions, buttonSizeOptions, dropdownPlacements, dropdownAllowedAutoPlacements } from '../../../../utils/constants';\nimport { POSITION_ABSOLUTE, POSITION_FIXED, GL_DROPDOWN_CONTENTS_CLASS, GL_DROPDOWN_BEFORE_CLOSE, GL_DROPDOWN_SHOWN, GL_DROPDOWN_HIDDEN, ENTER, SPACE, ARROW_DOWN, GL_DROPDOWN_FOCUS_CONTENT } from '../constants';\nimport { logWarning, isElementFocusable, isElementTabbable } from '../../../../utils/utils';\nimport { OutsideDirective } from '../../../../directives/outside/outside';\nimport GlButton from '../../button/button';\nimport GlIcon from '../../icon/icon';\nimport { DEFAULT_OFFSET, FIXED_WIDTH_CLASS } from './constants';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nconst BASE_DROPDOWN_CLASS = 'gl-new-dropdown';\nvar script = {\n name: 'BaseDropdown',\n BASE_DROPDOWN_CLASS,\n components: {\n GlButton,\n GlIcon\n },\n directives: {\n Outside: OutsideDirective\n },\n props: {\n toggleText: {\n type: String,\n required: false,\n default: ''\n },\n textSrOnly: {\n type: Boolean,\n required: false,\n default: false\n },\n block: {\n type: Boolean,\n required: false,\n default: false\n },\n category: {\n type: String,\n required: false,\n default: buttonCategoryOptions.primary,\n validator: value => Object.keys(buttonCategoryOptions).includes(value)\n },\n variant: {\n type: String,\n required: false,\n default: dropdownVariantOptions.default,\n validator: value => Object.keys(dropdownVariantOptions).includes(value)\n },\n size: {\n type: String,\n required: false,\n default: 'medium',\n validator: value => Object.keys(buttonSizeOptions).includes(value)\n },\n icon: {\n type: String,\n required: false,\n default: ''\n },\n disabled: {\n type: Boolean,\n required: false,\n default: false\n },\n loading: {\n type: Boolean,\n required: false,\n default: false\n },\n toggleClass: {\n type: [String, Array, Object],\n required: false,\n default: null\n },\n noCaret: {\n type: Boolean,\n required: false,\n default: false\n },\n placement: {\n type: String,\n required: false,\n default: 'bottom-start',\n validator: value => {\n if (['left', 'center', 'right'].includes(value)) {\n logWarning(`GlDisclosureDropdown/GlCollapsibleListbox: \"${value}\" placement is deprecated.\n Use ${dropdownPlacements[value]} instead.`);\n }\n return Object.keys(dropdownPlacements).includes(value);\n }\n },\n // ARIA props\n ariaHaspopup: {\n type: [String, Boolean],\n required: false,\n default: false,\n validator: value => {\n return ['menu', 'listbox', 'tree', 'grid', 'dialog', true, false].includes(value);\n }\n },\n /**\n * Id that will be referenced by `aria-labelledby` attribute of the dropdown content`\n */\n toggleId: {\n type: String,\n required: true\n },\n /**\n * The `aria-labelledby` attribute value for the toggle `button`\n */\n ariaLabelledby: {\n type: String,\n required: false,\n default: null\n },\n /**\n * Custom value to be passed to the offset middleware.\n * https://floating-ui.com/docs/offset\n */\n offset: {\n type: [Number, Object],\n required: false,\n default: () => ({\n mainAxis: DEFAULT_OFFSET\n })\n },\n fluidWidth: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Strategy to be applied by computePosition. If this is set to fixed, the dropdown's position\n * needs to be set to fixed in CSS as well.\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 data() {\n return {\n openedYet: false,\n visible: false,\n baseDropdownId: uniqueId('base-dropdown-')\n };\n },\n computed: {\n hasNoVisibleToggleText() {\n var _this$toggleText;\n return !((_this$toggleText = this.toggleText) !== null && _this$toggleText !== void 0 && _this$toggleText.length) || this.textSrOnly;\n },\n isIconOnly() {\n return Boolean(this.icon && this.hasNoVisibleToggleText);\n },\n isEllipsisButton() {\n return this.isIconOnly && this.icon === 'ellipsis_h';\n },\n isCaretOnly() {\n return !this.noCaret && !this.icon && this.hasNoVisibleToggleText;\n },\n ariaAttributes() {\n return {\n 'aria-haspopup': this.ariaHaspopup,\n 'aria-expanded': String(this.visible),\n 'aria-controls': this.baseDropdownId,\n 'aria-labelledby': this.toggleLabelledBy\n };\n },\n toggleButtonClasses() {\n return [this.toggleClass, {\n 'gl-new-dropdown-toggle': true,\n 'button-ellipsis-horizontal': this.isEllipsisButton,\n 'gl-new-dropdown-icon-only btn-icon': this.isIconOnly && !this.isEllipsisButton,\n 'gl-new-dropdown-toggle-no-caret': this.noCaret,\n 'gl-new-dropdown-caret-only btn-icon': this.isCaretOnly\n }];\n },\n toggleButtonTextClasses() {\n return this.block ? 'gl-w-full' : '';\n },\n toggleLabelledBy() {\n return this.ariaLabelledby ? `${this.ariaLabelledby} ${this.toggleId}` : this.toggleId;\n },\n isDefaultToggle() {\n return !this.$scopedSlots.toggle;\n },\n toggleOptions() {\n if (this.isDefaultToggle) {\n return {\n is: GlButton,\n icon: this.icon,\n block: this.block,\n buttonTextClasses: this.toggleButtonTextClasses,\n category: this.category,\n variant: this.variant,\n size: this.size,\n disabled: this.disabled,\n loading: this.loading,\n class: this.toggleButtonClasses,\n ...this.ariaAttributes,\n listeners: {\n keydown: event => this.onKeydown(event),\n click: event => this.toggle(event)\n }\n };\n }\n return {\n is: 'div',\n class: 'gl-new-dropdown-custom-toggle',\n listeners: {\n keydown: event => this.onKeydown(event),\n click: event => this.toggle(event)\n }\n };\n },\n toggleListeners() {\n return this.toggleOptions.listeners;\n },\n toggleAttributes() {\n const {\n listeners,\n is,\n ...attributes\n } = this.toggleOptions;\n return attributes;\n },\n toggleComponent() {\n return this.toggleOptions.is;\n },\n toggleElement() {\n var _this$$refs$toggle;\n return this.$refs.toggle.$el || ((_this$$refs$toggle = this.$refs.toggle) === null || _this$$refs$toggle === void 0 ? void 0 : _this$$refs$toggle.firstElementChild);\n },\n panelClasses() {\n return {\n '!gl-block': this.visible,\n [FIXED_WIDTH_CLASS]: !this.fluidWidth,\n 'gl-fixed': this.openedYet && this.isFixed,\n 'gl-absolute': this.openedYet && !this.isFixed\n };\n },\n isFixed() {\n return this.positioningStrategy === POSITION_FIXED;\n },\n floatingUIConfig() {\n const placement = dropdownPlacements[this.placement];\n const [, alignment] = placement.split('-');\n return {\n placement,\n strategy: this.positioningStrategy,\n middleware: [offset(this.offset), autoPlacement({\n alignment,\n allowedPlacements: dropdownAllowedAutoPlacements[this.placement]\n }), shift(), size({\n apply: _ref => {\n var _this$nonScrollableCo;\n let {\n availableHeight,\n elements\n } = _ref;\n const contentsEl = elements.floating.querySelector(`.${GL_DROPDOWN_CONTENTS_CLASS}`);\n if (!contentsEl) {\n return;\n }\n const contentsAvailableHeight = availableHeight - ((_this$nonScrollableCo = this.nonScrollableContentHeight) !== null && _this$nonScrollableCo !== void 0 ? _this$nonScrollableCo : 0) - DEFAULT_OFFSET;\n Object.assign(contentsEl.style, {\n maxHeight: `${Math.max(contentsAvailableHeight, 0)}px`\n });\n }\n })]\n };\n }\n },\n watch: {\n ariaAttributes: {\n deep: true,\n handler(ariaAttributes) {\n if (this.$scopedSlots.toggle) {\n Object.keys(ariaAttributes).forEach(key => {\n this.toggleElement.setAttribute(key, ariaAttributes[key]);\n });\n }\n }\n }\n },\n mounted() {\n this.checkToggleFocusable();\n },\n beforeDestroy() {\n this.stopFloating();\n },\n methods: {\n checkToggleFocusable() {\n if (!isElementFocusable(this.toggleElement) && !isElementTabbable(this.toggleElement)) {\n logWarning(`GlDisclosureDropdown/GlCollapsibleListbox: Toggle is missing a 'tabindex' and cannot be focused.\n Use 'a' or 'button' element instead or make sure to add 'role=\"button\"' along with 'tabindex' otherwise.`, this.$el);\n }\n },\n async startFloating() {\n this.calculateNonScrollableAreaHeight();\n this.observer = new MutationObserver(this.calculateNonScrollableAreaHeight);\n this.observer.observe(this.$refs.content, {\n attributes: false,\n childList: true,\n subtree: true\n });\n this.stopAutoUpdate = autoUpdate(this.toggleElement, this.$refs.content, async () => {\n const {\n x,\n y\n } = await computePosition(this.toggleElement, this.$refs.content, this.floatingUIConfig);\n\n /**\n * Due to the asynchronous nature of computePosition, it's technically possible for the\n * component to have been destroyed by the time the promise resolves. In such case, we exit\n * early to prevent a TypeError.\n */\n if (!this.$refs.content) return;\n Object.assign(this.$refs.content.style, {\n left: `${x}px`,\n top: `${y}px`\n });\n });\n },\n stopFloating() {\n var _this$observer, _this$stopAutoUpdate;\n (_this$observer = this.observer) === null || _this$observer === void 0 ? void 0 : _this$observer.disconnect();\n (_this$stopAutoUpdate = this.stopAutoUpdate) === null || _this$stopAutoUpdate === void 0 ? void 0 : _this$stopAutoUpdate.call(this);\n },\n async toggle(event) {\n if (event && this.visible) {\n let prevented = false;\n this.$emit(GL_DROPDOWN_BEFORE_CLOSE, {\n originalEvent: event,\n preventDefault() {\n prevented = true;\n }\n });\n if (prevented) return false;\n }\n this.visible = !this.visible;\n if (this.visible) {\n // The dropdown needs to be actually visible before we compute its position with Floating UI.\n await this.$nextTick();\n this.openedYet = true;\n /**\n * We wait until the dropdown's position has been computed before emitting the `shown` event.\n * This ensures that, if the parent component attempts to focus an inner element, the dropdown\n * is already properly placed in the page. Otherwise, the page would scroll back to the top.\n */\n this.startFloating();\n this.$emit(GL_DROPDOWN_SHOWN);\n } else {\n this.stopFloating();\n this.$emit(GL_DROPDOWN_HIDDEN);\n }\n\n // this is to check whether `toggle` was prevented or not\n return true;\n },\n open() {\n if (this.visible) {\n return;\n }\n this.toggle();\n },\n close(event) {\n if (!this.visible) {\n return;\n }\n this.toggle(event);\n },\n /**\n * Closes the dropdown and returns the focus to the toggle unless it has has moved outside\n * of the dropdown, meaning that the consumer needed to put some other element in focus.\n *\n * @param {KeyboardEvent?} event The keyboard event that caused the dropdown to close.\n */\n async closeAndFocus(event) {\n if (!this.visible) {\n return;\n }\n const hadFocusWithin = this.$el.contains(document.activeElement);\n const hasToggled = await this.toggle(event);\n if (!hadFocusWithin) {\n return;\n }\n if (hasToggled) {\n this.focusToggle();\n }\n },\n focusToggle() {\n this.toggleElement.focus();\n },\n onKeydown(event) {\n const {\n code,\n target: {\n tagName\n }\n } = event;\n let toggleOnEnter = true;\n let toggleOnSpace = true;\n if (tagName === 'BUTTON') {\n toggleOnEnter = false;\n toggleOnSpace = false;\n } else if (tagName === 'A') {\n toggleOnEnter = false;\n }\n if (code === ENTER && toggleOnEnter || code === SPACE && toggleOnSpace) {\n this.toggle(event);\n }\n if (code === ARROW_DOWN) {\n this.$emit(GL_DROPDOWN_FOCUS_CONTENT, event);\n }\n },\n calculateNonScrollableAreaHeight() {\n var _this$$refs$content;\n const scrollableArea = (_this$$refs$content = this.$refs.content) === null || _this$$refs$content === void 0 ? void 0 : _this$$refs$content.querySelector(`.${GL_DROPDOWN_CONTENTS_CLASS}`);\n if (!scrollableArea) return;\n const floatingElementBoundingBox = this.$refs.content.getBoundingClientRect();\n const scrollableAreaBoundingBox = scrollableArea.getBoundingClientRect();\n this.nonScrollableContentHeight = floatingElementBoundingBox.height - scrollableAreaBoundingBox.height;\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',{directives:[{name:\"outside\",rawName:\"v-outside.click.focusin\",value:(_vm.close),expression:\"close\",modifiers:{\"click\":true,\"focusin\":true}}],class:[_vm.$options.BASE_DROPDOWN_CLASS, { '!gl-block': _vm.block }]},[_c(_vm.toggleComponent,_vm._g(_vm._b({ref:\"toggle\",tag:\"component\",attrs:{\"id\":_vm.toggleId,\"data-testid\":\"base-dropdown-toggle\"},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"])){ return null; }$event.stopPropagation();$event.preventDefault();return _vm.close.apply(null, arguments)}}},'component',_vm.toggleAttributes,false),_vm.toggleListeners),[_vm._t(\"toggle\",function(){return [_c('span',{staticClass:\"gl-new-dropdown-button-text\",class:{ 'gl-sr-only': _vm.textSrOnly }},[_vm._v(\"\\n \"+_vm._s(_vm.toggleText)+\"\\n \")]),_vm._v(\" \"),(!_vm.noCaret)?_c('gl-icon',{staticClass:\"gl-button-icon gl-new-dropdown-chevron\",attrs:{\"name\":\"chevron-down\"}}):_vm._e()]})],2),_vm._v(\" \"),_c('div',{ref:\"content\",staticClass:\"gl-new-dropdown-panel\",class:_vm.panelClasses,attrs:{\"id\":_vm.baseDropdownId,\"data-testid\":\"base-dropdown-menu\"},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"])){ return null; }$event.stopPropagation();$event.preventDefault();return _vm.closeAndFocus.apply(null, arguments)}}},[_c('div',{staticClass:\"gl-new-dropdown-inner\"},[_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__;\nexport { BASE_DROPDOWN_CLASS };\n","const FIXED_WIDTH_CLASS = '!gl-w-31';\nconst DEFAULT_OFFSET = 4;\n\nexport { DEFAULT_OFFSET, FIXED_WIDTH_CLASS };\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","import { getSideAxis, getAlignmentAxis, getAxisLength, getSide, getAlignment, evaluate, getPaddingObject, rectToClientRect, min, clamp, placements, getAlignmentSides, getOppositeAlignmentPlacement, getOppositePlacement, getExpandedPlacements, getOppositeAxisPlacements, sides, max, getOppositeAxis } from '@floating-ui/utils';\nexport { rectToClientRect } from '@floating-ui/utils';\n\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n let {\n reference,\n floating\n } = _ref;\n const sideAxis = getSideAxis(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const alignLength = getAxisLength(alignmentAxis);\n const side = getSide(placement);\n const isVertical = sideAxis === 'y';\n const commonX = reference.x + reference.width / 2 - floating.width / 2;\n const commonY = reference.y + reference.height / 2 - floating.height / 2;\n const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;\n let coords;\n switch (side) {\n case 'top':\n coords = {\n x: commonX,\n y: reference.y - floating.height\n };\n break;\n case 'bottom':\n coords = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n case 'right':\n coords = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n case 'left':\n coords = {\n x: reference.x - floating.width,\n y: commonY\n };\n break;\n default:\n coords = {\n x: reference.x,\n y: reference.y\n };\n }\n switch (getAlignment(placement)) {\n case 'start':\n coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n case 'end':\n coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n }\n return coords;\n}\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n *\n * This export does not have any `platform` interface logic. You will need to\n * write one for the platform you are using Floating UI with.\n */\nconst computePosition = async (reference, floating, config) => {\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform\n } = config;\n const validMiddleware = middleware.filter(Boolean);\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));\n let rects = await platform.getElementRects({\n reference,\n floating,\n strategy\n });\n let {\n x,\n y\n } = computeCoordsFromPlacement(rects, placement, rtl);\n let statefulPlacement = placement;\n let middlewareData = {};\n let resetCount = 0;\n for (let i = 0; i < validMiddleware.length; i++) {\n const {\n name,\n fn\n } = validMiddleware[i];\n const {\n x: nextX,\n y: nextY,\n data,\n reset\n } = await fn({\n x,\n y,\n initialPlacement: placement,\n placement: statefulPlacement,\n strategy,\n middlewareData,\n rects,\n platform,\n elements: {\n reference,\n floating\n }\n });\n x = nextX != null ? nextX : x;\n y = nextY != null ? nextY : y;\n middlewareData = {\n ...middlewareData,\n [name]: {\n ...middlewareData[name],\n ...data\n }\n };\n if (reset && resetCount <= 50) {\n resetCount++;\n if (typeof reset === 'object') {\n if (reset.placement) {\n statefulPlacement = reset.placement;\n }\n if (reset.rects) {\n rects = reset.rects === true ? await platform.getElementRects({\n reference,\n floating,\n strategy\n }) : reset.rects;\n }\n ({\n x,\n y\n } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\n }\n i = -1;\n }\n }\n return {\n x,\n y,\n placement: statefulPlacement,\n strategy,\n middlewareData\n };\n};\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nasync function detectOverflow(state, options) {\n var _await$platform$isEle;\n if (options === void 0) {\n options = {};\n }\n const {\n x,\n y,\n platform,\n rects,\n elements,\n strategy\n } = state;\n const {\n boundary = 'clippingAncestors',\n rootBoundary = 'viewport',\n elementContext = 'floating',\n altBoundary = false,\n padding = 0\n } = evaluate(options, state);\n const paddingObject = getPaddingObject(padding);\n const altContext = elementContext === 'floating' ? 'reference' : 'floating';\n const element = elements[altBoundary ? altContext : elementContext];\n const clippingClientRect = rectToClientRect(await platform.getClippingRect({\n element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),\n boundary,\n rootBoundary,\n strategy\n }));\n const rect = elementContext === 'floating' ? {\n x,\n y,\n width: rects.floating.width,\n height: rects.floating.height\n } : rects.reference;\n const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));\n const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {\n x: 1,\n y: 1\n } : {\n x: 1,\n y: 1\n };\n const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n elements,\n rect,\n offsetParent,\n strategy\n }) : rect);\n return {\n top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,\n bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,\n left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,\n right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x\n };\n}\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => ({\n name: 'arrow',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n platform,\n elements,\n middlewareData\n } = state;\n // Since `element` is required, we don't Partial<> the type.\n const {\n element,\n padding = 0\n } = evaluate(options, state) || {};\n if (element == null) {\n return {};\n }\n const paddingObject = getPaddingObject(padding);\n const coords = {\n x,\n y\n };\n const axis = getAlignmentAxis(placement);\n const length = getAxisLength(axis);\n const arrowDimensions = await platform.getDimensions(element);\n const isYAxis = axis === 'y';\n const minProp = isYAxis ? 'top' : 'left';\n const maxProp = isYAxis ? 'bottom' : 'right';\n const clientProp = isYAxis ? 'clientHeight' : 'clientWidth';\n const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];\n const startDiff = coords[axis] - rects.reference[axis];\n const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element));\n let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;\n\n // DOM platform can return `window` as the `offsetParent`.\n if (!clientSize || !(await (platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent)))) {\n clientSize = elements.floating[clientProp] || rects.floating[length];\n }\n const centerToReference = endDiff / 2 - startDiff / 2;\n\n // If the padding is large enough that it causes the arrow to no longer be\n // centered, modify the padding so that it is centered.\n const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;\n const minPadding = min(paddingObject[minProp], largestPossiblePadding);\n const maxPadding = min(paddingObject[maxProp], largestPossiblePadding);\n\n // Make sure the arrow doesn't overflow the floating element if the center\n // point is outside the floating element's bounds.\n const min$1 = minPadding;\n const max = clientSize - arrowDimensions[length] - maxPadding;\n const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n const offset = clamp(min$1, center, max);\n\n // If the reference is small enough that the arrow's padding causes it to\n // to point to nothing for an aligned placement, adjust the offset of the\n // floating element itself. To ensure `shift()` continues to take action,\n // a single reset is performed when this is true.\n const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;\n const alignmentOffset = shouldAddOffset ? center < min$1 ? center - min$1 : center - max : 0;\n return {\n [axis]: coords[axis] + alignmentOffset,\n data: {\n [axis]: offset,\n centerOffset: center - offset - alignmentOffset,\n ...(shouldAddOffset && {\n alignmentOffset\n })\n },\n reset: shouldAddOffset\n };\n }\n});\n\nfunction getPlacementList(alignment, autoAlignment, allowedPlacements) {\n const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => getAlignment(placement) === alignment), ...allowedPlacements.filter(placement => getAlignment(placement) !== alignment)] : allowedPlacements.filter(placement => getSide(placement) === placement);\n return allowedPlacementsSortedByAlignment.filter(placement => {\n if (alignment) {\n return getAlignment(placement) === alignment || (autoAlignment ? getOppositeAlignmentPlacement(placement) !== placement : false);\n }\n return true;\n });\n}\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'autoPlacement',\n options,\n async fn(state) {\n var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE;\n const {\n rects,\n middlewareData,\n placement,\n platform,\n elements\n } = state;\n const {\n crossAxis = false,\n alignment,\n allowedPlacements = placements,\n autoAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n const placements$1 = alignment !== undefined || allowedPlacements === placements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0;\n const currentPlacement = placements$1[currentIndex];\n if (currentPlacement == null) {\n return {};\n }\n const alignmentSides = getAlignmentSides(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));\n\n // Make `computeCoords` start from the right place.\n if (placement !== currentPlacement) {\n return {\n reset: {\n placement: placements$1[0]\n }\n };\n }\n const currentOverflows = [overflow[getSide(currentPlacement)], overflow[alignmentSides[0]], overflow[alignmentSides[1]]];\n const allOverflows = [...(((_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.overflows) || []), {\n placement: currentPlacement,\n overflows: currentOverflows\n }];\n const nextPlacement = placements$1[currentIndex + 1];\n\n // There are more placements to check.\n if (nextPlacement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n const placementsSortedByMostSpace = allOverflows.map(d => {\n const alignment = getAlignment(d.placement);\n return [d.placement, alignment && crossAxis ?\n // Check along the mainAxis and main crossAxis side.\n d.overflows.slice(0, 2).reduce((acc, v) => acc + v, 0) :\n // Check only the mainAxis.\n d.overflows[0], d.overflows];\n }).sort((a, b) => a[1] - b[1]);\n const placementsThatFitOnEachSide = placementsSortedByMostSpace.filter(d => d[2].slice(0,\n // Aligned placements should not check their opposite crossAxis\n // side.\n getAlignment(d[0]) ? 2 : 3).every(v => v <= 0));\n const resetPlacement = ((_placementsThatFitOnE = placementsThatFitOnEachSide[0]) == null ? void 0 : _placementsThatFitOnE[0]) || placementsSortedByMostSpace[0][0];\n if (resetPlacement !== placement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: resetPlacement\n }\n };\n }\n return {};\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'flip',\n options,\n async fn(state) {\n var _middlewareData$arrow, _middlewareData$flip;\n const {\n placement,\n middlewareData,\n rects,\n initialPlacement,\n platform,\n elements\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true,\n fallbackPlacements: specifiedFallbackPlacements,\n fallbackStrategy = 'bestFit',\n fallbackAxisSideDirection = 'none',\n flipAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n\n // If a reset by the arrow was caused due to an alignment offset being\n // added, we should skip any logic now since `flip()` has already done its\n // work.\n // https://github.com/floating-ui/floating-ui/issues/2549#issuecomment-1719601643\n if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n const side = getSide(placement);\n const initialSideAxis = getSideAxis(initialPlacement);\n const isBasePlacement = getSide(initialPlacement) === initialPlacement;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n const hasFallbackAxisSideDirection = fallbackAxisSideDirection !== 'none';\n if (!specifiedFallbackPlacements && hasFallbackAxisSideDirection) {\n fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));\n }\n const placements = [initialPlacement, ...fallbackPlacements];\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const overflows = [];\n let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n if (checkMainAxis) {\n overflows.push(overflow[side]);\n }\n if (checkCrossAxis) {\n const sides = getAlignmentSides(placement, rects, rtl);\n overflows.push(overflow[sides[0]], overflow[sides[1]]);\n }\n overflowsData = [...overflowsData, {\n placement,\n overflows\n }];\n\n // One or more sides is overflowing.\n if (!overflows.every(side => side <= 0)) {\n var _middlewareData$flip2, _overflowsData$filter;\n const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;\n const nextPlacement = placements[nextIndex];\n if (nextPlacement) {\n // Try next placement and re-run the lifecycle.\n return {\n data: {\n index: nextIndex,\n overflows: overflowsData\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n\n // First, find the candidates that fit on the mainAxis side of overflow,\n // then find the placement that fits the best on the main crossAxis side.\n let resetPlacement = (_overflowsData$filter = overflowsData.filter(d => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;\n\n // Otherwise fallback.\n if (!resetPlacement) {\n switch (fallbackStrategy) {\n case 'bestFit':\n {\n var _overflowsData$filter2;\n const placement = (_overflowsData$filter2 = overflowsData.filter(d => {\n if (hasFallbackAxisSideDirection) {\n const currentSideAxis = getSideAxis(d.placement);\n return currentSideAxis === initialSideAxis ||\n // Create a bias to the `y` side axis due to horizontal\n // reading directions favoring greater width.\n currentSideAxis === 'y';\n }\n return true;\n }).map(d => [d.placement, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$filter2[0];\n if (placement) {\n resetPlacement = placement;\n }\n break;\n }\n case 'initialPlacement':\n resetPlacement = initialPlacement;\n break;\n }\n }\n if (placement !== resetPlacement) {\n return {\n reset: {\n placement: resetPlacement\n }\n };\n }\n }\n return {};\n }\n };\n};\n\nfunction getSideOffsets(overflow, rect) {\n return {\n top: overflow.top - rect.height,\n right: overflow.right - rect.width,\n bottom: overflow.bottom - rect.height,\n left: overflow.left - rect.width\n };\n}\nfunction isAnySideFullyClipped(overflow) {\n return sides.some(side => overflow[side] >= 0);\n}\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'hide',\n options,\n async fn(state) {\n const {\n rects\n } = state;\n const {\n strategy = 'referenceHidden',\n ...detectOverflowOptions\n } = evaluate(options, state);\n switch (strategy) {\n case 'referenceHidden':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n elementContext: 'reference'\n });\n const offsets = getSideOffsets(overflow, rects.reference);\n return {\n data: {\n referenceHiddenOffsets: offsets,\n referenceHidden: isAnySideFullyClipped(offsets)\n }\n };\n }\n case 'escaped':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n altBoundary: true\n });\n const offsets = getSideOffsets(overflow, rects.floating);\n return {\n data: {\n escapedOffsets: offsets,\n escaped: isAnySideFullyClipped(offsets)\n }\n };\n }\n default:\n {\n return {};\n }\n }\n }\n };\n};\n\nfunction getBoundingRect(rects) {\n const minX = min(...rects.map(rect => rect.left));\n const minY = min(...rects.map(rect => rect.top));\n const maxX = max(...rects.map(rect => rect.right));\n const maxY = max(...rects.map(rect => rect.bottom));\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n}\nfunction getRectsByLine(rects) {\n const sortedRects = rects.slice().sort((a, b) => a.y - b.y);\n const groups = [];\n let prevRect = null;\n for (let i = 0; i < sortedRects.length; i++) {\n const rect = sortedRects[i];\n if (!prevRect || rect.y - prevRect.y > prevRect.height / 2) {\n groups.push([rect]);\n } else {\n groups[groups.length - 1].push(rect);\n }\n prevRect = rect;\n }\n return groups.map(rect => rectToClientRect(getBoundingRect(rect)));\n}\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'inline',\n options,\n async fn(state) {\n const {\n placement,\n elements,\n rects,\n platform,\n strategy\n } = state;\n // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a\n // ClientRect's bounds, despite the event listener being triggered. A\n // padding of 2 seems to handle this issue.\n const {\n padding = 2,\n x,\n y\n } = evaluate(options, state);\n const nativeClientRects = Array.from((await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) || []);\n const clientRects = getRectsByLine(nativeClientRects);\n const fallback = rectToClientRect(getBoundingRect(nativeClientRects));\n const paddingObject = getPaddingObject(padding);\n function getBoundingClientRect() {\n // There are two rects and they are disjoined.\n if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) {\n // Find the first rect in which the point is fully inside.\n return clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom) || fallback;\n }\n\n // There are 2 or more connected rects.\n if (clientRects.length >= 2) {\n if (getSideAxis(placement) === 'y') {\n const firstRect = clientRects[0];\n const lastRect = clientRects[clientRects.length - 1];\n const isTop = getSide(placement) === 'top';\n const top = firstRect.top;\n const bottom = lastRect.bottom;\n const left = isTop ? firstRect.left : lastRect.left;\n const right = isTop ? firstRect.right : lastRect.right;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n const isLeftSide = getSide(placement) === 'left';\n const maxRight = max(...clientRects.map(rect => rect.right));\n const minLeft = min(...clientRects.map(rect => rect.left));\n const measureRects = clientRects.filter(rect => isLeftSide ? rect.left === minLeft : rect.right === maxRight);\n const top = measureRects[0].top;\n const bottom = measureRects[measureRects.length - 1].bottom;\n const left = minLeft;\n const right = maxRight;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n return fallback;\n }\n const resetRects = await platform.getElementRects({\n reference: {\n getBoundingClientRect\n },\n floating: elements.floating,\n strategy\n });\n if (rects.reference.x !== resetRects.reference.x || rects.reference.y !== resetRects.reference.y || rects.reference.width !== resetRects.reference.width || rects.reference.height !== resetRects.reference.height) {\n return {\n reset: {\n rects: resetRects\n }\n };\n }\n return {};\n }\n };\n};\n\n// For type backwards-compatibility, the `OffsetOptions` type was also\n// Derivable.\n\nasync function convertValueToCoords(state, options) {\n const {\n placement,\n platform,\n elements\n } = state;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isVertical = getSideAxis(placement) === 'y';\n const mainAxisMulti = ['left', 'top'].includes(side) ? -1 : 1;\n const crossAxisMulti = rtl && isVertical ? -1 : 1;\n const rawValue = evaluate(options, state);\n\n // eslint-disable-next-line prefer-const\n let {\n mainAxis,\n crossAxis,\n alignmentAxis\n } = typeof rawValue === 'number' ? {\n mainAxis: rawValue,\n crossAxis: 0,\n alignmentAxis: null\n } : {\n mainAxis: rawValue.mainAxis || 0,\n crossAxis: rawValue.crossAxis || 0,\n alignmentAxis: rawValue.alignmentAxis\n };\n if (alignment && typeof alignmentAxis === 'number') {\n crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;\n }\n return isVertical ? {\n x: crossAxis * crossAxisMulti,\n y: mainAxis * mainAxisMulti\n } : {\n x: mainAxis * mainAxisMulti,\n y: crossAxis * crossAxisMulti\n };\n}\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = function (options) {\n if (options === void 0) {\n options = 0;\n }\n return {\n name: 'offset',\n options,\n async fn(state) {\n var _middlewareData$offse, _middlewareData$arrow;\n const {\n x,\n y,\n placement,\n middlewareData\n } = state;\n const diffCoords = await convertValueToCoords(state, options);\n\n // If the placement is the same and the arrow caused an alignment offset\n // then we don't need to change the positioning coordinates.\n if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: {\n ...diffCoords,\n placement\n }\n };\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'shift',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = false,\n limiter = {\n fn: _ref => {\n let {\n x,\n y\n } = _ref;\n return {\n x,\n y\n };\n }\n },\n ...detectOverflowOptions\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const crossAxis = getSideAxis(getSide(placement));\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n if (checkMainAxis) {\n const minSide = mainAxis === 'y' ? 'top' : 'left';\n const maxSide = mainAxis === 'y' ? 'bottom' : 'right';\n const min = mainAxisCoord + overflow[minSide];\n const max = mainAxisCoord - overflow[maxSide];\n mainAxisCoord = clamp(min, mainAxisCoord, max);\n }\n if (checkCrossAxis) {\n const minSide = crossAxis === 'y' ? 'top' : 'left';\n const maxSide = crossAxis === 'y' ? 'bottom' : 'right';\n const min = crossAxisCoord + overflow[minSide];\n const max = crossAxisCoord - overflow[maxSide];\n crossAxisCoord = clamp(min, crossAxisCoord, max);\n }\n const limitedCoords = limiter.fn({\n ...state,\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n });\n return {\n ...limitedCoords,\n data: {\n x: limitedCoords.x - x,\n y: limitedCoords.y - y,\n enabled: {\n [mainAxis]: checkMainAxis,\n [crossAxis]: checkCrossAxis\n }\n }\n };\n }\n };\n};\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n options,\n fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n middlewareData\n } = state;\n const {\n offset = 0,\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const crossAxis = getSideAxis(placement);\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n const rawOffset = evaluate(offset, state);\n const computedOffset = typeof rawOffset === 'number' ? {\n mainAxis: rawOffset,\n crossAxis: 0\n } : {\n mainAxis: 0,\n crossAxis: 0,\n ...rawOffset\n };\n if (checkMainAxis) {\n const len = mainAxis === 'y' ? 'height' : 'width';\n const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;\n const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;\n if (mainAxisCoord < limitMin) {\n mainAxisCoord = limitMin;\n } else if (mainAxisCoord > limitMax) {\n mainAxisCoord = limitMax;\n }\n }\n if (checkCrossAxis) {\n var _middlewareData$offse, _middlewareData$offse2;\n const len = mainAxis === 'y' ? 'width' : 'height';\n const isOriginSide = ['top', 'left'].includes(getSide(placement));\n const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);\n const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);\n if (crossAxisCoord < limitMin) {\n crossAxisCoord = limitMin;\n } else if (crossAxisCoord > limitMax) {\n crossAxisCoord = limitMax;\n }\n }\n return {\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n };\n }\n };\n};\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'size',\n options,\n async fn(state) {\n var _state$middlewareData, _state$middlewareData2;\n const {\n placement,\n rects,\n platform,\n elements\n } = state;\n const {\n apply = () => {},\n ...detectOverflowOptions\n } = evaluate(options, state);\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isYAxis = getSideAxis(placement) === 'y';\n const {\n width,\n height\n } = rects.floating;\n let heightSide;\n let widthSide;\n if (side === 'top' || side === 'bottom') {\n heightSide = side;\n widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';\n } else {\n widthSide = side;\n heightSide = alignment === 'end' ? 'top' : 'bottom';\n }\n const maximumClippingHeight = height - overflow.top - overflow.bottom;\n const maximumClippingWidth = width - overflow.left - overflow.right;\n const overflowAvailableHeight = min(height - overflow[heightSide], maximumClippingHeight);\n const overflowAvailableWidth = min(width - overflow[widthSide], maximumClippingWidth);\n const noShift = !state.middlewareData.shift;\n let availableHeight = overflowAvailableHeight;\n let availableWidth = overflowAvailableWidth;\n if ((_state$middlewareData = state.middlewareData.shift) != null && _state$middlewareData.enabled.x) {\n availableWidth = maximumClippingWidth;\n }\n if ((_state$middlewareData2 = state.middlewareData.shift) != null && _state$middlewareData2.enabled.y) {\n availableHeight = maximumClippingHeight;\n }\n if (noShift && !alignment) {\n const xMin = max(overflow.left, 0);\n const xMax = max(overflow.right, 0);\n const yMin = max(overflow.top, 0);\n const yMax = max(overflow.bottom, 0);\n if (isYAxis) {\n availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));\n } else {\n availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom));\n }\n }\n await apply({\n ...state,\n availableWidth,\n availableHeight\n });\n const nextDimensions = await platform.getDimensions(elements.floating);\n if (width !== nextDimensions.width || height !== nextDimensions.height) {\n return {\n reset: {\n rects: true\n }\n };\n }\n return {};\n }\n };\n};\n\nexport { arrow, autoPlacement, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, shift, size };\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":""}