roosterjs-content-model-core 9.8.1 → 9.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/command/paste/paste.d.ts +3 -3
- package/lib/command/paste/paste.js +6 -3
- package/lib/command/paste/paste.js.map +1 -1
- package/lib-amd/command/paste/paste.d.ts +3 -3
- package/lib-amd/command/paste/paste.js +6 -3
- package/lib-amd/command/paste/paste.js.map +1 -1
- package/lib-mjs/command/paste/paste.d.ts +3 -3
- package/lib-mjs/command/paste/paste.js +6 -3
- package/lib-mjs/command/paste/paste.js.map +1 -1
- package/package.json +3 -3
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { PasteTypeOrGetter, ClipboardData, IEditor } from 'roosterjs-content-model-types';
|
|
2
2
|
/**
|
|
3
3
|
* Paste into editor using a clipboardData object
|
|
4
4
|
* @param editor The Editor object.
|
|
5
5
|
* @param clipboardData Clipboard data retrieved from clipboard
|
|
6
|
-
* @param
|
|
6
|
+
* @param pasteTypeOrGetter Type of content to paste or function that returns the Paste Type to use based on the document and the clipboard Data. @default normal
|
|
7
7
|
*/
|
|
8
|
-
export declare function paste(editor: IEditor, clipboardData: ClipboardData,
|
|
8
|
+
export declare function paste(editor: IEditor, clipboardData: ClipboardData, pasteTypeOrGetter?: PasteTypeOrGetter): void;
|
|
@@ -10,11 +10,11 @@ var retrieveHtmlInfo_1 = require("./retrieveHtmlInfo");
|
|
|
10
10
|
* Paste into editor using a clipboardData object
|
|
11
11
|
* @param editor The Editor object.
|
|
12
12
|
* @param clipboardData Clipboard data retrieved from clipboard
|
|
13
|
-
* @param
|
|
13
|
+
* @param pasteTypeOrGetter Type of content to paste or function that returns the Paste Type to use based on the document and the clipboard Data. @default normal
|
|
14
14
|
*/
|
|
15
|
-
function paste(editor, clipboardData,
|
|
15
|
+
function paste(editor, clipboardData, pasteTypeOrGetter) {
|
|
16
16
|
var _a;
|
|
17
|
-
if (
|
|
17
|
+
if (pasteTypeOrGetter === void 0) { pasteTypeOrGetter = 'normal'; }
|
|
18
18
|
editor.focus();
|
|
19
19
|
var trustedHTMLHandler = editor.getTrustedHTMLHandler();
|
|
20
20
|
if (!clipboardData.modelBeforePaste) {
|
|
@@ -25,6 +25,9 @@ function paste(editor, clipboardData, pasteType) {
|
|
|
25
25
|
}
|
|
26
26
|
// 1. Prepare variables
|
|
27
27
|
var doc = createDOMFromHtml(clipboardData.rawHtml, trustedHTMLHandler);
|
|
28
|
+
var pasteType = typeof pasteTypeOrGetter == 'function'
|
|
29
|
+
? pasteTypeOrGetter(doc, clipboardData)
|
|
30
|
+
: pasteTypeOrGetter;
|
|
28
31
|
// 2. Handle HTML from clipboard
|
|
29
32
|
var htmlFromClipboard = (0, retrieveHtmlInfo_1.retrieveHtmlInfo)(doc, clipboardData);
|
|
30
33
|
// 3. Create target fragment
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paste.js","sourceRoot":"","sources":["../../../../../packages/roosterjs-content-model-core/lib/command/paste/paste.ts"],"names":[],"mappings":";;;AAAA,yDAA4E;AAC5E,4EAA2E;AAC3E,6DAA4D;AAC5D,mFAAkF;AAClF,uDAAsD;AAQtD;;;;;GAKG;AACH,SAAgB,KAAK,CACjB,MAAe,EACf,aAA4B,EAC5B,
|
|
1
|
+
{"version":3,"file":"paste.js","sourceRoot":"","sources":["../../../../../packages/roosterjs-content-model-core/lib/command/paste/paste.ts"],"names":[],"mappings":";;;AAAA,yDAA4E;AAC5E,4EAA2E;AAC3E,6DAA4D;AAC5D,mFAAkF;AAClF,uDAAsD;AAQtD;;;;;GAKG;AACH,SAAgB,KAAK,CACjB,MAAe,EACf,aAA4B,EAC5B,iBAA+C;;IAA/C,kCAAA,EAAA,4BAA+C;IAE/C,MAAM,CAAC,KAAK,EAAE,CAAC;IAEf,IAAM,kBAAkB,GAAG,MAAM,CAAC,qBAAqB,EAAE,CAAC;IAE1D,IAAI,CAAC,aAAa,CAAC,gBAAgB,EAAE;QACjC,MAAM,CAAC,kBAAkB,CAAC,UAAA,KAAK;YAC3B,aAAa,CAAC,gBAAgB,GAAG,IAAA,sCAAkB,EAAC,KAAK,CAAC,CAAC;YAE3D,OAAO,KAAK,CAAC;QACjB,CAAC,CAAC,CAAC;KACN;IAED,uBAAuB;IACvB,IAAM,GAAG,GAAG,iBAAiB,CAAC,aAAa,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;IACzE,IAAM,SAAS,GACX,OAAO,iBAAiB,IAAI,UAAU;QAClC,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,aAAa,CAAC;QACvC,CAAC,CAAC,iBAAiB,CAAC;IAE5B,gCAAgC;IAChC,IAAM,iBAAiB,GAAG,IAAA,mCAAgB,EAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IAE/D,4BAA4B;IAC5B,IAAM,cAAc,GAAG,IAAA,yCAAmB,EACtC,MAAM,CAAC,WAAW,EAAE,EACpB,aAAa,EACb,SAAS,EACT,MAAA,CAAC,aAAa,CAAC,OAAO,IAAI,aAAa,CAAC,IAAI;QACxC,CAAC,CAAC,GAAG;QACL,CAAC,CAAC,iBAAiB,CAAC,aAAa,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAC9D,0CAAE,IAAI,CACV,CAAC;IAEF,oEAAoE;IACpE,IAAM,WAAW,GAAG,IAAA,+DAA8B,EAC9C,MAAM,EACN,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,SAAS,CACZ,CAAC;IAEF,sCAAsC;IACtC,IAAA,mCAAgB,EAAC,WAAW,CAAC,QAAQ,EAAE,iBAAiB,CAAC,cAAc,CAAC,CAAC;IAEzE,kDAAkD;IAClD,IAAA,qCAAiB,EAAC,MAAM,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC;AAC1D,CAAC;AApDD,sBAoDC;AAED,SAAS,iBAAiB,CACtB,IAA+B,EAC/B,kBAAsC;IAEtC,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,SAAS,EAAE,CAAC,eAAe,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAChG,CAAC","sourcesContent":["import { cloneModelForPaste, mergePasteContent } from './mergePasteContent';\nimport { convertInlineCss } from '../createModelFromHtml/convertInlineCss';\nimport { createPasteFragment } from './createPasteFragment';\nimport { generatePasteOptionFromPlugins } from './generatePasteOptionFromPlugins';\nimport { retrieveHtmlInfo } from './retrieveHtmlInfo';\nimport type {\n PasteTypeOrGetter,\n ClipboardData,\n TrustedHTMLHandler,\n IEditor,\n} from 'roosterjs-content-model-types';\n\n/**\n * Paste into editor using a clipboardData object\n * @param editor The Editor object.\n * @param clipboardData Clipboard data retrieved from clipboard\n * @param pasteTypeOrGetter Type of content to paste or function that returns the Paste Type to use based on the document and the clipboard Data. @default normal\n */\nexport function paste(\n editor: IEditor,\n clipboardData: ClipboardData,\n pasteTypeOrGetter: PasteTypeOrGetter = 'normal'\n) {\n editor.focus();\n\n const trustedHTMLHandler = editor.getTrustedHTMLHandler();\n\n if (!clipboardData.modelBeforePaste) {\n editor.formatContentModel(model => {\n clipboardData.modelBeforePaste = cloneModelForPaste(model);\n\n return false;\n });\n }\n\n // 1. Prepare variables\n const doc = createDOMFromHtml(clipboardData.rawHtml, trustedHTMLHandler);\n const pasteType =\n typeof pasteTypeOrGetter == 'function'\n ? pasteTypeOrGetter(doc, clipboardData)\n : pasteTypeOrGetter;\n\n // 2. Handle HTML from clipboard\n const htmlFromClipboard = retrieveHtmlInfo(doc, clipboardData);\n\n // 3. Create target fragment\n const sourceFragment = createPasteFragment(\n editor.getDocument(),\n clipboardData,\n pasteType,\n (clipboardData.rawHtml == clipboardData.html\n ? doc\n : createDOMFromHtml(clipboardData.html, trustedHTMLHandler)\n )?.body\n );\n\n // 4. Trigger BeforePaste event to allow plugins modify the fragment\n const eventResult = generatePasteOptionFromPlugins(\n editor,\n clipboardData,\n sourceFragment,\n htmlFromClipboard,\n pasteType\n );\n\n // 5. Convert global CSS to inline CSS\n convertInlineCss(eventResult.fragment, htmlFromClipboard.globalCssRules);\n\n // 6. Merge pasted content into main Content Model\n mergePasteContent(editor, eventResult, clipboardData);\n}\n\nfunction createDOMFromHtml(\n html: string | null | undefined,\n trustedHTMLHandler: TrustedHTMLHandler\n): Document | null {\n return html ? new DOMParser().parseFromString(trustedHTMLHandler(html), 'text/html') : null;\n}\n"]}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { PasteTypeOrGetter, ClipboardData, IEditor } from 'roosterjs-content-model-types';
|
|
2
2
|
/**
|
|
3
3
|
* Paste into editor using a clipboardData object
|
|
4
4
|
* @param editor The Editor object.
|
|
5
5
|
* @param clipboardData Clipboard data retrieved from clipboard
|
|
6
|
-
* @param
|
|
6
|
+
* @param pasteTypeOrGetter Type of content to paste or function that returns the Paste Type to use based on the document and the clipboard Data. @default normal
|
|
7
7
|
*/
|
|
8
|
-
export declare function paste(editor: IEditor, clipboardData: ClipboardData,
|
|
8
|
+
export declare function paste(editor: IEditor, clipboardData: ClipboardData, pasteTypeOrGetter?: PasteTypeOrGetter): void;
|
|
@@ -6,11 +6,11 @@ define(["require", "exports", "./mergePasteContent", "../createModelFromHtml/con
|
|
|
6
6
|
* Paste into editor using a clipboardData object
|
|
7
7
|
* @param editor The Editor object.
|
|
8
8
|
* @param clipboardData Clipboard data retrieved from clipboard
|
|
9
|
-
* @param
|
|
9
|
+
* @param pasteTypeOrGetter Type of content to paste or function that returns the Paste Type to use based on the document and the clipboard Data. @default normal
|
|
10
10
|
*/
|
|
11
|
-
function paste(editor, clipboardData,
|
|
11
|
+
function paste(editor, clipboardData, pasteTypeOrGetter) {
|
|
12
12
|
var _a;
|
|
13
|
-
if (
|
|
13
|
+
if (pasteTypeOrGetter === void 0) { pasteTypeOrGetter = 'normal'; }
|
|
14
14
|
editor.focus();
|
|
15
15
|
var trustedHTMLHandler = editor.getTrustedHTMLHandler();
|
|
16
16
|
if (!clipboardData.modelBeforePaste) {
|
|
@@ -21,6 +21,9 @@ define(["require", "exports", "./mergePasteContent", "../createModelFromHtml/con
|
|
|
21
21
|
}
|
|
22
22
|
// 1. Prepare variables
|
|
23
23
|
var doc = createDOMFromHtml(clipboardData.rawHtml, trustedHTMLHandler);
|
|
24
|
+
var pasteType = typeof pasteTypeOrGetter == 'function'
|
|
25
|
+
? pasteTypeOrGetter(doc, clipboardData)
|
|
26
|
+
: pasteTypeOrGetter;
|
|
24
27
|
// 2. Handle HTML from clipboard
|
|
25
28
|
var htmlFromClipboard = (0, retrieveHtmlInfo_1.retrieveHtmlInfo)(doc, clipboardData);
|
|
26
29
|
// 3. Create target fragment
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paste.js","sourceRoot":"","sources":["../../../../../packages/roosterjs-content-model-core/lib/command/paste/paste.ts"],"names":[],"mappings":";;;;IAYA;;;;;OAKG;IACH,SAAgB,KAAK,CACjB,MAAe,EACf,aAA4B,EAC5B,
|
|
1
|
+
{"version":3,"file":"paste.js","sourceRoot":"","sources":["../../../../../packages/roosterjs-content-model-core/lib/command/paste/paste.ts"],"names":[],"mappings":";;;;IAYA;;;;;OAKG;IACH,SAAgB,KAAK,CACjB,MAAe,EACf,aAA4B,EAC5B,iBAA+C;;QAA/C,kCAAA,EAAA,4BAA+C;QAE/C,MAAM,CAAC,KAAK,EAAE,CAAC;QAEf,IAAM,kBAAkB,GAAG,MAAM,CAAC,qBAAqB,EAAE,CAAC;QAE1D,IAAI,CAAC,aAAa,CAAC,gBAAgB,EAAE;YACjC,MAAM,CAAC,kBAAkB,CAAC,UAAA,KAAK;gBAC3B,aAAa,CAAC,gBAAgB,GAAG,IAAA,sCAAkB,EAAC,KAAK,CAAC,CAAC;gBAE3D,OAAO,KAAK,CAAC;YACjB,CAAC,CAAC,CAAC;SACN;QAED,uBAAuB;QACvB,IAAM,GAAG,GAAG,iBAAiB,CAAC,aAAa,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;QACzE,IAAM,SAAS,GACX,OAAO,iBAAiB,IAAI,UAAU;YAClC,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,aAAa,CAAC;YACvC,CAAC,CAAC,iBAAiB,CAAC;QAE5B,gCAAgC;QAChC,IAAM,iBAAiB,GAAG,IAAA,mCAAgB,EAAC,GAAG,EAAE,aAAa,CAAC,CAAC;QAE/D,4BAA4B;QAC5B,IAAM,cAAc,GAAG,IAAA,yCAAmB,EACtC,MAAM,CAAC,WAAW,EAAE,EACpB,aAAa,EACb,SAAS,EACT,MAAA,CAAC,aAAa,CAAC,OAAO,IAAI,aAAa,CAAC,IAAI;YACxC,CAAC,CAAC,GAAG;YACL,CAAC,CAAC,iBAAiB,CAAC,aAAa,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAC9D,0CAAE,IAAI,CACV,CAAC;QAEF,oEAAoE;QACpE,IAAM,WAAW,GAAG,IAAA,+DAA8B,EAC9C,MAAM,EACN,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,SAAS,CACZ,CAAC;QAEF,sCAAsC;QACtC,IAAA,mCAAgB,EAAC,WAAW,CAAC,QAAQ,EAAE,iBAAiB,CAAC,cAAc,CAAC,CAAC;QAEzE,kDAAkD;QAClD,IAAA,qCAAiB,EAAC,MAAM,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC;IAC1D,CAAC;IApDD,sBAoDC;IAED,SAAS,iBAAiB,CACtB,IAA+B,EAC/B,kBAAsC;QAEtC,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,SAAS,EAAE,CAAC,eAAe,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAChG,CAAC","sourcesContent":["import { cloneModelForPaste, mergePasteContent } from './mergePasteContent';\nimport { convertInlineCss } from '../createModelFromHtml/convertInlineCss';\nimport { createPasteFragment } from './createPasteFragment';\nimport { generatePasteOptionFromPlugins } from './generatePasteOptionFromPlugins';\nimport { retrieveHtmlInfo } from './retrieveHtmlInfo';\nimport type {\n PasteTypeOrGetter,\n ClipboardData,\n TrustedHTMLHandler,\n IEditor,\n} from 'roosterjs-content-model-types';\n\n/**\n * Paste into editor using a clipboardData object\n * @param editor The Editor object.\n * @param clipboardData Clipboard data retrieved from clipboard\n * @param pasteTypeOrGetter Type of content to paste or function that returns the Paste Type to use based on the document and the clipboard Data. @default normal\n */\nexport function paste(\n editor: IEditor,\n clipboardData: ClipboardData,\n pasteTypeOrGetter: PasteTypeOrGetter = 'normal'\n) {\n editor.focus();\n\n const trustedHTMLHandler = editor.getTrustedHTMLHandler();\n\n if (!clipboardData.modelBeforePaste) {\n editor.formatContentModel(model => {\n clipboardData.modelBeforePaste = cloneModelForPaste(model);\n\n return false;\n });\n }\n\n // 1. Prepare variables\n const doc = createDOMFromHtml(clipboardData.rawHtml, trustedHTMLHandler);\n const pasteType =\n typeof pasteTypeOrGetter == 'function'\n ? pasteTypeOrGetter(doc, clipboardData)\n : pasteTypeOrGetter;\n\n // 2. Handle HTML from clipboard\n const htmlFromClipboard = retrieveHtmlInfo(doc, clipboardData);\n\n // 3. Create target fragment\n const sourceFragment = createPasteFragment(\n editor.getDocument(),\n clipboardData,\n pasteType,\n (clipboardData.rawHtml == clipboardData.html\n ? doc\n : createDOMFromHtml(clipboardData.html, trustedHTMLHandler)\n )?.body\n );\n\n // 4. Trigger BeforePaste event to allow plugins modify the fragment\n const eventResult = generatePasteOptionFromPlugins(\n editor,\n clipboardData,\n sourceFragment,\n htmlFromClipboard,\n pasteType\n );\n\n // 5. Convert global CSS to inline CSS\n convertInlineCss(eventResult.fragment, htmlFromClipboard.globalCssRules);\n\n // 6. Merge pasted content into main Content Model\n mergePasteContent(editor, eventResult, clipboardData);\n}\n\nfunction createDOMFromHtml(\n html: string | null | undefined,\n trustedHTMLHandler: TrustedHTMLHandler\n): Document | null {\n return html ? new DOMParser().parseFromString(trustedHTMLHandler(html), 'text/html') : null;\n}\n"]}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { PasteTypeOrGetter, ClipboardData, IEditor } from 'roosterjs-content-model-types';
|
|
2
2
|
/**
|
|
3
3
|
* Paste into editor using a clipboardData object
|
|
4
4
|
* @param editor The Editor object.
|
|
5
5
|
* @param clipboardData Clipboard data retrieved from clipboard
|
|
6
|
-
* @param
|
|
6
|
+
* @param pasteTypeOrGetter Type of content to paste or function that returns the Paste Type to use based on the document and the clipboard Data. @default normal
|
|
7
7
|
*/
|
|
8
|
-
export declare function paste(editor: IEditor, clipboardData: ClipboardData,
|
|
8
|
+
export declare function paste(editor: IEditor, clipboardData: ClipboardData, pasteTypeOrGetter?: PasteTypeOrGetter): void;
|
|
@@ -7,11 +7,11 @@ import { retrieveHtmlInfo } from './retrieveHtmlInfo';
|
|
|
7
7
|
* Paste into editor using a clipboardData object
|
|
8
8
|
* @param editor The Editor object.
|
|
9
9
|
* @param clipboardData Clipboard data retrieved from clipboard
|
|
10
|
-
* @param
|
|
10
|
+
* @param pasteTypeOrGetter Type of content to paste or function that returns the Paste Type to use based on the document and the clipboard Data. @default normal
|
|
11
11
|
*/
|
|
12
|
-
export function paste(editor, clipboardData,
|
|
12
|
+
export function paste(editor, clipboardData, pasteTypeOrGetter) {
|
|
13
13
|
var _a;
|
|
14
|
-
if (
|
|
14
|
+
if (pasteTypeOrGetter === void 0) { pasteTypeOrGetter = 'normal'; }
|
|
15
15
|
editor.focus();
|
|
16
16
|
var trustedHTMLHandler = editor.getTrustedHTMLHandler();
|
|
17
17
|
if (!clipboardData.modelBeforePaste) {
|
|
@@ -22,6 +22,9 @@ export function paste(editor, clipboardData, pasteType) {
|
|
|
22
22
|
}
|
|
23
23
|
// 1. Prepare variables
|
|
24
24
|
var doc = createDOMFromHtml(clipboardData.rawHtml, trustedHTMLHandler);
|
|
25
|
+
var pasteType = typeof pasteTypeOrGetter == 'function'
|
|
26
|
+
? pasteTypeOrGetter(doc, clipboardData)
|
|
27
|
+
: pasteTypeOrGetter;
|
|
25
28
|
// 2. Handle HTML from clipboard
|
|
26
29
|
var htmlFromClipboard = retrieveHtmlInfo(doc, clipboardData);
|
|
27
30
|
// 3. Create target fragment
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paste.js","sourceRoot":"","sources":["../../../../../packages/roosterjs-content-model-core/lib/command/paste/paste.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAClF,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAQtD;;;;;GAKG;AACH,MAAM,UAAU,KAAK,CACjB,MAAe,EACf,aAA4B,EAC5B,
|
|
1
|
+
{"version":3,"file":"paste.js","sourceRoot":"","sources":["../../../../../packages/roosterjs-content-model-core/lib/command/paste/paste.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAClF,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAQtD;;;;;GAKG;AACH,MAAM,UAAU,KAAK,CACjB,MAAe,EACf,aAA4B,EAC5B,iBAA+C;;IAA/C,kCAAA,EAAA,4BAA+C;IAE/C,MAAM,CAAC,KAAK,EAAE,CAAC;IAEf,IAAM,kBAAkB,GAAG,MAAM,CAAC,qBAAqB,EAAE,CAAC;IAE1D,IAAI,CAAC,aAAa,CAAC,gBAAgB,EAAE;QACjC,MAAM,CAAC,kBAAkB,CAAC,UAAA,KAAK;YAC3B,aAAa,CAAC,gBAAgB,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;YAE3D,OAAO,KAAK,CAAC;QACjB,CAAC,CAAC,CAAC;KACN;IAED,uBAAuB;IACvB,IAAM,GAAG,GAAG,iBAAiB,CAAC,aAAa,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;IACzE,IAAM,SAAS,GACX,OAAO,iBAAiB,IAAI,UAAU;QAClC,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,aAAa,CAAC;QACvC,CAAC,CAAC,iBAAiB,CAAC;IAE5B,gCAAgC;IAChC,IAAM,iBAAiB,GAAG,gBAAgB,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IAE/D,4BAA4B;IAC5B,IAAM,cAAc,GAAG,mBAAmB,CACtC,MAAM,CAAC,WAAW,EAAE,EACpB,aAAa,EACb,SAAS,EACT,MAAA,CAAC,aAAa,CAAC,OAAO,IAAI,aAAa,CAAC,IAAI;QACxC,CAAC,CAAC,GAAG;QACL,CAAC,CAAC,iBAAiB,CAAC,aAAa,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAC9D,0CAAE,IAAI,CACV,CAAC;IAEF,oEAAoE;IACpE,IAAM,WAAW,GAAG,8BAA8B,CAC9C,MAAM,EACN,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,SAAS,CACZ,CAAC;IAEF,sCAAsC;IACtC,gBAAgB,CAAC,WAAW,CAAC,QAAQ,EAAE,iBAAiB,CAAC,cAAc,CAAC,CAAC;IAEzE,kDAAkD;IAClD,iBAAiB,CAAC,MAAM,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,iBAAiB,CACtB,IAA+B,EAC/B,kBAAsC;IAEtC,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,SAAS,EAAE,CAAC,eAAe,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAChG,CAAC","sourcesContent":["import { cloneModelForPaste, mergePasteContent } from './mergePasteContent';\nimport { convertInlineCss } from '../createModelFromHtml/convertInlineCss';\nimport { createPasteFragment } from './createPasteFragment';\nimport { generatePasteOptionFromPlugins } from './generatePasteOptionFromPlugins';\nimport { retrieveHtmlInfo } from './retrieveHtmlInfo';\nimport type {\n PasteTypeOrGetter,\n ClipboardData,\n TrustedHTMLHandler,\n IEditor,\n} from 'roosterjs-content-model-types';\n\n/**\n * Paste into editor using a clipboardData object\n * @param editor The Editor object.\n * @param clipboardData Clipboard data retrieved from clipboard\n * @param pasteTypeOrGetter Type of content to paste or function that returns the Paste Type to use based on the document and the clipboard Data. @default normal\n */\nexport function paste(\n editor: IEditor,\n clipboardData: ClipboardData,\n pasteTypeOrGetter: PasteTypeOrGetter = 'normal'\n) {\n editor.focus();\n\n const trustedHTMLHandler = editor.getTrustedHTMLHandler();\n\n if (!clipboardData.modelBeforePaste) {\n editor.formatContentModel(model => {\n clipboardData.modelBeforePaste = cloneModelForPaste(model);\n\n return false;\n });\n }\n\n // 1. Prepare variables\n const doc = createDOMFromHtml(clipboardData.rawHtml, trustedHTMLHandler);\n const pasteType =\n typeof pasteTypeOrGetter == 'function'\n ? pasteTypeOrGetter(doc, clipboardData)\n : pasteTypeOrGetter;\n\n // 2. Handle HTML from clipboard\n const htmlFromClipboard = retrieveHtmlInfo(doc, clipboardData);\n\n // 3. Create target fragment\n const sourceFragment = createPasteFragment(\n editor.getDocument(),\n clipboardData,\n pasteType,\n (clipboardData.rawHtml == clipboardData.html\n ? doc\n : createDOMFromHtml(clipboardData.html, trustedHTMLHandler)\n )?.body\n );\n\n // 4. Trigger BeforePaste event to allow plugins modify the fragment\n const eventResult = generatePasteOptionFromPlugins(\n editor,\n clipboardData,\n sourceFragment,\n htmlFromClipboard,\n pasteType\n );\n\n // 5. Convert global CSS to inline CSS\n convertInlineCss(eventResult.fragment, htmlFromClipboard.globalCssRules);\n\n // 6. Merge pasted content into main Content Model\n mergePasteContent(editor, eventResult, clipboardData);\n}\n\nfunction createDOMFromHtml(\n html: string | null | undefined,\n trustedHTMLHandler: TrustedHTMLHandler\n): Document | null {\n return html ? new DOMParser().parseFromString(trustedHTMLHandler(html), 'text/html') : null;\n}\n"]}
|
package/package.json
CHANGED
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
"description": "Core editor for roosterjs",
|
|
4
4
|
"dependencies": {
|
|
5
5
|
"tslib": "^2.3.1",
|
|
6
|
-
"roosterjs-content-model-dom": "^9.
|
|
7
|
-
"roosterjs-content-model-types": "^9.
|
|
6
|
+
"roosterjs-content-model-dom": "^9.9.0",
|
|
7
|
+
"roosterjs-content-model-types": "^9.9.0"
|
|
8
8
|
},
|
|
9
|
-
"version": "9.
|
|
9
|
+
"version": "9.9.0",
|
|
10
10
|
"main": "./lib/index.js",
|
|
11
11
|
"typings": "./lib/index.d.ts",
|
|
12
12
|
"module": "./lib-mjs/index.js",
|