@bigbinary/neeto-molecules 4.3.0 → 4.3.2
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/dist/{Columns-DpeV3Jzz.js → Columns-gR00LMKF.js} +2 -2
- package/dist/Columns-gR00LMKF.js.map +1 -0
- package/dist/{ConfigureView-B0UvLoJe.js → ConfigureView-CG1M2-3b.js} +4 -15
- package/dist/ConfigureView-CG1M2-3b.js.map +1 -0
- package/dist/check-DvxzqR83.js +15 -0
- package/dist/check-DvxzqR83.js.map +1 -0
- package/dist/chevron-down-BMerqYpK.js +15 -0
- package/dist/chevron-down-BMerqYpK.js.map +1 -0
- package/dist/chevron-left-BTVCxPw8.js +15 -0
- package/dist/chevron-left-BTVCxPw8.js.map +1 -0
- package/dist/cjs/{Columns-C2ke8N58.js → Columns-Brpr2a_M.js} +2 -2
- package/dist/cjs/Columns-Brpr2a_M.js.map +1 -0
- package/dist/cjs/{ConfigureView-Coy1ViRc.js → ConfigureView-BVRHqVpb.js} +5 -16
- package/dist/cjs/ConfigureView-BVRHqVpb.js.map +1 -0
- package/dist/cjs/check-VgZf0qTr.js +17 -0
- package/dist/cjs/check-VgZf0qTr.js.map +1 -0
- package/dist/cjs/chevron-down-DwiliwN1.js +17 -0
- package/dist/cjs/chevron-down-DwiliwN1.js.map +1 -0
- package/dist/cjs/chevron-left-DWN80ILn.js +17 -0
- package/dist/cjs/chevron-left-DWN80ILn.js.map +1 -0
- package/dist/cjs/{useKeyboardShortcutsPaneState-BG_xVteC.js → useKeyboardShortcutsPaneState-DZUnpw9v.js} +2 -2
- package/dist/cjs/useKeyboardShortcutsPaneState-DZUnpw9v.js.map +1 -0
- package/dist/cjs/v2/AuditLogs.js +8 -8
- package/dist/cjs/v2/AuditLogs.js.map +1 -1
- package/dist/cjs/v2/BoardView.js +427 -0
- package/dist/cjs/v2/BoardView.js.map +1 -0
- package/dist/cjs/v2/Breadcrumbs.js +2 -2
- package/dist/cjs/v2/Breadcrumbs.js.map +1 -1
- package/dist/cjs/v2/CalendarView.js +429 -0
- package/dist/cjs/v2/CalendarView.js.map +1 -0
- package/dist/cjs/v2/Columns.js +2 -2
- package/dist/cjs/v2/ConfigurePageSidebar.js +4 -3
- package/dist/cjs/v2/ConfigurePageSidebar.js.map +1 -1
- package/dist/cjs/v2/CopyToClipboardButton.js +3 -13
- package/dist/cjs/v2/CopyToClipboardButton.js.map +1 -1
- package/dist/cjs/v2/DateFormat.js +42 -0
- package/dist/cjs/v2/DateFormat.js.map +1 -0
- package/dist/cjs/v2/DocumentEditor.js +329 -0
- package/dist/cjs/v2/DocumentEditor.js.map +1 -0
- package/dist/cjs/v2/EmojiPicker.js +125 -0
- package/dist/cjs/v2/EmojiPicker.js.map +1 -0
- package/dist/cjs/v2/Engagements.js +283 -0
- package/dist/cjs/v2/Engagements.js.map +1 -0
- package/dist/cjs/v2/ErrorPage.js +1 -1
- package/dist/cjs/v2/ErrorPage.js.map +1 -1
- package/dist/cjs/v2/FileUpload.js +644 -0
- package/dist/cjs/v2/FileUpload.js.map +1 -0
- package/dist/cjs/v2/FinderModal.js +253 -0
- package/dist/cjs/v2/FinderModal.js.map +1 -0
- package/dist/cjs/v2/FloatingActionMenu.js +11 -9
- package/dist/cjs/v2/FloatingActionMenu.js.map +1 -1
- package/dist/cjs/v2/Header.js +6 -6
- package/dist/cjs/v2/InlineInput.js +293 -0
- package/dist/cjs/v2/InlineInput.js.map +1 -0
- package/dist/cjs/v2/KeyboardShortcuts.js +3 -3
- package/dist/cjs/v2/KeyboardShortcuts.js.map +1 -1
- package/dist/cjs/v2/LoginPage.js +1 -1
- package/dist/cjs/v2/LoginPage.js.map +1 -1
- package/dist/cjs/v2/MenuBar.js +2 -2
- package/dist/cjs/v2/MenuBar.js.map +1 -1
- package/dist/cjs/v2/MoreDropdown.js +1 -1
- package/dist/cjs/v2/MoreDropdown.js.map +1 -1
- package/dist/cjs/v2/NavigationHeader.js +328 -0
- package/dist/cjs/v2/NavigationHeader.js.map +1 -0
- package/dist/cjs/v2/PublishBlock.js +414 -0
- package/dist/cjs/v2/PublishBlock.js.map +1 -0
- package/dist/cjs/v2/Rename.js +350 -0
- package/dist/cjs/v2/Rename.js.map +1 -0
- package/dist/cjs/v2/Scrollable.js +37 -0
- package/dist/cjs/v2/Scrollable.js.map +1 -0
- package/dist/cjs/v2/Search.js +5 -5
- package/dist/cjs/v2/Search.js.map +1 -1
- package/dist/cjs/v2/Settings.js +6 -6
- package/dist/cjs/v2/Settings.js.map +1 -1
- package/dist/cjs/v2/Sidebar.js +8 -7
- package/dist/cjs/v2/Sidebar.js.map +1 -1
- package/dist/cjs/v2/StickyRibbonsContainer.js +4 -4
- package/dist/cjs/v2/StickyRibbonsContainer.js.map +1 -1
- package/dist/cjs/v2/SubHeader.js +3 -3
- package/dist/cjs/v2/SubHeader.js.map +1 -1
- package/dist/cjs/v2/TimeFormat.js +15 -0
- package/dist/cjs/v2/TimeFormat.js.map +1 -0
- package/dist/{useKeyboardShortcutsPaneState-dNIbb_PI.js → useKeyboardShortcutsPaneState-BlyFMEtW.js} +2 -2
- package/dist/useKeyboardShortcutsPaneState-BlyFMEtW.js.map +1 -0
- package/dist/v2/AuditLogs.js +8 -8
- package/dist/v2/AuditLogs.js.map +1 -1
- package/dist/v2/BoardView.js +425 -0
- package/dist/v2/BoardView.js.map +1 -0
- package/dist/v2/Breadcrumbs.js +2 -2
- package/dist/v2/Breadcrumbs.js.map +1 -1
- package/dist/v2/CalendarView.js +427 -0
- package/dist/v2/CalendarView.js.map +1 -0
- package/dist/v2/Columns.js +2 -2
- package/dist/v2/ConfigurePageSidebar.js +4 -3
- package/dist/v2/ConfigurePageSidebar.js.map +1 -1
- package/dist/v2/CopyToClipboardButton.js +2 -12
- package/dist/v2/CopyToClipboardButton.js.map +1 -1
- package/dist/v2/DateFormat.js +40 -0
- package/dist/v2/DateFormat.js.map +1 -0
- package/dist/v2/DocumentEditor.js +327 -0
- package/dist/v2/DocumentEditor.js.map +1 -0
- package/dist/v2/EmojiPicker.js +123 -0
- package/dist/v2/EmojiPicker.js.map +1 -0
- package/dist/v2/Engagements.js +281 -0
- package/dist/v2/Engagements.js.map +1 -0
- package/dist/v2/ErrorPage.js +1 -1
- package/dist/v2/ErrorPage.js.map +1 -1
- package/dist/v2/FileUpload.js +641 -0
- package/dist/v2/FileUpload.js.map +1 -0
- package/dist/v2/FinderModal.js +251 -0
- package/dist/v2/FinderModal.js.map +1 -0
- package/dist/v2/FloatingActionMenu.js +11 -9
- package/dist/v2/FloatingActionMenu.js.map +1 -1
- package/dist/v2/Header.js +6 -6
- package/dist/v2/InlineInput.js +290 -0
- package/dist/v2/InlineInput.js.map +1 -0
- package/dist/v2/KeyboardShortcuts.js +3 -3
- package/dist/v2/KeyboardShortcuts.js.map +1 -1
- package/dist/v2/LoginPage.js +1 -1
- package/dist/v2/LoginPage.js.map +1 -1
- package/dist/v2/MenuBar.js +2 -2
- package/dist/v2/MenuBar.js.map +1 -1
- package/dist/v2/MoreDropdown.js +1 -1
- package/dist/v2/MoreDropdown.js.map +1 -1
- package/dist/v2/NavigationHeader.js +326 -0
- package/dist/v2/NavigationHeader.js.map +1 -0
- package/dist/v2/PublishBlock.js +412 -0
- package/dist/v2/PublishBlock.js.map +1 -0
- package/dist/v2/Rename.js +348 -0
- package/dist/v2/Rename.js.map +1 -0
- package/dist/v2/Scrollable.js +35 -0
- package/dist/v2/Scrollable.js.map +1 -0
- package/dist/v2/Search.js +5 -5
- package/dist/v2/Search.js.map +1 -1
- package/dist/v2/Settings.js +6 -6
- package/dist/v2/Settings.js.map +1 -1
- package/dist/v2/Sidebar.js +8 -7
- package/dist/v2/Sidebar.js.map +1 -1
- package/dist/v2/StickyRibbonsContainer.js +4 -4
- package/dist/v2/StickyRibbonsContainer.js.map +1 -1
- package/dist/v2/SubHeader.js +3 -3
- package/dist/v2/SubHeader.js.map +1 -1
- package/dist/v2/TimeFormat.js +13 -0
- package/dist/v2/TimeFormat.js.map +1 -0
- package/package.json +5 -5
- package/src/translations/ar.json +4 -2
- package/src/translations/bg.json +4 -2
- package/src/translations/ca.json +4 -2
- package/src/translations/cs.json +4 -2
- package/src/translations/da.json +4 -2
- package/src/translations/de.json +4 -2
- package/src/translations/en.json +4 -2
- package/src/translations/es-MX.json +4 -2
- package/src/translations/es.json +4 -2
- package/src/translations/et.json +4 -2
- package/src/translations/fi.json +4 -2
- package/src/translations/fil.json +4 -2
- package/src/translations/fr.json +4 -2
- package/src/translations/he.json +4 -2
- package/src/translations/hi.json +4 -2
- package/src/translations/hr.json +4 -2
- package/src/translations/hu.json +4 -2
- package/src/translations/id.json +4 -2
- package/src/translations/it.json +4 -2
- package/src/translations/ja.json +4 -2
- package/src/translations/ko.json +4 -2
- package/src/translations/nl.json +4 -2
- package/src/translations/pl.json +4 -2
- package/src/translations/pt-BR.json +4 -2
- package/src/translations/pt.json +4 -2
- package/src/translations/ro.json +4 -2
- package/src/translations/ru.json +4 -2
- package/src/translations/sk.json +4 -2
- package/src/translations/sl.json +4 -2
- package/src/translations/sv.json +4 -2
- package/src/translations/th.json +4 -2
- package/src/translations/tr.json +4 -2
- package/src/translations/uk.json +4 -2
- package/src/translations/vi.json +4 -2
- package/src/translations/zh-CN.json +4 -2
- package/src/translations/zh-TW.json +4 -2
- package/types/v2/BoardView.d.ts +27 -0
- package/types/v2/CalendarView.d.ts +40 -0
- package/types/v2/DateFormat.d.ts +19 -0
- package/types/v2/DocumentEditor.d.ts +20 -0
- package/types/v2/EmojiPicker.d.ts +14 -0
- package/types/v2/Engagements.d.ts +50 -0
- package/types/v2/FileUpload.d.ts +30 -0
- package/types/v2/FinderModal.d.ts +24 -0
- package/types/v2/InlineInput.d.ts +28 -0
- package/types/v2/NavigationHeader.d.ts +80 -0
- package/types/v2/PublishBlock.d.ts +39 -0
- package/types/v2/Rename.d.ts +33 -0
- package/types/v2/Scrollable.d.ts +15 -0
- package/types/v2/TimeFormat.d.ts +17 -0
- package/dist/Columns-DpeV3Jzz.js.map +0 -1
- package/dist/ConfigureView-B0UvLoJe.js.map +0 -1
- package/dist/cjs/Columns-C2ke8N58.js.map +0 -1
- package/dist/cjs/ConfigureView-Coy1ViRc.js.map +0 -1
- package/dist/cjs/useKeyboardShortcutsPaneState-BG_xVteC.js.map +0 -1
- package/dist/useKeyboardShortcutsPaneState-dNIbb_PI.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CopyToClipboardButton.js","sources":["../../../node_modules/lucide-react/dist/esm/icons/
|
|
1
|
+
{"version":3,"file":"CopyToClipboardButton.js","sources":["../../../node_modules/lucide-react/dist/esm/icons/copy.js","../../../src/v2/components/CopyToClipboardButton/constants.js","../../../src/v2/components/CopyToClipboardButton/index.jsx"],"sourcesContent":["/**\n * @license lucide-react v1.7.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"rect\", { width: \"14\", height: \"14\", x: \"8\", y: \"8\", rx: \"2\", ry: \"2\", key: \"17jyea\" }],\n [\"path\", { d: \"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\", key: \"zix9uf\" }]\n];\nconst Copy = createLucideIcon(\"copy\", __iconNode);\n\nexport { __iconNode, Copy as default };\n//# sourceMappingURL=copy.js.map\n","const TIME_OUT = 2000;\n\nexport { TIME_OUT };\n","import { useState, useEffect, useLayoutEffect, useRef } from \"react\";\n\nimport { Button, Tooltip } from \"@bigbinary/neeto-atoms\";\nimport classnames from \"classnames\";\nimport { Copy, Check } from \"lucide-react\";\nimport { copyToClipboard } from \"neetocommons/v2/utils/general\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { TIME_OUT } from \"./constants\";\n\nconst CopyToClipboardButton = ({\n className,\n icon: Icon = Copy,\n label = \"\",\n successLabel,\n tooltipContent,\n successTooltipContent,\n value,\n variant = \"outline\",\n size,\n tooltipProps,\n onClick,\n ...otherProps\n}) => {\n const { t } = useTranslation();\n\n const [isChecked, setIsChecked] = useState(false);\n\n const ref = useRef();\n const timerRef = useRef();\n\n const resolvedSize = size || (label ? \"default\" : \"icon\");\n\n const onHandleClick = event => {\n event.preventDefault();\n event.stopPropagation();\n\n if (onClick) onClick(event);\n else copyToClipboard(value, { showToastr: false });\n\n clearTimeout(timerRef.current);\n setIsChecked(true);\n timerRef.current = setTimeout(() => {\n setIsChecked(false);\n }, TIME_OUT);\n };\n\n useEffect(() => () => clearTimeout(timerRef.current), []);\n\n useLayoutEffect(() => {\n if (!ref.current) return;\n ref.current.style.minWidth = \"\";\n const buttonWidth = ref.current.clientWidth;\n ref.current.style.minWidth = `${buttonWidth}px`;\n }, [resolvedSize, label]);\n\n const currentTooltipContent = isChecked\n ? successTooltipContent || t(\"neetoMolecules.common.copied\")\n : tooltipContent || t(\"neetoMolecules.common.copy\");\n\n const buttonLabel =\n isChecked && label\n ? successLabel || t(\"neetoMolecules.common.copied\")\n : label;\n const ButtonIcon = isChecked ? Check : Icon;\n\n const button = (\n <Button\n {...{ ref }}\n className={classnames(isChecked && \"nv-copy-button-active\", className)}\n data-testid=\"copy-to-clipboard-button\"\n icon={ButtonIcon}\n iconPosition=\"left\"\n label={buttonLabel || undefined}\n size={resolvedSize}\n variant={isChecked ? \"default\" : variant}\n onClick={onHandleClick}\n {...otherProps}\n />\n );\n\n if (label) return button;\n\n return (\n <Tooltip content={currentTooltipContent} position=\"top\" {...tooltipProps}>\n {button}\n </Tooltip>\n );\n};\n\nCopyToClipboardButton.propTypes = {\n className: PropTypes.string,\n icon: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n PropTypes.object,\n ]),\n label: PropTypes.string,\n successLabel: PropTypes.string,\n value: PropTypes.string,\n variant: PropTypes.string,\n size: PropTypes.string,\n tooltipContent: PropTypes.string,\n successTooltipContent: PropTypes.string,\n};\n\nexport default CopyToClipboardButton;\n"],"names":["createLucideIcon","TIME_OUT","CopyToClipboardButton","_ref","className","_ref$icon","icon","Icon","Copy","_ref$label","label","successLabel","tooltipContent","successTooltipContent","value","_ref$variant","variant","size","tooltipProps","onClick","otherProps","_objectWithoutProperties","_excluded","_useTranslation","useTranslation","t","_useState","useState","_useState2","_slicedToArray","isChecked","setIsChecked","ref","useRef","timerRef","resolvedSize","onHandleClick","event","preventDefault","stopPropagation","copyToClipboard","showToastr","clearTimeout","current","setTimeout","useEffect","useLayoutEffect","style","minWidth","buttonWidth","clientWidth","concat","currentTooltipContent","buttonLabel","ButtonIcon","Check","button","_jsx","Button","_objectSpread","classnames","iconPosition","undefined","Tooltip","content","position","children"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
4
|
+
var neetoAtoms = require('@bigbinary/neeto-atoms');
|
|
5
|
+
var neetoCist = require('@bigbinary/neeto-cist');
|
|
6
|
+
var useTimer = require('@bigbinary/neeto-commons-frontend/v2/react-utils/useTimer');
|
|
7
|
+
var datetime = require('@bigbinary/neeto-commons-frontend/v2/utils/datetime');
|
|
8
|
+
var ramda = require('ramda');
|
|
9
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
10
|
+
|
|
11
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
12
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
13
|
+
var DateFormat = ramda.fromPairs(ramda.keys(datetime.timeFormat).map(function (key) {
|
|
14
|
+
return [neetoCist.capitalize(key), function (_ref) {
|
|
15
|
+
var date = _ref.date,
|
|
16
|
+
_ref$timerInterval = _ref.timerInterval,
|
|
17
|
+
timerInterval = _ref$timerInterval === void 0 ? 60 : _ref$timerInterval,
|
|
18
|
+
_ref$tooltipProps = _ref.tooltipProps,
|
|
19
|
+
tooltipProps = _ref$tooltipProps === void 0 ? {} : _ref$tooltipProps,
|
|
20
|
+
_ref$typographyProps = _ref.typographyProps,
|
|
21
|
+
typographyProps = _ref$typographyProps === void 0 ? {} : _ref$typographyProps,
|
|
22
|
+
_ref$tooltipDateForma = _ref.tooltipDateFormat,
|
|
23
|
+
tooltipDateFormat = _ref$tooltipDateForma === void 0 ? "extended" : _ref$tooltipDateForma;
|
|
24
|
+
useTimer(timerInterval);
|
|
25
|
+
return /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Tooltip, _objectSpread(_objectSpread({
|
|
26
|
+
interactive: true,
|
|
27
|
+
content: datetime.timeFormat[tooltipDateFormat](date),
|
|
28
|
+
disabled: key === tooltipDateFormat,
|
|
29
|
+
position: "top"
|
|
30
|
+
}, tooltipProps), {}, {
|
|
31
|
+
children: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Typography, _objectSpread(_objectSpread({
|
|
32
|
+
as: "span",
|
|
33
|
+
variant: "body3"
|
|
34
|
+
}, typographyProps), {}, {
|
|
35
|
+
children: datetime.timeFormat[key](date)
|
|
36
|
+
}))
|
|
37
|
+
}));
|
|
38
|
+
}];
|
|
39
|
+
}));
|
|
40
|
+
|
|
41
|
+
module.exports = DateFormat;
|
|
42
|
+
//# sourceMappingURL=DateFormat.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DateFormat.js","sources":["../../../src/v2/components/DateFormat.jsx"],"sourcesContent":["import { Tooltip, Typography } from \"@bigbinary/neeto-atoms\";\nimport { capitalize } from \"neetocist\";\nimport useTimer from \"neetocommons/v2/react-utils/useTimer\";\nimport { timeFormat } from \"neetocommons/v2/utils/datetime\";\nimport PropTypes from \"prop-types\";\nimport { fromPairs, keys } from \"ramda\";\n\nconst DateFormat = fromPairs(\n keys(timeFormat).map(key => [\n capitalize(key),\n ({\n date,\n timerInterval = 60,\n tooltipProps = {},\n typographyProps = {},\n tooltipDateFormat = \"extended\",\n }) => {\n useTimer(timerInterval);\n\n return (\n <Tooltip\n interactive\n content={timeFormat[tooltipDateFormat](date)}\n disabled={key === tooltipDateFormat}\n position=\"top\"\n {...tooltipProps}\n >\n <Typography as=\"span\" variant=\"body3\" {...typographyProps}>\n {timeFormat[key](date)}\n </Typography>\n </Tooltip>\n );\n },\n ])\n);\n\nDateFormat.propTypes = {\n /**\n * The date object to be formatted.\n */\n date: PropTypes.instanceOf(Date),\n /**\n * This prop will be used to re-render the component in every `timerInterval` seconds to show updated relative time.\n */\n timerInterval: PropTypes.number,\n /**\n * This prop will accept a string to set the format corresponding to\n * [dateFormat](https://github.com/bigbinary/neeto-commons-frontend/blob/main/docs/utils/dateFormat.md)\n * options from `neeto-commons-frontend`.\n */\n tooltipDateFormat: PropTypes.string,\n /**\n * This prop will be forwarded to the atoms Tooltip component. Default position is \"top\".\n */\n tooltipProps: PropTypes.object,\n /**\n * Props forwarded to the atoms `Typography` component (renders as `<span>`\n * with `variant=\"body3\"` by default). Accepts `variant`, `weight`, `color`,\n * `lineClamp`, `className`, `as`, etc.\n */\n typographyProps: PropTypes.object,\n};\n\nexport default DateFormat;\n"],"names":["DateFormat","fromPairs","keys","timeFormat","map","key","capitalize","_ref","date","_ref$timerInterval","timerInterval","_ref$tooltipProps","tooltipProps","_ref$typographyProps","typographyProps","_ref$tooltipDateForma","tooltipDateFormat","useTimer","_jsx","Tooltip","_objectSpread","interactive","content","disabled","position","children","Typography","as","variant"],"mappings":";;;;;;;;;;;;AAOA,IAAMA,UAAU,GAAGC,eAAS,CAC1BC,UAAI,CAACC,mBAAU,CAAC,CAACC,GAAG,CAAC,UAAAC,GAAG,EAAA;EAAA,OAAI,CAC1BC,oBAAU,CAACD,GAAG,CAAC,EACf,UAAAE,IAAA,EAMM;AAAA,IAAA,IALJC,IAAI,GAAAD,IAAA,CAAJC,IAAI;MAAAC,kBAAA,GAAAF,IAAA,CACJG,aAAa;AAAbA,MAAAA,aAAa,GAAAD,kBAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,kBAAA;MAAAE,iBAAA,GAAAJ,IAAA,CAClBK,YAAY;AAAZA,MAAAA,YAAY,GAAAD,iBAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,iBAAA;MAAAE,oBAAA,GAAAN,IAAA,CACjBO,eAAe;AAAfA,MAAAA,eAAe,GAAAD,oBAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,oBAAA;MAAAE,qBAAA,GAAAR,IAAA,CACpBS,iBAAiB;AAAjBA,MAAAA,iBAAiB,GAAAD,qBAAA,KAAA,MAAA,GAAG,UAAU,GAAAA,qBAAA;IAE9BE,QAAQ,CAACP,aAAa,CAAC;AAEvB,IAAA,oBACEQ,cAAA,CAACC,kBAAO,EAAAC,aAAA,CAAAA,aAAA,CAAA;MACNC,WAAW,EAAA,IAAA;AACXC,MAAAA,OAAO,EAAEnB,mBAAU,CAACa,iBAAiB,CAAC,CAACR,IAAI,CAAE;MAC7Ce,QAAQ,EAAElB,GAAG,KAAKW,iBAAkB;AACpCQ,MAAAA,QAAQ,EAAC;AAAK,KAAA,EACVZ,YAAY,CAAA,EAAA,EAAA,EAAA;AAAAa,MAAAA,QAAA,eAEhBP,cAAA,CAACQ,qBAAU,EAAAN,aAAA,CAAAA,aAAA,CAAA;AAACO,QAAAA,EAAE,EAAC,MAAM;AAACC,QAAAA,OAAO,EAAC;AAAO,OAAA,EAAKd,eAAe,CAAA,EAAA,EAAA,EAAA;AAAAW,QAAAA,QAAA,EACtDtB,mBAAU,CAACE,GAAG,CAAC,CAACG,IAAI;OAAC,CACZ;AAAC,KAAA,CACN,CAAC;AAEd,EAAA,CAAC,CACF;AAAA,CAAA,CACH;;;;"}
|
|
@@ -0,0 +1,329 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
4
|
+
var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
|
|
5
|
+
var React = require('react');
|
|
6
|
+
var neetoAtoms = require('@bigbinary/neeto-atoms');
|
|
7
|
+
var formik$1 = require('@bigbinary/neeto-atoms/formik');
|
|
8
|
+
var classnames = require('classnames');
|
|
9
|
+
var formik = require('formik');
|
|
10
|
+
var neetoCist = require('@bigbinary/neeto-cist');
|
|
11
|
+
var FormikEditor = require('@bigbinary/neeto-editor/FormikEditor');
|
|
12
|
+
var ramda = require('ramda');
|
|
13
|
+
var reactI18next = require('react-i18next');
|
|
14
|
+
var injectCss = require('../inject-css-B6qYtOJe.js');
|
|
15
|
+
var useHotkeys = require('@bigbinary/neeto-hotkeys');
|
|
16
|
+
var ImageUploader = require('@bigbinary/neeto-image-uploader-frontend/ImageUploader');
|
|
17
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
18
|
+
var i18next = require('i18next');
|
|
19
|
+
var createLucideIcon = require('../createLucideIcon-DBDhE7kE.js');
|
|
20
|
+
var ellipsis = require('../ellipsis-BcfLTtl5.js');
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* @license lucide-react v1.7.0 - ISC
|
|
24
|
+
*
|
|
25
|
+
* This source code is licensed under the ISC license.
|
|
26
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
27
|
+
*/
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
const __iconNode = [
|
|
31
|
+
["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", ry: "2", key: "1m3agn" }],
|
|
32
|
+
["circle", { cx: "9", cy: "9", r: "2", key: "af1f0g" }],
|
|
33
|
+
["path", { d: "m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21", key: "1xmnt7" }]
|
|
34
|
+
];
|
|
35
|
+
const Image = createLucideIcon.createLucideIcon("image", __iconNode);
|
|
36
|
+
|
|
37
|
+
var EDITOR_ADDONS = ["highlight", "emoji", "video-upload", "code-block", "block-quote", "image-upload", "image-upload-unsplash", "divider", "video-embed", "undo", "redo", "table", "callout"];
|
|
38
|
+
var DEFAULT_EDITOR_PROPS = {
|
|
39
|
+
isMenuIndependent: true,
|
|
40
|
+
addons: [],
|
|
41
|
+
size: "medium"
|
|
42
|
+
};
|
|
43
|
+
var IMAGE_UPLOAD_CONFIG = {
|
|
44
|
+
maxImageSize: 1,
|
|
45
|
+
allowedImageTypes: {
|
|
46
|
+
"image/jpg": [".jpg", ".jpeg"],
|
|
47
|
+
"image/png": [".png"],
|
|
48
|
+
"image/svg": [".svg"]
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
var css = ".nm-document-editor__wrapper{color:var(--foreground);height:100%}@media screen and (max-width:768px){.nm-document-editor__wrapper{width:100%}}.nm-document-editor__container{margin:0 auto;max-width:48rem!important;width:100%}.nm-document-editor__menubar{background-color:var(--background);position:sticky;top:0;width:100%;z-index:20}.nm-document-editor__menubar .neeto-editor-fixed-menu,.nm-document-editor__menubar.neeto-editor-fixed-menu{width:100%}.nm-document-editor__title{margin-top:1.5rem;width:100%}.nm-document-editor__title textarea{background-color:transparent;color:var(--foreground);font-size:2.625rem;font-weight:700;line-height:3rem;max-height:none;padding:0;resize:none}.nm-document-editor__title textarea,.nm-document-editor__title textarea:focus-visible,.nm-document-editor__title textarea[aria-invalid=true],.nm-document-editor__title textarea[aria-invalid=true]:focus-visible{--tw-ring-shadow:0 0 #0000!important;--tw-ring-color:transparent!important;border-color:transparent!important;box-shadow:none!important}.nm-document-editor__title textarea::-moz-placeholder{color:var(--muted-foreground);opacity:.5}.nm-document-editor__title textarea::placeholder{color:var(--muted-foreground);opacity:.5}@media screen and (max-width:1024px){.nm-document-editor__title textarea{font-size:2rem;line-height:1.25}}.nm-document-editor__error{margin:.75rem auto}.nm-document-editor__thumbnail{background-color:var(--muted);border-radius:.5rem;overflow:hidden;padding-bottom:56.25%;position:relative;width:100%}.nm-document-editor__thumbnail img{height:100%;inset-inline-start:0;-o-object-fit:cover;object-fit:cover;position:absolute;top:0;width:100%}.nm-document-editor__wrapper .neeto-editor-fixed-menu{background-color:transparent;border-bottom:1px solid var(--border);border-inline-end:0;border-inline-start:0;border-radius:0;border-top:1px solid var(--border);width:100%}.nm-document-editor__wrapper .neeto-editor-fixed-menu__wrapper{align-items:center;display:flex;gap:2px;margin:0 auto;max-width:46.875rem;padding:.375rem 0;padding-inline-end:0!important;padding-inline-start:0!important;width:100%}.nm-document-editor__wrapper .neeto-editor-fixed-menu__wrapper button.neeto-editor-fixed-menu__item{align-items:center;background-color:transparent;border:0;border-radius:.375rem;color:var(--foreground);cursor:pointer;display:inline-flex;flex-shrink:0;height:1.75rem;justify-content:center;min-width:1.75rem;padding:0 .375rem;transition:background-color .15s ease,color .15s ease}.nm-document-editor__wrapper .neeto-editor-fixed-menu__wrapper button.neeto-editor-fixed-menu__item.is-active,.nm-document-editor__wrapper .neeto-editor-fixed-menu__wrapper button.neeto-editor-fixed-menu__item:hover,.nm-document-editor__wrapper .neeto-editor-fixed-menu__wrapper button.neeto-editor-fixed-menu__item[aria-pressed=true],.nm-document-editor__wrapper .neeto-editor-fixed-menu__wrapper button.neeto-editor-fixed-menu__item[data-active=true]{background-color:var(--accent);color:var(--accent-foreground)}.nm-document-editor__wrapper .neeto-editor-fixed-menu__wrapper button.neeto-editor-fixed-menu__item:disabled{cursor:not-allowed;opacity:.4}.nm-document-editor__wrapper .neeto-editor-fixed-menu__wrapper button.neeto-editor-fixed-menu__item svg{height:1rem;width:1rem}@media screen and (max-width:768px){.nm-document-editor__wrapper .neeto-editor-fixed-menu__wrapper{overflow-x:auto;padding:.375rem .5rem}.nm-document-editor__wrapper button.neeto-editor-fixed-menu__item{padding:0 .25rem}}.nm-document-editor__wrapper .ProseMirror{flex-grow:1;height:auto;max-height:none;outline:none;overflow-y:hidden}.nm-document-editor__wrapper .ProseMirror p.is-editor-empty:first-child:before{color:var(--muted-foreground);content:attr(data-placeholder);float:left;height:0;opacity:.5;pointer-events:none}.nm-document-editor__wrapper .editor-content__wrapper{border:none!important;padding:.75rem 1.5rem 2rem!important;width:100%!important}.nm-document-editor__wrapper .editor-content-attachments{border:none;margin:.75rem auto 0;max-width:48rem!important;padding-inline-end:1rem;padding-inline-start:1rem}.nm-document-editor__wrapper .editor-content-attachments--no-attachments{display:none!important}.nm-document-editor__wrapper .neeto-editor-character-count{color:var(--muted-foreground);font-size:.75rem;margin:0 auto;max-width:48rem!important;padding-inline-end:1rem;padding-inline-start:1rem}.nm-document-editor__wrapper .ne-attachments__wrapper{width:100%}.nm-document-editor__wrapper ins{background-color:#c1f4cb!important;text-decoration:none!important}.nm-document-editor__wrapper del{background-color:#faa!important}";
|
|
53
|
+
injectCss.n(css,{});
|
|
54
|
+
|
|
55
|
+
var useEditor = function useEditor(_ref) {
|
|
56
|
+
var onContentChange = _ref.onContentChange,
|
|
57
|
+
editorContentFieldName = _ref.editorContentFieldName,
|
|
58
|
+
onAttachmentChange = _ref.onAttachmentChange,
|
|
59
|
+
onTitleChange = _ref.onTitleChange,
|
|
60
|
+
titleFieldName = _ref.titleFieldName,
|
|
61
|
+
editorRef = _ref.editorRef,
|
|
62
|
+
titleRef = _ref.titleRef;
|
|
63
|
+
var _useFormikContext = formik.useFormikContext(),
|
|
64
|
+
setFieldValue = _useFormikContext.setFieldValue,
|
|
65
|
+
errors = _useFormikContext.errors;
|
|
66
|
+
var handleContentChange = React.useCallback(function (content) {
|
|
67
|
+
setFieldValue(editorContentFieldName, content);
|
|
68
|
+
onContentChange === null || onContentChange === void 0 || onContentChange(content);
|
|
69
|
+
}, [editorContentFieldName, onContentChange, setFieldValue]);
|
|
70
|
+
var handleAttachmentChange = React.useCallback(function (attachments) {
|
|
71
|
+
setFieldValue("attachments", attachments);
|
|
72
|
+
onAttachmentChange === null || onAttachmentChange === void 0 || onAttachmentChange(attachments);
|
|
73
|
+
}, [onAttachmentChange, setFieldValue]);
|
|
74
|
+
var handleTitleChange = function handleTitleChange(event) {
|
|
75
|
+
var title = event.target.value;
|
|
76
|
+
setFieldValue(titleFieldName, title);
|
|
77
|
+
onTitleChange === null || onTitleChange === void 0 || onTitleChange(title);
|
|
78
|
+
};
|
|
79
|
+
var handleEditorBackspaceKeypress = function handleEditorBackspaceKeypress() {
|
|
80
|
+
var _editorRef$current, _editor$state;
|
|
81
|
+
var editor = (_editorRef$current = editorRef.current) === null || _editorRef$current === void 0 ? void 0 : _editorRef$current.editor;
|
|
82
|
+
var selection = editor === null || editor === void 0 || (_editor$state = editor.state) === null || _editor$state === void 0 ? void 0 : _editor$state.selection;
|
|
83
|
+
if (editor !== null && editor !== void 0 && editor.isFocused && neetoCist.isPresent(titleRef.current) && (selection === null || selection === void 0 ? void 0 : selection.anchor) === 1) {
|
|
84
|
+
var title = titleRef.current.value;
|
|
85
|
+
titleRef.current.focus();
|
|
86
|
+
titleRef.current.setSelectionRange(title === null || title === void 0 ? void 0 : title.length, title === null || title === void 0 ? void 0 : title.length);
|
|
87
|
+
}
|
|
88
|
+
};
|
|
89
|
+
var titleHotkeyRef = useHotkeys("return", function () {
|
|
90
|
+
var _editorRef$current2, _editorRef$current3;
|
|
91
|
+
(_editorRef$current2 = editorRef.current) === null || _editorRef$current2 === void 0 || (_editorRef$current2 = _editorRef$current2.editor) === null || _editorRef$current2 === void 0 || (_editorRef$current2 = _editorRef$current2.commands) === null || _editorRef$current2 === void 0 || _editorRef$current2.insertContentAt(0, "<p />");
|
|
92
|
+
(_editorRef$current3 = editorRef.current) === null || _editorRef$current3 === void 0 || (_editorRef$current3 = _editorRef$current3.editor) === null || _editorRef$current3 === void 0 || (_editorRef$current3 = _editorRef$current3.commands) === null || _editorRef$current3 === void 0 || _editorRef$current3.focus("start");
|
|
93
|
+
}, {
|
|
94
|
+
mode: "scoped"
|
|
95
|
+
});
|
|
96
|
+
var editorHotkeyRef = useHotkeys("backspace", handleEditorBackspaceKeypress, {
|
|
97
|
+
mode: "scoped"
|
|
98
|
+
});
|
|
99
|
+
return {
|
|
100
|
+
handleContentChange: handleContentChange,
|
|
101
|
+
handleAttachmentChange: handleAttachmentChange,
|
|
102
|
+
handleTitleChange: handleTitleChange,
|
|
103
|
+
editorHotkeyRef: editorHotkeyRef,
|
|
104
|
+
titleHotkeyRef: titleHotkeyRef,
|
|
105
|
+
errors: errors
|
|
106
|
+
};
|
|
107
|
+
};
|
|
108
|
+
|
|
109
|
+
var MediaUploader = function MediaUploader(_ref) {
|
|
110
|
+
var setIsThumbnailImageModalOpen = _ref.setIsThumbnailImageModalOpen;
|
|
111
|
+
var _useFormikContext = formik.useFormikContext(),
|
|
112
|
+
thumbnailImageUrl = _useFormikContext.values.thumbnailImageUrl,
|
|
113
|
+
setFieldValue = _useFormikContext.setFieldValue,
|
|
114
|
+
initialValues = _useFormikContext.initialValues,
|
|
115
|
+
submitForm = _useFormikContext.submitForm;
|
|
116
|
+
var handleUpload = function handleUpload(file) {
|
|
117
|
+
var url = file.url,
|
|
118
|
+
signedId = file.signedId;
|
|
119
|
+
setFieldValue("thumbnailImage", signedId);
|
|
120
|
+
setFieldValue("thumbnailImageUrl", url);
|
|
121
|
+
setTimeout(function () {
|
|
122
|
+
setIsThumbnailImageModalOpen(false);
|
|
123
|
+
submitForm();
|
|
124
|
+
});
|
|
125
|
+
};
|
|
126
|
+
if (ramda.isEmpty(initialValues)) {
|
|
127
|
+
return /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Spinner, {});
|
|
128
|
+
}
|
|
129
|
+
return /*#__PURE__*/jsxRuntime.jsx(ImageUploader, {
|
|
130
|
+
className: "h-auto w-full",
|
|
131
|
+
src: thumbnailImageUrl,
|
|
132
|
+
uploadConfig: IMAGE_UPLOAD_CONFIG,
|
|
133
|
+
onUploadComplete: handleUpload
|
|
134
|
+
}, thumbnailImageUrl);
|
|
135
|
+
};
|
|
136
|
+
|
|
137
|
+
var getThumbnailAddon = function getThumbnailAddon(command) {
|
|
138
|
+
return {
|
|
139
|
+
label: i18next.t("neetoMolecules.documentEditor.thumbnailImage"),
|
|
140
|
+
optionName: "thumbnail-image",
|
|
141
|
+
command: command,
|
|
142
|
+
icon: Image,
|
|
143
|
+
isEnabled: true,
|
|
144
|
+
"data-testid": "thumbnail-image-addon"
|
|
145
|
+
};
|
|
146
|
+
};
|
|
147
|
+
|
|
148
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
149
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
150
|
+
var Editor = function Editor(_ref) {
|
|
151
|
+
var attachments = _ref.attachments,
|
|
152
|
+
onContentChange = _ref.onContentChange,
|
|
153
|
+
onAttachmentChange = _ref.onAttachmentChange,
|
|
154
|
+
onTitleChange = _ref.onTitleChange,
|
|
155
|
+
_ref$getTitleRef = _ref.getTitleRef,
|
|
156
|
+
getTitleRef = _ref$getTitleRef === void 0 ? neetoCist.noop : _ref$getTitleRef,
|
|
157
|
+
_ref$getEditorRef = _ref.getEditorRef,
|
|
158
|
+
getEditorRef = _ref$getEditorRef === void 0 ? neetoCist.noop : _ref$getEditorRef,
|
|
159
|
+
menuClassName = _ref.menuClassName,
|
|
160
|
+
_ref$editorContentFie = _ref.editorContentFieldName,
|
|
161
|
+
editorContentFieldName = _ref$editorContentFie === void 0 ? "htmlContent" : _ref$editorContentFie,
|
|
162
|
+
_ref$titleFieldName = _ref.titleFieldName,
|
|
163
|
+
titleFieldName = _ref$titleFieldName === void 0 ? "title" : _ref$titleFieldName,
|
|
164
|
+
_ref$editorProps = _ref.editorProps,
|
|
165
|
+
customEditorProps = _ref$editorProps === void 0 ? {} : _ref$editorProps,
|
|
166
|
+
_ref$titleProps = _ref.titleProps,
|
|
167
|
+
titleProps = _ref$titleProps === void 0 ? {} : _ref$titleProps,
|
|
168
|
+
_ref$hasThumbnailImag = _ref.hasThumbnailImage,
|
|
169
|
+
hasThumbnailImage = _ref$hasThumbnailImag === void 0 ? false : _ref$hasThumbnailImag,
|
|
170
|
+
children = _ref.children;
|
|
171
|
+
var _useTranslation = reactI18next.useTranslation(),
|
|
172
|
+
t = _useTranslation.t;
|
|
173
|
+
var _useFormikContext = formik.useFormikContext(),
|
|
174
|
+
values = _useFormikContext.values,
|
|
175
|
+
setFieldValue = _useFormikContext.setFieldValue,
|
|
176
|
+
submitForm = _useFormikContext.submitForm;
|
|
177
|
+
var thumbnailImageUrl = values.thumbnailImageUrl;
|
|
178
|
+
var titleRef = React.useRef();
|
|
179
|
+
var editorRef = React.useRef();
|
|
180
|
+
var _useState = React.useState(false),
|
|
181
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
182
|
+
isThumbnailImageModalOpen = _useState2[0],
|
|
183
|
+
setIsThumbnailImageModalOpen = _useState2[1];
|
|
184
|
+
var editorProps = React.useMemo(function () {
|
|
185
|
+
var baseProps = ramda.mergeRight(DEFAULT_EDITOR_PROPS, customEditorProps);
|
|
186
|
+
if (!hasThumbnailImage) return baseProps;
|
|
187
|
+
var thumbnailAddon = getThumbnailAddon(function () {
|
|
188
|
+
return setIsThumbnailImageModalOpen(true);
|
|
189
|
+
});
|
|
190
|
+
return ramda.mergeRight(baseProps, {
|
|
191
|
+
addonCommands: [thumbnailAddon]
|
|
192
|
+
});
|
|
193
|
+
}, [customEditorProps, hasThumbnailImage]);
|
|
194
|
+
var _useEditor = useEditor({
|
|
195
|
+
onContentChange: onContentChange,
|
|
196
|
+
editorContentFieldName: editorContentFieldName,
|
|
197
|
+
onAttachmentChange: onAttachmentChange,
|
|
198
|
+
onTitleChange: onTitleChange,
|
|
199
|
+
titleFieldName: titleFieldName,
|
|
200
|
+
editorRef: editorRef,
|
|
201
|
+
titleRef: titleRef
|
|
202
|
+
}),
|
|
203
|
+
handleContentChange = _useEditor.handleContentChange,
|
|
204
|
+
handleAttachmentChange = _useEditor.handleAttachmentChange,
|
|
205
|
+
handleTitleChange = _useEditor.handleTitleChange,
|
|
206
|
+
editorHotkeyRef = _useEditor.editorHotkeyRef,
|
|
207
|
+
titleHotkeyRef = _useEditor.titleHotkeyRef,
|
|
208
|
+
errors = _useEditor.errors;
|
|
209
|
+
var setTitleRef = function setTitleRef(node) {
|
|
210
|
+
titleHotkeyRef.current = node;
|
|
211
|
+
getTitleRef(node);
|
|
212
|
+
titleRef.current = node;
|
|
213
|
+
};
|
|
214
|
+
var setEditorRef = React.useCallback(function (node) {
|
|
215
|
+
editorRef.current = node;
|
|
216
|
+
getEditorRef(node);
|
|
217
|
+
}, []);
|
|
218
|
+
var addons = React.useMemo(function () {
|
|
219
|
+
return EDITOR_ADDONS.concat(editorProps.addons || []);
|
|
220
|
+
}, [editorProps.addons]);
|
|
221
|
+
var handleTab = function handleTab() {
|
|
222
|
+
var _editorRef$current, _editorRef$current2;
|
|
223
|
+
var isListActive = ((_editorRef$current = editorRef.current) === null || _editorRef$current === void 0 || (_editorRef$current = _editorRef$current.editor) === null || _editorRef$current === void 0 ? void 0 : _editorRef$current.isActive("orderedList")) || ((_editorRef$current2 = editorRef.current) === null || _editorRef$current2 === void 0 || (_editorRef$current2 = _editorRef$current2.editor) === null || _editorRef$current2 === void 0 ? void 0 : _editorRef$current2.isActive("bulletList"));
|
|
224
|
+
if (isListActive) {
|
|
225
|
+
var _editorRef$current3;
|
|
226
|
+
(_editorRef$current3 = editorRef.current) === null || _editorRef$current3 === void 0 || (_editorRef$current3 = _editorRef$current3.editor) === null || _editorRef$current3 === void 0 || (_editorRef$current3 = _editorRef$current3.commands) === null || _editorRef$current3 === void 0 || _editorRef$current3.sinkListItem("listItem");
|
|
227
|
+
return true;
|
|
228
|
+
}
|
|
229
|
+
return true;
|
|
230
|
+
};
|
|
231
|
+
var handleDeleteThumbnail = function handleDeleteThumbnail() {
|
|
232
|
+
setFieldValue("thumbnailImage", "");
|
|
233
|
+
setFieldValue("thumbnailImageUrl", "");
|
|
234
|
+
setTimeout(submitForm);
|
|
235
|
+
};
|
|
236
|
+
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
237
|
+
className: "nm-document-editor__wrapper",
|
|
238
|
+
"data-testid": "document-editor-container",
|
|
239
|
+
ref: editorHotkeyRef,
|
|
240
|
+
children: [/*#__PURE__*/jsxRuntime.jsxs(FormikEditor, _objectSpread(_objectSpread({
|
|
241
|
+
attachmentsClassName: "editor-content-attachments w-full flex-shrink-0",
|
|
242
|
+
className: "h-full w-full",
|
|
243
|
+
contentClassName: "editor-content__wrapper nm-document-editor__container",
|
|
244
|
+
"data-testid": "neeto-molecules-document-content-text-area",
|
|
245
|
+
error: undefined,
|
|
246
|
+
errorWrapperClassName: "w-full min-h-full flex flex-col items-center",
|
|
247
|
+
hideSlashCommands: false,
|
|
248
|
+
menuClassName: classnames("nm-document-editor__menubar", menuClassName),
|
|
249
|
+
name: editorContentFieldName,
|
|
250
|
+
ref: setEditorRef
|
|
251
|
+
}, _objectSpread(_objectSpread({
|
|
252
|
+
attachments: attachments
|
|
253
|
+
}, editorProps), {}, {
|
|
254
|
+
addons: addons
|
|
255
|
+
})), {}, {
|
|
256
|
+
contentWrapperClassName: "w-full flex flex-col flex-grow",
|
|
257
|
+
keyboardShortcuts: _objectSpread({
|
|
258
|
+
Tab: handleTab
|
|
259
|
+
}, editorProps.keyboardShortcuts),
|
|
260
|
+
onChange: handleContentChange,
|
|
261
|
+
onChangeAttachments: handleAttachmentChange,
|
|
262
|
+
children: [children, /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
263
|
+
className: "nm-document-editor__container px-6",
|
|
264
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(formik$1.Textarea, _objectSpread({
|
|
265
|
+
nakedTextarea: true,
|
|
266
|
+
className: "nm-document-editor__title",
|
|
267
|
+
"data-testid": "neeto-molecules-document-title-text-field",
|
|
268
|
+
name: titleFieldName,
|
|
269
|
+
ref: setTitleRef,
|
|
270
|
+
rows: 1,
|
|
271
|
+
placeholder: titleProps.placeholder || t("neetoMolecules.documentEditor.title"),
|
|
272
|
+
onChange: handleTitleChange,
|
|
273
|
+
onKeyDown: function onKeyDown(e) {
|
|
274
|
+
return e.key === "Enter" && !e.shiftKey && e.preventDefault();
|
|
275
|
+
}
|
|
276
|
+
}, titleProps)), thumbnailImageUrl && /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
277
|
+
className: "group relative mt-4",
|
|
278
|
+
children: [/*#__PURE__*/jsxRuntime.jsx("div", {
|
|
279
|
+
className: "nm-document-editor__thumbnail",
|
|
280
|
+
children: /*#__PURE__*/jsxRuntime.jsx("img", {
|
|
281
|
+
alt: "Cover",
|
|
282
|
+
src: thumbnailImageUrl
|
|
283
|
+
})
|
|
284
|
+
}), /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
285
|
+
className: "absolute end-2 top-2",
|
|
286
|
+
children: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.DropdownMenu, {
|
|
287
|
+
buttonProps: {
|
|
288
|
+
variant: "secondary",
|
|
289
|
+
size: "icon-sm"
|
|
290
|
+
},
|
|
291
|
+
icon: ellipsis.Ellipsis,
|
|
292
|
+
children: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.DropdownMenu.MenuItem, {
|
|
293
|
+
onClick: handleDeleteThumbnail,
|
|
294
|
+
children: t("neetoMolecules.documentEditor.delete")
|
|
295
|
+
})
|
|
296
|
+
})
|
|
297
|
+
})]
|
|
298
|
+
}), errors[editorContentFieldName] && /*#__PURE__*/jsxRuntime.jsx("p", {
|
|
299
|
+
className: "text-destructive nm-document-editor__error text-sm font-normal",
|
|
300
|
+
"data-slot": "field-error",
|
|
301
|
+
"data-testid": "articles-content-input-error",
|
|
302
|
+
role: "alert",
|
|
303
|
+
children: errors[editorContentFieldName]
|
|
304
|
+
})]
|
|
305
|
+
})]
|
|
306
|
+
})), /*#__PURE__*/jsxRuntime.jsxs(neetoAtoms.Dialog, {
|
|
307
|
+
"data-testid": "thumbnail-image-modal",
|
|
308
|
+
isOpen: isThumbnailImageModalOpen,
|
|
309
|
+
size: "medium",
|
|
310
|
+
onClose: function onClose() {
|
|
311
|
+
return setIsThumbnailImageModalOpen(false);
|
|
312
|
+
},
|
|
313
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Dialog.Header, {
|
|
314
|
+
children: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Dialog.Title, {
|
|
315
|
+
children: t("neetoMolecules.documentEditor.uploadThumbnailImage")
|
|
316
|
+
})
|
|
317
|
+
}), /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Dialog.Body, {
|
|
318
|
+
children: /*#__PURE__*/jsxRuntime.jsx(MediaUploader, {
|
|
319
|
+
setIsThumbnailImageModalOpen: setIsThumbnailImageModalOpen
|
|
320
|
+
})
|
|
321
|
+
})]
|
|
322
|
+
})]
|
|
323
|
+
});
|
|
324
|
+
};
|
|
325
|
+
Editor.displayName = "DocumentEditor";
|
|
326
|
+
var index = /*#__PURE__*/React.memo(Editor);
|
|
327
|
+
|
|
328
|
+
module.exports = index;
|
|
329
|
+
//# sourceMappingURL=DocumentEditor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DocumentEditor.js","sources":["../../../node_modules/lucide-react/dist/esm/icons/image.js","../../../src/v2/components/DocumentEditor/constants.js","../../../src/v2/components/DocumentEditor/hooks/useEditor.js","../../../src/v2/components/DocumentEditor/MediaUploader.jsx","../../../src/v2/components/DocumentEditor/utils.js","../../../src/v2/components/DocumentEditor/index.jsx"],"sourcesContent":["/**\n * @license lucide-react v1.7.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"rect\", { width: \"18\", height: \"18\", x: \"3\", y: \"3\", rx: \"2\", ry: \"2\", key: \"1m3agn\" }],\n [\"circle\", { cx: \"9\", cy: \"9\", r: \"2\", key: \"af1f0g\" }],\n [\"path\", { d: \"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21\", key: \"1xmnt7\" }]\n];\nconst Image = createLucideIcon(\"image\", __iconNode);\n\nexport { __iconNode, Image as default };\n//# sourceMappingURL=image.js.map\n","export const EDITOR_ADDONS = [\n \"highlight\",\n \"emoji\",\n \"video-upload\",\n \"code-block\",\n \"block-quote\",\n \"image-upload\",\n \"image-upload-unsplash\",\n \"divider\",\n \"video-embed\",\n \"undo\",\n \"redo\",\n \"table\",\n \"callout\",\n];\n\nexport const DEFAULT_EDITOR_PROPS = {\n isMenuIndependent: true,\n addons: [],\n size: \"medium\",\n};\n\nexport const IMAGE_UPLOAD_CONFIG = {\n maxImageSize: 1,\n allowedImageTypes: {\n \"image/jpg\": [\".jpg\", \".jpeg\"],\n \"image/png\": [\".png\"],\n \"image/svg\": [\".svg\"],\n },\n};\n","import { useCallback } from \"react\";\n\nimport { useFormikContext } from \"formik\";\nimport { isPresent } from \"neetocist\";\nimport useHotkeys from \"neetohotkeys\";\n\nconst useEditor = ({\n onContentChange,\n editorContentFieldName,\n onAttachmentChange,\n onTitleChange,\n titleFieldName,\n editorRef,\n titleRef,\n}) => {\n const { setFieldValue, errors } = useFormikContext();\n\n const handleContentChange = useCallback(\n content => {\n setFieldValue(editorContentFieldName, content);\n onContentChange?.(content);\n },\n [editorContentFieldName, onContentChange, setFieldValue]\n );\n\n const handleAttachmentChange = useCallback(\n attachments => {\n setFieldValue(\"attachments\", attachments);\n onAttachmentChange?.(attachments);\n },\n [onAttachmentChange, setFieldValue]\n );\n\n const handleTitleChange = event => {\n const title = event.target.value;\n setFieldValue(titleFieldName, title);\n onTitleChange?.(title);\n };\n\n const handleEditorBackspaceKeypress = () => {\n const editor = editorRef.current?.editor;\n const selection = editor?.state?.selection;\n if (\n editor?.isFocused &&\n isPresent(titleRef.current) &&\n selection?.anchor === 1\n ) {\n const title = titleRef.current.value;\n titleRef.current.focus();\n titleRef.current.setSelectionRange(title?.length, title?.length);\n }\n };\n\n const titleHotkeyRef = useHotkeys(\n \"return\",\n () => {\n editorRef.current?.editor?.commands?.insertContentAt(0, \"<p />\");\n editorRef.current?.editor?.commands?.focus(\"start\");\n },\n { mode: \"scoped\" }\n );\n\n const editorHotkeyRef = useHotkeys(\n \"backspace\",\n handleEditorBackspaceKeypress,\n { mode: \"scoped\" }\n );\n\n return {\n handleContentChange,\n handleAttachmentChange,\n handleTitleChange,\n editorHotkeyRef,\n titleHotkeyRef,\n errors,\n };\n};\n\nexport default useEditor;\n","import { Spinner } from \"@bigbinary/neeto-atoms\";\nimport { useFormikContext } from \"formik\";\nimport { ImageUploader } from \"neetoimageuploader\";\nimport { isEmpty } from \"ramda\";\n\nimport { IMAGE_UPLOAD_CONFIG } from \"./constants\";\n\nconst MediaUploader = ({ setIsThumbnailImageModalOpen }) => {\n const {\n values: { thumbnailImageUrl },\n setFieldValue,\n initialValues,\n submitForm,\n } = useFormikContext();\n\n const handleUpload = file => {\n const { url, signedId } = file;\n setFieldValue(\"thumbnailImage\", signedId);\n setFieldValue(\"thumbnailImageUrl\", url);\n setTimeout(() => {\n setIsThumbnailImageModalOpen(false);\n submitForm();\n });\n };\n\n if (isEmpty(initialValues)) {\n return <Spinner />;\n }\n\n return (\n <ImageUploader\n className=\"h-auto w-full\"\n key={thumbnailImageUrl}\n src={thumbnailImageUrl}\n uploadConfig={IMAGE_UPLOAD_CONFIG}\n onUploadComplete={handleUpload}\n />\n );\n};\n\nexport default MediaUploader;\n","import { t } from \"i18next\";\nimport { Image } from \"lucide-react\";\n\nexport const getThumbnailAddon = command => ({\n label: t(\"neetoMolecules.documentEditor.thumbnailImage\"),\n optionName: \"thumbnail-image\",\n command,\n icon: Image,\n isEnabled: true,\n \"data-testid\": \"thumbnail-image-addon\",\n});\n","import { memo, useCallback, useMemo, useRef, useState } from \"react\";\n\nimport { Dialog, DropdownMenu } from \"@bigbinary/neeto-atoms\";\nimport { Textarea as FormikTextarea } from \"@bigbinary/neeto-atoms/formik\";\nimport classNames from \"classnames\";\nimport { useFormikContext } from \"formik\";\nimport { Ellipsis } from \"lucide-react\";\nimport { noop } from \"neetocist\";\nimport { FormikEditor } from \"neetoeditor\";\nimport PropTypes from \"prop-types\";\nimport { mergeRight } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { DEFAULT_EDITOR_PROPS, EDITOR_ADDONS } from \"./constants\";\nimport \"./editor.css\";\nimport useEditor from \"./hooks/useEditor\";\nimport MediaUploader from \"./MediaUploader\";\nimport { getThumbnailAddon } from \"./utils\";\n\nconst Editor = ({\n attachments,\n onContentChange,\n onAttachmentChange,\n onTitleChange,\n getTitleRef = noop,\n getEditorRef = noop,\n menuClassName,\n editorContentFieldName = \"htmlContent\",\n titleFieldName = \"title\",\n editorProps: customEditorProps = {},\n titleProps = {},\n hasThumbnailImage = false,\n children,\n}) => {\n const { t } = useTranslation();\n const { values, setFieldValue, submitForm } = useFormikContext();\n const { thumbnailImageUrl } = values;\n\n const titleRef = useRef();\n const editorRef = useRef();\n const [isThumbnailImageModalOpen, setIsThumbnailImageModalOpen] =\n useState(false);\n\n const editorProps = useMemo(() => {\n const baseProps = mergeRight(DEFAULT_EDITOR_PROPS, customEditorProps);\n\n if (!hasThumbnailImage) return baseProps;\n\n const thumbnailAddon = getThumbnailAddon(() =>\n setIsThumbnailImageModalOpen(true)\n );\n\n return mergeRight(baseProps, { addonCommands: [thumbnailAddon] });\n }, [customEditorProps, hasThumbnailImage]);\n\n const {\n handleContentChange,\n handleAttachmentChange,\n handleTitleChange,\n editorHotkeyRef,\n titleHotkeyRef,\n errors,\n } = useEditor({\n onContentChange,\n editorContentFieldName,\n onAttachmentChange,\n onTitleChange,\n titleFieldName,\n editorRef,\n titleRef,\n });\n\n const setTitleRef = node => {\n titleHotkeyRef.current = node;\n getTitleRef(node);\n titleRef.current = node;\n };\n\n const setEditorRef = useCallback(node => {\n editorRef.current = node;\n getEditorRef(node);\n }, []);\n\n const addons = useMemo(\n () => EDITOR_ADDONS.concat(editorProps.addons || []),\n [editorProps.addons]\n );\n\n const handleTab = () => {\n const isListActive =\n editorRef.current?.editor?.isActive(\"orderedList\") ||\n editorRef.current?.editor?.isActive(\"bulletList\");\n\n if (isListActive) {\n editorRef.current?.editor?.commands?.sinkListItem(\"listItem\");\n\n return true;\n }\n\n return true;\n };\n\n const handleDeleteThumbnail = () => {\n setFieldValue(\"thumbnailImage\", \"\");\n setFieldValue(\"thumbnailImageUrl\", \"\");\n setTimeout(submitForm);\n };\n\n return (\n <div\n className=\"nm-document-editor__wrapper\"\n data-testid=\"document-editor-container\"\n ref={editorHotkeyRef}\n >\n <FormikEditor\n attachmentsClassName=\"editor-content-attachments w-full flex-shrink-0\"\n className=\"h-full w-full\"\n contentClassName=\"editor-content__wrapper nm-document-editor__container\"\n data-testid=\"neeto-molecules-document-content-text-area\"\n error={undefined}\n errorWrapperClassName=\"w-full min-h-full flex flex-col items-center\"\n hideSlashCommands={false}\n menuClassName={classNames(\"nm-document-editor__menubar\", menuClassName)}\n name={editorContentFieldName}\n ref={setEditorRef}\n {...{ attachments, ...editorProps, addons }}\n contentWrapperClassName=\"w-full flex flex-col flex-grow\"\n keyboardShortcuts={{ Tab: handleTab, ...editorProps.keyboardShortcuts }}\n onChange={handleContentChange}\n onChangeAttachments={handleAttachmentChange}\n >\n {children}\n <div className=\"nm-document-editor__container px-6\">\n <FormikTextarea\n nakedTextarea\n className=\"nm-document-editor__title\"\n data-testid=\"neeto-molecules-document-title-text-field\"\n name={titleFieldName}\n ref={setTitleRef}\n rows={1}\n placeholder={\n titleProps.placeholder || t(\"neetoMolecules.documentEditor.title\")\n }\n onChange={handleTitleChange}\n onKeyDown={e =>\n e.key === \"Enter\" && !e.shiftKey && e.preventDefault()\n }\n {...titleProps}\n />\n {thumbnailImageUrl && (\n <div className=\"group relative mt-4\">\n <div className=\"nm-document-editor__thumbnail\">\n <img alt=\"Cover\" src={thumbnailImageUrl} />\n </div>\n <div className=\"absolute end-2 top-2\">\n <DropdownMenu\n buttonProps={{ variant: \"secondary\", size: \"icon-sm\" }}\n icon={Ellipsis}\n >\n <DropdownMenu.MenuItem onClick={handleDeleteThumbnail}>\n {t(\"neetoMolecules.documentEditor.delete\")}\n </DropdownMenu.MenuItem>\n </DropdownMenu>\n </div>\n </div>\n )}\n {errors[editorContentFieldName] && (\n <p\n className=\"text-destructive nm-document-editor__error text-sm font-normal\"\n data-slot=\"field-error\"\n data-testid=\"articles-content-input-error\"\n role=\"alert\"\n >\n {errors[editorContentFieldName]}\n </p>\n )}\n </div>\n </FormikEditor>\n <Dialog\n data-testid=\"thumbnail-image-modal\"\n isOpen={isThumbnailImageModalOpen}\n size=\"medium\"\n onClose={() => setIsThumbnailImageModalOpen(false)}\n >\n <Dialog.Header>\n <Dialog.Title>\n {t(\"neetoMolecules.documentEditor.uploadThumbnailImage\")}\n </Dialog.Title>\n </Dialog.Header>\n <Dialog.Body>\n <MediaUploader {...{ setIsThumbnailImageModalOpen }} />\n </Dialog.Body>\n </Dialog>\n </div>\n );\n};\n\nEditor.propTypes = {\n attachments: PropTypes.arrayOf(\n PropTypes.shape({\n contentType: PropTypes.string,\n filename: PropTypes.string,\n signedId: PropTypes.string,\n url: PropTypes.string,\n })\n ),\n onContentChange: PropTypes.func,\n onAttachmentChange: PropTypes.func,\n onTitleChange: PropTypes.func,\n getTitleRef: PropTypes.func,\n getEditorRef: PropTypes.func,\n editorContentFieldName: PropTypes.string,\n titleFieldName: PropTypes.string,\n editorProps: PropTypes.object,\n titleProps: PropTypes.object,\n menuClassName: PropTypes.string,\n children: PropTypes.node,\n hasThumbnailImage: PropTypes.bool,\n};\n\nEditor.displayName = \"DocumentEditor\";\n\nexport default memo(Editor);\n"],"names":["createLucideIcon","EDITOR_ADDONS","DEFAULT_EDITOR_PROPS","isMenuIndependent","addons","size","IMAGE_UPLOAD_CONFIG","maxImageSize","allowedImageTypes","useEditor","_ref","onContentChange","editorContentFieldName","onAttachmentChange","onTitleChange","titleFieldName","editorRef","titleRef","_useFormikContext","useFormikContext","setFieldValue","errors","handleContentChange","useCallback","content","handleAttachmentChange","attachments","handleTitleChange","event","title","target","value","handleEditorBackspaceKeypress","_editorRef$current","_editor$state","editor","current","selection","state","isFocused","isPresent","anchor","focus","setSelectionRange","length","titleHotkeyRef","useHotkeys","_editorRef$current2","_editorRef$current3","commands","insertContentAt","mode","editorHotkeyRef","MediaUploader","setIsThumbnailImageModalOpen","thumbnailImageUrl","values","initialValues","submitForm","handleUpload","file","url","signedId","setTimeout","isEmpty","_jsx","Spinner","ImageUploader","className","src","uploadConfig","onUploadComplete","getThumbnailAddon","command","label","t","optionName","icon","Image","isEnabled","Editor","_ref$getTitleRef","getTitleRef","noop","_ref$getEditorRef","getEditorRef","menuClassName","_ref$editorContentFie","_ref$titleFieldName","_ref$editorProps","editorProps","customEditorProps","_ref$titleProps","titleProps","_ref$hasThumbnailImag","hasThumbnailImage","children","_useTranslation","useTranslation","useRef","_useState","useState","_useState2","_slicedToArray","isThumbnailImageModalOpen","useMemo","baseProps","mergeRight","thumbnailAddon","addonCommands","_useEditor","setTitleRef","node","setEditorRef","concat","handleTab","isListActive","isActive","sinkListItem","handleDeleteThumbnail","_jsxs","ref","FormikEditor","_objectSpread","attachmentsClassName","contentClassName","error","undefined","errorWrapperClassName","hideSlashCommands","classNames","name","contentWrapperClassName","keyboardShortcuts","Tab","onChange","onChangeAttachments","FormikTextarea","nakedTextarea","rows","placeholder","onKeyDown","e","key","shiftKey","preventDefault","alt","DropdownMenu","buttonProps","variant","Ellipsis","MenuItem","onClick","role","Dialog","isOpen","onClose","Header","Title","Body","displayName","memo"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
4
|
+
var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
|
|
5
|
+
var React = require('react');
|
|
6
|
+
var neetoAtoms = require('@bigbinary/neeto-atoms');
|
|
7
|
+
var primitives = require('@bigbinary/neeto-atoms/primitives');
|
|
8
|
+
var reactI18next = require('react-i18next');
|
|
9
|
+
var emojiMart = require('emoji-mart');
|
|
10
|
+
var reactQuery = require('@tanstack/react-query');
|
|
11
|
+
var axios = require('axios');
|
|
12
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
13
|
+
var createLucideIcon = require('../createLucideIcon-DBDhE7kE.js');
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* @license lucide-react v1.7.0 - ISC
|
|
17
|
+
*
|
|
18
|
+
* This source code is licensed under the ISC license.
|
|
19
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
const __iconNode = [
|
|
24
|
+
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
|
|
25
|
+
["path", { d: "M8 14s1.5 2 4 2 4-2 4-2", key: "1y1vjs" }],
|
|
26
|
+
["line", { x1: "9", x2: "9.01", y1: "9", y2: "9", key: "yxxnd0" }],
|
|
27
|
+
["line", { x1: "15", x2: "15.01", y1: "9", y2: "9", key: "1p4y9e" }]
|
|
28
|
+
];
|
|
29
|
+
const Smile = createLucideIcon.createLucideIcon("smile", __iconNode);
|
|
30
|
+
|
|
31
|
+
var fetch = function fetch() {
|
|
32
|
+
return axios.get("https://cdn.jsdelivr.net/npm/@emoji-mart/data");
|
|
33
|
+
};
|
|
34
|
+
var emojiPickerApi = {
|
|
35
|
+
fetch: fetch
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
var QUERY_KEYS = {
|
|
39
|
+
EMOJI_DATA: "emoji-data"
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
var useEmojiData = function useEmojiData() {
|
|
43
|
+
return reactQuery.useQuery({
|
|
44
|
+
queryKey: [QUERY_KEYS.EMOJI_DATA],
|
|
45
|
+
queryFn: emojiPickerApi.fetch
|
|
46
|
+
});
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
var EmojiPickerMenu = function EmojiPickerMenu(_ref) {
|
|
50
|
+
var onEmojiSelect = _ref.onEmojiSelect;
|
|
51
|
+
var _useEmojiData = useEmojiData(),
|
|
52
|
+
data = _useEmojiData.data;
|
|
53
|
+
var _useTranslation = reactI18next.useTranslation(),
|
|
54
|
+
t = _useTranslation.t;
|
|
55
|
+
var createPicker = function createPicker(ref) {
|
|
56
|
+
new emojiMart.Picker({
|
|
57
|
+
autoFocus: true,
|
|
58
|
+
data: data,
|
|
59
|
+
"native": true,
|
|
60
|
+
onEmojiSelect: onEmojiSelect,
|
|
61
|
+
previewPosition: "none",
|
|
62
|
+
ref: {
|
|
63
|
+
current: ref
|
|
64
|
+
},
|
|
65
|
+
skinTonePosition: "none",
|
|
66
|
+
style: {
|
|
67
|
+
maxWidth: "100%"
|
|
68
|
+
},
|
|
69
|
+
theme: "light"
|
|
70
|
+
});
|
|
71
|
+
};
|
|
72
|
+
return /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
73
|
+
"aria-label": t("neetoMolecules.common.emojiPicker"),
|
|
74
|
+
ref: createPicker,
|
|
75
|
+
role: "dialog",
|
|
76
|
+
style: {
|
|
77
|
+
minWidth: "350px"
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
83
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
84
|
+
var EmojiPicker = function EmojiPicker(_ref) {
|
|
85
|
+
var onSelect = _ref.onSelect,
|
|
86
|
+
dropdownProps = _ref.dropdownProps,
|
|
87
|
+
_ref$defaultOpen = _ref.defaultOpen,
|
|
88
|
+
defaultOpen = _ref$defaultOpen === void 0 ? false : _ref$defaultOpen;
|
|
89
|
+
var _useTranslation = reactI18next.useTranslation(),
|
|
90
|
+
t = _useTranslation.t;
|
|
91
|
+
var _useState = React.useState(defaultOpen),
|
|
92
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
93
|
+
isOpen = _useState2[0],
|
|
94
|
+
setIsOpen = _useState2[1];
|
|
95
|
+
var onEmojiClick = function onEmojiClick(emoji) {
|
|
96
|
+
setIsOpen(false);
|
|
97
|
+
onSelect(emoji);
|
|
98
|
+
};
|
|
99
|
+
return /*#__PURE__*/jsxRuntime.jsxs(primitives.Popover, {
|
|
100
|
+
open: isOpen,
|
|
101
|
+
onOpenChange: setIsOpen,
|
|
102
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(primitives.PopoverTrigger, {
|
|
103
|
+
asChild: true,
|
|
104
|
+
children: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Button, {
|
|
105
|
+
"aria-haspopup": "dialog",
|
|
106
|
+
"aria-label": t("neetoMolecules.common.emojiPicker"),
|
|
107
|
+
"data-testid": "emoji-picker-dropdown-icon",
|
|
108
|
+
icon: Smile,
|
|
109
|
+
size: "icon-sm",
|
|
110
|
+
variant: "ghost"
|
|
111
|
+
})
|
|
112
|
+
}), /*#__PURE__*/jsxRuntime.jsx(primitives.PopoverContent, _objectSpread(_objectSpread({
|
|
113
|
+
align: "start",
|
|
114
|
+
className: "w-fit overflow-x-hidden p-0",
|
|
115
|
+
side: "bottom"
|
|
116
|
+
}, dropdownProps), {}, {
|
|
117
|
+
children: /*#__PURE__*/jsxRuntime.jsx(EmojiPickerMenu, {
|
|
118
|
+
onEmojiSelect: onEmojiClick
|
|
119
|
+
})
|
|
120
|
+
}))]
|
|
121
|
+
});
|
|
122
|
+
};
|
|
123
|
+
|
|
124
|
+
module.exports = EmojiPicker;
|
|
125
|
+
//# sourceMappingURL=EmojiPicker.js.map
|