@chayns-components/emoji-input 5.0.0-beta.132 → 5.0.0-beta.1320

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (256) hide show
  1. package/README.md +4 -15
  2. package/lib/{api → cjs/api}/item-storage/get.js +4 -5
  3. package/lib/cjs/api/item-storage/get.js.map +1 -0
  4. package/lib/{api → cjs/api}/item-storage/put.js +5 -6
  5. package/lib/cjs/api/item-storage/put.js.map +1 -0
  6. package/lib/cjs/components/emoji-input/EmojiInput.js +561 -0
  7. package/lib/cjs/components/emoji-input/EmojiInput.js.map +1 -0
  8. package/lib/cjs/components/emoji-input/EmojiInput.styles.js +131 -0
  9. package/lib/cjs/components/emoji-input/EmojiInput.styles.js.map +1 -0
  10. package/lib/cjs/components/emoji-input/prefix-element/PrefixElement.js +44 -0
  11. package/lib/cjs/components/emoji-input/prefix-element/PrefixElement.js.map +1 -0
  12. package/lib/cjs/components/emoji-input/prefix-element/PrefixElement.styles.js +64 -0
  13. package/lib/cjs/components/emoji-input/prefix-element/PrefixElement.styles.js.map +1 -0
  14. package/lib/cjs/components/emoji-picker/EmojiPicker.js +47 -0
  15. package/lib/cjs/components/emoji-picker/EmojiPicker.js.map +1 -0
  16. package/lib/{components → cjs/components}/emoji-picker/EmojiPicker.styles.js +3 -5
  17. package/lib/cjs/components/emoji-picker/EmojiPicker.styles.js.map +1 -0
  18. package/lib/cjs/components/emoji-picker/emoji-picker-categories/EmojiPickerCategories.js +99 -0
  19. package/lib/cjs/components/emoji-picker/emoji-picker-categories/EmojiPickerCategories.js.map +1 -0
  20. package/lib/{components → cjs/components}/emoji-picker/emoji-picker-categories/EmojiPickerCategories.styles.js +4 -6
  21. package/lib/cjs/components/emoji-picker/emoji-picker-categories/EmojiPickerCategories.styles.js.map +1 -0
  22. package/lib/cjs/components/emoji-picker/emoji-picker-emojis/EmojiPickerEmojis.js +260 -0
  23. package/lib/cjs/components/emoji-picker/emoji-picker-emojis/EmojiPickerEmojis.js.map +1 -0
  24. package/lib/cjs/components/emoji-picker/emoji-picker-emojis/EmojiPickerEmojis.styles.js +66 -0
  25. package/lib/cjs/components/emoji-picker/emoji-picker-emojis/EmojiPickerEmojis.styles.js.map +1 -0
  26. package/lib/{components → cjs/components}/emoji-picker/emoji-picker-emojis/emoji/Emoji.js +63 -34
  27. package/lib/cjs/components/emoji-picker/emoji-picker-emojis/emoji/Emoji.js.map +1 -0
  28. package/lib/{components → cjs/components}/emoji-picker/emoji-picker-emojis/emoji/Emoji.styles.js +6 -3
  29. package/lib/cjs/components/emoji-picker/emoji-picker-emojis/emoji/Emoji.styles.js.map +1 -0
  30. package/lib/cjs/components/emoji-picker/emoji-picker-emojis/emoji/skin-tone-popup/SkinTonePopup.js +130 -0
  31. package/lib/cjs/components/emoji-picker/emoji-picker-emojis/emoji/skin-tone-popup/SkinTonePopup.js.map +1 -0
  32. package/lib/cjs/components/emoji-picker/emoji-picker-emojis/emoji/skin-tone-popup/SkinTonePopup.styles.js +98 -0
  33. package/lib/cjs/components/emoji-picker/emoji-picker-emojis/emoji/skin-tone-popup/SkinTonePopup.styles.js.map +1 -0
  34. package/lib/cjs/components/emoji-picker-popup/EmojiPickerPopup.js +51 -0
  35. package/lib/cjs/components/emoji-picker-popup/EmojiPickerPopup.js.map +1 -0
  36. package/lib/cjs/components/emoji-picker-popup/EmojiPickerPopup.styles.js +15 -0
  37. package/lib/cjs/components/emoji-picker-popup/EmojiPickerPopup.styles.js.map +1 -0
  38. package/lib/{constants → cjs/constants}/alignment.js +2 -4
  39. package/lib/cjs/constants/alignment.js.map +1 -0
  40. package/lib/{constants → cjs/constants}/categories.js +1 -2
  41. package/lib/cjs/constants/categories.js.map +1 -0
  42. package/lib/cjs/constants/emoji.js +126 -0
  43. package/lib/cjs/constants/emoji.js.map +1 -0
  44. package/lib/cjs/constants/externalServerUrl.js +8 -0
  45. package/lib/cjs/constants/externalServerUrl.js.map +1 -0
  46. package/lib/cjs/constants/regex.js +15 -0
  47. package/lib/cjs/constants/regex.js.map +1 -0
  48. package/lib/cjs/hooks/cursor.js +110 -0
  49. package/lib/cjs/hooks/cursor.js.map +1 -0
  50. package/lib/{hooks → cjs/hooks}/emojiHistory.js +13 -15
  51. package/lib/cjs/hooks/emojiHistory.js.map +1 -0
  52. package/lib/{index.js → cjs/index.js} +28 -3
  53. package/lib/cjs/index.js.map +1 -0
  54. package/lib/cjs/types/api.js.map +1 -0
  55. package/lib/cjs/types/category.js.map +1 -0
  56. package/lib/cjs/utils/asyncEmojiData.js +10 -0
  57. package/lib/cjs/utils/asyncEmojiData.js.map +1 -0
  58. package/lib/cjs/utils/convertEmojisToUnicodeAsync.js +29 -0
  59. package/lib/cjs/utils/convertEmojisToUnicodeAsync.js.map +1 -0
  60. package/lib/{utils → cjs/utils}/emoji.js +17 -13
  61. package/lib/cjs/utils/emoji.js.map +1 -0
  62. package/lib/{constants/emoji.js → cjs/utils/emojiShortList.js} +4 -127
  63. package/lib/cjs/utils/emojiShortList.js.map +1 -0
  64. package/lib/cjs/utils/environment.js.map +1 -0
  65. package/lib/cjs/utils/font.js.map +1 -0
  66. package/lib/{utils → cjs/utils}/insert.js +47 -9
  67. package/lib/cjs/utils/insert.js.map +1 -0
  68. package/lib/cjs/utils/number.js +17 -0
  69. package/lib/cjs/utils/number.js.map +1 -0
  70. package/lib/cjs/utils/scroll.js +65 -0
  71. package/lib/cjs/utils/scroll.js.map +1 -0
  72. package/lib/cjs/utils/selection.js +351 -0
  73. package/lib/cjs/utils/selection.js.map +1 -0
  74. package/lib/cjs/utils/text.js +63 -0
  75. package/lib/cjs/utils/text.js.map +1 -0
  76. package/lib/esm/api/item-storage/get.js +29 -0
  77. package/lib/esm/api/item-storage/get.js.map +1 -0
  78. package/lib/esm/api/item-storage/put.js +34 -0
  79. package/lib/esm/api/item-storage/put.js.map +1 -0
  80. package/lib/esm/components/emoji-input/EmojiInput.js +542 -0
  81. package/lib/esm/components/emoji-input/EmojiInput.js.map +1 -0
  82. package/lib/esm/components/emoji-input/EmojiInput.styles.js +124 -0
  83. package/lib/esm/components/emoji-input/EmojiInput.styles.js.map +1 -0
  84. package/lib/esm/components/emoji-input/prefix-element/PrefixElement.js +37 -0
  85. package/lib/esm/components/emoji-input/prefix-element/PrefixElement.js.map +1 -0
  86. package/lib/esm/components/emoji-input/prefix-element/PrefixElement.styles.js +57 -0
  87. package/lib/esm/components/emoji-input/prefix-element/PrefixElement.styles.js.map +1 -0
  88. package/lib/esm/components/emoji-picker/EmojiPicker.js +39 -0
  89. package/lib/esm/components/emoji-picker/EmojiPicker.js.map +1 -0
  90. package/lib/esm/components/emoji-picker/EmojiPicker.styles.js +16 -0
  91. package/lib/esm/components/emoji-picker/EmojiPicker.styles.js.map +1 -0
  92. package/lib/esm/components/emoji-picker/emoji-picker-categories/EmojiPickerCategories.js +91 -0
  93. package/lib/esm/components/emoji-picker/emoji-picker-categories/EmojiPickerCategories.js.map +1 -0
  94. package/lib/esm/components/emoji-picker/emoji-picker-categories/EmojiPickerCategories.styles.js +18 -0
  95. package/lib/esm/components/emoji-picker/emoji-picker-categories/EmojiPickerCategories.styles.js.map +1 -0
  96. package/lib/esm/components/emoji-picker/emoji-picker-emojis/EmojiPickerEmojis.js +251 -0
  97. package/lib/esm/components/emoji-picker/emoji-picker-emojis/EmojiPickerEmojis.js.map +1 -0
  98. package/lib/esm/components/emoji-picker/emoji-picker-emojis/EmojiPickerEmojis.styles.js +59 -0
  99. package/lib/esm/components/emoji-picker/emoji-picker-emojis/EmojiPickerEmojis.styles.js.map +1 -0
  100. package/lib/esm/components/emoji-picker/emoji-picker-emojis/emoji/Emoji.js +137 -0
  101. package/lib/esm/components/emoji-picker/emoji-picker-emojis/emoji/Emoji.js.map +1 -0
  102. package/lib/esm/components/emoji-picker/emoji-picker-emojis/emoji/Emoji.styles.js +17 -0
  103. package/lib/esm/components/emoji-picker/emoji-picker-emojis/emoji/Emoji.styles.js.map +1 -0
  104. package/lib/esm/components/emoji-picker/emoji-picker-emojis/emoji/skin-tone-popup/SkinTonePopup.js +120 -0
  105. package/lib/esm/components/emoji-picker/emoji-picker-emojis/emoji/skin-tone-popup/SkinTonePopup.js.map +1 -0
  106. package/lib/esm/components/emoji-picker/emoji-picker-emojis/emoji/skin-tone-popup/SkinTonePopup.styles.js +91 -0
  107. package/lib/esm/components/emoji-picker/emoji-picker-emojis/emoji/skin-tone-popup/SkinTonePopup.styles.js.map +1 -0
  108. package/lib/esm/components/emoji-picker-popup/EmojiPickerPopup.js +42 -0
  109. package/lib/esm/components/emoji-picker-popup/EmojiPickerPopup.js.map +1 -0
  110. package/lib/esm/components/emoji-picker-popup/EmojiPickerPopup.styles.js +8 -0
  111. package/lib/esm/components/emoji-picker-popup/EmojiPickerPopup.styles.js.map +1 -0
  112. package/lib/esm/constants/alignment.js +13 -0
  113. package/lib/esm/constants/alignment.js.map +1 -0
  114. package/lib/esm/constants/categories.js +13 -0
  115. package/lib/esm/constants/categories.js.map +1 -0
  116. package/lib/esm/constants/emoji-de-DE.json +3827 -0
  117. package/lib/esm/constants/emoji.js +120 -0
  118. package/lib/esm/constants/emoji.js.map +1 -0
  119. package/lib/esm/constants/externalServerUrl.js +2 -0
  120. package/lib/esm/constants/externalServerUrl.js.map +1 -0
  121. package/lib/esm/constants/regex.js +9 -0
  122. package/lib/esm/constants/regex.js.map +1 -0
  123. package/lib/esm/hooks/cursor.js +103 -0
  124. package/lib/esm/hooks/cursor.js.map +1 -0
  125. package/lib/esm/hooks/emojiHistory.js +81 -0
  126. package/lib/esm/hooks/emojiHistory.js.map +1 -0
  127. package/lib/{index.d.ts → esm/index.js} +3 -1
  128. package/lib/esm/index.js.map +1 -0
  129. package/lib/esm/types/api.js +2 -0
  130. package/lib/esm/types/api.js.map +1 -0
  131. package/lib/esm/types/category.js +2 -0
  132. package/lib/esm/types/category.js.map +1 -0
  133. package/lib/esm/utils/asyncEmojiData.js +2 -0
  134. package/lib/esm/utils/asyncEmojiData.js.map +1 -0
  135. package/lib/esm/utils/convertEmojisToUnicodeAsync.js +20 -0
  136. package/lib/esm/utils/convertEmojisToUnicodeAsync.js.map +1 -0
  137. package/lib/esm/utils/emoji.js +90 -0
  138. package/lib/esm/utils/emoji.js.map +1 -0
  139. package/lib/esm/utils/emojiShortList.js +3679 -0
  140. package/lib/esm/utils/emojiShortList.js.map +1 -0
  141. package/lib/esm/utils/environment.js +24 -0
  142. package/lib/esm/utils/environment.js.map +1 -0
  143. package/lib/esm/utils/font.js +10 -0
  144. package/lib/esm/utils/font.js.map +1 -0
  145. package/lib/esm/utils/insert.js +104 -0
  146. package/lib/esm/utils/insert.js.map +1 -0
  147. package/lib/esm/utils/number.js +10 -0
  148. package/lib/esm/utils/number.js.map +1 -0
  149. package/lib/esm/utils/scroll.js +58 -0
  150. package/lib/esm/utils/scroll.js.map +1 -0
  151. package/lib/esm/utils/selection.js +324 -0
  152. package/lib/esm/utils/selection.js.map +1 -0
  153. package/lib/esm/utils/text.js +54 -0
  154. package/lib/esm/utils/text.js.map +1 -0
  155. package/lib/types/components/emoji-input/EmojiInput.d.ts +101 -0
  156. package/lib/types/components/emoji-input/EmojiInput.styles.d.ts +26 -0
  157. package/lib/types/components/emoji-input/prefix-element/PrefixElement.d.ts +8 -0
  158. package/lib/types/components/emoji-input/prefix-element/PrefixElement.styles.d.ts +12 -0
  159. package/lib/types/components/emoji-picker/EmojiPicker.styles.d.ts +5 -0
  160. package/lib/types/components/emoji-picker/emoji-picker-categories/EmojiPickerCategories.styles.d.ts +4 -0
  161. package/lib/types/components/emoji-picker/emoji-picker-emojis/EmojiPickerEmojis.styles.d.ts +9 -0
  162. package/lib/{components → types/components}/emoji-picker/emoji-picker-emojis/emoji/Emoji.d.ts +10 -0
  163. package/lib/types/components/emoji-picker/emoji-picker-emojis/emoji/Emoji.styles.d.ts +6 -0
  164. package/lib/{components → types/components}/emoji-picker/emoji-picker-emojis/emoji/skin-tone-popup/SkinTonePopup.d.ts +5 -0
  165. package/lib/types/components/emoji-picker/emoji-picker-emojis/emoji/skin-tone-popup/SkinTonePopup.styles.d.ts +20 -0
  166. package/lib/{components → types/components}/emoji-picker-popup/EmojiPickerPopup.d.ts +0 -13
  167. package/lib/types/components/emoji-picker-popup/EmojiPickerPopup.styles.d.ts +1 -0
  168. package/lib/types/constants/emoji.d.ts +4 -0
  169. package/lib/types/constants/regex.d.ts +8 -0
  170. package/lib/types/hooks/cursor.d.ts +11 -0
  171. package/lib/types/index.d.ts +7 -0
  172. package/lib/types/utils/asyncEmojiData.d.ts +1 -0
  173. package/lib/types/utils/convertEmojisToUnicodeAsync.d.ts +3 -0
  174. package/lib/types/utils/emoji.d.ts +10 -0
  175. package/lib/{constants/emoji.d.ts → types/utils/emojiShortList.d.ts} +0 -4
  176. package/lib/{utils → types/utils}/insert.d.ts +10 -1
  177. package/lib/types/utils/number.d.ts +1 -0
  178. package/lib/types/utils/scroll.d.ts +1 -0
  179. package/lib/types/utils/selection.d.ts +30 -0
  180. package/lib/types/utils/text.d.ts +5 -0
  181. package/package.json +50 -31
  182. package/lib/api/item-storage/get.js.map +0 -1
  183. package/lib/api/item-storage/put.js.map +0 -1
  184. package/lib/components/emoji-input/EmojiInput.d.ts +0 -55
  185. package/lib/components/emoji-input/EmojiInput.js +0 -163
  186. package/lib/components/emoji-input/EmojiInput.js.map +0 -1
  187. package/lib/components/emoji-input/EmojiInput.styles.d.ts +0 -13
  188. package/lib/components/emoji-input/EmojiInput.styles.js +0 -154
  189. package/lib/components/emoji-input/EmojiInput.styles.js.map +0 -1
  190. package/lib/components/emoji-picker/EmojiPicker.js +0 -51
  191. package/lib/components/emoji-picker/EmojiPicker.js.map +0 -1
  192. package/lib/components/emoji-picker/EmojiPicker.styles.d.ts +0 -5
  193. package/lib/components/emoji-picker/EmojiPicker.styles.js.map +0 -1
  194. package/lib/components/emoji-picker/emoji-picker-categories/EmojiPickerCategories.js +0 -51
  195. package/lib/components/emoji-picker/emoji-picker-categories/EmojiPickerCategories.js.map +0 -1
  196. package/lib/components/emoji-picker/emoji-picker-categories/EmojiPickerCategories.styles.d.ts +0 -2
  197. package/lib/components/emoji-picker/emoji-picker-categories/EmojiPickerCategories.styles.js.map +0 -1
  198. package/lib/components/emoji-picker/emoji-picker-emojis/EmojiPickerEmojis.js +0 -131
  199. package/lib/components/emoji-picker/emoji-picker-emojis/EmojiPickerEmojis.js.map +0 -1
  200. package/lib/components/emoji-picker/emoji-picker-emojis/EmojiPickerEmojis.styles.d.ts +0 -7
  201. package/lib/components/emoji-picker/emoji-picker-emojis/EmojiPickerEmojis.styles.js +0 -99
  202. package/lib/components/emoji-picker/emoji-picker-emojis/EmojiPickerEmojis.styles.js.map +0 -1
  203. package/lib/components/emoji-picker/emoji-picker-emojis/emoji/Emoji.js.map +0 -1
  204. package/lib/components/emoji-picker/emoji-picker-emojis/emoji/Emoji.styles.d.ts +0 -1
  205. package/lib/components/emoji-picker/emoji-picker-emojis/emoji/Emoji.styles.js.map +0 -1
  206. package/lib/components/emoji-picker/emoji-picker-emojis/emoji/skin-tone-popup/SkinTonePopup.js +0 -74
  207. package/lib/components/emoji-picker/emoji-picker-emojis/emoji/skin-tone-popup/SkinTonePopup.js.map +0 -1
  208. package/lib/components/emoji-picker/emoji-picker-emojis/emoji/skin-tone-popup/SkinTonePopup.styles.d.ts +0 -11
  209. package/lib/components/emoji-picker/emoji-picker-emojis/emoji/skin-tone-popup/SkinTonePopup.styles.js +0 -104
  210. package/lib/components/emoji-picker/emoji-picker-emojis/emoji/skin-tone-popup/SkinTonePopup.styles.js.map +0 -1
  211. package/lib/components/emoji-picker-popup/EmojiPickerPopup.js +0 -150
  212. package/lib/components/emoji-picker-popup/EmojiPickerPopup.js.map +0 -1
  213. package/lib/components/emoji-picker-popup/EmojiPickerPopup.styles.d.ts +0 -7
  214. package/lib/components/emoji-picker-popup/EmojiPickerPopup.styles.js +0 -97
  215. package/lib/components/emoji-picker-popup/EmojiPickerPopup.styles.js.map +0 -1
  216. package/lib/constants/alignment.js.map +0 -1
  217. package/lib/constants/categories.js.map +0 -1
  218. package/lib/constants/emoji.js.map +0 -1
  219. package/lib/constants/externalServerUrl.js +0 -9
  220. package/lib/constants/externalServerUrl.js.map +0 -1
  221. package/lib/constants/regex.d.ts +0 -2
  222. package/lib/constants/regex.js +0 -11
  223. package/lib/constants/regex.js.map +0 -1
  224. package/lib/hooks/emojiHistory.js.map +0 -1
  225. package/lib/index.js.map +0 -1
  226. package/lib/types/api.js.map +0 -1
  227. package/lib/types/category.js.map +0 -1
  228. package/lib/utils/emoji.d.ts +0 -3
  229. package/lib/utils/emoji.js.map +0 -1
  230. package/lib/utils/environment.js.map +0 -1
  231. package/lib/utils/font.js.map +0 -1
  232. package/lib/utils/insert.js.map +0 -1
  233. package/lib/utils/selection.d.ts +0 -8
  234. package/lib/utils/selection.js +0 -98
  235. package/lib/utils/selection.js.map +0 -1
  236. package/lib/utils/text.d.ts +0 -2
  237. package/lib/utils/text.js +0 -22
  238. package/lib/utils/text.js.map +0 -1
  239. /package/lib/{constants → cjs/constants}/emoji-de-DE.json +0 -0
  240. /package/lib/{types → cjs/types}/api.js +0 -0
  241. /package/lib/{types → cjs/types}/category.js +0 -0
  242. /package/lib/{utils → cjs/utils}/environment.js +0 -0
  243. /package/lib/{utils → cjs/utils}/font.js +0 -0
  244. /package/lib/{api → types/api}/item-storage/get.d.ts +0 -0
  245. /package/lib/{api → types/api}/item-storage/put.d.ts +0 -0
  246. /package/lib/{components → types/components}/emoji-picker/EmojiPicker.d.ts +0 -0
  247. /package/lib/{components → types/components}/emoji-picker/emoji-picker-categories/EmojiPickerCategories.d.ts +0 -0
  248. /package/lib/{components → types/components}/emoji-picker/emoji-picker-emojis/EmojiPickerEmojis.d.ts +0 -0
  249. /package/lib/{constants → types/constants}/alignment.d.ts +0 -0
  250. /package/lib/{constants → types/constants}/categories.d.ts +0 -0
  251. /package/lib/{constants → types/constants}/externalServerUrl.d.ts +0 -0
  252. /package/lib/{hooks → types/hooks}/emojiHistory.d.ts +0 -0
  253. /package/lib/types/{api.d.ts → types/api.d.ts} +0 -0
  254. /package/lib/types/{category.d.ts → types/category.d.ts} +0 -0
  255. /package/lib/{utils → types/utils}/environment.d.ts +0 -0
  256. /package/lib/{utils → types/utils}/font.d.ts +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmojiPickerCategories.js","names":["_react","_interopRequireWildcard","require","_categories","_EmojiPickerCategories","_core","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","EmojiPickerCategories","onSelect","searchString","selectedCategory","focusedIndex","setFocusedIndex","useState","shouldPreventListener","ref","useIsMeasuredClone","categoryRef","useRef","combinedRef","useCombinedRefs","isSearchStringGiven","trim","handleSelect","useCallback","slug","useEffect","handleKeyDown","event","key","shiftKey","_categoryRef$current","preventDefault","children","current","length","newIndex","prevElement","tabIndex","newElement","focus","id","document","addEventListener","removeEventListener","handleClick","categories","useMemo","keys","CATEGORY_EMOJIS","map","isSelected","createElement","StyledMotionEmojiPickerCategory","animate","filter","opacity","className","initial","onClick","transition","duration","StyledEmojiPickerCategories","displayName","_default","exports"],"sources":["../../../../../src/components/emoji-picker/emoji-picker-categories/EmojiPickerCategories.tsx"],"sourcesContent":["import React, { FC, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { CATEGORY_EMOJIS } from '../../../constants/categories';\nimport type { Category } from '../../../types/category';\nimport {\n StyledEmojiPickerCategories,\n StyledMotionEmojiPickerCategory,\n} from './EmojiPickerCategories.styles';\nimport { useCombinedRefs, useIsMeasuredClone } from '@chayns-components/core';\n\nexport type EmojiPickerCategoriesProps = {\n onSelect: (category: Category) => void;\n searchString: string;\n selectedCategory: Category;\n};\n\nconst EmojiPickerCategories: FC<EmojiPickerCategoriesProps> = ({\n onSelect,\n searchString,\n selectedCategory,\n}) => {\n const [focusedIndex, setFocusedIndex] = useState(1);\n\n const [shouldPreventListener, ref] = useIsMeasuredClone();\n\n const categoryRef = useRef<HTMLDivElement>(null);\n\n const combinedRef = useCombinedRefs(categoryRef, ref);\n\n const isSearchStringGiven = searchString.trim() !== '';\n\n const handleSelect = useCallback(\n (slug: Category) => {\n onSelect(slug);\n },\n [onSelect],\n );\n\n useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (shouldPreventListener) {\n return;\n }\n\n if (event.key === 'Tab' || (event.key === 'Tab' && event.shiftKey)) {\n event.preventDefault();\n\n const children = categoryRef.current?.children;\n if (children && children.length > 0) {\n let newIndex = focusedIndex !== null ? focusedIndex : 0;\n\n if (event.key === 'Tab' && event.shiftKey) {\n newIndex = (newIndex - 1) % children.length;\n } else if (event.key === 'Tab') {\n newIndex = (newIndex + 1) % children.length;\n }\n\n // remove focus from the old element\n if (focusedIndex !== null) {\n const prevElement = children[focusedIndex] as HTMLDivElement;\n prevElement.tabIndex = -1;\n }\n\n if (newIndex < 0) {\n newIndex = children.length - 1;\n } else if (newIndex > children.length - 1) {\n newIndex = 0;\n }\n\n setFocusedIndex(newIndex);\n\n // Set focus to the element\n const newElement = children[newIndex] as HTMLDivElement;\n newElement.tabIndex = 0;\n newElement.focus();\n\n if (!newElement) {\n return;\n }\n\n const { id } = newElement;\n\n handleSelect(id as Category);\n }\n }\n };\n\n document.addEventListener('keydown', handleKeyDown);\n\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n };\n }, [focusedIndex, handleSelect, shouldPreventListener]);\n\n const handleClick = useCallback(\n (slug: Category) => {\n handleSelect(slug);\n },\n [handleSelect],\n );\n\n const categories = useMemo(\n () =>\n Object.keys(CATEGORY_EMOJIS).map((slug) => {\n const isSelected = selectedCategory === slug && !isSearchStringGiven;\n\n return (\n <StyledMotionEmojiPickerCategory\n animate={{\n filter: `grayscale(${isSelected ? 0 : 0.75})`,\n opacity: isSelected ? 1 : 0.5,\n }}\n className=\"prevent-lose-focus\"\n initial={false}\n key={slug}\n id={slug}\n onClick={() => handleClick(slug as Category)}\n transition={{ duration: 0.2 }}\n >\n {CATEGORY_EMOJIS[slug as Category]}\n </StyledMotionEmojiPickerCategory>\n );\n }),\n [handleClick, isSearchStringGiven, selectedCategory],\n );\n\n return (\n <StyledEmojiPickerCategories ref={combinedRef}>{categories}</StyledEmojiPickerCategories>\n );\n};\n\nEmojiPickerCategories.displayName = 'EmojiPickerCategories';\n\nexport default EmojiPickerCategories;\n"],"mappings":"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","ignoreList":[]}
@@ -4,11 +4,11 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.StyledMotionEmojiPickerCategory = exports.StyledEmojiPickerCategories = void 0;
7
- var _framerMotion = require("framer-motion");
7
+ var _react = require("motion/react");
8
8
  var _styledComponents = _interopRequireDefault(require("styled-components"));
9
9
  var _font = require("../../../utils/font");
10
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
- const StyledEmojiPickerCategories = _styledComponents.default.div`
10
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
+ const StyledEmojiPickerCategories = exports.StyledEmojiPickerCategories = _styledComponents.default.div`
12
12
  align-items: center;
13
13
  border-top: 1px solid rgba(160, 160, 160, 0.3);
14
14
  display: flex;
@@ -17,11 +17,9 @@ const StyledEmojiPickerCategories = _styledComponents.default.div`
17
17
  padding-top: 10px;
18
18
  width: 100%;
19
19
  `;
20
- exports.StyledEmojiPickerCategories = StyledEmojiPickerCategories;
21
- const StyledMotionEmojiPickerCategory = (0, _styledComponents.default)(_framerMotion.motion.div)`
20
+ const StyledMotionEmojiPickerCategory = exports.StyledMotionEmojiPickerCategory = (0, _styledComponents.default)(_react.motion.div)`
22
21
  cursor: pointer;
23
22
  font-family: ${_font.getFontFamily};
24
23
  font-size: 20px;
25
24
  `;
26
- exports.StyledMotionEmojiPickerCategory = StyledMotionEmojiPickerCategory;
27
25
  //# sourceMappingURL=EmojiPickerCategories.styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmojiPickerCategories.styles.js","names":["_react","require","_styledComponents","_interopRequireDefault","_font","e","__esModule","default","StyledEmojiPickerCategories","exports","styled","div","StyledMotionEmojiPickerCategory","motion","getFontFamily"],"sources":["../../../../../src/components/emoji-picker/emoji-picker-categories/EmojiPickerCategories.styles.ts"],"sourcesContent":["import { motion } from 'motion/react';\nimport styled from 'styled-components';\nimport { getFontFamily } from '../../../utils/font';\n\nexport const StyledEmojiPickerCategories = styled.div`\n align-items: center;\n border-top: 1px solid rgba(160, 160, 160, 0.3);\n display: flex;\n flex: 0 0 auto;\n justify-content: space-between;\n padding-top: 10px;\n width: 100%;\n`;\n\nexport const StyledMotionEmojiPickerCategory = styled(motion.div)`\n cursor: pointer;\n font-family: ${getFontFamily};\n font-size: 20px;\n`;\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,iBAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AAAoD,SAAAE,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE7C,MAAMG,2BAA2B,GAAAC,OAAA,CAAAD,2BAAA,GAAGE,yBAAM,CAACC,GAAG;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMC,+BAA+B,GAAAH,OAAA,CAAAG,+BAAA,GAAG,IAAAF,yBAAM,EAACG,aAAM,CAACF,GAAG,CAAC;AACjE;AACA,mBAAmBG,mBAAa;AAChC;AACA,CAAC","ignoreList":[]}
@@ -0,0 +1,260 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _core = require("@chayns-components/core");
8
+ var _chaynsApi = require("chayns-api");
9
+ var _emojilib = _interopRequireDefault(require("emojilib"));
10
+ var _react = _interopRequireWildcard(require("react"));
11
+ var _emojiDeDE = _interopRequireDefault(require("../../../constants/emoji-de-DE.json"));
12
+ var _emojiHistory = require("../../../hooks/emojiHistory");
13
+ var _Emoji = _interopRequireDefault(require("./emoji/Emoji"));
14
+ var _EmojiPickerEmojis = require("./EmojiPickerEmojis.styles");
15
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
16
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); } // @ts-nocheck
17
+ const EmojiPickerEmojis = ({
18
+ accessToken,
19
+ onSelect,
20
+ personId,
21
+ searchString,
22
+ selectedCategory
23
+ }) => {
24
+ const [shouldPreventScroll, setShouldPreventScroll] = (0, _react.useState)(false);
25
+ const [shouldShowSkinTonePopup, setShouldShowSkinTonePopup] = (0, _react.useState)(false);
26
+ const [focusedIndex, setFocusedIndex] = (0, _react.useState)(0);
27
+ const [emojiCategories, setEmojiCategories] = (0, _react.useState)([]);
28
+ const [emojiList, setEmojiList] = (0, _react.useState)([]);
29
+ (0, _react.useEffect)(() => {
30
+ void Promise.resolve().then(() => _interopRequireWildcard(require('unicode-emoji-json/data-by-group.json'))).then(({
31
+ default: categories
32
+ }) => {
33
+ setEmojiCategories(categories);
34
+ });
35
+ void Promise.resolve().then(() => _interopRequireWildcard(require('unicode-emoji-json/data-by-emoji.json'))).then(({
36
+ default: emojis
37
+ }) => {
38
+ setEmojiList(emojis);
39
+ });
40
+ }, []);
41
+ const [shouldPreventListener, ref] = (0, _core.useIsMeasuredClone)();
42
+ const emojiRef = (0, _react.useRef)(null);
43
+ const shouldPreventEmojiControlsRef = (0, _react.useRef)(false);
44
+ const combinedRef = (0, _core.useCombinedRefs)(emojiRef, ref);
45
+ const {
46
+ browser
47
+ } = (0, _chaynsApi.getDevice)();
48
+ const {
49
+ addOrUpdateEmojiInHistory,
50
+ historyEmojis
51
+ } = (0, _emojiHistory.useEmojiHistory)({
52
+ accessToken,
53
+ personId,
54
+ selectedCategory
55
+ });
56
+ const handlePopupVisibilityChange = (0, _react.useCallback)(isVisible => {
57
+ setShouldShowSkinTonePopup(isVisible);
58
+ shouldPreventEmojiControlsRef.current = isVisible;
59
+ setShouldPreventScroll(isVisible);
60
+ }, []);
61
+ const handleSelect = (0, _react.useCallback)(({
62
+ emoji,
63
+ name,
64
+ skin_tone_support,
65
+ index
66
+ }) => {
67
+ onSelect(emoji);
68
+ if (index) {
69
+ setFocusedIndex(index);
70
+ }
71
+ void addOrUpdateEmojiInHistory({
72
+ emoji,
73
+ name,
74
+ skin_tone_support
75
+ });
76
+ }, [addOrUpdateEmojiInHistory, onSelect]);
77
+ (0, _react.useEffect)(() => {
78
+ if (selectedCategory) {
79
+ setFocusedIndex(0);
80
+ const container = emojiRef.current;
81
+ if (!container) {
82
+ return;
83
+ }
84
+ container.scrollTop = 0;
85
+ }
86
+ }, [selectedCategory]);
87
+ (0, _react.useEffect)(() => {
88
+ const handleKeyDown = event => {
89
+ if (shouldPreventListener) {
90
+ return;
91
+ }
92
+ if (!shouldPreventEmojiControlsRef.current && (event.key === 'ArrowUp' || event.key === 'ArrowDown' || event.key === 'ArrowLeft' || event.key === 'ArrowRight')) {
93
+ var _emojiRef$current;
94
+ event.preventDefault();
95
+ const children = (_emojiRef$current = emojiRef.current) === null || _emojiRef$current === void 0 ? void 0 : _emojiRef$current.children;
96
+ if (children && children.length > 0) {
97
+ const container = emojiRef.current;
98
+ let newIndex = focusedIndex !== null ? focusedIndex : 0;
99
+ if (event.ctrlKey) {
100
+ return;
101
+ }
102
+ if (event.key === 'ArrowUp') {
103
+ newIndex = (newIndex - 6) % children.length;
104
+ } else if (event.key === 'ArrowDown') {
105
+ newIndex = (newIndex + 6) % children.length;
106
+ } else if (event.key === 'ArrowLeft') {
107
+ newIndex = (newIndex - 1) % children.length;
108
+ } else if (event.key === 'ArrowRight') {
109
+ newIndex = (newIndex + 1) % children.length;
110
+ }
111
+
112
+ // remove focus from the old element
113
+ if (focusedIndex !== null) {
114
+ const prevElement = children[focusedIndex];
115
+ prevElement.tabIndex = -1;
116
+ }
117
+ if (newIndex < 0) {
118
+ newIndex = children.length - 1;
119
+ } else if (newIndex > children.length - 1) {
120
+ newIndex = 0;
121
+ }
122
+ setFocusedIndex(newIndex);
123
+
124
+ // Set focus to the element
125
+ const newElement = children[newIndex];
126
+ newElement.tabIndex = 0;
127
+ const containerRect = container.getBoundingClientRect();
128
+ const elementRect = newElement.getBoundingClientRect();
129
+ if (elementRect.bottom > containerRect.bottom) {
130
+ container.scrollTop += elementRect.bottom - containerRect.bottom;
131
+ } else if (elementRect.top < containerRect.top) {
132
+ container.scrollTop -= containerRect.top - elementRect.top;
133
+ }
134
+ }
135
+ } else if (event.key === 'Enter' && !shouldPreventEmojiControlsRef.current && focusedIndex !== null) {
136
+ var _emojiRef$current2;
137
+ if (event.ctrlKey) {
138
+ setShouldShowSkinTonePopup(true);
139
+ return;
140
+ }
141
+ const {
142
+ dataset
143
+ } = (_emojiRef$current2 = emojiRef.current) === null || _emojiRef$current2 === void 0 ? void 0 : _emojiRef$current2.children[focusedIndex];
144
+ const {
145
+ emoji,
146
+ name,
147
+ skinToneSupport
148
+ } = dataset;
149
+ if (!emoji || !name || !skinToneSupport) {
150
+ return;
151
+ }
152
+ handleSelect({
153
+ emoji,
154
+ name,
155
+ skin_tone_support: skinToneSupport === 'true'
156
+ });
157
+ }
158
+ };
159
+ document.addEventListener('keydown', handleKeyDown);
160
+ return () => {
161
+ document.removeEventListener('keydown', handleKeyDown);
162
+ };
163
+ }, [focusedIndex, handleSelect, shouldPreventListener]);
164
+ const handleRightClick = (0, _react.useCallback)(index => {
165
+ setFocusedIndex(index);
166
+ }, []);
167
+ const emojis = (0, _react.useMemo)(() => {
168
+ var _emojiCategories$find;
169
+ if (searchString.trim() !== '') {
170
+ const lowerSearchString = searchString.toLowerCase();
171
+ const searchResults = [];
172
+ Object.entries(emojiList).forEach(([emoji, {
173
+ name,
174
+ skin_tone_support
175
+ }], index) => {
176
+ const keywords = _emojilib.default[emoji];
177
+ const germanKeywords = _emojiDeDE.default[emoji];
178
+ if (name.includes(lowerSearchString) || keywords !== null && keywords !== void 0 && keywords.some(keyword => keyword.includes(lowerSearchString)) || germanKeywords !== null && germanKeywords !== void 0 && germanKeywords.some(keyword => keyword.includes(lowerSearchString))) {
179
+ searchResults.push(/*#__PURE__*/_react.default.createElement(_Emoji.default, {
180
+ shouldShowSkinTonePopup: index === focusedIndex && skin_tone_support && shouldShowSkinTonePopup,
181
+ isSelected: index === focusedIndex,
182
+ emoji: emoji,
183
+ index: index,
184
+ onRightClick: handleRightClick,
185
+ isSkinToneSupported: skin_tone_support,
186
+ key: name,
187
+ name: name,
188
+ onPopupVisibilityChange: handlePopupVisibilityChange,
189
+ onSelect: e => handleSelect({
190
+ emoji: e,
191
+ name,
192
+ skin_tone_support,
193
+ index
194
+ }),
195
+ emojiList: emojiList
196
+ }));
197
+ }
198
+ });
199
+ return searchResults;
200
+ }
201
+ if (selectedCategory === 'history') {
202
+ return historyEmojis.map(({
203
+ emoji,
204
+ name,
205
+ skin_tone_support
206
+ }, index) => /*#__PURE__*/_react.default.createElement(_Emoji.default, {
207
+ isSelected: index === focusedIndex,
208
+ shouldShowSkinTonePopup: index === focusedIndex && skin_tone_support && shouldShowSkinTonePopup,
209
+ emoji: emoji,
210
+ name: name,
211
+ key: name,
212
+ index: index,
213
+ onRightClick: handleRightClick,
214
+ onPopupVisibilityChange: handlePopupVisibilityChange,
215
+ onSelect: e => handleSelect({
216
+ emoji: e,
217
+ name,
218
+ skin_tone_support,
219
+ index
220
+ }),
221
+ isSkinToneSupported: false,
222
+ emojiList: emojiList
223
+ }));
224
+ }
225
+ return (_emojiCategories$find = emojiCategories.find(({
226
+ slug
227
+ }) => slug === selectedCategory)) === null || _emojiCategories$find === void 0 ? void 0 : _emojiCategories$find.emojis.map(({
228
+ emoji,
229
+ name,
230
+ skin_tone_support
231
+ }, index) => /*#__PURE__*/_react.default.createElement(_Emoji.default, {
232
+ isSelected: index === focusedIndex,
233
+ shouldShowSkinTonePopup: index === focusedIndex && skin_tone_support && shouldShowSkinTonePopup,
234
+ emoji: emoji,
235
+ name: name,
236
+ index: index,
237
+ onRightClick: handleRightClick,
238
+ isSkinToneSupported: skin_tone_support,
239
+ key: name,
240
+ onPopupVisibilityChange: handlePopupVisibilityChange,
241
+ onSelect: e => handleSelect({
242
+ emoji: e,
243
+ name,
244
+ skin_tone_support,
245
+ index
246
+ }),
247
+ emojiList: emojiList
248
+ }));
249
+ }, [searchString, selectedCategory, focusedIndex, shouldShowSkinTonePopup, handleRightClick, handlePopupVisibilityChange, handleSelect, historyEmojis]);
250
+ const shouldShowNoContentInfo = !emojis || emojis.length === 0;
251
+ return /*#__PURE__*/_react.default.createElement(_EmojiPickerEmojis.StyledEmojiPickerEmojis, {
252
+ $browser: browser === null || browser === void 0 ? void 0 : browser.name,
253
+ $shouldPreventScroll: shouldPreventScroll,
254
+ $shouldShowNoContentInfo: shouldShowNoContentInfo,
255
+ ref: combinedRef
256
+ }, emojis, shouldShowNoContentInfo && /*#__PURE__*/_react.default.createElement(_EmojiPickerEmojis.StyledEmojiPickerEmojisNoContentInfo, null, "Hier werden die zuletzt verwendeten Emojis angezeigt, die \xFCber diese Auswahl gew\xE4hlt wurden."));
257
+ };
258
+ EmojiPickerEmojis.displayName = 'EmojiPickerEmojis';
259
+ var _default = exports.default = EmojiPickerEmojis;
260
+ //# sourceMappingURL=EmojiPickerEmojis.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmojiPickerEmojis.js","names":["_core","require","_chaynsApi","_emojilib","_interopRequireDefault","_react","_interopRequireWildcard","_emojiDeDE","_emojiHistory","_Emoji","_EmojiPickerEmojis","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","EmojiPickerEmojis","accessToken","onSelect","personId","searchString","selectedCategory","shouldPreventScroll","setShouldPreventScroll","useState","shouldShowSkinTonePopup","setShouldShowSkinTonePopup","focusedIndex","setFocusedIndex","emojiCategories","setEmojiCategories","emojiList","setEmojiList","useEffect","Promise","resolve","then","categories","emojis","shouldPreventListener","ref","useIsMeasuredClone","emojiRef","useRef","shouldPreventEmojiControlsRef","combinedRef","useCombinedRefs","browser","getDevice","addOrUpdateEmojiInHistory","historyEmojis","useEmojiHistory","handlePopupVisibilityChange","useCallback","isVisible","current","handleSelect","emoji","name","skin_tone_support","index","container","scrollTop","handleKeyDown","event","key","_emojiRef$current","preventDefault","children","length","newIndex","ctrlKey","prevElement","tabIndex","newElement","containerRect","getBoundingClientRect","elementRect","bottom","top","_emojiRef$current2","dataset","skinToneSupport","document","addEventListener","removeEventListener","handleRightClick","useMemo","_emojiCategories$find","trim","lowerSearchString","toLowerCase","searchResults","entries","forEach","keywords","emojiLib","germanKeywords","germanEmojiLib","includes","some","keyword","push","createElement","isSelected","onRightClick","isSkinToneSupported","onPopupVisibilityChange","map","find","slug","shouldShowNoContentInfo","StyledEmojiPickerEmojis","$browser","$shouldPreventScroll","$shouldShowNoContentInfo","StyledEmojiPickerEmojisNoContentInfo","displayName","_default","exports"],"sources":["../../../../../src/components/emoji-picker/emoji-picker-emojis/EmojiPickerEmojis.tsx"],"sourcesContent":["// @ts-nocheck\n\nimport { BrowserName, useCombinedRefs, useIsMeasuredClone } from '@chayns-components/core';\nimport { getDevice } from 'chayns-api';\nimport emojiLib from 'emojilib';\nimport React, { FC, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport germanEmojiLib from '../../../constants/emoji-de-DE.json';\nimport { useEmojiHistory } from '../../../hooks/emojiHistory';\nimport type { Category } from '../../../types/category';\nimport Emoji from './emoji/Emoji';\nimport {\n StyledEmojiPickerEmojis,\n StyledEmojiPickerEmojisNoContentInfo,\n} from './EmojiPickerEmojis.styles';\n\nexport type EmojiPickerEmojisProps = {\n accessToken?: string;\n onSelect: (emoji: string) => void;\n personId?: string;\n searchString: string;\n selectedCategory: Category;\n};\n\ninterface EmojiType {\n emoji: string;\n skin_tone_support: boolean;\n name: string;\n slug: string;\n unicode_version: string;\n emoji_version: string;\n group?: string;\n}\n\ninterface EmojiCategory {\n name: string;\n slug: string;\n emojis: EmojiType[];\n}\n\ntype EmojiData = EmojiCategory[];\ninterface EmojiDictionary {\n [key: string]: EmojiType;\n}\n\nconst EmojiPickerEmojis: FC<EmojiPickerEmojisProps> = ({\n accessToken,\n onSelect,\n personId,\n searchString,\n selectedCategory,\n}) => {\n const [shouldPreventScroll, setShouldPreventScroll] = useState(false);\n const [shouldShowSkinTonePopup, setShouldShowSkinTonePopup] = useState(false);\n const [focusedIndex, setFocusedIndex] = useState<number>(0);\n const [emojiCategories, setEmojiCategories] = useState<EmojiData>([]);\n const [emojiList, setEmojiList] = useState<EmojiDictionary[]>([]);\n\n useEffect(() => {\n void import('unicode-emoji-json/data-by-group.json').then(({ default: categories }) => {\n setEmojiCategories(categories);\n });\n void import('unicode-emoji-json/data-by-emoji.json').then(({ default: emojis }) => {\n setEmojiList(emojis);\n });\n }, []);\n\n const [shouldPreventListener, ref] = useIsMeasuredClone();\n\n const emojiRef = useRef<HTMLDivElement>(null);\n const shouldPreventEmojiControlsRef = useRef(false);\n\n const combinedRef = useCombinedRefs(emojiRef, ref);\n\n const { browser } = getDevice();\n\n const { addOrUpdateEmojiInHistory, historyEmojis } = useEmojiHistory({\n accessToken,\n personId,\n selectedCategory,\n });\n\n const handlePopupVisibilityChange = useCallback((isVisible: boolean) => {\n setShouldShowSkinTonePopup(isVisible);\n shouldPreventEmojiControlsRef.current = isVisible;\n setShouldPreventScroll(isVisible);\n }, []);\n\n const handleSelect = useCallback(\n ({\n emoji,\n name,\n skin_tone_support,\n index,\n }: {\n emoji: string;\n name: string;\n skin_tone_support: boolean;\n index?: number;\n }) => {\n onSelect(emoji);\n\n if (index) {\n setFocusedIndex(index);\n }\n\n void addOrUpdateEmojiInHistory({ emoji, name, skin_tone_support });\n },\n [addOrUpdateEmojiInHistory, onSelect],\n );\n\n useEffect(() => {\n if (selectedCategory) {\n setFocusedIndex(0);\n\n const container = emojiRef.current;\n\n if (!container) {\n return;\n }\n\n container.scrollTop = 0;\n }\n }, [selectedCategory]);\n\n useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (shouldPreventListener) {\n return;\n }\n\n if (\n !shouldPreventEmojiControlsRef.current &&\n (event.key === 'ArrowUp' ||\n event.key === 'ArrowDown' ||\n event.key === 'ArrowLeft' ||\n event.key === 'ArrowRight')\n ) {\n event.preventDefault();\n const children = emojiRef.current?.children;\n if (children && children.length > 0) {\n const container = emojiRef.current;\n let newIndex = focusedIndex !== null ? focusedIndex : 0;\n\n if (event.ctrlKey) {\n return;\n }\n\n if (event.key === 'ArrowUp') {\n newIndex = (newIndex - 6) % children.length;\n } else if (event.key === 'ArrowDown') {\n newIndex = (newIndex + 6) % children.length;\n } else if (event.key === 'ArrowLeft') {\n newIndex = (newIndex - 1) % children.length;\n } else if (event.key === 'ArrowRight') {\n newIndex = (newIndex + 1) % children.length;\n }\n\n // remove focus from the old element\n if (focusedIndex !== null) {\n const prevElement = children[focusedIndex] as HTMLDivElement;\n prevElement.tabIndex = -1;\n }\n\n if (newIndex < 0) {\n newIndex = children.length - 1;\n } else if (newIndex > children.length - 1) {\n newIndex = 0;\n }\n\n setFocusedIndex(newIndex);\n\n // Set focus to the element\n const newElement = children[newIndex] as HTMLDivElement;\n newElement.tabIndex = 0;\n\n const containerRect = container.getBoundingClientRect();\n const elementRect = newElement.getBoundingClientRect();\n\n if (elementRect.bottom > containerRect.bottom) {\n container.scrollTop += elementRect.bottom - containerRect.bottom;\n } else if (elementRect.top < containerRect.top) {\n container.scrollTop -= containerRect.top - elementRect.top;\n }\n }\n } else if (\n event.key === 'Enter' &&\n !shouldPreventEmojiControlsRef.current &&\n focusedIndex !== null\n ) {\n if (event.ctrlKey) {\n setShouldShowSkinTonePopup(true);\n\n return;\n }\n\n const { dataset } = emojiRef.current?.children[focusedIndex] as HTMLDivElement;\n\n const { emoji, name, skinToneSupport } = dataset;\n\n if (!emoji || !name || !skinToneSupport) {\n return;\n }\n\n handleSelect({ emoji, name, skin_tone_support: skinToneSupport === 'true' });\n }\n };\n\n document.addEventListener('keydown', handleKeyDown);\n\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n };\n }, [focusedIndex, handleSelect, shouldPreventListener]);\n\n const handleRightClick = useCallback((index: number) => {\n setFocusedIndex(index);\n }, []);\n\n const emojis = useMemo(() => {\n if (searchString.trim() !== '') {\n const lowerSearchString = searchString.toLowerCase();\n\n const searchResults: JSX.Element[] = [];\n\n Object.entries(emojiList).forEach(([emoji, { name, skin_tone_support }], index) => {\n const keywords = (emojiLib as { [key: string]: string[] })[emoji] as\n | string[]\n | undefined;\n\n const germanKeywords = (germanEmojiLib as { [key: string]: string[] })[emoji] as\n | string[]\n | undefined;\n\n if (\n name.includes(lowerSearchString) ||\n keywords?.some((keyword) => keyword.includes(lowerSearchString)) ||\n germanKeywords?.some((keyword) => keyword.includes(lowerSearchString))\n ) {\n searchResults.push(\n <Emoji\n shouldShowSkinTonePopup={\n index === focusedIndex &&\n skin_tone_support &&\n shouldShowSkinTonePopup\n }\n isSelected={index === focusedIndex}\n emoji={emoji}\n index={index}\n onRightClick={handleRightClick}\n isSkinToneSupported={skin_tone_support}\n key={name}\n name={name}\n onPopupVisibilityChange={handlePopupVisibilityChange}\n onSelect={(e) =>\n handleSelect({ emoji: e, name, skin_tone_support, index })\n }\n emojiList={emojiList}\n />,\n );\n }\n });\n\n return searchResults;\n }\n\n if (selectedCategory === 'history') {\n return historyEmojis.map(({ emoji, name, skin_tone_support }, index) => (\n <Emoji\n isSelected={index === focusedIndex}\n shouldShowSkinTonePopup={\n index === focusedIndex && skin_tone_support && shouldShowSkinTonePopup\n }\n emoji={emoji}\n name={name}\n key={name}\n index={index}\n onRightClick={handleRightClick}\n onPopupVisibilityChange={handlePopupVisibilityChange}\n onSelect={(e) => handleSelect({ emoji: e, name, skin_tone_support, index })}\n isSkinToneSupported={false}\n emojiList={emojiList}\n />\n ));\n }\n\n return emojiCategories\n .find(({ slug }) => slug === selectedCategory)\n ?.emojis.map(({ emoji, name, skin_tone_support }, index) => (\n <Emoji\n isSelected={index === focusedIndex}\n shouldShowSkinTonePopup={\n index === focusedIndex && skin_tone_support && shouldShowSkinTonePopup\n }\n emoji={emoji}\n name={name}\n index={index}\n onRightClick={handleRightClick}\n isSkinToneSupported={skin_tone_support}\n key={name}\n onPopupVisibilityChange={handlePopupVisibilityChange}\n onSelect={(e) => handleSelect({ emoji: e, name, skin_tone_support, index })}\n emojiList={emojiList}\n />\n ));\n }, [\n searchString,\n selectedCategory,\n focusedIndex,\n shouldShowSkinTonePopup,\n handleRightClick,\n handlePopupVisibilityChange,\n handleSelect,\n historyEmojis,\n ]);\n\n const shouldShowNoContentInfo = !emojis || emojis.length === 0;\n\n return (\n <StyledEmojiPickerEmojis\n $browser={browser?.name as BrowserName}\n $shouldPreventScroll={shouldPreventScroll}\n $shouldShowNoContentInfo={shouldShowNoContentInfo}\n ref={combinedRef}\n >\n {emojis}\n {shouldShowNoContentInfo && (\n <StyledEmojiPickerEmojisNoContentInfo>\n Hier werden die zuletzt verwendeten Emojis angezeigt, die über diese Auswahl\n gewählt wurden.\n </StyledEmojiPickerEmojisNoContentInfo>\n )}\n </StyledEmojiPickerEmojis>\n );\n};\n\nEmojiPickerEmojis.displayName = 'EmojiPickerEmojis';\n\nexport default EmojiPickerEmojis;\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.StyledEmojiPickerEmojisNoContentInfo = exports.StyledEmojiPickerEmojis = void 0;
7
+ var _styledComponents = _interopRequireWildcard(require("styled-components"));
8
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
9
+ const StyledEmojiPickerEmojis = exports.StyledEmojiPickerEmojis = _styledComponents.default.div`
10
+ display: ${({
11
+ $shouldShowNoContentInfo
12
+ }) => $shouldShowNoContentInfo ? 'flex' : 'grid'};
13
+ flex: 1 1 auto;
14
+ grid-template-columns: repeat(auto-fill, minmax(48px, 1fr));
15
+ grid-template-rows: min-content;
16
+ overflow-y: ${({
17
+ $shouldPreventScroll
18
+ }) => $shouldPreventScroll ? 'hidden' : 'scroll'};
19
+ padding: 5px 0 5px 5px;
20
+ position: relative;
21
+ width: 100%;
22
+
23
+ ${({
24
+ $shouldShowNoContentInfo
25
+ }) => $shouldShowNoContentInfo && (0, _styledComponents.css)`
26
+ align-items: center;
27
+ `}
28
+
29
+ ${({
30
+ $shouldPreventScroll
31
+ }) => $shouldPreventScroll && (0, _styledComponents.css)`
32
+ padding-right: 5px;
33
+ `} // Styles for custom scrollbar
34
+ ${({
35
+ $browser,
36
+ theme
37
+ }) => $browser === 'firefox' ? (0, _styledComponents.css)`
38
+ scrollbar-color: rgba(${theme['text-rgb']}, 0.15) transparent;
39
+ scrollbar-width: thin;
40
+ ` : (0, _styledComponents.css)`
41
+ &::-webkit-scrollbar {
42
+ width: 5px;
43
+ }
44
+
45
+ &::-webkit-scrollbar-track {
46
+ background-color: transparent;
47
+ }
48
+
49
+ &::-webkit-scrollbar-button {
50
+ background-color: transparent;
51
+ height: 5px;
52
+ }
53
+
54
+ &::-webkit-scrollbar-thumb {
55
+ background-color: rgba(${theme['text-rgb']}, 0.15);
56
+ border-radius: 20px;
57
+ }
58
+ `}
59
+ `;
60
+ const StyledEmojiPickerEmojisNoContentInfo = exports.StyledEmojiPickerEmojisNoContentInfo = _styledComponents.default.div`
61
+ font-size: 85%;
62
+ opacity: 0.85;
63
+ padding: 0 12.5%;
64
+ text-align: center;
65
+ `;
66
+ //# sourceMappingURL=EmojiPickerEmojis.styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmojiPickerEmojis.styles.js","names":["_styledComponents","_interopRequireWildcard","require","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","StyledEmojiPickerEmojis","exports","styled","div","$shouldShowNoContentInfo","$shouldPreventScroll","css","$browser","theme","StyledEmojiPickerEmojisNoContentInfo"],"sources":["../../../../../src/components/emoji-picker/emoji-picker-emojis/EmojiPickerEmojis.styles.ts"],"sourcesContent":["import type { BrowserName, WithTheme } from '@chayns-components/core';\nimport styled, { css } from 'styled-components';\n\ntype StyledEmojiPickerEmojisProps = WithTheme<{\n $shouldPreventScroll: boolean;\n $shouldShowNoContentInfo: boolean;\n $browser: BrowserName;\n}>;\n\nexport const StyledEmojiPickerEmojis = styled.div<StyledEmojiPickerEmojisProps>`\n display: ${({ $shouldShowNoContentInfo }) => ($shouldShowNoContentInfo ? 'flex' : 'grid')};\n flex: 1 1 auto;\n grid-template-columns: repeat(auto-fill, minmax(48px, 1fr));\n grid-template-rows: min-content;\n overflow-y: ${({ $shouldPreventScroll }) => ($shouldPreventScroll ? 'hidden' : 'scroll')};\n padding: 5px 0 5px 5px;\n position: relative;\n width: 100%;\n\n ${({ $shouldShowNoContentInfo }) =>\n $shouldShowNoContentInfo &&\n css`\n align-items: center;\n `}\n\n ${({ $shouldPreventScroll }) =>\n $shouldPreventScroll &&\n css`\n padding-right: 5px;\n `} // Styles for custom scrollbar\n ${({ $browser, theme }: StyledEmojiPickerEmojisProps) =>\n $browser === 'firefox'\n ? css`\n scrollbar-color: rgba(${theme['text-rgb']}, 0.15) transparent;\n scrollbar-width: thin;\n `\n : css`\n &::-webkit-scrollbar {\n width: 5px;\n }\n\n &::-webkit-scrollbar-track {\n background-color: transparent;\n }\n\n &::-webkit-scrollbar-button {\n background-color: transparent;\n height: 5px;\n }\n\n &::-webkit-scrollbar-thumb {\n background-color: rgba(${theme['text-rgb']}, 0.15);\n border-radius: 20px;\n }\n `}\n`;\n\nexport const StyledEmojiPickerEmojisNoContentInfo = styled.div`\n font-size: 85%;\n opacity: 0.85;\n padding: 0 12.5%;\n text-align: center;\n`;\n"],"mappings":";;;;;;AACA,IAAAA,iBAAA,GAAAC,uBAAA,CAAAC,OAAA;AAAgD,SAAAD,wBAAAE,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAJ,uBAAA,YAAAA,CAAAE,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAQzC,MAAMkB,uBAAuB,GAAAC,OAAA,CAAAD,uBAAA,GAAGE,yBAAM,CAACC,GAAiC;AAC/E,eAAe,CAAC;EAAEC;AAAyB,CAAC,KAAMA,wBAAwB,GAAG,MAAM,GAAG,MAAO;AAC7F;AACA;AACA;AACA,kBAAkB,CAAC;EAAEC;AAAqB,CAAC,KAAMA,oBAAoB,GAAG,QAAQ,GAAG,QAAS;AAC5F;AACA;AACA;AACA;AACA,MAAM,CAAC;EAAED;AAAyB,CAAC,KAC3BA,wBAAwB,IACxB,IAAAE,qBAAG;AACX;AACA,SAAS;AACT;AACA,MAAM,CAAC;EAAED;AAAqB,CAAC,KACvBA,oBAAoB,IACpB,IAAAC,qBAAG;AACX;AACA,SAAS;AACT,MAAM,CAAC;EAAEC,QAAQ;EAAEC;AAAoC,CAAC,KAChDD,QAAQ,KAAK,SAAS,GAChB,IAAAD,qBAAG;AACjB,0CAA0CE,KAAK,CAAC,UAAU,CAAC;AAC3D;AACA,eAAe,GACD,IAAAF,qBAAG;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+CE,KAAK,CAAC,UAAU,CAAC;AAChE;AACA;AACA,eAAe;AACf,CAAC;AAEM,MAAMC,oCAAoC,GAAAR,OAAA,CAAAQ,oCAAA,GAAGP,yBAAM,CAACC,GAAG;AAC9D;AACA;AACA;AACA;AACA,CAAC","ignoreList":[]}
@@ -4,44 +4,48 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
- var _framerMotion = require("framer-motion");
8
- var _react = _interopRequireWildcard(require("react"));
7
+ var _react = require("motion/react");
8
+ var _react2 = _interopRequireWildcard(require("react"));
9
9
  var _alignment = require("../../../../constants/alignment");
10
10
  var _Emoji = require("./Emoji.styles");
11
11
  var _SkinTonePopup = _interopRequireDefault(require("./skin-tone-popup/SkinTonePopup"));
12
12
  var _SkinTonePopup2 = require("./skin-tone-popup/SkinTonePopup.styles");
13
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
15
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
16
- const Emoji = _ref => {
17
- let {
18
- emoji,
19
- isSkinToneSupported,
20
- onPopupVisibilityChange,
21
- onSelect
22
- } = _ref;
23
- const [shouldShowPopup, setShouldShowPopup] = (0, _react.useState)(false);
24
- const [skinTonePopupAnchorAlignment, setSkinTonePopupAnchorAlignment] = (0, _react.useState)(_alignment.AnchorAlignment.Top);
25
- const [skinTonePopupAnchorOffset, setSkinTonePopupAnchorOffset] = (0, _react.useState)(0);
26
- const [skinTonePopupOverlayPosition, setSkinTonePopupOverlayPosition] = (0, _react.useState)({
13
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
14
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
15
+ const Emoji = ({
16
+ emoji,
17
+ isSelected,
18
+ name,
19
+ isSkinToneSupported,
20
+ onPopupVisibilityChange,
21
+ onSelect,
22
+ shouldShowSkinTonePopup,
23
+ onRightClick,
24
+ index,
25
+ emojiList
26
+ }) => {
27
+ const [shouldShowPopup, setShouldShowPopup] = (0, _react2.useState)(false);
28
+ const [skinTonePopupAnchorAlignment, setSkinTonePopupAnchorAlignment] = (0, _react2.useState)(_alignment.AnchorAlignment.Top);
29
+ const [skinTonePopupAnchorOffset, setSkinTonePopupAnchorOffset] = (0, _react2.useState)(0);
30
+ const [skinTonePopupOverlayPosition, setSkinTonePopupOverlayPosition] = (0, _react2.useState)({
27
31
  top: 0
28
32
  });
29
- const [skinTonePopupPosition, setSkinTonePopupPosition] = (0, _react.useState)({
33
+ const [skinTonePopupPosition, setSkinTonePopupPosition] = (0, _react2.useState)({
30
34
  left: 0,
31
35
  top: 0
32
36
  });
33
- const handleClick = (0, _react.useCallback)(() => {
37
+ const emojiRef = (0, _react2.useRef)(null);
38
+ const handleClick = (0, _react2.useCallback)(() => {
34
39
  onSelect(emoji);
35
40
  }, [emoji, onSelect]);
36
- const handleContextMenu = (0, _react.useCallback)(event => {
37
- event.preventDefault();
38
- event.stopPropagation();
41
+ const calculatePopupPosition = (0, _react2.useCallback)(() => {
42
+ if (!emojiRef.current) {
43
+ return;
44
+ }
45
+ const element = emojiRef.current;
39
46
  const {
40
- currentTarget: element,
41
- currentTarget: {
42
- parentElement
43
- }
44
- } = event;
47
+ parentElement
48
+ } = emojiRef.current;
45
49
  if (parentElement) {
46
50
  const {
47
51
  height: elementHeight,
@@ -89,17 +93,42 @@ const Emoji = _ref => {
89
93
  }
90
94
  }
91
95
  }, [isSkinToneSupported]);
92
- const handleHidePopup = (0, _react.useCallback)(() => setShouldShowPopup(false), []);
93
- (0, _react.useEffect)(() => {
96
+ const handleContextMenu = (0, _react2.useCallback)(event => {
97
+ event.preventDefault();
98
+ event.stopPropagation();
99
+ if (isSkinToneSupported) {
100
+ onRightClick(index);
101
+ calculatePopupPosition();
102
+ }
103
+ }, [calculatePopupPosition, index, isSkinToneSupported, onRightClick]);
104
+ (0, _react2.useEffect)(() => {
105
+ if (emojiRef.current && shouldShowSkinTonePopup && skinTonePopupPosition.top === 0 && skinTonePopupPosition.left === 0) {
106
+ calculatePopupPosition();
107
+ }
108
+ }, [calculatePopupPosition, index, isSkinToneSupported, shouldShowSkinTonePopup, skinTonePopupPosition]);
109
+ (0, _react2.useEffect)(() => {
110
+ if (shouldShowSkinTonePopup) {
111
+ setShouldShowPopup(shouldShowSkinTonePopup);
112
+ }
113
+ }, [shouldShowSkinTonePopup]);
114
+ const handleHidePopup = (0, _react2.useCallback)(() => {
115
+ setShouldShowPopup(false);
116
+ }, []);
117
+ (0, _react2.useEffect)(() => {
94
118
  onPopupVisibilityChange(shouldShowPopup);
95
119
  }, [onPopupVisibilityChange, shouldShowPopup]);
96
- return /*#__PURE__*/_react.default.createElement(_Emoji.StyledEmoji, {
120
+ return /*#__PURE__*/_react2.default.createElement(_Emoji.StyledEmoji, {
121
+ ref: emojiRef,
122
+ $isSelected: isSelected,
123
+ "data-emoji": emoji,
124
+ "data-name": name,
125
+ "data-skin-tone-support": isSkinToneSupported,
97
126
  className: "prevent-lose-focus",
98
127
  onClick: handleClick,
99
128
  onContextMenu: handleContextMenu
100
- }, emoji, /*#__PURE__*/_react.default.createElement(_framerMotion.AnimatePresence, {
129
+ }, emoji, /*#__PURE__*/_react2.default.createElement(_react.AnimatePresence, {
101
130
  initial: false
102
- }, shouldShowPopup && /*#__PURE__*/_react.default.createElement(_SkinTonePopup.default, {
131
+ }, shouldShowPopup && /*#__PURE__*/_react2.default.createElement(_SkinTonePopup.default, {
103
132
  anchorAlignment: skinTonePopupAnchorAlignment,
104
133
  anchorOffset: skinTonePopupAnchorOffset,
105
134
  emoji: emoji,
@@ -107,10 +136,10 @@ const Emoji = _ref => {
107
136
  onHidePopup: handleHidePopup,
108
137
  onSelect: onSelect,
109
138
  overlayPosition: skinTonePopupOverlayPosition,
110
- position: skinTonePopupPosition
139
+ position: skinTonePopupPosition,
140
+ emojiList: emojiList
111
141
  })));
112
142
  };
113
143
  Emoji.displayName = 'Emoji';
114
- var _default = Emoji;
115
- exports.default = _default;
144
+ var _default = exports.default = Emoji;
116
145
  //# sourceMappingURL=Emoji.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Emoji.js","names":["_react","require","_react2","_interopRequireWildcard","_alignment","_Emoji","_SkinTonePopup","_interopRequireDefault","_SkinTonePopup2","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","Emoji","emoji","isSelected","name","isSkinToneSupported","onPopupVisibilityChange","onSelect","shouldShowSkinTonePopup","onRightClick","index","emojiList","shouldShowPopup","setShouldShowPopup","useState","skinTonePopupAnchorAlignment","setSkinTonePopupAnchorAlignment","AnchorAlignment","Top","skinTonePopupAnchorOffset","setSkinTonePopupAnchorOffset","skinTonePopupOverlayPosition","setSkinTonePopupOverlayPosition","top","skinTonePopupPosition","setSkinTonePopupPosition","left","emojiRef","useRef","handleClick","useCallback","calculatePopupPosition","current","element","parentElement","height","elementHeight","elementLeft","elementTop","width","elementWidth","getBoundingClientRect","parentHeight","parentLeft","parentTop","parentWidth","scrollTop","anchorAlignment","anchorOffset","skinTonePopupContentSize","maxLeft","minLeft","Bottom","handleContextMenu","event","preventDefault","stopPropagation","useEffect","handleHidePopup","createElement","StyledEmoji","ref","$isSelected","className","onClick","onContextMenu","AnimatePresence","initial","key","onHidePopup","overlayPosition","position","displayName","_default","exports"],"sources":["../../../../../../src/components/emoji-picker/emoji-picker-emojis/emoji/Emoji.tsx"],"sourcesContent":["import { AnimatePresence } from 'motion/react';\nimport React, { FC, MouseEvent, useCallback, useEffect, useRef, useState } from 'react';\nimport { AnchorAlignment } from '../../../../constants/alignment';\nimport { StyledEmoji } from './Emoji.styles';\nimport SkinTonePopup, { SkinTonePopupProps } from './skin-tone-popup/SkinTonePopup';\nimport { skinTonePopupContentSize } from './skin-tone-popup/SkinTonePopup.styles';\n\nexport type EmojiProps = {\n emoji: string;\n isSelected: boolean;\n name: string;\n index: number;\n isSkinToneSupported: boolean;\n onPopupVisibilityChange: (isVisible: boolean) => void;\n onSelect: (emoji: string) => void;\n onRightClick: (newIndex: number) => void;\n shouldShowSkinTonePopup: boolean;\n emojiList: { [x: string]: { skin_tone_support: any } };\n};\n\nconst Emoji: FC<EmojiProps> = ({\n emoji,\n isSelected,\n name,\n isSkinToneSupported,\n onPopupVisibilityChange,\n onSelect,\n shouldShowSkinTonePopup,\n onRightClick,\n index,\n emojiList,\n}) => {\n const [shouldShowPopup, setShouldShowPopup] = useState(false);\n const [skinTonePopupAnchorAlignment, setSkinTonePopupAnchorAlignment] = useState(\n AnchorAlignment.Top,\n );\n const [skinTonePopupAnchorOffset, setSkinTonePopupAnchorOffset] = useState(0);\n const [skinTonePopupOverlayPosition, setSkinTonePopupOverlayPosition] = useState<\n SkinTonePopupProps['overlayPosition']\n >({ top: 0 });\n const [skinTonePopupPosition, setSkinTonePopupPosition] = useState<\n SkinTonePopupProps['position']\n >({ left: 0, top: 0 });\n\n const emojiRef = useRef<HTMLDivElement>(null);\n\n const handleClick = useCallback(() => {\n onSelect(emoji);\n }, [emoji, onSelect]);\n\n const calculatePopupPosition = useCallback(() => {\n if (!emojiRef.current) {\n return;\n }\n\n const element = emojiRef.current;\n const { parentElement } = emojiRef.current;\n\n if (parentElement) {\n const {\n height: elementHeight,\n left: elementLeft,\n top: elementTop,\n width: elementWidth,\n } = element.getBoundingClientRect();\n\n const {\n height: parentHeight,\n left: parentLeft,\n top: parentTop,\n width: parentWidth,\n } = parentElement.getBoundingClientRect();\n\n const { scrollTop } = parentElement;\n\n let anchorAlignment = AnchorAlignment.Top;\n let anchorOffset = 0;\n\n let left =\n elementLeft - parentLeft - skinTonePopupContentSize.width / 2 + elementWidth / 2;\n\n let top = elementTop - parentTop + elementHeight + scrollTop;\n\n const maxLeft = parentWidth - skinTonePopupContentSize.width - 12;\n const minLeft = 12;\n\n if (left < minLeft) {\n anchorOffset = left - minLeft;\n left = minLeft;\n } else if (left > maxLeft) {\n anchorOffset = left - maxLeft;\n left = maxLeft;\n }\n\n if (top + skinTonePopupContentSize.height > parentHeight + scrollTop) {\n anchorAlignment = AnchorAlignment.Bottom;\n top -= elementHeight + skinTonePopupContentSize.height;\n }\n\n if (isSkinToneSupported) {\n setSkinTonePopupAnchorAlignment(anchorAlignment);\n setSkinTonePopupAnchorOffset(anchorOffset);\n setSkinTonePopupPosition({ left, top });\n setSkinTonePopupOverlayPosition({ top: scrollTop });\n setShouldShowPopup(true);\n }\n }\n }, [isSkinToneSupported]);\n\n const handleContextMenu = useCallback(\n (event: MouseEvent) => {\n event.preventDefault();\n event.stopPropagation();\n\n if (isSkinToneSupported) {\n onRightClick(index);\n calculatePopupPosition();\n }\n },\n [calculatePopupPosition, index, isSkinToneSupported, onRightClick],\n );\n\n useEffect(() => {\n if (\n emojiRef.current &&\n shouldShowSkinTonePopup &&\n skinTonePopupPosition.top === 0 &&\n skinTonePopupPosition.left === 0\n ) {\n calculatePopupPosition();\n }\n }, [\n calculatePopupPosition,\n index,\n isSkinToneSupported,\n shouldShowSkinTonePopup,\n skinTonePopupPosition,\n ]);\n\n useEffect(() => {\n if (shouldShowSkinTonePopup) {\n setShouldShowPopup(shouldShowSkinTonePopup);\n }\n }, [shouldShowSkinTonePopup]);\n\n const handleHidePopup = useCallback(() => {\n setShouldShowPopup(false);\n }, []);\n\n useEffect(() => {\n onPopupVisibilityChange(shouldShowPopup);\n }, [onPopupVisibilityChange, shouldShowPopup]);\n\n return (\n <StyledEmoji\n ref={emojiRef}\n $isSelected={isSelected}\n data-emoji={emoji}\n data-name={name}\n data-skin-tone-support={isSkinToneSupported}\n className=\"prevent-lose-focus\"\n onClick={handleClick}\n onContextMenu={handleContextMenu}\n >\n {emoji}\n <AnimatePresence initial={false}>\n {shouldShowPopup && (\n <SkinTonePopup\n anchorAlignment={skinTonePopupAnchorAlignment}\n anchorOffset={skinTonePopupAnchorOffset}\n emoji={emoji}\n key={emoji}\n onHidePopup={handleHidePopup}\n onSelect={onSelect}\n overlayPosition={skinTonePopupOverlayPosition}\n position={skinTonePopupPosition}\n emojiList={emojiList}\n />\n )}\n </AnimatePresence>\n </StyledEmoji>\n );\n};\n\nEmoji.displayName = 'Emoji';\n\nexport default Emoji;\n"],"mappings":"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","ignoreList":[]}