@bigbinary/neeto-editor 1.47.77 → 1.47.79

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/dist/Attachments.js +3 -3
  2. package/dist/Editor.js +6 -6
  3. package/dist/EditorContent.js +2 -2
  4. package/dist/FormikEditor.js +6 -6
  5. package/dist/Menu.js +5 -5
  6. package/dist/{chunk-CkQeBm6A.js → chunk-BOAmmpv4.js} +3 -3
  7. package/dist/{chunk-CkQeBm6A.js.map → chunk-BOAmmpv4.js.map} +1 -1
  8. package/dist/{chunk-Bo7NcVuL.js → chunk-CXmkXuF3.js} +61 -97
  9. package/dist/chunk-CXmkXuF3.js.map +1 -0
  10. package/dist/{chunk-B5YaLVE-.js → chunk-CZULBD4z.js} +4 -4
  11. package/dist/{chunk-B5YaLVE-.js.map → chunk-CZULBD4z.js.map} +1 -1
  12. package/dist/{chunk-BNHtPaDh.js → chunk-DADua5Hs.js} +4 -4
  13. package/dist/{chunk-BNHtPaDh.js.map → chunk-DADua5Hs.js.map} +1 -1
  14. package/dist/{chunk-DDwycKmK.js → chunk-DNMH2cJJ.js} +2 -2
  15. package/dist/{chunk-DDwycKmK.js.map → chunk-DNMH2cJJ.js.map} +1 -1
  16. package/dist/{chunk-CF5f8-fy.js → chunk-DxGDZoUl.js} +2 -2
  17. package/dist/{chunk-CF5f8-fy.js.map → chunk-DxGDZoUl.js.map} +1 -1
  18. package/dist/{chunk-W4Qa_gr3.js → chunk-V3YZX4m4.js} +4 -17
  19. package/dist/chunk-V3YZX4m4.js.map +1 -0
  20. package/dist/cjs/Attachments.cjs.js +2 -2
  21. package/dist/cjs/Editor.cjs.js +4 -4
  22. package/dist/cjs/Editor.cjs.js.map +1 -1
  23. package/dist/cjs/FormikEditor.cjs.js +3 -3
  24. package/dist/cjs/Menu.cjs.js +2 -2
  25. package/dist/cjs/{chunk-rjsFR0-b.cjs.js → chunk-BWh2yM_t.cjs.js} +3 -3
  26. package/dist/cjs/{chunk-rjsFR0-b.cjs.js.map → chunk-BWh2yM_t.cjs.js.map} +1 -1
  27. package/dist/cjs/{chunk-seb1zfr-.cjs.js → chunk-D6gUFJOw.cjs.js} +3 -3
  28. package/dist/cjs/{chunk-seb1zfr-.cjs.js.map → chunk-D6gUFJOw.cjs.js.map} +1 -1
  29. package/dist/cjs/{chunk-B6RMsqti.cjs.js → chunk-Ew36msGi.cjs.js} +2 -16
  30. package/dist/cjs/chunk-Ew36msGi.cjs.js.map +1 -0
  31. package/dist/cjs/{chunk-CS245CXd.cjs.js → chunk-pQ98WW7j.cjs.js} +58 -93
  32. package/dist/cjs/chunk-pQ98WW7j.cjs.js.map +1 -0
  33. package/dist/cjs/index.cjs.js +3 -3
  34. package/dist/constants.js +2 -2
  35. package/dist/editor-stats.html +1 -1
  36. package/dist/index.js +6 -6
  37. package/dist/utils.js +3 -3
  38. package/package.json +1 -1
  39. package/src/translations/ar.json +2 -2
  40. package/src/translations/bg.json +2 -2
  41. package/src/translations/ca.json +2 -2
  42. package/src/translations/cs.json +2 -2
  43. package/src/translations/da.json +2 -2
  44. package/src/translations/de.json +2 -2
  45. package/src/translations/es-MX.json +2 -2
  46. package/src/translations/es.json +2 -2
  47. package/src/translations/et.json +2 -2
  48. package/src/translations/fi.json +2 -2
  49. package/src/translations/fil.json +2 -2
  50. package/src/translations/fr.json +2 -2
  51. package/src/translations/he.json +2 -2
  52. package/src/translations/hi.json +2 -2
  53. package/src/translations/hr.json +2 -2
  54. package/src/translations/id.json +2 -2
  55. package/src/translations/it.json +2 -2
  56. package/src/translations/ja.json +2 -2
  57. package/src/translations/ko.json +2 -2
  58. package/src/translations/nl.json +2 -2
  59. package/src/translations/pl.json +2 -2
  60. package/src/translations/pt-BR.json +2 -2
  61. package/src/translations/pt.json +2 -2
  62. package/src/translations/ro.json +2 -2
  63. package/src/translations/ru.json +2 -2
  64. package/src/translations/sk.json +2 -2
  65. package/src/translations/sl.json +2 -2
  66. package/src/translations/sv.json +2 -2
  67. package/src/translations/th.json +2 -2
  68. package/src/translations/tr.json +2 -2
  69. package/src/translations/uk.json +2 -2
  70. package/src/translations/vi.json +2 -2
  71. package/src/translations/zh-CN.json +2 -2
  72. package/src/translations/zh-TW.json +2 -2
  73. package/dist/chunk-Bo7NcVuL.js.map +0 -1
  74. package/dist/chunk-W4Qa_gr3.js.map +0 -1
  75. package/dist/cjs/chunk-B6RMsqti.cjs.js.map +0 -1
  76. package/dist/cjs/chunk-CS245CXd.cjs.js.map +0 -1
