{"version":3,"sources":["webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/button_group/button_group.js","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/form-radio/form-radio-group.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/form/form_radio_group/form_radio_group.js","webpack:////build/source/node_modules/jquery.caret/dist/jquery.caret.js","webpack:////build/source/node_modules/fuzzaldrin-plus/lib/scorer.js","webpack:///./ide/constants.js","webpack:///./pages/projects/commit/show/index.js","webpack:///./diffs/utils/diff_file.js","webpack:///./sourcegraph/load.js","webpack:////build/source/node_modules/modern-screenshot/dist/index.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/form/form_radio/form_radio.js","webpack:////build/source/node_modules/@gitlab/at.js/dist/js/jquery.atwho.js","webpack:////build/source/node_modules/fuzzaldrin-plus/lib/fuzzaldrin.js","webpack:///./lib/utils/number_utils.js","webpack:///./sourcegraph/index.js","webpack:///./zen_mode.js","webpack:///./graphql_shared/fragments/user.fragment.graphql","webpack:////build/source/node_modules/fuzzaldrin-plus/lib/query.js","webpack:////build/source/node_modules/fuzzaldrin-plus/lib/pathScorer.js","webpack:///./diffs/components/diff_stats.vue","webpack:///./diffs/components/diff_stats.vue?9cf2","webpack:///diffs/components/diff_stats.vue","webpack:///./diffs/components/diff_stats.vue?a622","webpack:////build/source/node_modules/fuzzaldrin-plus/lib/matcher.js","webpack:////build/source/node_modules/fuzzaldrin-plus/lib/filter.js"],"names":["__vue_script__","name","props","vertical","type","Boolean","required","default","__vue_component__","render","_h","this","$createElement","_self","_c","_g","class","attrs","$listeners","_t","staticRenderFns","undefined","BFormRadioGroup","mixins","getBvRadioGroup","computed","isRadioGroup","model","options","components","GlFormRadio","directives","SafeHtml","inheritAttrs","methods","e","$emit","_vm","_b","staticClass","on","onInput","onChange","$attrs","_v","_l","option","idx","key","value","disabled","rawName","expression","_s","text","$","root","returnExportsGlobal","EditableCaret","InputCaret","Mirror","Utils","oDocument","oWindow","setContextBy","$inputor","domInputor","prototype","setPos","pos","fn","found","offset","sel","getSelection","parent","node","range","_i","_len","_ref","_results","childNodes","length","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","AcronymResult","computeScore","emptyAcronymResult","isAcronymFullWord","isMatch","isSeparator","isWordEnd","isWordStart","scoreAcronyms","scoreCharacter","scoreConsecutives","scoreExact","scoreExactMatch","scorePattern","scorePosition","scoreSize","exports","score","string","query","preparedQuery","string_lw","allowErrors","core_lw","core_up","toLowerCase","Math","ceil","subject","query_lw","query_up","j","m","n","qj_lw","qj_up","si","charCodeAt","subject_lw","acro","acro_score","align","csc_diag","csc_row","csc_score","csc_should_rebuild","miss_budget","miss_left","record_miss","score_diag","score_row","score_up","si_lw","start","sz","count","indexOf","Array","charCodes","max","curr_s","prev_s","next_s","c","sc","abs","quality","sameCase","end","bonus","posBonus","startOfWord","k","mi","nj","pos2","fullWord","sepCount","sumPos","nbAcronymInQuery","call","MAX_WINDOW_HEIGHT_COMPACT","MAX_TITLE_LENGTH","MAX_BODY_LENGTH","SIDEBAR_INIT_WIDTH","SIDEBAR_MIN_WIDTH","SIDEBAR_NAV_WIDTH","FILE_VIEW_MODE_EDITOR","FILE_VIEW_MODE_PREVIEW","PERMISSION_CREATE_MR","PERMISSION_READ_MR","PERMISSION_PUSH_CODE","PUSH_RULE_REJECT_UNSIGNED_COMMITS","DEFAULT_PERMISSIONS","viewerTypes","mr","edit","diff","diffModes","replaced","new","deleted","renamed","mode_changed","diffViewerModes","Object","freeze","not_diffable","no_preview","added","image","diffViewerErrors","too_large","stored_externally","leftSidebarViews","review","commit","rightSidebarViews","pipelines","keepAlive","jobsDetail","mergeRequestInfo","terminal","stageKeys","unstaged","staged","commitItemIconMap","addition","icon","modified","modalTypes","rename","tree","blob","commitActionTypes","delete","update","SIDE_LEFT","SIDE_RIGHT","MAX_MR_FILES_AUTO_OPEN","DEFAULT_BRANCH","GITLAB_WEB_IDE_FEEDBACK_ISSUE","IDE_ELEMENT_ID","IDE_PATH","WEB_IDE_OAUTH_CALLBACK_URL_PATH","initDiffStatsDropdown","ZenMode","addShortcutsExtension","ShortcutsNavigation","initCommitBoxInfo","initDeprecatedNotes","initReportAbuse","loadDiffStats","diffStatsElements","querySelectorAll","forEach","diffStatsEl","addedLines","removedLines","oldSize","newSize","viewerName","dataset","Vue","el","createElement","DiffStats","diffFile","old_size","new_size","viewer","Number","filesContainer","batchPath","data","axios","get","then","syntaxHighlight","handleLocationHash","Diff","catch","createAlert","message","__","loadAwardsHandler","initCommitActions","querySelector","fileSymlinkInformation","file","fileList","duplicates","filter","iteratedFile","file_hash","includesSymlink","some","a_mode","b_mode","includes","DIFF_FILE_SYMLINK_MODE","DIFF_FILE_DELETED_MODE","wasSymbolic","isSymbolic","wasReal","isReal","collapsed","automaticallyCollapsed","manuallyCollapsed","forceOpen","isNotDiffable","_file$viewer","viewerModes","prepareRawDiffFile","allFiles","meta","index","_file$blob2","additionalProperties","brokenSymlink","hasCommentForm","discussions","drafts","id","load_collapsed_diff_url","_file$blob","namespace","project","getDerivedMergeRequestInformation","endpoint","uuids","seeds","file_identifier_hash","identifier","order","assign","collapsedType","_file$viewer2","DIFF_FILE_MANUAL_COLLAPSE","DIFF_FILE_AUTOMATIC_COLLAPSE","isCollapsed","_file$viewer3","_file$viewer4","getShortShaFromFile","content_sha","truncateSha","String","match","fileA","fileB","mode","universal","a","b","stats","valid","classes","sign","percent","changeInPercent","numberToHumanSize","changed","countLinesInBetween","lines","prev","next","new_line","findClosestMatchLine","target","line","meta_data","prevLine","new_pos","lineExists","oldLineNumber","newLineNumber","old_line","initSourcegraph","h","Ue","Qt","defineProperty","Zt","defineProperties","er","getOwnPropertyDescriptors","Z","getOwnPropertySymbols","Le","hasOwnProperty","Me","propertyIsEnumerable","Oe","pow","Be","C","T","enumerable","configurable","writable","D","L","E","Promise","N","M","z","R","W","O","throw","done","resolve","t","Int32Array","r","ae","Uint8Array","s","o","set","ee","F","ze","se","Xe","te","ie","X","re","q","className","ce","tagName","V","style","Qe","_","G","le","at","A","console","warn","lt","toDataURL","ne","startsWith","ue","location","protocol","Y","implementation","createHTMLDocument","head","appendChild","href","ownerDocument","J","fe","createElementNS","setAttributeNS","de","XMLSerializer","serializeToString","encodeURIComponent","ut","toBlob","Error","l","split","atob","u","Blob","ft","me","FileReader","onload","result","onerror","onabort","readAsDataURL","readAsArrayBuffer","dt","U","decoding","loading","src","timeout","onError","clearTimeout","setTimeout","currentSrc","poster","readyState","f","d","removeEventListener","addEventListener","once","baseVal","decode","originalSrc","complete","ge","all","flatMap","from","map","he","random","we","trim","gt","time","it","timeEnd","ct","ht","cache","x","Ge","pe","autoDestruct","w","g","scale","workerUrl","workerNumber","debug","features","defaultView","Map","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","_e","Q","$e","url","v","I","reject","onmessageerror","fontFamilies","Set","fontCssTexts","acceptOfImage","join","requests","drawImageCount","tasks","isEnable","getAttribute","wt","pt","canvas","context2d","floor","getContext","fillStyle","fillRect","yt","drawImage","bt","St","be","nodeName","has","sandbox","visibility","write","namespaceURI","textContent","getComputedStyle","item","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","add","scrollWidth","clientWidth","setProperty","At","Rt","scrollHeight","clientHeight","Tt","innerHTML","tt","ot","setAttribute","vt","Ae","clear","Ft","responseType","We","AbortController","abort","signal","ok","cause","finally","H","requestType","imageDom","RegExp","Date","getTime","headers","accept","response","size","postMessage","rawUrl","Ne","Ie","ke","Ut","$t","cssText","De","styleSheets","cssRules","constructor","Je","Bt","xe","exec","lastIndex","Lt","insertRule","rule","Ye","parentStyleSheet","Mt","Ot","preferredFormat","jt","Re","Wt","Ke","insertAdjacentHTML","Vt","qt","Pe","pop","append","Ht","insertBefore","children","K","B","He","btoa","fromCharCode","Fe","createContext","destroyContext","domToBlob","mt","domToCanvas","domToDataUrl","domToForeignObjectSvg","domToImage","domToJpeg","domToPixel","domToPng","domToSvg","domToWebp","loadMedia","waitUntilLoad","Symbol","toStringTag","BFormRadio","event","checked","$event","$scopedSlots","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","searchKey","remoteFilter","sorter","items","atwho_order","sort","tplEval","tpl","template","tag","error1","highlighter","li","regexp","str","$1","$2","$3","beforeInsert","$li","beforeReposition","afterMatchFailed","currentFlag","controllers","aliasMaps","setupRootElement","listen","createContainer","doc","ref","$el","asRoot","parentWindow","frameElement","atwho","iframeAsRoot","controller","current","setContextFor","reg","setting","base","is","EditableController","TextareaController","alias","init","view","hide","isComposing","dispatch","onKeyup","onKeydown","expectedQueryCBId","getOpt","lastScrollTop","currentScrollTop","shutdown","destroy","off","results","lookUp","keyCode","preventDefault","noop","ctrlKey","visible","highlighted","choose","app","at1","uid","Model","View","substr","extend","reload","trigger","callDefault","args","funcName","arguments","eventName","callbacks","default_value","insertContentFor","renderView","isArray","wait","catchQuery","_delayLookUp","_lookUp","now","remaining","previousCallTime","_stopDelayedCall","delayedCallTimeout","_generateQueryCBId","_callback","queryCBId","proxy","Api","child","hasProp","ctor","__super__","superClass","caretPos","content","isString","iframeOffset","scaleBottom","insert","source","startStr","suffix","headPos","focus","change","_getRange","_setRange","setEndAfter","setStartAfter","setEndBefore","setStartBefore","_clearRange","ctrl_a_pressed","_movingEvent","which","_unwrap","unwrap","nodeValue","$inserted","$query","_range","inserted","lastNode","matched","query_content","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","callback","_remoteFilter","save","load","_load","$elUl","timeoutID","bindEvent","header_tpl","prepend","$menu","lastCoordX","lastCoordY","$cur","clientX","clientY","currentTarget","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","Query","defaultPathSeparator","parseOptions","pathScorer","preparedQueryCache","scorer","process","platform","module","candidates","usePathScoring","wrap","prepareQuery","useExtensionBonus","pathSeparator","optCharRegEx","bytesToMiB","number","BYTES_IN_KIB","bytesToGiB","numberToHumanSizeSplit","digits","locale","digitsOptions","minimumFractionDigits","maximumFractionDigits","formatNumberWithLocaleAndDigits","formatNumber","humanSize","label","sprintf","numberToMetricPrefix","uppercase","THOUSAND","MILLION","toFixed","median","arr","middle","sorted","firstY","lastY","round","formattedChangeInPercent","nonFiniteResult","isFinite","isNumeric","parseInt","numberRegex","isPositiveInteger","countFloatingPointDigits","num","decimal","parts","integer","splitDecimalNumber","gon","sourcegraph","assetsUrl","URL","scriptPath","SOURCEGRAPH_ASSETS_URL","SOURCEGRAPH_URL","SOURCEGRAPH_INTEGRATION","path","script","defer","loadScript","Dropzone","autoDiscover","active_backdrop","active_textarea","storedStyle","enter","exit","backdrop","Mousetrap","pause","removeAttr","unpause","scrollToElement","duration","autosize","$dropzone","forElement","enable","loc","definitionRefs","findOperation","definitions","element","def","refs","collectFragmentReferences","kind","selectionSet","selections","variableDefinitions","operationName","newDoc","opRefs","allRefs","newRefs","refName","prevRefs","childRef","op","oneQuery","coreChars","countDir","getCharCodes","getExtension","opt_char_re","truncatedUpperCase","_arg","_ref1","core","depth","ext","upper","toUpperCase","getExtensionScore","scorePath","fullPathScore","alpha","basePathScore","basePos","extAdjust","fileLength","candidate","startPos","endPos","maxDepth","GlIcon","diffsCount","diffFilesLength","filesText","n__","isCompareVersionsHeader","hasDiffFiles","_isNumber","notDiffable","fileStats","component","basenameMatch","computeMatch","mergeMatches","baseMatches","matches","matchIndex","matchPos","matchPositions","output","strPos","tagClass","tagClose","tagOpen","ai","bj","out","backtrack","trace","reverse","pluckCandidates","sortCandidates","bKey","maxInners","maxResults","scoreProvider","scoredCandidates","spotLeft"],"mappings":"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","file":"pages.projects.commit.show.a24abb8e.chunk.js","sourcesContent":["import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nvar script = {\n name: 'GlButtonGroup',\n props: {\n /**\n * When set, rendered the button group in vertical mode.\n */\n vertical: {\n type: Boolean,\n required: false,\n default: false\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',_vm._g({class:!_vm.vertical ? 'btn-group' : 'btn-group-vertical',attrs:{\"role\":\"group\"}},_vm.$listeners),[_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 { extend } from '../../vue';\nimport { NAME_FORM_RADIO_GROUP } from '../../constants/components';\nimport { makePropsConfigurable } from '../../utils/props';\nimport { props as props$1, formRadioCheckGroupMixin } from '../../mixins/form-radio-check-group';\n\n// --- Props ---\n\nconst props = makePropsConfigurable(props$1, NAME_FORM_RADIO_GROUP);\n\n// --- Main component ---\n\n// @vue/component\nconst BFormRadioGroup = /*#__PURE__*/extend({\n name: NAME_FORM_RADIO_GROUP,\n mixins: [formRadioCheckGroupMixin],\n provide() {\n return {\n getBvRadioGroup: () => this\n };\n },\n props,\n computed: {\n isRadioGroup() {\n return true;\n }\n }\n});\n\nexport { BFormRadioGroup, props };\n","import { formOptionsMixin } from '../../../../vendor/bootstrap-vue/src/mixins/form-options';\nimport { BFormRadioGroup } from '../../../../vendor/bootstrap-vue/src/components/form-radio/form-radio-group';\nimport { SafeHtmlDirective } from '../../../../directives/safe_html/safe_html';\nimport GlFormRadio from '../form_radio/form_radio';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nconst {\n model\n} = BFormRadioGroup.options;\nvar script = {\n name: 'GlFormRadioGroup',\n components: {\n BFormRadioGroup,\n GlFormRadio\n },\n directives: {\n SafeHtml: SafeHtmlDirective\n },\n mixins: [formOptionsMixin],\n inheritAttrs: false,\n model,\n methods: {\n onInput(e) {\n /**\n * Emitted when the selected value is changed.\n *\n * @event input\n */\n this.$emit('input', e);\n },\n onChange(e) {\n /**\n * Emitted when the selected value is changed.\n *\n * @event change\n */\n this.$emit('change', e);\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('b-form-radio-group',_vm._g(_vm._b({staticClass:\"gl-form-checkbox-group\",attrs:{\"stacked\":\"\"},on:{\"input\":_vm.onInput,\"change\":_vm.onChange}},'b-form-radio-group',_vm.$attrs,false),_vm.$listeners),[_vm._t(\"first\"),_vm._v(\" \"),_vm._l((_vm.formOptions),function(option,idx){return _c('gl-form-radio',{key:idx,attrs:{\"value\":option.value,\"disabled\":option.disabled}},[(option.html)?_c('span',{directives:[{name:\"safe-html\",rawName:\"v-safe-html\",value:(option.html),expression:\"option.html\"}]}):_c('span',[_vm._v(_vm._s(option.text))])])}),_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","(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","(function() {\n var AcronymResult, computeScore, emptyAcronymResult, isAcronymFullWord, isMatch, isSeparator, isWordEnd, isWordStart, miss_coeff, pos_bonus, scoreAcronyms, scoreCharacter, scoreConsecutives, scoreExact, scoreExactMatch, scorePattern, scorePosition, scoreSize, tau_size, wm;\n\n wm = 150;\n\n pos_bonus = 20;\n\n tau_size = 150;\n\n miss_coeff = 0.75;\n\n exports.score = function(string, query, options) {\n var allowErrors, preparedQuery, score, string_lw;\n preparedQuery = options.preparedQuery, allowErrors = options.allowErrors;\n if (!(allowErrors || isMatch(string, preparedQuery.core_lw, preparedQuery.core_up))) {\n return 0;\n }\n string_lw = string.toLowerCase();\n score = computeScore(string, string_lw, preparedQuery);\n return Math.ceil(score);\n };\n\n exports.isMatch = isMatch = function(subject, query_lw, query_up) {\n var i, j, m, n, qj_lw, qj_up, si;\n m = subject.length;\n n = query_lw.length;\n if (!m || n > m) {\n return false;\n }\n i = -1;\n j = -1;\n while (++j < n) {\n qj_lw = query_lw.charCodeAt(j);\n qj_up = query_up.charCodeAt(j);\n while (++i < m) {\n si = subject.charCodeAt(i);\n if (si === qj_lw || si === qj_up) {\n break;\n }\n }\n if (i === m) {\n return false;\n }\n }\n return true;\n };\n\n exports.computeScore = computeScore = function(subject, subject_lw, preparedQuery) {\n var acro, acro_score, align, csc_diag, csc_row, csc_score, csc_should_rebuild, i, j, m, miss_budget, miss_left, n, pos, query, query_lw, record_miss, score, score_diag, score_row, score_up, si_lw, start, sz;\n query = preparedQuery.query;\n query_lw = preparedQuery.query_lw;\n m = subject.length;\n n = query.length;\n acro = scoreAcronyms(subject, subject_lw, query, query_lw);\n acro_score = acro.score;\n if (acro.count === n) {\n return scoreExact(n, m, acro_score, acro.pos);\n }\n pos = subject_lw.indexOf(query_lw);\n if (pos > -1) {\n return scoreExactMatch(subject, subject_lw, query, query_lw, pos, n, m);\n }\n score_row = new Array(n);\n csc_row = new Array(n);\n sz = scoreSize(n, m);\n miss_budget = Math.ceil(miss_coeff * n) + 5;\n miss_left = miss_budget;\n csc_should_rebuild = true;\n j = -1;\n while (++j < n) {\n score_row[j] = 0;\n csc_row[j] = 0;\n }\n i = -1;\n while (++i < m) {\n si_lw = subject_lw[i];\n if (!si_lw.charCodeAt(0) in preparedQuery.charCodes) {\n if (csc_should_rebuild) {\n j = -1;\n while (++j < n) {\n csc_row[j] = 0;\n }\n csc_should_rebuild = false;\n }\n continue;\n }\n score = 0;\n score_diag = 0;\n csc_diag = 0;\n record_miss = true;\n csc_should_rebuild = true;\n j = -1;\n while (++j < n) {\n score_up = score_row[j];\n if (score_up > score) {\n score = score_up;\n }\n csc_score = 0;\n if (query_lw[j] === si_lw) {\n start = isWordStart(i, subject, subject_lw);\n csc_score = csc_diag > 0 ? csc_diag : scoreConsecutives(subject, subject_lw, query, query_lw, i, j, start);\n align = score_diag + scoreCharacter(i, j, start, acro_score, csc_score);\n if (align > score) {\n score = align;\n miss_left = miss_budget;\n } else {\n if (record_miss && --miss_left <= 0) {\n return Math.max(score, score_row[n - 1]) * sz;\n }\n record_miss = false;\n }\n }\n score_diag = score_up;\n csc_diag = csc_row[j];\n csc_row[j] = csc_score;\n score_row[j] = score;\n }\n }\n score = score_row[n - 1];\n return score * sz;\n };\n\n exports.isWordStart = isWordStart = function(pos, subject, subject_lw) {\n var curr_s, prev_s;\n if (pos === 0) {\n return true;\n }\n curr_s = subject[pos];\n prev_s = subject[pos - 1];\n return isSeparator(prev_s) || (curr_s !== subject_lw[pos] && prev_s === subject_lw[pos - 1]);\n };\n\n exports.isWordEnd = isWordEnd = function(pos, subject, subject_lw, len) {\n var curr_s, next_s;\n if (pos === len - 1) {\n return true;\n }\n curr_s = subject[pos];\n next_s = subject[pos + 1];\n return isSeparator(next_s) || (curr_s === subject_lw[pos] && next_s !== subject_lw[pos + 1]);\n };\n\n isSeparator = function(c) {\n return c === ' ' || c === '.' || c === '-' || c === '_' || c === '/' || c === '\\\\';\n };\n\n scorePosition = function(pos) {\n var sc;\n if (pos < pos_bonus) {\n sc = pos_bonus - pos;\n return 100 + sc * sc;\n } else {\n return Math.max(100 + pos_bonus - pos, 0);\n }\n };\n\n exports.scoreSize = scoreSize = function(n, m) {\n return tau_size / (tau_size + Math.abs(m - n));\n };\n\n scoreExact = function(n, m, quality, pos) {\n return 2 * n * (wm * quality + scorePosition(pos)) * scoreSize(n, m);\n };\n\n exports.scorePattern = scorePattern = function(count, len, sameCase, start, end) {\n var bonus, sz;\n sz = count;\n bonus = 6;\n if (sameCase === count) {\n bonus += 2;\n }\n if (start) {\n bonus += 3;\n }\n if (end) {\n bonus += 1;\n }\n if (count === len) {\n if (start) {\n if (sameCase === len) {\n sz += 2;\n } else {\n sz += 1;\n }\n }\n if (end) {\n bonus += 1;\n }\n }\n return sameCase + sz * (sz + bonus);\n };\n\n exports.scoreCharacter = scoreCharacter = function(i, j, start, acro_score, csc_score) {\n var posBonus;\n posBonus = scorePosition(i);\n if (start) {\n return posBonus + wm * ((acro_score > csc_score ? acro_score : csc_score) + 10);\n }\n return posBonus + wm * csc_score;\n };\n\n exports.scoreConsecutives = scoreConsecutives = function(subject, subject_lw, query, query_lw, i, j, startOfWord) {\n var k, m, mi, n, nj, sameCase, sz;\n m = subject.length;\n n = query.length;\n mi = m - i;\n nj = n - j;\n k = mi < nj ? mi : nj;\n sameCase = 0;\n sz = 0;\n if (query[j] === subject[i]) {\n sameCase++;\n }\n while (++sz < k && query_lw[++j] === subject_lw[++i]) {\n if (query[j] === subject[i]) {\n sameCase++;\n }\n }\n if (sz < k) {\n i--;\n }\n if (sz === 1) {\n return 1 + 2 * sameCase;\n }\n return scorePattern(sz, n, sameCase, startOfWord, isWordEnd(i, subject, subject_lw, m));\n };\n\n exports.scoreExactMatch = scoreExactMatch = function(subject, subject_lw, query, query_lw, pos, n, m) {\n var end, i, pos2, sameCase, start;\n start = isWordStart(pos, subject, subject_lw);\n if (!start) {\n pos2 = subject_lw.indexOf(query_lw, pos + 1);\n if (pos2 > -1) {\n start = isWordStart(pos2, subject, subject_lw);\n if (start) {\n pos = pos2;\n }\n }\n }\n i = -1;\n sameCase = 0;\n while (++i < n) {\n if (query[pos + i] === subject[i]) {\n sameCase++;\n }\n }\n end = isWordEnd(pos + n - 1, subject, subject_lw, m);\n return scoreExact(n, m, scorePattern(n, n, sameCase, start, end), pos);\n };\n\n AcronymResult = (function() {\n function AcronymResult(score, pos, count) {\n this.score = score;\n this.pos = pos;\n this.count = count;\n }\n\n return AcronymResult;\n\n })();\n\n emptyAcronymResult = new AcronymResult(0, 0.1, 0);\n\n exports.scoreAcronyms = scoreAcronyms = function(subject, subject_lw, query, query_lw) {\n var count, fullWord, i, j, m, n, qj_lw, sameCase, score, sepCount, sumPos;\n m = subject.length;\n n = query.length;\n if (!(m > 1 && n > 1)) {\n return emptyAcronymResult;\n }\n count = 0;\n sepCount = 0;\n sumPos = 0;\n sameCase = 0;\n i = -1;\n j = -1;\n while (++j < n) {\n qj_lw = query_lw[j];\n if (isSeparator(qj_lw)) {\n i = subject_lw.indexOf(qj_lw, i + 1);\n if (i > -1) {\n sepCount++;\n continue;\n } else {\n break;\n }\n }\n while (++i < m) {\n if (qj_lw === subject_lw[i] && isWordStart(i, subject, subject_lw)) {\n if (query[j] === subject[i]) {\n sameCase++;\n }\n sumPos += i;\n count++;\n break;\n }\n }\n if (i === m) {\n break;\n }\n }\n if (count < 2) {\n return emptyAcronymResult;\n }\n fullWord = count === n ? isAcronymFullWord(subject, subject_lw, query, count) : false;\n score = scorePattern(count, n, sameCase, true, fullWord);\n return new AcronymResult(score, sumPos / count, count + sepCount);\n };\n\n isAcronymFullWord = function(subject, subject_lw, query, nbAcronymInQuery) {\n var count, i, m, n;\n m = subject.length;\n n = query.length;\n count = 0;\n if (m > 12 * n) {\n return false;\n }\n i = -1;\n while (++i < m) {\n if (isWordStart(i, subject, subject_lw) && ++count > nbAcronymInQuery) {\n return false;\n }\n }\n return true;\n };\n\n}).call(this);\n","export const MAX_WINDOW_HEIGHT_COMPACT = 750;\n\n// Commit message textarea\nexport const MAX_TITLE_LENGTH = 50;\nexport const MAX_BODY_LENGTH = 72;\n\nexport const SIDEBAR_INIT_WIDTH = 340;\nexport const SIDEBAR_MIN_WIDTH = 260;\nexport const SIDEBAR_NAV_WIDTH = 60;\n\n// File view modes\nexport const FILE_VIEW_MODE_EDITOR = 'editor';\nexport const FILE_VIEW_MODE_PREVIEW = 'preview';\n\nexport const PERMISSION_CREATE_MR = 'createMergeRequestIn';\nexport const PERMISSION_READ_MR = 'readMergeRequest';\nexport const PERMISSION_PUSH_CODE = 'pushCode';\nexport const PUSH_RULE_REJECT_UNSIGNED_COMMITS = 'rejectUnsignedCommits';\n\n// The default permission object to use when the project data isn't available yet.\n// This helps us encapsulate checks like `canPushCode` without requiring an\n// additional check like `currentProject && canPushCode`.\nexport const DEFAULT_PERMISSIONS = {\n [PERMISSION_PUSH_CODE]: true,\n};\n\nexport const viewerTypes = {\n mr: 'mrdiff',\n edit: 'editor',\n diff: 'diff',\n};\n\nexport const diffModes = {\n replaced: 'replaced',\n new: 'new',\n deleted: 'deleted',\n renamed: 'renamed',\n mode_changed: 'mode_changed',\n};\n\nexport const diffViewerModes = Object.freeze({\n not_diffable: 'not_diffable',\n no_preview: 'no_preview',\n added: 'added',\n deleted: 'deleted',\n renamed: 'renamed',\n mode_changed: 'mode_changed',\n text: 'text',\n image: 'image',\n});\n\nexport const diffViewerErrors = Object.freeze({\n too_large: 'too_large',\n stored_externally: 'server_side_but_stored_externally',\n});\n\nexport const leftSidebarViews = {\n edit: { name: 'ide-tree' },\n review: { name: 'ide-review' },\n commit: { name: 'repo-commit-section' },\n};\n\nexport const rightSidebarViews = {\n pipelines: { name: 'pipelines-list', keepAlive: true },\n jobsDetail: { name: 'jobs-detail', keepAlive: false },\n mergeRequestInfo: { name: 'merge-request-info', keepAlive: true },\n terminal: { name: 'terminal', keepAlive: true },\n};\n\nexport const stageKeys = {\n unstaged: 'unstaged',\n staged: 'staged',\n};\n\nexport const commitItemIconMap = {\n addition: {\n icon: 'file-addition',\n class: 'file-addition ide-file-addition',\n },\n modified: {\n icon: 'file-modified',\n class: 'file-modified ide-file-modified',\n },\n deleted: {\n icon: 'file-deletion',\n class: 'file-deletion ide-file-deletion',\n },\n};\n\nexport const modalTypes = {\n rename: 'rename',\n tree: 'tree',\n blob: 'blob',\n};\n\nexport const commitActionTypes = {\n move: 'move',\n delete: 'delete',\n create: 'create',\n update: 'update',\n};\n\nexport const SIDE_LEFT = 'left';\nexport const SIDE_RIGHT = 'right';\n\n// This is the maximum number of files to auto open when opening the Web IDE\n// from a merge request\nexport const MAX_MR_FILES_AUTO_OPEN = 10;\n\nexport const DEFAULT_BRANCH = 'main';\n\nexport const GITLAB_WEB_IDE_FEEDBACK_ISSUE = 'https://gitlab.com/gitlab-org/gitlab/-/issues/377367';\n\nexport const IDE_ELEMENT_ID = 'ide';\n\n// note: This path comes from `config/routes.rb`\nexport const IDE_PATH = '/-/ide';\nexport const WEB_IDE_OAUTH_CALLBACK_URL_PATH = '/-/ide/oauth_redirect';\n","/* eslint-disable no-new */\nimport $ from 'jquery';\nimport Vue from 'vue';\nimport loadAwardsHandler from '~/awards_handler';\nimport { addShortcutsExtension } from '~/behaviors/shortcuts';\nimport ShortcutsNavigation from '~/behaviors/shortcuts/shortcuts_navigation';\nimport Diff from '~/diff';\nimport { createAlert } from '~/alert';\nimport initDeprecatedNotes from '~/init_deprecated_notes';\nimport { initDiffStatsDropdown } from '~/init_diff_stats_dropdown';\nimport axios from '~/lib/utils/axios_utils';\nimport { handleLocationHash } from '~/lib/utils/common_utils';\nimport { __ } from '~/locale';\nimport initCommitActions from '~/projects/commit';\nimport { initCommitBoxInfo } from '~/projects/commit_box/info';\nimport syntaxHighlight from '~/syntax_highlight';\nimport ZenMode from '~/zen_mode';\nimport '~/sourcegraph/load';\nimport DiffStats from '~/diffs/components/diff_stats.vue';\nimport { initReportAbuse } from '~/projects/report_abuse';\n\ninitDiffStatsDropdown();\nnew ZenMode();\naddShortcutsExtension(ShortcutsNavigation);\n\ninitCommitBoxInfo();\n\ninitDeprecatedNotes();\ninitReportAbuse();\n\nconst loadDiffStats = () => {\n const diffStatsElements = document.querySelectorAll('#js-diff-stats');\n\n if (diffStatsElements.length) {\n diffStatsElements.forEach((diffStatsEl) => {\n const { addedLines, removedLines, oldSize, newSize, viewerName } = diffStatsEl.dataset;\n\n new Vue({\n el: diffStatsEl,\n render(createElement) {\n return createElement(DiffStats, {\n props: {\n diffFile: {\n old_size: oldSize,\n new_size: newSize,\n viewer: { name: viewerName },\n },\n addedLines: Number(addedLines),\n removedLines: Number(removedLines),\n },\n });\n },\n });\n });\n }\n};\n\nconst filesContainer = $('.js-diffs-batch');\n\nif (filesContainer.length) {\n const batchPath = filesContainer.data('diffFilesPath');\n\n axios\n .get(batchPath)\n .then(({ data }) => {\n filesContainer.html($(data));\n syntaxHighlight(filesContainer);\n handleLocationHash();\n new Diff();\n loadDiffStats();\n initReportAbuse();\n })\n .catch(() => {\n createAlert({ message: __('An error occurred while retrieving diff files') });\n });\n} else {\n new Diff();\n loadDiffStats();\n}\n\nloadAwardsHandler();\ninitCommitActions();\n\nsyntaxHighlight([document.querySelector('.files')]);\n","import { diffViewerModes as viewerModes } from '~/ide/constants';\nimport { changeInPercent, numberToHumanSize } from '~/lib/utils/number_utils';\nimport { truncateSha } from '~/lib/utils/text_utility';\nimport { uuids } from '~/lib/utils/uuids';\n\nimport {\n DIFF_FILE_SYMLINK_MODE,\n DIFF_FILE_DELETED_MODE,\n DIFF_FILE_MANUAL_COLLAPSE,\n DIFF_FILE_AUTOMATIC_COLLAPSE,\n} from '../constants';\nimport { getDerivedMergeRequestInformation } from './merge_request';\n\nfunction fileSymlinkInformation(file, fileList) {\n const duplicates = fileList.filter((iteratedFile) => iteratedFile.file_hash === file.file_hash);\n const includesSymlink = duplicates.some((iteratedFile) => {\n return [iteratedFile.a_mode, iteratedFile.b_mode].includes(DIFF_FILE_SYMLINK_MODE);\n });\n const brokenSymlinkScenario = duplicates.length > 1 && includesSymlink;\n\n return (\n brokenSymlinkScenario && {\n replaced: file.b_mode === DIFF_FILE_DELETED_MODE,\n wasSymbolic: file.a_mode === DIFF_FILE_SYMLINK_MODE,\n isSymbolic: file.b_mode === DIFF_FILE_SYMLINK_MODE,\n wasReal: ![DIFF_FILE_SYMLINK_MODE, DIFF_FILE_DELETED_MODE].includes(file.a_mode),\n isReal: ![DIFF_FILE_SYMLINK_MODE, DIFF_FILE_DELETED_MODE].includes(file.b_mode),\n }\n );\n}\n\nfunction collapsed(file) {\n const viewer = file.viewer || {};\n\n return {\n automaticallyCollapsed: viewer.automaticallyCollapsed || viewer.collapsed || false,\n manuallyCollapsed: null,\n forceOpen: false,\n };\n}\n\nfunction identifier(file) {\n const { namespace, project, id } = getDerivedMergeRequestInformation({\n endpoint: file.load_collapsed_diff_url,\n });\n\n return uuids({\n seeds: [namespace, project, id, file.file_identifier_hash, file.blob?.id],\n })[0];\n}\n\nexport function isNotDiffable(file) {\n return file?.viewer?.name === viewerModes.not_diffable;\n}\n\nexport function prepareRawDiffFile({ file, allFiles, meta = false, index = -1 }) {\n const additionalProperties = {\n brokenSymlink: fileSymlinkInformation(file, allFiles),\n hasCommentForm: false,\n discussions: file.discussions || [],\n drafts: [],\n viewer: {\n ...file.viewer,\n ...collapsed(file),\n },\n };\n\n // It's possible, but not confirmed, that `blob.id` isn't available sometimes\n // See: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/49506#note_464692057\n // We don't want duplicate IDs if that's the case, so we just don't assign an ID\n if (!meta && file.blob?.id && file.load_collapsed_diff_url) {\n additionalProperties.id = identifier(file);\n }\n\n if (index >= 0 && Number(index) === index) {\n additionalProperties.order = index;\n }\n\n return Object.assign(file, additionalProperties);\n}\n\nexport function collapsedType(file) {\n const isManual = typeof file?.viewer?.manuallyCollapsed === 'boolean';\n\n return isManual ? DIFF_FILE_MANUAL_COLLAPSE : DIFF_FILE_AUTOMATIC_COLLAPSE;\n}\n\nexport function isCollapsed(file) {\n const type = collapsedType(file);\n const collapsedStates = {\n [DIFF_FILE_AUTOMATIC_COLLAPSE]: file?.viewer?.automaticallyCollapsed || false,\n [DIFF_FILE_MANUAL_COLLAPSE]: file?.viewer?.manuallyCollapsed,\n };\n\n return collapsedStates[type];\n}\n\nexport function getShortShaFromFile(file) {\n return file.content_sha ? truncateSha(String(file.content_sha)) : null;\n}\n\nexport function match({ fileA, fileB, mode = 'universal' } = {}) {\n const matching = {\n universal: (a, b) => (a?.id && b?.id ? a.id === b.id : false),\n /*\n * MR mode can be wildly incorrect if there is ever the possibility of files from multiple MRs\n * (e.g. a browser-local merge request/file cache).\n * That's why the default here is \"universal\" mode: UUIDs can't conflict, but you can opt into\n * the dangerous one.\n *\n * For reference:\n * file_identifier_hash === sha1( `${filePath}-${Boolean(isNew)}-${Boolean(isDeleted)}-${Boolean(isRenamed)}` )\n */\n mr: (a, b) =>\n a?.file_identifier_hash && b?.file_identifier_hash\n ? a.file_identifier_hash === b.file_identifier_hash\n : false,\n };\n\n return (matching[mode] || (() => false))(fileA, fileB);\n}\n\nexport function stats(file) {\n let valid = false;\n let classes = '';\n let sign = '';\n let text = '';\n let percent = 0;\n let diff = 0;\n\n if (file) {\n percent = changeInPercent(file.old_size, file.new_size);\n diff = file.new_size - file.old_size;\n sign = diff >= 0 ? '+' : '';\n text = `${sign}${numberToHumanSize(diff)} (${sign}${percent}%)`;\n valid = true;\n\n if (diff > 0) {\n classes = 'gl-text-success';\n } else if (diff < 0) {\n classes = 'gl-text-danger';\n }\n }\n\n return {\n changed: diff,\n text,\n percent,\n classes,\n sign,\n valid,\n };\n}\n\nexport function countLinesInBetween(lines, index) {\n if (index === 0 || !lines[index + 1]) {\n return -1;\n }\n\n const prev = lines[index - 1];\n const next = lines[index + 1];\n return Number((next.left || next).new_line) - Number((prev.left || prev).new_line);\n}\n\nexport function findClosestMatchLine(lines, target) {\n return (\n lines.find((line, index) => {\n if (!line.meta_data) return false;\n const prevLine = lines[index - 1];\n if (prevLine) {\n return prevLine.new_line < target && target <= line.meta_data.new_pos;\n }\n return target <= line.meta_data.new_pos;\n }) || lines[lines.length - 1]\n );\n}\n\nexport function lineExists(lines, oldLineNumber, newLineNumber) {\n return lines.some((line) => line.old_line === oldLineNumber && line.new_line === newLineNumber);\n}\n","import initSourcegraph from './index';\n\ninitSourcegraph();\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","import { BFormRadio } from '../../../../vendor/bootstrap-vue/src/components/form-radio/form-radio';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nconst {\n model\n} = BFormRadio.options;\nvar script = {\n name: 'GlFormRadio',\n components: {\n BFormRadio\n },\n inheritAttrs: false,\n model: {\n prop: model.prop,\n event: model.event\n },\n props: {\n /**\n * Whether the radio is checked\n */\n checked: {\n type: [String, Number, Boolean, Object],\n required: false,\n default: false\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('b-form-radio',_vm._b({staticClass:\"gl-form-radio\",attrs:{\"checked\":_vm.checked},on:{\"input\":function($event){return _vm.$emit('input', $event)},\"change\":function($event){return _vm.$emit('change', $event)}}},'b-form-radio',_vm.$attrs,false),[_vm._t(\"default\"),_vm._v(\" \"),(_vm.$scopedSlots.help)?_c('p',{staticClass:\"help-text\"},[_vm._t(\"help\")],2):_vm._e()],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","/**\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","(function() {\n var Query, defaultPathSeparator, filter, matcher, parseOptions, pathScorer, preparedQueryCache, scorer;\n\n filter = require('./filter');\n\n matcher = require('./matcher');\n\n scorer = require('./scorer');\n\n pathScorer = require('./pathScorer');\n\n Query = require('./query');\n\n preparedQueryCache = null;\n\n defaultPathSeparator = (typeof process !== \"undefined\" && process !== null ? process.platform : void 0) === \"win32\" ? '\\\\' : '/';\n\n module.exports = {\n filter: function(candidates, query, options) {\n if (options == null) {\n options = {};\n }\n if (!((query != null ? query.length : void 0) && (candidates != null ? candidates.length : void 0))) {\n return [];\n }\n options = parseOptions(options, query);\n return filter(candidates, query, options);\n },\n score: function(string, query, options) {\n if (options == null) {\n options = {};\n }\n if (!((string != null ? string.length : void 0) && (query != null ? query.length : void 0))) {\n return 0;\n }\n options = parseOptions(options, query);\n if (options.usePathScoring) {\n return pathScorer.score(string, query, options);\n } else {\n return scorer.score(string, query, options);\n }\n },\n match: function(string, query, options) {\n var _i, _ref, _results;\n if (options == null) {\n options = {};\n }\n if (!string) {\n return [];\n }\n if (!query) {\n return [];\n }\n if (string === query) {\n return (function() {\n _results = [];\n for (var _i = 0, _ref = string.length; 0 <= _ref ? _i < _ref : _i > _ref; 0 <= _ref ? _i++ : _i--){ _results.push(_i); }\n return _results;\n }).apply(this);\n }\n options = parseOptions(options, query);\n return matcher.match(string, query, options);\n },\n wrap: function(string, query, options) {\n if (options == null) {\n options = {};\n }\n if (!string) {\n return [];\n }\n if (!query) {\n return [];\n }\n options = parseOptions(options, query);\n return matcher.wrap(string, query, options);\n },\n prepareQuery: function(query, options) {\n if (options == null) {\n options = {};\n }\n options = parseOptions(options, query);\n return options.preparedQuery;\n }\n };\n\n parseOptions = function(options, query) {\n if (options.allowErrors == null) {\n options.allowErrors = false;\n }\n if (options.usePathScoring == null) {\n options.usePathScoring = true;\n }\n if (options.useExtensionBonus == null) {\n options.useExtensionBonus = false;\n }\n if (options.pathSeparator == null) {\n options.pathSeparator = defaultPathSeparator;\n }\n if (options.optCharRegEx == null) {\n options.optCharRegEx = null;\n }\n if (options.wrap == null) {\n options.wrap = null;\n }\n if (options.preparedQuery == null) {\n options.preparedQuery = preparedQueryCache && preparedQueryCache.query === query ? preparedQueryCache : (preparedQueryCache = new Query(query, options));\n }\n return options;\n };\n\n}).call(this);\n","import { formatNumber, sprintf, __ } from '~/locale';\nimport { BYTES_IN_KIB, THOUSAND, MILLION } from './constants';\n\n/**\n * Utility function that calculates KiB of the given bytes.\n *\n * @param {Number} number bytes\n * @return {Number} KiB\n */\nexport function bytesToKiB(number) {\n return number / BYTES_IN_KIB;\n}\n\n/**\n * Utility function that calculates MiB of the given bytes.\n *\n * @param {Number} number bytes\n * @return {Number} MiB\n */\nexport function bytesToMiB(number) {\n return number / (BYTES_IN_KIB * BYTES_IN_KIB);\n}\n\n/**\n * Utility function that calculates GiB of the given bytes.\n * @param {Number} number\n * @returns {Number}\n */\nexport function bytesToGiB(number) {\n return number / (BYTES_IN_KIB * BYTES_IN_KIB * BYTES_IN_KIB);\n}\n\n/**\n * Formats the bytes in number into a more understandable\n * representation. Returns an array with the first value being the human size\n * and the second value being the label (e.g., [1.5, 'KiB']).\n *\n * @param {number} size\n * @param {number} [digits=2] - The number of digits to appear after the decimal point\n * @param {string} locale\n * @returns {string[]}\n */\nexport function numberToHumanSizeSplit({ size, digits = 2, locale } = {}) {\n const abs = Math.abs(size);\n const digitsOptions = { minimumFractionDigits: digits, maximumFractionDigits: digits };\n const formatNumberWithLocaleAndDigits = (n) => formatNumber(n, digitsOptions, locale);\n\n if (abs < BYTES_IN_KIB) {\n return [size.toString(), __('B')];\n }\n if (abs < BYTES_IN_KIB ** 2) {\n return [formatNumberWithLocaleAndDigits(bytesToKiB(size)), __('KiB')];\n }\n if (abs < BYTES_IN_KIB ** 3) {\n return [formatNumberWithLocaleAndDigits(bytesToMiB(size)), __('MiB')];\n }\n return [formatNumberWithLocaleAndDigits(bytesToGiB(size)), __('GiB')];\n}\n\n/**\n * Port of rails number_to_human_size\n * Formats the bytes in number into a more understandable\n * representation (e.g., giving it 1536 yields 1.5 KiB).\n *\n * @param {number} size\n * @param {number} [digits=2] - The number of digits to appear after the decimal point\n * @param {string} locale\n * @returns {string}\n */\nexport function numberToHumanSize(size, digits = 2, locale) {\n const [humanSize, label] = numberToHumanSizeSplit({ size, digits, locale });\n\n switch (label) {\n case __('B'):\n return sprintf(__('%{size} B'), { size: humanSize });\n case __('KiB'):\n return sprintf(__('%{size} KiB'), { size: humanSize });\n case __('MiB'):\n return sprintf(__('%{size} MiB'), { size: humanSize });\n case __('GiB'):\n return sprintf(__('%{size} GiB'), { size: humanSize });\n default:\n return '';\n }\n}\n\n/**\n * Converts a number to kilos or megas.\n *\n * For example:\n * - 123 becomes 123\n * - 123456 becomes 123.4k\n * - 123456789 becomes 123.4m\n *\n * @param number Number to format\n * @param digits The number of digits to appear after the decimal point\n * @param uppercase Whether to use uppercase suffix (K, M)\n * @return {string} Formatted number\n */\nexport function numberToMetricPrefix(number, uppercase = false) {\n if (number < THOUSAND) {\n return number.toString();\n }\n const digits = 1;\n if (number < MILLION) {\n return `${Number((number / THOUSAND).toFixed(digits))}${uppercase ? 'K' : 'k'}`;\n }\n return `${Number((number / MILLION).toFixed(digits))}${uppercase ? 'M' : 'm'}`;\n}\n/**\n * A simple method that returns the value of a + b\n * It seems unessesary, but when combined with a reducer it\n * adds up all the values in an array.\n *\n * e.g. `[1, 2, 3, 4, 5].reduce(sum) // => 15`\n *\n * @param {Float} a\n * @param {Float} b\n * @example\n * // return 15\n * [1, 2, 3, 4, 5].reduce(sum);\n *\n * // returns 6\n * Object.values([{a: 1, b: 2, c: 3].reduce(sum);\n * @returns {Float} The summed value\n */\nexport const sum = (a = 0, b = 0) => a + b;\n\n/**\n * Checks if the provided number is odd\n * @param {Int} number\n */\nexport const isOdd = (number = 0) => number % 2;\n\n/**\n * Computes the median for a given array.\n * @param {Array} arr An array of numbers\n * @returns {Number} The median of the given array\n */\nexport const median = (arr) => {\n const middle = Math.floor(arr.length / 2);\n const sorted = arr.sort((a, b) => a - b);\n return arr.length % 2 !== 0 ? sorted[middle] : (sorted[middle - 1] + sorted[middle]) / 2;\n};\n\n/**\n * Computes the change from one value to the other as a percentage.\n * @param {Number} firstY\n * @param {Number} lastY\n * @returns {Number}\n */\nexport const changeInPercent = (firstY, lastY) => {\n if (firstY === lastY) {\n return 0;\n }\n\n return Math.round(((lastY - firstY) / Math.abs(firstY)) * 100);\n};\n\n/**\n * Computes and formats the change from one value to the other as a percentage.\n * Prepends the computed percentage with either \"+\" or \"-\" to indicate an in- or decrease and\n * returns a given string if the result is not finite (for example, if the first value is \"0\").\n * @param firstY\n * @param lastY\n * @param nonFiniteResult\n * @returns {String}\n */\nexport const formattedChangeInPercent = (firstY, lastY, { nonFiniteResult = '-' } = {}) => {\n const change = changeInPercent(firstY, lastY);\n\n if (!Number.isFinite(change)) {\n return nonFiniteResult;\n }\n\n return `${change >= 0 ? '+' : ''}${change}%`;\n};\n\n/**\n * Checks whether a value is numerical in nature by converting it using parseInt\n *\n * Example outcomes:\n * - isNumeric(100) = true\n * - isNumeric('100') = true\n * - isNumeric(1.0) = true\n * - isNumeric('1.0') = true\n * - isNumeric('abc100') = false\n * - isNumeric('abc') = false\n * - isNumeric(true) = false\n * - isNumeric(undefined) = false\n * - isNumeric(null) = false\n *\n * @param value\n * @returns {boolean}\n */\nexport const isNumeric = (value) => {\n return !Number.isNaN(parseInt(value, 10));\n};\n\nconst numberRegex = /^[0-9]+$/;\n\n/**\n * Checks whether the value is a positive number or 0, or a string with equivalent value\n *\n * @param value\n * @return {boolean}\n */\nexport const isPositiveInteger = (value) => numberRegex.test(value);\n\n/**\n * Splits a number into an integer and decimal component\n * returns an object with the integer and decimal values extracted\n *\n * @param value\n * @return {Object}\n */\nexport const splitDecimalNumber = (value) => {\n if (isNumeric(value)) {\n const parts = String(value).split('.');\n if (value === 0) return { integer: '0', decimal: '0' };\n\n if (parts.length) {\n return parts.length > 1\n ? { integer: parts[0], decimal: parts[1] }\n : { integer: parts[0], decimal: null };\n }\n }\n return { integer: null, decimal: null };\n};\n\n/**\n * Calculates the number of digits after the decimal place\n *\n * @param num - any numeric value\n * @return number of digits after the decimal (if any)\n */\nexport const countFloatingPointDigits = (num = null) => {\n if (!num || !isNumeric(num)) return 0;\n\n const { decimal } = splitDecimalNumber(num);\n return String(decimal).length;\n};\n","function loadScript(path) {\n const script = document.createElement('script');\n script.type = 'application/javascript';\n script.src = path;\n script.defer = true;\n document.head.appendChild(script);\n}\n\n/**\n * Loads the Sourcegraph integration for support for Sourcegraph extensions and\n * code intelligence.\n */\nexport default function initSourcegraph() {\n const { url } = gon.sourcegraph || {};\n\n if (!url) {\n return;\n }\n\n const assetsUrl = new URL(process.env.SOURCEGRAPH_PUBLIC_PATH, window.location.href);\n const scriptPath = new URL('scripts/integration.bundle.js', assetsUrl).href;\n\n window.SOURCEGRAPH_ASSETS_URL = assetsUrl.href;\n window.SOURCEGRAPH_URL = url;\n window.SOURCEGRAPH_INTEGRATION = 'gitlab-integration';\n\n loadScript(scriptPath);\n}\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","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"User\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"User\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"avatarUrl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"username\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"webUrl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"webPath\"},\"arguments\":[],\"directives\":[]}]}}],\"loc\":{\"start\":0,\"end\":80}};\n doc.loc.source = {\"body\":\"fragment User on User {\\n id\\n avatarUrl\\n name\\n username\\n webUrl\\n webPath\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"User\"] = oneQuery(doc, \"User\");\n \n","(function() {\n var Query, coreChars, countDir, getCharCodes, getExtension, opt_char_re, truncatedUpperCase, _ref;\n\n _ref = require(\"./pathScorer\"), countDir = _ref.countDir, getExtension = _ref.getExtension;\n\n module.exports = Query = (function() {\n function Query(query, _arg) {\n var optCharRegEx, pathSeparator, _ref1;\n _ref1 = _arg != null ? _arg : {}, optCharRegEx = _ref1.optCharRegEx, pathSeparator = _ref1.pathSeparator;\n if (!(query && query.length)) {\n return null;\n }\n this.query = query;\n this.query_lw = query.toLowerCase();\n this.core = coreChars(query, optCharRegEx);\n this.core_lw = this.core.toLowerCase();\n this.core_up = truncatedUpperCase(this.core);\n this.depth = countDir(query, query.length, pathSeparator);\n this.ext = getExtension(this.query_lw);\n this.charCodes = getCharCodes(this.query_lw);\n }\n\n return Query;\n\n })();\n\n opt_char_re = /[ _\\-:\\/\\\\]/g;\n\n coreChars = function(query, optCharRegEx) {\n if (optCharRegEx == null) {\n optCharRegEx = opt_char_re;\n }\n return query.replace(optCharRegEx, '');\n };\n\n truncatedUpperCase = function(str) {\n var char, upper, _i, _len;\n upper = \"\";\n for (_i = 0, _len = str.length; _i < _len; _i++) {\n char = str[_i];\n upper += char.toUpperCase()[0];\n }\n return upper;\n };\n\n getCharCodes = function(str) {\n var charCodes, i, len;\n len = str.length;\n i = -1;\n charCodes = [];\n while (++i < len) {\n charCodes[str.charCodeAt(i)] = true;\n }\n return charCodes;\n };\n\n}).call(this);\n","(function() {\n var computeScore, countDir, file_coeff, getExtension, getExtensionScore, isMatch, scorePath, scoreSize, tau_depth, _ref;\n\n _ref = require('./scorer'), isMatch = _ref.isMatch, computeScore = _ref.computeScore, scoreSize = _ref.scoreSize;\n\n tau_depth = 20;\n\n file_coeff = 2.5;\n\n exports.score = function(string, query, options) {\n var allowErrors, preparedQuery, score, string_lw;\n preparedQuery = options.preparedQuery, allowErrors = options.allowErrors;\n if (!(allowErrors || isMatch(string, preparedQuery.core_lw, preparedQuery.core_up))) {\n return 0;\n }\n string_lw = string.toLowerCase();\n score = computeScore(string, string_lw, preparedQuery);\n score = scorePath(string, string_lw, score, options);\n return Math.ceil(score);\n };\n\n scorePath = function(subject, subject_lw, fullPathScore, options) {\n var alpha, basePathScore, basePos, depth, end, extAdjust, fileLength, pathSeparator, preparedQuery, useExtensionBonus;\n if (fullPathScore === 0) {\n return 0;\n }\n preparedQuery = options.preparedQuery, useExtensionBonus = options.useExtensionBonus, pathSeparator = options.pathSeparator;\n end = subject.length - 1;\n while (subject[end] === pathSeparator) {\n end--;\n }\n basePos = subject.lastIndexOf(pathSeparator, end);\n fileLength = end - basePos;\n extAdjust = 1.0;\n if (useExtensionBonus) {\n extAdjust += getExtensionScore(subject_lw, preparedQuery.ext, basePos, end, 2);\n fullPathScore *= extAdjust;\n }\n if (basePos === -1) {\n return fullPathScore;\n }\n depth = preparedQuery.depth;\n while (basePos > -1 && depth-- > 0) {\n basePos = subject.lastIndexOf(pathSeparator, basePos - 1);\n }\n basePathScore = basePos === -1 ? fullPathScore : extAdjust * computeScore(subject.slice(basePos + 1, end + 1), subject_lw.slice(basePos + 1, end + 1), preparedQuery);\n alpha = 0.5 * tau_depth / (tau_depth + countDir(subject, end + 1, pathSeparator));\n return alpha * basePathScore + (1 - alpha) * fullPathScore * scoreSize(0, file_coeff * fileLength);\n };\n\n exports.countDir = countDir = function(path, end, pathSeparator) {\n var count, i;\n if (end < 1) {\n return 0;\n }\n count = 0;\n i = -1;\n while (++i < end && path[i] === pathSeparator) {\n continue;\n }\n while (++i < end) {\n if (path[i] === pathSeparator) {\n count++;\n while (++i < end && path[i] === pathSeparator) {\n continue;\n }\n }\n }\n return count;\n };\n\n exports.getExtension = getExtension = function(str) {\n var pos;\n pos = str.lastIndexOf(\".\");\n if (pos < 0) {\n return \"\";\n } else {\n return str.substr(pos + 1);\n }\n };\n\n getExtensionScore = function(candidate, ext, startPos, endPos, maxDepth) {\n var m, matched, n, pos;\n if (!ext.length) {\n return 0;\n }\n pos = candidate.lastIndexOf(\".\", endPos);\n if (!(pos > startPos)) {\n return 0;\n }\n n = ext.length;\n m = endPos - pos;\n if (m < n) {\n n = m;\n m = ext.length;\n }\n pos++;\n matched = -1;\n while (++matched < n) {\n if (candidate[pos + matched] !== ext[matched]) {\n break;\n }\n }\n if (matched === 0 && maxDepth > 0) {\n return 0.9 * getExtensionScore(candidate, ext, startPos, pos - 2, maxDepth - 1);\n }\n return matched / m;\n };\n\n}).call(this);\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"diff-stats\",class:{\n 'is-compare-versions-header gl-hidden lg:gl-inline-flex': _vm.isCompareVersionsHeader,\n 'gl-hidden sm:!gl-inline-flex': !_vm.isCompareVersionsHeader,\n }},[(_vm.notDiffable)?_c('div',{class:_vm.fileStats.classes},[_vm._v(\"\\n \"+_vm._s(_vm.fileStats.text)+\"\\n \")]):_c('div',{staticClass:\"diff-stats-contents\"},[(_vm.hasDiffFiles)?_c('div',{staticClass:\"diff-stats-group\"},[_c('gl-icon',{staticClass:\"diff-stats-icon\",attrs:{\"name\":\"doc-code\",\"variant\":\"subtle\"}}),_vm._v(\" \"),_c('span',{staticClass:\"gl-font-bold gl-text-subtle\"},[_vm._v(_vm._s(_vm.diffsCount)+\" \"+_vm._s(_vm.filesText))])],1):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"diff-stats-group gl-flex gl-items-center gl-text-success\",class:{ 'gl-font-bold': _vm.isCompareVersionsHeader }},[_c('span',[_vm._v(\"+\")]),_vm._v(\" \"),_c('span',{attrs:{\"data-testid\":\"js-file-addition-line\"}},[_vm._v(_vm._s(_vm.addedLines))])]),_vm._v(\" \"),_c('div',{staticClass:\"diff-stats-group gl-flex gl-items-center gl-text-danger\",class:{ 'gl-font-bold': _vm.isCompareVersionsHeader }},[_c('span',[_vm._v(\"−\")]),_vm._v(\" \"),_c('span',{attrs:{\"data-testid\":\"js-file-deletion-line\"}},[_vm._v(_vm._s(_vm.removedLines))])])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./diff_stats.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!./diff_stats.vue?vue&type=script&lang=js\"","<script>\nimport { GlIcon } from '@gitlab/ui';\nimport { isNumber } from 'lodash';\nimport { n__ } from '~/locale';\nimport { isNotDiffable, stats } from '../utils/diff_file';\n\nexport default {\n components: { GlIcon },\n props: {\n diffFile: {\n type: Object,\n required: false,\n default: () => null,\n },\n addedLines: {\n type: Number,\n required: true,\n },\n removedLines: {\n type: Number,\n required: true,\n },\n diffsCount: {\n type: String,\n required: false,\n default: null,\n },\n },\n computed: {\n diffFilesLength() {\n return parseInt(this.diffsCount, 10);\n },\n filesText() {\n return n__('file', 'files', this.diffFilesLength);\n },\n isCompareVersionsHeader() {\n return Boolean(this.diffsCount);\n },\n hasDiffFiles() {\n return isNumber(this.diffFilesLength) && this.diffFilesLength >= 0;\n },\n notDiffable() {\n return isNotDiffable(this.diffFile);\n },\n fileStats() {\n return stats(this.diffFile);\n },\n },\n};\n</script>\n\n<template>\n <div\n class=\"diff-stats\"\n :class=\"{\n 'is-compare-versions-header gl-hidden lg:gl-inline-flex': isCompareVersionsHeader,\n 'gl-hidden sm:!gl-inline-flex': !isCompareVersionsHeader,\n }\"\n >\n <div v-if=\"notDiffable\" :class=\"fileStats.classes\">\n {{ fileStats.text }}\n </div>\n <div v-else class=\"diff-stats-contents\">\n <div v-if=\"hasDiffFiles\" class=\"diff-stats-group\">\n <gl-icon name=\"doc-code\" class=\"diff-stats-icon\" variant=\"subtle\" />\n <span class=\"gl-font-bold gl-text-subtle\">{{ diffsCount }} {{ filesText }}</span>\n </div>\n <div\n class=\"diff-stats-group gl-flex gl-items-center gl-text-success\"\n :class=\"{ 'gl-font-bold': isCompareVersionsHeader }\"\n >\n <span>+</span>\n <span data-testid=\"js-file-addition-line\">{{ addedLines }}</span>\n </div>\n <div\n class=\"diff-stats-group gl-flex gl-items-center gl-text-danger\"\n :class=\"{ 'gl-font-bold': isCompareVersionsHeader }\"\n >\n <span>−</span>\n <span data-testid=\"js-file-deletion-line\">{{ removedLines }}</span>\n </div>\n </div>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./diff_stats.vue?vue&type=template&id=7e7e1790\"\nimport script from \"./diff_stats.vue?vue&type=script&lang=js\"\nexport * from \"./diff_stats.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","(function() {\n var basenameMatch, computeMatch, isMatch, isWordStart, match, mergeMatches, scoreAcronyms, scoreCharacter, scoreConsecutives, _ref;\n\n _ref = require('./scorer'), isMatch = _ref.isMatch, isWordStart = _ref.isWordStart, scoreConsecutives = _ref.scoreConsecutives, scoreCharacter = _ref.scoreCharacter, scoreAcronyms = _ref.scoreAcronyms;\n\n exports.match = match = function(string, query, options) {\n var allowErrors, baseMatches, matches, pathSeparator, preparedQuery, string_lw;\n allowErrors = options.allowErrors, preparedQuery = options.preparedQuery, pathSeparator = options.pathSeparator;\n if (!(allowErrors || isMatch(string, preparedQuery.core_lw, preparedQuery.core_up))) {\n return [];\n }\n string_lw = string.toLowerCase();\n matches = computeMatch(string, string_lw, preparedQuery);\n if (matches.length === 0) {\n return matches;\n }\n if (string.indexOf(pathSeparator) > -1) {\n baseMatches = basenameMatch(string, string_lw, preparedQuery, pathSeparator);\n matches = mergeMatches(matches, baseMatches);\n }\n return matches;\n };\n\n exports.wrap = function(string, query, options) {\n var matchIndex, matchPos, matchPositions, output, strPos, tagClass, tagClose, tagOpen, _ref1;\n if ((options.wrap != null)) {\n _ref1 = options.wrap, tagClass = _ref1.tagClass, tagOpen = _ref1.tagOpen, tagClose = _ref1.tagClose;\n }\n if (tagClass == null) {\n tagClass = 'highlight';\n }\n if (tagOpen == null) {\n tagOpen = '<strong class=\"' + tagClass + '\">';\n }\n if (tagClose == null) {\n tagClose = '</strong>';\n }\n if (string === query) {\n return tagOpen + string + tagClose;\n }\n matchPositions = match(string, query, options);\n if (matchPositions.length === 0) {\n return string;\n }\n output = '';\n matchIndex = -1;\n strPos = 0;\n while (++matchIndex < matchPositions.length) {\n matchPos = matchPositions[matchIndex];\n if (matchPos > strPos) {\n output += string.substring(strPos, matchPos);\n strPos = matchPos;\n }\n while (++matchIndex < matchPositions.length) {\n if (matchPositions[matchIndex] === matchPos + 1) {\n matchPos++;\n } else {\n matchIndex--;\n break;\n }\n }\n matchPos++;\n if (matchPos > strPos) {\n output += tagOpen;\n output += string.substring(strPos, matchPos);\n output += tagClose;\n strPos = matchPos;\n }\n }\n if (strPos <= string.length - 1) {\n output += string.substring(strPos);\n }\n return output;\n };\n\n basenameMatch = function(subject, subject_lw, preparedQuery, pathSeparator) {\n var basePos, depth, end;\n end = subject.length - 1;\n while (subject[end] === pathSeparator) {\n end--;\n }\n basePos = subject.lastIndexOf(pathSeparator, end);\n if (basePos === -1) {\n return [];\n }\n depth = preparedQuery.depth;\n while (depth-- > 0) {\n basePos = subject.lastIndexOf(pathSeparator, basePos - 1);\n if (basePos === -1) {\n return [];\n }\n }\n basePos++;\n end++;\n return computeMatch(subject.slice(basePos, end), subject_lw.slice(basePos, end), preparedQuery, basePos);\n };\n\n mergeMatches = function(a, b) {\n var ai, bj, i, j, m, n, out;\n m = a.length;\n n = b.length;\n if (n === 0) {\n return a.slice();\n }\n if (m === 0) {\n return b.slice();\n }\n i = -1;\n j = 0;\n bj = b[j];\n out = [];\n while (++i < m) {\n ai = a[i];\n while (bj <= ai && ++j < n) {\n if (bj < ai) {\n out.push(bj);\n }\n bj = b[j];\n }\n out.push(ai);\n }\n while (j < n) {\n out.push(b[j++]);\n }\n return out;\n };\n\n computeMatch = function(subject, subject_lw, preparedQuery, offset) {\n var DIAGONAL, LEFT, STOP, UP, acro_score, align, backtrack, csc_diag, csc_row, csc_score, i, j, m, matches, move, n, pos, query, query_lw, score, score_diag, score_row, score_up, si_lw, start, trace;\n if (offset == null) {\n offset = 0;\n }\n query = preparedQuery.query;\n query_lw = preparedQuery.query_lw;\n m = subject.length;\n n = query.length;\n acro_score = scoreAcronyms(subject, subject_lw, query, query_lw).score;\n score_row = new Array(n);\n csc_row = new Array(n);\n STOP = 0;\n UP = 1;\n LEFT = 2;\n DIAGONAL = 3;\n trace = new Array(m * n);\n pos = -1;\n j = -1;\n while (++j < n) {\n score_row[j] = 0;\n csc_row[j] = 0;\n }\n i = -1;\n while (++i < m) {\n score = 0;\n score_up = 0;\n csc_diag = 0;\n si_lw = subject_lw[i];\n j = -1;\n while (++j < n) {\n csc_score = 0;\n align = 0;\n score_diag = score_up;\n if (query_lw[j] === si_lw) {\n start = isWordStart(i, subject, subject_lw);\n csc_score = csc_diag > 0 ? csc_diag : scoreConsecutives(subject, subject_lw, query, query_lw, i, j, start);\n align = score_diag + scoreCharacter(i, j, start, acro_score, csc_score);\n }\n score_up = score_row[j];\n csc_diag = csc_row[j];\n if (score > score_up) {\n move = LEFT;\n } else {\n score = score_up;\n move = UP;\n }\n if (align > score) {\n score = align;\n move = DIAGONAL;\n } else {\n csc_score = 0;\n }\n score_row[j] = score;\n csc_row[j] = csc_score;\n trace[++pos] = score > 0 ? move : STOP;\n }\n }\n i = m - 1;\n j = n - 1;\n pos = i * n + j;\n backtrack = true;\n matches = [];\n while (backtrack && i >= 0 && j >= 0) {\n switch (trace[pos]) {\n case UP:\n i--;\n pos -= n;\n break;\n case LEFT:\n j--;\n pos--;\n break;\n case DIAGONAL:\n matches.push(i + offset);\n j--;\n i--;\n pos -= n + 1;\n break;\n default:\n backtrack = false;\n }\n }\n matches.reverse();\n return matches;\n };\n\n}).call(this);\n","(function() {\n var Query, pathScorer, pluckCandidates, scorer, sortCandidates;\n\n scorer = require('./scorer');\n\n pathScorer = require('./pathScorer');\n\n Query = require('./query');\n\n pluckCandidates = function(a) {\n return a.candidate;\n };\n\n sortCandidates = function(a, b) {\n return b.score - a.score;\n };\n\n module.exports = function(candidates, query, options) {\n var bKey, candidate, key, maxInners, maxResults, score, scoreProvider, scoredCandidates, spotLeft, string, usePathScoring, _i, _len;\n scoredCandidates = [];\n key = options.key, maxResults = options.maxResults, maxInners = options.maxInners, usePathScoring = options.usePathScoring;\n spotLeft = (maxInners != null) && maxInners > 0 ? maxInners : candidates.length + 1;\n bKey = key != null;\n scoreProvider = usePathScoring ? pathScorer : scorer;\n for (_i = 0, _len = candidates.length; _i < _len; _i++) {\n candidate = candidates[_i];\n string = bKey ? candidate[key] : candidate;\n if (!string) {\n continue;\n }\n score = scoreProvider.score(string, query, options);\n if (score > 0) {\n scoredCandidates.push({\n candidate: candidate,\n score: score\n });\n if (!--spotLeft) {\n break;\n }\n }\n }\n scoredCandidates.sort(sortCandidates);\n candidates = scoredCandidates.map(pluckCandidates);\n if (maxResults != null) {\n candidates = candidates.slice(0, maxResults);\n }\n return candidates;\n };\n\n}).call(this);\n"],"sourceRoot":""}