@chayns-components/emoji-input 5.5.34 → 5.5.37
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.
- package/lib/cjs/components/emoji-picker/EmojiPicker.js +3 -2
- package/lib/cjs/components/emoji-picker/EmojiPicker.js.map +1 -1
- package/lib/cjs/components/emoji-picker-popup/EmojiPickerPopup.js +5 -1
- package/lib/cjs/components/emoji-picker-popup/EmojiPickerPopup.js.map +1 -1
- package/lib/cjs/utils/emoji.test.js +18 -0
- package/lib/cjs/utils/emoji.test.js.map +1 -0
- package/lib/cjs/utils/emojiShortList.js +1 -1
- package/lib/cjs/utils/emojiShortList.js.map +1 -1
- package/lib/esm/components/emoji-picker/EmojiPicker.js +4 -3
- package/lib/esm/components/emoji-picker/EmojiPicker.js.map +1 -1
- package/lib/esm/components/emoji-picker-popup/EmojiPickerPopup.js +6 -2
- package/lib/esm/components/emoji-picker-popup/EmojiPickerPopup.js.map +1 -1
- package/lib/esm/utils/emoji.test.js +16 -0
- package/lib/esm/utils/emoji.test.js.map +1 -0
- package/lib/esm/utils/emojiShortList.js +1 -1
- package/lib/esm/utils/emojiShortList.js.map +1 -1
- package/lib/types/utils/emoji.test.d.ts +1 -0
- package/package.json +3 -3
|
@@ -28,8 +28,9 @@ const EmojiPicker = ({
|
|
|
28
28
|
const handleSearchChange = (0, _react.useCallback)(event => {
|
|
29
29
|
setSearchString(event.target.value);
|
|
30
30
|
}, []);
|
|
31
|
-
return /*#__PURE__*/_react.default.createElement(_EmojiPicker.StyledEmojiPicker, null, /*#__PURE__*/_react.default.createElement(_textstrings.
|
|
32
|
-
libraries: "@chayns-component-emoji-input"
|
|
31
|
+
return /*#__PURE__*/_react.default.createElement(_EmojiPicker.StyledEmojiPicker, null, /*#__PURE__*/_react.default.createElement(_textstrings.TextStringProviderSSR, {
|
|
32
|
+
libraries: "@chayns-component-emoji-input",
|
|
33
|
+
id: "emoji-picker"
|
|
33
34
|
}, /*#__PURE__*/_react.default.createElement(_core.Input, {
|
|
34
35
|
onChange: handleSearchChange,
|
|
35
36
|
placeholder: /*#__PURE__*/_react.default.createElement(_textstrings.Translation, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EmojiPicker.js","names":["_core","require","_react","_interopRequireWildcard","_EmojiPickerCategories","_interopRequireDefault","_EmojiPickerEmojis","_EmojiPicker","_textStrings","_textstrings","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","FirstEmojiSlug","EmojiPicker","accessToken","onSelect","personId","searchString","setSearchString","useState","selectedCategory","setSelectedCategory","handleCategorySelect","useCallback","category","handleSearchChange","event","target","value","createElement","StyledEmojiPicker","
|
|
1
|
+
{"version":3,"file":"EmojiPicker.js","names":["_core","require","_react","_interopRequireWildcard","_EmojiPickerCategories","_interopRequireDefault","_EmojiPickerEmojis","_EmojiPicker","_textStrings","_textstrings","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","FirstEmojiSlug","EmojiPicker","accessToken","onSelect","personId","searchString","setSearchString","useState","selectedCategory","setSelectedCategory","handleCategorySelect","useCallback","category","handleSearchChange","event","target","value","createElement","StyledEmojiPicker","TextStringProviderSSR","libraries","id","Input","onChange","placeholder","Translation","textString","textStrings","components","emojiPicker","input","displayName","_default","exports"],"sources":["../../../../src/components/emoji-picker/EmojiPicker.tsx"],"sourcesContent":["import { Input } from '@chayns-components/core';\nimport React, { ChangeEvent, FC, useCallback, useState } from 'react';\nimport type { Category } from '../../types/category';\nimport EmojiPickerCategories from './emoji-picker-categories/EmojiPickerCategories';\nimport EmojiPickerEmojis from './emoji-picker-emojis/EmojiPickerEmojis';\nimport { StyledEmojiPicker } from './EmojiPicker.styles';\nimport textStrings from '../../constants/textStrings';\nimport { Translation, TextStringProviderSSR } from '@chayns/textstrings';\n\nexport type EmojiPickerProps = {\n /**\n * Access token of the logged-in user. Is needed to load and save the history of the emojis.\n */\n accessToken?: string;\n /**\n * Function executed when an emoji is selected in the popup\n * @param {string} emoji - Emoji that was selected\n */\n onSelect: (emoji: string, shouldRestoreInputFocus?: boolean) => void;\n /**\n * Person id of the logged-in user. Is needed to load and save the history of the emojis.\n */\n personId?: string;\n};\n\nconst FirstEmojiSlug = 'smileys_emotion';\n\nconst EmojiPicker: FC<EmojiPickerProps> = ({ accessToken, onSelect, personId }) => {\n const [searchString, setSearchString] = useState('');\n const [selectedCategory, setSelectedCategory] = useState(FirstEmojiSlug as Category);\n\n const handleCategorySelect = useCallback((category: Category) => {\n setSearchString('');\n setSelectedCategory(category);\n }, []);\n\n const handleSearchChange = useCallback((event: ChangeEvent<HTMLInputElement>) => {\n setSearchString(event.target.value);\n }, []);\n\n return (\n <StyledEmojiPicker>\n <TextStringProviderSSR libraries=\"@chayns-component-emoji-input\" id=\"emoji-picker\">\n <Input\n onChange={handleSearchChange}\n placeholder={\n <Translation\n textString={textStrings.components.emojiPicker.input.placeholder}\n />\n }\n value={searchString}\n />\n </TextStringProviderSSR>\n <EmojiPickerEmojis\n accessToken={accessToken}\n onSelect={onSelect}\n personId={personId}\n searchString={searchString}\n selectedCategory={selectedCategory}\n />\n <EmojiPickerCategories\n onSelect={handleCategorySelect}\n searchString={searchString}\n selectedCategory={selectedCategory}\n />\n </StyledEmojiPicker>\n );\n};\n\nEmojiPicker.displayName = 'EmojiPicker';\n\nexport default EmojiPicker;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -12,7 +12,7 @@ var _textstrings = require("@chayns/textstrings");
|
|
|
12
12
|
var _textStrings = _interopRequireDefault(require("../../constants/textStrings"));
|
|
13
13
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
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
|
|
15
|
+
const EmojiPickerPopupContent = ({
|
|
16
16
|
accessToken,
|
|
17
17
|
container,
|
|
18
18
|
isDisabled,
|
|
@@ -93,6 +93,10 @@ const EmojiPickerPopup = ({
|
|
|
93
93
|
size: 18
|
|
94
94
|
}))));
|
|
95
95
|
};
|
|
96
|
+
const EmojiPickerPopup = props => /*#__PURE__*/_react.default.createElement(_textstrings.TextStringProviderSSR, {
|
|
97
|
+
libraries: "@chayns-component-emoji-input",
|
|
98
|
+
id: "emoji-picker-popup"
|
|
99
|
+
}, /*#__PURE__*/_react.default.createElement(EmojiPickerPopupContent, props));
|
|
96
100
|
EmojiPickerPopup.displayName = 'EmojiPickerPopup';
|
|
97
101
|
var _default = exports.default = EmojiPickerPopup;
|
|
98
102
|
//# sourceMappingURL=EmojiPickerPopup.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EmojiPickerPopup.js","names":["_core","require","_react","_interopRequireWildcard","_EmojiPicker","_interopRequireDefault","_EmojiPickerPopup","_textstrings","_textStrings","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","EmojiPickerPopup","accessToken","container","isDisabled","onPopupVisibilityChange","onSelect","onSelectWithKeyboard","personId","shouldEnableKeyboardHighlighting","useTranslation","popupRef","useRef","triggerRef","shouldShowKeyboardHighlighting","useKeyboardFocusHighlighting","useFocusRingPortal","isEnabled","shape","padding","handleKeyPress","useCallback","event","key","shiftKey","_popupRef$current","current","hide","handleTriggerKeyDown","_popupRef$current2","preventDefault","show","handleSelect","emoji","shouldRestoreInputFocus","useEffect","document","addEventListener","removeEventListener","createElement","StyledEmojiPickerPopup","Popup","ref","onHide","undefined","onShow","content","AreaProvider","shouldChangeColor","textStrings","emojiPickerPopup","accessibility","open","className","disabled","onClick","stopPropagation","onKeyDown","tabIndex","type","Icon","icons","size","displayName","_default","exports"],"sources":["../../../../src/components/emoji-picker-popup/EmojiPickerPopup.tsx"],"sourcesContent":["import {\n AreaProvider,\n Icon,\n Popup,\n PopupAlignment,\n useFocusRingPortal,\n useKeyboardFocusHighlighting,\n type PopupRef,\n} from '@chayns-components/core';\nimport React, { FC, KeyboardEventHandler, useCallback, useEffect, useRef } from 'react';\nimport EmojiPicker from '../emoji-picker/EmojiPicker';\nimport { StyledEmojiPickerPopup } from './EmojiPickerPopup.styles';\nimport { useTranslation } from '@chayns/textstrings';\nimport textStrings from '../../constants/textStrings';\n\nexport type EmojiPickerPopupProps = {\n /**\n * Access token of the logged-in user. Is needed to load and save the history of the emojis.\n */\n accessToken?: string;\n /**\n * The DOM element that should receive the popup portal.\n */\n container?: Element;\n /**\n * Whether the picker trigger is disabled.\n */\n isDisabled?: boolean;\n /**\n * Function that is executed when the visibility of the popup changes.\n * @param {boolean} isVisible - Whether the popup is visible or not\n */\n onPopupVisibilityChange?: (isVisible: boolean) => void;\n /**\n * Person id of the logged-in user. Is needed to load and save the history of the emojis.\n */\n personId?: string;\n /**\n * Function executed when an emoji is selected in the popup\n * @param {string} emoji - Emoji that was selected\n */\n onSelect: (emoji: string) => void;\n /**\n * Enables keyboard-only focus highlighting for the picker trigger.\n */\n shouldEnableKeyboardHighlighting?: boolean;\n /**\n * Receives focus after an emoji is selected with the keyboard.\n */\n onSelectWithKeyboard?: (emoji: string) => void;\n};\n\nconst EmojiPickerPopup: FC<EmojiPickerPopupProps> = ({\n accessToken,\n container,\n isDisabled,\n onPopupVisibilityChange,\n onSelect,\n onSelectWithKeyboard,\n personId,\n shouldEnableKeyboardHighlighting,\n}) => {\n const { t } = useTranslation();\n const popupRef = useRef<PopupRef>(null);\n const triggerRef = useRef<HTMLButtonElement>(null);\n const shouldShowKeyboardHighlighting = useKeyboardFocusHighlighting(\n isDisabled ? false : shouldEnableKeyboardHighlighting,\n );\n\n useFocusRingPortal(triggerRef, {\n isEnabled: shouldShowKeyboardHighlighting,\n shape: 'circle',\n padding: 4,\n });\n\n const handleKeyPress = useCallback((event: KeyboardEvent) => {\n if (event.key === 'Escape' && !event.shiftKey) {\n popupRef.current?.hide();\n }\n }, []);\n\n const handleTriggerKeyDown = useCallback<KeyboardEventHandler<HTMLButtonElement>>(\n (event) => {\n if (isDisabled) {\n return;\n }\n\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n popupRef.current?.show();\n }\n },\n [isDisabled],\n );\n\n const handleSelect = useCallback(\n (emoji: string, shouldRestoreInputFocus?: boolean) => {\n onSelect(emoji);\n\n if (shouldRestoreInputFocus) {\n onSelectWithKeyboard?.(emoji);\n }\n },\n [onSelect, onSelectWithKeyboard],\n );\n\n useEffect(() => {\n document.addEventListener('keydown', handleKeyPress);\n\n return () => {\n document.removeEventListener('keydown', handleKeyPress);\n };\n }, [handleKeyPress]);\n\n return (\n <StyledEmojiPickerPopup aria-hidden={isDisabled}>\n <Popup\n container={container}\n ref={popupRef}\n onHide={() =>\n typeof onPopupVisibilityChange === 'function'\n ? onPopupVisibilityChange(false)\n : undefined\n }\n onShow={() =>\n typeof onPopupVisibilityChange === 'function'\n ? onPopupVisibilityChange(true)\n : undefined\n }\n content={\n <AreaProvider shouldChangeColor={false}>\n <EmojiPicker\n accessToken={accessToken}\n onSelect={handleSelect}\n personId={personId}\n />\n </AreaProvider>\n }\n >\n <button\n aria-label={t(textStrings.emojiPickerPopup.accessibility.open)}\n className=\"prevent-lose-focus\"\n disabled={isDisabled}\n onClick={(event) => {\n if (isDisabled) {\n event.stopPropagation();\n }\n }}\n onKeyDown={handleTriggerKeyDown}\n ref={triggerRef}\n tabIndex={isDisabled ? -1 : 0}\n type=\"button\"\n >\n <Icon icons={['far fa-smile']} size={18} />\n </button>\n </Popup>\n </StyledEmojiPickerPopup>\n );\n};\n\nEmojiPickerPopup.displayName = 'EmojiPickerPopup';\n\nexport default EmojiPickerPopup;\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AASA,IAAAC,MAAA,GAAAC,uBAAA,CAAAF,OAAA;AACA,IAAAG,YAAA,GAAAC,sBAAA,CAAAJ,OAAA;AACA,IAAAK,iBAAA,GAAAL,OAAA;AACA,IAAAM,YAAA,GAAAN,OAAA;AACA,IAAAO,YAAA,GAAAH,sBAAA,CAAAJ,OAAA;AAAsD,SAAAI,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAN,wBAAAM,CAAA,EAAAG,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAV,uBAAA,YAAAA,CAAAM,CAAA,EAAAG,CAAA,SAAAA,CAAA,IAAAH,CAAA,IAAAA,CAAA,CAAAC,UAAA,SAAAD,CAAA,MAAAO,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAR,OAAA,EAAAF,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAS,CAAA,MAAAF,CAAA,GAAAJ,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAE,CAAA,CAAAI,GAAA,CAAAX,CAAA,UAAAO,CAAA,CAAAK,GAAA,CAAAZ,CAAA,GAAAO,CAAA,CAAAM,GAAA,CAAAb,CAAA,EAAAS,CAAA,gBAAAN,CAAA,IAAAH,CAAA,gBAAAG,CAAA,OAAAW,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAG,CAAA,OAAAK,CAAA,IAAAD,CAAA,GAAAS,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAG,CAAA,OAAAK,CAAA,CAAAI,GAAA,IAAAJ,CAAA,CAAAK,GAAA,IAAAN,CAAA,CAAAE,CAAA,EAAAN,CAAA,EAAAK,CAAA,IAAAC,CAAA,CAAAN,CAAA,IAAAH,CAAA,CAAAG,CAAA,WAAAM,CAAA,KAAAT,CAAA,EAAAG,CAAA;AAuCtD,MAAMgB,gBAA2C,GAAGA,CAAC;EACjDC,WAAW;EACXC,SAAS;EACTC,UAAU;EACVC,uBAAuB;EACvBC,QAAQ;EACRC,oBAAoB;EACpBC,QAAQ;EACRC;AACJ,CAAC,KAAK;EACF,MAAM;IAAExB;EAAE,CAAC,GAAG,IAAAyB,2BAAc,EAAC,CAAC;EAC9B,MAAMC,QAAQ,GAAG,IAAAC,aAAM,EAAW,IAAI,CAAC;EACvC,MAAMC,UAAU,GAAG,IAAAD,aAAM,EAAoB,IAAI,CAAC;EAClD,MAAME,8BAA8B,GAAG,IAAAC,kCAA4B,EAC/DX,UAAU,GAAG,KAAK,GAAGK,gCACzB,CAAC;EAED,IAAAO,wBAAkB,EAACH,UAAU,EAAE;IAC3BI,SAAS,EAAEH,8BAA8B;IACzCI,KAAK,EAAE,QAAQ;IACfC,OAAO,EAAE;EACb,CAAC,CAAC;EAEF,MAAMC,cAAc,GAAG,IAAAC,kBAAW,EAAEC,KAAoB,IAAK;IACzD,IAAIA,KAAK,CAACC,GAAG,KAAK,QAAQ,IAAI,CAACD,KAAK,CAACE,QAAQ,EAAE;MAAA,IAAAC,iBAAA;MAC3C,CAAAA,iBAAA,GAAAd,QAAQ,CAACe,OAAO,cAAAD,iBAAA,eAAhBA,iBAAA,CAAkBE,IAAI,CAAC,CAAC;IAC5B;EACJ,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMC,oBAAoB,GAAG,IAAAP,kBAAW,EACnCC,KAAK,IAAK;IACP,IAAIlB,UAAU,EAAE;MACZ;IACJ;IAEA,IAAIkB,KAAK,CAACC,GAAG,KAAK,OAAO,IAAID,KAAK,CAACC,GAAG,KAAK,GAAG,EAAE;MAAA,IAAAM,kBAAA;MAC5CP,KAAK,CAACQ,cAAc,CAAC,CAAC;MACtB,CAAAD,kBAAA,GAAAlB,QAAQ,CAACe,OAAO,cAAAG,kBAAA,eAAhBA,kBAAA,CAAkBE,IAAI,CAAC,CAAC;IAC5B;EACJ,CAAC,EACD,CAAC3B,UAAU,CACf,CAAC;EAED,MAAM4B,YAAY,GAAG,IAAAX,kBAAW,EAC5B,CAACY,KAAa,EAAEC,uBAAiC,KAAK;IAClD5B,QAAQ,CAAC2B,KAAK,CAAC;IAEf,IAAIC,uBAAuB,EAAE;MACzB3B,oBAAoB,aAApBA,oBAAoB,eAApBA,oBAAoB,CAAG0B,KAAK,CAAC;IACjC;EACJ,CAAC,EACD,CAAC3B,QAAQ,EAAEC,oBAAoB,CACnC,CAAC;EAED,IAAA4B,gBAAS,EAAC,MAAM;IACZC,QAAQ,CAACC,gBAAgB,CAAC,SAAS,EAAEjB,cAAc,CAAC;IAEpD,OAAO,MAAM;MACTgB,QAAQ,CAACE,mBAAmB,CAAC,SAAS,EAAElB,cAAc,CAAC;IAC3D,CAAC;EACL,CAAC,EAAE,CAACA,cAAc,CAAC,CAAC;EAEpB,oBACI7C,MAAA,CAAAS,OAAA,CAAAuD,aAAA,CAAC5D,iBAAA,CAAA6D,sBAAsB;IAAC,eAAapC;EAAW,gBAC5C7B,MAAA,CAAAS,OAAA,CAAAuD,aAAA,CAAClE,KAAA,CAAAoE,KAAK;IACFtC,SAAS,EAAEA,SAAU;IACrBuC,GAAG,EAAE/B,QAAS;IACdgC,MAAM,EAAEA,CAAA,KACJ,OAAOtC,uBAAuB,KAAK,UAAU,GACvCA,uBAAuB,CAAC,KAAK,CAAC,GAC9BuC,SACT;IACDC,MAAM,EAAEA,CAAA,KACJ,OAAOxC,uBAAuB,KAAK,UAAU,GACvCA,uBAAuB,CAAC,IAAI,CAAC,GAC7BuC,SACT;IACDE,OAAO,eACHvE,MAAA,CAAAS,OAAA,CAAAuD,aAAA,CAAClE,KAAA,CAAA0E,YAAY;MAACC,iBAAiB,EAAE;IAAM,gBACnCzE,MAAA,CAAAS,OAAA,CAAAuD,aAAA,CAAC9D,YAAA,CAAAO,OAAW;MACRkB,WAAW,EAAEA,WAAY;MACzBI,QAAQ,EAAE0B,YAAa;MACvBxB,QAAQ,EAAEA;IAAS,CACtB,CACS;EACjB,gBAEDjC,MAAA,CAAAS,OAAA,CAAAuD,aAAA;IACI,cAAYtD,CAAC,CAACgE,oBAAW,CAACC,gBAAgB,CAACC,aAAa,CAACC,IAAI,CAAE;IAC/DC,SAAS,EAAC,oBAAoB;IAC9BC,QAAQ,EAAElD,UAAW;IACrBmD,OAAO,EAAGjC,KAAK,IAAK;MAChB,IAAIlB,UAAU,EAAE;QACZkB,KAAK,CAACkC,eAAe,CAAC,CAAC;MAC3B;IACJ,CAAE;IACFC,SAAS,EAAE7B,oBAAqB;IAChCc,GAAG,EAAE7B,UAAW;IAChB6C,QAAQ,EAAEtD,UAAU,GAAG,CAAC,CAAC,GAAG,CAAE;IAC9BuD,IAAI,EAAC;EAAQ,gBAEbpF,MAAA,CAAAS,OAAA,CAAAuD,aAAA,CAAClE,KAAA,CAAAuF,IAAI;IAACC,KAAK,EAAE,CAAC,cAAc,CAAE;IAACC,IAAI,EAAE;EAAG,CAAE,CACtC,CACL,CACa,CAAC;AAEjC,CAAC;AAED7D,gBAAgB,CAAC8D,WAAW,GAAG,kBAAkB;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAjF,OAAA,GAEnCiB,gBAAgB","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"EmojiPickerPopup.js","names":["_core","require","_react","_interopRequireWildcard","_EmojiPicker","_interopRequireDefault","_EmojiPickerPopup","_textstrings","_textStrings","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","EmojiPickerPopupContent","accessToken","container","isDisabled","onPopupVisibilityChange","onSelect","onSelectWithKeyboard","personId","shouldEnableKeyboardHighlighting","useTranslation","popupRef","useRef","triggerRef","shouldShowKeyboardHighlighting","useKeyboardFocusHighlighting","useFocusRingPortal","isEnabled","shape","padding","handleKeyPress","useCallback","event","key","shiftKey","_popupRef$current","current","hide","handleTriggerKeyDown","_popupRef$current2","preventDefault","show","handleSelect","emoji","shouldRestoreInputFocus","useEffect","document","addEventListener","removeEventListener","createElement","StyledEmojiPickerPopup","Popup","ref","onHide","undefined","onShow","content","AreaProvider","shouldChangeColor","textStrings","emojiPickerPopup","accessibility","open","className","disabled","onClick","stopPropagation","onKeyDown","tabIndex","type","Icon","icons","size","EmojiPickerPopup","props","TextStringProviderSSR","libraries","id","displayName","_default","exports"],"sources":["../../../../src/components/emoji-picker-popup/EmojiPickerPopup.tsx"],"sourcesContent":["import {\n AreaProvider,\n Icon,\n Popup,\n PopupAlignment,\n useFocusRingPortal,\n useKeyboardFocusHighlighting,\n type PopupRef,\n} from '@chayns-components/core';\nimport React, { FC, KeyboardEventHandler, useCallback, useEffect, useRef } from 'react';\nimport EmojiPicker from '../emoji-picker/EmojiPicker';\nimport { StyledEmojiPickerPopup } from './EmojiPickerPopup.styles';\nimport { TextStringProviderSSR, useTranslation } from '@chayns/textstrings';\nimport textStrings from '../../constants/textStrings';\n\nexport type EmojiPickerPopupProps = {\n /**\n * Access token of the logged-in user. Is needed to load and save the history of the emojis.\n */\n accessToken?: string;\n /**\n * The DOM element that should receive the popup portal.\n */\n container?: Element;\n /**\n * Whether the picker trigger is disabled.\n */\n isDisabled?: boolean;\n /**\n * Function that is executed when the visibility of the popup changes.\n * @param {boolean} isVisible - Whether the popup is visible or not\n */\n onPopupVisibilityChange?: (isVisible: boolean) => void;\n /**\n * Person id of the logged-in user. Is needed to load and save the history of the emojis.\n */\n personId?: string;\n /**\n * Function executed when an emoji is selected in the popup\n * @param {string} emoji - Emoji that was selected\n */\n onSelect: (emoji: string) => void;\n /**\n * Enables keyboard-only focus highlighting for the picker trigger.\n */\n shouldEnableKeyboardHighlighting?: boolean;\n /**\n * Receives focus after an emoji is selected with the keyboard.\n */\n onSelectWithKeyboard?: (emoji: string) => void;\n};\n\nconst EmojiPickerPopupContent: FC<EmojiPickerPopupProps> = ({\n accessToken,\n container,\n isDisabled,\n onPopupVisibilityChange,\n onSelect,\n onSelectWithKeyboard,\n personId,\n shouldEnableKeyboardHighlighting,\n}) => {\n const { t } = useTranslation();\n const popupRef = useRef<PopupRef>(null);\n const triggerRef = useRef<HTMLButtonElement>(null);\n const shouldShowKeyboardHighlighting = useKeyboardFocusHighlighting(\n isDisabled ? false : shouldEnableKeyboardHighlighting,\n );\n\n useFocusRingPortal(triggerRef, {\n isEnabled: shouldShowKeyboardHighlighting,\n shape: 'circle',\n padding: 4,\n });\n\n const handleKeyPress = useCallback((event: KeyboardEvent) => {\n if (event.key === 'Escape' && !event.shiftKey) {\n popupRef.current?.hide();\n }\n }, []);\n\n const handleTriggerKeyDown = useCallback<KeyboardEventHandler<HTMLButtonElement>>(\n (event) => {\n if (isDisabled) {\n return;\n }\n\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n popupRef.current?.show();\n }\n },\n [isDisabled],\n );\n\n const handleSelect = useCallback(\n (emoji: string, shouldRestoreInputFocus?: boolean) => {\n onSelect(emoji);\n\n if (shouldRestoreInputFocus) {\n onSelectWithKeyboard?.(emoji);\n }\n },\n [onSelect, onSelectWithKeyboard],\n );\n\n useEffect(() => {\n document.addEventListener('keydown', handleKeyPress);\n\n return () => {\n document.removeEventListener('keydown', handleKeyPress);\n };\n }, [handleKeyPress]);\n\n return (\n <StyledEmojiPickerPopup aria-hidden={isDisabled}>\n <Popup\n container={container}\n ref={popupRef}\n onHide={() =>\n typeof onPopupVisibilityChange === 'function'\n ? onPopupVisibilityChange(false)\n : undefined\n }\n onShow={() =>\n typeof onPopupVisibilityChange === 'function'\n ? onPopupVisibilityChange(true)\n : undefined\n }\n content={\n <AreaProvider shouldChangeColor={false}>\n <EmojiPicker\n accessToken={accessToken}\n onSelect={handleSelect}\n personId={personId}\n />\n </AreaProvider>\n }\n >\n <button\n aria-label={t(textStrings.emojiPickerPopup.accessibility.open)}\n className=\"prevent-lose-focus\"\n disabled={isDisabled}\n onClick={(event) => {\n if (isDisabled) {\n event.stopPropagation();\n }\n }}\n onKeyDown={handleTriggerKeyDown}\n ref={triggerRef}\n tabIndex={isDisabled ? -1 : 0}\n type=\"button\"\n >\n <Icon icons={['far fa-smile']} size={18} />\n </button>\n </Popup>\n </StyledEmojiPickerPopup>\n );\n};\n\nconst EmojiPickerPopup: FC<EmojiPickerPopupProps> = (props) => (\n <TextStringProviderSSR libraries=\"@chayns-component-emoji-input\" id=\"emoji-picker-popup\">\n <EmojiPickerPopupContent {...props} />\n </TextStringProviderSSR>\n);\n\nEmojiPickerPopup.displayName = 'EmojiPickerPopup';\n\nexport default EmojiPickerPopup;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _vitest = require("vitest");
|
|
4
|
+
var _emoji = require("./emoji");
|
|
5
|
+
var _emojiShortList = require("./emojiShortList");
|
|
6
|
+
(0, _vitest.describe)('convertEmojisToUnicode', () => {
|
|
7
|
+
(0, _vitest.it)('does not replace shortnames adjacent to letters or numbers', () => {
|
|
8
|
+
(0, _vitest.expect)((0, _emoji.convertEmojisToUnicode)('x:smile:', _emojiShortList.regShortnames, _emojiShortList.shortNameList)).toBe('x:smile:');
|
|
9
|
+
(0, _vitest.expect)((0, _emoji.convertEmojisToUnicode)(':smile:x', _emojiShortList.regShortnames, _emojiShortList.shortNameList)).toBe(':smile:x');
|
|
10
|
+
(0, _vitest.expect)((0, _emoji.convertEmojisToUnicode)('x:smile:1', _emojiShortList.regShortnames, _emojiShortList.shortNameList)).toBe('x:smile:1');
|
|
11
|
+
});
|
|
12
|
+
(0, _vitest.it)('replaces shortnames next to spaces or punctuation', () => {
|
|
13
|
+
const emoji = (0, _emoji.convertEmojisToUnicode)(':smile:', _emojiShortList.regShortnames, _emojiShortList.shortNameList);
|
|
14
|
+
(0, _vitest.expect)((0, _emoji.convertEmojisToUnicode)(' :smile: ', _emojiShortList.regShortnames, _emojiShortList.shortNameList)).toBe(` ${emoji} `);
|
|
15
|
+
(0, _vitest.expect)((0, _emoji.convertEmojisToUnicode)('(:smile:),', _emojiShortList.regShortnames, _emojiShortList.shortNameList)).toBe(`(${emoji}),`);
|
|
16
|
+
});
|
|
17
|
+
});
|
|
18
|
+
//# sourceMappingURL=emoji.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"emoji.test.js","names":["_vitest","require","_emoji","_emojiShortList","describe","it","expect","convertEmojisToUnicode","regShortnames","shortNameList","toBe","emoji"],"sources":["../../../src/utils/emoji.test.ts"],"sourcesContent":["import { describe, expect, it } from 'vitest';\nimport { convertEmojisToUnicode } from './emoji';\nimport { regAscii } from '../constants/emoji';\nimport { regShortnames, shortNameList } from './emojiShortList';\n\ndescribe('convertEmojisToUnicode', () => {\n it('does not replace shortnames adjacent to letters or numbers', () => {\n expect(convertEmojisToUnicode('x:smile:', regShortnames, shortNameList)).toBe('x:smile:');\n expect(convertEmojisToUnicode(':smile:x', regShortnames, shortNameList)).toBe(':smile:x');\n expect(convertEmojisToUnicode('x:smile:1', regShortnames, shortNameList)).toBe('x:smile:1');\n });\n\n it('replaces shortnames next to spaces or punctuation', () => {\n const emoji = convertEmojisToUnicode(':smile:', regShortnames, shortNameList);\n\n expect(convertEmojisToUnicode(' :smile: ', regShortnames, shortNameList)).toBe(\n ` ${emoji} `,\n );\n expect(convertEmojisToUnicode('(:smile:),', regShortnames, shortNameList)).toBe(\n `(${emoji}),`,\n );\n });\n});\n"],"mappings":";;AAAA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAEA,IAAAE,eAAA,GAAAF,OAAA;AAEA,IAAAG,gBAAQ,EAAC,wBAAwB,EAAE,MAAM;EACrC,IAAAC,UAAE,EAAC,4DAA4D,EAAE,MAAM;IACnE,IAAAC,cAAM,EAAC,IAAAC,6BAAsB,EAAC,UAAU,EAAEC,6BAAa,EAAEC,6BAAa,CAAC,CAAC,CAACC,IAAI,CAAC,UAAU,CAAC;IACzF,IAAAJ,cAAM,EAAC,IAAAC,6BAAsB,EAAC,UAAU,EAAEC,6BAAa,EAAEC,6BAAa,CAAC,CAAC,CAACC,IAAI,CAAC,UAAU,CAAC;IACzF,IAAAJ,cAAM,EAAC,IAAAC,6BAAsB,EAAC,WAAW,EAAEC,6BAAa,EAAEC,6BAAa,CAAC,CAAC,CAACC,IAAI,CAAC,WAAW,CAAC;EAC/F,CAAC,CAAC;EAEF,IAAAL,UAAE,EAAC,mDAAmD,EAAE,MAAM;IAC1D,MAAMM,KAAK,GAAG,IAAAJ,6BAAsB,EAAC,SAAS,EAAEC,6BAAa,EAAEC,6BAAa,CAAC;IAE7E,IAAAH,cAAM,EAAC,IAAAC,6BAAsB,EAAC,WAAW,EAAEC,6BAAa,EAAEC,6BAAa,CAAC,CAAC,CAACC,IAAI,CAC1E,IAAIC,KAAK,GACb,CAAC;IACD,IAAAL,cAAM,EAAC,IAAAC,6BAAsB,EAAC,YAAY,EAAEC,6BAAa,EAAEC,6BAAa,CAAC,CAAC,CAACC,IAAI,CAC3E,IAAIC,KAAK,IACb,CAAC;EACL,CAAC,CAAC;AACN,CAAC,CAAC","ignoreList":[]}
|
|
@@ -3681,5 +3681,5 @@ let shortnameRegexp = '';
|
|
|
3681
3681
|
Object.keys(shortNameList).forEach((shortname, index) => {
|
|
3682
3682
|
shortnameRegexp += `${index !== 0 ? '|' : ''}${shortname}`;
|
|
3683
3683
|
});
|
|
3684
|
-
const regShortnames = exports.regShortnames = new RegExp(`<object[^>]*>.*?</object>|<span[^>]*>.*?</span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|(${shortnameRegexp})`, '
|
|
3684
|
+
const regShortnames = exports.regShortnames = new RegExp(`<object[^>]*>.*?</object>|<span[^>]*>.*?</span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|(?<![\\p{L}\\p{N}])(${shortnameRegexp})(?![\\p{L}\\p{N}])`, 'giu');
|
|
3685
3685
|
//# sourceMappingURL=emojiShortList.js.map
|