{"version":3,"sources":["webpack:///./behaviors/date_picker.js","webpack:///./lib/utils/autosave.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/new_dropdowns/disclosure/utils.js","webpack:///./milestones/index.js","webpack:////build/source/node_modules/fuzzaldrin-plus/lib/scorer.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/new_dropdowns/disclosure/constants.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/new_dropdowns/disclosure/disclosure_dropdown.js","webpack:////build/source/node_modules/fuzzaldrin-plus/lib/fuzzaldrin.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/new_dropdowns/disclosure/disclosure_dropdown_item.js","webpack:////build/source/node_modules/fuzzaldrin-plus/lib/query.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/new_dropdowns/disclosure/disclosure_dropdown_group.js","webpack:////build/source/node_modules/fuzzaldrin-plus/lib/pathScorer.js","webpack:////build/source/node_modules/fuzzaldrin-plus/lib/matcher.js","webpack:////build/source/node_modules/fuzzaldrin-plus/lib/filter.js"],"names":["initDatePickers","$","each","$datePicker","this","datePickerVal","val","calendar","Pikaday","field","get","theme","format","container","parent","parse","dateString","newDate","toString","date","toISODateFormat","onSelect","dateText","firstDay","gon","first_day_of_week","setDate","data","on","e","preventDefault","target","siblings","children","normalizeKey","autosaveKey","normalizedKey","Array","isArray","every","_isString","join","Error","lockVersionKey","clearDraft","window","localStorage","removeItem","console","error","getDraft","getItem","getLockVersion","updateDraft","text","lockVersion","setItem","getAutoSaveKeyFromDiscussion","discussion","noteableType","notes","slice","noteable_type","discussionId","id","capitalizeFirstCharacter","isItem","item","Boolean","_item$text","length","items","itemValidator","isGroup","group","itemsValidator","hasOnlyListItemsVue2","defaultSlot","nodes","tags","filter","vNode","tag","_vNode$componentOptio","componentOptions","includes","isValidSlotTagVue2","hasOnlyListItemsVue3","fragment","find","node","trim","_vNode$type","type","name","isValidSlotTagVue3","hasOnlyListItems","version","startsWith","initForm","mountMarkdownEditor","ZenMode","initDatePicker","initShow","Milestone","Sidebar","MountMilestoneSidebar","renderGFM","document","querySelector","el","TaskList","dataType","TYPE_MILESTONE","fieldName","selector","dataset","onError","createAlert","message","__","AcronymResult","computeScore","emptyAcronymResult","isAcronymFullWord","isMatch","isSeparator","isWordEnd","isWordStart","scoreAcronyms","scoreCharacter","scoreConsecutives","scoreExact","scoreExactMatch","scorePattern","scorePosition","scoreSize","exports","score","string","query","options","preparedQuery","string_lw","allowErrors","core_lw","core_up","toLowerCase","Math","ceil","subject","query_lw","query_up","i","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","pos","record_miss","score_diag","score_row","score_up","si_lw","start","sz","count","indexOf","charCodes","max","curr_s","prev_s","len","next_s","c","sc","abs","quality","sameCase","end","bonus","posBonus","startOfWord","k","mi","nj","pos2","fullWord","sepCount","sumPos","nbAcronymInQuery","call","DISCLOSURE_DROPDOWN_ITEM_NAME","DISCLOSURE_DROPDOWN_GROUP_NAME","DISCLOSURE_DROPDOWN_GROUP_BORDER_POSITIONS","top","bottom","DROPDOWN_SELECTOR","ITEM_SELECTOR","__vue_script__","events","GL_DROPDOWN_SHOWN","GL_DROPDOWN_HIDDEN","GL_DROPDOWN_BEFORE_CLOSE","GL_DROPDOWN_FOCUS_CONTENT","components","GlBaseDropdown","GlDisclosureDropdownItem","GlDisclosureDropdownGroup","props","required","default","validator","toggleText","String","textSrOnly","category","primary","value","variant","size","icon","disabled","loading","toggleId","toggleClass","Object","noCaret","placement","keys","toggleAriaLabelledBy","listAriaLabelledBy","block","dropdownOffset","Number","undefined","fluidWidth","autoClose","positioningStrategy","strategy","startOpened","disclosureId","nextFocusedItemIndex","computed","_this$items","$scopedSlots","$slots","toggle","open","methods","$refs","baseDropdown","close","$emit","event","code","elements","getFocusableListItemElements","stop","focusItem","focusNextItem","handleAutoClose","_this$$refs$content","content","querySelectorAll","from","offset","currentIndex","nextIndex","index","_elements$index","focus","closeAndFocus","action","requestAnimationFrame","closest","$el","uniqueItemId","GL_DROPDOWN_CONTENTS_CLASS","__vue_component__","render","_vm","_h","$createElement","_c","_self","ref","staticClass","attrs","_d","$options","onShow","onHide","onBeforeClose","onKeydown","scopedSlots","_u","key","fn","_t","proxy","_v","disclosureTag","class","_l","handleAction","groupItem","_e","staticRenderFns","Query","defaultPathSeparator","matcher","parseOptions","pathScorer","preparedQueryCache","scorer","process","platform","module","candidates","usePathScoring","match","_results","_i","_ref","push","apply","wrap","prepareQuery","useExtensionBonus","pathSeparator","optCharRegEx","ITEM_CLASS","BLink","_this$item","_this$item2","href","to","isLink","is","extraAttrs","listeners","click","_item$action","_this$item3","_this$item3$extraAttr","_this$item4","_this$item4$extraAttr","_this$item$wrapperCla","_this$item5","wrapperClass","keydown","isCustomContent","MouseEvent","bubbles","cancelable","_this$$refs$item","dispatchEvent","_g","listIndex","wrapperListeners","itemComponent","_b","componentIndex","_s","coreChars","countDir","getCharCodes","getExtension","opt_char_re","truncatedUpperCase","_arg","_ref1","core","depth","ext","replace","str","upper","_len","toUpperCase","BORDER_CLASSES","bordered","borderPosition","_this$group","showHeader","nameId","borderClass","groupLabeledBy","getExtensionScore","scorePath","fullPathScore","alpha","basePathScore","basePos","extAdjust","fileLength","lastIndexOf","path","substr","candidate","startPos","endPos","maxDepth","matched","basenameMatch","computeMatch","mergeMatches","baseMatches","matches","matchIndex","matchPos","matchPositions","output","strPos","tagClass","tagClose","tagOpen","substring","a","b","ai","bj","out","backtrack","move","trace","reverse","pluckCandidates","sortCandidates","bKey","maxInners","maxResults","scoreProvider","scoredCandidates","spotLeft","sort","map"],"mappings":"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","file":"commons-pages.groups.milestones.edit-pages.groups.milestones.new-pages.groups.milestones.show-pages.-7357ed32.b6b73b87.chunk.js","sourcesContent":["import $ from 'jquery';\nimport Pikaday from 'pikaday';\nimport { newDate, toISODateFormat } from '~/lib/utils/datetime_utility';\n\nexport default function initDatePickers() {\n  $('.datepicker').each(function initPikaday() {\n    const $datePicker = $(this);\n    const datePickerVal = $datePicker.val();\n\n    const calendar = new Pikaday({\n      field: $datePicker.get(0),\n      theme: 'gl-datepicker-theme animate-picker',\n      format: 'yyyy-mm-dd',\n      container: $datePicker.parent().get(0),\n      parse: (dateString) => newDate(dateString),\n      toString: (date) => toISODateFormat(date),\n      onSelect(dateText) {\n        $datePicker.val(calendar.toString(dateText));\n      },\n      firstDay: gon.first_day_of_week,\n    });\n\n    calendar.setDate(newDate(datePickerVal));\n\n    $datePicker.data('pikaday', calendar);\n  });\n\n  $('.js-clear-due-date,.js-clear-start-date').on('click', (e) => {\n    e.preventDefault();\n    const calendar = $(e.target)\n      .siblings('.issuable-form-select-holder')\n      .children('.datepicker')\n      .data('pikaday');\n    calendar.setDate(null);\n  });\n}\n","import { isString } from 'lodash';\nimport { capitalizeFirstCharacter } from '~/lib/utils/text_utility';\n\nconst normalizeKey = (autosaveKey) => {\n  let normalizedKey;\n\n  if (Array.isArray(autosaveKey) && autosaveKey.every(isString)) {\n    normalizedKey = autosaveKey.join('/');\n  } else if (isString(autosaveKey)) {\n    normalizedKey = autosaveKey;\n  } else {\n    // eslint-disable-next-line @gitlab/require-i18n-strings\n    throw new Error('Invalid autosave key');\n  }\n\n  return `autosave/${normalizedKey}`;\n};\n\nconst lockVersionKey = (autosaveKey) => `${normalizeKey(autosaveKey)}/lockVersion`;\n\nexport const clearDraft = (autosaveKey) => {\n  try {\n    window.localStorage.removeItem(normalizeKey(autosaveKey));\n    window.localStorage.removeItem(lockVersionKey(autosaveKey));\n  } catch (e) {\n    // eslint-disable-next-line no-console\n    console.error(e);\n  }\n};\n\nexport const getDraft = (autosaveKey) => {\n  try {\n    return window.localStorage.getItem(normalizeKey(autosaveKey));\n  } catch (e) {\n    // eslint-disable-next-line no-console\n    console.error(e);\n    return null;\n  }\n};\n\nexport const getLockVersion = (autosaveKey) => {\n  try {\n    return window.localStorage.getItem(lockVersionKey(autosaveKey));\n  } catch (e) {\n    // eslint-disable-next-line no-console\n    console.error(e);\n    return null;\n  }\n};\n\nexport const updateDraft = (autosaveKey, text, lockVersion) => {\n  try {\n    window.localStorage.setItem(normalizeKey(autosaveKey), text);\n    if (lockVersion) {\n      window.localStorage.setItem(lockVersionKey(autosaveKey), lockVersion);\n    }\n  } catch (e) {\n    // eslint-disable-next-line no-console\n    console.error(e);\n  }\n};\n\nexport const getDiscussionReplyKey = (noteableType, discussionId) =>\n  /* eslint-disable-next-line @gitlab/require-i18n-strings */\n  ['Note', capitalizeFirstCharacter(noteableType), discussionId, 'Reply'].join('/');\n\nexport const getAutoSaveKeyFromDiscussion = (discussion) =>\n  getDiscussionReplyKey(discussion.notes.slice(0, 1)[0].noteable_type, discussion.id);\n","import Vue from 'vue';\nimport isFunction from 'lodash/isFunction';\nimport isString from 'lodash/isString';\nimport { DISCLOSURE_DROPDOWN_ITEM_NAME, DISCLOSURE_DROPDOWN_GROUP_NAME } from './constants';\n\nconst itemValidator = item => {\n  var _item$text;\n  return (item === null || item === void 0 ? void 0 : (_item$text = item.text) === null || _item$text === void 0 ? void 0 : _item$text.length) > 0 && !Array.isArray(item === null || item === void 0 ? void 0 : item.items);\n};\nconst isItem = item => Boolean(item) && itemValidator(item);\nconst isGroup = group => Boolean(group) && Array.isArray(group.items) && Boolean(group.items.length) &&\n// eslint-disable-next-line unicorn/no-array-callback-reference\ngroup.items.every(isItem);\n\n// eslint-disable-next-line unicorn/no-array-callback-reference\nconst itemsValidator = items => items.every(isItem) || items.every(isGroup);\nconst isListItem = tag => ['gl-disclosure-dropdown-group', 'gl-disclosure-dropdown-item', 'li'].includes(tag);\nconst isValidSlotTagVue2 = vNode => {\n  var _vNode$componentOptio;\n  return Boolean(vNode) && isListItem(((_vNode$componentOptio = vNode.componentOptions) === null || _vNode$componentOptio === void 0 ? void 0 : _vNode$componentOptio.tag) || vNode.tag);\n};\nconst isValidSlotTagVue3 = vNode => {\n  var _vNode$type;\n  return [DISCLOSURE_DROPDOWN_ITEM_NAME, DISCLOSURE_DROPDOWN_GROUP_NAME].includes((_vNode$type = vNode.type) === null || _vNode$type === void 0 ? void 0 : _vNode$type.name) || vNode.type === 'li';\n};\nconst hasOnlyListItemsVue2 = defaultSlot => {\n  const nodes = defaultSlot();\n  if (!Array.isArray(nodes)) {\n    return false;\n  }\n  const tags = nodes.filter(vNode => vNode.tag);\n  return tags.length && tags.every(tag => isValidSlotTagVue2(tag));\n};\nconst hasOnlyListItemsVue3 = defaultSlot => {\n  const nodes = defaultSlot();\n  const fragment = nodes.find(node => Array.isArray(node.children) && node.children.length);\n  const targetNodes = fragment ? fragment.children : nodes;\n  return targetNodes\n  // Remove empty text vNodes\n  .filter(vNode => !isString(vNode.text) || vNode.text.trim().length > 0).every(vNode => isValidSlotTagVue3(vNode));\n};\nconst hasOnlyListItems = defaultSlot => {\n  if (!isFunction(defaultSlot)) {\n    return false;\n  }\n  if (Vue.version.startsWith('3')) {\n    return hasOnlyListItemsVue3(defaultSlot);\n  }\n  return hasOnlyListItemsVue2(defaultSlot);\n};\n\nexport { hasOnlyListItems, isGroup, isItem, itemsValidator };\n","import initDatePicker from '~/behaviors/date_picker';\nimport Milestone from '~/milestones/milestone';\nimport { renderGFM } from '~/behaviors/markdown/render_gfm';\nimport { mountMarkdownEditor } from '~/vue_shared/components/markdown/mount_markdown_editor';\nimport Sidebar from '~/right_sidebar';\nimport MountMilestoneSidebar from '~/sidebar/mount_milestone_sidebar';\nimport ZenMode from '~/zen_mode';\nimport TaskList from '~/task_list';\nimport { TYPE_MILESTONE } from '~/issues/constants';\nimport { createAlert } from '~/alert';\nimport { __ } from '~/locale';\n\n// See app/views/shared/milestones/_description.html.haml\nexport const MILESTONE_DESCRIPTION_ELEMENT = '.milestone-detail .description';\nexport const MILESTONE_DESCRIPTION_TASK_LIST_CONTAINER_ELEMENT = `${MILESTONE_DESCRIPTION_ELEMENT}.js-task-list-container`;\nexport const MILESTONE_DETAIL_ELEMENT = '.milestone-detail';\n\nexport function initForm() {\n  mountMarkdownEditor();\n  new ZenMode(); // eslint-disable-line no-new\n  initDatePicker();\n}\n\nexport function initShow() {\n  new Milestone(); // eslint-disable-line no-new\n  new Sidebar(); // eslint-disable-line no-new\n  new MountMilestoneSidebar(); // eslint-disable-line no-new\n\n  renderGFM(document.querySelector(MILESTONE_DESCRIPTION_ELEMENT));\n\n  const el = document.querySelector(MILESTONE_DESCRIPTION_TASK_LIST_CONTAINER_ELEMENT);\n\n  if (!el) {\n    return null;\n  }\n\n  return new TaskList({\n    dataType: TYPE_MILESTONE,\n    fieldName: 'description',\n    selector: MILESTONE_DETAIL_ELEMENT,\n    lockVersion: el.dataset.lockVersion,\n    onError: () => {\n      createAlert({\n        message: __(\n          'Someone edited this milestone at the same time you did. Please refresh the page to see changes.',\n        ),\n      });\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","const DISCLOSURE_DROPDOWN_ITEM_NAME = 'GlDisclosureDropdownItem';\nconst DISCLOSURE_DROPDOWN_GROUP_NAME = 'GlDisclosureDropdownGroup';\nconst DISCLOSURE_DROPDOWN_GROUP_BORDER_POSITIONS = {\n  top: 'top',\n  bottom: 'bottom'\n};\n\nexport { DISCLOSURE_DROPDOWN_GROUP_BORDER_POSITIONS, DISCLOSURE_DROPDOWN_GROUP_NAME, DISCLOSURE_DROPDOWN_ITEM_NAME };\n","import clamp from 'lodash/clamp';\nimport uniqueId from 'lodash/uniqueId';\nimport { stopEvent, filterVisible } from '../../../../utils/utils';\nimport { GL_DROPDOWN_SHOWN, GL_DROPDOWN_HIDDEN, GL_DROPDOWN_BEFORE_CLOSE, GL_DROPDOWN_FOCUS_CONTENT, POSITION_ABSOLUTE, POSITION_FIXED, HOME, END, ARROW_UP, ARROW_DOWN, ENTER, SPACE, GL_DROPDOWN_CONTENTS_CLASS } from '../constants';\nimport { buttonCategoryOptions, dropdownVariantOptions, buttonSizeOptions, dropdownPlacements } from '../../../../utils/constants';\nimport GlBaseDropdown, { BASE_DROPDOWN_CLASS } from '../base_dropdown/base_dropdown';\nimport GlDisclosureDropdownItem, { ITEM_CLASS } from './disclosure_dropdown_item';\nimport GlDisclosureDropdownGroup from './disclosure_dropdown_group';\nimport { itemsValidator, hasOnlyListItems, isItem } from './utils';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\n//\nconst DROPDOWN_SELECTOR = `.${BASE_DROPDOWN_CLASS}`;\nconst ITEM_SELECTOR = `.${ITEM_CLASS}`;\nvar script = {\n  name: 'GlDisclosureDropdown',\n  events: {\n    GL_DROPDOWN_SHOWN,\n    GL_DROPDOWN_HIDDEN,\n    GL_DROPDOWN_BEFORE_CLOSE,\n    GL_DROPDOWN_FOCUS_CONTENT\n  },\n  components: {\n    GlBaseDropdown,\n    GlDisclosureDropdownItem,\n    GlDisclosureDropdownGroup\n  },\n  props: {\n    /**\n     * Items to display in the dropdown\n     */\n    items: {\n      type: Array,\n      required: false,\n      default: () => [],\n      validator: itemsValidator\n    },\n    /**\n     * Toggle button text\n     */\n    toggleText: {\n      type: String,\n      required: false,\n      default: ''\n    },\n    /**\n     * Toggle text to be read by screen readers only\n     */\n    textSrOnly: {\n      type: Boolean,\n      required: false,\n      default: false\n    },\n    /**\n     * Styling option - dropdown's toggle category\n     */\n    category: {\n      type: String,\n      required: false,\n      default: buttonCategoryOptions.primary,\n      validator: value => value in buttonCategoryOptions\n    },\n    /**\n     * Styling option - dropdown's toggle variant\n     */\n    variant: {\n      type: String,\n      required: false,\n      default: dropdownVariantOptions.default,\n      validator: value => value in dropdownVariantOptions\n    },\n    /**\n     * The size of the dropdown toggle\n     */\n    size: {\n      type: String,\n      required: false,\n      default: 'medium',\n      validator: value => value in buttonSizeOptions\n    },\n    /**\n     * Icon name that will be rendered in the toggle button\n     */\n    icon: {\n      type: String,\n      required: false,\n      default: ''\n    },\n    /**\n     * Set to \"true\" to disable the dropdown\n     */\n    disabled: {\n      type: Boolean,\n      required: false,\n      default: false\n    },\n    /**\n     * Set to \"true\" when dropdown content (items) is loading\n     * It will render a small loader in the dropdown toggle and make it disabled\n     */\n    loading: {\n      type: Boolean,\n      required: false,\n      default: false\n    },\n    /**\n     * Custom toggle id.\n     * For instance, it can be referenced by tooltip or popover\n     */\n    toggleId: {\n      type: String,\n      required: false,\n      default: () => uniqueId('dropdown-toggle-btn-')\n    },\n    /**\n     * Additional CSS classes to customize toggle appearance\n     */\n    toggleClass: {\n      type: [String, Array, Object],\n      required: false,\n      default: null\n    },\n    /**\n     * Set to \"true\" to hide the caret\n     */\n    noCaret: {\n      type: Boolean,\n      required: false,\n      default: false\n    },\n    /**\n     * Align disclosure dropdown with respect to the toggle button\n     */\n    placement: {\n      type: String,\n      required: false,\n      default: 'bottom-start',\n      validator: value => Object.keys(dropdownPlacements).includes(value)\n    },\n    /**\n     * The `aria-labelledby` attribute value for the toggle button\n     * Provide the string of ids seperated by space\n     */\n    toggleAriaLabelledBy: {\n      type: String,\n      required: false,\n      default: null\n    },\n    /**\n     * The `aria-labelledby` attribute value for the list of options\n     * Provide the string of ids seperated by space\n     */\n    listAriaLabelledBy: {\n      type: String,\n      required: false,\n      default: null\n    },\n    /**\n     * Render the toggle button as a block element\n     */\n    block: {\n      type: Boolean,\n      required: false,\n      default: false\n    },\n    /**\n     * Custom offset to be applied to Floating UI's offset middleware.\n     * https://floating-ui.com/docs/offset\n     */\n    dropdownOffset: {\n      type: [Number, Object],\n      required: false,\n      default: undefined\n    },\n    /**\n     * Lets the dropdown extend to match its content's width, up to a maximum width\n     * defined by the `$gl-new-dropdown-max-width` variable.\n     */\n    fluidWidth: {\n      type: Boolean,\n      required: false,\n      default: false\n    },\n    /**\n     * Close the dropdown on item click (action)\n     */\n    autoClose: {\n      type: Boolean,\n      required: false,\n      default: true\n    },\n    /**\n     * Strategy to be applied by computePosition. If the dropdown's container is too short for it to\n     * fit in, setting this to fixed will let it position itself above its container.\n     * https://floating-ui.com/docs/computePosition#strategy\n     */\n    positioningStrategy: {\n      type: String,\n      required: false,\n      default: POSITION_ABSOLUTE,\n      validator: strategy => [POSITION_ABSOLUTE, POSITION_FIXED].includes(strategy)\n    },\n    /**\n     * Opens dropdown on render\n     */\n    startOpened: {\n      type: Boolean,\n      required: false,\n      default: false\n    }\n  },\n  data() {\n    return {\n      disclosureId: uniqueId('disclosure-'),\n      nextFocusedItemIndex: null\n    };\n  },\n  computed: {\n    disclosureTag() {\n      var _this$items;\n      if ((_this$items = this.items) !== null && _this$items !== void 0 && _this$items.length ||\n      // eslint-disable-next-line @gitlab/vue-prefer-dollar-scopedslots\n      hasOnlyListItems(this.$scopedSlots.default || this.$slots.default)) {\n        return 'ul';\n      }\n      return 'div';\n    },\n    hasCustomToggle() {\n      return Boolean(this.$scopedSlots.toggle);\n    }\n  },\n  mounted() {\n    if (this.startOpened) {\n      this.open();\n    }\n  },\n  methods: {\n    open() {\n      this.$refs.baseDropdown.open();\n    },\n    close() {\n      this.$refs.baseDropdown.close();\n    },\n    onShow() {\n      /**\n       * Emitted when dropdown is shown\n       *\n       * @event shown\n       */\n      this.$emit(GL_DROPDOWN_SHOWN);\n    },\n    onBeforeClose(event) {\n      /**\n       * Emitted when dropdown is about to be closed\n       *\n       * @event beforeClose\n       */\n      this.$emit(GL_DROPDOWN_BEFORE_CLOSE, event);\n    },\n    onHide() {\n      /**\n       * Emitted when dropdown is hidden\n       *\n       * @event hidden\n       */\n      this.$emit(GL_DROPDOWN_HIDDEN);\n      this.nextFocusedItemIndex = null;\n    },\n    onKeydown(event) {\n      const {\n        code\n      } = event;\n      const elements = this.getFocusableListItemElements();\n      if (elements.length < 1) return;\n      let stop = true;\n      if (code === HOME) {\n        this.focusItem(0, elements);\n      } else if (code === END) {\n        this.focusItem(elements.length - 1, elements);\n      } else if (code === ARROW_UP) {\n        this.focusNextItem(event, elements, -1);\n      } else if (code === ARROW_DOWN) {\n        this.focusNextItem(event, elements, 1);\n      } else if (code === ENTER || code === SPACE) {\n        this.handleAutoClose(event);\n      } else {\n        stop = false;\n      }\n      if (stop) {\n        stopEvent(event);\n      }\n    },\n    getFocusableListItemElements() {\n      var _this$$refs$content;\n      const items = (_this$$refs$content = this.$refs.content) === null || _this$$refs$content === void 0 ? void 0 : _this$$refs$content.querySelectorAll(ITEM_SELECTOR);\n      return filterVisible(Array.from(items || []));\n    },\n    focusNextItem(event, elements, offset) {\n      const {\n        target\n      } = event;\n      const currentIndex = elements.indexOf(target);\n      const nextIndex = clamp(currentIndex + offset, 0, elements.length - 1);\n      this.focusItem(nextIndex, elements);\n    },\n    focusItem(index, elements) {\n      var _elements$index;\n      this.nextFocusedItemIndex = index;\n      (_elements$index = elements[index]) === null || _elements$index === void 0 ? void 0 : _elements$index.focus();\n    },\n    closeAndFocus() {\n      this.$refs.baseDropdown.closeAndFocus();\n    },\n    handleAction(action) {\n      // See https://gitlab.com/gitlab-org/gitlab-ui/-/merge_requests/4376 for\n      // detailed explanation why we need requestAnimationFrame\n      window.requestAnimationFrame(() => {\n        /**\n         * Emitted when one of disclosure dropdown items is clicked\n         *\n         * @event action\n         */\n        this.$emit('action', action);\n      });\n    },\n    handleAutoClose(e) {\n      if (this.autoClose && e.target.closest(ITEM_SELECTOR) && e.target.closest(DROPDOWN_SELECTOR) === this.$refs.baseDropdown.$el) {\n        this.closeAndFocus();\n      }\n    },\n    uniqueItemId() {\n      return uniqueId(`disclosure-item-`);\n    },\n    isItem\n  },\n  GL_DROPDOWN_CONTENTS_CLASS\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('gl-base-dropdown',{ref:\"baseDropdown\",staticClass:\"gl-disclosure-dropdown\",attrs:{\"aria-labelledby\":_vm.toggleAriaLabelledBy,\"toggle-id\":_vm.toggleId,\"toggle-text\":_vm.toggleText,\"toggle-class\":_vm.toggleClass,\"text-sr-only\":_vm.textSrOnly,\"category\":_vm.category,\"variant\":_vm.variant,\"size\":_vm.size,\"icon\":_vm.icon,\"disabled\":_vm.disabled,\"loading\":_vm.loading,\"no-caret\":_vm.noCaret,\"placement\":_vm.placement,\"block\":_vm.block,\"offset\":_vm.dropdownOffset,\"fluid-width\":_vm.fluidWidth,\"positioning-strategy\":_vm.positioningStrategy},on:_vm._d({},[_vm.$options.events.GL_DROPDOWN_SHOWN,_vm.onShow,_vm.$options.events.GL_DROPDOWN_HIDDEN,_vm.onHide,_vm.$options.events.GL_DROPDOWN_BEFORE_CLOSE,_vm.onBeforeClose,_vm.$options.events.GL_DROPDOWN_FOCUS_CONTENT,_vm.onKeydown]),scopedSlots:_vm._u([(_vm.hasCustomToggle)?{key:\"toggle\",fn:function(){return [_vm._t(\"toggle\")]},proxy:true}:null],null,true)},[_vm._v(\" \"),_vm._t(\"header\"),_vm._v(\" \"),_c(_vm.disclosureTag,{ref:\"content\",tag:\"component\",class:_vm.$options.GL_DROPDOWN_CONTENTS_CLASS,attrs:{\"id\":_vm.disclosureId,\"aria-labelledby\":_vm.listAriaLabelledBy || _vm.toggleId,\"data-testid\":\"disclosure-content\",\"tabindex\":\"-1\"},on:{\"keydown\":_vm.onKeydown,\"click\":_vm.handleAutoClose}},[_vm._t(\"default\",function(){return [_vm._l((_vm.items),function(item,index){return [(_vm.isItem(item))?[_c('gl-disclosure-dropdown-item',{key:_vm.uniqueItemId(),attrs:{\"item\":item},on:{\"action\":_vm.handleAction},scopedSlots:_vm._u([('list-item' in _vm.$scopedSlots)?{key:\"list-item\",fn:function(){return [_vm._t(\"list-item\",null,{\"item\":item})]},proxy:true}:null],null,true)})]:[_c('gl-disclosure-dropdown-group',{key:item.name,attrs:{\"bordered\":index !== 0,\"group\":item},on:{\"action\":_vm.handleAction},scopedSlots:_vm._u([(_vm.$scopedSlots['group-label'])?{key:\"group-label\",fn:function(){return [_vm._t(\"group-label\",null,{\"group\":item})]},proxy:true}:null],null,true)},[_vm._v(\" \"),(_vm.$scopedSlots['list-item'])?_vm._l((item.items),function(groupItem){return _c('gl-disclosure-dropdown-item',{key:_vm.uniqueItemId(),attrs:{\"item\":groupItem},on:{\"action\":_vm.handleAction},scopedSlots:_vm._u([{key:\"list-item\",fn:function(){return [_vm._t(\"list-item\",null,{\"item\":groupItem})]},proxy:true}],null,true)})}):_vm._e()],2)]]})]})],2),_vm._v(\" \"),_vm._t(\"footer\")],2)};\nvar __vue_staticRenderFns__ = [];\n\n  /* style */\n  const __vue_inject_styles__ = undefined;\n  /* scoped */\n  const __vue_scope_id__ = undefined;\n  /* module identifier */\n  const __vue_module_identifier__ = undefined;\n  /* functional template */\n  const __vue_is_functional_template__ = false;\n  /* style inject */\n  \n  /* style inject SSR */\n  \n  /* style inject shadow dom */\n  \n\n  \n  const __vue_component__ = __vue_normalize__(\n    { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n    __vue_inject_styles__,\n    __vue_script__,\n    __vue_scope_id__,\n    __vue_is_functional_template__,\n    __vue_module_identifier__,\n    false,\n    undefined,\n    undefined,\n    undefined\n  );\n\nexport default __vue_component__;\nexport { DROPDOWN_SELECTOR, ITEM_SELECTOR };\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 { BLink } from '../../../../vendor/bootstrap-vue/src/components/link/link';\nimport { ENTER, SPACE } from '../constants';\nimport { stopEvent } from '../../../../utils/utils';\nimport { isItem } from './utils';\nimport { DISCLOSURE_DROPDOWN_ITEM_NAME } from './constants';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nconst ITEM_CLASS = 'gl-new-dropdown-item';\nvar script = {\n  name: DISCLOSURE_DROPDOWN_ITEM_NAME,\n  ITEM_CLASS,\n  components: {\n    BLink\n  },\n  props: {\n    item: {\n      type: Object,\n      required: false,\n      default: null,\n      validator: isItem\n    }\n  },\n  computed: {\n    isLink() {\n      var _this$item, _this$item2;\n      return typeof ((_this$item = this.item) === null || _this$item === void 0 ? void 0 : _this$item.href) === 'string' || typeof ((_this$item2 = this.item) === null || _this$item2 === void 0 ? void 0 : _this$item2.to) === 'string';\n    },\n    isCustomContent() {\n      return Boolean(this.$scopedSlots.default);\n    },\n    itemComponent() {\n      const {\n        item\n      } = this;\n      if (this.isLink) return {\n        is: BLink,\n        attrs: {\n          href: item.href,\n          to: item.to,\n          ...item.extraAttrs\n        },\n        listeners: {\n          click: this.action\n        }\n      };\n      return {\n        is: 'button',\n        attrs: {\n          ...(item === null || item === void 0 ? void 0 : item.extraAttrs),\n          type: 'button'\n        },\n        listeners: {\n          click: () => {\n            var _item$action;\n            item === null || item === void 0 ? void 0 : (_item$action = item.action) === null || _item$action === void 0 ? void 0 : _item$action.call(undefined, item);\n            this.action();\n          }\n        }\n      };\n    },\n    listIndex() {\n      var _this$item3, _this$item3$extraAttr;\n      return (_this$item3 = this.item) !== null && _this$item3 !== void 0 && (_this$item3$extraAttr = _this$item3.extraAttrs) !== null && _this$item3$extraAttr !== void 0 && _this$item3$extraAttr.disabled ? null : 0;\n    },\n    componentIndex() {\n      var _this$item4, _this$item4$extraAttr;\n      return (_this$item4 = this.item) !== null && _this$item4 !== void 0 && (_this$item4$extraAttr = _this$item4.extraAttrs) !== null && _this$item4$extraAttr !== void 0 && _this$item4$extraAttr.disabled ? null : -1;\n    },\n    wrapperClass() {\n      var _this$item$wrapperCla, _this$item5;\n      return (_this$item$wrapperCla = (_this$item5 = this.item) === null || _this$item5 === void 0 ? void 0 : _this$item5.wrapperClass) !== null && _this$item$wrapperCla !== void 0 ? _this$item$wrapperCla : '';\n    },\n    wrapperListeners() {\n      const listeners = {\n        keydown: this.onKeydown\n      };\n      if (this.isCustomContent) {\n        listeners.click = this.action;\n      }\n      return listeners;\n    }\n  },\n  methods: {\n    onKeydown(event) {\n      const {\n        code\n      } = event;\n      if (code === ENTER || code === SPACE) {\n        if (this.isCustomContent) {\n          this.action();\n        } else {\n          stopEvent(event);\n          /** Instead of simply navigating or calling the action, we want\n           * the `a/button` to be the target of the event as it might have additional attributes.\n           * E.g. `a` might have `target` attribute.\n           */\n          const e = new MouseEvent('click', {\n            bubbles: true,\n            cancelable: true\n          });\n          if (this.isLink) {\n            this.$refs.item.$el.dispatchEvent(e);\n          } else {\n            var _this$$refs$item;\n            (_this$$refs$item = this.$refs.item) === null || _this$$refs$item === void 0 ? void 0 : _this$$refs$item.dispatchEvent(e);\n          }\n        }\n      }\n    },\n    action() {\n      this.$emit('action', this.item);\n    }\n  }\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('li',_vm._g({class:[_vm.$options.ITEM_CLASS, _vm.wrapperClass],attrs:{\"tabindex\":_vm.listIndex,\"data-testid\":\"disclosure-dropdown-item\"}},_vm.wrapperListeners),[_vm._t(\"default\",function(){return [_c(_vm.itemComponent.is,_vm._g(_vm._b({ref:\"item\",tag:\"component\",staticClass:\"gl-new-dropdown-item-content\",attrs:{\"tabindex\":_vm.componentIndex}},'component',_vm.itemComponent.attrs,false),_vm.itemComponent.listeners),[_c('span',{staticClass:\"gl-new-dropdown-item-text-wrapper\"},[_vm._t(\"list-item\",function(){return [_vm._v(\"\\n          \"+_vm._s(_vm.item.text)+\"\\n        \")]})],2)])]})],2)};\nvar __vue_staticRenderFns__ = [];\n\n  /* style */\n  const __vue_inject_styles__ = undefined;\n  /* scoped */\n  const __vue_scope_id__ = undefined;\n  /* module identifier */\n  const __vue_module_identifier__ = undefined;\n  /* functional template */\n  const __vue_is_functional_template__ = false;\n  /* style inject */\n  \n  /* style inject SSR */\n  \n  /* style inject shadow dom */\n  \n\n  \n  const __vue_component__ = __vue_normalize__(\n    { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n    __vue_inject_styles__,\n    __vue_script__,\n    __vue_scope_id__,\n    __vue_is_functional_template__,\n    __vue_module_identifier__,\n    false,\n    undefined,\n    undefined,\n    undefined\n  );\n\nexport default __vue_component__;\nexport { ITEM_CLASS };\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","import uniqueId from 'lodash/uniqueId';\nimport GlDisclosureDropdownItem from './disclosure_dropdown_item';\nimport { isGroup } from './utils';\nimport { DISCLOSURE_DROPDOWN_GROUP_BORDER_POSITIONS, DISCLOSURE_DROPDOWN_GROUP_NAME } from './constants';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nconst BORDER_CLASSES = {\n  [DISCLOSURE_DROPDOWN_GROUP_BORDER_POSITIONS.top]: 'gl-border-t gl-border-t-dropdown gl-pt-2 gl-mt-2',\n  [DISCLOSURE_DROPDOWN_GROUP_BORDER_POSITIONS.bottom]: 'gl-border-b gl-border-b-dropdown gl-pb-2 gl-mb-2'\n};\nvar script = {\n  name: DISCLOSURE_DROPDOWN_GROUP_NAME,\n  components: {\n    GlDisclosureDropdownItem\n  },\n  props: {\n    /**\n     * Group of items\n     */\n    group: {\n      type: Object,\n      required: false,\n      default: null,\n      validator: isGroup\n    },\n    /**\n     * If 'true', will set top border for the group\n     * to separate from other groups. You can control\n     * the border position using the `borderPosition`\n     * property.\n     */\n    bordered: {\n      type: Boolean,\n      required: false,\n      default: false\n    },\n    /**\n     * Controls the position of the group's border. Valid\n     * values are 'top' and 'bottom'.\n     */\n    borderPosition: {\n      type: String,\n      required: false,\n      default: DISCLOSURE_DROPDOWN_GROUP_BORDER_POSITIONS.top,\n      validator: value => Object.keys(DISCLOSURE_DROPDOWN_GROUP_BORDER_POSITIONS).includes(value)\n    }\n  },\n  computed: {\n    borderClass() {\n      return this.bordered ? BORDER_CLASSES[this.borderPosition] : null;\n    },\n    showHeader() {\n      var _this$group;\n      return this.$scopedSlots['group-label'] || ((_this$group = this.group) === null || _this$group === void 0 ? void 0 : _this$group.name);\n    },\n    groupLabeledBy() {\n      return this.showHeader ? this.nameId : null;\n    }\n  },\n  created() {\n    this.nameId = uniqueId('gl-disclosure-dropdown-group-');\n  },\n  methods: {\n    handleAction(action) {\n      this.$emit('action', action);\n    },\n    uniqueItemId() {\n      return uniqueId(`disclosure-item-`);\n    }\n  }\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('li',{class:_vm.borderClass},[(_vm.showHeader)?_c('div',{staticClass:\"gl-py-2 gl-pl-4 gl-text-sm gl-font-bold gl-text-strong\",attrs:{\"id\":_vm.nameId,\"aria-hidden\":\"true\"}},[_vm._t(\"group-label\",function(){return [_vm._v(_vm._s(_vm.group.name))]})],2):_vm._e(),_vm._v(\" \"),_c('ul',{staticClass:\"gl-mb-0 gl-list-none gl-pl-0\",attrs:{\"aria-labelledby\":_vm.groupLabeledBy}},[_vm._t(\"default\",function(){return _vm._l((_vm.group.items),function(item){return _c('gl-disclosure-dropdown-item',{key:_vm.uniqueItemId(),attrs:{\"item\":item},on:{\"action\":_vm.handleAction},scopedSlots:_vm._u([{key:\"list-item\",fn:function(){return [_vm._t(\"list-item\",null,{\"item\":item})]},proxy:true}],null,true)})})})],2)])};\nvar __vue_staticRenderFns__ = [];\n\n  /* style */\n  const __vue_inject_styles__ = undefined;\n  /* scoped */\n  const __vue_scope_id__ = undefined;\n  /* module identifier */\n  const __vue_module_identifier__ = undefined;\n  /* functional template */\n  const __vue_is_functional_template__ = false;\n  /* style inject */\n  \n  /* style inject SSR */\n  \n  /* style inject shadow dom */\n  \n\n  \n  const __vue_component__ = __vue_normalize__(\n    { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n    __vue_inject_styles__,\n    __vue_script__,\n    __vue_scope_id__,\n    __vue_is_functional_template__,\n    __vue_module_identifier__,\n    false,\n    undefined,\n    undefined,\n    undefined\n  );\n\nexport default __vue_component__;\nexport { BORDER_CLASSES };\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","(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":""}