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