{"version":3,"sources":["webpack:///./vue_shared/components/awards_list.vue","webpack:///vue_shared/components/awards_list.vue","webpack:///./vue_shared/components/awards_list.vue?64a6","webpack:///./vue_shared/components/awards_list.vue?1c2c","webpack:///./emoji/components/picker.vue","webpack:///./emoji/components/emoji_group.vue?71ed","webpack:///emoji/components/emoji_group.vue","webpack:///./emoji/components/emoji_group.vue?7c4f","webpack:///./emoji/components/emoji_group.vue","webpack:///./emoji/components/category.vue?c038","webpack:///emoji/components/category.vue","webpack:///./emoji/components/category.vue?b389","webpack:///./emoji/components/category.vue","webpack:///./emoji/components/utils.js","webpack:///emoji/components/emoji_list.vue","webpack:///./emoji/components/emoji_list.vue?f199","webpack:///./emoji/components/emoji_list.vue?eb83","webpack:///./emoji/components/emoji_list.vue","webpack:///./emoji/components/picker.vue?a521","webpack:///emoji/components/picker.vue","webpack:///./emoji/components/picker.vue?9b50"],"names":["components","GlButton","EmojiPicker","directives","GlTooltip","GlTooltipDirective","SafeHtml","mixins","glFeatureFlagsMixin","props","awards","type","Array","required","canAwardEmoji","Boolean","currentUserId","Number","default","defaultAwards","selectedClass","String","data","isMenuOpen","computed","groupedDefaultAwards","reduce","obj","key","Object","assign","groupedAwards","_this","thumbsup","thumbsdown","rest","_groupBy","x","name","createAwardList","EMOJI_THUMBS_UP","EMOJI_THUMBS_DOWN","entries","map","list","isAuthoredByMe","noteAuthorId","mounted","virtualScrollerItem","$el","closest","methods","getAwardClassBindings","awardList","hasReactionByCurrentUser","disabled","_this2","some","award","user","id","title","getAwardListTitle","classes","html","glEmojiTag","awardsList","_this3","length","currentUserIndex","findIndex","TOOLTIP_NAME_COUNT","currentUser","splice","namesToShow","index","__","insertYou","slice","remainingAwardList","sprintf","listToShow","join","awardsListLength","sliced","handleAward","awardName","$emit","document","activeElement","blur","setIsMenuOpen","menuOpen","style","zIndex","safeHtmlConfig","ADD_TAGS","component","_vm","this","_c","_self","staticClass","_l","rawName","class","attrs","on","$event","scopedSlots","_u","fn","value","expression","arg","$options","proxy","_v","_s","_e","emojis","renderGroup","clickEmoji","emoji","indexOf","_k","keyCode","GlIntersectionObserver","EmojiGroup","category","categoryTitle","humanize","categoryAppeared","onClick","emojiGroup","s__","generateCategoryHeight","emojisLength","EMOJI_ROW_HEIGHT","CATEGORY_ROW_HEIGHT","getFrequentlyUsedEmojis","async","savedEmojis","localStorage","getItem","FREQUENTLY_USED_EMOJIS_STORAGE_KEY","savedEmojisfromCookie","getCookie","cookieContent","setItem","removeCookie","swapCookieToLocalStorage","possibleEmojiNames","getEmojisForCategory","e","getAllEmoji","n","_chunk","_uniq","split","filter","includes","frequently_used","top","height","getEmojiCategories","_memoize","initEmojiMap","categories","getEmojiCategoryMap","frequentlyUsedEmojis","freeze","keys","c","FREQUENTLY_USED_KEY","acc","EMOJIS_PER_ROW","newAcc","searchValue","render","filteredCategories","searchEmoji","search","_t","GlDisclosureDropdown","GlSearchBoxByType","GlAnimatedSmileIcon","VirtualList","Category","EmojiList","inject","newCustomEmojiPath","toggleClass","dropdownClass","right","isVisible","isHovered","isFocused","currentCategory","categoryNames","CATEGORY_NAMES","hasFrequentlyUsedEmojis","state","loading","custom","icon","CATEGORY_ICON_MAP","placement","newCustomEmoji","text","href","extraAttrs","smileIcon","categoryName","$refs","virtualScoller","setScrollTop","selectEmoji","dropdown","close","concat","addToFrequentlyUsed","onSearchInput","forceRender","event","offset","_findLastIndex","values","onShow","onHide","onButtonHovered","onButtonHoverLeave","onButtonFocused","onButtonFocusLeave","i18n","addReaction","createEmoji","ref","model","callback","$$v","scrollToCategory","onScroll","categoryKey"],"mappings":"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","file":"29.fb5846d5.chunk.js","sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"awards js-awards-block\"},[_vm._l((_vm.groupedAwards),function(awardList){return _c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],key:awardList.name,staticClass:\"gl-my-2 gl-mr-3\",class:awardList.classes,attrs:{\"title\":awardList.title,\"data-emoji-name\":awardList.name,\"data-testid\":\"award-button\"},on:{\"click\":function($event){return _vm.handleAward(awardList.name)}},scopedSlots:_vm._u([{key:\"emoji\",fn:function(){return [_c('span',{directives:[{name:\"safe-html\",rawName:\"v-safe-html:[$options.safeHtmlConfig]\",value:(awardList.html),expression:\"awardList.html\",arg:_vm.$options.safeHtmlConfig}],staticClass:\"award-emoji-block\",attrs:{\"data-testid\":\"award-html\"}})]},proxy:true}],null,true)},[_vm._v(\" \"),_c('span',{staticClass:\"js-counter\"},[_vm._v(_vm._s(awardList.list.length))])])}),_vm._v(\" \"),(_vm.canAwardEmoji)?_c('div',{staticClass:\"award-menu-holder gl-my-2\"},[_c('emoji-picker',{attrs:{\"right\":false,\"data-testid\":\"emoji-picker\"},on:{\"click\":_vm.handleAward,\"shown\":function($event){return _vm.setIsMenuOpen(true)},\"hidden\":function($event){return _vm.setIsMenuOpen(false)}}})],1):_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./awards_list.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./awards_list.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./awards_list.vue?vue&type=template&id=5c2fc0b8\"\nimport script from \"./awards_list.vue?vue&type=script&lang=js\"\nexport * from \"./awards_list.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"emoji-picker\"},[_c('gl-disclosure-dropdown',{ref:\"dropdown\",class:_vm.dropdownClass,attrs:{\"placement\":_vm.placement},on:{\"shown\":_vm.onShow,\"hidden\":_vm.onHide},scopedSlots:_vm._u([{key:\"toggle\",fn:function(){return [_c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],staticClass:\"add-reaction-button btn-icon gl-relative gl-h-full\",class:[_vm.toggleClass, { 'is-active': _vm.isVisible }],attrs:{\"title\":_vm.$options.i18n.addReaction,\"data-testid\":\"add-reaction-button\"},on:{\"mouseover\":_vm.onButtonHovered,\"mouseleave\":_vm.onButtonHoverLeave,\"focusin\":_vm.onButtonFocused,\"focusout\":_vm.onButtonFocusLeave}},[_vm._t(\"button-content\",function(){return [_c('gl-animated-smile-icon',{attrs:{\"is-on\":_vm.smileIcon}})]})],2)]},proxy:true},(_vm.isVisible)?{key:\"header\",fn:function(){return [_c('gl-search-box-by-type',{ref:\"searchValue\",staticClass:\"add-reaction-search gl-border-b-1 gl-border-b-dropdown gl-border-b-solid\",attrs:{\"borderless\":\"\",\"autofocus\":\"\",\"debounce\":\"500\",\"aria-label\":_vm.__('Search for an emoji')},on:{\"input\":_vm.onSearchInput},model:{value:(_vm.searchValue),callback:function ($$v) {_vm.searchValue=$$v},expression:\"searchValue\"}})]},proxy:true}:null,(_vm.newCustomEmojiPath)?{key:\"footer\",fn:function(){return [_c('div',{staticClass:\"gl-flex gl-flex-col gl-border-t-1 gl-border-t-dropdown !gl-p-2 !gl-pt-0 gl-border-t-solid\"},[_c('gl-button',{staticClass:\"!gl-mt-2 !gl-justify-start\",attrs:{\"href\":_vm.newCustomEmojiPath,\"category\":\"tertiary\",\"block\":\"\",\"data-testid\":\"create-new-emoji\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.createEmoji)+\"\\n \")])],1)]},proxy:true}:null],null,true)},[_vm._v(\" \"),_vm._v(\" \"),(_vm.isVisible)?_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.searchValue),expression:\"!searchValue\"}],staticClass:\"gl-flex gl-border-b-1 gl-border-default gl-border-b-solid\",attrs:{\"data-testid\":\"category-buttons\"}},_vm._l((_vm.categoryNames),function(category,index){return _c('gl-button',{key:category.name,staticClass:\"emoji-picker-category-tab gl-grow !gl-rounded-none !gl-border-b-2 !gl-px-3 !gl-border-b-solid focus:!gl-shadow-none focus:!gl-outline focus:!gl-outline-2 focus:-gl-outline-offset-2 focus:!gl-outline-focus\",class:{ 'emoji-picker-category-active': index === _vm.currentCategory },attrs:{\"category\":\"tertiary\",\"icon\":category.icon,\"aria-label\":category.name},on:{\"click\":function($event){return _vm.scrollToCategory(category.name)},\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _vm.scrollToCategory(category.name)}}})}),1):_vm._e(),_vm._v(\" \"),(_vm.isVisible)?_c('emoji-list',{attrs:{\"search-value\":_vm.searchValue},scopedSlots:_vm._u([{key:\"default\",fn:function({ filteredCategories }){return [_c('virtual-list',{ref:\"virtualScoller\",attrs:{\"size\":258,\"remain\":1,\"bench\":2,\"variable\":\"\",\"onscroll\":_vm.onScroll}},_vm._l((filteredCategories),function(category,categoryKey){return _c('div',{key:categoryKey,style:({ height: category.height + 'px' })},[_c('category',{attrs:{\"category\":categoryKey,\"emojis\":category.emojis},on:{\"click\":_vm.selectEmoji}})],1)}),0)]}}],null,false,3430614808)}):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./emoji_group.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./emoji_group.vue?vue&type=script&lang=js\"","\n\n\n","import { render, staticRenderFns } from \"./emoji_group.vue?vue&type=template&id=558e87aa\"\nimport script from \"./emoji_group.vue?vue&type=script&lang=js\"\nexport * from \"./emoji_group.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"gl-mb-2 gl-flex gl-flex-wrap\"},[(_vm.renderGroup)?_vm._l((_vm.emojis),function(emoji){return _c('gl-button',{key:emoji,staticClass:\"emoji-picker-emoji\",attrs:{\"type\":\"button\",\"category\":\"tertiary\",\"aria-label\":emoji,\"data-testid\":\"emoji-button\",\"button-text-classes\":\"!gl-hidden\"},on:{\"click\":function($event){return _vm.clickEmoji(emoji)},\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _vm.clickEmoji(emoji)}},scopedSlots:_vm._u([{key:\"emoji\",fn:function(){return [_c('gl-emoji',{staticClass:\"!gl-mr-0\",attrs:{\"data-name\":emoji}})]},proxy:true}],null,true)})}):_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./category.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./category.vue?vue&type=script&lang=js\"","\n\n\n\n","import { render, staticRenderFns } from \"./category.vue?vue&type=template&id=1d12fa6b\"\nimport script from \"./category.vue?vue&type=script&lang=js\"\nexport * from \"./category.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-intersection-observer',{staticClass:\"gl-h-full gl-px-4\",on:{\"appear\":_vm.categoryAppeared}},[_c('div',{staticClass:\"emoji-picker-category-header gl-top-0 gl-z-3 gl-w-full gl-py-3 gl-text-sm\"},[_c('b',[_vm._v(_vm._s(_vm.categoryTitle))])]),_vm._v(\" \"),(_vm.emojis.length)?_vm._l((_vm.emojis),function(emojiGroup,index){return _c('emoji-group',{key:index,attrs:{\"emojis\":emojiGroup,\"render-group\":_vm.renderGroup},on:{\"emoji-click\":_vm.onClick}})}):_c('p',[_vm._v(\"\\n \"+_vm._s(_vm.s__('AwardEmoji|No emoji found.'))+\"\\n \")])],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { chunk, memoize, uniq } from 'lodash';\nimport { getCookie, removeCookie } from '~/lib/utils/common_utils';\nimport { initEmojiMap, getEmojiCategoryMap, getAllEmoji, getEmojisForCategory } from '~/emoji';\nimport {\n EMOJIS_PER_ROW,\n EMOJI_ROW_HEIGHT,\n CATEGORY_ROW_HEIGHT,\n FREQUENTLY_USED_KEY,\n FREQUENTLY_USED_EMOJIS_STORAGE_KEY,\n} from '../constants';\n\nexport const generateCategoryHeight = (emojisLength) =>\n emojisLength * EMOJI_ROW_HEIGHT + CATEGORY_ROW_HEIGHT;\n\n/**\n * Helper function to transition legacy cookie-based emoji storage to localStorage.\n * Sets localStorage to the value of the cookie and removes the cookie.\n */\nconst swapCookieToLocalStorage = () => {\n const cookieContent = getCookie(FREQUENTLY_USED_EMOJIS_STORAGE_KEY);\n localStorage.setItem(FREQUENTLY_USED_EMOJIS_STORAGE_KEY, cookieContent);\n removeCookie(FREQUENTLY_USED_EMOJIS_STORAGE_KEY);\n};\n\nexport const getFrequentlyUsedEmojis = async () => {\n let savedEmojis = localStorage.getItem(FREQUENTLY_USED_EMOJIS_STORAGE_KEY);\n\n if (!savedEmojis) {\n const savedEmojisfromCookie = getCookie(FREQUENTLY_USED_EMOJIS_STORAGE_KEY);\n\n if (!savedEmojisfromCookie) {\n return null;\n }\n savedEmojis = savedEmojisfromCookie;\n swapCookieToLocalStorage();\n }\n\n const customEmoji = await getEmojisForCategory('custom');\n const possibleEmojiNames = [...customEmoji.map((e) => e.name), ...getAllEmoji().map((e) => e.n)];\n\n const emojis = chunk(\n uniq(savedEmojis.split(',')).filter((name) => possibleEmojiNames.includes(name)),\n 9,\n );\n\n return {\n frequently_used: {\n emojis,\n top: 0,\n height: generateCategoryHeight(emojis.length),\n },\n };\n};\n\nexport const addToFrequentlyUsed = (emoji) => {\n const frequentlyUsedEmojis = uniq(\n (\n localStorage.getItem(FREQUENTLY_USED_EMOJIS_STORAGE_KEY) ||\n getCookie(FREQUENTLY_USED_EMOJIS_STORAGE_KEY) ||\n ''\n )\n .split(',')\n .filter((e) => e)\n .concat(emoji),\n );\n\n localStorage.setItem(FREQUENTLY_USED_EMOJIS_STORAGE_KEY, frequentlyUsedEmojis.join(','));\n};\n\nexport const hasFrequentlyUsedEmojis = async () => (await getFrequentlyUsedEmojis()) !== null;\n\nexport const getEmojiCategories = memoize(async () => {\n await initEmojiMap();\n\n const categories = await getEmojiCategoryMap();\n const frequentlyUsedEmojis = await getFrequentlyUsedEmojis();\n let top = frequentlyUsedEmojis\n ? frequentlyUsedEmojis.frequently_used.top + frequentlyUsedEmojis.frequently_used.height\n : 0;\n\n return Object.freeze(\n Object.keys(categories)\n .filter((c) => c !== FREQUENTLY_USED_KEY && categories[c].length)\n .reduce((acc, category) => {\n const emojis = chunk(categories[category], EMOJIS_PER_ROW);\n const height = generateCategoryHeight(emojis.length);\n const newAcc = {\n ...acc,\n [category]: { emojis, height, top },\n };\n top += height;\n\n return newAcc;\n }, frequentlyUsedEmojis || {}),\n );\n});\n","\n\n\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./emoji_list.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./emoji_list.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./emoji_list.vue?vue&type=template&id=74b7b9e6\"\nimport script from \"./emoji_list.vue?vue&type=script&lang=js\"\nexport * from \"./emoji_list.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.render)?_c('div',[_vm._t(\"default\",null,{\"filteredCategories\":_vm.filteredCategories})],2):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./picker.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./picker.vue?vue&type=script&lang=js\"","\n\n\n\n","import { render, staticRenderFns } from \"./picker.vue?vue&type=template&id=644b0f48\"\nimport script from \"./picker.vue?vue&type=script&lang=js\"\nexport * from \"./picker.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports"],"sourceRoot":""}