@bigbinary/neeto-editor 1.47.122 → 1.47.123

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/index.js CHANGED
@@ -1,12 +1,12 @@
1
1
  export { E as EDITOR_OPTIONS } from './chunk-DDwycKmK.js';
2
2
  export { D as DEFAULT_EDITOR_OPTIONS } from './chunk-CF5f8-fy.js';
3
- export { i as isEditorOverlaysActive, a as isEmojiSuggestionsMenuActive, t as transformEditorContent } from './chunk-CnsiyshR.js';
3
+ export { i as isEditorOverlaysActive, a as isEmojiSuggestionsMenuActive, t as transformEditorContent } from './chunk-C_jttcYg.js';
4
4
  export { s as substituteVariables } from './chunk-aCTMceVU.js';
5
5
  export { i as isEditorContentWithinLimit, a as isEditorEmpty, r as removeEmptyTags } from './chunk-Qg4uQqj3.js';
6
6
  export { A as Attachments } from './chunk-DdxH-PMo.js';
7
7
  export { default as Editor } from './Editor.js';
8
8
  export { default as FormikEditor } from './FormikEditor.js';
9
- export { M as Menu } from './chunk-CHpkesFt.js';
9
+ export { M as Menu } from './chunk-CDPeBjvi.js';
10
10
  export { default as EditorContent } from './EditorContent.js';
11
11
  import { n } from './chunk-C2dztUxs.js';
12
12
  import 'ramda';
package/dist/utils.js CHANGED
@@ -1,4 +1,4 @@
1
- export { i as isEditorOverlaysActive, a as isEmojiSuggestionsMenuActive, t as transformEditorContent } from './chunk-CnsiyshR.js';
1
+ export { i as isEditorOverlaysActive, a as isEmojiSuggestionsMenuActive, t as transformEditorContent } from './chunk-C_jttcYg.js';
2
2
  export { s as substituteVariables } from './chunk-aCTMceVU.js';
3
3
  export { i as isEditorContentWithinLimit, a as isEditorEmpty, r as removeEmptyTags } from './chunk-Qg4uQqj3.js';
4
4
  import '@babel/runtime/helpers/defineProperty';
package/dist/v2/utils.js CHANGED
@@ -1,4 +1,4 @@
1
- export { i as isEditorOverlaysActive, a as isEmojiSuggestionsMenuActive, t as transformEditorContent } from '../chunk-CnsiyshR.js';
1
+ export { i as isEditorOverlaysActive, a as isEmojiSuggestionsMenuActive, t as transformEditorContent } from '../chunk-C_jttcYg.js';
2
2
  export { s as substituteVariables } from '../chunk-aCTMceVU.js';
3
3
  export { i as isEditorContentWithinLimit, a as isEditorEmpty, r as removeEmptyTags } from '../chunk-Qg4uQqj3.js';
4
4
  import '@babel/runtime/helpers/defineProperty';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bigbinary/neeto-editor",
3
- "version": "1.47.122",
3
+ "version": "1.47.123",
4
4
  "types": "./types.d.ts",
5
5
  "description": "neetoEditor is the library that drives the rich text experience in all neeto products built at BigBinary",
