roosterjs 9.57.0 → 9.58.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/README.md +8 -0
- package/dist/rooster-adapter-amd-min.js +1 -1
- package/dist/rooster-adapter-amd-min.js.map +1 -1
- package/dist/rooster-adapter-amd.js +90 -6
- package/dist/rooster-adapter-amd.js.map +1 -1
- package/dist/rooster-adapter-min.js +1 -1
- package/dist/rooster-adapter-min.js.map +1 -1
- package/dist/rooster-adapter.js +90 -6
- package/dist/rooster-adapter.js.map +1 -1
- package/dist/rooster-amd-min.js +1 -1
- package/dist/rooster-amd-min.js.map +1 -1
- package/dist/rooster-amd.d.ts +30 -2
- package/dist/rooster-amd.js +554 -179
- package/dist/rooster-amd.js.map +1 -1
- package/dist/rooster-min.js +1 -1
- package/dist/rooster-min.js.map +1 -1
- package/dist/rooster-react-amd-min.js +1 -1
- package/dist/rooster-react-amd-min.js.map +1 -1
- package/dist/rooster-react-amd.d.ts +1 -1
- package/dist/rooster-react-amd.js +145 -62
- package/dist/rooster-react-amd.js.map +1 -1
- package/dist/rooster-react-min.js +1 -1
- package/dist/rooster-react-min.js.map +1 -1
- package/dist/rooster-react.d.ts +1 -1
- package/dist/rooster-react.js +90 -7
- package/dist/rooster-react.js.map +1 -1
- package/dist/rooster.d.ts +30 -2
- package/dist/rooster.js +554 -179
- package/dist/rooster.js.map +1 -1
- package/package.json +7 -7
package/dist/rooster.js
CHANGED
|
@@ -1247,12 +1247,13 @@ module.exports = {
|
|
|
1247
1247
|
/* MIT license */
|
|
1248
1248
|
var colorNames = __webpack_require__(/*! color-name */ "./node_modules/color-name/index.js");
|
|
1249
1249
|
var swizzle = __webpack_require__(/*! simple-swizzle */ "./node_modules/simple-swizzle/index.js");
|
|
1250
|
+
var hasOwnProperty = Object.hasOwnProperty;
|
|
1250
1251
|
|
|
1251
|
-
var reverseNames =
|
|
1252
|
+
var reverseNames = Object.create(null);
|
|
1252
1253
|
|
|
1253
1254
|
// create a list of reverse color names
|
|
1254
1255
|
for (var name in colorNames) {
|
|
1255
|
-
if (
|
|
1256
|
+
if (hasOwnProperty.call(colorNames, name)) {
|
|
1256
1257
|
reverseNames[colorNames[name]] = name;
|
|
1257
1258
|
}
|
|
1258
1259
|
}
|
|
@@ -1295,9 +1296,9 @@ cs.get.rgb = function (string) {
|
|
|
1295
1296
|
|
|
1296
1297
|
var abbr = /^#([a-f0-9]{3,4})$/i;
|
|
1297
1298
|
var hex = /^#([a-f0-9]{6})([a-f0-9]{2})?$/i;
|
|
1298
|
-
var rgba = /^rgba?\(\s*([+-]?\d+)\s
|
|
1299
|
-
var per = /^rgba?\(\s*([+-]?[\d\.]+)\%\s
|
|
1300
|
-
var keyword =
|
|
1299
|
+
var rgba = /^rgba?\(\s*([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/;
|
|
1300
|
+
var per = /^rgba?\(\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/;
|
|
1301
|
+
var keyword = /^(\w+)$/;
|
|
1301
1302
|
|
|
1302
1303
|
var rgb = [0, 0, 0, 1];
|
|
1303
1304
|
var match;
|
|
@@ -1334,7 +1335,11 @@ cs.get.rgb = function (string) {
|
|
|
1334
1335
|
}
|
|
1335
1336
|
|
|
1336
1337
|
if (match[4]) {
|
|
1337
|
-
|
|
1338
|
+
if (match[5]) {
|
|
1339
|
+
rgb[3] = parseFloat(match[4]) * 0.01;
|
|
1340
|
+
} else {
|
|
1341
|
+
rgb[3] = parseFloat(match[4]);
|
|
1342
|
+
}
|
|
1338
1343
|
}
|
|
1339
1344
|
} else if (match = string.match(per)) {
|
|
1340
1345
|
for (i = 0; i < 3; i++) {
|
|
@@ -1342,19 +1347,22 @@ cs.get.rgb = function (string) {
|
|
|
1342
1347
|
}
|
|
1343
1348
|
|
|
1344
1349
|
if (match[4]) {
|
|
1345
|
-
|
|
1350
|
+
if (match[5]) {
|
|
1351
|
+
rgb[3] = parseFloat(match[4]) * 0.01;
|
|
1352
|
+
} else {
|
|
1353
|
+
rgb[3] = parseFloat(match[4]);
|
|
1354
|
+
}
|
|
1346
1355
|
}
|
|
1347
1356
|
} else if (match = string.match(keyword)) {
|
|
1348
1357
|
if (match[1] === 'transparent') {
|
|
1349
1358
|
return [0, 0, 0, 0];
|
|
1350
1359
|
}
|
|
1351
1360
|
|
|
1352
|
-
|
|
1353
|
-
|
|
1354
|
-
if (!rgb) {
|
|
1361
|
+
if (!hasOwnProperty.call(colorNames, match[1])) {
|
|
1355
1362
|
return null;
|
|
1356
1363
|
}
|
|
1357
1364
|
|
|
1365
|
+
rgb = colorNames[match[1]];
|
|
1358
1366
|
rgb[3] = 1;
|
|
1359
1367
|
|
|
1360
1368
|
return rgb;
|
|
@@ -1375,12 +1383,12 @@ cs.get.hsl = function (string) {
|
|
|
1375
1383
|
return null;
|
|
1376
1384
|
}
|
|
1377
1385
|
|
|
1378
|
-
var hsl = /^hsla?\(\s*([+-]?(?:\d{0,3}\.)?\d+)(?:deg)?\s
|
|
1386
|
+
var hsl = /^hsla?\(\s*([+-]?(?:\d{0,3}\.)?\d+)(?:deg)?\s*,?\s*([+-]?[\d\.]+)%\s*,?\s*([+-]?[\d\.]+)%\s*(?:[,|\/]\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/;
|
|
1379
1387
|
var match = string.match(hsl);
|
|
1380
1388
|
|
|
1381
1389
|
if (match) {
|
|
1382
1390
|
var alpha = parseFloat(match[4]);
|
|
1383
|
-
var h = (parseFloat(match[1]) + 360) % 360;
|
|
1391
|
+
var h = ((parseFloat(match[1]) % 360) + 360) % 360;
|
|
1384
1392
|
var s = clamp(parseFloat(match[2]), 0, 100);
|
|
1385
1393
|
var l = clamp(parseFloat(match[3]), 0, 100);
|
|
1386
1394
|
var a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);
|
|
@@ -1396,7 +1404,7 @@ cs.get.hwb = function (string) {
|
|
|
1396
1404
|
return null;
|
|
1397
1405
|
}
|
|
1398
1406
|
|
|
1399
|
-
var hwb = /^hwb\(\s*([+-]?\d{0,3}(?:\.\d+)?)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d
|
|
1407
|
+
var hwb = /^hwb\(\s*([+-]?\d{0,3}(?:\.\d+)?)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/;
|
|
1400
1408
|
var match = string.match(hwb);
|
|
1401
1409
|
|
|
1402
1410
|
if (match) {
|
|
@@ -1475,7 +1483,7 @@ function clamp(num, min, max) {
|
|
|
1475
1483
|
}
|
|
1476
1484
|
|
|
1477
1485
|
function hexDouble(num) {
|
|
1478
|
-
var str = num.toString(16).toUpperCase();
|
|
1486
|
+
var str = Math.round(num).toString(16).toUpperCase();
|
|
1479
1487
|
return (str.length < 2) ? '0' + str : str;
|
|
1480
1488
|
}
|
|
1481
1489
|
|
|
@@ -2043,6 +2051,7 @@ swizzle.wrap = function (fn) {
|
|
|
2043
2051
|
"use strict";
|
|
2044
2052
|
__webpack_require__.r(__webpack_exports__);
|
|
2045
2053
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
2054
|
+
/* harmony export */ __addDisposableResource: () => (/* binding */ __addDisposableResource),
|
|
2046
2055
|
/* harmony export */ __assign: () => (/* binding */ __assign),
|
|
2047
2056
|
/* harmony export */ __asyncDelegator: () => (/* binding */ __asyncDelegator),
|
|
2048
2057
|
/* harmony export */ __asyncGenerator: () => (/* binding */ __asyncGenerator),
|
|
@@ -2054,6 +2063,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
2054
2063
|
/* harmony export */ __classPrivateFieldSet: () => (/* binding */ __classPrivateFieldSet),
|
|
2055
2064
|
/* harmony export */ __createBinding: () => (/* binding */ __createBinding),
|
|
2056
2065
|
/* harmony export */ __decorate: () => (/* binding */ __decorate),
|
|
2066
|
+
/* harmony export */ __disposeResources: () => (/* binding */ __disposeResources),
|
|
2057
2067
|
/* harmony export */ __esDecorate: () => (/* binding */ __esDecorate),
|
|
2058
2068
|
/* harmony export */ __exportStar: () => (/* binding */ __exportStar),
|
|
2059
2069
|
/* harmony export */ __extends: () => (/* binding */ __extends),
|
|
@@ -2066,6 +2076,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
2066
2076
|
/* harmony export */ __propKey: () => (/* binding */ __propKey),
|
|
2067
2077
|
/* harmony export */ __read: () => (/* binding */ __read),
|
|
2068
2078
|
/* harmony export */ __rest: () => (/* binding */ __rest),
|
|
2079
|
+
/* harmony export */ __rewriteRelativeImportExtension: () => (/* binding */ __rewriteRelativeImportExtension),
|
|
2069
2080
|
/* harmony export */ __runInitializers: () => (/* binding */ __runInitializers),
|
|
2070
2081
|
/* harmony export */ __setFunctionName: () => (/* binding */ __setFunctionName),
|
|
2071
2082
|
/* harmony export */ __spread: () => (/* binding */ __spread),
|
|
@@ -2088,7 +2099,7 @@ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
|
2088
2099
|
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
2089
2100
|
PERFORMANCE OF THIS SOFTWARE.
|
|
2090
2101
|
***************************************************************************** */
|
|
2091
|
-
/* global Reflect, Promise */
|
|
2102
|
+
/* global Reflect, Promise, SuppressedError, Symbol, Iterator */
|
|
2092
2103
|
|
|
2093
2104
|
var extendStatics = function(d, b) {
|
|
2094
2105
|
extendStatics = Object.setPrototypeOf ||
|
|
@@ -2199,8 +2210,8 @@ function __awaiter(thisArg, _arguments, P, generator) {
|
|
|
2199
2210
|
}
|
|
2200
2211
|
|
|
2201
2212
|
function __generator(thisArg, body) {
|
|
2202
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
2203
|
-
return g =
|
|
2213
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
2214
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
2204
2215
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
2205
2216
|
function step(op) {
|
|
2206
2217
|
if (f) throw new TypeError("Generator is already executing.");
|
|
@@ -2304,8 +2315,9 @@ function __await(v) {
|
|
|
2304
2315
|
function __asyncGenerator(thisArg, _arguments, generator) {
|
|
2305
2316
|
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
|
2306
2317
|
var g = generator.apply(thisArg, _arguments || []), i, q = [];
|
|
2307
|
-
return i =
|
|
2308
|
-
function
|
|
2318
|
+
return i = Object.create((typeof AsyncIterator === "function" ? AsyncIterator : Object).prototype), verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;
|
|
2319
|
+
function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }
|
|
2320
|
+
function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }
|
|
2309
2321
|
function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
|
|
2310
2322
|
function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
|
|
2311
2323
|
function fulfill(value) { resume("next", value); }
|
|
@@ -2338,10 +2350,19 @@ var __setModuleDefault = Object.create ? (function(o, v) {
|
|
|
2338
2350
|
o["default"] = v;
|
|
2339
2351
|
};
|
|
2340
2352
|
|
|
2353
|
+
var ownKeys = function(o) {
|
|
2354
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
2355
|
+
var ar = [];
|
|
2356
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
2357
|
+
return ar;
|
|
2358
|
+
};
|
|
2359
|
+
return ownKeys(o);
|
|
2360
|
+
};
|
|
2361
|
+
|
|
2341
2362
|
function __importStar(mod) {
|
|
2342
2363
|
if (mod && mod.__esModule) return mod;
|
|
2343
2364
|
var result = {};
|
|
2344
|
-
if (mod != null) for (var k
|
|
2365
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
2345
2366
|
__setModuleDefault(result, mod);
|
|
2346
2367
|
return result;
|
|
2347
2368
|
}
|
|
@@ -2368,12 +2389,79 @@ function __classPrivateFieldIn(state, receiver) {
|
|
|
2368
2389
|
return typeof state === "function" ? receiver === state : state.has(receiver);
|
|
2369
2390
|
}
|
|
2370
2391
|
|
|
2392
|
+
function __addDisposableResource(env, value, async) {
|
|
2393
|
+
if (value !== null && value !== void 0) {
|
|
2394
|
+
if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
|
|
2395
|
+
var dispose, inner;
|
|
2396
|
+
if (async) {
|
|
2397
|
+
if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined.");
|
|
2398
|
+
dispose = value[Symbol.asyncDispose];
|
|
2399
|
+
}
|
|
2400
|
+
if (dispose === void 0) {
|
|
2401
|
+
if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined.");
|
|
2402
|
+
dispose = value[Symbol.dispose];
|
|
2403
|
+
if (async) inner = dispose;
|
|
2404
|
+
}
|
|
2405
|
+
if (typeof dispose !== "function") throw new TypeError("Object not disposable.");
|
|
2406
|
+
if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };
|
|
2407
|
+
env.stack.push({ value: value, dispose: dispose, async: async });
|
|
2408
|
+
}
|
|
2409
|
+
else if (async) {
|
|
2410
|
+
env.stack.push({ async: true });
|
|
2411
|
+
}
|
|
2412
|
+
return value;
|
|
2413
|
+
}
|
|
2414
|
+
|
|
2415
|
+
var _SuppressedError = typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
|
|
2416
|
+
var e = new Error(message);
|
|
2417
|
+
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
2418
|
+
};
|
|
2419
|
+
|
|
2420
|
+
function __disposeResources(env) {
|
|
2421
|
+
function fail(e) {
|
|
2422
|
+
env.error = env.hasError ? new _SuppressedError(e, env.error, "An error was suppressed during disposal.") : e;
|
|
2423
|
+
env.hasError = true;
|
|
2424
|
+
}
|
|
2425
|
+
var r, s = 0;
|
|
2426
|
+
function next() {
|
|
2427
|
+
while (r = env.stack.pop()) {
|
|
2428
|
+
try {
|
|
2429
|
+
if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);
|
|
2430
|
+
if (r.dispose) {
|
|
2431
|
+
var result = r.dispose.call(r.value);
|
|
2432
|
+
if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });
|
|
2433
|
+
}
|
|
2434
|
+
else s |= 1;
|
|
2435
|
+
}
|
|
2436
|
+
catch (e) {
|
|
2437
|
+
fail(e);
|
|
2438
|
+
}
|
|
2439
|
+
}
|
|
2440
|
+
if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();
|
|
2441
|
+
if (env.hasError) throw env.error;
|
|
2442
|
+
}
|
|
2443
|
+
return next();
|
|
2444
|
+
}
|
|
2445
|
+
|
|
2446
|
+
function __rewriteRelativeImportExtension(path, preserveJsx) {
|
|
2447
|
+
if (typeof path === "string" && /^\.\.?\//.test(path)) {
|
|
2448
|
+
return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {
|
|
2449
|
+
return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js");
|
|
2450
|
+
});
|
|
2451
|
+
}
|
|
2452
|
+
return path;
|
|
2453
|
+
}
|
|
2454
|
+
|
|
2371
2455
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
|
|
2372
2456
|
__extends,
|
|
2373
2457
|
__assign,
|
|
2374
2458
|
__rest,
|
|
2375
2459
|
__decorate,
|
|
2376
2460
|
__param,
|
|
2461
|
+
__esDecorate,
|
|
2462
|
+
__runInitializers,
|
|
2463
|
+
__propKey,
|
|
2464
|
+
__setFunctionName,
|
|
2377
2465
|
__metadata,
|
|
2378
2466
|
__awaiter,
|
|
2379
2467
|
__generator,
|
|
@@ -2394,6 +2482,9 @@ function __classPrivateFieldIn(state, receiver) {
|
|
|
2394
2482
|
__classPrivateFieldGet,
|
|
2395
2483
|
__classPrivateFieldSet,
|
|
2396
2484
|
__classPrivateFieldIn,
|
|
2485
|
+
__addDisposableResource,
|
|
2486
|
+
__disposeResources,
|
|
2487
|
+
__rewriteRelativeImportExtension,
|
|
2397
2488
|
});
|
|
2398
2489
|
|
|
2399
2490
|
|
|
@@ -9234,95 +9325,6 @@ function removeCommentsFromHtml(html, marker, endId, startId) {
|
|
|
9234
9325
|
}
|
|
9235
9326
|
|
|
9236
9327
|
|
|
9237
|
-
/***/ },
|
|
9238
|
-
|
|
9239
|
-
/***/ "./packages/roosterjs-content-model-core/lib/command/paste/createPasteFragment.ts"
|
|
9240
|
-
/*!****************************************************************************************!*\
|
|
9241
|
-
!*** ./packages/roosterjs-content-model-core/lib/command/paste/createPasteFragment.ts ***!
|
|
9242
|
-
\****************************************************************************************/
|
|
9243
|
-
(__unused_webpack_module, exports, __webpack_require__) {
|
|
9244
|
-
|
|
9245
|
-
"use strict";
|
|
9246
|
-
|
|
9247
|
-
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
9248
|
-
exports.createPasteFragment = void 0;
|
|
9249
|
-
var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
|
|
9250
|
-
var NBSP_HTML = '\u00A0';
|
|
9251
|
-
var ENSP_HTML = '\u2002';
|
|
9252
|
-
var TAB_SPACES = 6;
|
|
9253
|
-
/**
|
|
9254
|
-
* @internal
|
|
9255
|
-
*/
|
|
9256
|
-
function createPasteFragment(document, clipboardData, pasteType, root) {
|
|
9257
|
-
if (!clipboardData.text && pasteType === 'asPlainText' && root) {
|
|
9258
|
-
clipboardData.text = root.textContent || clipboardData.text;
|
|
9259
|
-
}
|
|
9260
|
-
var imageDataUri = clipboardData.imageDataUri, text = clipboardData.text;
|
|
9261
|
-
var fragment = document.createDocumentFragment();
|
|
9262
|
-
if ((pasteType == 'asImage' && imageDataUri) ||
|
|
9263
|
-
(pasteType != 'asPlainText' && !text && imageDataUri)) {
|
|
9264
|
-
// Paste image
|
|
9265
|
-
var img = document.createElement('img');
|
|
9266
|
-
img.style.maxWidth = '100%';
|
|
9267
|
-
img.src = imageDataUri;
|
|
9268
|
-
fragment.appendChild(img);
|
|
9269
|
-
}
|
|
9270
|
-
else if (pasteType != 'asPlainText' && root) {
|
|
9271
|
-
(0, roosterjs_content_model_dom_1.moveChildNodes)(fragment, root);
|
|
9272
|
-
}
|
|
9273
|
-
else if (text) {
|
|
9274
|
-
text.split('\n').forEach(function (line, index, lines) {
|
|
9275
|
-
line = line
|
|
9276
|
-
.replace(/^ /g, NBSP_HTML)
|
|
9277
|
-
.replace(/ $/g, NBSP_HTML)
|
|
9278
|
-
.replace(/\r/g, '')
|
|
9279
|
-
.replace(/ {2}/g, ' ' + NBSP_HTML);
|
|
9280
|
-
if (line.includes('\t')) {
|
|
9281
|
-
line = transformTabCharacters(line);
|
|
9282
|
-
}
|
|
9283
|
-
var textNode = document.createTextNode(line);
|
|
9284
|
-
// There are 3 scenarios:
|
|
9285
|
-
// 1. Single line: Paste as it is
|
|
9286
|
-
// 2. Two lines: Add <br> between the lines
|
|
9287
|
-
// 3. 3 or More lines, For first and last line, paste as it is. For middle lines, wrap with DIV, and add BR if it is empty line
|
|
9288
|
-
if (lines.length == 2 && index == 0) {
|
|
9289
|
-
// 1 of 2 lines scenario, add BR
|
|
9290
|
-
fragment.appendChild(textNode);
|
|
9291
|
-
fragment.appendChild(document.createElement('br'));
|
|
9292
|
-
}
|
|
9293
|
-
else if (index > 0 && index < lines.length - 1) {
|
|
9294
|
-
// Middle line of >=3 lines scenario, wrap with DIV
|
|
9295
|
-
fragment.appendChild((0, roosterjs_content_model_dom_1.wrap)(document, line == '' ? document.createElement('br') : textNode, 'div'));
|
|
9296
|
-
}
|
|
9297
|
-
else {
|
|
9298
|
-
// All others, paste as it is
|
|
9299
|
-
fragment.appendChild(textNode);
|
|
9300
|
-
}
|
|
9301
|
-
});
|
|
9302
|
-
}
|
|
9303
|
-
return fragment;
|
|
9304
|
-
}
|
|
9305
|
-
exports.createPasteFragment = createPasteFragment;
|
|
9306
|
-
/**
|
|
9307
|
-
* Transform \t characters into EN SPACE characters
|
|
9308
|
-
* @param input string NOT containing \n characters
|
|
9309
|
-
* @example t("\thello", 2) => "    hello"
|
|
9310
|
-
*/
|
|
9311
|
-
function transformTabCharacters(input, initialOffset) {
|
|
9312
|
-
if (initialOffset === void 0) { initialOffset = 0; }
|
|
9313
|
-
var line = input;
|
|
9314
|
-
var tIndex;
|
|
9315
|
-
while ((tIndex = line.indexOf('\t')) != -1) {
|
|
9316
|
-
var lineBefore = line.slice(0, tIndex);
|
|
9317
|
-
var lineAfter = line.slice(tIndex + 1);
|
|
9318
|
-
var tabCount = TAB_SPACES - ((lineBefore.length + initialOffset) % TAB_SPACES);
|
|
9319
|
-
var tabStr = Array(tabCount).fill(ENSP_HTML).join('');
|
|
9320
|
-
line = lineBefore + tabStr + lineAfter;
|
|
9321
|
-
}
|
|
9322
|
-
return line;
|
|
9323
|
-
}
|
|
9324
|
-
|
|
9325
|
-
|
|
9326
9328
|
/***/ },
|
|
9327
9329
|
|
|
9328
9330
|
/***/ "./packages/roosterjs-content-model-core/lib/command/paste/generatePasteOptionFromPlugins.ts"
|
|
@@ -9389,14 +9391,15 @@ var BlackColor = 'rgb(0,0,0)';
|
|
|
9389
9391
|
*/
|
|
9390
9392
|
function mergePasteContent(editor, eventResult, isFirstPaste) {
|
|
9391
9393
|
var fragment = eventResult.fragment, domToModelOption = eventResult.domToModelOption, customizedMerge = eventResult.customizedMerge, pasteType = eventResult.pasteType, clipboardData = eventResult.clipboardData, containsBlockElements = eventResult.containsBlockElements;
|
|
9392
|
-
var
|
|
9394
|
+
var isImageOnly = isImageOnlyFragment(fragment);
|
|
9395
|
+
var shouldScrollCaretIntoView = !isImageOnly;
|
|
9393
9396
|
editor.formatContentModel(function (model, context) {
|
|
9394
9397
|
if (!isFirstPaste && clipboardData.modelBeforePaste) {
|
|
9395
9398
|
var clonedModel = (0, roosterjs_content_model_dom_1.cloneModelForPaste)(clipboardData.modelBeforePaste);
|
|
9396
9399
|
model.blocks = clonedModel.blocks;
|
|
9397
9400
|
}
|
|
9398
9401
|
var domToModelContext = (0, createDomToModelContextForSanitizing_1.createDomToModelContextForSanitizing)(editor.getDocument(), undefined /*defaultFormat*/, editor.getEnvironment().domToModelSettings.customized, domToModelOption, editor.getDOMHelper(), editor.getExperimentalFeatures());
|
|
9399
|
-
domToModelContext.segmentFormat = getSegmentFormatForPaste(model, pasteType);
|
|
9402
|
+
domToModelContext.segmentFormat = getSegmentFormatForPaste(model, pasteType, isImageOnly);
|
|
9400
9403
|
var pasteModel = (0, roosterjs_content_model_dom_1.domToContentModel)(fragment, domToModelContext);
|
|
9401
9404
|
var mergeOption = {
|
|
9402
9405
|
mergeFormat: pasteType == 'mergeFormat' ? 'keepSourceEmphasisFormat' : 'none',
|
|
@@ -9420,14 +9423,16 @@ function mergePasteContent(editor, eventResult, isFirstPaste) {
|
|
|
9420
9423
|
});
|
|
9421
9424
|
}
|
|
9422
9425
|
exports.mergePasteContent = mergePasteContent;
|
|
9423
|
-
function getSegmentFormatForPaste(model, pasteType) {
|
|
9426
|
+
function getSegmentFormatForPaste(model, pasteType, isImageOnly) {
|
|
9424
9427
|
var selectedSegment = (0, roosterjs_content_model_dom_1.getSelectedSegments)(model, true /*includeFormatHolder*/)[0];
|
|
9425
9428
|
if (selectedSegment) {
|
|
9426
9429
|
var result = (0, roosterjs_content_model_dom_1.getSegmentTextFormat)(selectedSegment);
|
|
9427
|
-
if (pasteType == 'normal') {
|
|
9430
|
+
if (pasteType == 'normal' && !isImageOnly) {
|
|
9428
9431
|
// When using normal paste (Keep source formatting) set the default text color to black when creating the
|
|
9429
9432
|
// Model from the clipboard content, so the elements that do not contain any text color in their style
|
|
9430
9433
|
// Are set to black. Otherwise, These segments would get the selected segments format or the default text set in the content.
|
|
9434
|
+
// Skip this when pasting an image only, since there is no text to apply the default color to, and forcing
|
|
9435
|
+
// black here would incorrectly become the pending format used for text typed right after the pasted image.
|
|
9431
9436
|
result.textColor = BlackColor;
|
|
9432
9437
|
}
|
|
9433
9438
|
return result;
|
|
@@ -9480,7 +9485,6 @@ exports.paste = void 0;
|
|
|
9480
9485
|
var cleanHtmlComments_1 = __webpack_require__(/*! ./cleanHtmlComments */ "./packages/roosterjs-content-model-core/lib/command/paste/cleanHtmlComments.ts");
|
|
9481
9486
|
var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
|
|
9482
9487
|
var convertInlineCss_1 = __webpack_require__(/*! ../createModelFromHtml/convertInlineCss */ "./packages/roosterjs-content-model-core/lib/command/createModelFromHtml/convertInlineCss.ts");
|
|
9483
|
-
var createPasteFragment_1 = __webpack_require__(/*! ./createPasteFragment */ "./packages/roosterjs-content-model-core/lib/command/paste/createPasteFragment.ts");
|
|
9484
9488
|
var generatePasteOptionFromPlugins_1 = __webpack_require__(/*! ./generatePasteOptionFromPlugins */ "./packages/roosterjs-content-model-core/lib/command/paste/generatePasteOptionFromPlugins.ts");
|
|
9485
9489
|
var mergePasteContent_1 = __webpack_require__(/*! ./mergePasteContent */ "./packages/roosterjs-content-model-core/lib/command/paste/mergePasteContent.ts");
|
|
9486
9490
|
var retrieveHtmlInfo_1 = __webpack_require__(/*! ./retrieveHtmlInfo */ "./packages/roosterjs-content-model-core/lib/command/paste/retrieveHtmlInfo.ts");
|
|
@@ -9514,7 +9518,7 @@ function paste(editor, clipboardData, pasteTypeOrGetter) {
|
|
|
9514
9518
|
? pasteTypeOrGetter(doc, clipboardData, editor.getEnvironment(), htmlFromClipboard.metadata)
|
|
9515
9519
|
: pasteTypeOrGetter;
|
|
9516
9520
|
// 3. Create target fragment
|
|
9517
|
-
var sourceFragment = (0,
|
|
9521
|
+
var sourceFragment = (0, roosterjs_content_model_dom_1.createPasteFragment)(editor.getDocument(), clipboardData, pasteType, (_a = (clipboardData.rawHtml == clipboardData.html
|
|
9518
9522
|
? doc
|
|
9519
9523
|
: createDOMFromHtml(clipboardData.html, domCreator))) === null || _a === void 0 ? void 0 : _a.body);
|
|
9520
9524
|
// 4. Trigger BeforePaste event to allow plugins modify the fragment
|
|
@@ -11156,10 +11160,13 @@ function setRangeSelection(core, element, collapse) {
|
|
|
11156
11160
|
"use strict";
|
|
11157
11161
|
|
|
11158
11162
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
11159
|
-
exports.setTableCellsStyle = exports.removeTableCellsStyle = void 0;
|
|
11163
|
+
exports.setTableCellsStyle = exports.removeTableCellsStyle = exports.DOM_SELECTION_CSS_KEY = void 0;
|
|
11160
11164
|
var ensureUniqueId_1 = __webpack_require__(/*! ../setEditorStyle/ensureUniqueId */ "./packages/roosterjs-content-model-core/lib/coreApi/setEditorStyle/ensureUniqueId.ts");
|
|
11161
11165
|
var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
|
|
11162
|
-
|
|
11166
|
+
/**
|
|
11167
|
+
* @internal
|
|
11168
|
+
*/
|
|
11169
|
+
exports.DOM_SELECTION_CSS_KEY = '_DOMSelection';
|
|
11163
11170
|
var TABLE_ID = 'table';
|
|
11164
11171
|
/**
|
|
11165
11172
|
* @internal
|
|
@@ -11167,7 +11174,7 @@ var TABLE_ID = 'table';
|
|
|
11167
11174
|
* @param core The EditorCore object
|
|
11168
11175
|
*/
|
|
11169
11176
|
function removeTableCellsStyle(core) {
|
|
11170
|
-
core.api.setEditorStyle(core, DOM_SELECTION_CSS_KEY, '');
|
|
11177
|
+
core.api.setEditorStyle(core, exports.DOM_SELECTION_CSS_KEY, '');
|
|
11171
11178
|
}
|
|
11172
11179
|
exports.removeTableCellsStyle = removeTableCellsStyle;
|
|
11173
11180
|
/**
|
|
@@ -11192,7 +11199,7 @@ function setTableCellsStyle(core, table, parsedTable, firstCell, lastCell) {
|
|
|
11192
11199
|
lastCell.col == ((_b = (_a = parsedTable[lastCell.row]) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0) - 1
|
|
11193
11200
|
? [tableSelector, tableSelector + " *"]
|
|
11194
11201
|
: buildTableSelectors(parsedTable, tableSelector, table, firstCell, lastCell);
|
|
11195
|
-
core.api.setEditorStyle(core, DOM_SELECTION_CSS_KEY, "background-color:" + tableSelectionColor + "!important;", tableSelectors);
|
|
11202
|
+
core.api.setEditorStyle(core, exports.DOM_SELECTION_CSS_KEY, "background-color:" + tableSelectionColor + "!important;", tableSelectors);
|
|
11196
11203
|
}
|
|
11197
11204
|
exports.setTableCellsStyle = setTableCellsStyle;
|
|
11198
11205
|
/**
|
|
@@ -11251,16 +11258,19 @@ function buildTableSelectors(parsedTable, tableSelector, table, firstCell, lastC
|
|
|
11251
11258
|
"use strict";
|
|
11252
11259
|
|
|
11253
11260
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
11254
|
-
exports.toggleCaret = void 0;
|
|
11261
|
+
exports.toggleCaret = exports.HIDE_CURSOR_CSS_KEY = void 0;
|
|
11255
11262
|
var CARET_CSS_RULE = 'caret-color: transparent';
|
|
11256
|
-
|
|
11263
|
+
/**
|
|
11264
|
+
* @internal
|
|
11265
|
+
*/
|
|
11266
|
+
exports.HIDE_CURSOR_CSS_KEY = '_DOMSelectionHideCursor';
|
|
11257
11267
|
/**
|
|
11258
11268
|
* @internal Show/Hide caret in editor
|
|
11259
11269
|
* @param core The editor core
|
|
11260
11270
|
* @param isHiding True to hide caret, false to show caret
|
|
11261
11271
|
*/
|
|
11262
11272
|
function toggleCaret(core, isHiding) {
|
|
11263
|
-
core.api.setEditorStyle(core, HIDE_CURSOR_CSS_KEY, isHiding ? CARET_CSS_RULE : null);
|
|
11273
|
+
core.api.setEditorStyle(core, exports.HIDE_CURSOR_CSS_KEY, isHiding ? CARET_CSS_RULE : null);
|
|
11264
11274
|
}
|
|
11265
11275
|
exports.toggleCaret = toggleCaret;
|
|
11266
11276
|
|
|
@@ -14492,6 +14502,8 @@ var findTableCellElement_1 = __webpack_require__(/*! ../../coreApi/setDOMSelecti
|
|
|
14492
14502
|
var isSingleImageInSelection_1 = __webpack_require__(/*! ./isSingleImageInSelection */ "./packages/roosterjs-content-model-core/lib/corePlugin/selection/isSingleImageInSelection.ts");
|
|
14493
14503
|
var normalizePos_1 = __webpack_require__(/*! ./normalizePos */ "./packages/roosterjs-content-model-core/lib/corePlugin/selection/normalizePos.ts");
|
|
14494
14504
|
var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
|
|
14505
|
+
var setTableCellsStyle_1 = __webpack_require__(/*! ../../coreApi/setDOMSelection/setTableCellsStyle */ "./packages/roosterjs-content-model-core/lib/coreApi/setDOMSelection/setTableCellsStyle.ts");
|
|
14506
|
+
var toggleCaret_1 = __webpack_require__(/*! ../../coreApi/setDOMSelection/toggleCaret */ "./packages/roosterjs-content-model-core/lib/coreApi/setDOMSelection/toggleCaret.ts");
|
|
14495
14507
|
var MouseLeftButton = 0;
|
|
14496
14508
|
var MouseRightButton = 2;
|
|
14497
14509
|
var Up = 'ArrowUp';
|
|
@@ -14517,6 +14529,7 @@ var SelectionPlugin = /** @class */ (function () {
|
|
|
14517
14529
|
this.logicalRootDisposer = null;
|
|
14518
14530
|
this.isSafari = false;
|
|
14519
14531
|
this.scrollTopCache = 0;
|
|
14532
|
+
this.isInsideSelection = false;
|
|
14520
14533
|
this.onMouseMove = function (event) {
|
|
14521
14534
|
var _a, _b, _c;
|
|
14522
14535
|
if (_this.editor && _this.state.tableSelection) {
|
|
@@ -14716,6 +14729,10 @@ var SelectionPlugin = /** @class */ (function () {
|
|
|
14716
14729
|
this.onKeyDown(this.editor, event.rawEvent);
|
|
14717
14730
|
break;
|
|
14718
14731
|
case 'contentChanged':
|
|
14732
|
+
if (event.source == roosterjs_content_model_dom_1.ChangeSource.Drop && this.isInsideSelection) {
|
|
14733
|
+
this.setDOMSelection(null /* DOMSelection */, null /* tableSelection */);
|
|
14734
|
+
this.isInsideSelection = false;
|
|
14735
|
+
}
|
|
14719
14736
|
this.state.tableSelection = null;
|
|
14720
14737
|
break;
|
|
14721
14738
|
case 'scroll':
|
|
@@ -14763,14 +14780,22 @@ var SelectionPlugin = /** @class */ (function () {
|
|
|
14763
14780
|
return;
|
|
14764
14781
|
}
|
|
14765
14782
|
// Table selection
|
|
14783
|
+
var target = rawEvent.target;
|
|
14784
|
+
var tableSelection = target
|
|
14785
|
+
? this.parseTableSelection(target, target, editor.getDOMHelper())
|
|
14786
|
+
: null;
|
|
14787
|
+
if ((selection === null || selection === void 0 ? void 0 : selection.type) == 'table' &&
|
|
14788
|
+
tableSelection &&
|
|
14789
|
+
this.isInsideTableSelection(selection, tableSelection) &&
|
|
14790
|
+
rawEvent.detail == 1) {
|
|
14791
|
+
this.isInsideSelection = true;
|
|
14792
|
+
this.setTableDragSelection(editor, rawEvent);
|
|
14793
|
+
return;
|
|
14794
|
+
}
|
|
14766
14795
|
if ((selection === null || selection === void 0 ? void 0 : selection.type) == 'table' && rawEvent.button == MouseLeftButton) {
|
|
14767
14796
|
this.setDOMSelection(null /*domSelection*/, null /*tableSelection*/);
|
|
14768
14797
|
}
|
|
14769
|
-
|
|
14770
|
-
var target = rawEvent.target;
|
|
14771
|
-
if (target &&
|
|
14772
|
-
rawEvent.button == MouseLeftButton &&
|
|
14773
|
-
(tableSelection = this.parseTableSelection(target, target, editor.getDOMHelper()))) {
|
|
14798
|
+
if (target && rawEvent.button == MouseLeftButton && tableSelection) {
|
|
14774
14799
|
this.state.tableSelection = tableSelection;
|
|
14775
14800
|
if (rawEvent.detail >= 3) {
|
|
14776
14801
|
var lastCo = (0, findCoordinate_1.findCoordinate)(tableSelection.parsedTable, rawEvent.target, editor.getDOMHelper());
|
|
@@ -14790,6 +14815,10 @@ var SelectionPlugin = /** @class */ (function () {
|
|
|
14790
14815
|
}
|
|
14791
14816
|
};
|
|
14792
14817
|
SelectionPlugin.prototype.onMouseUp = function () {
|
|
14818
|
+
if (this.isInsideSelection) {
|
|
14819
|
+
this.setDOMSelection(null /*domSelection*/, null /*tableSelection*/);
|
|
14820
|
+
this.isInsideSelection = false;
|
|
14821
|
+
}
|
|
14793
14822
|
this.detachMouseEvent();
|
|
14794
14823
|
};
|
|
14795
14824
|
SelectionPlugin.prototype.onKeyDown = function (editor, rawEvent) {
|
|
@@ -14984,6 +15013,30 @@ var SelectionPlugin = /** @class */ (function () {
|
|
|
14984
15013
|
}
|
|
14985
15014
|
}
|
|
14986
15015
|
};
|
|
15016
|
+
SelectionPlugin.prototype.isInsideTableSelection = function (prevSelection, tableSelection) {
|
|
15017
|
+
var selectedCell = tableSelection.firstCo;
|
|
15018
|
+
return (selectedCell.row >= prevSelection.firstRow &&
|
|
15019
|
+
selectedCell.row <= prevSelection.lastRow &&
|
|
15020
|
+
selectedCell.col >= prevSelection.firstColumn &&
|
|
15021
|
+
selectedCell.col <= prevSelection.lastColumn);
|
|
15022
|
+
};
|
|
15023
|
+
SelectionPlugin.prototype.setTableDragSelection = function (editor, rawEvent) {
|
|
15024
|
+
var doc = editor.getDocument();
|
|
15025
|
+
var cell = editor
|
|
15026
|
+
.getDOMHelper()
|
|
15027
|
+
.findClosestElementAncestor(rawEvent.target, 'td,th');
|
|
15028
|
+
if (cell) {
|
|
15029
|
+
// Hide the table cell selection styles (grey cell background applied by
|
|
15030
|
+
// setDOMSelection) and the native selection highlight so that only the
|
|
15031
|
+
// dragged content is visible while dragging. Also restore the caret which
|
|
15032
|
+
// is hidden while a table selection is active.
|
|
15033
|
+
editor.setEditorStyle(setTableCellsStyle_1.DOM_SELECTION_CSS_KEY, null /*cssRule*/);
|
|
15034
|
+
editor.setEditorStyle(toggleCaret_1.HIDE_CURSOR_CSS_KEY, null /*cssRule*/);
|
|
15035
|
+
var range = doc.createRange();
|
|
15036
|
+
range.selectNodeContents(cell);
|
|
15037
|
+
editor.getDOMHelper().setSelectionRange(range);
|
|
15038
|
+
}
|
|
15039
|
+
};
|
|
14987
15040
|
SelectionPlugin.prototype.getTextOffset = function (editor, range, td, isKeyUp) {
|
|
14988
15041
|
var doc = editor.getDocument();
|
|
14989
15042
|
var cursorRect = range
|
|
@@ -17272,6 +17325,10 @@ exports.ChangeSource = {
|
|
|
17272
17325
|
* Content changed by replace
|
|
17273
17326
|
*/
|
|
17274
17327
|
Replace: 'Replace',
|
|
17328
|
+
/**
|
|
17329
|
+
* Content changed by dragging content out the editor
|
|
17330
|
+
*/
|
|
17331
|
+
DragOutOfEditor: 'DragOutOfEditor',
|
|
17275
17332
|
};
|
|
17276
17333
|
|
|
17277
17334
|
|
|
@@ -17760,6 +17817,7 @@ exports.defaultProcessorMap = {
|
|
|
17760
17817
|
h5: headingProcessor_1.headingProcessor,
|
|
17761
17818
|
h6: headingProcessor_1.headingProcessor,
|
|
17762
17819
|
hr: hrProcessor_1.hrProcessor,
|
|
17820
|
+
label: knownElementProcessor_1.knownElementProcessor,
|
|
17763
17821
|
li: listItemProcessor_1.listItemProcessor,
|
|
17764
17822
|
ol: listProcessor_1.listProcessor,
|
|
17765
17823
|
p: pProcessor_1.pProcessor,
|
|
@@ -19783,6 +19841,53 @@ function cacheGetEventData(event, key, getter) {
|
|
|
19783
19841
|
exports.cacheGetEventData = cacheGetEventData;
|
|
19784
19842
|
|
|
19785
19843
|
|
|
19844
|
+
/***/ },
|
|
19845
|
+
|
|
19846
|
+
/***/ "./packages/roosterjs-content-model-dom/lib/domUtils/event/createPasteFragment.ts"
|
|
19847
|
+
/*!****************************************************************************************!*\
|
|
19848
|
+
!*** ./packages/roosterjs-content-model-dom/lib/domUtils/event/createPasteFragment.ts ***!
|
|
19849
|
+
\****************************************************************************************/
|
|
19850
|
+
(__unused_webpack_module, exports, __webpack_require__) {
|
|
19851
|
+
|
|
19852
|
+
"use strict";
|
|
19853
|
+
|
|
19854
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
19855
|
+
exports.createPasteFragment = void 0;
|
|
19856
|
+
var moveChildNodes_1 = __webpack_require__(/*! ../moveChildNodes */ "./packages/roosterjs-content-model-dom/lib/domUtils/moveChildNodes.ts");
|
|
19857
|
+
var textToFragment_1 = __webpack_require__(/*! ../textToFragment */ "./packages/roosterjs-content-model-dom/lib/domUtils/textToFragment.ts");
|
|
19858
|
+
/**
|
|
19859
|
+
* Create a document fragment from clipboard content using the specified paste type
|
|
19860
|
+
* @param document The document used to create the fragment
|
|
19861
|
+
* @param clipboardData The clipboard data to convert
|
|
19862
|
+
* @param pasteType The paste type that determines which clipboard content to use
|
|
19863
|
+
* @param root The optional root element containing the parsed HTML content
|
|
19864
|
+
* @returns A document fragment containing the content to paste
|
|
19865
|
+
*/
|
|
19866
|
+
function createPasteFragment(document, clipboardData, pasteType, root) {
|
|
19867
|
+
if (!clipboardData.text && pasteType === 'asPlainText' && root) {
|
|
19868
|
+
clipboardData.text = root.textContent || clipboardData.text;
|
|
19869
|
+
}
|
|
19870
|
+
var imageDataUri = clipboardData.imageDataUri, text = clipboardData.text;
|
|
19871
|
+
var fragment = document.createDocumentFragment();
|
|
19872
|
+
if ((pasteType == 'asImage' && imageDataUri) ||
|
|
19873
|
+
(pasteType != 'asPlainText' && !text && imageDataUri)) {
|
|
19874
|
+
// Paste image
|
|
19875
|
+
var img = document.createElement('img');
|
|
19876
|
+
img.style.maxWidth = '100%';
|
|
19877
|
+
img.src = imageDataUri;
|
|
19878
|
+
fragment.appendChild(img);
|
|
19879
|
+
}
|
|
19880
|
+
else if (pasteType != 'asPlainText' && root) {
|
|
19881
|
+
(0, moveChildNodes_1.moveChildNodes)(fragment, root);
|
|
19882
|
+
}
|
|
19883
|
+
else if (text) {
|
|
19884
|
+
return (0, textToFragment_1.textToFragment)(text, document);
|
|
19885
|
+
}
|
|
19886
|
+
return fragment;
|
|
19887
|
+
}
|
|
19888
|
+
exports.createPasteFragment = createPasteFragment;
|
|
19889
|
+
|
|
19890
|
+
|
|
19786
19891
|
/***/ },
|
|
19787
19892
|
|
|
19788
19893
|
/***/ "./packages/roosterjs-content-model-dom/lib/domUtils/event/eventUtils.ts"
|
|
@@ -19959,14 +20064,14 @@ function getNodePositionFromEvent(doc, domHelper, x, y) {
|
|
|
19959
20064
|
// Firefox, Chrome, Edge, Safari, Opera
|
|
19960
20065
|
var pos = doc.caretPositionFromPoint(x, y);
|
|
19961
20066
|
if (pos && domHelper.isNodeInEditor(pos.offsetNode)) {
|
|
19962
|
-
return
|
|
20067
|
+
return normalizePosition(pos.offsetNode, pos.offset);
|
|
19963
20068
|
}
|
|
19964
20069
|
}
|
|
19965
20070
|
if (doc.caretRangeFromPoint) {
|
|
19966
20071
|
// Safari
|
|
19967
20072
|
var range = doc.caretRangeFromPoint(x, y);
|
|
19968
20073
|
if (range && domHelper.isNodeInEditor(range.startContainer)) {
|
|
19969
|
-
return
|
|
20074
|
+
return normalizePosition(range.startContainer, range.startOffset);
|
|
19970
20075
|
}
|
|
19971
20076
|
}
|
|
19972
20077
|
if (doc.elementFromPoint) {
|
|
@@ -19979,6 +20084,14 @@ function getNodePositionFromEvent(doc, domHelper, x, y) {
|
|
|
19979
20084
|
return null;
|
|
19980
20085
|
}
|
|
19981
20086
|
exports.getNodePositionFromEvent = getNodePositionFromEvent;
|
|
20087
|
+
function normalizePosition(node, offset) {
|
|
20088
|
+
var _a;
|
|
20089
|
+
// Safari hit-testing in tableMoverTest returns offset 1 after the lone BR of an empty block.
|
|
20090
|
+
var normalizedOffset = offset == 1 && node.childNodes.length == 1 && ((_a = node.firstChild) === null || _a === void 0 ? void 0 : _a.nodeName) == 'BR'
|
|
20091
|
+
? 0
|
|
20092
|
+
: offset;
|
|
20093
|
+
return { node: node, offset: normalizedOffset };
|
|
20094
|
+
}
|
|
19982
20095
|
|
|
19983
20096
|
|
|
19984
20097
|
/***/ },
|
|
@@ -21281,6 +21394,78 @@ function parseTableCells(table) {
|
|
|
21281
21394
|
exports.parseTableCells = parseTableCells;
|
|
21282
21395
|
|
|
21283
21396
|
|
|
21397
|
+
/***/ },
|
|
21398
|
+
|
|
21399
|
+
/***/ "./packages/roosterjs-content-model-dom/lib/domUtils/textToFragment.ts"
|
|
21400
|
+
/*!*****************************************************************************!*\
|
|
21401
|
+
!*** ./packages/roosterjs-content-model-dom/lib/domUtils/textToFragment.ts ***!
|
|
21402
|
+
\*****************************************************************************/
|
|
21403
|
+
(__unused_webpack_module, exports, __webpack_require__) {
|
|
21404
|
+
|
|
21405
|
+
"use strict";
|
|
21406
|
+
|
|
21407
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
21408
|
+
exports.textToFragment = void 0;
|
|
21409
|
+
var wrap_1 = __webpack_require__(/*! ./wrap */ "./packages/roosterjs-content-model-dom/lib/domUtils/wrap.ts");
|
|
21410
|
+
var NBSP_HTML = '\u00A0';
|
|
21411
|
+
var ENSP_HTML = '\u2002';
|
|
21412
|
+
var TAB_SPACES = 6;
|
|
21413
|
+
/**
|
|
21414
|
+
* @internal
|
|
21415
|
+
*/
|
|
21416
|
+
function textToFragment(text, doc) {
|
|
21417
|
+
var fragment = doc.createDocumentFragment();
|
|
21418
|
+
text.split('\n').forEach(function (line, index, lines) {
|
|
21419
|
+
line = line
|
|
21420
|
+
.replace(/^ /g, NBSP_HTML)
|
|
21421
|
+
.replace(/ $/g, NBSP_HTML)
|
|
21422
|
+
.replace(/\r/g, '')
|
|
21423
|
+
.replace(/ {2}/g, ' ' + NBSP_HTML);
|
|
21424
|
+
if (line.includes('\t')) {
|
|
21425
|
+
line = transformTabCharacters(line);
|
|
21426
|
+
}
|
|
21427
|
+
var textNode = doc.createTextNode(line);
|
|
21428
|
+
// There are 3 scenarios:
|
|
21429
|
+
// 1. Single line: Paste as it is
|
|
21430
|
+
// 2. Two lines: Add <br> between the lines
|
|
21431
|
+
// 3. 3 or More lines, For first and last line, paste as it is. For middle lines, wrap with DIV, and add BR if it is empty line
|
|
21432
|
+
if (lines.length == 2 && index == 0) {
|
|
21433
|
+
// 1 of 2 lines scenario, add BR
|
|
21434
|
+
fragment.appendChild(textNode);
|
|
21435
|
+
fragment.appendChild(doc.createElement('br'));
|
|
21436
|
+
}
|
|
21437
|
+
else if (index > 0 && index < lines.length - 1) {
|
|
21438
|
+
// Middle line of >=3 lines scenario, wrap with DIV
|
|
21439
|
+
fragment.appendChild((0, wrap_1.wrap)(doc, line == '' ? doc.createElement('br') : textNode, 'div'));
|
|
21440
|
+
}
|
|
21441
|
+
else {
|
|
21442
|
+
// All others, paste as it is
|
|
21443
|
+
fragment.appendChild(textNode);
|
|
21444
|
+
}
|
|
21445
|
+
});
|
|
21446
|
+
return fragment;
|
|
21447
|
+
}
|
|
21448
|
+
exports.textToFragment = textToFragment;
|
|
21449
|
+
/**
|
|
21450
|
+
* Transform \t characters into EN SPACE characters
|
|
21451
|
+
* @param input string NOT containing \n characters
|
|
21452
|
+
* @example t("\thello", 2) => "    hello"
|
|
21453
|
+
*/
|
|
21454
|
+
function transformTabCharacters(input, initialOffset) {
|
|
21455
|
+
if (initialOffset === void 0) { initialOffset = 0; }
|
|
21456
|
+
var line = input;
|
|
21457
|
+
var tIndex;
|
|
21458
|
+
while ((tIndex = line.indexOf('\t')) != -1) {
|
|
21459
|
+
var lineBefore = line.slice(0, tIndex);
|
|
21460
|
+
var lineAfter = line.slice(tIndex + 1);
|
|
21461
|
+
var tabCount = TAB_SPACES - ((lineBefore.length + initialOffset) % TAB_SPACES);
|
|
21462
|
+
var tabStr = Array(tabCount).fill(ENSP_HTML).join('');
|
|
21463
|
+
line = lineBefore + tabStr + lineAfter;
|
|
21464
|
+
}
|
|
21465
|
+
return line;
|
|
21466
|
+
}
|
|
21467
|
+
|
|
21468
|
+
|
|
21284
21469
|
/***/ },
|
|
21285
21470
|
|
|
21286
21471
|
/***/ "./packages/roosterjs-content-model-dom/lib/domUtils/toArray.ts"
|
|
@@ -23866,8 +24051,8 @@ exports.shouldSetValue = shouldSetValue;
|
|
|
23866
24051
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
23867
24052
|
exports.createImage = exports.createText = exports.createTableCell = exports.createTable = exports.createSelectionMarker = exports.createParagraph = exports.createFormatContainer = exports.createListItem = exports.createBr = exports.isLinkUndeletable = exports.setLinkUndeletable = exports.scrollRectIntoView = exports.normalizeRect = exports.isWhiteSpacePreserved = exports.reuseCachedElement = exports.findClosestBlockEntityContainer = exports.isBlockEntityContainer = exports.isEntityDelimiter = exports.addDelimiters = exports.generateEntityClassNames = exports.parseEntityFormat = exports.getAllEntityWrappers = exports.findClosestEntityWrapper = exports.isEntityElement = exports.unwrap = exports.wrap = exports.wrapAllChildNodes = exports.moveChildNodes = exports.toArray = exports.getSafeIdSelector = exports.getObjectKeys = exports.isElementOfType = exports.isNodeOfType = exports.hasMetadata = exports.getMetadata = exports.updateMetadata = exports.buildSelectionMarker = exports.isBlockElement = exports.areSameFormats = exports.parseFormat = exports.getRegularSelectionOffsets = exports.formatContainerProcessor = exports.tableProcessor = exports.entityProcessor = exports.processChildNode = exports.handleRegularSelection = exports.childProcessor = exports.contentModelToText = exports.contentModelToDom = exports.domToContentModel = void 0;
|
|
23868
24053
|
exports.getDOMInsertPointRect = exports.getSelectionRootNode = exports.isBold = exports.createModelToDomConfig = exports.createModelToDomContextWithConfig = exports.createModelToDomContext = exports.createDomToModelConfig = exports.createDomToModelContextWithConfig = exports.createDomToModelContext = exports.defaultGenerateColorKey = exports.parseColor = exports.setColor = exports.getColor = exports.DeprecatedColors = exports.BorderKeys = exports.parseValueWithUnit = exports.getAutoListStyleType = exports.getOrderedListNumberStr = exports.ParagraphFormats = exports.ListFormatsToMove = exports.ListFormatsToKeep = exports.ListFormats = exports.copyFormat = exports.setParagraphNotImplicit = exports.normalizeSegmentFormat = exports.mergeTextSegments = exports.normalizeSingleSegment = exports.isEmpty = exports.addSegment = exports.unwrapBlock = exports.isGeneralSegment = exports.normalizeContentModel = exports.normalizeParagraph = exports.addTextSegment = exports.addLink = exports.addData = exports.addCode = exports.addBlock = exports.mutateSegment = exports.mutateSegments = exports.mutateBlock = exports.createTableRow = exports.createEmptyModel = exports.createListLevel = exports.createDivider = exports.createEntity = exports.createGeneralBlock = exports.createGeneralSegment = exports.createParagraphDecorator = exports.createContentModelDocument = void 0;
|
|
23869
|
-
exports.
|
|
23870
|
-
exports.EmptySegmentFormat = exports.UnorderedListStyleMap = exports.OrderedListStyleMap = exports.TableBorderFormat = exports.NumberingListType = exports.BulletListType = exports.ChangeSource = exports.ListMetadataDefinition = exports.getListMetadata = exports.updateListMetadata = exports.getTableMetadata = exports.updateTableMetadata = exports.getTableCellMetadata = exports.updateTableCellMetadata = exports.getImageMetadata = exports.updateImageMetadata = exports.runEditSteps = exports.getClosestAncestorBlockGroupIndex = void 0;
|
|
24054
|
+
exports.getListStyleTypeFromString = exports.retrieveModelFormatState = exports.setTableCellBackgroundColor = exports.MIN_ALLOWED_TABLE_CELL_HEIGHT = exports.MIN_ALLOWED_TABLE_CELL_WIDTH = exports.normalizeTable = exports.setFirstColumnFormatBorders = exports.applyTableFormat = exports.deleteBlock = exports.deleteSegment = exports.deleteSelection = exports.mergeModel = exports.cloneModelForPaste = exports.cloneModel = exports.setSelection = exports.hasSelectionInBlockGroup = exports.hasSelectionInSegment = exports.hasSelectionInBlock = exports.getSelectedCells = exports.getSelectedSegmentsAndParagraphs = exports.getSelectedSegments = exports.getSelectedParagraphs = exports.getOperationalBlocks = exports.getFirstSelectedTable = exports.getFirstSelectedListItem = exports.iterateSelections = exports.isBlockGroupOfType = exports.getRangesByText = exports.getImageState = exports.setImageState = exports.getParagraphMarker = exports.setParagraphMarker = exports.cacheGetEventData = exports.createPasteFragment = exports.extractClipboardItems = exports.normalizeFontFamily = exports.transformColor = exports.retrieveDocumentMetadata = exports.readFile = exports.parseTableCells = exports.normalizeText = exports.isSpace = exports.isPunctuation = exports.extractBorderValues = exports.combineBorderValue = exports.getNodePositionFromEvent = exports.isCursorMovingKey = exports.isModifierKey = exports.isCharacterValue = exports.trimModelForSelection = void 0;
|
|
24055
|
+
exports.EmptySegmentFormat = exports.UnorderedListStyleMap = exports.OrderedListStyleMap = exports.TableBorderFormat = exports.NumberingListType = exports.BulletListType = exports.ChangeSource = exports.ListMetadataDefinition = exports.getListMetadata = exports.updateListMetadata = exports.getTableMetadata = exports.updateTableMetadata = exports.getTableCellMetadata = exports.updateTableCellMetadata = exports.getImageMetadata = exports.updateImageMetadata = exports.runEditSteps = exports.getClosestAncestorBlockGroupIndex = exports.getSegmentTextFormat = void 0;
|
|
23871
24056
|
var domToContentModel_1 = __webpack_require__(/*! ./domToModel/domToContentModel */ "./packages/roosterjs-content-model-dom/lib/domToModel/domToContentModel.ts");
|
|
23872
24057
|
Object.defineProperty(exports, "domToContentModel", ({ enumerable: true, get: function () { return domToContentModel_1.domToContentModel; } }));
|
|
23873
24058
|
var contentModelToDom_1 = __webpack_require__(/*! ./modelToDom/contentModelToDom */ "./packages/roosterjs-content-model-dom/lib/modelToDom/contentModelToDom.ts");
|
|
@@ -24067,6 +24252,8 @@ var normalizeFontFamily_1 = __webpack_require__(/*! ./domUtils/style/normalizeFo
|
|
|
24067
24252
|
Object.defineProperty(exports, "normalizeFontFamily", ({ enumerable: true, get: function () { return normalizeFontFamily_1.normalizeFontFamily; } }));
|
|
24068
24253
|
var extractClipboardItems_1 = __webpack_require__(/*! ./domUtils/event/extractClipboardItems */ "./packages/roosterjs-content-model-dom/lib/domUtils/event/extractClipboardItems.ts");
|
|
24069
24254
|
Object.defineProperty(exports, "extractClipboardItems", ({ enumerable: true, get: function () { return extractClipboardItems_1.extractClipboardItems; } }));
|
|
24255
|
+
var createPasteFragment_1 = __webpack_require__(/*! ./domUtils/event/createPasteFragment */ "./packages/roosterjs-content-model-dom/lib/domUtils/event/createPasteFragment.ts");
|
|
24256
|
+
Object.defineProperty(exports, "createPasteFragment", ({ enumerable: true, get: function () { return createPasteFragment_1.createPasteFragment; } }));
|
|
24070
24257
|
var cacheGetEventData_1 = __webpack_require__(/*! ./domUtils/event/cacheGetEventData */ "./packages/roosterjs-content-model-dom/lib/domUtils/event/cacheGetEventData.ts");
|
|
24071
24258
|
Object.defineProperty(exports, "cacheGetEventData", ({ enumerable: true, get: function () { return cacheGetEventData_1.cacheGetEventData; } }));
|
|
24072
24259
|
var paragraphMarker_1 = __webpack_require__(/*! ./domUtils/hiddenProperties/paragraphMarker */ "./packages/roosterjs-content-model-dom/lib/domUtils/hiddenProperties/paragraphMarker.ts");
|
|
@@ -26910,6 +27097,7 @@ var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.m
|
|
|
26910
27097
|
var addBlock_1 = __webpack_require__(/*! ../common/addBlock */ "./packages/roosterjs-content-model-dom/lib/modelApi/common/addBlock.ts");
|
|
26911
27098
|
var addSegment_1 = __webpack_require__(/*! ../common/addSegment */ "./packages/roosterjs-content-model-dom/lib/modelApi/common/addSegment.ts");
|
|
26912
27099
|
var applyTableFormat_1 = __webpack_require__(/*! ./applyTableFormat */ "./packages/roosterjs-content-model-dom/lib/modelApi/editing/applyTableFormat.ts");
|
|
27100
|
+
var createBr_1 = __webpack_require__(/*! ../creators/createBr */ "./packages/roosterjs-content-model-dom/lib/modelApi/creators/createBr.ts");
|
|
26913
27101
|
var createListItem_1 = __webpack_require__(/*! ../creators/createListItem */ "./packages/roosterjs-content-model-dom/lib/modelApi/creators/createListItem.ts");
|
|
26914
27102
|
var createParagraph_1 = __webpack_require__(/*! ../creators/createParagraph */ "./packages/roosterjs-content-model-dom/lib/modelApi/creators/createParagraph.ts");
|
|
26915
27103
|
var createSelectionMarker_1 = __webpack_require__(/*! ../creators/createSelectionMarker */ "./packages/roosterjs-content-model-dom/lib/modelApi/creators/createSelectionMarker.ts");
|
|
@@ -26932,11 +27120,14 @@ var KeysOfSegmentFormat = (0, getObjectKeys_1.getObjectKeys)(EmptySegmentFormat_
|
|
|
26932
27120
|
* @returns Insert point after merge, or null if there is no insert point
|
|
26933
27121
|
*/
|
|
26934
27122
|
function mergeModel(target, source, context, options) {
|
|
26935
|
-
var _a;
|
|
27123
|
+
var _a, _b;
|
|
26936
27124
|
var insertPosition = (_a = options === null || options === void 0 ? void 0 : options.insertPosition) !== null && _a !== void 0 ? _a : (0, deleteSelection_1.deleteSelection)(target, [], context).insertPoint;
|
|
26937
|
-
var
|
|
27125
|
+
var _c = options || {}, addParagraphAfterMergedContent = _c.addParagraphAfterMergedContent, mergeFormat = _c.mergeFormat, mergeParagraphAfterList = _c.mergeParagraphAfterList, mergeTable = _c.mergeTable;
|
|
27126
|
+
if (mergeParagraphAfterList && insertPosition && ((_b = source.blocks[0]) === null || _b === void 0 ? void 0 : _b.blockType) == 'Paragraph') {
|
|
27127
|
+
moveParagraphAfterListIntoList(insertPosition);
|
|
27128
|
+
}
|
|
26938
27129
|
if (addParagraphAfterMergedContent && !mergeTable) {
|
|
26939
|
-
var
|
|
27130
|
+
var _d = insertPosition || {}, paragraph = _d.paragraph, marker = _d.marker;
|
|
26940
27131
|
var newPara = (0, createParagraph_1.createParagraph)(false /* isImplicit */, paragraph === null || paragraph === void 0 ? void 0 : paragraph.format, marker === null || marker === void 0 ? void 0 : marker.format);
|
|
26941
27132
|
(0, addBlock_1.addBlock)(source, newPara);
|
|
26942
27133
|
}
|
|
@@ -26984,6 +27175,22 @@ function mergeModel(target, source, context, options) {
|
|
|
26984
27175
|
return insertPosition;
|
|
26985
27176
|
}
|
|
26986
27177
|
exports.mergeModel = mergeModel;
|
|
27178
|
+
function moveParagraphAfterListIntoList(insertPosition) {
|
|
27179
|
+
var paragraph = insertPosition.paragraph, path = insertPosition.path;
|
|
27180
|
+
var parent = path[0];
|
|
27181
|
+
var paragraphIndex = parent.blocks.indexOf(paragraph);
|
|
27182
|
+
var previousBlock = parent.blocks[paragraphIndex - 1];
|
|
27183
|
+
if (paragraph.segments.every(function (segment) { return segment.segmentType == 'SelectionMarker' || segment.segmentType == 'Br'; }) &&
|
|
27184
|
+
(previousBlock === null || previousBlock === void 0 ? void 0 : previousBlock.blockType) == 'BlockGroup' &&
|
|
27185
|
+
previousBlock.blockGroupType == 'ListItem') {
|
|
27186
|
+
var newListItem = (0, createListItem_1.createListItem)(previousBlock.levels, previousBlock.formatHolder.format);
|
|
27187
|
+
var paragraphAfterList = (0, createParagraph_1.createParagraph)(false, paragraph.format);
|
|
27188
|
+
(0, addBlock_1.addBlock)(newListItem, paragraph);
|
|
27189
|
+
paragraphAfterList.segments.push((0, createBr_1.createBr)());
|
|
27190
|
+
(0, mutate_1.mutateBlock)(parent).blocks.splice(paragraphIndex, 1, newListItem, paragraphAfterList);
|
|
27191
|
+
path.unshift(newListItem);
|
|
27192
|
+
}
|
|
27193
|
+
}
|
|
26987
27194
|
function mergeParagraph(markerPosition, newPara, mergeToCurrentParagraph, context, option) {
|
|
26988
27195
|
var paragraph = markerPosition.paragraph, marker = markerPosition.marker;
|
|
26989
27196
|
var newParagraph = mergeToCurrentParagraph
|
|
@@ -32317,7 +32524,11 @@ var MarkdownPastePlugin = /** @class */ (function () {
|
|
|
32317
32524
|
(0, isPastedContentMarkdown_1.isPastedContentMarkdown)(this.editor, clipboardData) &&
|
|
32318
32525
|
clipboardData.modelBeforePaste) {
|
|
32319
32526
|
var modelBeforePaste_1 = (0, roosterjs_content_model_dom_1.cloneModelForPaste)(clipboardData.modelBeforePaste);
|
|
32320
|
-
(0, roosterjs_content_model_dom_1.mergeModel)(modelBeforePaste_1, (0, convertMarkdownToContentModel_1.convertMarkdownToContentModel)(clipboardData.text, {
|
|
32527
|
+
(0, roosterjs_content_model_dom_1.mergeModel)(modelBeforePaste_1, (0, convertMarkdownToContentModel_1.convertMarkdownToContentModel)(clipboardData.text, {
|
|
32528
|
+
emptyLine: 'merge',
|
|
32529
|
+
}), undefined /*context*/, {
|
|
32530
|
+
mergeFormat: 'preferTarget',
|
|
32531
|
+
});
|
|
32321
32532
|
if (this.options.undoConversion) {
|
|
32322
32533
|
this.editor.takeSnapshot();
|
|
32323
32534
|
}
|
|
@@ -32371,7 +32582,7 @@ var BlockPatterns = [
|
|
|
32371
32582
|
/^\s*>\s.+/,
|
|
32372
32583
|
/^\s*[\*\-\+]\s.+/,
|
|
32373
32584
|
/^\s*\d+\.\s.+/,
|
|
32374
|
-
|
|
32585
|
+
/^---$/,
|
|
32375
32586
|
/^\s*\|.*\|\s*$/, // table row: "| a | b |"
|
|
32376
32587
|
];
|
|
32377
32588
|
// Inline markdown patterns. The text contains markdown if any of these match anywhere.
|
|
@@ -33910,9 +34121,12 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
|
33910
34121
|
exports.DragAndDropPlugin = void 0;
|
|
33911
34122
|
var handleDroppedExternalContent_1 = __webpack_require__(/*! ./utils/handleDroppedExternalContent */ "./packages/roosterjs-content-model-plugins/lib/dragAndDrop/utils/handleDroppedExternalContent.ts");
|
|
33912
34123
|
var handleDroppedInternalContent_1 = __webpack_require__(/*! ./utils/handleDroppedInternalContent */ "./packages/roosterjs-content-model-plugins/lib/dragAndDrop/utils/handleDroppedInternalContent.ts");
|
|
34124
|
+
var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
|
|
34125
|
+
var reorderList_1 = __webpack_require__(/*! ./utils/reorderList */ "./packages/roosterjs-content-model-plugins/lib/dragAndDrop/utils/reorderList.ts");
|
|
33913
34126
|
var DefaultOptions = {
|
|
33914
34127
|
forbiddenElements: ['iframe'],
|
|
33915
34128
|
};
|
|
34129
|
+
var DeleteByDragInputType = 'deleteByDrag';
|
|
33916
34130
|
/**
|
|
33917
34131
|
* DragAndDrop plugin, handles ContentChanged event when change source is "Drop"
|
|
33918
34132
|
* to sanitize dropped content, similar to how PastePlugin sanitizes pasted content.
|
|
@@ -33947,8 +34161,21 @@ var DragAndDropPlugin = /** @class */ (function () {
|
|
|
33947
34161
|
this.editor = editor;
|
|
33948
34162
|
this.disposer = editor.attachDomEvent({
|
|
33949
34163
|
dragstart: {
|
|
33950
|
-
beforeDispatch: function (
|
|
34164
|
+
beforeDispatch: function (ev) {
|
|
33951
34165
|
_this.internalDrag = true;
|
|
34166
|
+
if (_this.editor &&
|
|
34167
|
+
_this.editor.isExperimentalFeatureEnabled('HandleDropInternalContent')) {
|
|
34168
|
+
_this.adjustDraggingCursor(_this.editor, ev);
|
|
34169
|
+
}
|
|
34170
|
+
},
|
|
34171
|
+
},
|
|
34172
|
+
beforeinput: {
|
|
34173
|
+
beforeDispatch: function (event) {
|
|
34174
|
+
var ev = event;
|
|
34175
|
+
if (_this.internalDrag) {
|
|
34176
|
+
_this.handleDragOutOfTheEditor(editor, ev);
|
|
34177
|
+
_this.internalDrag = false;
|
|
34178
|
+
}
|
|
33952
34179
|
},
|
|
33953
34180
|
},
|
|
33954
34181
|
});
|
|
@@ -33965,6 +34192,7 @@ var DragAndDropPlugin = /** @class */ (function () {
|
|
|
33965
34192
|
this.disposer = null;
|
|
33966
34193
|
}
|
|
33967
34194
|
this.forbiddenElements = [];
|
|
34195
|
+
this.internalDrag = false;
|
|
33968
34196
|
};
|
|
33969
34197
|
/**
|
|
33970
34198
|
* Core method for a plugin. Once an event happens in editor, editor will call this
|
|
@@ -33973,7 +34201,6 @@ var DragAndDropPlugin = /** @class */ (function () {
|
|
|
33973
34201
|
* @param event The event to handle:
|
|
33974
34202
|
*/
|
|
33975
34203
|
DragAndDropPlugin.prototype.onPluginEvent = function (event) {
|
|
33976
|
-
var _a;
|
|
33977
34204
|
if (this.editor && event.eventType == 'beforeDrop') {
|
|
33978
34205
|
var dropEvent = event.rawEvent;
|
|
33979
34206
|
if (this.internalDrag &&
|
|
@@ -33981,14 +34208,36 @@ var DragAndDropPlugin = /** @class */ (function () {
|
|
|
33981
34208
|
(0, handleDroppedInternalContent_1.handleDroppedInternalContent)(this.editor, dropEvent);
|
|
33982
34209
|
}
|
|
33983
34210
|
else if (!this.internalDrag) {
|
|
33984
|
-
|
|
33985
|
-
if (html) {
|
|
33986
|
-
(0, handleDroppedExternalContent_1.handleDroppedExternalContent)(this.editor, dropEvent, html, this.forbiddenElements);
|
|
33987
|
-
}
|
|
34211
|
+
(0, handleDroppedExternalContent_1.handleDroppedExternalContent)(this.editor, dropEvent, this.forbiddenElements);
|
|
33988
34212
|
}
|
|
33989
34213
|
this.internalDrag = false;
|
|
33990
34214
|
}
|
|
33991
34215
|
};
|
|
34216
|
+
DragAndDropPlugin.prototype.adjustDraggingCursor = function (editor, dragEvent) {
|
|
34217
|
+
var _a, _b;
|
|
34218
|
+
var selection = editor.getDOMSelection();
|
|
34219
|
+
if ((selection === null || selection === void 0 ? void 0 : selection.type) == 'table') {
|
|
34220
|
+
var doc = (_a = this.editor) === null || _a === void 0 ? void 0 : _a.getDocument();
|
|
34221
|
+
if (doc && dragEvent.dataTransfer) {
|
|
34222
|
+
var ghost_1 = doc.createElement('span');
|
|
34223
|
+
ghost_1.textContent = '|';
|
|
34224
|
+
doc.body.appendChild(ghost_1);
|
|
34225
|
+
dragEvent.dataTransfer.setDragImage(ghost_1, 0, 0);
|
|
34226
|
+
(_b = doc.defaultView) === null || _b === void 0 ? void 0 : _b.requestAnimationFrame(function () { return ghost_1.remove(); });
|
|
34227
|
+
}
|
|
34228
|
+
}
|
|
34229
|
+
};
|
|
34230
|
+
DragAndDropPlugin.prototype.handleDragOutOfTheEditor = function (editor, inputEvent) {
|
|
34231
|
+
if (inputEvent.inputType == DeleteByDragInputType) {
|
|
34232
|
+
inputEvent.preventDefault();
|
|
34233
|
+
editor.formatContentModel(function (model, context) {
|
|
34234
|
+
(0, roosterjs_content_model_dom_1.deleteSelection)(model, [reorderList_1.reorderList], context);
|
|
34235
|
+
return true;
|
|
34236
|
+
}, {
|
|
34237
|
+
changeSource: roosterjs_content_model_dom_1.ChangeSource.DragOutOfEditor,
|
|
34238
|
+
});
|
|
34239
|
+
}
|
|
34240
|
+
};
|
|
33992
34241
|
return DragAndDropPlugin;
|
|
33993
34242
|
}());
|
|
33994
34243
|
exports.DragAndDropPlugin = DragAndDropPlugin;
|
|
@@ -34050,37 +34299,90 @@ exports.cleanForbiddenElements = cleanForbiddenElements;
|
|
|
34050
34299
|
|
|
34051
34300
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
34052
34301
|
exports.handleDroppedExternalContent = void 0;
|
|
34302
|
+
var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.mjs");
|
|
34053
34303
|
var cleanForbiddenElements_1 = __webpack_require__(/*! ./cleanForbiddenElements */ "./packages/roosterjs-content-model-plugins/lib/dragAndDrop/utils/cleanForbiddenElements.ts");
|
|
34054
34304
|
var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
|
|
34055
34305
|
/**
|
|
34056
34306
|
* @internal
|
|
34057
34307
|
* Handle dropped HTML content by inserting it at the drop position
|
|
34058
34308
|
*/
|
|
34059
|
-
function handleDroppedExternalContent(editor, event,
|
|
34060
|
-
|
|
34061
|
-
|
|
34062
|
-
|
|
34063
|
-
|
|
34064
|
-
|
|
34065
|
-
|
|
34066
|
-
|
|
34067
|
-
|
|
34068
|
-
|
|
34069
|
-
|
|
34070
|
-
|
|
34071
|
-
|
|
34072
|
-
|
|
34073
|
-
|
|
34074
|
-
|
|
34075
|
-
|
|
34076
|
-
|
|
34077
|
-
|
|
34078
|
-
|
|
34079
|
-
|
|
34309
|
+
function handleDroppedExternalContent(editor, event, forbiddenElements) {
|
|
34310
|
+
return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
|
|
34311
|
+
var items, doc, domPosition, droppedModel_1, range;
|
|
34312
|
+
return (0, tslib_1.__generator)(this, function (_a) {
|
|
34313
|
+
switch (_a.label) {
|
|
34314
|
+
case 0:
|
|
34315
|
+
items = getSupportedItems(event.dataTransfer);
|
|
34316
|
+
if (items.length == 0) {
|
|
34317
|
+
return [2 /*return*/];
|
|
34318
|
+
}
|
|
34319
|
+
doc = editor.getDocument();
|
|
34320
|
+
domPosition = (0, roosterjs_content_model_dom_1.getNodePositionFromEvent)(doc, editor.getDOMHelper(), event.x, event.y);
|
|
34321
|
+
if (!domPosition) return [3 /*break*/, 2];
|
|
34322
|
+
event.preventDefault();
|
|
34323
|
+
event.stopPropagation();
|
|
34324
|
+
return [4 /*yield*/, getDroppedModel(editor, items, forbiddenElements)];
|
|
34325
|
+
case 1:
|
|
34326
|
+
droppedModel_1 = _a.sent();
|
|
34327
|
+
if (!droppedModel_1) {
|
|
34328
|
+
return [2 /*return*/];
|
|
34329
|
+
}
|
|
34330
|
+
range = doc.createRange();
|
|
34331
|
+
range.setStart(domPosition.node, domPosition.offset);
|
|
34332
|
+
range.collapse(true);
|
|
34333
|
+
editor.formatContentModel(function (model, context) {
|
|
34334
|
+
(0, roosterjs_content_model_dom_1.mergeModel)(model, droppedModel_1, context, {
|
|
34335
|
+
mergeParagraphAfterList: true,
|
|
34336
|
+
});
|
|
34337
|
+
return true;
|
|
34338
|
+
}, {
|
|
34339
|
+
selectionOverride: {
|
|
34340
|
+
type: 'range',
|
|
34341
|
+
range: range,
|
|
34342
|
+
isReverted: false,
|
|
34343
|
+
},
|
|
34344
|
+
});
|
|
34345
|
+
_a.label = 2;
|
|
34346
|
+
case 2: return [2 /*return*/];
|
|
34347
|
+
}
|
|
34080
34348
|
});
|
|
34081
|
-
}
|
|
34349
|
+
});
|
|
34082
34350
|
}
|
|
34083
34351
|
exports.handleDroppedExternalContent = handleDroppedExternalContent;
|
|
34352
|
+
function getDroppedModel(editor, items, forbiddenElements) {
|
|
34353
|
+
return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
|
|
34354
|
+
var clipboardData, domCreator, doc, fragment;
|
|
34355
|
+
return (0, tslib_1.__generator)(this, function (_a) {
|
|
34356
|
+
switch (_a.label) {
|
|
34357
|
+
case 0: return [4 /*yield*/, (0, roosterjs_content_model_dom_1.extractClipboardItems)(items, undefined)];
|
|
34358
|
+
case 1:
|
|
34359
|
+
clipboardData = _a.sent();
|
|
34360
|
+
domCreator = editor.getDOMCreator();
|
|
34361
|
+
doc = clipboardData.rawHtml ? domCreator.htmlToDOM(clipboardData.rawHtml) : null;
|
|
34362
|
+
if (doc) {
|
|
34363
|
+
(0, cleanForbiddenElements_1.cleanForbiddenElements)(doc, forbiddenElements);
|
|
34364
|
+
}
|
|
34365
|
+
fragment = (0, roosterjs_content_model_dom_1.createPasteFragment)(editor.getDocument(), clipboardData, 'normal', doc === null || doc === void 0 ? void 0 : doc.body);
|
|
34366
|
+
return [2 /*return*/, (0, roosterjs_content_model_dom_1.domToContentModel)(fragment, (0, roosterjs_content_model_dom_1.createDomToModelContext)())];
|
|
34367
|
+
}
|
|
34368
|
+
});
|
|
34369
|
+
});
|
|
34370
|
+
}
|
|
34371
|
+
function getSupportedItems(dataTransfer) {
|
|
34372
|
+
var _a;
|
|
34373
|
+
var result = [];
|
|
34374
|
+
for (var i = 0; i < ((_a = dataTransfer === null || dataTransfer === void 0 ? void 0 : dataTransfer.items.length) !== null && _a !== void 0 ? _a : 0); i++) {
|
|
34375
|
+
var item = dataTransfer.items[i];
|
|
34376
|
+
if ((item.kind == 'string' &&
|
|
34377
|
+
(item.type == 'text/html' ||
|
|
34378
|
+
item.type == 'text/plain' ||
|
|
34379
|
+
item.type == 'text/uri-list')) ||
|
|
34380
|
+
(item.kind == 'file' && item.type.indexOf('image/') == 0)) {
|
|
34381
|
+
result.push(item);
|
|
34382
|
+
}
|
|
34383
|
+
}
|
|
34384
|
+
return result;
|
|
34385
|
+
}
|
|
34084
34386
|
|
|
34085
34387
|
|
|
34086
34388
|
/***/ },
|
|
@@ -34097,6 +34399,7 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
|
34097
34399
|
exports.handleDroppedInternalContent = void 0;
|
|
34098
34400
|
var roosterjs_content_model_api_1 = __webpack_require__(/*! roosterjs-content-model-api */ "./packages/roosterjs-content-model-api/lib/index.ts");
|
|
34099
34401
|
var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
|
|
34402
|
+
var reorderList_1 = __webpack_require__(/*! ./reorderList */ "./packages/roosterjs-content-model-plugins/lib/dragAndDrop/utils/reorderList.ts");
|
|
34100
34403
|
/**
|
|
34101
34404
|
* @internal
|
|
34102
34405
|
* Handle dropped internal HTML content by inserting it at the drop position
|
|
@@ -34112,8 +34415,10 @@ function handleDroppedInternalContent(editor, event) {
|
|
|
34112
34415
|
if (insertPoint) {
|
|
34113
34416
|
var cloneModel = (0, roosterjs_content_model_dom_1.cloneModelForPaste)(model);
|
|
34114
34417
|
(0, roosterjs_content_model_dom_1.trimModelForSelection)(cloneModel, selection);
|
|
34115
|
-
if (
|
|
34116
|
-
(0, roosterjs_content_model_dom_1.
|
|
34418
|
+
if (!event.ctrlKey && !event.metaKey) {
|
|
34419
|
+
if ((0, roosterjs_content_model_dom_1.deleteSelection)(model, [reorderList_1.reorderList], context).deleteResult == 'range') {
|
|
34420
|
+
(0, roosterjs_content_model_dom_1.normalizeContentModel)(model);
|
|
34421
|
+
}
|
|
34117
34422
|
}
|
|
34118
34423
|
var startMarker = (0, roosterjs_content_model_dom_1.createSelectionMarker)(insertPoint.marker.format);
|
|
34119
34424
|
var startParagraph = (0, roosterjs_content_model_dom_1.mutateBlock)(insertPoint.paragraph);
|
|
@@ -34121,6 +34426,7 @@ function handleDroppedInternalContent(editor, event) {
|
|
|
34121
34426
|
startParagraph.segments.splice(startIndex, 0, startMarker);
|
|
34122
34427
|
var newInsertPoint = (0, roosterjs_content_model_dom_1.mergeModel)(model, cloneModel, context, {
|
|
34123
34428
|
insertPosition: insertPoint,
|
|
34429
|
+
mergeParagraphAfterList: true,
|
|
34124
34430
|
});
|
|
34125
34431
|
if (newInsertPoint) {
|
|
34126
34432
|
(0, roosterjs_content_model_dom_1.setSelection)(model, startMarker, newInsertPoint.marker);
|
|
@@ -34132,6 +34438,39 @@ function handleDroppedInternalContent(editor, event) {
|
|
|
34132
34438
|
exports.handleDroppedInternalContent = handleDroppedInternalContent;
|
|
34133
34439
|
|
|
34134
34440
|
|
|
34441
|
+
/***/ },
|
|
34442
|
+
|
|
34443
|
+
/***/ "./packages/roosterjs-content-model-plugins/lib/dragAndDrop/utils/reorderList.ts"
|
|
34444
|
+
/*!***************************************************************************************!*\
|
|
34445
|
+
!*** ./packages/roosterjs-content-model-plugins/lib/dragAndDrop/utils/reorderList.ts ***!
|
|
34446
|
+
\***************************************************************************************/
|
|
34447
|
+
(__unused_webpack_module, exports, __webpack_require__) {
|
|
34448
|
+
|
|
34449
|
+
"use strict";
|
|
34450
|
+
|
|
34451
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
34452
|
+
exports.reorderList = void 0;
|
|
34453
|
+
var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.mjs");
|
|
34454
|
+
var getListItemFromInsertPoint_1 = __webpack_require__(/*! ../../edit/utils/getListItemFromInsertPoint */ "./packages/roosterjs-content-model-plugins/lib/edit/utils/getListItemFromInsertPoint.ts");
|
|
34455
|
+
var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
|
|
34456
|
+
/**
|
|
34457
|
+
* @internal
|
|
34458
|
+
*/
|
|
34459
|
+
var reorderList = function (context) {
|
|
34460
|
+
if (context.deleteResult != 'range') {
|
|
34461
|
+
return;
|
|
34462
|
+
}
|
|
34463
|
+
var paragraph = context.insertPoint.paragraph;
|
|
34464
|
+
var listItemAndParent = (0, getListItemFromInsertPoint_1.getListItemFromInsertPoint)(context.insertPoint);
|
|
34465
|
+
if (listItemAndParent) {
|
|
34466
|
+
var _a = (0, tslib_1.__read)(listItemAndParent, 1), item = _a[0];
|
|
34467
|
+
var mutableList = (0, roosterjs_content_model_dom_1.mutateBlock)(item);
|
|
34468
|
+
mutableList.blocks.splice(mutableList.blocks.indexOf(paragraph), mutableList.blocks.length);
|
|
34469
|
+
}
|
|
34470
|
+
};
|
|
34471
|
+
exports.reorderList = reorderList;
|
|
34472
|
+
|
|
34473
|
+
|
|
34135
34474
|
/***/ },
|
|
34136
34475
|
|
|
34137
34476
|
/***/ "./packages/roosterjs-content-model-plugins/lib/edit/EditPlugin.ts"
|
|
@@ -34415,6 +34754,9 @@ var deleteAllSegmentBefore = function (context) {
|
|
|
34415
34754
|
context.deleteResult = 'range';
|
|
34416
34755
|
}
|
|
34417
34756
|
}
|
|
34757
|
+
if (mutableParagraph.segments.length == 1 && mutableParagraph.segments[0] == marker) {
|
|
34758
|
+
mutableParagraph.segments.push((0, roosterjs_content_model_dom_1.createBr)(marker.format));
|
|
34759
|
+
}
|
|
34418
34760
|
};
|
|
34419
34761
|
exports.deleteAllSegmentBefore = deleteAllSegmentBefore;
|
|
34420
34762
|
|
|
@@ -34630,6 +34972,7 @@ var insertNewLine = function (quote, parent, quoteIndex, paragraph) {
|
|
|
34630
34972
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
34631
34973
|
exports.deleteList = void 0;
|
|
34632
34974
|
var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.mjs");
|
|
34975
|
+
var getListItemFromInsertPoint_1 = __webpack_require__(/*! ../utils/getListItemFromInsertPoint */ "./packages/roosterjs-content-model-plugins/lib/edit/utils/getListItemFromInsertPoint.ts");
|
|
34633
34976
|
var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
|
|
34634
34977
|
/**
|
|
34635
34978
|
* @internal
|
|
@@ -34639,18 +34982,14 @@ var deleteList = function (context) {
|
|
|
34639
34982
|
if (context.deleteResult != 'notDeleted') {
|
|
34640
34983
|
return;
|
|
34641
34984
|
}
|
|
34642
|
-
var
|
|
34643
|
-
var
|
|
34644
|
-
|
|
34645
|
-
|
|
34646
|
-
if ((item === null || item === void 0 ? void 0 : item.blockGroupType) == 'ListItem' &&
|
|
34647
|
-
item.levels.length > 0 &&
|
|
34648
|
-
paragraph.segments[0] == marker &&
|
|
34649
|
-
parent) {
|
|
34985
|
+
var paragraph = context.insertPoint.paragraph;
|
|
34986
|
+
var listItemAndParent = (0, getListItemFromInsertPoint_1.getListItemFromInsertPoint)(context.insertPoint);
|
|
34987
|
+
if (listItemAndParent) {
|
|
34988
|
+
var _c = (0, tslib_1.__read)(listItemAndParent, 2), item = _c[0], parent_1 = _c[1];
|
|
34650
34989
|
var mutableList = (0, roosterjs_content_model_dom_1.mutateBlock)(item);
|
|
34651
34990
|
var lastLevel = mutableList.levels[mutableList.levels.length - 1];
|
|
34652
|
-
var listItemIndex =
|
|
34653
|
-
var previousItem =
|
|
34991
|
+
var listItemIndex = parent_1.blocks.indexOf(item);
|
|
34992
|
+
var previousItem = parent_1.blocks[listItemIndex - 1];
|
|
34654
34993
|
// 1. If the last level is dummy, just remove it (legacy behavior)
|
|
34655
34994
|
// 2. If focus is at the beginning of list item and previous block is a list item with the same level count,
|
|
34656
34995
|
// merge current list item into previous one
|
|
@@ -34666,7 +35005,7 @@ var deleteList = function (context) {
|
|
|
34666
35005
|
previousItem.levels.length == mutableList.levels.length) {
|
|
34667
35006
|
var mutablePreviousItem = (0, roosterjs_content_model_dom_1.mutateBlock)(previousItem);
|
|
34668
35007
|
(_a = mutablePreviousItem.blocks).push.apply(_a, (0, tslib_1.__spreadArray)([], (0, tslib_1.__read)(mutableList.blocks), false));
|
|
34669
|
-
(0, roosterjs_content_model_dom_1.mutateBlock)(
|
|
35008
|
+
(0, roosterjs_content_model_dom_1.mutateBlock)(parent_1).blocks.splice(listItemIndex, 1);
|
|
34670
35009
|
context.deleteResult = 'range';
|
|
34671
35010
|
}
|
|
34672
35011
|
else {
|
|
@@ -34674,10 +35013,10 @@ var deleteList = function (context) {
|
|
|
34674
35013
|
if (mutableList.levels.length > 1) {
|
|
34675
35014
|
var newListItem = (0, roosterjs_content_model_dom_1.createListItem)(mutableList.levels.slice(0, -1), mutableList.formatHolder.format);
|
|
34676
35015
|
newListItem.blocks = removedBlocks.map(function (block) { return (0, roosterjs_content_model_dom_1.mutateBlock)(block); });
|
|
34677
|
-
(0, roosterjs_content_model_dom_1.mutateBlock)(
|
|
35016
|
+
(0, roosterjs_content_model_dom_1.mutateBlock)(parent_1).blocks.splice(listItemIndex + 1, 0, newListItem);
|
|
34678
35017
|
}
|
|
34679
35018
|
else {
|
|
34680
|
-
(_b = (0, roosterjs_content_model_dom_1.mutateBlock)(
|
|
35019
|
+
(_b = (0, roosterjs_content_model_dom_1.mutateBlock)(parent_1).blocks).splice.apply(_b, (0, tslib_1.__spreadArray)([listItemIndex + 1, 0], (0, tslib_1.__read)(removedBlocks), false));
|
|
34681
35020
|
}
|
|
34682
35021
|
context.deleteResult = 'range';
|
|
34683
35022
|
}
|
|
@@ -35142,6 +35481,11 @@ var handleEnterOnParagraph = function (formatsToPreserveOnMerge) { return functi
|
|
|
35142
35481
|
context.deleteResult = 'range';
|
|
35143
35482
|
context.lastParagraph = newPara;
|
|
35144
35483
|
context.insertPoint.paragraph = newPara;
|
|
35484
|
+
if (context.formatContext) {
|
|
35485
|
+
context.formatContext.announceData = {
|
|
35486
|
+
defaultStrings: 'newLineInserted',
|
|
35487
|
+
};
|
|
35488
|
+
}
|
|
35145
35489
|
}
|
|
35146
35490
|
}; };
|
|
35147
35491
|
exports.handleEnterOnParagraph = handleEnterOnParagraph;
|
|
@@ -35846,6 +36190,37 @@ function getLeafSiblingBlock(path, block, isNext) {
|
|
|
35846
36190
|
exports.getLeafSiblingBlock = getLeafSiblingBlock;
|
|
35847
36191
|
|
|
35848
36192
|
|
|
36193
|
+
/***/ },
|
|
36194
|
+
|
|
36195
|
+
/***/ "./packages/roosterjs-content-model-plugins/lib/edit/utils/getListItemFromInsertPoint.ts"
|
|
36196
|
+
/*!***********************************************************************************************!*\
|
|
36197
|
+
!*** ./packages/roosterjs-content-model-plugins/lib/edit/utils/getListItemFromInsertPoint.ts ***!
|
|
36198
|
+
\***********************************************************************************************/
|
|
36199
|
+
(__unused_webpack_module, exports, __webpack_require__) {
|
|
36200
|
+
|
|
36201
|
+
"use strict";
|
|
36202
|
+
|
|
36203
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
36204
|
+
exports.getListItemFromInsertPoint = void 0;
|
|
36205
|
+
var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
|
|
36206
|
+
/**
|
|
36207
|
+
* @internal
|
|
36208
|
+
*/
|
|
36209
|
+
function getListItemFromInsertPoint(insertPoint) {
|
|
36210
|
+
var paragraph = insertPoint.paragraph, marker = insertPoint.marker, path = insertPoint.path;
|
|
36211
|
+
var index = (0, roosterjs_content_model_dom_1.getClosestAncestorBlockGroupIndex)(path, ['ListItem'], ['TableCell', 'FormatContainer']);
|
|
36212
|
+
var item = path[index];
|
|
36213
|
+
var parent = path[index + 1];
|
|
36214
|
+
return (item === null || item === void 0 ? void 0 : item.blockGroupType) == 'ListItem' &&
|
|
36215
|
+
item.levels.length > 0 &&
|
|
36216
|
+
paragraph.segments[0] == marker &&
|
|
36217
|
+
parent
|
|
36218
|
+
? [item, parent]
|
|
36219
|
+
: null;
|
|
36220
|
+
}
|
|
36221
|
+
exports.getListItemFromInsertPoint = getListItemFromInsertPoint;
|
|
36222
|
+
|
|
36223
|
+
|
|
35849
36224
|
/***/ },
|
|
35850
36225
|
|
|
35851
36226
|
/***/ "./packages/roosterjs-content-model-plugins/lib/edit/utils/preserveParagraphFormat.ts"
|