{"version":3,"sources":["webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/token_selector/helpers.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/token_selector/token_container.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/token_selector/token_selector_dropdown.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/token_selector/token_selector.js"],"names":["tokensValidator","tokens","every","token","__vue_script__","name","components","GlToken","GlButton","props","type","Array","validator","required","state","Boolean","default","registerFocusOnToken","Function","viewOnly","showClearAllButton","data","bindFocusEvent","focusedTokenIndex","computed","this","watch","newValue","_this$$refs$tokens","tokenRef","$refs","find","ref","dataset","tokenId","id","toString","focus","focusOnToken","methods","$emit","focusLastToken","focusPrevToken","length","focusFirstToken","focusNextToken","focusedToken","index","tokenIndex","arguments","undefined","render","_vm","_h","$createElement","_c","_self","staticClass","attrs","on","$event","indexOf","_k","keyCode","key","button","handleLeftArrow","apply","handleRightArrow","handleHome","handleEnd","handleDelete","handleEscape","ctrlKey","shiftKey","altKey","metaKey","preventDefault","handleTab","_l","refInFor","handleTokenFocus","class","style","handleClose","_t","_v","_s","stopPropagation","_e","staticRenderFns","GlDropdownItem","show","menuClass","String","Object","loading","dropdownItems","inputText","userDefinedTokenCanBeAdded","componentId","registerDropdownEventHandlers","registerResetFocusedDropdownItem","focusedDropdownItemIndex","dropdownLength","focusedLastDropdownItem","focusedUserDefinedToken","userDefinedToken","oldValue","dropdownItemRef","getDropdownItemRef","$el","scrollIntoView","block","inline","handleUpArrow","handleDownArrow","handleHomeKey","handleEndKey","resetFocusedDropdownItem","focusedDropdownItem","dropdownItem","querySelector","focusPrevDropdownItem","focusNextDropdownItem","event","focusFirstDropdownItem","focusLastDropdownItem","_this$$refs$dropdownI","$attrs","dropdownItemIdAttribute","dropdownItemIsFocused","handleDropdownItemClick","handleMousedown","GlTokenContainer","GlTokenSelectorDropdown","model","prop","allowUserDefinedTokens","showAddNewAlways","hideDropdownWithNoItems","containerClass","autocomplete","ariaLabelledby","placeholder","textInputAttrs","selectedTokens","allowClearAll","inputFocused","dropdownIsOpen","triggerTokenFocusNextBackspace","rootElClasses","dropdownEventHandlers","filter","findIndex","filteredDropdownItems","dropdownHasNoItems","hasSelectedTokens","$nextTick","hideDropdown","closeDropdown","openDropdown","_event$relatedTarget","_event$relatedTarget$","relatedTarget","closest","call","addToken","textInput","blur","target","focusTextInput","selectedToken","stateClass","handleContainerClick","removeToken","cancelTokenFocus","clearAll","scopedSlots","_u","fn","_b","domProps","value","handleFocus","handleBlur","handleEnter","handleBackspace","handleInputClick","proxy","$options","callback","$$v","expression"],"mappings":"wIAEA,MAAMA,EAAkBC,GAAUA,EAAOC,MAAMC,GAAS,IAAIA,EAAO,O,iDC+HnE,MAAMC,EA5HO,CACXC,KAAM,mBACNC,WAAY,CACVC,QAAA,IACAC,SAAA,KAEFC,MAAO,CACLR,OAAQ,CACNS,KAAMC,MAENC,UAAWZ,EACXa,UAAU,GAEZC,MAAO,CACLJ,KAAMK,QACNF,UAAU,EACVG,QAAS,MAEXC,qBAAsB,CACpBP,KAAMQ,SACNL,UAAU,GAEZM,SAAU,CACRT,KAAMK,QACNF,UAAU,EACVG,SAAS,GAEXI,mBAAoB,CAClBV,KAAMK,QACNF,UAAU,EACVG,SAAS,IAGbK,KAAI,KACK,CACLC,gBAAgB,EAChBC,kBAAmB,OAGvBC,SAAU,CACR,eACE,OAAOC,KAAKxB,OAAOwB,KAAKF,oBAAsB,OAGlDG,MAAO,CACL,aAAaC,GACX,IAAIC,EACJ,GAAiB,OAAbD,EACF,OAEF,MAAME,EAAwD,QAA5CD,EAAqBH,KAAKK,MAAM7B,cAA2C,IAAvB2B,OAAgC,EAASA,EAAmBG,KAAKC,GAAOA,EAAIC,QAAQC,UAAYP,EAASQ,GAAGC,YAC9KP,IAEFJ,KAAKH,gBAAiB,EACtBO,EAASQ,QACTZ,KAAKH,gBAAiB,KAI5B,UACEG,KAAKR,qBAAqBQ,KAAKa,eAEjCC,QAAS,CACP,YAAYpC,GACVsB,KAAKe,MAAM,eAAgBrC,GAC3BsB,KAAKF,kBAAoB,MAE3B,kBACiC,IAA3BE,KAAKF,kBACPE,KAAKgB,iBAELhB,KAAKiB,kBAGT,mBACMjB,KAAKF,oBAAsBE,KAAKxB,OAAO0C,OAAS,EAClDlB,KAAKmB,kBAELnB,KAAKoB,kBAGT,aACEpB,KAAKmB,mBAEP,YACEnB,KAAKgB,kBAEP,eACEhB,KAAKe,MAAM,eAAgBf,KAAKqB,cAC5BrB,KAAKF,kBAAoB,GAC3BE,KAAKiB,kBAGT,eACEjB,KAAKF,kBAAoB,KACzBE,KAAKe,MAAM,iBAEb,YACEf,KAAKe,MAAM,iBAGb,iBAAiBO,GACftB,KAAKF,kBAAoBwB,GAE3B,iBACEtB,KAAKF,kBAAoBE,KAAKxB,OAAO0C,OAAS,GAEhD,kBACElB,KAAKF,kBAAoB,GAE3B,iBACEE,KAAKF,mBAAqB,GAE5B,iBACEE,KAAKF,mBAAqB,GAE5B,eACE,IAAIyB,EAAaC,UAAUN,OAAS,QAAsBO,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,KACrFxB,KAAKF,kBAAoByB,KAyChB,MAba,IACxB,CAAEG,OApBe,WAAa,IAAIC,EAAI3B,KAAS4B,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,YAAY,mDAAmD,CAACF,EAAG,MAAM,CAACvB,IAAI,iBAAiByB,YAAY,mEAAmEC,MAAM,CAAC,KAAO,UAAU,uBAAuB,QAAQ,mBAAmB,aAAa,gBAA6B,IAAdN,EAAItC,OAAmB,QAAQ6C,GAAG,CAAC,QAAU,CAAC,SAASC,GAAQ,OAAIA,EAAOlD,KAAKmD,QAAQ,QAAQT,EAAIU,GAAGF,EAAOG,QAAQ,OAAO,GAAGH,EAAOI,IAAI,CAAC,OAAO,eAAiC,WAAYJ,GAA4B,IAAlBA,EAAOK,OAAvC,KAA2Eb,EAAIc,gBAAgBC,MAAM,KAAMlB,YAAY,SAASW,GAAQ,OAAIA,EAAOlD,KAAKmD,QAAQ,QAAQT,EAAIU,GAAGF,EAAOG,QAAQ,QAAQ,GAAGH,EAAOI,IAAI,CAAC,QAAQ,gBAAkC,WAAYJ,GAA4B,IAAlBA,EAAOK,OAAvC,KAA2Eb,EAAIgB,iBAAiBD,MAAM,KAAMlB,YAAY,SAASW,GAAQ,OAAIA,EAAOlD,KAAKmD,QAAQ,QAAQT,EAAIU,GAAGF,EAAOG,QAAQ,YAAOb,EAAUU,EAAOI,SAAId,GAAoB,KAAcE,EAAIiB,WAAWF,MAAM,KAAMlB,YAAY,SAASW,GAAQ,OAAIA,EAAOlD,KAAKmD,QAAQ,QAAQT,EAAIU,GAAGF,EAAOG,QAAQ,WAAMb,EAAUU,EAAOI,SAAId,GAAoB,KAAcE,EAAIkB,UAAUH,MAAM,KAAMlB,YAAY,SAASW,GAAQ,OAAIA,EAAOlD,KAAKmD,QAAQ,QAAQT,EAAIU,GAAGF,EAAOG,QAAQ,SAAS,CAAC,EAAE,IAAIH,EAAOI,IAAI,CAAC,YAAY,SAAS,QAAiB,KAAcZ,EAAImB,aAAaJ,MAAM,KAAMlB,YAAY,SAASW,GAAQ,OAAIA,EAAOlD,KAAKmD,QAAQ,QAAQT,EAAIU,GAAGF,EAAOG,QAAQ,MAAM,GAAGH,EAAOI,IAAI,CAAC,MAAM,WAAoB,KAAcZ,EAAIoB,aAAaL,MAAM,KAAMlB,YAAY,SAASW,GAAQ,OAAIA,EAAOlD,KAAKmD,QAAQ,QAAQT,EAAIU,GAAGF,EAAOG,QAAQ,MAAM,EAAEH,EAAOI,IAAI,QAA0BJ,EAAOa,SAASb,EAAOc,UAAUd,EAAOe,QAAQf,EAAOgB,QAAjE,MAAyFhB,EAAOiB,iBAAwBzB,EAAI0B,UAAUX,MAAM,KAAMlB,gBAAe,CAACG,EAAI2B,GAAI3B,EAAU,QAAE,SAASjD,EAAM4C,GAAO,OAAOQ,EAAG,MAAM,CAACS,IAAI7D,EAAMgC,GAAGH,IAAI,SAASgD,UAAS,EAAKvB,YAAY,oEAAoEC,MAAM,CAAC,gBAAgBvD,EAAMgC,GAAG,KAAO,SAAS,SAAW,MAAMwB,GAAG,CAAC,MAAQ,SAASC,GAAQR,EAAI9B,gBAAiB8B,EAAI6B,iBAAiBlC,MAAkB,CAACQ,EAAG,WAAW,CAACE,YAAY,oBAAoByB,MAAM/E,EAAM+E,MAAMC,MAAOhF,EAAW,MAAEuD,MAAM,CAAC,YAAYN,EAAIjC,UAAUwC,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOR,EAAIgC,YAAYjF,MAAU,CAACiD,EAAIiC,GAAG,iBAAgB,WAAW,MAAO,CAAC9B,EAAG,OAAO,CAACH,EAAIkC,GAAG,iBAAiBlC,EAAImC,GAAGpF,EAAME,MAAM,qBAAoB,CAAC,MAAQF,KAAS,IAAI,MAAKiD,EAAIkC,GAAG,KAAKlC,EAAIiC,GAAG,eAAe,GAAGjC,EAAIkC,GAAG,KAAMlC,EAAsB,mBAAEG,EAAG,MAAM,CAACE,YAAY,kBAAkB,CAACF,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,QAAQ,aAAa,YAAY,KAAO,QAAQ,SAAW,WAAW,cAAc,oBAAoBC,GAAG,CAAC,MAAQ,SAASC,GAAiC,OAAzBA,EAAO4B,kBAAyBpC,EAAIZ,MAAM,kBAAkB,GAAGY,EAAIqC,QAoBxzFC,gBAnBA,SAGExC,EAkB5B9C,OAhBuB8C,GAIc,OAFLA,GAkBhC,OACAA,OACAA,OACAA,GC0BJ,MAAM,EAtLO,CACX7C,KAAM,0BACNC,WAAY,CACVqF,e,UAAA,GAEFlF,MAAO,CACLmF,KAAM,CACJlF,KAAMK,QACNF,UAAU,GAEZgF,UAAW,CACTnF,KAAM,CAACoF,OAAQnF,MAAOoF,QACtBlF,UAAU,EACVG,QAAS,IAEXgF,QAAS,CACPtF,KAAMK,QACNF,UAAU,EACVG,SAAS,GAEXiF,cAAe,CACbvF,KAAMC,MAENC,UAAWZ,EACXa,UAAU,GAEZqF,UAAW,CACTxF,KAAMoF,OACNjF,UAAU,GAEZsF,2BAA4B,CAC1BzF,KAAMK,QACNF,UAAU,GAEZuF,YAAa,CACX1F,KAAMoF,OACNjF,UAAU,GAEZwF,8BAA+B,CAC7B3F,KAAMQ,SACNL,UAAU,GAEZyF,iCAAkC,CAChC5F,KAAMQ,SACNL,UAAU,IAGdQ,KAAI,KACK,CACLkF,yBAA0B,IAG9B/E,SAAU,CACR,mBACE,MAAO,CACLW,GAAI,IAAS,sBACb9B,KAAMoB,KAAKyE,YAGf,iBAEE,OAAOzE,KAAK0E,2BAA6B1E,KAAKwE,cAActD,OAASlB,KAAKwE,cAActD,OAAS,GAEnG,0BACE,OAAOlB,KAAK8E,2BAA6B9E,KAAK+E,gBAEhD,0BAEE,OAAO/E,KAAK0E,4BAA8B1E,KAAKgF,yBAEjD,sBACE,OAAIhF,KAAKiF,wBACAjF,KAAKkF,iBAEPlF,KAAKwE,cAAcxE,KAAK8E,4BAGnC7E,MAAO,CACL,oBAAoBC,EAAUiF,GAC5B,IAAKjF,aAA2C,EAASA,EAASQ,OAASyE,aAA2C,EAASA,EAASzE,IAAK,CAE3I,GADAV,KAAKe,MAAM,QAASb,IACfA,EACH,OAEF,MAAMkF,EAAkBpF,KAAKqF,mBAAmBnF,GAC5CkF,SAA0DA,EAAgBE,KAC5EF,EAAgBE,IAAIC,eAAe,CACjCC,MAAO,UACPC,OAAQ,WAMlB,UACEzF,KAAK4E,8BAA8B,CACjCc,cAAe1F,KAAK0F,cACpBC,gBAAiB3F,KAAK2F,gBACtBC,cAAe5F,KAAK4F,cACpBC,aAAc7F,KAAK6F,eAErB7F,KAAK6E,iCAAiC7E,KAAK8F,0BAC3C9F,KAAKe,MAAM,QAASf,KAAK+F,sBAE3BjF,QAAS,CACP,wBAAwBkF,GACtBhG,KAAKe,MAAM,sBAAuBiF,IAEpC,gBAAgBA,GAGd,MAAMZ,EAAkBpF,KAAKqF,mBAAmBW,GAC5CZ,SAA0DA,EAAgBE,KAC5EF,EAAgBE,IAAIW,cAAc,UAAUrF,SAGhD,gBACOZ,KAAKmE,MAK4B,IAAlCnE,KAAK8E,0BAGT9E,KAAKkG,yBAEP,kBACOlG,KAAKmE,KAMNnE,KAAKgF,yBAGThF,KAAKmG,wBARHnG,KAAKe,MAAM,SAUf,cAAcqF,GACZA,EAAMhD,iBACNpD,KAAKqG,0BAEP,aAAaD,GACXA,EAAMhD,iBACNpD,KAAKsG,yBAEP,wBACEtG,KAAK8E,yBAA2B9E,KAAK+E,gBAEvC,yBACE/E,KAAK8E,yBAA2B,GAElC,wBACE9E,KAAK8E,0BAA4B,GAEnC,wBACE9E,KAAK8E,0BAA4B,GAEnC,2BACE9E,KAAK8E,yBAA2B,GAElC,sBAAsBkB,GACpB,QAAKhG,KAAK+F,qBAGHC,EAAatF,KAAOV,KAAK+F,oBAAoBrF,IAEtD,mBAAmBsF,GACjB,IAAIO,EACJ,OAAIvG,KAAKiF,wBACAjF,KAAKK,MAAML,KAAKkF,iBAAiBxE,IAEoB,QAAtD6F,EAAwBvG,KAAKK,MAAMmE,qBAAqD,IAA1B+B,OAAmC,EAASA,EAAsBjG,KAAKC,GAAOA,EAAIiG,OAAO,2BAA6BR,EAAatF,KAE3M,wBAAwBsF,GACtB,OAAOA,EAAe,GAAGhG,KAAK2E,6BAA6BqB,EAAatF,KAAO,QAyCtE,MAba,IACxB,CAAEgB,OApBe,WAAa,IAAIC,EAAI3B,KAAS4B,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,YAAY,8CAA8CyB,MAAM,CAAEU,KAAMxC,EAAIwC,OAAQ,CAACrC,EAAG,KAAK,CAACvB,IAAI,eAAeyB,YAAY,4BAA4ByB,MAAM,CAAC,CAAEU,KAAMxC,EAAIwC,MAAQxC,EAAIyC,WAAWnC,MAAM,CAAC,KAAO,OAAO,wBAAwBN,EAAI8E,wBAAwB9E,EAAIoE,uBAAuB,CAAEpE,EAAW,QAAEG,EAAG,mBAAmB,CAACG,MAAM,CAAC,SAAW,KAAK,CAACN,EAAIiC,GAAG,mBAAkB,WAAW,MAAO,CAACjC,EAAIkC,GAAG,qBAAoB,GAAGlC,EAAIqC,KAAKrC,EAAIkC,GAAG,KAAKlC,EAAI2B,GAAI3B,EAAiB,eAAE,SAASqE,GAAc,OAAOlE,EAAG,mBAAmB,CAACS,IAAIyD,EAAatF,GAAGH,IAAI,gBAAgBgD,UAAS,EAAKtB,MAAM,CAAC,GAAKN,EAAI8E,wBAAwBT,GAAc,wBAAwBA,EAAatF,GAAG,OAASiB,EAAI+E,sBAAsBV,GAAc,eAAe,aAAa,SAAW,MAAM9D,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOR,EAAIgF,wBAAwBX,MAAiB,CAAClE,EAAG,MAAM,CAACE,YAAY,oCAAoCE,GAAG,CAAC,UAAY,SAASC,GAAQ,OAAOR,EAAIiF,gBAAgBZ,MAAiB,CAACrE,EAAIiC,GAAG,yBAAwB,WAAW,MAAO,CAACjC,EAAIkC,GAAG,eAAelC,EAAImC,GAAGkC,EAAapH,MAAM,iBAAgB,CAAC,aAAeoH,KAAgB,QAAOrE,EAAIkC,GAAG,KAAMlC,EAA8B,2BAAEG,EAAG,mBAAmB,CAACvB,IAAIoB,EAAIuD,iBAAiBxE,GAAGuB,MAAM,CAAC,GAAKN,EAAI8E,wBAAwB9E,EAAIuD,kBAAkB,wBAAwBvD,EAAIuD,iBAAiBxE,GAAG,OAASiB,EAAI+E,sBAAsB/E,EAAIuD,kBAAkB,eAAe,aAAa,SAAW,MAAMhD,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOR,EAAIgF,wBAAwBhF,EAAIuD,qBAAqB,CAACpD,EAAG,MAAM,CAACE,YAAY,oCAAoCE,GAAG,CAAC,UAAY,SAASC,GAAQ,OAAOR,EAAIiF,gBAAgBjF,EAAIuD,qBAAqB,CAACvD,EAAIiC,GAAG,8BAA6B,WAAW,MAAO,CAACjC,EAAIkC,GAAG,oBAAqBlC,EAAImC,GAAGnC,EAAI8C,WAAW,kBAAkB,CAAC,UAAY9C,EAAI8C,aAAa,KAAO9C,EAAI6C,cAActD,OAAwIS,EAAIqC,KAApIlC,EAAG,mBAAmB,CAACG,MAAM,CAAC,SAAW,KAAK,CAACN,EAAIiC,GAAG,sBAAqB,WAAW,MAAO,CAACjC,EAAIkC,GAAG,yBAAwB,GAAYlC,EAAIkC,GAAG,KAAKlC,EAAIiC,GAAG,oBAAoB,MAoBrlEK,gBAnBA,SAGExC,EAkB5B,OAhBuBA,GAIc,OAFLA,GAkBhC,OACAA,OACAA,OACAA,GCuJJ,MAAM,EA5WO,CACX7C,KAAM,kBACN+F,YAAa,IAAS,kBACtB9F,WAAY,CACVgI,iBAAA,EACAC,wBAAA,GAEFC,MAAO,CACLC,KAAM,iBACNZ,MAAO,SAETpH,MAAO,CAILwF,cAAe,CACbvF,KAAMC,MAENC,UAAWZ,EACXa,UAAU,EACVG,QAAS,IAAM,IAKjB0H,uBAAwB,CACtBhI,KAAMK,QACNF,UAAU,EACVG,SAAS,GAKX2H,iBAAkB,CAChBjI,KAAMK,QACNF,UAAU,EACVG,SAAS,GAKXgF,QAAS,CACPtF,KAAMK,QACNF,UAAU,EACVG,SAAS,GAKX4H,wBAAyB,CACvBlI,KAAMK,QACNF,UAAU,EACVG,SAAS,GAKX6H,eAAgB,CACdnI,KAAMoF,OACNjF,UAAU,EACVG,QAAS,IAKX6E,UAAW,CACTnF,KAAM,CAACoF,OAAQnF,MAAOoF,QACtBlF,UAAU,EACVG,QAAS,IAKX8H,aAAc,CACZpI,KAAMoF,OACNjF,UAAU,EACVG,QAAS,OAKX+H,eAAgB,CACdrI,KAAMoF,OACNjF,UAAU,EACVG,QAAS,MAKXgI,YAAa,CACXtI,KAAMoF,OACNjF,UAAU,EACVG,QAAS,MAKXiI,eAAgB,CACdvI,KAAMqF,OACNlF,UAAU,EACVG,QAAS,MAKXF,MAAO,CACLJ,KAAMK,QACNF,UAAU,EACVG,QAAS,MAKXkI,eAAgB,CACdxI,KAAMC,MAENC,UAAWZ,EACXa,UAAU,GAKZM,SAAU,CACRT,KAAMK,QACNF,UAAU,EACVG,SAAS,GAKXmI,cAAe,CACbzI,KAAMK,QACNF,UAAU,EACVG,SAAS,IAGbK,KAAI,KACK,CACL6E,UAAW,GACXkD,cAAc,EACdC,gBAAgB,EAChB7B,oBAAqB,KACrB8B,gCAAgC,EAChCC,cAAe,GACfC,sBAAuB,CACrBrC,cAAe,OACfC,gBAAiB,OACjBC,cAAe,OACfC,aAAc,QAEhBC,yBAA0B,OAC1BjF,aAAc,SAGlBd,SAAU,CACR,wBACE,OAAOC,KAAKwE,cAAcwD,OAAOhC,IAA0F,IAA1EhG,KAAKyH,eAAeQ,UAAUvJ,GAASA,EAAMgC,KAAOsF,EAAatF,MAEpH,qBACE,OAAQV,KAAKkI,sBAAsBhH,QAErC,6BACE,SAAKlB,KAAKiH,yBAA2BjH,KAAKyE,aAGnCzE,KAAKkH,kBAAoBlH,KAAKmI,qBAEvC,eACE,OAAInI,KAAK0E,+BAGL1E,KAAKmH,0BAA2BnH,KAAKmI,qBAK3C,aACE,OAAQnI,KAAKX,OACX,KAAK,EACH,MAAO,WACT,KAAK,EACH,MAAO,aACT,QACE,MAAO,KAGb,oBACE,OAAOW,KAAKyH,eAAevG,OAAS,GAEtC,uBACE,OAAQlB,KAAKoI,oBAAsBpI,KAAK2H,cAE1C,qBACE,OAAO3H,KAAKoI,mBAAqBpI,KAAK0H,gBAG1CzH,MAAO,CACL,UAAUC,EAAUiF,GACdjF,IAAaiF,IAMfnF,KAAKe,MAAM,aAAcb,GACzBF,KAAK8F,2BAEH9F,KAAK6H,+BADU,KAAb3H,EASJF,KAAKqI,UAAU,KACTrI,KAAKsI,aACPtI,KAAKuI,gBACiB,KAAbrI,GACTF,KAAKwI,oBAMf1H,QAAS,CACP,YAAYsF,GAMVpG,KAAKe,MAAM,QAASqF,GACpBpG,KAAKwI,eACLxI,KAAK2H,cAAe,EACpB3H,KAAKa,eACkB,KAAnBb,KAAKyE,YACPzE,KAAK6H,gCAAiC,IAG1C,WAAWzB,GAMTpG,KAAKe,MAAM,OAAQqF,GACnBpG,KAAK2H,cAAe,EAMpB3H,KAAKqI,UAAU,KACb,IAAII,EAAsBC,EAC6B,QAAhDD,EAAuBrC,EAAMuC,qBAAoD,IAAzBF,GAA8F,QAA1DC,EAAwBD,EAAqBG,eAA+C,IAA1BF,GAAoCA,EAAsBG,KAAKJ,EAAsB,mBACxPzI,KAAKuI,mBAIX,cACMvI,KAAK+F,qBAAuB/F,KAAK4H,gBACnC5H,KAAK8I,SAAS9I,KAAK+F,sBAGvB,eACE/F,KAAKyE,UAAY,GACjBzE,KAAKuI,iBAEP,gBAAgBnC,GACS,KAAnBpG,KAAKyE,WAAqBzE,KAAKyH,eAAevG,SAKlDkF,EAAMhD,iBACFpD,KAAK6H,gCACP7H,KAAKK,MAAM0I,UAAUC,OACrBhJ,KAAKa,aAAab,KAAKyH,eAAevG,OAAS,IAE/ClB,KAAK6H,gCAAiC,IAG1C,mBAEM7H,KAAK2H,cAAmC,KAAnB3H,KAAKyE,YAAqBzE,KAAK4H,gBACtD5H,KAAKwI,gBAGT,qBAAqBpC,GAEnB,MAAM,OACJ6C,GACE7C,EACkF,QAAjF6C,aAAuC,EAASA,EAAOL,QAAQ,eAA0B5I,KAAK2H,cAGnG3H,KAAKkJ,kBAEP,SAASlD,GAMPhG,KAAKe,MAAM,QAAS,IAAIf,KAAKyH,eAAgBzB,IAC7ChG,KAAKyE,UAAY,GACjBzE,KAAKuI,gBAOLvI,KAAKe,MAAM,YAAaiF,IAE1B,YAAYtH,GAMVsB,KAAKe,MAAM,QAASf,KAAKyH,eAAeO,OAAOmB,GAAiBA,EAAczI,KAAOhC,EAAMgC,KAM3FV,KAAKe,MAAM,eAAgBrC,IAE7B,mBACEsB,KAAKkJ,kBAEP,gBACElJ,KAAK4H,gBAAiB,EACtB5H,KAAK8F,4BAEP,eACM9F,KAAKsI,eAGTtI,KAAK4H,gBAAiB,IAExB,iBACE5H,KAAKK,MAAM0I,UAAUnI,SAGvB,8BAA8BmH,GAC5B/H,KAAK+H,sBAAwBA,GAE/B,iCAAiCjC,GAC/B9F,KAAK8F,yBAA2BA,GAElC,qBAAqBjF,GACnBb,KAAKa,aAAeA,GAEtB,WACEb,KAAKe,MAAM,QAAS,IACpBf,KAAKkJ,oBAuBT,MAeM,EAAoB,IACxB,CAAExH,OA9Be,WAAa,IAAIC,EAAI3B,KAAS4B,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,MAAM,CAACvB,IAAI,YAAYyB,YAAY,oIAAoIyB,MAAM,CAC5R,CACE,+BAAgC9B,EAAIgG,aACpC,8BAA+BhG,EAAIjC,UAErCiC,EAAIyF,eACJzF,EAAIyH,YAAalH,GAAG,CAAC,MAAQP,EAAI0H,uBAAuB,CAAE1H,EAAwB,qBAAEA,EAAIiC,GAAG,qBAAqBjC,EAAIqC,KAAKrC,EAAIkC,GAAG,KAAK/B,EAAG,qBAAqB,CAACG,MAAM,CAAC,OAASN,EAAI8F,eAAe,MAAQ9F,EAAItC,MAAM,0BAA0BsC,EAAInC,qBAAqB,YAAYmC,EAAIjC,SAAS,wBAAwBiC,EAAIhC,oBAAoBuC,GAAG,CAAC,eAAeP,EAAI2H,YAAY,eAAe3H,EAAI4H,iBAAiB,YAAY5H,EAAI6H,UAAUC,YAAY9H,EAAI+H,GAAG,CAAC,CAACnH,IAAI,gBAAgBoH,GAAG,SAASpJ,GACve,IAAI7B,EAAQ6B,EAAI7B,MACpB,MAAO,CAACiD,EAAIiC,GAAG,gBAAgB,KAAK,CAAC,MAAQlF,OAAW,CAAC6D,IAAI,aAAaoH,GAAG,WAAW,MAAO,CAAC7H,EAAG,QAAQH,EAAIiI,GAAG,CAACrJ,IAAI,YAAYyB,YAAY,8KAA8KC,MAAM,CAAC,KAAO,OAAO,aAAeN,EAAI0F,aAAa,kBAAkB1F,EAAI2F,eAAe,YAAc3F,EAAI4F,YAAY,SAAW5F,EAAIjC,UAAUmK,SAAS,CAAC,MAAQlI,EAAI8C,WAAWvC,GAAG,CAAC,MAAQ,SAASC,GAAQR,EAAI8C,UAAYtC,EAAO8G,OAAOa,OAAQ,MAAQnI,EAAIoI,YAAY,KAAOpI,EAAIqI,WAAW,QAAU,CAAC,SAAS7H,GAAQ,OAAIA,EAAOlD,KAAKmD,QAAQ,QAAQT,EAAIU,GAAGF,EAAOG,QAAQ,QAAQ,GAAGH,EAAOI,IAAI,SAAkB,KAAcZ,EAAIsI,YAAYvH,MAAM,KAAMlB,YAAY,SAASW,GAAQ,OAAIA,EAAOlD,KAAKmD,QAAQ,QAAQT,EAAIU,GAAGF,EAAOG,QAAQ,MAAM,GAAGH,EAAOI,IAAI,CAAC,MAAM,WAAoB,KAAcZ,EAAIoB,aAAaL,MAAM,KAAMlB,YAAY,SAASW,GAAQ,OAAIA,EAAOlD,KAAKmD,QAAQ,QAAQT,EAAIU,GAAGF,EAAOG,QAAQ,SAAS,CAAC,EAAE,IAAIH,EAAOI,IAAI,CAAC,YAAY,SAAS,QAAiB,KAAcZ,EAAIuI,gBAAgBxH,MAAM,KAAMlB,YAAY,SAASW,GAAQ,OAAIA,EAAOlD,KAAKmD,QAAQ,QAAQT,EAAIU,GAAGF,EAAOG,QAAQ,KAAK,GAAGH,EAAOI,IAAI,CAAC,KAAK,YAAqB,MAAOJ,EAAOiB,iBAAwBzB,EAAIoG,sBAAsBrC,cAAchD,MAAM,KAAMlB,aAAY,SAASW,GAAQ,OAAIA,EAAOlD,KAAKmD,QAAQ,QAAQT,EAAIU,GAAGF,EAAOG,QAAQ,OAAO,GAAGH,EAAOI,IAAI,CAAC,OAAO,cAAuB,MAAOJ,EAAOiB,iBAAwBzB,EAAIoG,sBAAsBpC,gBAAgBjD,MAAM,KAAMlB,aAAY,SAASW,GAAQ,OAAIA,EAAOlD,KAAKmD,QAAQ,QAAQT,EAAIU,GAAGF,EAAOG,QAAQ,YAAOb,EAAUU,EAAOI,SAAId,GAAoB,KAAcE,EAAIoG,sBAAsBnC,cAAclD,MAAM,KAAMlB,YAAY,SAASW,GAAQ,OAAIA,EAAOlD,KAAKmD,QAAQ,QAAQT,EAAIU,GAAGF,EAAOG,QAAQ,WAAMb,EAAUU,EAAOI,SAAId,GAAoB,KAAcE,EAAIoG,sBAAsBlC,aAAanD,MAAM,KAAMlB,YAAY,SAASW,GAAiC,OAAzBA,EAAO4B,kBAAyBpC,EAAIZ,MAAM,UAAWoB,KAAU,MAAQR,EAAIwI,mBAAmB,QAAQxI,EAAI6F,gBAAe,MAAU4C,OAAM,IAAO,MAAK,MAAS,GAAGzI,EAAIkC,GAAG,KAAK/B,EAAG,6BAA6B,CAACG,MAAM,CAAC,aAAaN,EAAIyC,UAAU,KAAOzC,EAAIiG,eAAe,QAAUjG,EAAI4C,QAAQ,iBAAiB5C,EAAIuG,sBAAsB,kBAAkBvG,EAAI8F,eAAe,aAAa9F,EAAI8C,UAAU,kCAAkC9C,EAAI+C,2BAA2B,eAAe/C,EAAI0I,SAAS1F,YAAY,mCAAmChD,EAAIiD,8BAA8B,uCAAuCjD,EAAIkD,kCAAkC3C,GAAG,CAAC,sBAAsBP,EAAImH,SAAS,KAAOnH,EAAI6G,cAAciB,YAAY9H,EAAI+H,GAAG,CAAC,CAACnH,IAAI,kBAAkBoH,GAAG,WAAW,MAAO,CAAChI,EAAIiC,GAAG,qBAAqBwG,OAAM,GAAM,CAAC7H,IAAI,6BAA6BoH,GAAG,WAAW,MAAO,CAAChI,EAAIiC,GAAG,6BAA6B,KAAK,CAAC,UAAYjC,EAAI8C,cAAc2F,OAAM,GAAM,CAAC7H,IAAI,qBAAqBoH,GAAG,WAAW,MAAO,CAAChI,EAAIiC,GAAG,wBAAwBwG,OAAM,GAAM,CAAC7H,IAAI,wBAAwBoH,GAAG,SAASpJ,GAClhG,IAAIyF,EAAezF,EAAIyF,aAC3B,MAAO,CAACrE,EAAIiC,GAAG,wBAAwB,KAAK,CAAC,aAAeoC,OAAkB,CAACzD,IAAI,kBAAkBoH,GAAG,WAAW,MAAO,CAAChI,EAAIiC,GAAG,qBAAqBwG,OAAM,IAAO,MAAK,GAAMrD,MAAM,CAAC+C,MAAOnI,EAAuB,oBAAE2I,SAAS,SAAUC,GAAM5I,EAAIoE,oBAAoBwE,GAAMC,WAAW,0BAA0B,IAoBpRvG,gBAnBA,SAGExC,EAkB5B,OAhBuBA,GAIc,OAFLA,GAkBhC,OACAA,OACAA,OACAA,GAGW","file":"commons-pages.admin.application_settings.reporting-pages.groups.edit-pages.groups.settings.reporting-ec33d7d3.44d858f2.chunk.js","sourcesContent":["import has from 'lodash/has';\n\nconst tokensValidator = tokens => tokens.every(token => has(token, 'id'));\n\nexport { tokensValidator };\n","import GlToken from '../token/token';\nimport GlButton from '../button/button';\nimport { tokensValidator } from './helpers';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nvar script = {\n  name: 'GlTokenContainer',\n  components: {\n    GlToken,\n    GlButton\n  },\n  props: {\n    tokens: {\n      type: Array,\n      // All tokens need to have an `id` key\n      validator: tokensValidator,\n      required: true\n    },\n    state: {\n      type: Boolean,\n      required: false,\n      default: null\n    },\n    registerFocusOnToken: {\n      type: Function,\n      required: true\n    },\n    viewOnly: {\n      type: Boolean,\n      required: false,\n      default: false\n    },\n    showClearAllButton: {\n      type: Boolean,\n      required: false,\n      default: false\n    }\n  },\n  data() {\n    return {\n      bindFocusEvent: true,\n      focusedTokenIndex: null\n    };\n  },\n  computed: {\n    focusedToken() {\n      return this.tokens[this.focusedTokenIndex] || null;\n    }\n  },\n  watch: {\n    focusedToken(newValue) {\n      var _this$$refs$tokens;\n      if (newValue === null) {\n        return;\n      }\n      const tokenRef = (_this$$refs$tokens = this.$refs.tokens) === null || _this$$refs$tokens === void 0 ? void 0 : _this$$refs$tokens.find(ref => ref.dataset.tokenId === newValue.id.toString());\n      if (tokenRef) {\n        // Prevent `handleTokenFocus` from being called when we manually focus on a token\n        this.bindFocusEvent = false;\n        tokenRef.focus();\n        this.bindFocusEvent = true;\n      }\n    }\n  },\n  created() {\n    this.registerFocusOnToken(this.focusOnToken);\n  },\n  methods: {\n    handleClose(token) {\n      this.$emit('token-remove', token);\n      this.focusedTokenIndex = null;\n    },\n    handleLeftArrow() {\n      if (this.focusedTokenIndex === 0) {\n        this.focusLastToken();\n      } else {\n        this.focusPrevToken();\n      }\n    },\n    handleRightArrow() {\n      if (this.focusedTokenIndex === this.tokens.length - 1) {\n        this.focusFirstToken();\n      } else {\n        this.focusNextToken();\n      }\n    },\n    handleHome() {\n      this.focusFirstToken();\n    },\n    handleEnd() {\n      this.focusLastToken();\n    },\n    handleDelete() {\n      this.$emit('token-remove', this.focusedToken);\n      if (this.focusedTokenIndex > 0) {\n        this.focusPrevToken();\n      }\n    },\n    handleEscape() {\n      this.focusedTokenIndex = null;\n      this.$emit('cancel-focus');\n    },\n    handleTab() {\n      this.$emit('cancel-focus');\n    },\n    // Only called when a token is focused by a click/tap\n    handleTokenFocus(index) {\n      this.focusedTokenIndex = index;\n    },\n    focusLastToken() {\n      this.focusedTokenIndex = this.tokens.length - 1;\n    },\n    focusFirstToken() {\n      this.focusedTokenIndex = 0;\n    },\n    focusNextToken() {\n      this.focusedTokenIndex += 1;\n    },\n    focusPrevToken() {\n      this.focusedTokenIndex -= 1;\n    },\n    focusOnToken() {\n      let tokenIndex = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n      this.focusedTokenIndex = tokenIndex;\n    }\n  }\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"gl-flex gl-w-full gl-flex-nowrap gl-items-start\"},[_c('div',{ref:\"tokenContainer\",staticClass:\"-gl-mx-1 -gl-my-1 gl-flex gl-w-full gl-flex-wrap gl-items-center\",attrs:{\"role\":\"listbox\",\"aria-multiselectable\":\"false\",\"aria-orientation\":\"horizontal\",\"aria-invalid\":_vm.state === false && 'true'},on:{\"keydown\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"left\",37,$event.key,[\"Left\",\"ArrowLeft\"])){ return null; }if('button' in $event && $event.button !== 0){ return null; }return _vm.handleLeftArrow.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"right\",39,$event.key,[\"Right\",\"ArrowRight\"])){ return null; }if('button' in $event && $event.button !== 2){ return null; }return _vm.handleRightArrow.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"home\",undefined,$event.key,undefined)){ return null; }return _vm.handleHome.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"end\",undefined,$event.key,undefined)){ return null; }return _vm.handleEnd.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"delete\",[8,46],$event.key,[\"Backspace\",\"Delete\",\"Del\"])){ return null; }return _vm.handleDelete.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"])){ return null; }return _vm.handleEscape.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"tab\",9,$event.key,\"Tab\")){ return null; }if($event.ctrlKey||$event.shiftKey||$event.altKey||$event.metaKey){ return null; }$event.preventDefault();return _vm.handleTab.apply(null, arguments)}]}},[_vm._l((_vm.tokens),function(token,index){return _c('div',{key:token.id,ref:\"tokens\",refInFor:true,staticClass:\"gl-token-selector-token-container gl-px-1 gl-py-2 gl-outline-none\",attrs:{\"data-token-id\":token.id,\"role\":\"option\",\"tabindex\":\"-1\"},on:{\"focus\":function($event){_vm.bindFocusEvent ? _vm.handleTokenFocus(index) : null;}}},[_c('gl-token',{staticClass:\"gl-cursor-default\",class:token.class,style:(token.style),attrs:{\"view-only\":_vm.viewOnly},on:{\"close\":function($event){return _vm.handleClose(token)}}},[_vm._t(\"token-content\",function(){return [_c('span',[_vm._v(\"\\n            \"+_vm._s(token.name)+\"\\n          \")])]},{\"token\":token})],2)],1)}),_vm._v(\" \"),_vm._t(\"text-input\")],2),_vm._v(\" \"),(_vm.showClearAllButton)?_c('div',{staticClass:\"gl-ml-3 gl-p-1\"},[_c('gl-button',{attrs:{\"size\":\"small\",\"aria-label\":\"Clear all\",\"icon\":\"clear\",\"category\":\"tertiary\",\"data-testid\":\"clear-all-button\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.$emit('clear-all')}}})],1):_vm._e()])};\nvar __vue_staticRenderFns__ = [];\n\n  /* style */\n  const __vue_inject_styles__ = undefined;\n  /* scoped */\n  const __vue_scope_id__ = undefined;\n  /* module identifier */\n  const __vue_module_identifier__ = undefined;\n  /* functional template */\n  const __vue_is_functional_template__ = false;\n  /* style inject */\n  \n  /* style inject SSR */\n  \n  /* style inject shadow dom */\n  \n\n  \n  const __vue_component__ = __vue_normalize__(\n    { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n    __vue_inject_styles__,\n    __vue_script__,\n    __vue_scope_id__,\n    __vue_is_functional_template__,\n    __vue_module_identifier__,\n    false,\n    undefined,\n    undefined,\n    undefined\n  );\n\nexport default __vue_component__;\n","import uniqueId from 'lodash/uniqueId';\nimport GlDropdownItem from '../dropdown/dropdown_item';\nimport { tokensValidator } from './helpers';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nvar script = {\n  name: 'GlTokenSelectorDropdown',\n  components: {\n    GlDropdownItem\n  },\n  props: {\n    show: {\n      type: Boolean,\n      required: true\n    },\n    menuClass: {\n      type: [String, Array, Object],\n      required: false,\n      default: ''\n    },\n    loading: {\n      type: Boolean,\n      required: false,\n      default: false\n    },\n    dropdownItems: {\n      type: Array,\n      // All items need to have an `id` key\n      validator: tokensValidator,\n      required: true\n    },\n    inputText: {\n      type: String,\n      required: true\n    },\n    userDefinedTokenCanBeAdded: {\n      type: Boolean,\n      required: true\n    },\n    componentId: {\n      type: String,\n      required: true\n    },\n    registerDropdownEventHandlers: {\n      type: Function,\n      required: true\n    },\n    registerResetFocusedDropdownItem: {\n      type: Function,\n      required: true\n    }\n  },\n  data() {\n    return {\n      focusedDropdownItemIndex: 0\n    };\n  },\n  computed: {\n    userDefinedToken() {\n      return {\n        id: uniqueId('user-defined-token'),\n        name: this.inputText\n      };\n    },\n    dropdownLength() {\n      // Adds an additional dropdown item for the 'Add ... dropdown' item\n      return this.userDefinedTokenCanBeAdded ? this.dropdownItems.length : this.dropdownItems.length - 1;\n    },\n    focusedLastDropdownItem() {\n      return this.focusedDropdownItemIndex === this.dropdownLength;\n    },\n    focusedUserDefinedToken() {\n      // User defined tokens are always the last in the list\n      return this.userDefinedTokenCanBeAdded && this.focusedLastDropdownItem;\n    },\n    focusedDropdownItem() {\n      if (this.focusedUserDefinedToken) {\n        return this.userDefinedToken;\n      }\n      return this.dropdownItems[this.focusedDropdownItemIndex];\n    }\n  },\n  watch: {\n    focusedDropdownItem(newValue, oldValue) {\n      if ((newValue === null || newValue === void 0 ? void 0 : newValue.id) !== (oldValue === null || oldValue === void 0 ? void 0 : oldValue.id)) {\n        this.$emit('input', newValue);\n        if (!newValue) {\n          return;\n        }\n        const dropdownItemRef = this.getDropdownItemRef(newValue);\n        if (dropdownItemRef !== null && dropdownItemRef !== void 0 && dropdownItemRef.$el) {\n          dropdownItemRef.$el.scrollIntoView({\n            block: 'nearest',\n            inline: 'end'\n          });\n        }\n      }\n    }\n  },\n  created() {\n    this.registerDropdownEventHandlers({\n      handleUpArrow: this.handleUpArrow,\n      handleDownArrow: this.handleDownArrow,\n      handleHomeKey: this.handleHomeKey,\n      handleEndKey: this.handleEndKey\n    });\n    this.registerResetFocusedDropdownItem(this.resetFocusedDropdownItem);\n    this.$emit('input', this.focusedDropdownItem);\n  },\n  methods: {\n    handleDropdownItemClick(dropdownItem) {\n      this.$emit('dropdown-item-click', dropdownItem);\n    },\n    handleMousedown(dropdownItem) {\n      // `event.relatedTarget` returns `null` on Safari because buttons are not focused on click (https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#Clicking_and_focus)\n      // Because of this we need to manually focus on the button. We do this in `mousedown` because it is fired before the `blur` event\n      const dropdownItemRef = this.getDropdownItemRef(dropdownItem);\n      if (dropdownItemRef !== null && dropdownItemRef !== void 0 && dropdownItemRef.$el) {\n        dropdownItemRef.$el.querySelector('button').focus();\n      }\n    },\n    handleUpArrow() {\n      if (!this.show) {\n        return;\n      }\n\n      // First dropdown item has been reached\n      if (this.focusedDropdownItemIndex === 0) {\n        return;\n      }\n      this.focusPrevDropdownItem();\n    },\n    handleDownArrow() {\n      if (!this.show) {\n        this.$emit('show');\n        return;\n      }\n\n      // Last dropdown item has been reached\n      if (this.focusedLastDropdownItem) {\n        return;\n      }\n      this.focusNextDropdownItem();\n    },\n    handleHomeKey(event) {\n      event.preventDefault();\n      this.focusFirstDropdownItem();\n    },\n    handleEndKey(event) {\n      event.preventDefault();\n      this.focusLastDropdownItem();\n    },\n    focusLastDropdownItem() {\n      this.focusedDropdownItemIndex = this.dropdownLength;\n    },\n    focusFirstDropdownItem() {\n      this.focusedDropdownItemIndex = 0;\n    },\n    focusNextDropdownItem() {\n      this.focusedDropdownItemIndex += 1;\n    },\n    focusPrevDropdownItem() {\n      this.focusedDropdownItemIndex -= 1;\n    },\n    resetFocusedDropdownItem() {\n      this.focusedDropdownItemIndex = 0;\n    },\n    dropdownItemIsFocused(dropdownItem) {\n      if (!this.focusedDropdownItem) {\n        return false;\n      }\n      return dropdownItem.id === this.focusedDropdownItem.id;\n    },\n    getDropdownItemRef(dropdownItem) {\n      var _this$$refs$dropdownI;\n      if (this.focusedUserDefinedToken) {\n        return this.$refs[this.userDefinedToken.id];\n      }\n      return (_this$$refs$dropdownI = this.$refs.dropdownItems) === null || _this$$refs$dropdownI === void 0 ? void 0 : _this$$refs$dropdownI.find(ref => ref.$attrs['data-dropdown-item-id'] === dropdownItem.id);\n    },\n    dropdownItemIdAttribute(dropdownItem) {\n      return dropdownItem ? `${this.componentId}-dropdown-item-${dropdownItem.id}` : null;\n    }\n  }\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"dropdown b-dropdown gl-dropdown gl-relative\",class:{ show: _vm.show }},[_c('ul',{ref:\"dropdownMenu\",staticClass:\"dropdown-menu gl-absolute\",class:[{ show: _vm.show }, _vm.menuClass],attrs:{\"role\":\"menu\",\"aria-activedescendant\":_vm.dropdownItemIdAttribute(_vm.focusedDropdownItem)}},[(_vm.loading)?_c('gl-dropdown-item',{attrs:{\"disabled\":\"\"}},[_vm._t(\"loading-content\",function(){return [_vm._v(\"Searching...\")]})],2):_vm._e(),_vm._v(\" \"),_vm._l((_vm.dropdownItems),function(dropdownItem){return _c('gl-dropdown-item',{key:dropdownItem.id,ref:\"dropdownItems\",refInFor:true,attrs:{\"id\":_vm.dropdownItemIdAttribute(dropdownItem),\"data-dropdown-item-id\":dropdownItem.id,\"active\":_vm.dropdownItemIsFocused(dropdownItem),\"active-class\":\"is-focused\",\"tabindex\":\"-1\"},on:{\"click\":function($event){return _vm.handleDropdownItemClick(dropdownItem)}}},[_c('div',{staticClass:\"-gl-mx-4 -gl-my-3 gl-px-4 gl-py-3\",on:{\"mousedown\":function($event){return _vm.handleMousedown(dropdownItem)}}},[_vm._t(\"dropdown-item-content\",function(){return [_vm._v(\"\\n          \"+_vm._s(dropdownItem.name)+\"\\n        \")]},{\"dropdownItem\":dropdownItem})],2)])}),_vm._v(\" \"),(_vm.userDefinedTokenCanBeAdded)?_c('gl-dropdown-item',{ref:_vm.userDefinedToken.id,attrs:{\"id\":_vm.dropdownItemIdAttribute(_vm.userDefinedToken),\"data-dropdown-item-id\":_vm.userDefinedToken.id,\"active\":_vm.dropdownItemIsFocused(_vm.userDefinedToken),\"active-class\":\"is-focused\",\"tabindex\":\"-1\"},on:{\"click\":function($event){return _vm.handleDropdownItemClick(_vm.userDefinedToken)}}},[_c('div',{staticClass:\"-gl-mx-4 -gl-my-3 gl-px-4 gl-py-3\",on:{\"mousedown\":function($event){return _vm.handleMousedown(_vm.userDefinedToken)}}},[_vm._t(\"user-defined-token-content\",function(){return [_vm._v(\"\\n          Add \\\"\"+_vm._s(_vm.inputText)+\"\\\"\\n        \")]},{\"inputText\":_vm.inputText})],2)]):(!_vm.dropdownItems.length)?_c('gl-dropdown-item',{attrs:{\"disabled\":\"\"}},[_vm._t(\"no-results-content\",function(){return [_vm._v(\"No matches found\")]})],2):_vm._e(),_vm._v(\" \"),_vm._t(\"dropdown-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__;\n","import uniqueId from 'lodash/uniqueId';\nimport { tokensValidator } from './helpers';\nimport GlTokenContainer from './token_container';\nimport GlTokenSelectorDropdown from './token_selector_dropdown';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nvar script = {\n  name: 'GlTokenSelector',\n  componentId: uniqueId('token-selector'),\n  components: {\n    GlTokenContainer,\n    GlTokenSelectorDropdown\n  },\n  model: {\n    prop: 'selectedTokens',\n    event: 'input'\n  },\n  props: {\n    /**\n     * Items to display in dropdown\n     */\n    dropdownItems: {\n      type: Array,\n      // All items need to have an `id` key\n      validator: tokensValidator,\n      required: false,\n      default: () => []\n    },\n    /**\n     * Should users be allowed to add tokens that are not in `dropdown-items`\n     */\n    allowUserDefinedTokens: {\n      type: Boolean,\n      required: false,\n      default: false\n    },\n    /**\n     * Shows 'Add new token option' in dropdown even if results are present, requires allowUserDefinedTokens to be true\n     */\n    showAddNewAlways: {\n      type: Boolean,\n      required: false,\n      default: false\n    },\n    /**\n     * Dropdown items are loading, can be used when requesting new dropdown items\n     */\n    loading: {\n      type: Boolean,\n      required: false,\n      default: false\n    },\n    /**\n     * Hide the dropdown if `dropdown-items` is empty. Will show `no-results-content` slot if this is `false`\n     */\n    hideDropdownWithNoItems: {\n      type: Boolean,\n      required: false,\n      default: false\n    },\n    /**\n     * CSS classes to add to the main token selector container (`.gl-token-selector`)\n     */\n    containerClass: {\n      type: String,\n      required: false,\n      default: ''\n    },\n    /**\n     * CSS classes to add to dropdown menu `ul` element\n     */\n    menuClass: {\n      type: [String, Array, Object],\n      required: false,\n      default: ''\n    },\n    /**\n     * The autocomplete attribute value for the underlying `input` element\n     */\n    autocomplete: {\n      type: String,\n      required: false,\n      default: 'off'\n    },\n    /**\n     * The `aria-labelledby` attribute value for the underlying `input` element\n     */\n    ariaLabelledby: {\n      type: String,\n      required: false,\n      default: null\n    },\n    /**\n     * The `placeholder` attribute value for the underlying `input` element\n     */\n    placeholder: {\n      type: String,\n      required: false,\n      default: null\n    },\n    /**\n     * HTML attributes to add to the text input. Helpful for adding `data-testid` attributes\n     */\n    textInputAttrs: {\n      type: Object,\n      required: false,\n      default: null\n    },\n    /**\n     * Controls the validation state appearance of the component. `true` for valid, `false` for invalid, or `null` for no validation state\n     */\n    state: {\n      type: Boolean,\n      required: false,\n      default: null\n    },\n    /**\n     * Tokens that are selected. This prop will automatically be added when using `v-model`\n     */\n    selectedTokens: {\n      type: Array,\n      // All tokens need to have an `id` key\n      validator: tokensValidator,\n      required: true\n    },\n    /**\n     * Controls the `view-only` mode for the tokens\n     */\n    viewOnly: {\n      type: Boolean,\n      required: false,\n      default: false\n    },\n    /**\n     * Allows user to bulk delete tokens when enabled\n     */\n    allowClearAll: {\n      type: Boolean,\n      required: false,\n      default: false\n    }\n  },\n  data() {\n    return {\n      inputText: '',\n      inputFocused: false,\n      dropdownIsOpen: false,\n      focusedDropdownItem: null,\n      triggerTokenFocusNextBackspace: true,\n      rootElClasses: '',\n      dropdownEventHandlers: {\n        handleUpArrow: () => {},\n        handleDownArrow: () => {},\n        handleHomeKey: () => {},\n        handleEndKey: () => {}\n      },\n      resetFocusedDropdownItem: () => {},\n      focusOnToken: () => {}\n    };\n  },\n  computed: {\n    filteredDropdownItems() {\n      return this.dropdownItems.filter(dropdownItem => this.selectedTokens.findIndex(token => token.id === dropdownItem.id) === -1);\n    },\n    dropdownHasNoItems() {\n      return !this.filteredDropdownItems.length;\n    },\n    userDefinedTokenCanBeAdded() {\n      if (!this.allowUserDefinedTokens || !this.inputText) {\n        return false;\n      }\n      return this.showAddNewAlways || this.dropdownHasNoItems;\n    },\n    hideDropdown() {\n      if (this.userDefinedTokenCanBeAdded) {\n        return false;\n      }\n      if (this.hideDropdownWithNoItems && this.dropdownHasNoItems) {\n        return true;\n      }\n      return false;\n    },\n    stateClass() {\n      switch (this.state) {\n        case true:\n          return 'is-valid';\n        case false:\n          return 'is-invalid';\n        default:\n          return '';\n      }\n    },\n    hasSelectedTokens() {\n      return this.selectedTokens.length > 0;\n    },\n    showEmptyPlaceholder() {\n      return !this.hasSelectedTokens && !this.inputFocused;\n    },\n    showClearAllButton() {\n      return this.hasSelectedTokens && this.allowClearAll;\n    }\n  },\n  watch: {\n    inputText(newValue, oldValue) {\n      if (newValue !== oldValue) {\n        /**\n         * Fired when user types in the token selector\n         *\n         * @property {string} inputText\n         */\n        this.$emit('text-input', newValue);\n        this.resetFocusedDropdownItem();\n        if (newValue !== '') {\n          this.triggerTokenFocusNextBackspace = false;\n        } else {\n          this.triggerTokenFocusNextBackspace = true;\n        }\n\n        // Wait a tick so `text-input` event can be used to validate\n        // the value and change the `allowUserDefinedTokens` and/or\n        // `hideDropdownWithNoItems` props\n        this.$nextTick(() => {\n          if (this.hideDropdown) {\n            this.closeDropdown();\n          } else if (newValue !== '') {\n            this.openDropdown();\n          }\n        });\n      }\n    }\n  },\n  methods: {\n    handleFocus(event) {\n      /**\n       * Fired when the token selector is focused\n       *\n       * @property {FocusEvent} event\n       */\n      this.$emit('focus', event);\n      this.openDropdown();\n      this.inputFocused = true;\n      this.focusOnToken();\n      if (this.inputText === '') {\n        this.triggerTokenFocusNextBackspace = true;\n      }\n    },\n    handleBlur(event) {\n      /**\n       * Fired when the token selector is blurred\n       *\n       * @property {FocusEvent} event\n       */\n      this.$emit('blur', event);\n      this.inputFocused = false;\n\n      // `event.relatedTarget` returns `null` on Safari because buttons are not focused on click (https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#Clicking_and_focus)\n      // Workaround is to:\n      // 1. Explicitly focus the dropdown menu item button on `mousedown` event. (see './token_selector_dropdown.vue')\n      // 2. Use `nextTick` so `blur` event is fired after the `mousedown` event\n      this.$nextTick(() => {\n        var _event$relatedTarget, _event$relatedTarget$;\n        if (!((_event$relatedTarget = event.relatedTarget) !== null && _event$relatedTarget !== void 0 && (_event$relatedTarget$ = _event$relatedTarget.closest) !== null && _event$relatedTarget$ !== void 0 && _event$relatedTarget$.call(_event$relatedTarget, '.dropdown-item'))) {\n          this.closeDropdown();\n        }\n      });\n    },\n    handleEnter() {\n      if (this.focusedDropdownItem && this.dropdownIsOpen) {\n        this.addToken(this.focusedDropdownItem);\n      }\n    },\n    handleEscape() {\n      this.inputText = '';\n      this.closeDropdown();\n    },\n    handleBackspace(event) {\n      if (this.inputText !== '' || !this.selectedTokens.length) {\n        return;\n      }\n\n      // Prevent triggering the browser back button\n      event.preventDefault();\n      if (this.triggerTokenFocusNextBackspace) {\n        this.$refs.textInput.blur();\n        this.focusOnToken(this.selectedTokens.length - 1);\n      } else {\n        this.triggerTokenFocusNextBackspace = true;\n      }\n    },\n    handleInputClick() {\n      // Open the dropdown if the user clicks an already focused input\n      if (this.inputFocused && this.inputText === '' && !this.dropdownIsOpen) {\n        this.openDropdown();\n      }\n    },\n    handleContainerClick(event) {\n      // Bail if token is clicked\n      const {\n        target\n      } = event;\n      if ((target === null || target === void 0 ? void 0 : target.closest('.gl-token')) !== null || this.inputFocused) {\n        return;\n      }\n      this.focusTextInput();\n    },\n    addToken(dropdownItem) {\n      /**\n       * Fired when a token is added or removed\n       *\n       * @property {array} selectedTokens\n       */\n      this.$emit('input', [...this.selectedTokens, dropdownItem]);\n      this.inputText = '';\n      this.closeDropdown();\n\n      /**\n       * Fired when a token is added\n       *\n       * @property {object} token\n       */\n      this.$emit('token-add', dropdownItem);\n    },\n    removeToken(token) {\n      /**\n       * Fired when a token is added or removed\n       *\n       * @property {array} selectedTokens\n       */\n      this.$emit('input', this.selectedTokens.filter(selectedToken => selectedToken.id !== token.id));\n      /**\n       * Fired when a token is removed\n       *\n       * @property {object} token\n       */\n      this.$emit('token-remove', token);\n    },\n    cancelTokenFocus() {\n      this.focusTextInput();\n    },\n    closeDropdown() {\n      this.dropdownIsOpen = false;\n      this.resetFocusedDropdownItem();\n    },\n    openDropdown() {\n      if (this.hideDropdown) {\n        return;\n      }\n      this.dropdownIsOpen = true;\n    },\n    focusTextInput() {\n      this.$refs.textInput.focus();\n    },\n    // Register methods passed as props from child components\n    registerDropdownEventHandlers(dropdownEventHandlers) {\n      this.dropdownEventHandlers = dropdownEventHandlers;\n    },\n    registerResetFocusedDropdownItem(resetFocusedDropdownItem) {\n      this.resetFocusedDropdownItem = resetFocusedDropdownItem;\n    },\n    registerFocusOnToken(focusOnToken) {\n      this.focusOnToken = focusOnToken;\n    },\n    clearAll() {\n      this.$emit('input', []);\n      this.focusTextInput();\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',[_c('div',{ref:\"container\",staticClass:\"gl-token-selector gl-form-input gl-form-input-not-readonly form-control gl-flex !gl-cursor-text gl-items-center !gl-px-3 !gl-py-2\",class:[\n      {\n        'gl-token-selector-focus-glow': _vm.inputFocused,\n        'gl-token-selector-view-only': _vm.viewOnly,\n      },\n      _vm.containerClass,\n      _vm.stateClass ],on:{\"click\":_vm.handleContainerClick}},[(_vm.showEmptyPlaceholder)?_vm._t(\"empty-placeholder\"):_vm._e(),_vm._v(\" \"),_c('gl-token-container',{attrs:{\"tokens\":_vm.selectedTokens,\"state\":_vm.state,\"register-focus-on-token\":_vm.registerFocusOnToken,\"view-only\":_vm.viewOnly,\"show-clear-all-button\":_vm.showClearAllButton},on:{\"token-remove\":_vm.removeToken,\"cancel-focus\":_vm.cancelTokenFocus,\"clear-all\":_vm.clearAll},scopedSlots:_vm._u([{key:\"token-content\",fn:function(ref){\n    var token = ref.token;\nreturn [_vm._t(\"token-content\",null,{\"token\":token})]}},{key:\"text-input\",fn:function(){return [_c('input',_vm._b({ref:\"textInput\",staticClass:\"gl-token-selector-input gl-h-auto gl-w-4/10 gl-grow gl-border-none gl-bg-transparent gl-px-1 gl-font-regular gl-text-base gl-leading-normal gl-text-default gl-outline-none\",attrs:{\"type\":\"text\",\"autocomplete\":_vm.autocomplete,\"aria-labelledby\":_vm.ariaLabelledby,\"placeholder\":_vm.placeholder,\"disabled\":_vm.viewOnly},domProps:{\"value\":_vm.inputText},on:{\"input\":function($event){_vm.inputText = $event.target.value;},\"focus\":_vm.handleFocus,\"blur\":_vm.handleBlur,\"keydown\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.handleEnter.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"])){ return null; }return _vm.handleEscape.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"delete\",[8,46],$event.key,[\"Backspace\",\"Delete\",\"Del\"])){ return null; }return _vm.handleBackspace.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"up\",38,$event.key,[\"Up\",\"ArrowUp\"])){ return null; }$event.preventDefault();return _vm.dropdownEventHandlers.handleUpArrow.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"down\",40,$event.key,[\"Down\",\"ArrowDown\"])){ return null; }$event.preventDefault();return _vm.dropdownEventHandlers.handleDownArrow.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"home\",undefined,$event.key,undefined)){ return null; }return _vm.dropdownEventHandlers.handleHomeKey.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"end\",undefined,$event.key,undefined)){ return null; }return _vm.dropdownEventHandlers.handleEndKey.apply(null, arguments)},function($event){$event.stopPropagation();return _vm.$emit('keydown', $event)}],\"click\":_vm.handleInputClick}},'input',_vm.textInputAttrs,false))]},proxy:true}],null,true)})],2),_vm._v(\" \"),_c('gl-token-selector-dropdown',{attrs:{\"menu-class\":_vm.menuClass,\"show\":_vm.dropdownIsOpen,\"loading\":_vm.loading,\"dropdown-items\":_vm.filteredDropdownItems,\"selected-tokens\":_vm.selectedTokens,\"input-text\":_vm.inputText,\"user-defined-token-can-be-added\":_vm.userDefinedTokenCanBeAdded,\"component-id\":_vm.$options.componentId,\"register-dropdown-event-handlers\":_vm.registerDropdownEventHandlers,\"register-reset-focused-dropdown-item\":_vm.registerResetFocusedDropdownItem},on:{\"dropdown-item-click\":_vm.addToken,\"show\":_vm.openDropdown},scopedSlots:_vm._u([{key:\"loading-content\",fn:function(){return [_vm._t(\"loading-content\")]},proxy:true},{key:\"user-defined-token-content\",fn:function(){return [_vm._t(\"user-defined-token-content\",null,{\"inputText\":_vm.inputText})]},proxy:true},{key:\"no-results-content\",fn:function(){return [_vm._t(\"no-results-content\")]},proxy:true},{key:\"dropdown-item-content\",fn:function(ref){\n    var dropdownItem = ref.dropdownItem;\nreturn [_vm._t(\"dropdown-item-content\",null,{\"dropdownItem\":dropdownItem})]}},{key:\"dropdown-footer\",fn:function(){return [_vm._t(\"dropdown-footer\")]},proxy:true}],null,true),model:{value:(_vm.focusedDropdownItem),callback:function ($$v) {_vm.focusedDropdownItem=$$v;},expression:\"focusedDropdownItem\"}})],1)};\nvar __vue_staticRenderFns__ = [];\n\n  /* style */\n  const __vue_inject_styles__ = undefined;\n  /* scoped */\n  const __vue_scope_id__ = undefined;\n  /* module identifier */\n  const __vue_module_identifier__ = undefined;\n  /* functional template */\n  const __vue_is_functional_template__ = false;\n  /* style inject */\n  \n  /* style inject SSR */\n  \n  /* style inject shadow dom */\n  \n\n  \n  const __vue_component__ = __vue_normalize__(\n    { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n    __vue_inject_styles__,\n    __vue_script__,\n    __vue_scope_id__,\n    __vue_is_functional_template__,\n    __vue_module_identifier__,\n    false,\n    undefined,\n    undefined,\n    undefined\n  );\n\nexport default __vue_component__;\n"],"sourceRoot":""}