6
6
  "keywords": [
@@ -1 +0,0 @@
1
- {"version":3,"file":"chunk-CnsiyshR.js","sources":["../src/components/Editor/utils.js"],"sourcesContent":["import { Slice, Fragment, Node } from \"@tiptap/pm/model\";\nimport { Selection } from \"@tiptap/pm/state\";\nimport { isNotEmpty } from \"neetocist\";\n\nimport { ALL_PROTOCOL_URL_REGEXP, EDITOR_OPTIONS } from \"src/common/constants\";\n\nimport {\n EDITOR_LINE_HEIGHT,\n EDITOR_BORDER_SIZE,\n EDITOR_PADDING_SIZE,\n IMAGE_REGEX,\n IMAGE_REPLACEMENT_PATTERN,\n EMPTY_DIV_REGEX,\n TRAILING_BR_REGEX,\n} from \"./constants\";\n\nexport const getEditorStyles = ({ rows }) => {\n const editorHeight =\n rows * EDITOR_LINE_HEIGHT + 2 * (EDITOR_PADDING_SIZE + EDITOR_BORDER_SIZE);\n\n return `min-height: ${editorHeight}px;`;\n};\n\nexport const clipboardTextParser = (text, context) => {\n const nodes = [];\n const blocks = text.split(/\\n/);\n\n blocks.forEach(line => {\n const nodeJson = { type: \"paragraph\" };\n if (isNotEmpty(line)) {\n nodeJson.content = [{ type: \"text\", text: line }];\n }\n const node = Node.fromJSON(context.doc.type.schema, nodeJson);\n nodes.push(node);\n });\n\n const fragment = Fragment.fromArray(nodes);\n\n return Slice.maxOpen(fragment);\n};\n\nexport const setInitialPosition = editor => {\n const { state, view } = editor;\n const endPosition = Selection.atEnd(state.doc);\n const transaction = state.tr;\n transaction.setSelection(endPosition);\n view.dispatch(transaction);\n};\n\nexport const isEditorOverlaysActive = () =>\n document.querySelector(\n \".ne-media-uploader,.ne-embed-modal,.tippy-content,.ne-link-popover\"\n );\n\nexport const validateAndFormatUrl = url => {\n if (!ALL_PROTOCOL_URL_REGEXP.test(url)) {\n return null;\n }\n\n if (!/^[a-zA-Z]\\w*:/i.test(url)) {\n return `https://${url}`;\n }\n\n return url;\n};\n\nexport const transformEditorContent = content =>\n content\n ?.replaceAll(IMAGE_REGEX, IMAGE_REPLACEMENT_PATTERN)\n ?.replaceAll(EMPTY_DIV_REGEX, \"\")\n ?.replace(TRAILING_BR_REGEX, \"\");\n\nexport const isEmojiSuggestionsMenuActive = () =>\n !!document.querySelector(\".neeto-editor-emoji-suggestion\");\n\nexport const transformPastedHTML = content => {\n const contentWithoutBr = content.replaceAll(\"<br />\", \"<p></p>\");\n const doc = new DOMParser().parseFromString(contentWithoutBr, \"text/html\");\n\n // ProseMirror tags clipboard output from any TipTap/ProseMirror editor with\n // `data-pm-slice`. When present, the paste is coming from another\n // neeto-editor instance and we preserve the author's color choices. When\n // absent, the source is external (Word, websites, customer messages) and we\n // strip inline colors so foreign theming does not bleed into the editor.\n const isInternalPaste = doc.querySelector(\"[data-pm-slice]\") !== null;\n\n if (!isInternalPaste) {\n doc.querySelectorAll(\"[style]\").forEach(el => {\n el.style.color = \"\";\n el.style.backgroundColor = \"\";\n });\n }\n\n return doc.body.innerHTML;\n};\n\nexport const buildLevelsFromOptions = options => {\n const levels = {\n [EDITOR_OPTIONS.H1]: 1,\n [EDITOR_OPTIONS.H2]: 2,\n [EDITOR_OPTIONS.H3]: 3,\n [EDITOR_OPTIONS.H4]: 4,\n [EDITOR_OPTIONS.H5]: 5,\n [EDITOR_OPTIONS.H6]: 6,\n };\n\n return Object.entries(levels)\n .filter(heading => options.includes(heading[0]))\n .map(heading => heading[1]);\n};\n"],"names":["getEditorStyles","_ref","rows","editorHeight","EDITOR_LINE_HEIGHT","EDITOR_PADDING_SIZE","EDITOR_BORDER_SIZE","concat","clipboardTextParser","text","context","nodes","blocks","split","forEach","line","nodeJson","type","isNotEmpty","content","node","Node","fromJSON","doc","schema","push","fragment","Fragment","fromArray","Slice","maxOpen","setInitialPosition","editor","state","view","endPosition","Selection","atEnd","transaction","tr","setSelection","dispatch","isEditorOverlaysActive","document","querySelector","validateAndFormatUrl","url","ALL_PROTOCOL_URL_REGEXP","test","transformEditorContent","_content$replaceAll","replaceAll","IMAGE_REGEX","IMAGE_REPLACEMENT_PATTERN","EMPTY_DIV_REGEX","replace","TRAILING_BR_REGEX","isEmojiSuggestionsMenuActive","transformPastedHTML","contentWithoutBr","DOMParser","parseFromString","isInternalPaste","querySelectorAll","el","style","color","backgroundColor","body","innerHTML","buildLevelsFromOptions","options","levels","_defineProperty","EDITOR_OPTIONS","H1","H2","H3","H4","H5","H6","Object","entries","filter","heading","includes","map"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"chunk-BGvf6C3z.cjs.js","sources":["../../src/components/Editor/utils.js"],"sourcesContent":["import { Slice, Fragment, Node } from \"@tiptap/pm/model\";\nimport { Selection } from \"@tiptap/pm/state\";\nimport { isNotEmpty } from \"neetocist\";\n\nimport { ALL_PROTOCOL_URL_REGEXP, EDITOR_OPTIONS } from \"src/common/constants\";\n\nimport {\n EDITOR_LINE_HEIGHT,\n EDITOR_BORDER_SIZE,\n EDITOR_PADDING_SIZE,\n IMAGE_REGEX,\n IMAGE_REPLACEMENT_PATTERN,\n EMPTY_DIV_REGEX,\n TRAILING_BR_REGEX,\n} from \"./constants\";\n\nexport const getEditorStyles = ({ rows }) => {\n const editorHeight =\n rows * EDITOR_LINE_HEIGHT + 2 * (EDITOR_PADDING_SIZE + EDITOR_BORDER_SIZE);\n\n return `min-height: ${editorHeight}px;`;\n};\n\nexport const clipboardTextParser = (text, context) => {\n const nodes = [];\n const blocks = text.split(/\\n/);\n\n blocks.forEach(line => {\n const nodeJson = { type: \"paragraph\" };\n if (isNotEmpty(line)) {\n nodeJson.content = [{ type: \"text\", text: line }];\n }\n const node = Node.fromJSON(context.doc.type.schema, nodeJson);\n nodes.push(node);\n });\n\n const fragment = Fragment.fromArray(nodes);\n\n return Slice.maxOpen(fragment);\n};\n\nexport const setInitialPosition = editor => {\n const { state, view } = editor;\n const endPosition = Selection.atEnd(state.doc);\n const transaction = state.tr;\n transaction.setSelection(endPosition);\n view.dispatch(transaction);\n};\n\nexport const isEditorOverlaysActive = () =>\n document.querySelector(\n \".ne-media-uploader,.ne-embed-modal,.tippy-content,.ne-link-popover\"\n );\n\nexport const validateAndFormatUrl = url => {\n if (!ALL_PROTOCOL_URL_REGEXP.test(url)) {\n return null;\n }\n\n if (!/^[a-zA-Z]\\w*:/i.test(url)) {\n return `https://${url}`;\n }\n\n return url;\n};\n\nexport const transformEditorContent = content =>\n content\n ?.replaceAll(IMAGE_REGEX, IMAGE_REPLACEMENT_PATTERN)\n ?.replaceAll(EMPTY_DIV_REGEX, \"\")\n ?.replace(TRAILING_BR_REGEX, \"\");\n\nexport const isEmojiSuggestionsMenuActive = () =>\n !!document.querySelector(\".neeto-editor-emoji-suggestion\");\n\nexport const transformPastedHTML = content => {\n const contentWithoutBr = content.replaceAll(\"<br />\", \"<p></p>\");\n const doc = new DOMParser().parseFromString(contentWithoutBr, \"text/html\");\n\n // ProseMirror tags clipboard output from any TipTap/ProseMirror editor with\n // `data-pm-slice`. When present, the paste is coming from another\n // neeto-editor instance and we preserve the author's color choices. When\n // absent, the source is external (Word, websites, customer messages) and we\n // strip inline colors so foreign theming does not bleed into the editor.\n const isInternalPaste = doc.querySelector(\"[data-pm-slice]\") !== null;\n\n if (!isInternalPaste) {\n doc.querySelectorAll(\"[style]\").forEach(el => {\n el.style.color = \"\";\n el.style.backgroundColor = \"\";\n });\n }\n\n return doc.body.innerHTML;\n};\n\nexport const buildLevelsFromOptions = options => {\n const levels = {\n [EDITOR_OPTIONS.H1]: 1,\n [EDITOR_OPTIONS.H2]: 2,\n [EDITOR_OPTIONS.H3]: 3,\n [EDITOR_OPTIONS.H4]: 4,\n [EDITOR_OPTIONS.H5]: 5,\n [EDITOR_OPTIONS.H6]: 6,\n };\n\n return Object.entries(levels)\n .filter(heading => options.includes(heading[0]))\n .map(heading => heading[1]);\n};\n"],"names":["getEditorStyles","_ref","rows","editorHeight","EDITOR_LINE_HEIGHT","EDITOR_PADDING_SIZE","EDITOR_BORDER_SIZE","concat","clipboardTextParser","text","context","nodes","blocks","split","forEach","line","nodeJson","type","isNotEmpty","content","node","Node","fromJSON","doc","schema","push","fragment","Fragment","fromArray","Slice","maxOpen","setInitialPosition","editor","state","view","endPosition","Selection","atEnd","transaction","tr","setSelection","dispatch","isEditorOverlaysActive","document","querySelector","validateAndFormatUrl","url","ALL_PROTOCOL_URL_REGEXP","test","transformEditorContent","_content$replaceAll","replaceAll","IMAGE_REGEX","IMAGE_REPLACEMENT_PATTERN","EMPTY_DIV_REGEX","replace","TRAILING_BR_REGEX","isEmojiSuggestionsMenuActive","transformPastedHTML","contentWithoutBr","DOMParser","parseFromString","isInternalPaste","querySelectorAll","el","style","color","backgroundColor","body","innerHTML","buildLevelsFromOptions","options","levels","_defineProperty","EDITOR_OPTIONS","H1","H2","H3","H4","H5","H6","Object","entries","filter","heading","includes","map"],"mappings":"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"}