@@ -69,7 +69,7 @@ var neetoImageUploaderFrontend = require('@bigbinary/neeto-image-uploader-fronte
69
69
  var Modal = require('@bigbinary/neetoui/Modal');
70
70
  var Tab = require('@bigbinary/neetoui/Tab');
71
71
  var Toastr = require('@bigbinary/neetoui/Toastr');
72
- var FileIcon = require('./chunk-B6RMsqti.cjs.js');
72
+ var FileIcon = require('./chunk-Ew36msGi.cjs.js');
73
73
  var Tooltip = require('@bigbinary/neetoui/Tooltip');
74
74
  var Form = require('@bigbinary/neetoui/formik/Form');
75
75
  var Input$1 = require('@bigbinary/neetoui/formik/Input');
@@ -15734,6 +15734,16 @@ var generateFocusProps = function generateFocusProps() {
15734
15734
  return highlight ? focusProps : {};
15735
15735
  };
15736
15736
 
15737
+ var validateUrl = function validateUrl(url) {
15738
+ if (!url) return false;
15739
+ for (var _i = 0, _Object$values = Object.values(constants.URL_VALIDATORS); _i < _Object$values.length; _i++) {
15740
+ var validator = _Object$values[_i];
15741
+ var result = validator(url);
15742
+ if (result) return result;
15743
+ }
15744
+ return false;
15745
+ };
15746
+
15737
15747
  /** @type {import("neetocommons/react-utils").ZustandStoreHook} */
15738
15748
  var useEditorStore = zustand.create(reactUtils.withImmutableActions(function (set) {
15739
15749
  return {
@@ -16889,69 +16899,28 @@ var LocalUploader = function LocalUploader(_ref) {
16889
16899
  });
16890
16900
  };
16891
16901
 
16892
- var URLForm = function URLForm(_ref) {
16893
- var _ref$buttonLabel = _ref.buttonLabel,
16894
- buttonLabel = _ref$buttonLabel === void 0 ? "Submit" : _ref$buttonLabel,
16895
- placeholder = _ref.placeholder,
16896
- onSubmit = _ref.onSubmit,
16897
- _ref$className = _ref.className,
16898
- className = _ref$className === void 0 ? "" : _ref$className;
16902
+ var VideoEmbedForm = function VideoEmbedForm(_ref) {
16903
+ var onEmbedVideo = _ref.onEmbedVideo,
16904
+ onAttachVideo = _ref.onAttachVideo,
16905
+ onClose = _ref.onClose;
16899
16906
  var _useTranslation = reactI18next.useTranslation(),
16900
16907
  t = _useTranslation.t;
16901
- var _useState = React.useState(""),
16902
- _useState2 = _slicedToArray(_useState, 2),
16903
- urlString = _useState2[0],
16904
- setUrlString = _useState2[1];
16905
- var _useState3 = React.useState(""),
16906
- _useState4 = _slicedToArray(_useState3, 2),
16907
- error = _useState4[0],
16908
- setError = _useState4[1];
16909
- var handleSubmit = function handleSubmit(event) {
16910
- event.preventDefault();
16911
- constants.URL_REGEXP.test(urlString) ? onSubmit(urlString) : setError(t("neetoEditor.error.invalidUrl"));
16908
+ var initialValues = {
16909
+ url: ""
16910
+ };
16911
+ var onSubmit = function onSubmit(_ref2) {
16912
+ var url = _ref2.url;
16913
+ var embedUrl = validateUrl(url); // False when current url is not "embeddable"
16914
+ if (embedUrl) onEmbedVideo(embedUrl);else onAttachVideo(url);
16915
+ onClose();
16912
16916
  };
16913
- return /*#__PURE__*/jsxRuntime.jsxs("div", {
16914
- className: classnames("neeto-editor-url-form__wrapper", _defineProperty({}, className, className)),
16915
- children: [/*#__PURE__*/jsxRuntime.jsx(Input, {
16916
- error: error,
16917
- placeholder: placeholder,
16918
- autoFocus: true,
16919
- "data-cy": "neeto-editor-media-upload-url-input",
16920
- name: "url",
16921
- value: urlString,
16922
- onChange: function onChange(_ref2) {
16923
- var value = _ref2.target.value;
16924
- return setUrlString(value);
16925
- },
16926
- onFocus: function onFocus() {
16927
- return setError("");
16928
- }
16929
- }), /*#__PURE__*/jsxRuntime.jsx(Button$1, {
16930
- "data-cy": "neeto-editor-media-upload-url-submit",
16931
- disabled: !urlString,
16932
- label: buttonLabel,
16933
- size: "small",
16934
- onClick: handleSubmit
16935
- })]
16936
- });
16937
- };
16938
-
16939
- var VideoEmbedForm = reactUtils.withT(function (_ref) {
16940
- var t = _ref.t,
16941
- _onSubmit = _ref.onSubmit,
16942
- onCancel = _ref.onCancel;
16943
16917
  return /*#__PURE__*/jsxRuntime.jsx("div", {
16944
16918
  className: "ne-video-embed-form",
16945
16919
  children: /*#__PURE__*/jsxRuntime.jsx(Form, {
16946
16920
  formikProps: {
16947
- initialValues: {
16948
- videoUrl: ""
16949
- },
16950
- onSubmit: function onSubmit(_ref2) {
16951
- var videoUrl = _ref2.videoUrl;
16952
- return _onSubmit(videoUrl);
16953
- },
16954
- validationSchema: FileIcon.VIDEO_EMBED_FORM_VALIDATION_SCHEMA
16921
+ initialValues: initialValues,
16922
+ validationSchema: FileIcon.VIDEO_EMBED_FORM_VALIDATION_SCHEMA,
16923
+ onSubmit: onSubmit
16955
16924
  },
16956
16925
  children: function children(_ref3) {
16957
16926
  var dirty = _ref3.dirty,
@@ -16965,7 +16934,7 @@ var VideoEmbedForm = reactUtils.withT(function (_ref) {
16965
16934
  unlimitedChars: true,
16966
16935
  "data-cy": "neeto-editor-video-embed-input",
16967
16936
  label: t("neetoEditor.common.videoUrl"),
16968
- name: "videoUrl",
16937
+ name: "url",
16969
16938
  placeholder: t("neetoEditor.placeholders.embedUrl"),
16970
16939
  size: "medium",
16971
16940
  type: "text"
@@ -16977,7 +16946,7 @@ var VideoEmbedForm = reactUtils.withT(function (_ref) {
16977
16946
  size: "small",
16978
16947
  onClick: function onClick() {
16979
16948
  resetForm();
16980
- onCancel === null || onCancel === void 0 || onCancel();
16949
+ onClose();
16981
16950
  }
16982
16951
  },
16983
16952
  submitButtonProps: {
@@ -16992,7 +16961,7 @@ var VideoEmbedForm = reactUtils.withT(function (_ref) {
16992
16961
  }
16993
16962
  })
16994
16963
  });
16995
- });
16964
+ };
16996
16965
 
16997
16966
  var MediaUploader = function MediaUploader(_ref) {
16998
16967
  var mediaUploader = _ref.mediaUploader,
@@ -17021,23 +16990,8 @@ var MediaUploader = function MediaUploader(_ref) {
17021
16990
  setActiveTab("local");
17022
16991
  editor.commands.focus();
17023
16992
  };
17024
- var handleSubmit = function handleSubmit(url) {
17025
- insertMediaToEditor({
17026
- url: url,
17027
- alt: "image"
17028
- });
17029
- handleClose();
17030
- };
17031
- var handleVideoEmbed = function handleVideoEmbed(url) {
17032
- var validatedUrl = FileIcon.validateUrl(url);
17033
- if (validatedUrl) {
17034
- editor.chain().focus().setExternalVideo({
17035
- src: validatedUrl
17036
- }).run();
17037
- handleClose();
17038
- }
17039
- };
17040
16993
  var insertMediaToEditor = function insertMediaToEditor(file) {
16994
+ if (!editor) return;
17041
16995
  var url = file.url,
17042
16996
  _file$filename = file.filename,
17043
16997
  filename = _file$filename === void 0 ? "image" : _file$filename,
@@ -17059,7 +17013,7 @@ var MediaUploader = function MediaUploader(_ref) {
17059
17013
  return commands.insertContentAt(safePosition, "<p></p>");
17060
17014
  }).run();
17061
17015
  };
17062
- var handleImageUploadComplete = /*#__PURE__*/function () {
17016
+ var onUploadComplete = /*#__PURE__*/function () {
17063
17017
  var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(file) {
17064
17018
  return _regeneratorRuntime.wrap(function _callee$(_context) {
17065
17019
  while (1) switch (_context.prev = _context.next) {
@@ -17085,10 +17039,23 @@ var MediaUploader = function MediaUploader(_ref) {
17085
17039
  }
17086
17040
  }, _callee, null, [[0, 7]]);
17087
17041
  }));
17088
- return function handleImageUploadComplete(_x) {
17042
+ return function onUploadComplete(_x) {
17089
17043
  return _ref3.apply(this, arguments);
17090
17044
  };
17091
17045
  }();
17046
+ var onAttachVideo = function onAttachVideo(url) {
17047
+ var file = {
17048
+ url: url,
17049
+ alt: "image"
17050
+ };
17051
+ insertMediaToEditor(file);
17052
+ };
17053
+ var onEmbedVideo = function onEmbedVideo(url) {
17054
+ if (!editor) return;
17055
+ editor.chain().focus().setExternalVideo({
17056
+ src: url
17057
+ }).run();
17058
+ };
17092
17059
  return /*#__PURE__*/jsxRuntime.jsx(Modal, {
17093
17060
  isOpen: isOpen,
17094
17061
  className: "ne-media-uploader-modal",
@@ -17116,26 +17083,23 @@ var MediaUploader = function MediaUploader(_ref) {
17116
17083
  children: title
17117
17084
  }, key);
17118
17085
  })
17119
- }), /*#__PURE__*/jsxRuntime.jsx("div", {
17086
+ }), /*#__PURE__*/jsxRuntime.jsxs("div", {
17120
17087
  className: "ne-media-uploader__content",
17121
- children: mediaUploader.image ? /*#__PURE__*/jsxRuntime.jsx(neetoImageUploaderFrontend.ImageUploader, {
17122
- className: "ne-media-uploader__image-uploader",
17123
- onUploadComplete: handleImageUploadComplete
17124
- }) : /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
17125
- children: [activeTab === "local" && mediaUploader.video && /*#__PURE__*/jsxRuntime.jsx(LocalUploader, {
17088
+ children: [mediaUploader.image && /*#__PURE__*/jsxRuntime.jsx(neetoImageUploaderFrontend.ImageUploader, {
17089
+ onUploadComplete: onUploadComplete,
17090
+ className: "ne-media-uploader__image-uploader"
17091
+ }), mediaUploader.video && /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
17092
+ children: [activeTab === "local" && /*#__PURE__*/jsxRuntime.jsx(LocalUploader, {
17126
17093
  insertMediaToEditor: insertMediaToEditor,
17127
17094
  setIsUploading: setIsUploading,
17128
17095
  isImage: false,
17129
17096
  onClose: handleClose
17130
- }), activeTab === "link" && /*#__PURE__*/jsxRuntime.jsx(URLForm, {
17131
- buttonLabel: t("neetoEditor.localUploader.uploadVideo"),
17132
- placeholder: t("neetoEditor.placeholders.pasteLink"),
17133
- onSubmit: handleSubmit
17134
- }), activeTab === "embed" && mediaUploader.video && /*#__PURE__*/jsxRuntime.jsx(VideoEmbedForm, {
17135
- onCancel: handleClose,
17136
- onSubmit: handleVideoEmbed
17097
+ }), activeTab === "embed" && /*#__PURE__*/jsxRuntime.jsx(VideoEmbedForm, {
17098
+ onAttachVideo: onAttachVideo,
17099
+ onEmbedVideo: onEmbedVideo,
17100
+ onClose: handleClose
17137
17101
  })]
17138
- })
17102
+ })]
17139
17103
  })]
17140
17104
  })
17141
17105
  });
@@ -19016,5 +18980,6 @@ exports.resetFocussedNode = resetFocussedNode;
19016
18980
  exports.textblockTypeInputRule = textblockTypeInputRule;
19017
18981
  exports.useEditor = useEditor;
19018
18982
  exports.useEditorState = useEditorState$1;
18983
+ exports.validateUrl = validateUrl;
19019
18984
  exports.wrappingInputRule = wrappingInputRule;
19020
- //# sourceMappingURL=chunk-CS245CXd.cjs.js.map
18985
+ //# sourceMappingURL=chunk-pQ98WW7j.cjs.js.map