@bigbinary/neeto-editor-frontend 2.0.3 → 2.0.5
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/.ready +1 -1
- package/dist/Attachments.js +4 -4
- package/dist/Editor.js +11 -19
- package/dist/Editor.js.map +1 -1
- package/dist/EditorContent.js +2 -2
- package/dist/FormikEditor.js +8 -8
- package/dist/Menu.js +6 -6
- package/dist/{chunk-EgiY42Lm.js → chunk-2yDx3K8L.js} +6 -6
- package/dist/{chunk-EgiY42Lm.js.map → chunk-2yDx3K8L.js.map} +1 -1
- package/dist/{chunk-CiVaat1H.js → chunk-9vP3rEtI.js} +3 -3
- package/dist/{chunk-CiVaat1H.js.map → chunk-9vP3rEtI.js.map} +1 -1
- package/dist/{chunk-Bw7QSBHf.js → chunk-C4efob7L.js} +6 -6
- package/dist/chunk-C4efob7L.js.map +1 -0
- package/dist/{chunk-eOIMt7jp.js → chunk-C6Wn4nia.js} +3 -3
- package/dist/{chunk-eOIMt7jp.js.map → chunk-C6Wn4nia.js.map} +1 -1
- package/dist/{chunk-DZTg5JCM.js → chunk-C893rdfW.js} +4 -4
- package/dist/{chunk-DZTg5JCM.js.map → chunk-C893rdfW.js.map} +1 -1
- package/dist/{chunk-DoZN1FPd.js → chunk-CA9DTddx.js} +90 -16
- package/dist/chunk-CA9DTddx.js.map +1 -0
- package/dist/{chunk-NDmv6peW.js → chunk-CJfLgMJF.js} +5 -5
- package/dist/{chunk-NDmv6peW.js.map → chunk-CJfLgMJF.js.map} +1 -1
- package/dist/{chunk-DSKEeXyj.js → chunk-CNIDH-FD.js} +2 -2
- package/dist/{chunk-DSKEeXyj.js.map → chunk-CNIDH-FD.js.map} +1 -1
- package/dist/{chunk-Bg0xYw5S.js → chunk-C_P2M3zF.js} +3 -3
- package/dist/{chunk-Bg0xYw5S.js.map → chunk-C_P2M3zF.js.map} +1 -1
- package/dist/{chunk-Ba4Q3HC8.js → chunk-Cnk9-9SJ.js} +50 -11
- package/dist/chunk-Cnk9-9SJ.js.map +1 -0
- package/dist/{chunk-BFKmIsWV.js → chunk-D3QbacSt.js} +2 -2
- package/dist/{chunk-BFKmIsWV.js.map → chunk-D3QbacSt.js.map} +1 -1
- package/dist/{chunk-CHmdEEC5.js → chunk-Dm4Qt79M.js} +5 -5
- package/dist/{chunk-CHmdEEC5.js.map → chunk-Dm4Qt79M.js.map} +1 -1
- package/dist/{chunk-CyfiHLWx.js → chunk-UwzgbfZD.js} +12 -2
- package/dist/{chunk-CyfiHLWx.js.map → chunk-UwzgbfZD.js.map} +1 -1
- package/dist/{chunk-C4ngrj-P.js → chunk-jiUuXPs1.js} +5 -5
- package/dist/{chunk-C4ngrj-P.js.map → chunk-jiUuXPs1.js.map} +1 -1
- package/dist/cjs/Attachments.cjs.js +3 -3
- package/dist/cjs/Editor.cjs.js +10 -18
- package/dist/cjs/Editor.cjs.js.map +1 -1
- package/dist/cjs/EditorContent.cjs.js +2 -2
- package/dist/cjs/FormikEditor.cjs.js +7 -7
- package/dist/cjs/Menu.cjs.js +5 -5
- package/dist/cjs/{chunk-CtTb6u9F.cjs.js → chunk-B1X-JIj8.cjs.js} +2 -2
- package/dist/cjs/{chunk-CtTb6u9F.cjs.js.map → chunk-B1X-JIj8.cjs.js.map} +1 -1
- package/dist/cjs/{chunk-Bmd6d-x7.cjs.js → chunk-BETPWBif.cjs.js} +5 -5
- package/dist/cjs/chunk-BETPWBif.cjs.js.map +1 -0
- package/dist/cjs/{chunk-Cgxhrpuh.cjs.js → chunk-BL4O70ER.cjs.js} +4 -4
- package/dist/cjs/{chunk-Cgxhrpuh.cjs.js.map → chunk-BL4O70ER.cjs.js.map} +1 -1
- package/dist/cjs/{chunk-R9zpTo5i.cjs.js → chunk-Bm1Dzh4r.cjs.js} +89 -15
- package/dist/cjs/chunk-Bm1Dzh4r.cjs.js.map +1 -0
- package/dist/cjs/{chunk-BNUTjVYA.cjs.js → chunk-BxKa_XOs.cjs.js} +12 -1
- package/dist/cjs/{chunk-BNUTjVYA.cjs.js.map → chunk-BxKa_XOs.cjs.js.map} +1 -1
- package/dist/cjs/{chunk-DxXc6tiG.cjs.js → chunk-CNhef3wf.cjs.js} +50 -10
- package/dist/cjs/chunk-CNhef3wf.cjs.js.map +1 -0
- package/dist/cjs/{chunk-D1iu346F.cjs.js → chunk-CQ-j2kAX.cjs.js} +2 -2
- package/dist/cjs/{chunk-D1iu346F.cjs.js.map → chunk-CQ-j2kAX.cjs.js.map} +1 -1
- package/dist/cjs/{chunk-Bv4wbN1E.cjs.js → chunk-DBQBe3dq.cjs.js} +3 -3
- package/dist/cjs/{chunk-Bv4wbN1E.cjs.js.map → chunk-DBQBe3dq.cjs.js.map} +1 -1
- package/dist/cjs/{chunk-C98N-sIR.cjs.js → chunk-DRTgn9TG.cjs.js} +5 -5
- package/dist/cjs/{chunk-C98N-sIR.cjs.js.map → chunk-DRTgn9TG.cjs.js.map} +1 -1
- package/dist/cjs/{chunk-CPtfEUVF.cjs.js → chunk-TCCIxl2A.cjs.js} +3 -3
- package/dist/cjs/{chunk-CPtfEUVF.cjs.js.map → chunk-TCCIxl2A.cjs.js.map} +1 -1
- package/dist/cjs/{chunk-BuuzKD6e.cjs.js → chunk-Ty2BpOZ5.cjs.js} +3 -3
- package/dist/cjs/{chunk-BuuzKD6e.cjs.js.map → chunk-Ty2BpOZ5.cjs.js.map} +1 -1
- package/dist/cjs/{chunk-DIpaV2xG.cjs.js → chunk-UyXI9oIp.cjs.js} +4 -4
- package/dist/cjs/{chunk-DIpaV2xG.cjs.js.map → chunk-UyXI9oIp.cjs.js.map} +1 -1
- package/dist/cjs/{chunk-CUiAHc9-.cjs.js → chunk-WeNbd2ic.cjs.js} +4 -4
- package/dist/cjs/{chunk-CUiAHc9-.cjs.js.map → chunk-WeNbd2ic.cjs.js.map} +1 -1
- package/dist/cjs/constants.cjs.js +2 -2
- package/dist/cjs/index.cjs.js +7 -7
- package/dist/cjs/utils.cjs.js +3 -3
- package/dist/cjs/v2/Attachments.cjs.js +3 -3
- package/dist/cjs/v2/Editor.cjs.js +9 -17
- package/dist/cjs/v2/Editor.cjs.js.map +1 -1
- package/dist/cjs/v2/EditorContent.cjs.js +3 -3
- package/dist/cjs/v2/FormikEditor.cjs.js +6 -6
- package/dist/cjs/v2/Menu.cjs.js +3 -3
- package/dist/cjs/v2/constants.cjs.js +2 -2
- package/dist/cjs/v2/index.cjs.js +7 -7
- package/dist/cjs/v2/utils.cjs.js +3 -3
- package/dist/constants.js +2 -2
- package/dist/editor-stats.html +1 -1
- package/dist/index.js +8 -8
- package/dist/utils.js +3 -3
- package/dist/v2/Attachments.js +4 -4
- package/dist/v2/Editor.js +10 -18
- package/dist/v2/Editor.js.map +1 -1
- package/dist/v2/EditorContent.js +3 -3
- package/dist/v2/FormikEditor.js +7 -7
- package/dist/v2/Menu.js +4 -4
- package/dist/v2/constants.js +2 -2
- package/dist/v2/editor-content-styles.js +1 -1
- package/dist/v2/editor-content.min.css +1 -1
- package/dist/v2/index.js +8 -8
- package/dist/v2/styles.css +1 -1
- package/dist/v2/styles.js +1 -1
- package/dist/v2/utils.js +3 -3
- package/package.json +4 -3
- package/dist/chunk-Ba4Q3HC8.js.map +0 -1
- package/dist/chunk-Bw7QSBHf.js.map +0 -1
- package/dist/chunk-DoZN1FPd.js.map +0 -1
- package/dist/cjs/chunk-Bmd6d-x7.cjs.js.map +0 -1
- package/dist/cjs/chunk-DxXc6tiG.cjs.js.map +0 -1
- package/dist/cjs/chunk-R9zpTo5i.cjs.js.map +0 -1
|
@@ -15,7 +15,7 @@ var reactI18next = require('react-i18next');
|
|
|
15
15
|
var reactFileIcon_esm = require('./chunk-D3Unocnm.cjs.js');
|
|
16
16
|
var i18n = require('i18next');
|
|
17
17
|
var initializers = require('@bigbinary/neeto-commons-frontend/v2/initializers');
|
|
18
|
-
var constants = require('./chunk-
|
|
18
|
+
var constants = require('./chunk-BxKa_XOs.cjs.js');
|
|
19
19
|
require('@bigbinary/neeto-icons/LeftAlign');
|
|
20
20
|
require('@bigbinary/neeto-icons/CenterAlign');
|
|
21
21
|
require('@bigbinary/neeto-icons/RightAlign');
|
|
@@ -29,7 +29,8 @@ require('@bigbinary/neeto-icons/AspectRatio916');
|
|
|
29
29
|
require('@bigbinary/neeto-icons/AspectRatio43');
|
|
30
30
|
require('@bigbinary/neeto-icons/AspectRatio32');
|
|
31
31
|
var yup = require('yup');
|
|
32
|
-
var
|
|
32
|
+
var classnames = require('classnames');
|
|
33
|
+
var lucideReact = require('lucide-react');
|
|
33
34
|
var jsxRuntime = require('react/jsx-runtime');
|
|
34
35
|
|
|
35
36
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
@@ -59,7 +60,7 @@ var _asyncToGenerator__default = /*#__PURE__*/_interopDefault(_asyncToGenerator)
|
|
|
59
60
|
var _regeneratorRuntime__default = /*#__PURE__*/_interopDefault(_regeneratorRuntime);
|
|
60
61
|
var axios__default = /*#__PURE__*/_interopDefault(axios);
|
|
61
62
|
var yup__namespace = /*#__PURE__*/_interopNamespace(yup);
|
|
62
|
-
var
|
|
63
|
+
var classnames__default = /*#__PURE__*/_interopDefault(classnames);
|
|
63
64
|
|
|
64
65
|
var DEFAULT_FILE_UPLOAD_CONFIG = {
|
|
65
66
|
directUploadEndpoint: constants.DIRECT_UPLOAD_ENDPOINT,
|
|
@@ -390,18 +391,91 @@ var useFileUploader = function useFileUploader(_ref) {
|
|
|
390
391
|
};
|
|
391
392
|
};
|
|
392
393
|
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
var
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
394
|
+
// react-file-icon has no styles for these image formats, and gives xml the
|
|
395
|
+
// same {} glyph as json; code2 is </>.
|
|
396
|
+
var EXTRA_FILE_ICON_STYLES = {
|
|
397
|
+
avif: {
|
|
398
|
+
type: "image"
|
|
399
|
+
},
|
|
400
|
+
heic: {
|
|
401
|
+
type: "image"
|
|
402
|
+
},
|
|
403
|
+
heif: {
|
|
404
|
+
type: "image"
|
|
405
|
+
},
|
|
406
|
+
webp: {
|
|
407
|
+
type: "image"
|
|
408
|
+
},
|
|
409
|
+
xml: {
|
|
410
|
+
type: "code2"
|
|
411
|
+
}
|
|
412
|
+
};
|
|
413
|
+
|
|
414
|
+
// Lucide glyphs for image formats that get their own icon. Other images use
|
|
415
|
+
// lucide's Image.
|
|
416
|
+
var FILE_ICON_GLYPH_BY_EXTENSION = {
|
|
417
|
+
bmp: lucideReact.Grid3x3,
|
|
418
|
+
tif: lucideReact.Layers,
|
|
419
|
+
tiff: lucideReact.Layers,
|
|
420
|
+
webp: lucideReact.Globe
|
|
421
|
+
};
|
|
422
|
+
var FILE_ICON_CATEGORY_BY_EXTENSION = {
|
|
423
|
+
pdf: "pdf",
|
|
424
|
+
key: "pdf",
|
|
425
|
+
ppt: "pdf",
|
|
426
|
+
pptx: "pdf",
|
|
427
|
+
csv: "spreadsheet",
|
|
428
|
+
numbers: "spreadsheet",
|
|
429
|
+
xls: "spreadsheet",
|
|
430
|
+
xlsx: "spreadsheet",
|
|
431
|
+
doc: "document",
|
|
432
|
+
docx: "document",
|
|
433
|
+
md: "document",
|
|
434
|
+
pages: "document",
|
|
435
|
+
rtf: "document",
|
|
436
|
+
txt: "document"
|
|
437
|
+
};
|
|
438
|
+
|
|
439
|
+
// react-file-icon glyph type -> colour category. svg ("vector") is grouped
|
|
440
|
+
// with images.
|
|
441
|
+
var FILE_ICON_CATEGORY_BY_TYPE = {
|
|
442
|
+
audio: "audio",
|
|
443
|
+
image: "image",
|
|
444
|
+
vector: "image",
|
|
445
|
+
video: "video"
|
|
446
|
+
};
|
|
447
|
+
|
|
448
|
+
var getExtension = function getExtension(fileName) {
|
|
449
|
+
var _fileName$match;
|
|
450
|
+
return fileName === null || fileName === void 0 || (_fileName$match = fileName.match(/\.([^.]+)$/)) === null || _fileName$match === void 0 || (_fileName$match = _fileName$match[1]) === null || _fileName$match === void 0 ? void 0 : _fileName$match.toLowerCase();
|
|
451
|
+
};
|
|
452
|
+
|
|
453
|
+
// Only the glyph shape is taken from react-file-icon. Colours come from
|
|
454
|
+
// neeto-atoms tokens in _attachments.scss, keyed on the category class.
|
|
455
|
+
var getCategory = function getCategory(extension, type) {
|
|
456
|
+
var _ref, _FILE_ICON_CATEGORY_B;
|
|
457
|
+
return (_ref = (_FILE_ICON_CATEGORY_B = FILE_ICON_CATEGORY_BY_EXTENSION[extension]) !== null && _FILE_ICON_CATEGORY_B !== void 0 ? _FILE_ICON_CATEGORY_B : FILE_ICON_CATEGORY_BY_TYPE[type]) !== null && _ref !== void 0 ? _ref : "default";
|
|
458
|
+
};
|
|
459
|
+
var File = function File(_ref2) {
|
|
460
|
+
var _ref3, _EXTRA_FILE_ICON_STYL, _FILE_ICON_GLYPH_BY_E;
|
|
461
|
+
var fileName = _ref2.fileName,
|
|
462
|
+
className = _ref2.className;
|
|
463
|
+
var extension = getExtension(fileName);
|
|
464
|
+
var type = (_ref3 = (_EXTRA_FILE_ICON_STYL = EXTRA_FILE_ICON_STYLES[extension]) !== null && _EXTRA_FILE_ICON_STYL !== void 0 ? _EXTRA_FILE_ICON_STYL : reactFileIcon_esm.defaultStyles[extension]) === null || _ref3 === void 0 ? void 0 : _ref3.type;
|
|
465
|
+
|
|
466
|
+
// The library's image glyph is a mountain; draw a lucide glyph on top of a
|
|
467
|
+
// glyph-less icon instead.
|
|
468
|
+
var Glyph = (_FILE_ICON_GLYPH_BY_E = FILE_ICON_GLYPH_BY_EXTENSION[extension]) !== null && _FILE_ICON_GLYPH_BY_E !== void 0 ? _FILE_ICON_GLYPH_BY_E : type === "image" ? lucideReact.Image : null;
|
|
469
|
+
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
470
|
+
"aria-hidden": "true",
|
|
471
|
+
className: classnames__default.default("ne-file-icon", "ne-file-icon--".concat(getCategory(extension, type)), className),
|
|
472
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(reactFileIcon_esm.FileIcon, {
|
|
402
473
|
extension: extension,
|
|
403
|
-
|
|
404
|
-
|
|
474
|
+
labelUppercase: true,
|
|
475
|
+
type: Glyph ? undefined : type
|
|
476
|
+
}), Glyph && /*#__PURE__*/jsxRuntime.jsx(Glyph, {
|
|
477
|
+
className: "ne-file-icon__glyph"
|
|
478
|
+
})]
|
|
405
479
|
});
|
|
406
480
|
};
|
|
407
481
|
|
|
@@ -418,4 +492,4 @@ exports.VIDEO_EMBED_FORM_VALIDATION_SCHEMA = VIDEO_EMBED_FORM_VALIDATION_SCHEMA;
|
|
|
418
492
|
exports.convertToFileSize = convertToFileSize;
|
|
419
493
|
exports.getTabs = getTabs;
|
|
420
494
|
exports.useFileUploader = useFileUploader;
|
|
421
|
-
//# sourceMappingURL=chunk-
|
|
495
|
+
//# sourceMappingURL=chunk-Bm1Dzh4r.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunk-Bm1Dzh4r.cjs.js","sources":["../../app/javascript/src/v2/components/Attachments/constants.js","../../app/javascript/src/v2/components/Editor/MediaUploader/constants.js","../../app/javascript/src/v2/components/Editor/MediaUploader/utils.js","../../app/javascript/src/v2/hooks/utils/fileUploader.js","../../app/javascript/src/v2/hooks/useFileUploader.js","../../app/javascript/src/v2/components/Common/constants.js","../../app/javascript/src/v2/components/Common/FileIcon.jsx"],"sourcesContent":["import { t } from \"i18next\";\nimport { globalProps } from \"neetocommons/v2/initializers\";\n\nimport { DIRECT_UPLOAD_ENDPOINT } from \"src/common/constants\";\n\nexport const DEFAULT_FILE_UPLOAD_CONFIG = {\n directUploadEndpoint: DIRECT_UPLOAD_ENDPOINT,\n restrictions: {\n maxFileSize: globalProps.endUserUploadedFileSizeLimitInMb * 1024 * 1024,\n },\n};\n\nexport const ATTACHMENT_OPTIONS = {\n OPEN_IN_NEW_TAB: t(\"neetoEditor.common.openInNewTab\"),\n DOWNLOAD: t(\"neetoEditor.common.download\"),\n RENAME: t(\"neetoEditor.attachments.rename\"),\n DELETE: t(\"neetoEditor.menu.delete\"),\n};\n\nexport const ATTACHMENTS_PREVIEW_DATA_CY = \"ne-attachments-preview-content\";\n","import { t } from \"i18next\";\nimport { globalProps } from \"neetocommons/v2/initializers\";\nimport * as yup from \"yup\";\n\nimport { DIRECT_UPLOAD_ENDPOINT, URL_REGEXP } from \"src/common/constants\";\n\nconst MAX_VIDEO_SIZE_IN_MB = 100;\n\nconst maxVideoSizeInMb = globalProps.directUploadsMaxFileSizeInMb\n ? Math.min(MAX_VIDEO_SIZE_IN_MB, globalProps.directUploadsMaxFileSizeInMb)\n : MAX_VIDEO_SIZE_IN_MB;\n\nexport const FILE_SIZE_UNITS = [\"B\", \"KB\", \"MB\", \"GB\"];\n\nexport const ALLOWED_IMAGE_TYPES = [\".jpg\", \".jpeg\", \".png\", \".gif\"];\nexport const ALLOWED_VIDEO_TYPES = [\".mp4\", \".mov\", \".avi\", \".mkv\"];\n\nexport const DEFAULT_IMAGE_UPLOAD_CONFIG = {\n directUploadEndpoint: DIRECT_UPLOAD_ENDPOINT,\n restrictions: {\n maxNumberOfFiles: 5,\n maxFileSize: globalProps.endUserUploadedFileSizeLimitInMb * 1024 * 1024,\n allowedFileTypes: ALLOWED_IMAGE_TYPES,\n },\n};\n\nexport const DEFAULT_VIDEO_UPLOAD_CONFIG = {\n directUploadEndpoint: DIRECT_UPLOAD_ENDPOINT,\n restrictions: {\n maxNumberOfFiles: 5,\n maxFileSize: maxVideoSizeInMb * 1024 * 1024,\n allowedFileTypes: ALLOWED_VIDEO_TYPES,\n },\n};\n\nexport const VIDEO_EMBED_FORM_VALIDATION_SCHEMA = yup.object().shape({\n url: yup\n .string()\n .required(t(\"neetoEditor.error.fieldRequired\"))\n .matches(URL_REGEXP, t(\"neetoEditor.error.invalidUrl\")),\n});\n\nexport const DEFAULT_ASPECT_RATIO = \"16/9\";\n","import { t } from \"i18next\";\nimport {\n LeftAlign,\n CenterAlign,\n RightAlign,\n Delete,\n CustomSize,\n BorderDisable,\n BorderEnable,\n AspectRatio11,\n AspectRatio169,\n AspectRatio916,\n AspectRatio43,\n AspectRatio32,\n} from \"neetoicons\";\n\nimport { FILE_SIZE_UNITS } from \"./constants\";\n\nexport const convertToFileSize = (size = 10 * 1024 * 1024) => {\n let fileSize = size;\n let i = 0;\n while (fileSize >= 1024 && i < FILE_SIZE_UNITS.length) {\n fileSize /= 1024;\n ++i;\n }\n\n return `${fileSize.toFixed(1)} ${FILE_SIZE_UNITS[i]}`;\n};\n\nexport const buildImageOptions = (border = true, showAspectRatio = false) => {\n const options = [\n {\n Icon: LeftAlign,\n type: \"button\",\n alignPos: \"left\",\n optionName: t(\"neetoEditor.menu.alignLeft\"),\n },\n {\n Icon: CenterAlign,\n type: \"button\",\n alignPos: \"center\",\n optionName: t(\"neetoEditor.menu.alignCenter\"),\n },\n {\n Icon: RightAlign,\n type: \"button\",\n alignPos: \"right\",\n optionName: t(\"neetoEditor.menu.alignRight\"),\n },\n ];\n\n if (showAspectRatio) {\n options.push({\n Icon: CustomSize,\n type: \"dropdown\",\n alignPos: \"center\",\n optionName: t(\"neetoEditor.menu.aspectRatio\"),\n items: [\n { ratio: \"16/9\", tooltipLabel: \"16/9\", icon: AspectRatio169 },\n { ratio: \"9/16\", tooltipLabel: \"9/16\", icon: AspectRatio916 },\n { ratio: \"4/3\", tooltipLabel: \"4/3\", icon: AspectRatio43 },\n { ratio: \"3/2\", tooltipLabel: \"3/2\", icon: AspectRatio32 },\n { ratio: \"1/1\", tooltipLabel: \"1/1\", icon: AspectRatio11 },\n ],\n });\n }\n\n options.push(\n {\n Icon: border ? BorderDisable : BorderEnable,\n type: \"button\",\n alignPos: \"center\",\n borderToggle: true,\n optionName: border\n ? t(\"neetoEditor.menu.removeBorder\")\n : t(\"neetoEditor.menu.addBorder\"),\n },\n {\n Icon: Delete,\n type: \"button\",\n optionName: t(\"neetoEditor.menu.delete\"),\n }\n );\n\n return options;\n};\n\nexport const getTabs = mediaUploader => {\n if (mediaUploader.video) {\n return [\n { title: \"Upload\", key: \"local\" },\n { title: \"Embed\", key: \"embed\" },\n ];\n }\n\n return [];\n};\n","import { Toastr } from \"@bigbinary/neeto-atoms\";\nimport { t } from \"i18next\";\nimport { isPresent } from \"neetocist\";\nimport { mergeRight } from \"ramda\";\n\nimport { DEFAULT_FILE_UPLOAD_CONFIG } from \"src/v2/components/Attachments/constants\";\nimport { convertToFileSize } from \"src/v2/components/Editor/MediaUploader/utils\";\n\nconst getFileExtension = filename => {\n if (!filename) return \"\";\n const parts = filename.split(\".\");\n\n return parts.length > 1 ? `.${parts.pop()}` : \"\";\n};\n\nconst showWarningToastr = ({\n selectedFiles,\n initialFiles,\n config,\n largeFilesCount,\n unSupportedFilesCount,\n}) => {\n const { maxNumberOfFiles, maxFileSize } = config.restrictions;\n\n if (unSupportedFilesCount > 0 || largeFilesCount > 0) {\n if (unSupportedFilesCount > 0) {\n Toastr.error(t(\"neetoEditor.error.fileNotAllowed\"));\n }\n\n if (largeFilesCount > 0) {\n Toastr.error(\n t(\"neetoEditor.error.fileIsTooLarge\", {\n maxFileSize: convertToFileSize(maxFileSize),\n })\n );\n }\n } else if (selectedFiles.length < initialFiles.length) {\n Toastr.warning(\n t(\"neetoEditor.attachments.maxNumberOfFiles\", {\n entity: maxNumberOfFiles,\n })\n );\n }\n};\n\nexport const buildFileUploadConfig = config =>\n mergeRight(DEFAULT_FILE_UPLOAD_CONFIG, config);\n\nexport const shouldAddFile = config => file => {\n const { maxFileSize, allowedFileTypes } = config.restrictions;\n\n if (isPresent(maxFileSize) && file.size > maxFileSize) {\n return { canAdd: false };\n }\n\n if (isPresent(allowedFileTypes)) {\n const fileExtension = getFileExtension(file.name);\n const mimeType = file.type;\n\n const extensionAllowed = allowedFileTypes.includes(fileExtension);\n const mimeAllowed = allowedFileTypes.includes(mimeType);\n\n const canAdd = extensionAllowed || mimeAllowed;\n\n return { canAdd, isUnsupportedFile: !canAdd };\n }\n\n return { canAdd: true };\n};\n\nexport const selectFiles = ({ previousAttachmentsCount, config, files }) => {\n let addedFilesCount = 0,\n largeFilesCount = 0,\n unSupportedFilesCount = 0;\n const fallbackMaxNumberOfFiles = previousAttachmentsCount + files.length;\n const { maxNumberOfFiles = fallbackMaxNumberOfFiles } = config.restrictions;\n const canAddFile = shouldAddFile(config);\n\n const remainingAttachments = maxNumberOfFiles - previousAttachmentsCount;\n\n if (remainingAttachments <= 0) {\n Toastr.warning(\n t(\"neetoEditor.attachments.maxNumberOfFiles\", {\n entity: maxNumberOfFiles,\n })\n );\n\n return [];\n }\n\n const selectedFiles = files.filter(file => {\n const { canAdd, isUnsupportedFile } = canAddFile(file);\n\n if (canAdd && addedFilesCount + 1 <= remainingAttachments) {\n addedFilesCount += 1;\n\n return true;\n }\n\n if (isUnsupportedFile) unSupportedFilesCount += 1;\n else if (!canAdd) largeFilesCount += 1;\n\n return false;\n });\n\n showWarningToastr({\n selectedFiles,\n initialFiles: files,\n config,\n unSupportedFilesCount,\n largeFilesCount,\n });\n\n return selectedFiles;\n};\n","// eslint-disable-next-line @bigbinary/neeto/use-snake-case-for-api-connector-filename\nimport { useRef } from \"react\";\n\nimport { Toastr } from \"@bigbinary/neeto-atoms\";\n// eslint-disable-next-line @bigbinary/neeto/no-axios-import-outside-apis,\nimport axios from \"axios\";\nimport { noop, hyphenate, isNot, isNotPresent } from \"neetocist\";\nimport { omit, pluck } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { FILE_UPLOAD_STATUS } from \"hooks/constants/fileUploader\";\nimport { getRandomString } from \"hooks/utils\";\nimport useFileUploadStore from \"src/stores/useFileUploadStore\";\nimport DirectUpload from \"utils/DirectUpload\";\n\nimport { selectFiles } from \"./utils/fileUploader\";\n\nlet uploadControllers = {};\n\nconst useFileUploader = ({\n config,\n attachments: previousAttachments = [],\n setIsUploadingOnHost = noop,\n}) => {\n const contextIdRef = useRef(getRandomString());\n const { t } = useTranslation();\n\n const { current: contextId } = contextIdRef;\n const {\n addFiles: addFilesToStore,\n getNextQueuedFile,\n updateFileStatus,\n removeFilesFromQueue,\n setIsUploading,\n updateFileUploadProgress,\n removeFile,\n } = useFileUploadStore.pick();\n const { files = [], isUploading } = useFileUploadStore.pick([contextId]);\n\n const handleUploadProgress = (xhr, file) => {\n if (!xhr.event.lengthComputable) return;\n const bytesUploaded = xhr.loaded;\n const bytesTotal = xhr.total;\n const progress = Math.round((bytesUploaded / bytesTotal) * 100);\n updateFileUploadProgress(contextId, file.id, progress);\n };\n\n const uploadFile = async file => {\n const upload = new DirectUpload({\n file: file.data,\n url: config.directUploadEndpoint,\n progress: xhr => handleUploadProgress(xhr, file),\n });\n\n uploadControllers[file.id] = upload;\n\n try {\n const { data = {}, ...response } = await upload.create();\n updateFileStatus(contextId, file.id, FILE_UPLOAD_STATUS.UPLOADED);\n\n return {\n id: file.id,\n filename: file.filename,\n signedId: data.signed_id ?? response.signed_id,\n url: data.blob_url ?? response.blob_url,\n contentType: data.content_type ?? response.content_type,\n };\n } catch (error) {\n if (!axios.isCancel(error)) {\n Toastr.error(t(\"neetoEditor.error.uploadFileFailed\"));\n }\n // eslint-disable-next-line no-console\n console.error(\"Attachment upload failed\", error);\n removeFile(contextId, file.id);\n\n return null;\n }\n };\n\n const handleUploadFiles = async () => {\n const queuedFile = getNextQueuedFile(contextId);\n\n if (isNotPresent(queuedFile)) {\n setIsUploading(contextId, false);\n setIsUploadingOnHost(false);\n\n return [];\n }\n\n updateFileStatus(contextId, queuedFile.id, FILE_UPLOAD_STATUS.UPLOADING);\n\n const [uploadedFile, remainingUploadedFiles] = await Promise.all([\n uploadFile(queuedFile),\n handleUploadFiles(),\n ]);\n\n const uploadedFiles = [uploadedFile, ...remainingUploadedFiles];\n const uploadedFileIds = pluck(\"id\", uploadedFiles);\n removeFilesFromQueue(contextId, uploadedFileIds);\n uploadControllers = omit(uploadedFileIds, uploadControllers);\n\n return uploadedFiles.filter(isNot(null));\n };\n\n const uploadFiles = () => {\n setIsUploading(contextId, true);\n setIsUploadingOnHost(true);\n\n return handleUploadFiles();\n };\n\n const addFiles = addedFiles => {\n const selectedFiles = selectFiles({\n previousAttachmentsCount: previousAttachments.length,\n config,\n files: Array.from(addedFiles),\n }).map(file => ({\n id: hyphenate(`${file.name.toLowerCase()}-${Date.now()}`),\n data: file,\n filename: file.name,\n signedId: \"awaiting\",\n url: \"\",\n type: file.type,\n status: FILE_UPLOAD_STATUS.QUEUED,\n }));\n\n addFilesToStore(contextId, selectedFiles);\n };\n\n const cancelUpload = fileId => {\n uploadControllers[fileId]?.abort?.();\n removeFile(contextId, fileId);\n };\n\n return {\n addFiles,\n uploadFiles,\n queuedFiles: files,\n cancelUpload,\n isUploading,\n };\n};\n\nexport default useFileUploader;\n","import { Globe, Grid3x3, Layers } from \"lucide-react\";\n\n// react-file-icon has no styles for these image formats, and gives xml the\n// same {} glyph as json; code2 is </>.\nexport const EXTRA_FILE_ICON_STYLES = {\n avif: { type: \"image\" },\n heic: { type: \"image\" },\n heif: { type: \"image\" },\n webp: { type: \"image\" },\n xml: { type: \"code2\" },\n};\n\n// Lucide glyphs for image formats that get their own icon. Other images use\n// lucide's Image.\nexport const FILE_ICON_GLYPH_BY_EXTENSION = {\n bmp: Grid3x3,\n tif: Layers,\n tiff: Layers,\n webp: Globe,\n};\n\nexport const FILE_ICON_CATEGORY_BY_EXTENSION = {\n pdf: \"pdf\",\n key: \"pdf\",\n ppt: \"pdf\",\n pptx: \"pdf\",\n csv: \"spreadsheet\",\n numbers: \"spreadsheet\",\n xls: \"spreadsheet\",\n xlsx: \"spreadsheet\",\n doc: \"document\",\n docx: \"document\",\n md: \"document\",\n pages: \"document\",\n rtf: \"document\",\n txt: \"document\",\n};\n\n// react-file-icon glyph type -> colour category. svg (\"vector\") is grouped\n// with images.\nexport const FILE_ICON_CATEGORY_BY_TYPE = {\n audio: \"audio\",\n image: \"image\",\n vector: \"image\",\n video: \"video\",\n};\n","import classnames from \"classnames\";\nimport { Image } from \"lucide-react\";\nimport { FileIcon as ReactFileIcon, defaultStyles } from \"react-file-icon\";\n\nimport {\n EXTRA_FILE_ICON_STYLES,\n FILE_ICON_CATEGORY_BY_EXTENSION,\n FILE_ICON_CATEGORY_BY_TYPE,\n FILE_ICON_GLYPH_BY_EXTENSION,\n} from \"./constants\";\n\nconst getExtension = fileName =>\n fileName?.match(/\\.([^.]+)$/)?.[1]?.toLowerCase();\n\n// Only the glyph shape is taken from react-file-icon. Colours come from\n// neeto-atoms tokens in _attachments.scss, keyed on the category class.\nconst getCategory = (extension, type) =>\n FILE_ICON_CATEGORY_BY_EXTENSION[extension] ??\n FILE_ICON_CATEGORY_BY_TYPE[type] ??\n \"default\";\n\nconst File = ({ fileName, className }) => {\n const extension = getExtension(fileName);\n const type = (EXTRA_FILE_ICON_STYLES[extension] ?? defaultStyles[extension])\n ?.type;\n\n // The library's image glyph is a mountain; draw a lucide glyph on top of a\n // glyph-less icon instead.\n const Glyph =\n FILE_ICON_GLYPH_BY_EXTENSION[extension] ??\n (type === \"image\" ? Image : null);\n\n return (\n <div\n aria-hidden=\"true\"\n className={classnames(\n \"ne-file-icon\",\n `ne-file-icon--${getCategory(extension, type)}`,\n className\n )}\n >\n <ReactFileIcon\n {...{ extension }}\n labelUppercase\n type={Glyph ? undefined : type}\n />\n {Glyph && <Glyph className=\"ne-file-icon__glyph\" />}\n </div>\n );\n};\n\nexport default File;\n"],"names":["DEFAULT_FILE_UPLOAD_CONFIG","directUploadEndpoint","DIRECT_UPLOAD_ENDPOINT","restrictions","maxFileSize","globalProps","endUserUploadedFileSizeLimitInMb","ATTACHMENT_OPTIONS","OPEN_IN_NEW_TAB","t","DOWNLOAD","RENAME","DELETE","ATTACHMENTS_PREVIEW_DATA_CY","MAX_VIDEO_SIZE_IN_MB","maxVideoSizeInMb","directUploadsMaxFileSizeInMb","Math","min","FILE_SIZE_UNITS","ALLOWED_IMAGE_TYPES","ALLOWED_VIDEO_TYPES","DEFAULT_IMAGE_UPLOAD_CONFIG","maxNumberOfFiles","allowedFileTypes","DEFAULT_VIDEO_UPLOAD_CONFIG","VIDEO_EMBED_FORM_VALIDATION_SCHEMA","yup","object","shape","url","string","required","matches","URL_REGEXP","DEFAULT_ASPECT_RATIO","convertToFileSize","size","arguments","length","undefined","fileSize","i","concat","toFixed","getTabs","mediaUploader","video","title","key","getFileExtension","filename","parts","split","pop","showWarningToastr","_ref","selectedFiles","initialFiles","config","largeFilesCount","unSupportedFilesCount","_config$restrictions","Toastr","error","warning","entity","shouldAddFile","file","_config$restrictions2","isPresent","canAdd","fileExtension","name","mimeType","type","extensionAllowed","includes","mimeAllowed","isUnsupportedFile","selectFiles","_ref2","previousAttachmentsCount","files","addedFilesCount","fallbackMaxNumberOfFiles","_config$restrictions$","canAddFile","remainingAttachments","filter","_canAddFile","uploadControllers","useFileUploader","_ref$attachments","attachments","previousAttachments","_ref$setIsUploadingOn","setIsUploadingOnHost","noop","contextIdRef","useRef","getRandomString","_useTranslation","useTranslation","contextId","current","_useFileUploadStore","useFileUploadStore","store","addFiles","getNextQueuedFile","updateFileStatus","removeFilesFromQueue","setIsUploading","updateFileUploadProgress","removeFile","shallow","addFilesToStore","_useFileUploadStore2","_store$contextId","_store$contextId2","isUploading","_useFileUploadStore2$","handleUploadProgress","xhr","event","lengthComputable","bytesUploaded","loaded","bytesTotal","total","progress","round","id","uploadFile","_asyncToGenerator","_regeneratorRuntime","mark","_callee","upload","_data$signed_id","_data$blob_url","_data$content_type","_yield$upload$create","_yield$upload$create$","data","response","wrap","_callee$","_context","prev","next","DirectUpload","create","sent","_objectWithoutProperties","_excluded","FILE_UPLOAD_STATUS","UPLOADED","abrupt","signedId","signed_id","blob_url","contentType","content_type","t0","axios","isCancel","console","stop","_x","apply","handleUploadFiles","_ref3","_callee2","queuedFile","_yield$Promise$all","_yield$Promise$all2","uploadedFile","remainingUploadedFiles","uploadedFiles","uploadedFileIds","_callee2$","_context2","isNotPresent","UPLOADING","Promise","all","_slicedToArray","_toConsumableArray","pluck","omit","isNot","uploadFiles","addedFiles","Array","from","map","hyphenate","toLowerCase","Date","now","status","QUEUED","cancelUpload","fileId","_uploadControllers$fi","_uploadControllers$fi2","abort","call","queuedFiles","EXTRA_FILE_ICON_STYLES","avif","heic","heif","webp","xml","FILE_ICON_GLYPH_BY_EXTENSION","bmp","Grid3x3","tif","Layers","tiff","Globe","FILE_ICON_CATEGORY_BY_EXTENSION","pdf","ppt","pptx","csv","numbers","xls","xlsx","doc","docx","md","pages","rtf","txt","FILE_ICON_CATEGORY_BY_TYPE","audio","image","vector","getExtension","fileName","_fileName$match","match","getCategory","extension","_FILE_ICON_CATEGORY_B","File","_EXTRA_FILE_ICON_STYL","_FILE_ICON_GLYPH_BY_E","className","defaultStyles","Glyph","Image","_jsxs","classnames","children","_jsx","ReactFileIcon","labelUppercase"],"mappings":"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"}
|
|
@@ -89,11 +89,22 @@ var EDITOR_SIZES = {
|
|
|
89
89
|
SMALL: "small"
|
|
90
90
|
};
|
|
91
91
|
|
|
92
|
+
// TodoList renames Tiptap's taskList wrapper to todoList, so ListKeymap's
|
|
93
|
+
// default listTypes would not match our schema.
|
|
94
|
+
var LIST_KEYMAP_LIST_TYPES = [{
|
|
95
|
+
itemName: "listItem",
|
|
96
|
+
wrapperNames: ["bulletList", "orderedList"]
|
|
97
|
+
}, {
|
|
98
|
+
itemName: "taskItem",
|
|
99
|
+
wrapperNames: ["todoList"]
|
|
100
|
+
}];
|
|
101
|
+
|
|
92
102
|
exports.ALL_PROTOCOL_URL_REGEXP = ALL_PROTOCOL_URL_REGEXP;
|
|
93
103
|
exports.COMBINED_REGEX = COMBINED_REGEX;
|
|
94
104
|
exports.DIRECT_UPLOAD_ENDPOINT = DIRECT_UPLOAD_ENDPOINT;
|
|
95
105
|
exports.EDITOR_OPTIONS = EDITOR_OPTIONS;
|
|
96
106
|
exports.EDITOR_SIZES = EDITOR_SIZES;
|
|
107
|
+
exports.LIST_KEYMAP_LIST_TYPES = LIST_KEYMAP_LIST_TYPES;
|
|
97
108
|
exports.URL_REGEXP = URL_REGEXP;
|
|
98
109
|
exports.URL_VALIDATORS = URL_VALIDATORS;
|
|
99
|
-
//# sourceMappingURL=chunk-
|
|
110
|
+
//# sourceMappingURL=chunk-BxKa_XOs.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunk-
|
|
1
|
+
{"version":3,"file":"chunk-BxKa_XOs.cjs.js","sources":["../../app/javascript/src/common/constants.js"],"sourcesContent":["import { pluck } from \"ramda\";\n\nexport const EDITOR_OPTIONS = {\n // DEFAULT EDITOR OPTIONS\n BOLD: \"bold\",\n ITALIC: \"italic\",\n UNDERLINE: \"underline\",\n STRIKETHROUGH: \"strike\",\n LINK: \"link\",\n PARAGRAPH: \"paragraph\",\n H1: \"h1\",\n H2: \"h2\",\n H3: \"h3\",\n H4: \"h4\",\n H5: \"h5\",\n H6: \"h6\",\n LIST_BULLETS: \"bullet-list\",\n LIST_ORDERED: \"ordered-list\",\n CODE: \"code\",\n\n // ADDON EDITOR OPTIONS\n CODE_BLOCK: \"code-block\",\n BLOCKQUOTE: \"block-quote\",\n CALLOUT: \"callout\",\n ATTACHMENTS: \"attachments\",\n TODO_LIST: \"todo-list\",\n UNDO: \"undo\",\n REDO: \"redo\",\n HIGHLIGHT: \"highlight\",\n EMOJI: \"emoji\",\n IMAGE_UPLOAD: \"image-upload\",\n IMAGE_UPLOAD_UNSPLASH: \"image-upload-unsplash\",\n VIDEO_UPLOAD: \"video-upload\",\n DIVIDER: \"divider\",\n PASTE_UNFORMATTED: \"paste-unformatted\",\n TABLE: \"table\",\n TEXT_COLOR: \"text-color\",\n NEETO_KB_ARTICLE: \"neeto-kb-article\",\n};\n\nexport const UNSPLASH_BASE_URL = \"https://api.unsplash.com/search/photos\";\n\nexport const DIRECT_UPLOAD_ENDPOINT = \"/api/direct_uploads\";\n\nexport const URL_REGEXP =\n /[(http(s)?)://(www.)?a-zA-Z0-9@:%._+~#=]{1,256}\\.[a-z]{1,63}\\b([-a-zA-Z0-9@:%_+.~#?&//=]*)/;\n\n// HTTP/HTTPS/FTP with :// or Non-slash protocols like mailto:, tel: or Host without\n// protocol. The host can be a domain name, an IPv4 address, a bracketed IPv6 address\n// or localhost, each optionally followed by a port.\nexport const ALL_PROTOCOL_URL_REGEXP =\n /^[a-zA-Z]\\w*:\\/\\/(?:[a-zA-Z0-9@:%._+~#=-]{1,256}\\.[a-z]{1,63}\\b|(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}|\\[(?:[0-9a-fA-F]{1,4}(?::[0-9a-fA-F]{1,4}|:){1,7}|::[0-9a-fA-F:.]*)\\]|localhost)(?::\\d+)?([-a-zA-Z0-9@:%_+.~#?&//=]*)|^[a-zA-Z]\\w*:[^//][a-zA-Z0-9@:%._+~#=?&-]*|^(?:[a-zA-Z0-9@:%._+~#=-]{1,256}\\.[a-z]{1,63}\\b|(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}|\\[(?:[0-9a-fA-F]{1,4}(?::[0-9a-fA-F]{1,4}|:){1,7}|::[0-9a-fA-F:.]*)\\]|localhost)(?::\\d+)?([-a-zA-Z0-9@:%_+.~#?&//=]*)/i;\n\nexport const YOUTUBE_URL_REGEXP =\n /^((?:https?:)?\\/\\/)?((?:www|m)\\.)?((?:youtube\\.com|youtu.be))(\\/(?:[\\w-]+\\?v=|embed\\/|v\\/)?)([\\w-]+)(\\S*?)(\\?[^#]*)?$/;\n\nexport const VIMEO_URL_REGEXP =\n /((?:http|https):\\/\\/)?(www\\.|player\\.)?vimeo\\.com\\/(?:channels\\/(?:\\w+\\/)?|groups\\/([^/]*)\\/videos\\/|(?:manage\\/)?videos?\\/|)(\\d+)(?:(?:\\/|\\?h=)(\\w+))?(?:|\\/\\?)(\\?[^#]*)?/;\n\nexport const LOOM_URL_REGEXP =\n /((?:http|https):\\/\\/)?(www\\.)?loom\\.com\\/(share|embed)\\/([a-f0-9]{32})(?:\\?sid=([a-f0-9-]{36}))?(?:\\?t=(\\d+))?(\\?[^#]*)?/;\n\nexport const NEETO_RECORD_URL_REGEXP =\n /((?:http|https):\\/\\/)?(www\\.)?[a-zA-Z0-9-]+\\.(neetorecord\\.com)\\/(watch)\\/([^/\\s?#]+)/;\n\nexport const NEETO_RECORD_CUSTOM_DOMAIN_URL_REGEXP =\n /((?:http|https):\\/\\/)?(www\\.)?(\\w+(?:[\\w-]*\\w)?(?:\\.\\w+(?:[\\w-]*\\w)?)+)\\/(watch)\\/([^/\\s?#]+)/;\n\nexport const SUPA_DEMO_URL_REGEXP =\n /((?:http|https):\\/\\/)?(www\\.)?([a-zA-Z0-9-]+)\\.([a-zA-Z0-9-]+\\.[a-zA-Z0-9-]+)\\/(demo|embed)\\/([0-9a-z]+)/;\n\nexport const TWITTER_URL_REGEXP =\n /((?:http|https):\\/\\/)?(www\\.|mobile\\.)?(twitter\\.com|x\\.com)\\/(?:#!\\/)?(\\w+)\\/status(?:es)?\\/(\\d+)(?:\\?[^#]*)?/;\n\nexport const COMBINED_REGEX = new RegExp(\n pluck(\"source\", [\n YOUTUBE_URL_REGEXP,\n VIMEO_URL_REGEXP,\n LOOM_URL_REGEXP,\n NEETO_RECORD_URL_REGEXP,\n NEETO_RECORD_CUSTOM_DOMAIN_URL_REGEXP,\n SUPA_DEMO_URL_REGEXP,\n TWITTER_URL_REGEXP,\n ]).join(\"|\"),\n \"g\"\n);\n\nexport const URL_VALIDATORS = {\n youtube: url => {\n const match = url.match(YOUTUBE_URL_REGEXP);\n\n return match && `https://www.youtube.com/embed/${match[5]}`;\n },\n vimeo: url => {\n const match = url.match(VIMEO_URL_REGEXP);\n\n return match && `https://player.vimeo.com/video/${match[4]}?h=${match[5]}`;\n },\n loom: url => {\n const match = url.match(LOOM_URL_REGEXP);\n\n return (\n match && `https://www.loom.com/embed/${match[4]}?t=${match[5] || \"\"}`\n );\n },\n neetoRecord: url => {\n const match = url.match(NEETO_RECORD_URL_REGEXP);\n\n return match && url.replace(\"watch\", \"embeds\");\n },\n neetoRecordCustom: url => {\n const match = url.match(NEETO_RECORD_CUSTOM_DOMAIN_URL_REGEXP);\n\n return match && url.replace(\"watch\", \"embeds\");\n },\n supademo: url => {\n const match = url.match(SUPA_DEMO_URL_REGEXP);\n\n return (\n match && `https://${match[3]}.${match[4]}/embed/${match[6]}?embed_v=2`\n );\n },\n twitter: url => {\n const match = url.match(TWITTER_URL_REGEXP);\n\n return (\n match && `https://platform.twitter.com/embed/Tweet.html?id=${match[5]}`\n );\n },\n};\n\nexport const EDITOR_SIZES = {\n MEDIUM: \"medium\",\n LARGE: \"large\",\n SMALL: \"small\",\n};\n\n// TodoList renames Tiptap's taskList wrapper to todoList, so ListKeymap's\n// default listTypes would not match our schema.\nexport const LIST_KEYMAP_LIST_TYPES = [\n { itemName: \"listItem\", wrapperNames: [\"bulletList\", \"orderedList\"] },\n { itemName: \"taskItem\", wrapperNames: [\"todoList\"] },\n];\n"],"names":["EDITOR_OPTIONS","BOLD","ITALIC","UNDERLINE","STRIKETHROUGH","LINK","PARAGRAPH","H1","H2","H3","H4","H5","H6","LIST_BULLETS","LIST_ORDERED","CODE","CODE_BLOCK","BLOCKQUOTE","CALLOUT","ATTACHMENTS","TODO_LIST","UNDO","REDO","HIGHLIGHT","EMOJI","IMAGE_UPLOAD","IMAGE_UPLOAD_UNSPLASH","VIDEO_UPLOAD","DIVIDER","PASTE_UNFORMATTED","TABLE","TEXT_COLOR","NEETO_KB_ARTICLE","DIRECT_UPLOAD_ENDPOINT","URL_REGEXP","ALL_PROTOCOL_URL_REGEXP","YOUTUBE_URL_REGEXP","VIMEO_URL_REGEXP","LOOM_URL_REGEXP","NEETO_RECORD_URL_REGEXP","NEETO_RECORD_CUSTOM_DOMAIN_URL_REGEXP","SUPA_DEMO_URL_REGEXP","TWITTER_URL_REGEXP","COMBINED_REGEX","RegExp","pluck","join","URL_VALIDATORS","youtube","url","match","concat","vimeo","loom","neetoRecord","replace","neetoRecordCustom","supademo","twitter","EDITOR_SIZES","MEDIUM","LARGE","SMALL","LIST_KEYMAP_LIST_TYPES","itemName","wrapperNames"],"mappings":"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"}
|
|
@@ -15,6 +15,7 @@ var neetoCist = require('@bigbinary/neeto-cist');
|
|
|
15
15
|
var useEditorStore = require('./chunk-CohcWDmm.cjs.js');
|
|
16
16
|
var index = require('./chunk-Crp27WMe.cjs.js');
|
|
17
17
|
var Y = require('yjs');
|
|
18
|
+
var constants = require('./chunk-BxKa_XOs.cjs.js');
|
|
18
19
|
var ReactDOM = require('react-dom');
|
|
19
20
|
|
|
20
21
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
@@ -58,8 +59,8 @@ var MODAL_TOP_OFFSET = 22;
|
|
|
58
59
|
var MODAL_TRANSFORM_Y = 52;
|
|
59
60
|
var MODAL_TRANSFORM_X = 8;
|
|
60
61
|
|
|
61
|
-
function ownKeys$
|
|
62
|
-
function _objectSpread$
|
|
62
|
+
function ownKeys$3(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; }
|
|
63
|
+
function _objectSpread$3(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$3(Object(t), true).forEach(function (r) { _defineProperty__default.default(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$3(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
63
64
|
var buildArticleFullUrl = function buildArticleFullUrl(slug) {
|
|
64
65
|
return slug ? "".concat(NEETO_KB_ENDPOINT, "/articles/").concat(slug) : null;
|
|
65
66
|
};
|
|
@@ -68,7 +69,7 @@ var createArticleOptions = function createArticleOptions(articles) {
|
|
|
68
69
|
return {
|
|
69
70
|
label: common.decodeHtmlEntities(article.title),
|
|
70
71
|
value: article.id,
|
|
71
|
-
data: _objectSpread$
|
|
72
|
+
data: _objectSpread$3({
|
|
72
73
|
type: "article"
|
|
73
74
|
}, article)
|
|
74
75
|
};
|
|
@@ -95,8 +96,8 @@ var QUERY_KEYS = {
|
|
|
95
96
|
};
|
|
96
97
|
|
|
97
98
|
var _globalProps$organiza;
|
|
98
|
-
function ownKeys$
|
|
99
|
-
function _objectSpread$
|
|
99
|
+
function ownKeys$2(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; }
|
|
100
|
+
function _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$2(Object(t), true).forEach(function (r) { _defineProperty__default.default(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$2(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
100
101
|
var apiConfig = {
|
|
101
102
|
baseURL: NEETO_KB_ENDPOINT,
|
|
102
103
|
headers: {
|
|
@@ -106,7 +107,7 @@ var apiConfig = {
|
|
|
106
107
|
transformRequestCase: false
|
|
107
108
|
};
|
|
108
109
|
var fetchArticles = function fetchArticles(params) {
|
|
109
|
-
return axios__default.default.get(NEETO_KB_ARTICLES_URL, _objectSpread$
|
|
110
|
+
return axios__default.default.get(NEETO_KB_ARTICLES_URL, _objectSpread$2(_objectSpread$2({}, apiConfig), {}, {
|
|
110
111
|
params: params
|
|
111
112
|
}));
|
|
112
113
|
};
|
|
@@ -114,8 +115,8 @@ var neetoKbApi = {
|
|
|
114
115
|
fetchArticles: fetchArticles
|
|
115
116
|
};
|
|
116
117
|
|
|
117
|
-
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; }
|
|
118
|
-
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__default.default(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; }
|
|
118
|
+
function ownKeys$1(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; }
|
|
119
|
+
function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), true).forEach(function (r) { _defineProperty__default.default(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
119
120
|
var useFetchKbArticles = function useFetchKbArticles() {
|
|
120
121
|
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
121
122
|
_ref$searchTerm = _ref.searchTerm,
|
|
@@ -125,7 +126,7 @@ var useFetchKbArticles = function useFetchKbArticles() {
|
|
|
125
126
|
var queryParams = searchTerm ? {
|
|
126
127
|
search_term: searchTerm
|
|
127
128
|
} : {};
|
|
128
|
-
return reactQuery.useQuery(_objectSpread({
|
|
129
|
+
return reactQuery.useQuery(_objectSpread$1({
|
|
129
130
|
queryKey: [QUERY_KEYS.KB_ARTICLES, queryParams],
|
|
130
131
|
queryFn: function () {
|
|
131
132
|
var _queryFn = _asyncToGenerator__default.default(/*#__PURE__*/_regeneratorRuntime__default.default.mark(function _callee() {
|
|
@@ -13281,6 +13282,44 @@ const StarterKit = useEditorStore.Extension.create({
|
|
|
13281
13282
|
//#region src/index.ts
|
|
13282
13283
|
var src_default$3 = StarterKit;
|
|
13283
13284
|
|
|
13285
|
+
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; }
|
|
13286
|
+
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__default.default(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; }
|
|
13287
|
+
|
|
13288
|
+
// Tiptap's ListKeymap backspace handler calls `$anchor.before()` to locate the
|
|
13289
|
+
// list to merge the cursor's block into. A gap cursor resolves at the top level
|
|
13290
|
+
// of the document, where `before()` raises
|
|
13291
|
+
// `RangeError: There is no position before the top-level node`. That merge is
|
|
13292
|
+
// only meaningful from inside a textblock, so decline the shortcut and let
|
|
13293
|
+
// ProseMirror's default backspace handle the gap cursor.
|
|
13294
|
+
var guard = function guard(handler) {
|
|
13295
|
+
return function (props) {
|
|
13296
|
+
return props.editor.state.selection.$anchor.depth === 0 ? false : handler(props);
|
|
13297
|
+
};
|
|
13298
|
+
};
|
|
13299
|
+
|
|
13300
|
+
// Only wrap a shortcut the parent actually defines, so a future upstream that
|
|
13301
|
+
// drops one of these keys does not leave us registering `guard(undefined)`.
|
|
13302
|
+
var guarded = function guarded(shortcuts, key) {
|
|
13303
|
+
return typeof shortcuts[key] === "function" ? _defineProperty__default.default({}, key, guard(shortcuts[key])) : {};
|
|
13304
|
+
};
|
|
13305
|
+
|
|
13306
|
+
// Deliberately no `priority`: `.extend()` inherits ListKeymap's default (100),
|
|
13307
|
+
// which keeps the ordering this keymap already had against the other
|
|
13308
|
+
// Backspace handlers (e.g. Callout) now that StarterKit's copy is disabled.
|
|
13309
|
+
var safeListKeymap = ListKeymap.extend({
|
|
13310
|
+
addOptions: function addOptions() {
|
|
13311
|
+
var _this$parent;
|
|
13312
|
+
return _objectSpread(_objectSpread({}, (_this$parent = this.parent) === null || _this$parent === void 0 ? void 0 : _this$parent.call(this)), {}, {
|
|
13313
|
+
listTypes: constants.LIST_KEYMAP_LIST_TYPES
|
|
13314
|
+
});
|
|
13315
|
+
},
|
|
13316
|
+
addKeyboardShortcuts: function addKeyboardShortcuts() {
|
|
13317
|
+
var _this$parent2, _this$parent3;
|
|
13318
|
+
var shortcuts = (_this$parent2 = (_this$parent3 = this.parent) === null || _this$parent3 === void 0 ? void 0 : _this$parent3.call(this)) !== null && _this$parent2 !== void 0 ? _this$parent2 : {};
|
|
13319
|
+
return _objectSpread(_objectSpread(_objectSpread({}, shortcuts), guarded(shortcuts, "Backspace")), guarded(shortcuts, "Mod-Backspace"));
|
|
13320
|
+
}
|
|
13321
|
+
});
|
|
13322
|
+
|
|
13284
13323
|
var ensureMarks = function ensureMarks(state, splittableMarks) {
|
|
13285
13324
|
var marks = state.storedMarks || state.selection.$to.parentOffset && state.selection.$from.marks();
|
|
13286
13325
|
if (marks) {
|
|
@@ -15307,6 +15346,7 @@ exports.TextStyle = TextStyle;
|
|
|
15307
15346
|
exports.buildArticleFullUrl = buildArticleFullUrl;
|
|
15308
15347
|
exports.createArticleOptions = createArticleOptions;
|
|
15309
15348
|
exports.fuzzySearch = fuzzySearch;
|
|
15349
|
+
exports.safeListKeymap = safeListKeymap;
|
|
15310
15350
|
exports.safeSplitBlock = safeSplitBlock;
|
|
15311
15351
|
exports.scrollHandler = scrollHandler;
|
|
15312
15352
|
exports.src_default = src_default$2;
|
|
@@ -15323,4 +15363,4 @@ exports.src_default$9 = src_default$9;
|
|
|
15323
15363
|
exports.useDeletedArticles = useDeletedArticles;
|
|
15324
15364
|
exports.useEditorWarnings = useEditorWarnings;
|
|
15325
15365
|
exports.useFetchKbArticles = useFetchKbArticles;
|
|
15326
|
-
//# sourceMappingURL=chunk-
|
|
15366
|
+
//# sourceMappingURL=chunk-CNhef3wf.cjs.js.map
|