roosterjs 9.57.0 → 9.59.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 +91 -7
- 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 +91 -7
- 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 +114 -9
- package/dist/rooster-amd.js +1102 -367
- 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 +150 -69
- 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 +187 -106
- package/dist/rooster-react.js.map +1 -1
- package/dist/rooster.d.ts +114 -9
- package/dist/rooster.js +1102 -367
- 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
|
|
|
@@ -2460,7 +2551,7 @@ exports["default"] = getDarkColor;
|
|
|
2460
2551
|
|
|
2461
2552
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
2462
2553
|
exports.formatParagraphWithContentModel = exports.formatImageWithContentModel = exports.formatTableWithContentModel = exports.createEditorContextForEntity = exports.clearSelectedCells = exports.insertTableColumn = exports.insertTableRow = exports.insertEntity = exports.toggleCode = exports.setParagraphMargin = exports.adjustImageSelection = exports.setImageAltText = exports.adjustLinkSelection = exports.removeLink = exports.insertLink = exports.clearFormat = exports.getFormatState = exports.changeImage = exports.setImageBoxShadow = exports.setImageBorder = exports.setSpacing = exports.toggleBlockQuote = exports.setHeadingLevel = exports.setDirection = exports.setAlignment = exports.setIndentation = exports.setListStartNumber = exports.setListStyle = exports.insertImage = exports.splitTextSegment = exports.changeCapitalization = exports.applySegmentFormat = exports.changeFontSize = exports.setTextColor = exports.setFontSize = exports.setFontName = exports.setBackgroundColor = exports.toggleSuperscript = exports.toggleSubscript = exports.toggleStrikethrough = exports.toggleUnderline = exports.toggleItalic = exports.toggleBold = exports.toggleNumbering = exports.toggleBullet = exports.applyTableBorderFormat = exports.editTable = exports.setTableCellShade = exports.formatTable = exports.insertTable = void 0;
|
|
2463
|
-
exports.adjustWordSelection = exports.queryContentModelBlocks = exports.getListAnnounceData = exports.getPromoteLink = exports.promoteLink = exports.matchLink = exports.setModelIndentation = exports.findListItemsInSameThread = exports.setModelListStartNumber = exports.setModelListStyle = exports.setListType = exports.formatInsertPointWithContentModel = exports.formatTextSegmentBeforeSelectionMarker = exports.formatSegmentWithContentModel = void 0;
|
|
2554
|
+
exports.adjustWordSelection = exports.queryContentModelBlocks = exports.getListAnnounceData = exports.getPromoteLink = exports.promoteLink = exports.matchLink = exports.getTextDirection = exports.setModelIndentation = exports.findListItemsInSameThread = exports.setModelListStartNumber = exports.setModelListStyle = exports.setListType = exports.formatInsertPointWithContentModel = exports.formatTextSegmentBeforeSelectionMarker = exports.formatSegmentWithContentModel = void 0;
|
|
2464
2555
|
var insertTable_1 = __webpack_require__(/*! ./publicApi/table/insertTable */ "./packages/roosterjs-content-model-api/lib/publicApi/table/insertTable.ts");
|
|
2465
2556
|
Object.defineProperty(exports, "insertTable", ({ enumerable: true, get: function () { return insertTable_1.insertTable; } }));
|
|
2466
2557
|
var formatTable_1 = __webpack_require__(/*! ./publicApi/table/formatTable */ "./packages/roosterjs-content-model-api/lib/publicApi/table/formatTable.ts");
|
|
@@ -2577,6 +2668,8 @@ var findListItemsInSameThread_1 = __webpack_require__(/*! ./modelApi/list/findLi
|
|
|
2577
2668
|
Object.defineProperty(exports, "findListItemsInSameThread", ({ enumerable: true, get: function () { return findListItemsInSameThread_1.findListItemsInSameThread; } }));
|
|
2578
2669
|
var setModelIndentation_1 = __webpack_require__(/*! ./modelApi/block/setModelIndentation */ "./packages/roosterjs-content-model-api/lib/modelApi/block/setModelIndentation.ts");
|
|
2579
2670
|
Object.defineProperty(exports, "setModelIndentation", ({ enumerable: true, get: function () { return setModelIndentation_1.setModelIndentation; } }));
|
|
2671
|
+
var setModelDirection_1 = __webpack_require__(/*! ./modelApi/block/setModelDirection */ "./packages/roosterjs-content-model-api/lib/modelApi/block/setModelDirection.ts");
|
|
2672
|
+
Object.defineProperty(exports, "getTextDirection", ({ enumerable: true, get: function () { return setModelDirection_1.getTextDirection; } }));
|
|
2580
2673
|
var matchLink_1 = __webpack_require__(/*! ./modelApi/link/matchLink */ "./packages/roosterjs-content-model-api/lib/modelApi/link/matchLink.ts");
|
|
2581
2674
|
Object.defineProperty(exports, "matchLink", ({ enumerable: true, get: function () { return matchLink_1.matchLink; } }));
|
|
2582
2675
|
var promoteLink_1 = __webpack_require__(/*! ./modelApi/link/promoteLink */ "./packages/roosterjs-content-model-api/lib/modelApi/link/promoteLink.ts");
|
|
@@ -2677,15 +2770,12 @@ exports.setModelAlignment = setModelAlignment;
|
|
|
2677
2770
|
"use strict";
|
|
2678
2771
|
|
|
2679
2772
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
2680
|
-
exports.setModelDirection = void 0;
|
|
2773
|
+
exports.getTextDirection = exports.setModelDirection = void 0;
|
|
2681
2774
|
var findListItemsInSameThread_1 = __webpack_require__(/*! ../list/findListItemsInSameThread */ "./packages/roosterjs-content-model-api/lib/modelApi/list/findListItemsInSameThread.ts");
|
|
2682
2775
|
var splitSelectedParagraphByBr_1 = __webpack_require__(/*! ./splitSelectedParagraphByBr */ "./packages/roosterjs-content-model-api/lib/modelApi/block/splitSelectedParagraphByBr.ts");
|
|
2683
2776
|
var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
|
|
2684
|
-
|
|
2685
|
-
|
|
2686
|
-
var RTL_CHAR_REGEX = /[\u0590-\u05FF\u0600-\u08FF\uFB1D-\uFDFF\uFE70-\uFEFF]/g;
|
|
2687
|
-
var URL_CHAR_REGEX = /http\S+|www\S+|https\S+|<a\s+(?:[^>]*?\s+)?href=(["']).*?\1.*?>.*?<\/a>/g;
|
|
2688
|
-
var WHITESPACE_REGEX = /\s/g;
|
|
2777
|
+
var FIRST_STRONG_CHAR_REGEX = new RegExp('[\\p{L}\\u200E\\u200F]', 'u');
|
|
2778
|
+
var RTL_CHAR_REGEX = new RegExp('[\\u0590-\\u08FF\\u200F\\uFB1D-\\uFDFF\\uFE70-\\uFEFF\\u{10840}-\\u{10FFF}\\u{1E800}-\\u{1E95F}]', 'u');
|
|
2689
2779
|
/**
|
|
2690
2780
|
* @internal
|
|
2691
2781
|
*/
|
|
@@ -2763,29 +2853,29 @@ function setProperty(format, key, value) {
|
|
|
2763
2853
|
delete format[key];
|
|
2764
2854
|
}
|
|
2765
2855
|
}
|
|
2856
|
+
/**
|
|
2857
|
+
* Determine text direction from the first strong directional character
|
|
2858
|
+
* @param text Text to scan
|
|
2859
|
+
*/
|
|
2860
|
+
function getTextDirection(text) {
|
|
2861
|
+
var _a;
|
|
2862
|
+
var firstStrongChar = (_a = text.match(FIRST_STRONG_CHAR_REGEX)) === null || _a === void 0 ? void 0 : _a[0];
|
|
2863
|
+
return firstStrongChar ? (RTL_CHAR_REGEX.test(firstStrongChar) ? 'rtl' : 'ltr') : undefined;
|
|
2864
|
+
}
|
|
2865
|
+
exports.getTextDirection = getTextDirection;
|
|
2766
2866
|
// Designed to match browser's 'auto' detection, by scanning over the inner text until it hits a strong LTR/RTL character
|
|
2767
2867
|
function determineTextDirection(block) {
|
|
2868
|
+
return getTextDirection(getTextContent(block)) || 'ltr';
|
|
2869
|
+
}
|
|
2870
|
+
function getTextContent(block) {
|
|
2768
2871
|
if (block.blockType === 'Paragraph') {
|
|
2769
|
-
|
|
2770
|
-
|
|
2771
|
-
|
|
2772
|
-
|
|
2773
|
-
if (!!innerText) {
|
|
2774
|
-
// Remove links
|
|
2775
|
-
innerText = innerText.replace(URL_CHAR_REGEX, '');
|
|
2776
|
-
// Remove whitespace
|
|
2777
|
-
innerText = innerText.replace(WHITESPACE_REGEX, '');
|
|
2778
|
-
var rtlMatches = innerText.match(RTL_CHAR_REGEX);
|
|
2779
|
-
var rtlCount = rtlMatches ? rtlMatches.length : 0;
|
|
2780
|
-
var ltrCount = innerText.length - rtlCount;
|
|
2781
|
-
return rtlCount > ltrCount ? 'rtl' : 'ltr';
|
|
2782
|
-
}
|
|
2783
|
-
else {
|
|
2784
|
-
return 'ltr'; // Default to LTR if no text is found
|
|
2785
|
-
}
|
|
2872
|
+
return block.segments.reduce(function (text, segment) { return text + (segment.segmentType === 'Text' ? segment.text : ''); }, '');
|
|
2873
|
+
}
|
|
2874
|
+
else if ((0, roosterjs_content_model_dom_1.isBlockGroupOfType)(block, 'ListItem')) {
|
|
2875
|
+
return block.blocks.reduce(function (text, childBlock) { return text + getTextContent(childBlock); }, '');
|
|
2786
2876
|
}
|
|
2787
2877
|
else {
|
|
2788
|
-
return '
|
|
2878
|
+
return '';
|
|
2789
2879
|
}
|
|
2790
2880
|
}
|
|
2791
2881
|
|
|
@@ -5182,7 +5272,8 @@ function insertTableColumn(table, operation) {
|
|
|
5182
5272
|
for (var i = sel === null || sel === void 0 ? void 0 : sel.firstColumn; i <= sel.lastColumn; i++) {
|
|
5183
5273
|
table.rows.forEach(function (row) {
|
|
5184
5274
|
var cell = row.cells[insertLeft ? sel.firstColumn : sel.lastColumn];
|
|
5185
|
-
var newCell = (0, roosterjs_content_model_dom_1.createTableCell)(
|
|
5275
|
+
var newCell = (0, roosterjs_content_model_dom_1.createTableCell)(false, //spanLeft
|
|
5276
|
+
cell.spanAbove, cell.isHeader, cell.format, cell.dataset);
|
|
5186
5277
|
(0, copyPreviousCellSegmentFormat_1.copyPreviousCellSegmentFormat)(cell, newCell);
|
|
5187
5278
|
newCell.isSelected = true;
|
|
5188
5279
|
row.cells.splice(insertLeft ? sel.firstColumn : sel.lastColumn + 1, 0, newCell);
|
|
@@ -5225,7 +5316,8 @@ function insertTableRow(table, operation) {
|
|
|
5225
5316
|
table.rows.splice(insertAbove ? sel.firstRow : sel.lastRow + 1, 0, {
|
|
5226
5317
|
format: (0, tslib_1.__assign)({}, sourceRow.format),
|
|
5227
5318
|
cells: sourceRow.cells.map(function (cell) {
|
|
5228
|
-
var newCell = (0, roosterjs_content_model_dom_1.createTableCell)(cell.spanLeft,
|
|
5319
|
+
var newCell = (0, roosterjs_content_model_dom_1.createTableCell)(cell.spanLeft, false, //spanAbove
|
|
5320
|
+
cell.isHeader, cell.format, cell.dataset);
|
|
5229
5321
|
(0, copyPreviousCellSegmentFormat_1.copyPreviousCellSegmentFormat)(cell, newCell);
|
|
5230
5322
|
newCell.isSelected = true;
|
|
5231
5323
|
return newCell;
|
|
@@ -9157,7 +9249,7 @@ function exportContent(editor, mode, optionsOrCallbacks) {
|
|
|
9157
9249
|
var clonedRoot = editor.getDOMHelper().getClonedRoot();
|
|
9158
9250
|
if (editor.isDarkMode()) {
|
|
9159
9251
|
(0, roosterjs_content_model_dom_1.transformColor)(clonedRoot, false /*includeSelf*/, 'darkToLight', editor.getColorManager(), {
|
|
9160
|
-
tableBorders:
|
|
9252
|
+
tableBorders: true,
|
|
9161
9253
|
});
|
|
9162
9254
|
}
|
|
9163
9255
|
return getHTMLFromDOM(editor, clonedRoot);
|
|
@@ -9234,95 +9326,6 @@ function removeCommentsFromHtml(html, marker, endId, startId) {
|
|
|
9234
9326
|
}
|
|
9235
9327
|
|
|
9236
9328
|
|
|
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
9329
|
/***/ },
|
|
9327
9330
|
|
|
9328
9331
|
/***/ "./packages/roosterjs-content-model-core/lib/command/paste/generatePasteOptionFromPlugins.ts"
|
|
@@ -9389,14 +9392,15 @@ var BlackColor = 'rgb(0,0,0)';
|
|
|
9389
9392
|
*/
|
|
9390
9393
|
function mergePasteContent(editor, eventResult, isFirstPaste) {
|
|
9391
9394
|
var fragment = eventResult.fragment, domToModelOption = eventResult.domToModelOption, customizedMerge = eventResult.customizedMerge, pasteType = eventResult.pasteType, clipboardData = eventResult.clipboardData, containsBlockElements = eventResult.containsBlockElements;
|
|
9392
|
-
var
|
|
9395
|
+
var isImageOnly = isImageOnlyFragment(fragment);
|
|
9396
|
+
var shouldScrollCaretIntoView = !isImageOnly;
|
|
9393
9397
|
editor.formatContentModel(function (model, context) {
|
|
9394
9398
|
if (!isFirstPaste && clipboardData.modelBeforePaste) {
|
|
9395
9399
|
var clonedModel = (0, roosterjs_content_model_dom_1.cloneModelForPaste)(clipboardData.modelBeforePaste);
|
|
9396
9400
|
model.blocks = clonedModel.blocks;
|
|
9397
9401
|
}
|
|
9398
9402
|
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);
|
|
9403
|
+
domToModelContext.segmentFormat = getSegmentFormatForPaste(model, pasteType, isImageOnly);
|
|
9400
9404
|
var pasteModel = (0, roosterjs_content_model_dom_1.domToContentModel)(fragment, domToModelContext);
|
|
9401
9405
|
var mergeOption = {
|
|
9402
9406
|
mergeFormat: pasteType == 'mergeFormat' ? 'keepSourceEmphasisFormat' : 'none',
|
|
@@ -9420,14 +9424,16 @@ function mergePasteContent(editor, eventResult, isFirstPaste) {
|
|
|
9420
9424
|
});
|
|
9421
9425
|
}
|
|
9422
9426
|
exports.mergePasteContent = mergePasteContent;
|
|
9423
|
-
function getSegmentFormatForPaste(model, pasteType) {
|
|
9427
|
+
function getSegmentFormatForPaste(model, pasteType, isImageOnly) {
|
|
9424
9428
|
var selectedSegment = (0, roosterjs_content_model_dom_1.getSelectedSegments)(model, true /*includeFormatHolder*/)[0];
|
|
9425
9429
|
if (selectedSegment) {
|
|
9426
9430
|
var result = (0, roosterjs_content_model_dom_1.getSegmentTextFormat)(selectedSegment);
|
|
9427
|
-
if (pasteType == 'normal') {
|
|
9431
|
+
if (pasteType == 'normal' && !isImageOnly) {
|
|
9428
9432
|
// When using normal paste (Keep source formatting) set the default text color to black when creating the
|
|
9429
9433
|
// Model from the clipboard content, so the elements that do not contain any text color in their style
|
|
9430
9434
|
// Are set to black. Otherwise, These segments would get the selected segments format or the default text set in the content.
|
|
9435
|
+
// Skip this when pasting an image only, since there is no text to apply the default color to, and forcing
|
|
9436
|
+
// black here would incorrectly become the pending format used for text typed right after the pasted image.
|
|
9431
9437
|
result.textColor = BlackColor;
|
|
9432
9438
|
}
|
|
9433
9439
|
return result;
|
|
@@ -9480,7 +9486,6 @@ exports.paste = void 0;
|
|
|
9480
9486
|
var cleanHtmlComments_1 = __webpack_require__(/*! ./cleanHtmlComments */ "./packages/roosterjs-content-model-core/lib/command/paste/cleanHtmlComments.ts");
|
|
9481
9487
|
var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
|
|
9482
9488
|
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
9489
|
var generatePasteOptionFromPlugins_1 = __webpack_require__(/*! ./generatePasteOptionFromPlugins */ "./packages/roosterjs-content-model-core/lib/command/paste/generatePasteOptionFromPlugins.ts");
|
|
9485
9490
|
var mergePasteContent_1 = __webpack_require__(/*! ./mergePasteContent */ "./packages/roosterjs-content-model-core/lib/command/paste/mergePasteContent.ts");
|
|
9486
9491
|
var retrieveHtmlInfo_1 = __webpack_require__(/*! ./retrieveHtmlInfo */ "./packages/roosterjs-content-model-core/lib/command/paste/retrieveHtmlInfo.ts");
|
|
@@ -9514,7 +9519,7 @@ function paste(editor, clipboardData, pasteTypeOrGetter) {
|
|
|
9514
9519
|
? pasteTypeOrGetter(doc, clipboardData, editor.getEnvironment(), htmlFromClipboard.metadata)
|
|
9515
9520
|
: pasteTypeOrGetter;
|
|
9516
9521
|
// 3. Create target fragment
|
|
9517
|
-
var sourceFragment = (0,
|
|
9522
|
+
var sourceFragment = (0, roosterjs_content_model_dom_1.createPasteFragment)(editor.getDocument(), clipboardData, pasteType, (_a = (clipboardData.rawHtml == clipboardData.html
|
|
9518
9523
|
? doc
|
|
9519
9524
|
: createDOMFromHtml(clipboardData.html, domCreator))) === null || _a === void 0 ? void 0 : _a.body);
|
|
9520
9525
|
// 4. Trigger BeforePaste event to allow plugins modify the fragment
|
|
@@ -10606,7 +10611,7 @@ function restoreSnapshotColors(core, snapshot) {
|
|
|
10606
10611
|
core.darkColorHandler.updateKnownColor(isDarkMode); // Pass no parameter to force update all colors
|
|
10607
10612
|
if (!!snapshot.isDarkMode != !!isDarkMode) {
|
|
10608
10613
|
(0, roosterjs_content_model_dom_1.transformColor)(core.physicalRoot, false /*includeSelf*/, isDarkMode ? 'lightToDark' : 'darkToLight', core.darkColorHandler, {
|
|
10609
|
-
tableBorders:
|
|
10614
|
+
tableBorders: true,
|
|
10610
10615
|
});
|
|
10611
10616
|
}
|
|
10612
10617
|
}
|
|
@@ -11156,10 +11161,13 @@ function setRangeSelection(core, element, collapse) {
|
|
|
11156
11161
|
"use strict";
|
|
11157
11162
|
|
|
11158
11163
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
11159
|
-
exports.setTableCellsStyle = exports.removeTableCellsStyle = void 0;
|
|
11164
|
+
exports.setTableCellsStyle = exports.removeTableCellsStyle = exports.DOM_SELECTION_CSS_KEY = void 0;
|
|
11160
11165
|
var ensureUniqueId_1 = __webpack_require__(/*! ../setEditorStyle/ensureUniqueId */ "./packages/roosterjs-content-model-core/lib/coreApi/setEditorStyle/ensureUniqueId.ts");
|
|
11161
11166
|
var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
|
|
11162
|
-
|
|
11167
|
+
/**
|
|
11168
|
+
* @internal
|
|
11169
|
+
*/
|
|
11170
|
+
exports.DOM_SELECTION_CSS_KEY = '_DOMSelection';
|
|
11163
11171
|
var TABLE_ID = 'table';
|
|
11164
11172
|
/**
|
|
11165
11173
|
* @internal
|
|
@@ -11167,7 +11175,7 @@ var TABLE_ID = 'table';
|
|
|
11167
11175
|
* @param core The EditorCore object
|
|
11168
11176
|
*/
|
|
11169
11177
|
function removeTableCellsStyle(core) {
|
|
11170
|
-
core.api.setEditorStyle(core, DOM_SELECTION_CSS_KEY, '');
|
|
11178
|
+
core.api.setEditorStyle(core, exports.DOM_SELECTION_CSS_KEY, '');
|
|
11171
11179
|
}
|
|
11172
11180
|
exports.removeTableCellsStyle = removeTableCellsStyle;
|
|
11173
11181
|
/**
|
|
@@ -11192,7 +11200,7 @@ function setTableCellsStyle(core, table, parsedTable, firstCell, lastCell) {
|
|
|
11192
11200
|
lastCell.col == ((_b = (_a = parsedTable[lastCell.row]) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0) - 1
|
|
11193
11201
|
? [tableSelector, tableSelector + " *"]
|
|
11194
11202
|
: buildTableSelectors(parsedTable, tableSelector, table, firstCell, lastCell);
|
|
11195
|
-
core.api.setEditorStyle(core, DOM_SELECTION_CSS_KEY, "background-color:" + tableSelectionColor + "!important;", tableSelectors);
|
|
11203
|
+
core.api.setEditorStyle(core, exports.DOM_SELECTION_CSS_KEY, "background-color:" + tableSelectionColor + "!important;", tableSelectors);
|
|
11196
11204
|
}
|
|
11197
11205
|
exports.setTableCellsStyle = setTableCellsStyle;
|
|
11198
11206
|
/**
|
|
@@ -11251,16 +11259,19 @@ function buildTableSelectors(parsedTable, tableSelector, table, firstCell, lastC
|
|
|
11251
11259
|
"use strict";
|
|
11252
11260
|
|
|
11253
11261
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
11254
|
-
exports.toggleCaret = void 0;
|
|
11262
|
+
exports.toggleCaret = exports.HIDE_CURSOR_CSS_KEY = void 0;
|
|
11255
11263
|
var CARET_CSS_RULE = 'caret-color: transparent';
|
|
11256
|
-
|
|
11264
|
+
/**
|
|
11265
|
+
* @internal
|
|
11266
|
+
*/
|
|
11267
|
+
exports.HIDE_CURSOR_CSS_KEY = '_DOMSelectionHideCursor';
|
|
11257
11268
|
/**
|
|
11258
11269
|
* @internal Show/Hide caret in editor
|
|
11259
11270
|
* @param core The editor core
|
|
11260
11271
|
* @param isHiding True to hide caret, false to show caret
|
|
11261
11272
|
*/
|
|
11262
11273
|
function toggleCaret(core, isHiding) {
|
|
11263
|
-
core.api.setEditorStyle(core, HIDE_CURSOR_CSS_KEY, isHiding ? CARET_CSS_RULE : null);
|
|
11274
|
+
core.api.setEditorStyle(core, exports.HIDE_CURSOR_CSS_KEY, isHiding ? CARET_CSS_RULE : null);
|
|
11264
11275
|
}
|
|
11265
11276
|
exports.toggleCaret = toggleCaret;
|
|
11266
11277
|
|
|
@@ -11529,12 +11540,13 @@ exports.switchShadowEdit = switchShadowEdit;
|
|
|
11529
11540
|
/*!****************************************************************************************!*\
|
|
11530
11541
|
!*** ./packages/roosterjs-content-model-core/lib/coreApi/triggerEvent/triggerEvent.ts ***!
|
|
11531
11542
|
\****************************************************************************************/
|
|
11532
|
-
(__unused_webpack_module, exports) {
|
|
11543
|
+
(__unused_webpack_module, exports, __webpack_require__) {
|
|
11533
11544
|
|
|
11534
11545
|
"use strict";
|
|
11535
11546
|
|
|
11536
11547
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
11537
11548
|
exports.triggerEvent = void 0;
|
|
11549
|
+
var devtoolsHook_1 = __webpack_require__(/*! ../../utils/devtoolsHook */ "./packages/roosterjs-content-model-core/lib/utils/devtoolsHook.ts");
|
|
11538
11550
|
var allowedEventsInShadowEdit = [
|
|
11539
11551
|
'editorReady',
|
|
11540
11552
|
'beforeDispose',
|
|
@@ -11558,6 +11570,7 @@ var triggerEvent = function (core, pluginEvent, broadcast) {
|
|
|
11558
11570
|
}
|
|
11559
11571
|
});
|
|
11560
11572
|
}
|
|
11573
|
+
(0, devtoolsHook_1.notifyDevToolsPluginEvent)(core, pluginEvent);
|
|
11561
11574
|
};
|
|
11562
11575
|
exports.triggerEvent = triggerEvent;
|
|
11563
11576
|
function handledExclusively(event, plugin) {
|
|
@@ -13376,7 +13389,7 @@ var EntityPlugin = /** @class */ (function () {
|
|
|
13376
13389
|
};
|
|
13377
13390
|
if (editor.isDarkMode()) {
|
|
13378
13391
|
(0, roosterjs_content_model_dom_1.transformColor)(wrapper, true /*includeSelf*/, 'lightToDark', editor.getColorManager(), {
|
|
13379
|
-
tableBorders:
|
|
13392
|
+
tableBorders: true,
|
|
13380
13393
|
});
|
|
13381
13394
|
}
|
|
13382
13395
|
}
|
|
@@ -14492,6 +14505,8 @@ var findTableCellElement_1 = __webpack_require__(/*! ../../coreApi/setDOMSelecti
|
|
|
14492
14505
|
var isSingleImageInSelection_1 = __webpack_require__(/*! ./isSingleImageInSelection */ "./packages/roosterjs-content-model-core/lib/corePlugin/selection/isSingleImageInSelection.ts");
|
|
14493
14506
|
var normalizePos_1 = __webpack_require__(/*! ./normalizePos */ "./packages/roosterjs-content-model-core/lib/corePlugin/selection/normalizePos.ts");
|
|
14494
14507
|
var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
|
|
14508
|
+
var setTableCellsStyle_1 = __webpack_require__(/*! ../../coreApi/setDOMSelection/setTableCellsStyle */ "./packages/roosterjs-content-model-core/lib/coreApi/setDOMSelection/setTableCellsStyle.ts");
|
|
14509
|
+
var toggleCaret_1 = __webpack_require__(/*! ../../coreApi/setDOMSelection/toggleCaret */ "./packages/roosterjs-content-model-core/lib/coreApi/setDOMSelection/toggleCaret.ts");
|
|
14495
14510
|
var MouseLeftButton = 0;
|
|
14496
14511
|
var MouseRightButton = 2;
|
|
14497
14512
|
var Up = 'ArrowUp';
|
|
@@ -14517,6 +14532,7 @@ var SelectionPlugin = /** @class */ (function () {
|
|
|
14517
14532
|
this.logicalRootDisposer = null;
|
|
14518
14533
|
this.isSafari = false;
|
|
14519
14534
|
this.scrollTopCache = 0;
|
|
14535
|
+
this.isInsideSelection = false;
|
|
14520
14536
|
this.onMouseMove = function (event) {
|
|
14521
14537
|
var _a, _b, _c;
|
|
14522
14538
|
if (_this.editor && _this.state.tableSelection) {
|
|
@@ -14716,6 +14732,10 @@ var SelectionPlugin = /** @class */ (function () {
|
|
|
14716
14732
|
this.onKeyDown(this.editor, event.rawEvent);
|
|
14717
14733
|
break;
|
|
14718
14734
|
case 'contentChanged':
|
|
14735
|
+
if (event.source == roosterjs_content_model_dom_1.ChangeSource.Drop && this.isInsideSelection) {
|
|
14736
|
+
this.setDOMSelection(null /* DOMSelection */, null /* tableSelection */);
|
|
14737
|
+
this.isInsideSelection = false;
|
|
14738
|
+
}
|
|
14719
14739
|
this.state.tableSelection = null;
|
|
14720
14740
|
break;
|
|
14721
14741
|
case 'scroll':
|
|
@@ -14763,14 +14783,22 @@ var SelectionPlugin = /** @class */ (function () {
|
|
|
14763
14783
|
return;
|
|
14764
14784
|
}
|
|
14765
14785
|
// Table selection
|
|
14786
|
+
var target = rawEvent.target;
|
|
14787
|
+
var tableSelection = target
|
|
14788
|
+
? this.parseTableSelection(target, target, editor.getDOMHelper())
|
|
14789
|
+
: null;
|
|
14790
|
+
if ((selection === null || selection === void 0 ? void 0 : selection.type) == 'table' &&
|
|
14791
|
+
tableSelection &&
|
|
14792
|
+
this.isInsideTableSelection(selection, tableSelection) &&
|
|
14793
|
+
rawEvent.detail == 1) {
|
|
14794
|
+
this.isInsideSelection = true;
|
|
14795
|
+
this.setTableDragSelection(editor, rawEvent);
|
|
14796
|
+
return;
|
|
14797
|
+
}
|
|
14766
14798
|
if ((selection === null || selection === void 0 ? void 0 : selection.type) == 'table' && rawEvent.button == MouseLeftButton) {
|
|
14767
14799
|
this.setDOMSelection(null /*domSelection*/, null /*tableSelection*/);
|
|
14768
14800
|
}
|
|
14769
|
-
|
|
14770
|
-
var target = rawEvent.target;
|
|
14771
|
-
if (target &&
|
|
14772
|
-
rawEvent.button == MouseLeftButton &&
|
|
14773
|
-
(tableSelection = this.parseTableSelection(target, target, editor.getDOMHelper()))) {
|
|
14801
|
+
if (target && rawEvent.button == MouseLeftButton && tableSelection) {
|
|
14774
14802
|
this.state.tableSelection = tableSelection;
|
|
14775
14803
|
if (rawEvent.detail >= 3) {
|
|
14776
14804
|
var lastCo = (0, findCoordinate_1.findCoordinate)(tableSelection.parsedTable, rawEvent.target, editor.getDOMHelper());
|
|
@@ -14790,6 +14818,10 @@ var SelectionPlugin = /** @class */ (function () {
|
|
|
14790
14818
|
}
|
|
14791
14819
|
};
|
|
14792
14820
|
SelectionPlugin.prototype.onMouseUp = function () {
|
|
14821
|
+
if (this.isInsideSelection) {
|
|
14822
|
+
this.setDOMSelection(null /*domSelection*/, null /*tableSelection*/);
|
|
14823
|
+
this.isInsideSelection = false;
|
|
14824
|
+
}
|
|
14793
14825
|
this.detachMouseEvent();
|
|
14794
14826
|
};
|
|
14795
14827
|
SelectionPlugin.prototype.onKeyDown = function (editor, rawEvent) {
|
|
@@ -14984,6 +15016,30 @@ var SelectionPlugin = /** @class */ (function () {
|
|
|
14984
15016
|
}
|
|
14985
15017
|
}
|
|
14986
15018
|
};
|
|
15019
|
+
SelectionPlugin.prototype.isInsideTableSelection = function (prevSelection, tableSelection) {
|
|
15020
|
+
var selectedCell = tableSelection.firstCo;
|
|
15021
|
+
return (selectedCell.row >= prevSelection.firstRow &&
|
|
15022
|
+
selectedCell.row <= prevSelection.lastRow &&
|
|
15023
|
+
selectedCell.col >= prevSelection.firstColumn &&
|
|
15024
|
+
selectedCell.col <= prevSelection.lastColumn);
|
|
15025
|
+
};
|
|
15026
|
+
SelectionPlugin.prototype.setTableDragSelection = function (editor, rawEvent) {
|
|
15027
|
+
var doc = editor.getDocument();
|
|
15028
|
+
var cell = editor
|
|
15029
|
+
.getDOMHelper()
|
|
15030
|
+
.findClosestElementAncestor(rawEvent.target, 'td,th');
|
|
15031
|
+
if (cell) {
|
|
15032
|
+
// Hide the table cell selection styles (grey cell background applied by
|
|
15033
|
+
// setDOMSelection) and the native selection highlight so that only the
|
|
15034
|
+
// dragged content is visible while dragging. Also restore the caret which
|
|
15035
|
+
// is hidden while a table selection is active.
|
|
15036
|
+
editor.setEditorStyle(setTableCellsStyle_1.DOM_SELECTION_CSS_KEY, null /*cssRule*/);
|
|
15037
|
+
editor.setEditorStyle(toggleCaret_1.HIDE_CURSOR_CSS_KEY, null /*cssRule*/);
|
|
15038
|
+
var range = doc.createRange();
|
|
15039
|
+
range.selectNodeContents(cell);
|
|
15040
|
+
editor.getDOMHelper().setSelectionRange(range);
|
|
15041
|
+
}
|
|
15042
|
+
};
|
|
14987
15043
|
SelectionPlugin.prototype.getTextOffset = function (editor, range, td, isKeyUp) {
|
|
14988
15044
|
var doc = editor.getDocument();
|
|
14989
15045
|
var cursorRect = range
|
|
@@ -15664,6 +15720,7 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
|
15664
15720
|
exports.Editor = void 0;
|
|
15665
15721
|
var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.mjs");
|
|
15666
15722
|
var createEditorCore_1 = __webpack_require__(/*! ./core/createEditorCore */ "./packages/roosterjs-content-model-core/lib/editor/core/createEditorCore.ts");
|
|
15723
|
+
var devtoolsHook_1 = __webpack_require__(/*! ../utils/devtoolsHook */ "./packages/roosterjs-content-model-core/lib/utils/devtoolsHook.ts");
|
|
15667
15724
|
var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
|
|
15668
15725
|
/**
|
|
15669
15726
|
* The main editor class based on Content Model
|
|
@@ -15687,7 +15744,7 @@ var Editor = /** @class */ (function () {
|
|
|
15687
15744
|
if (_this.isDarkMode()) {
|
|
15688
15745
|
var colorHandler = _this.getColorManager();
|
|
15689
15746
|
(0, roosterjs_content_model_dom_1.transformColor)(result, true /*includeSelf*/, 'darkToLight', colorHandler, {
|
|
15690
|
-
tableBorders:
|
|
15747
|
+
tableBorders: true,
|
|
15691
15748
|
});
|
|
15692
15749
|
result.style.color = result.style.color || 'inherit';
|
|
15693
15750
|
result.style.backgroundColor = result.style.backgroundColor || 'inherit';
|
|
@@ -15698,6 +15755,7 @@ var Editor = /** @class */ (function () {
|
|
|
15698
15755
|
var initialModel = (_a = options.initialModel) !== null && _a !== void 0 ? _a : (0, roosterjs_content_model_dom_1.createEmptyModel)(this.core.format.defaultFormat);
|
|
15699
15756
|
this.core.api.setContentModel(this.core, initialModel, { ignoreSelection: true }, undefined /*onNodeCreated*/, true /*isInitializing*/);
|
|
15700
15757
|
this.core.plugins.forEach(function (plugin) { return plugin.initialize(_this); });
|
|
15758
|
+
(0, devtoolsHook_1.notifyDevToolsEditorCreated)(this, this.core);
|
|
15701
15759
|
}
|
|
15702
15760
|
/**
|
|
15703
15761
|
* Dispose this editor, dispose all plugins and custom data
|
|
@@ -15705,6 +15763,7 @@ var Editor = /** @class */ (function () {
|
|
|
15705
15763
|
Editor.prototype.dispose = function () {
|
|
15706
15764
|
var _a;
|
|
15707
15765
|
var core = this.getCore();
|
|
15766
|
+
(0, devtoolsHook_1.notifyDevToolsEditorDisposed)(this, core);
|
|
15708
15767
|
for (var i = core.plugins.length - 1; i >= 0; i--) {
|
|
15709
15768
|
var plugin = core.plugins[i];
|
|
15710
15769
|
try {
|
|
@@ -15889,7 +15948,7 @@ var Editor = /** @class */ (function () {
|
|
|
15889
15948
|
var core = this.getCore();
|
|
15890
15949
|
if (!!isDarkMode != core.lifecycle.isDarkMode) {
|
|
15891
15950
|
(0, roosterjs_content_model_dom_1.transformColor)(core.physicalRoot, false /*includeSelf*/, isDarkMode ? 'lightToDark' : 'darkToLight', core.darkColorHandler, {
|
|
15892
|
-
tableBorders:
|
|
15951
|
+
tableBorders: true,
|
|
15893
15952
|
}, core.format.defaultFormat.textColor);
|
|
15894
15953
|
core.lifecycle.isDarkMode = !!isDarkMode;
|
|
15895
15954
|
core.api.triggerEvent(core, {
|
|
@@ -16338,10 +16397,11 @@ function createEditorCore(contentDiv, options) {
|
|
|
16338
16397
|
}
|
|
16339
16398
|
exports.createEditorCore = createEditorCore;
|
|
16340
16399
|
function createEditorEnvironment(contentDiv, options) {
|
|
16341
|
-
var _a, _b
|
|
16342
|
-
var
|
|
16343
|
-
var
|
|
16344
|
-
var
|
|
16400
|
+
var _a, _b;
|
|
16401
|
+
var defaultView = contentDiv.ownerDocument.defaultView;
|
|
16402
|
+
var navigator = defaultView === null || defaultView === void 0 ? void 0 : defaultView.navigator;
|
|
16403
|
+
var userAgent = (_a = navigator === null || navigator === void 0 ? void 0 : navigator.userAgent) !== null && _a !== void 0 ? _a : '';
|
|
16404
|
+
var appVersion = (_b = navigator === null || navigator === void 0 ? void 0 : navigator.appVersion) !== null && _b !== void 0 ? _b : '';
|
|
16345
16405
|
return {
|
|
16346
16406
|
document: contentDiv.ownerDocument,
|
|
16347
16407
|
domToModelSettings: (0, createEditorDefaultSettings_1.createDomToModelSettings)(options),
|
|
@@ -16353,6 +16413,7 @@ function createEditorEnvironment(contentDiv, options) {
|
|
|
16353
16413
|
userAgent.indexOf('Chrome') < 0 &&
|
|
16354
16414
|
userAgent.indexOf('Android') < 0,
|
|
16355
16415
|
isMobileOrTablet: getIsMobileOrTablet(userAgent),
|
|
16416
|
+
isTouchSupported: !!defaultView && ('ontouchstart' in defaultView || !!(navigator === null || navigator === void 0 ? void 0 : navigator.maxTouchPoints)),
|
|
16356
16417
|
};
|
|
16357
16418
|
}
|
|
16358
16419
|
function getIsMobileOrTablet(userAgent) {
|
|
@@ -16452,7 +16513,7 @@ exports.createModelToDomSettings = createModelToDomSettings;
|
|
|
16452
16513
|
"use strict";
|
|
16453
16514
|
|
|
16454
16515
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
16455
|
-
exports.getContentForCopy = exports.paste = exports.redo = exports.undo = exports.exportContent = exports.createModelFromHtml = exports.Editor = void 0;
|
|
16516
|
+
exports.RoosterJsDevToolsHookVersion = exports.getContentForCopy = exports.paste = exports.redo = exports.undo = exports.exportContent = exports.createModelFromHtml = exports.Editor = void 0;
|
|
16456
16517
|
// Editor
|
|
16457
16518
|
var Editor_1 = __webpack_require__(/*! ./editor/Editor */ "./packages/roosterjs-content-model-core/lib/editor/Editor.ts");
|
|
16458
16519
|
Object.defineProperty(exports, "Editor", ({ enumerable: true, get: function () { return Editor_1.Editor; } }));
|
|
@@ -16467,9 +16528,12 @@ var redo_1 = __webpack_require__(/*! ./command/redo/redo */ "./packages/roosterj
|
|
|
16467
16528
|
Object.defineProperty(exports, "redo", ({ enumerable: true, get: function () { return redo_1.redo; } }));
|
|
16468
16529
|
var paste_1 = __webpack_require__(/*! ./command/paste/paste */ "./packages/roosterjs-content-model-core/lib/command/paste/paste.ts");
|
|
16469
16530
|
Object.defineProperty(exports, "paste", ({ enumerable: true, get: function () { return paste_1.paste; } }));
|
|
16470
|
-
//Editor copy helper
|
|
16531
|
+
// Editor copy helper
|
|
16471
16532
|
var getContentForCopy_1 = __webpack_require__(/*! ./command/cutCopy/getContentForCopy */ "./packages/roosterjs-content-model-core/lib/command/cutCopy/getContentForCopy.ts");
|
|
16472
16533
|
Object.defineProperty(exports, "getContentForCopy", ({ enumerable: true, get: function () { return getContentForCopy_1.getContentForCopy; } }));
|
|
16534
|
+
// Editor devtools
|
|
16535
|
+
var devtoolsHook_1 = __webpack_require__(/*! ./utils/devtoolsHook */ "./packages/roosterjs-content-model-core/lib/utils/devtoolsHook.ts");
|
|
16536
|
+
Object.defineProperty(exports, "RoosterJsDevToolsHookVersion", ({ enumerable: true, get: function () { return devtoolsHook_1.RoosterJsDevToolsHookVersion; } }));
|
|
16473
16537
|
|
|
16474
16538
|
|
|
16475
16539
|
/***/ },
|
|
@@ -16845,6 +16909,105 @@ function createAriaLiveElement(document) {
|
|
|
16845
16909
|
exports.createAriaLiveElement = createAriaLiveElement;
|
|
16846
16910
|
|
|
16847
16911
|
|
|
16912
|
+
/***/ },
|
|
16913
|
+
|
|
16914
|
+
/***/ "./packages/roosterjs-content-model-core/lib/utils/devtoolsHook.ts"
|
|
16915
|
+
/*!*************************************************************************!*\
|
|
16916
|
+
!*** ./packages/roosterjs-content-model-core/lib/utils/devtoolsHook.ts ***!
|
|
16917
|
+
\*************************************************************************/
|
|
16918
|
+
(__unused_webpack_module, exports) {
|
|
16919
|
+
|
|
16920
|
+
"use strict";
|
|
16921
|
+
|
|
16922
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
16923
|
+
exports.notifyDevToolsPluginEvent = exports.notifyDevToolsEditorDisposed = exports.notifyDevToolsEditorCreated = exports.RoosterJsDevToolsHookVersion = void 0;
|
|
16924
|
+
/**
|
|
16925
|
+
* The current version of the RoosterJS DevTools hook contract (see
|
|
16926
|
+
* {@link RoosterJsDevToolsHook}). The editor stamps this onto the installed hook so a developer
|
|
16927
|
+
* tool can adapt to the editor's capabilities. Bump this whenever the shape of the contract changes
|
|
16928
|
+
* in a way tools may need to detect.
|
|
16929
|
+
*
|
|
16930
|
+
* History:
|
|
16931
|
+
* - 1: onEditorCreated, onEditorDisposed, onPluginEvent
|
|
16932
|
+
*/
|
|
16933
|
+
exports.RoosterJsDevToolsHookVersion = 1;
|
|
16934
|
+
// Maps an editor core back to its IEditor wrapper, so plugin events (which only carry the core)
|
|
16935
|
+
// can be attributed to the right editor when forwarded to developer tools.
|
|
16936
|
+
var coreToEditor = new WeakMap();
|
|
16937
|
+
/**
|
|
16938
|
+
* @internal
|
|
16939
|
+
* Notify developer tools that an editor has been created. Failures are swallowed so developer
|
|
16940
|
+
* tools can never break the editor.
|
|
16941
|
+
* @param editor The editor that was created
|
|
16942
|
+
* @param core The editor core, used to attribute later plugin events to this editor
|
|
16943
|
+
*/
|
|
16944
|
+
function notifyDevToolsEditorCreated(editor, core) {
|
|
16945
|
+
safeCall(function () {
|
|
16946
|
+
var _a, _b;
|
|
16947
|
+
coreToEditor.set(core, editor);
|
|
16948
|
+
var win = editor.getDocument().defaultView;
|
|
16949
|
+
if (win) {
|
|
16950
|
+
var editors = (_a = win.__ROOSTERJS_DEVTOOLS_EDITORS__) !== null && _a !== void 0 ? _a : [];
|
|
16951
|
+
editors.push(editor);
|
|
16952
|
+
win.__ROOSTERJS_DEVTOOLS_EDITORS__ = editors;
|
|
16953
|
+
var hook = win.__ROOSTERJS_DEVTOOLS_HOOK__;
|
|
16954
|
+
if (hook) {
|
|
16955
|
+
hook.version = exports.RoosterJsDevToolsHookVersion;
|
|
16956
|
+
(_b = hook.onEditorCreated) === null || _b === void 0 ? void 0 : _b.call(hook, editor);
|
|
16957
|
+
}
|
|
16958
|
+
}
|
|
16959
|
+
});
|
|
16960
|
+
}
|
|
16961
|
+
exports.notifyDevToolsEditorCreated = notifyDevToolsEditorCreated;
|
|
16962
|
+
/**
|
|
16963
|
+
* @internal
|
|
16964
|
+
* Notify developer tools that an editor is about to be disposed. Failures are swallowed so
|
|
16965
|
+
* developer tools can never break the editor.
|
|
16966
|
+
* @param editor The editor that is being disposed
|
|
16967
|
+
* @param core The editor core to stop tracking
|
|
16968
|
+
*/
|
|
16969
|
+
function notifyDevToolsEditorDisposed(editor, core) {
|
|
16970
|
+
safeCall(function () {
|
|
16971
|
+
var _a, _b;
|
|
16972
|
+
coreToEditor.delete(core);
|
|
16973
|
+
var win = editor.getDocument().defaultView;
|
|
16974
|
+
if (win) {
|
|
16975
|
+
var editors = win.__ROOSTERJS_DEVTOOLS_EDITORS__;
|
|
16976
|
+
var index = editors ? editors.indexOf(editor) : -1;
|
|
16977
|
+
if (editors && index >= 0) {
|
|
16978
|
+
editors.splice(index, 1);
|
|
16979
|
+
}
|
|
16980
|
+
(_b = (_a = win.__ROOSTERJS_DEVTOOLS_HOOK__) === null || _a === void 0 ? void 0 : _a.onEditorDisposed) === null || _b === void 0 ? void 0 : _b.call(_a, editor);
|
|
16981
|
+
}
|
|
16982
|
+
});
|
|
16983
|
+
}
|
|
16984
|
+
exports.notifyDevToolsEditorDisposed = notifyDevToolsEditorDisposed;
|
|
16985
|
+
/**
|
|
16986
|
+
* @internal
|
|
16987
|
+
* Forward a plugin event to developer tools, if a hook is installed. Failures are swallowed so
|
|
16988
|
+
* developer tools can never break the editor.
|
|
16989
|
+
* @param core The editor core that dispatched the event
|
|
16990
|
+
* @param event The plugin event being dispatched
|
|
16991
|
+
*/
|
|
16992
|
+
function notifyDevToolsPluginEvent(core, event) {
|
|
16993
|
+
safeCall(function () {
|
|
16994
|
+
var _a, _b;
|
|
16995
|
+
var editor = coreToEditor.get(core);
|
|
16996
|
+
var win = editor === null || editor === void 0 ? void 0 : editor.getDocument().defaultView;
|
|
16997
|
+
if (editor && win) {
|
|
16998
|
+
(_b = (_a = win.__ROOSTERJS_DEVTOOLS_HOOK__) === null || _a === void 0 ? void 0 : _a.onPluginEvent) === null || _b === void 0 ? void 0 : _b.call(_a, editor, event);
|
|
16999
|
+
}
|
|
17000
|
+
});
|
|
17001
|
+
}
|
|
17002
|
+
exports.notifyDevToolsPluginEvent = notifyDevToolsPluginEvent;
|
|
17003
|
+
function safeCall(callback) {
|
|
17004
|
+
try {
|
|
17005
|
+
callback();
|
|
17006
|
+
}
|
|
17007
|
+
catch (_a) { }
|
|
17008
|
+
}
|
|
17009
|
+
|
|
17010
|
+
|
|
16848
17011
|
/***/ },
|
|
16849
17012
|
|
|
16850
17013
|
/***/ "./packages/roosterjs-content-model-core/lib/utils/domCreator.ts"
|
|
@@ -17019,6 +17182,9 @@ exports.defaultHTMLStyleMap = {
|
|
|
17019
17182
|
marginBottom: '1em',
|
|
17020
17183
|
},
|
|
17021
17184
|
dt: blockElement,
|
|
17185
|
+
del: {
|
|
17186
|
+
textDecoration: 'line-through',
|
|
17187
|
+
},
|
|
17022
17188
|
em: {
|
|
17023
17189
|
fontStyle: 'italic',
|
|
17024
17190
|
},
|
|
@@ -17272,6 +17438,10 @@ exports.ChangeSource = {
|
|
|
17272
17438
|
* Content changed by replace
|
|
17273
17439
|
*/
|
|
17274
17440
|
Replace: 'Replace',
|
|
17441
|
+
/**
|
|
17442
|
+
* Content changed by dragging content out the editor
|
|
17443
|
+
*/
|
|
17444
|
+
DragOutOfEditor: 'DragOutOfEditor',
|
|
17275
17445
|
};
|
|
17276
17446
|
|
|
17277
17447
|
|
|
@@ -17760,6 +17930,7 @@ exports.defaultProcessorMap = {
|
|
|
17760
17930
|
h5: headingProcessor_1.headingProcessor,
|
|
17761
17931
|
h6: headingProcessor_1.headingProcessor,
|
|
17762
17932
|
hr: hrProcessor_1.hrProcessor,
|
|
17933
|
+
label: knownElementProcessor_1.knownElementProcessor,
|
|
17763
17934
|
li: listItemProcessor_1.listItemProcessor,
|
|
17764
17935
|
ol: listProcessor_1.listProcessor,
|
|
17765
17936
|
p: pProcessor_1.pProcessor,
|
|
@@ -19783,6 +19954,53 @@ function cacheGetEventData(event, key, getter) {
|
|
|
19783
19954
|
exports.cacheGetEventData = cacheGetEventData;
|
|
19784
19955
|
|
|
19785
19956
|
|
|
19957
|
+
/***/ },
|
|
19958
|
+
|
|
19959
|
+
/***/ "./packages/roosterjs-content-model-dom/lib/domUtils/event/createPasteFragment.ts"
|
|
19960
|
+
/*!****************************************************************************************!*\
|
|
19961
|
+
!*** ./packages/roosterjs-content-model-dom/lib/domUtils/event/createPasteFragment.ts ***!
|
|
19962
|
+
\****************************************************************************************/
|
|
19963
|
+
(__unused_webpack_module, exports, __webpack_require__) {
|
|
19964
|
+
|
|
19965
|
+
"use strict";
|
|
19966
|
+
|
|
19967
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
19968
|
+
exports.createPasteFragment = void 0;
|
|
19969
|
+
var moveChildNodes_1 = __webpack_require__(/*! ../moveChildNodes */ "./packages/roosterjs-content-model-dom/lib/domUtils/moveChildNodes.ts");
|
|
19970
|
+
var textToFragment_1 = __webpack_require__(/*! ../textToFragment */ "./packages/roosterjs-content-model-dom/lib/domUtils/textToFragment.ts");
|
|
19971
|
+
/**
|
|
19972
|
+
* Create a document fragment from clipboard content using the specified paste type
|
|
19973
|
+
* @param document The document used to create the fragment
|
|
19974
|
+
* @param clipboardData The clipboard data to convert
|
|
19975
|
+
* @param pasteType The paste type that determines which clipboard content to use
|
|
19976
|
+
* @param root The optional root element containing the parsed HTML content
|
|
19977
|
+
* @returns A document fragment containing the content to paste
|
|
19978
|
+
*/
|
|
19979
|
+
function createPasteFragment(document, clipboardData, pasteType, root) {
|
|
19980
|
+
if (!clipboardData.text && pasteType === 'asPlainText' && root) {
|
|
19981
|
+
clipboardData.text = root.textContent || clipboardData.text;
|
|
19982
|
+
}
|
|
19983
|
+
var imageDataUri = clipboardData.imageDataUri, text = clipboardData.text;
|
|
19984
|
+
var fragment = document.createDocumentFragment();
|
|
19985
|
+
if ((pasteType == 'asImage' && imageDataUri) ||
|
|
19986
|
+
(pasteType != 'asPlainText' && !text && imageDataUri)) {
|
|
19987
|
+
// Paste image
|
|
19988
|
+
var img = document.createElement('img');
|
|
19989
|
+
img.style.maxWidth = '100%';
|
|
19990
|
+
img.src = imageDataUri;
|
|
19991
|
+
fragment.appendChild(img);
|
|
19992
|
+
}
|
|
19993
|
+
else if (pasteType != 'asPlainText' && root) {
|
|
19994
|
+
(0, moveChildNodes_1.moveChildNodes)(fragment, root);
|
|
19995
|
+
}
|
|
19996
|
+
else if (text) {
|
|
19997
|
+
return (0, textToFragment_1.textToFragment)(text, document);
|
|
19998
|
+
}
|
|
19999
|
+
return fragment;
|
|
20000
|
+
}
|
|
20001
|
+
exports.createPasteFragment = createPasteFragment;
|
|
20002
|
+
|
|
20003
|
+
|
|
19786
20004
|
/***/ },
|
|
19787
20005
|
|
|
19788
20006
|
/***/ "./packages/roosterjs-content-model-dom/lib/domUtils/event/eventUtils.ts"
|
|
@@ -19959,14 +20177,14 @@ function getNodePositionFromEvent(doc, domHelper, x, y) {
|
|
|
19959
20177
|
// Firefox, Chrome, Edge, Safari, Opera
|
|
19960
20178
|
var pos = doc.caretPositionFromPoint(x, y);
|
|
19961
20179
|
if (pos && domHelper.isNodeInEditor(pos.offsetNode)) {
|
|
19962
|
-
return
|
|
20180
|
+
return normalizePosition(pos.offsetNode, pos.offset);
|
|
19963
20181
|
}
|
|
19964
20182
|
}
|
|
19965
20183
|
if (doc.caretRangeFromPoint) {
|
|
19966
20184
|
// Safari
|
|
19967
20185
|
var range = doc.caretRangeFromPoint(x, y);
|
|
19968
20186
|
if (range && domHelper.isNodeInEditor(range.startContainer)) {
|
|
19969
|
-
return
|
|
20187
|
+
return normalizePosition(range.startContainer, range.startOffset);
|
|
19970
20188
|
}
|
|
19971
20189
|
}
|
|
19972
20190
|
if (doc.elementFromPoint) {
|
|
@@ -19979,6 +20197,14 @@ function getNodePositionFromEvent(doc, domHelper, x, y) {
|
|
|
19979
20197
|
return null;
|
|
19980
20198
|
}
|
|
19981
20199
|
exports.getNodePositionFromEvent = getNodePositionFromEvent;
|
|
20200
|
+
function normalizePosition(node, offset) {
|
|
20201
|
+
var _a;
|
|
20202
|
+
// Safari hit-testing in tableMoverTest returns offset 1 after the lone BR of an empty block.
|
|
20203
|
+
var normalizedOffset = offset == 1 && node.childNodes.length == 1 && ((_a = node.firstChild) === null || _a === void 0 ? void 0 : _a.nodeName) == 'BR'
|
|
20204
|
+
? 0
|
|
20205
|
+
: offset;
|
|
20206
|
+
return { node: node, offset: normalizedOffset };
|
|
20207
|
+
}
|
|
19982
20208
|
|
|
19983
20209
|
|
|
19984
20210
|
/***/ },
|
|
@@ -21281,6 +21507,78 @@ function parseTableCells(table) {
|
|
|
21281
21507
|
exports.parseTableCells = parseTableCells;
|
|
21282
21508
|
|
|
21283
21509
|
|
|
21510
|
+
/***/ },
|
|
21511
|
+
|
|
21512
|
+
/***/ "./packages/roosterjs-content-model-dom/lib/domUtils/textToFragment.ts"
|
|
21513
|
+
/*!*****************************************************************************!*\
|
|
21514
|
+
!*** ./packages/roosterjs-content-model-dom/lib/domUtils/textToFragment.ts ***!
|
|
21515
|
+
\*****************************************************************************/
|
|
21516
|
+
(__unused_webpack_module, exports, __webpack_require__) {
|
|
21517
|
+
|
|
21518
|
+
"use strict";
|
|
21519
|
+
|
|
21520
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
21521
|
+
exports.textToFragment = void 0;
|
|
21522
|
+
var wrap_1 = __webpack_require__(/*! ./wrap */ "./packages/roosterjs-content-model-dom/lib/domUtils/wrap.ts");
|
|
21523
|
+
var NBSP_HTML = '\u00A0';
|
|
21524
|
+
var ENSP_HTML = '\u2002';
|
|
21525
|
+
var TAB_SPACES = 6;
|
|
21526
|
+
/**
|
|
21527
|
+
* @internal
|
|
21528
|
+
*/
|
|
21529
|
+
function textToFragment(text, doc) {
|
|
21530
|
+
var fragment = doc.createDocumentFragment();
|
|
21531
|
+
text.split('\n').forEach(function (line, index, lines) {
|
|
21532
|
+
line = line
|
|
21533
|
+
.replace(/^ /g, NBSP_HTML)
|
|
21534
|
+
.replace(/ $/g, NBSP_HTML)
|
|
21535
|
+
.replace(/\r/g, '')
|
|
21536
|
+
.replace(/ {2}/g, ' ' + NBSP_HTML);
|
|
21537
|
+
if (line.includes('\t')) {
|
|
21538
|
+
line = transformTabCharacters(line);
|
|
21539
|
+
}
|
|
21540
|
+
var textNode = doc.createTextNode(line);
|
|
21541
|
+
// There are 3 scenarios:
|
|
21542
|
+
// 1. Single line: Paste as it is
|
|
21543
|
+
// 2. Two lines: Add <br> between the lines
|
|
21544
|
+
// 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
|
|
21545
|
+
if (lines.length == 2 && index == 0) {
|
|
21546
|
+
// 1 of 2 lines scenario, add BR
|
|
21547
|
+
fragment.appendChild(textNode);
|
|
21548
|
+
fragment.appendChild(doc.createElement('br'));
|
|
21549
|
+
}
|
|
21550
|
+
else if (index > 0 && index < lines.length - 1) {
|
|
21551
|
+
// Middle line of >=3 lines scenario, wrap with DIV
|
|
21552
|
+
fragment.appendChild((0, wrap_1.wrap)(doc, line == '' ? doc.createElement('br') : textNode, 'div'));
|
|
21553
|
+
}
|
|
21554
|
+
else {
|
|
21555
|
+
// All others, paste as it is
|
|
21556
|
+
fragment.appendChild(textNode);
|
|
21557
|
+
}
|
|
21558
|
+
});
|
|
21559
|
+
return fragment;
|
|
21560
|
+
}
|
|
21561
|
+
exports.textToFragment = textToFragment;
|
|
21562
|
+
/**
|
|
21563
|
+
* Transform \t characters into EN SPACE characters
|
|
21564
|
+
* @param input string NOT containing \n characters
|
|
21565
|
+
* @example t("\thello", 2) => "    hello"
|
|
21566
|
+
*/
|
|
21567
|
+
function transformTabCharacters(input, initialOffset) {
|
|
21568
|
+
if (initialOffset === void 0) { initialOffset = 0; }
|
|
21569
|
+
var line = input;
|
|
21570
|
+
var tIndex;
|
|
21571
|
+
while ((tIndex = line.indexOf('\t')) != -1) {
|
|
21572
|
+
var lineBefore = line.slice(0, tIndex);
|
|
21573
|
+
var lineAfter = line.slice(tIndex + 1);
|
|
21574
|
+
var tabCount = TAB_SPACES - ((lineBefore.length + initialOffset) % TAB_SPACES);
|
|
21575
|
+
var tabStr = Array(tabCount).fill(ENSP_HTML).join('');
|
|
21576
|
+
line = lineBefore + tabStr + lineAfter;
|
|
21577
|
+
}
|
|
21578
|
+
return line;
|
|
21579
|
+
}
|
|
21580
|
+
|
|
21581
|
+
|
|
21284
21582
|
/***/ },
|
|
21285
21583
|
|
|
21286
21584
|
/***/ "./packages/roosterjs-content-model-dom/lib/domUtils/toArray.ts"
|
|
@@ -21873,41 +22171,35 @@ var DEFAULT_COLOR = '#000000';
|
|
|
21873
22171
|
*/
|
|
21874
22172
|
exports.borderColorFormatHandler = {
|
|
21875
22173
|
parse: function (format, element, context) {
|
|
21876
|
-
|
|
21877
|
-
|
|
21878
|
-
|
|
21879
|
-
|
|
21880
|
-
|
|
21881
|
-
|
|
21882
|
-
var
|
|
21883
|
-
|
|
21884
|
-
|
|
21885
|
-
|
|
21886
|
-
|
|
21887
|
-
|
|
21888
|
-
|
|
21889
|
-
|
|
21890
|
-
}
|
|
21891
|
-
});
|
|
21892
|
-
}
|
|
22174
|
+
borderKeys_1.BorderKeys.forEach(function (key) {
|
|
22175
|
+
var width = element.style.getPropertyValue(BorderWidthKeyMap[key]);
|
|
22176
|
+
var style = element.style.getPropertyValue(BorderStyleKeyMap[key]);
|
|
22177
|
+
var color = (0, color_1.retrieveElementColor)(element, key);
|
|
22178
|
+
var borderColor = color == 'initial' ? DEFAULT_COLOR : color;
|
|
22179
|
+
if (borderColor) {
|
|
22180
|
+
var lightModeColor = (0, color_1.getLightModeColor)(borderColor, !!context.isDarkMode, context.darkColorHandler);
|
|
22181
|
+
format[key] = (0, borderValues_1.combineBorderValue)({
|
|
22182
|
+
width: width,
|
|
22183
|
+
style: style,
|
|
22184
|
+
color: lightModeColor,
|
|
22185
|
+
});
|
|
22186
|
+
}
|
|
22187
|
+
});
|
|
21893
22188
|
},
|
|
21894
22189
|
apply: function (format, element, context) {
|
|
21895
|
-
|
|
21896
|
-
|
|
21897
|
-
|
|
21898
|
-
var
|
|
21899
|
-
|
|
21900
|
-
|
|
21901
|
-
var
|
|
21902
|
-
if (
|
|
21903
|
-
|
|
21904
|
-
if (transformedColor) {
|
|
21905
|
-
element.style.setProperty(borderColorProperty, transformedColor);
|
|
21906
|
-
}
|
|
22190
|
+
borderKeys_1.BorderKeys.forEach(function (key) {
|
|
22191
|
+
var value = format[key];
|
|
22192
|
+
if (value) {
|
|
22193
|
+
var borderValues = (0, borderValues_1.extractBorderValues)(value);
|
|
22194
|
+
var borderColorProperty = borderKeys_1.BorderColorKeyMap[key];
|
|
22195
|
+
if (borderValues.color) {
|
|
22196
|
+
var transformedColor = (0, color_1.adaptColor)(element, borderValues.color, 'border', !!context.isDarkMode, context.darkColorHandler);
|
|
22197
|
+
if (transformedColor) {
|
|
22198
|
+
element.style.setProperty(borderColorProperty, transformedColor);
|
|
21907
22199
|
}
|
|
21908
22200
|
}
|
|
21909
|
-
}
|
|
21910
|
-
}
|
|
22201
|
+
}
|
|
22202
|
+
});
|
|
21911
22203
|
},
|
|
21912
22204
|
};
|
|
21913
22205
|
|
|
@@ -23866,8 +24158,8 @@ exports.shouldSetValue = shouldSetValue;
|
|
|
23866
24158
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
23867
24159
|
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
24160
|
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;
|
|
24161
|
+
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;
|
|
24162
|
+
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
24163
|
var domToContentModel_1 = __webpack_require__(/*! ./domToModel/domToContentModel */ "./packages/roosterjs-content-model-dom/lib/domToModel/domToContentModel.ts");
|
|
23872
24164
|
Object.defineProperty(exports, "domToContentModel", ({ enumerable: true, get: function () { return domToContentModel_1.domToContentModel; } }));
|
|
23873
24165
|
var contentModelToDom_1 = __webpack_require__(/*! ./modelToDom/contentModelToDom */ "./packages/roosterjs-content-model-dom/lib/modelToDom/contentModelToDom.ts");
|
|
@@ -24067,6 +24359,8 @@ var normalizeFontFamily_1 = __webpack_require__(/*! ./domUtils/style/normalizeFo
|
|
|
24067
24359
|
Object.defineProperty(exports, "normalizeFontFamily", ({ enumerable: true, get: function () { return normalizeFontFamily_1.normalizeFontFamily; } }));
|
|
24068
24360
|
var extractClipboardItems_1 = __webpack_require__(/*! ./domUtils/event/extractClipboardItems */ "./packages/roosterjs-content-model-dom/lib/domUtils/event/extractClipboardItems.ts");
|
|
24069
24361
|
Object.defineProperty(exports, "extractClipboardItems", ({ enumerable: true, get: function () { return extractClipboardItems_1.extractClipboardItems; } }));
|
|
24362
|
+
var createPasteFragment_1 = __webpack_require__(/*! ./domUtils/event/createPasteFragment */ "./packages/roosterjs-content-model-dom/lib/domUtils/event/createPasteFragment.ts");
|
|
24363
|
+
Object.defineProperty(exports, "createPasteFragment", ({ enumerable: true, get: function () { return createPasteFragment_1.createPasteFragment; } }));
|
|
24070
24364
|
var cacheGetEventData_1 = __webpack_require__(/*! ./domUtils/event/cacheGetEventData */ "./packages/roosterjs-content-model-dom/lib/domUtils/event/cacheGetEventData.ts");
|
|
24071
24365
|
Object.defineProperty(exports, "cacheGetEventData", ({ enumerable: true, get: function () { return cacheGetEventData_1.cacheGetEventData; } }));
|
|
24072
24366
|
var paragraphMarker_1 = __webpack_require__(/*! ./domUtils/hiddenProperties/paragraphMarker */ "./packages/roosterjs-content-model-dom/lib/domUtils/hiddenProperties/paragraphMarker.ts");
|
|
@@ -25808,12 +26102,102 @@ function applyTableFormat(table, newFormat, keepCellShade) {
|
|
|
25808
26102
|
var effectiveMetadata = (0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)({}, DEFAULT_FORMAT), format), newFormat);
|
|
25809
26103
|
var metaOverrides = updateOverrides(rows, !keepCellShade);
|
|
25810
26104
|
formatCells(rows, effectiveMetadata, metaOverrides);
|
|
26105
|
+
if ((format === null || format === void 0 ? void 0 : format.hasFirstColumn) &&
|
|
26106
|
+
(!effectiveMetadata.hasFirstColumn || (newFormat === null || newFormat === void 0 ? void 0 : newFormat.firstColumnCustomStyles) !== undefined)) {
|
|
26107
|
+
clearFirstColumnTextFormat(rows, format.firstColumnCustomStyles);
|
|
26108
|
+
}
|
|
26109
|
+
if ((format === null || format === void 0 ? void 0 : format.hasHeaderRow) &&
|
|
26110
|
+
(!effectiveMetadata.hasHeaderRow || (newFormat === null || newFormat === void 0 ? void 0 : newFormat.headerRowCustomStyles) !== undefined)) {
|
|
26111
|
+
clearHeaderRowTextFormat(rows, format.headerRowCustomStyles);
|
|
26112
|
+
}
|
|
25811
26113
|
setFirstColumnFormatBorders(rows, effectiveMetadata);
|
|
25812
26114
|
setHeaderRowFormat(rows, effectiveMetadata, metaOverrides);
|
|
25813
26115
|
return effectiveMetadata;
|
|
25814
26116
|
});
|
|
25815
26117
|
}
|
|
25816
26118
|
exports.applyTableFormat = applyTableFormat;
|
|
26119
|
+
function clearFirstColumnTextFormat(rows, customStyles) {
|
|
26120
|
+
var _a;
|
|
26121
|
+
var fontWeight = (_a = customStyles === null || customStyles === void 0 ? void 0 : customStyles.fontWeight) !== null && _a !== void 0 ? _a : 'bold';
|
|
26122
|
+
rows.forEach(function (row) {
|
|
26123
|
+
var e_1, _a, e_2, _b;
|
|
26124
|
+
var cell = row.cells[0] && (0, mutate_1.mutateBlock)(row.cells[0]);
|
|
26125
|
+
if (cell) {
|
|
26126
|
+
clearStyleIfMatch(cell.format, 'fontWeight', fontWeight);
|
|
26127
|
+
clearStyleIfMatch(cell.format, 'textAlign', customStyles === null || customStyles === void 0 ? void 0 : customStyles.textAlign);
|
|
26128
|
+
try {
|
|
26129
|
+
for (var _c = (0, tslib_1.__values)(cell.blocks), _d = _c.next(); !_d.done; _d = _c.next()) {
|
|
26130
|
+
var block = _d.value;
|
|
26131
|
+
if (block.blockType == 'Paragraph') {
|
|
26132
|
+
var mutateParagraph = (0, mutate_1.mutateBlock)(block);
|
|
26133
|
+
try {
|
|
26134
|
+
for (var _e = (e_2 = void 0, (0, tslib_1.__values)(mutateParagraph.segments)), _f = _e.next(); !_f.done; _f = _e.next()) {
|
|
26135
|
+
var cellSegment = _f.value;
|
|
26136
|
+
clearStyleIfMatch(cellSegment.format, 'fontWeight', fontWeight);
|
|
26137
|
+
clearStyleIfMatch(cellSegment.format, 'italic', customStyles === null || customStyles === void 0 ? void 0 : customStyles.italic);
|
|
26138
|
+
}
|
|
26139
|
+
}
|
|
26140
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
26141
|
+
finally {
|
|
26142
|
+
try {
|
|
26143
|
+
if (_f && !_f.done && (_b = _e.return)) _b.call(_e);
|
|
26144
|
+
}
|
|
26145
|
+
finally { if (e_2) throw e_2.error; }
|
|
26146
|
+
}
|
|
26147
|
+
clearStyleIfMatch(block.format, 'textAlign', customStyles === null || customStyles === void 0 ? void 0 : customStyles.textAlign);
|
|
26148
|
+
}
|
|
26149
|
+
}
|
|
26150
|
+
}
|
|
26151
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
26152
|
+
finally {
|
|
26153
|
+
try {
|
|
26154
|
+
if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
|
|
26155
|
+
}
|
|
26156
|
+
finally { if (e_1) throw e_1.error; }
|
|
26157
|
+
}
|
|
26158
|
+
}
|
|
26159
|
+
});
|
|
26160
|
+
}
|
|
26161
|
+
function clearHeaderRowTextFormat(rows, customStyles) {
|
|
26162
|
+
var _a, _b;
|
|
26163
|
+
var fontWeight = (_a = customStyles === null || customStyles === void 0 ? void 0 : customStyles.fontWeight) !== null && _a !== void 0 ? _a : 'bold';
|
|
26164
|
+
(_b = rows[0]) === null || _b === void 0 ? void 0 : _b.cells.forEach(function (readonlyCell) {
|
|
26165
|
+
var e_3, _a, e_4, _b;
|
|
26166
|
+
var cell = (0, mutate_1.mutateBlock)(readonlyCell);
|
|
26167
|
+
clearStyleIfMatch(cell.format, 'fontWeight', fontWeight);
|
|
26168
|
+
clearStyleIfMatch(cell.format, 'textAlign', customStyles === null || customStyles === void 0 ? void 0 : customStyles.textAlign);
|
|
26169
|
+
try {
|
|
26170
|
+
for (var _c = (0, tslib_1.__values)(cell.blocks), _d = _c.next(); !_d.done; _d = _c.next()) {
|
|
26171
|
+
var block = _d.value;
|
|
26172
|
+
if (block.blockType == 'Paragraph') {
|
|
26173
|
+
var mutateParagraph = (0, mutate_1.mutateBlock)(block);
|
|
26174
|
+
try {
|
|
26175
|
+
for (var _e = (e_4 = void 0, (0, tslib_1.__values)(mutateParagraph.segments)), _f = _e.next(); !_f.done; _f = _e.next()) {
|
|
26176
|
+
var cellSegment = _f.value;
|
|
26177
|
+
clearStyleIfMatch(cellSegment.format, 'fontWeight', fontWeight);
|
|
26178
|
+
clearStyleIfMatch(cellSegment.format, 'italic', customStyles === null || customStyles === void 0 ? void 0 : customStyles.italic);
|
|
26179
|
+
}
|
|
26180
|
+
}
|
|
26181
|
+
catch (e_4_1) { e_4 = { error: e_4_1 }; }
|
|
26182
|
+
finally {
|
|
26183
|
+
try {
|
|
26184
|
+
if (_f && !_f.done && (_b = _e.return)) _b.call(_e);
|
|
26185
|
+
}
|
|
26186
|
+
finally { if (e_4) throw e_4.error; }
|
|
26187
|
+
}
|
|
26188
|
+
clearStyleIfMatch(block.format, 'textAlign', customStyles === null || customStyles === void 0 ? void 0 : customStyles.textAlign);
|
|
26189
|
+
}
|
|
26190
|
+
}
|
|
26191
|
+
}
|
|
26192
|
+
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
26193
|
+
finally {
|
|
26194
|
+
try {
|
|
26195
|
+
if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
|
|
26196
|
+
}
|
|
26197
|
+
finally { if (e_3) throw e_3.error; }
|
|
26198
|
+
}
|
|
26199
|
+
});
|
|
26200
|
+
}
|
|
25817
26201
|
function updateOverrides(rows, removeCellShade) {
|
|
25818
26202
|
var overrides = {
|
|
25819
26203
|
bgColorOverrides: [],
|
|
@@ -25974,7 +26358,8 @@ function setFirstColumnFormatBorders(rows, format) {
|
|
|
25974
26358
|
var customStyles = format.hasFirstColumn ? format.firstColumnCustomStyles : undefined;
|
|
25975
26359
|
rows.forEach(function (row, rowIndex) {
|
|
25976
26360
|
row.cells.forEach(function (readonlyCell, cellIndex) {
|
|
25977
|
-
var
|
|
26361
|
+
var e_5, _a, e_6, _b;
|
|
26362
|
+
var _c, _d;
|
|
25978
26363
|
var cell = (0, mutate_1.mutateBlock)(readonlyCell);
|
|
25979
26364
|
if (cellIndex === 0) {
|
|
25980
26365
|
if (rowIndex == 0) {
|
|
@@ -25991,44 +26376,47 @@ function setFirstColumnFormatBorders(rows, format) {
|
|
|
25991
26376
|
}
|
|
25992
26377
|
}
|
|
25993
26378
|
try {
|
|
25994
|
-
for (var
|
|
25995
|
-
var block =
|
|
26379
|
+
for (var _e = (0, tslib_1.__values)(cell.blocks), _f = _e.next(); !_f.done; _f = _e.next()) {
|
|
26380
|
+
var block = _f.value;
|
|
25996
26381
|
if (block.blockType == 'Paragraph') {
|
|
26382
|
+
var mutateParagraph = (0, mutate_1.mutateBlock)(block);
|
|
25997
26383
|
try {
|
|
25998
|
-
for (var
|
|
25999
|
-
var
|
|
26000
|
-
(
|
|
26001
|
-
|
|
26002
|
-
|
|
26003
|
-
|
|
26004
|
-
|
|
26005
|
-
|
|
26006
|
-
setStyleIfDefined(cellSegment.format, 'italic', customStyles === null || customStyles === void 0 ? void 0 : customStyles.italic);
|
|
26384
|
+
for (var _g = (e_6 = void 0, (0, tslib_1.__values)(mutateParagraph.segments)), _h = _g.next(); !_h.done; _h = _g.next()) {
|
|
26385
|
+
var cellSegment = _h.value;
|
|
26386
|
+
if (format.hasFirstColumn) {
|
|
26387
|
+
setStyleIfDefined(cellSegment.format, 'fontWeight', (_c = customStyles === null || customStyles === void 0 ? void 0 : customStyles.fontWeight) !== null && _c !== void 0 ? _c : 'bold');
|
|
26388
|
+
setStyleIfDefined(cell.format, 'textAlign', customStyles === null || customStyles === void 0 ? void 0 : customStyles.textAlign);
|
|
26389
|
+
setStyleIfDefined(cell.format, 'fontWeight', (_d = customStyles === null || customStyles === void 0 ? void 0 : customStyles.fontWeight) !== null && _d !== void 0 ? _d : 'bold');
|
|
26390
|
+
if (customStyles === null || customStyles === void 0 ? void 0 : customStyles.italic) {
|
|
26391
|
+
cellSegment.format.italic = true;
|
|
26007
26392
|
}
|
|
26008
|
-
else if (
|
|
26009
|
-
|
|
26010
|
-
delete cellSegment.format.fontWeight;
|
|
26011
|
-
delete cell.format.fontWeight;
|
|
26393
|
+
else if ((customStyles === null || customStyles === void 0 ? void 0 : customStyles.italic) === false) {
|
|
26394
|
+
delete cellSegment.format.italic;
|
|
26012
26395
|
}
|
|
26013
|
-
}
|
|
26396
|
+
}
|
|
26397
|
+
else if (cellSegment.format.fontWeight == 'bold' &&
|
|
26398
|
+
cell.format.fontWeight == 'bold') {
|
|
26399
|
+
delete cellSegment.format.fontWeight;
|
|
26400
|
+
delete cell.format.fontWeight;
|
|
26401
|
+
}
|
|
26014
26402
|
}
|
|
26015
26403
|
}
|
|
26016
|
-
catch (
|
|
26404
|
+
catch (e_6_1) { e_6 = { error: e_6_1 }; }
|
|
26017
26405
|
finally {
|
|
26018
26406
|
try {
|
|
26019
|
-
if (
|
|
26407
|
+
if (_h && !_h.done && (_b = _g.return)) _b.call(_g);
|
|
26020
26408
|
}
|
|
26021
|
-
finally { if (
|
|
26409
|
+
finally { if (e_6) throw e_6.error; }
|
|
26022
26410
|
}
|
|
26023
26411
|
}
|
|
26024
26412
|
}
|
|
26025
26413
|
}
|
|
26026
|
-
catch (
|
|
26414
|
+
catch (e_5_1) { e_5 = { error: e_5_1 }; }
|
|
26027
26415
|
finally {
|
|
26028
26416
|
try {
|
|
26029
|
-
if (
|
|
26417
|
+
if (_f && !_f.done && (_a = _e.return)) _a.call(_e);
|
|
26030
26418
|
}
|
|
26031
|
-
finally { if (
|
|
26419
|
+
finally { if (e_5) throw e_5.error; }
|
|
26032
26420
|
}
|
|
26033
26421
|
}
|
|
26034
26422
|
});
|
|
@@ -26045,6 +26433,11 @@ function setStyleIfDefined(format, key, value) {
|
|
|
26045
26433
|
format[key] = value;
|
|
26046
26434
|
}
|
|
26047
26435
|
}
|
|
26436
|
+
function clearStyleIfMatch(format, key, value) {
|
|
26437
|
+
if (value !== undefined && format[key] === value) {
|
|
26438
|
+
delete format[key];
|
|
26439
|
+
}
|
|
26440
|
+
}
|
|
26048
26441
|
function setHeaderRowFormat(rows, format, metaOverrides) {
|
|
26049
26442
|
var _a;
|
|
26050
26443
|
if (!format.hasHeaderRow) {
|
|
@@ -26053,11 +26446,12 @@ function setHeaderRowFormat(rows, format, metaOverrides) {
|
|
|
26053
26446
|
var rowIndex = 0;
|
|
26054
26447
|
var customStyles = format.headerRowCustomStyles;
|
|
26055
26448
|
(_a = rows[rowIndex]) === null || _a === void 0 ? void 0 : _a.cells.forEach(function (readonlyCell, cellIndex) {
|
|
26056
|
-
var
|
|
26449
|
+
var e_7, _a, e_8, _b;
|
|
26057
26450
|
var _c, _d, _e, _f;
|
|
26058
26451
|
var cell = (0, mutate_1.mutateBlock)(readonlyCell);
|
|
26452
|
+
var fontWeight = (_c = customStyles === null || customStyles === void 0 ? void 0 : customStyles.fontWeight) !== null && _c !== void 0 ? _c : 'bold';
|
|
26059
26453
|
cell.isHeader = true;
|
|
26060
|
-
cell.format.fontWeight =
|
|
26454
|
+
cell.format.fontWeight = fontWeight;
|
|
26061
26455
|
if (format.headerRowColor) {
|
|
26062
26456
|
if (!metaOverrides.bgColorOverrides[rowIndex][cellIndex]) {
|
|
26063
26457
|
(0, setTableCellBackgroundColor_1.setTableCellBackgroundColor)(cell, format.headerRowColor, false /*isColorOverride*/, true /*applyToSegments*/);
|
|
@@ -26069,40 +26463,40 @@ function setHeaderRowFormat(rows, format, metaOverrides) {
|
|
|
26069
26463
|
if (customStyles) {
|
|
26070
26464
|
setStyleIfDefined(cell.format, 'textAlign', customStyles.textAlign);
|
|
26071
26465
|
setBorderColorIfExists(cell.format, 'borderBottom', customStyles.borderBottomColor);
|
|
26072
|
-
|
|
26073
|
-
|
|
26074
|
-
|
|
26075
|
-
|
|
26076
|
-
|
|
26077
|
-
|
|
26078
|
-
|
|
26079
|
-
|
|
26080
|
-
|
|
26081
|
-
|
|
26082
|
-
|
|
26083
|
-
|
|
26084
|
-
delete cellSegment.format.italic;
|
|
26085
|
-
}
|
|
26086
|
-
});
|
|
26466
|
+
}
|
|
26467
|
+
try {
|
|
26468
|
+
for (var _g = (0, tslib_1.__values)(cell.blocks), _h = _g.next(); !_h.done; _h = _g.next()) {
|
|
26469
|
+
var block = _h.value;
|
|
26470
|
+
if (block.blockType == 'Paragraph') {
|
|
26471
|
+
var mutateParagraph = (0, mutate_1.mutateBlock)(block);
|
|
26472
|
+
try {
|
|
26473
|
+
for (var _j = (e_8 = void 0, (0, tslib_1.__values)(mutateParagraph.segments)), _k = _j.next(); !_k.done; _k = _j.next()) {
|
|
26474
|
+
var cellSegment = _k.value;
|
|
26475
|
+
cellSegment.format.fontWeight = fontWeight;
|
|
26476
|
+
if (customStyles === null || customStyles === void 0 ? void 0 : customStyles.italic) {
|
|
26477
|
+
cellSegment.format.italic = true;
|
|
26087
26478
|
}
|
|
26088
|
-
|
|
26089
|
-
|
|
26090
|
-
finally {
|
|
26091
|
-
try {
|
|
26092
|
-
if (_k && !_k.done && (_b = _j.return)) _b.call(_j);
|
|
26479
|
+
else if ((customStyles === null || customStyles === void 0 ? void 0 : customStyles.italic) === false) {
|
|
26480
|
+
delete cellSegment.format.italic;
|
|
26093
26481
|
}
|
|
26094
|
-
finally { if (e_4) throw e_4.error; }
|
|
26095
26482
|
}
|
|
26096
26483
|
}
|
|
26484
|
+
catch (e_8_1) { e_8 = { error: e_8_1 }; }
|
|
26485
|
+
finally {
|
|
26486
|
+
try {
|
|
26487
|
+
if (_k && !_k.done && (_b = _j.return)) _b.call(_j);
|
|
26488
|
+
}
|
|
26489
|
+
finally { if (e_8) throw e_8.error; }
|
|
26490
|
+
}
|
|
26097
26491
|
}
|
|
26098
26492
|
}
|
|
26099
|
-
|
|
26100
|
-
|
|
26101
|
-
|
|
26102
|
-
|
|
26103
|
-
|
|
26104
|
-
finally { if (e_3) throw e_3.error; }
|
|
26493
|
+
}
|
|
26494
|
+
catch (e_7_1) { e_7 = { error: e_7_1 }; }
|
|
26495
|
+
finally {
|
|
26496
|
+
try {
|
|
26497
|
+
if (_h && !_h.done && (_a = _g.return)) _a.call(_g);
|
|
26105
26498
|
}
|
|
26499
|
+
finally { if (e_7) throw e_7.error; }
|
|
26106
26500
|
}
|
|
26107
26501
|
});
|
|
26108
26502
|
}
|
|
@@ -26910,6 +27304,7 @@ var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.m
|
|
|
26910
27304
|
var addBlock_1 = __webpack_require__(/*! ../common/addBlock */ "./packages/roosterjs-content-model-dom/lib/modelApi/common/addBlock.ts");
|
|
26911
27305
|
var addSegment_1 = __webpack_require__(/*! ../common/addSegment */ "./packages/roosterjs-content-model-dom/lib/modelApi/common/addSegment.ts");
|
|
26912
27306
|
var applyTableFormat_1 = __webpack_require__(/*! ./applyTableFormat */ "./packages/roosterjs-content-model-dom/lib/modelApi/editing/applyTableFormat.ts");
|
|
27307
|
+
var createBr_1 = __webpack_require__(/*! ../creators/createBr */ "./packages/roosterjs-content-model-dom/lib/modelApi/creators/createBr.ts");
|
|
26913
27308
|
var createListItem_1 = __webpack_require__(/*! ../creators/createListItem */ "./packages/roosterjs-content-model-dom/lib/modelApi/creators/createListItem.ts");
|
|
26914
27309
|
var createParagraph_1 = __webpack_require__(/*! ../creators/createParagraph */ "./packages/roosterjs-content-model-dom/lib/modelApi/creators/createParagraph.ts");
|
|
26915
27310
|
var createSelectionMarker_1 = __webpack_require__(/*! ../creators/createSelectionMarker */ "./packages/roosterjs-content-model-dom/lib/modelApi/creators/createSelectionMarker.ts");
|
|
@@ -26932,11 +27327,14 @@ var KeysOfSegmentFormat = (0, getObjectKeys_1.getObjectKeys)(EmptySegmentFormat_
|
|
|
26932
27327
|
* @returns Insert point after merge, or null if there is no insert point
|
|
26933
27328
|
*/
|
|
26934
27329
|
function mergeModel(target, source, context, options) {
|
|
26935
|
-
var _a;
|
|
27330
|
+
var _a, _b;
|
|
26936
27331
|
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
|
|
27332
|
+
var _c = options || {}, addParagraphAfterMergedContent = _c.addParagraphAfterMergedContent, mergeFormat = _c.mergeFormat, mergeParagraphAfterList = _c.mergeParagraphAfterList, mergeTable = _c.mergeTable;
|
|
27333
|
+
if (mergeParagraphAfterList && insertPosition && ((_b = source.blocks[0]) === null || _b === void 0 ? void 0 : _b.blockType) == 'Paragraph') {
|
|
27334
|
+
moveParagraphAfterListIntoList(insertPosition);
|
|
27335
|
+
}
|
|
26938
27336
|
if (addParagraphAfterMergedContent && !mergeTable) {
|
|
26939
|
-
var
|
|
27337
|
+
var _d = insertPosition || {}, paragraph = _d.paragraph, marker = _d.marker;
|
|
26940
27338
|
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
27339
|
(0, addBlock_1.addBlock)(source, newPara);
|
|
26942
27340
|
}
|
|
@@ -26984,6 +27382,22 @@ function mergeModel(target, source, context, options) {
|
|
|
26984
27382
|
return insertPosition;
|
|
26985
27383
|
}
|
|
26986
27384
|
exports.mergeModel = mergeModel;
|
|
27385
|
+
function moveParagraphAfterListIntoList(insertPosition) {
|
|
27386
|
+
var paragraph = insertPosition.paragraph, path = insertPosition.path;
|
|
27387
|
+
var parent = path[0];
|
|
27388
|
+
var paragraphIndex = parent.blocks.indexOf(paragraph);
|
|
27389
|
+
var previousBlock = parent.blocks[paragraphIndex - 1];
|
|
27390
|
+
if (paragraph.segments.every(function (segment) { return segment.segmentType == 'SelectionMarker' || segment.segmentType == 'Br'; }) &&
|
|
27391
|
+
(previousBlock === null || previousBlock === void 0 ? void 0 : previousBlock.blockType) == 'BlockGroup' &&
|
|
27392
|
+
previousBlock.blockGroupType == 'ListItem') {
|
|
27393
|
+
var newListItem = (0, createListItem_1.createListItem)(previousBlock.levels, previousBlock.formatHolder.format);
|
|
27394
|
+
var paragraphAfterList = (0, createParagraph_1.createParagraph)(false, paragraph.format);
|
|
27395
|
+
(0, addBlock_1.addBlock)(newListItem, paragraph);
|
|
27396
|
+
paragraphAfterList.segments.push((0, createBr_1.createBr)());
|
|
27397
|
+
(0, mutate_1.mutateBlock)(parent).blocks.splice(paragraphIndex, 1, newListItem, paragraphAfterList);
|
|
27398
|
+
path.unshift(newListItem);
|
|
27399
|
+
}
|
|
27400
|
+
}
|
|
26987
27401
|
function mergeParagraph(markerPosition, newPara, mergeToCurrentParagraph, context, option) {
|
|
26988
27402
|
var paragraph = markerPosition.paragraph, marker = markerPosition.marker;
|
|
26989
27403
|
var newParagraph = mergeToCurrentParagraph
|
|
@@ -27051,7 +27465,7 @@ function mergeTables(markerPosition, newTable, source) {
|
|
|
27051
27465
|
var newColIndex = currentColCount + col;
|
|
27052
27466
|
for (var k = 0; k < table.rows.length; k++) {
|
|
27053
27467
|
var leftCell = (_b = table.rows[k]) === null || _b === void 0 ? void 0 : _b.cells[newColIndex - 1];
|
|
27054
|
-
table.rows[k].cells[newColIndex] = (0, createTableCell_1.createTableCell)(false /*spanLeft*/,
|
|
27468
|
+
table.rows[k].cells[newColIndex] = (0, createTableCell_1.createTableCell)(false /*spanLeft*/, leftCell === null || leftCell === void 0 ? void 0 : leftCell.spanAbove, leftCell === null || leftCell === void 0 ? void 0 : leftCell.isHeader, leftCell === null || leftCell === void 0 ? void 0 : leftCell.format);
|
|
27055
27469
|
}
|
|
27056
27470
|
}
|
|
27057
27471
|
}
|
|
@@ -27069,7 +27483,7 @@ function mergeTables(markerPosition, newTable, source) {
|
|
|
27069
27483
|
};
|
|
27070
27484
|
for (var k = 0; k < colCount; k++) {
|
|
27071
27485
|
var aboveCell = (_d = table.rows[newRowIndex - 1]) === null || _d === void 0 ? void 0 : _d.cells[k];
|
|
27072
|
-
table.rows[newRowIndex].cells[k] = (0, createTableCell_1.createTableCell)(
|
|
27486
|
+
table.rows[newRowIndex].cells[k] = (0, createTableCell_1.createTableCell)(aboveCell === null || aboveCell === void 0 ? void 0 : aboveCell.spanLeft, false /*spanAbove*/, false /*isHeader*/, aboveCell === null || aboveCell === void 0 ? void 0 : aboveCell.format);
|
|
27073
27487
|
}
|
|
27074
27488
|
}
|
|
27075
27489
|
}
|
|
@@ -27113,10 +27527,43 @@ function mergeTables(markerPosition, newTable, source) {
|
|
|
27113
27527
|
(0, normalizeTable_1.normalizeTable)(table, markerPosition.marker.format);
|
|
27114
27528
|
(0, applyTableFormat_1.applyTableFormat)(table, undefined /*newFormat*/, true /*keepCellShade*/);
|
|
27115
27529
|
}
|
|
27116
|
-
else {
|
|
27530
|
+
else if (!mergeTableAfterPreviousTable(markerPosition, newTable)) {
|
|
27117
27531
|
insertBlock(markerPosition, newTable);
|
|
27118
27532
|
}
|
|
27119
27533
|
}
|
|
27534
|
+
function mergeTableAfterPreviousTable(markerPosition, newTable) {
|
|
27535
|
+
var _a;
|
|
27536
|
+
var _b, _c;
|
|
27537
|
+
var marker = markerPosition.marker, paragraph = markerPosition.paragraph, path = markerPosition.path;
|
|
27538
|
+
var parent = path[0];
|
|
27539
|
+
var paragraphIndex = parent.blocks.indexOf(paragraph);
|
|
27540
|
+
var previousBlock = parent.blocks[paragraphIndex - 1];
|
|
27541
|
+
if (paragraphIndex > 0 &&
|
|
27542
|
+
paragraph.segments.indexOf(marker) == 0 &&
|
|
27543
|
+
(previousBlock === null || previousBlock === void 0 ? void 0 : previousBlock.blockType) == 'Table' &&
|
|
27544
|
+
((_b = previousBlock.rows[0]) === null || _b === void 0 ? void 0 : _b.cells.length) > 0 &&
|
|
27545
|
+
((_c = newTable.rows[0]) === null || _c === void 0 ? void 0 : _c.cells.length) > 0) {
|
|
27546
|
+
var table = (0, mutate_1.mutateBlock)(previousBlock);
|
|
27547
|
+
var columnCount = Math.max.apply(Math, (0, tslib_1.__spreadArray)((0, tslib_1.__spreadArray)([], (0, tslib_1.__read)(table.rows.map(function (row) { return row.cells.length; })), false), (0, tslib_1.__read)(newTable.rows.map(function (row) { return row.cells.length; })), false));
|
|
27548
|
+
extendTableRows(table, columnCount);
|
|
27549
|
+
extendTableRows(newTable, columnCount);
|
|
27550
|
+
(_a = table.rows).push.apply(_a, (0, tslib_1.__spreadArray)([], (0, tslib_1.__read)(newTable.rows), false));
|
|
27551
|
+
return true;
|
|
27552
|
+
}
|
|
27553
|
+
return false;
|
|
27554
|
+
}
|
|
27555
|
+
function extendTableRows(table, columnCount) {
|
|
27556
|
+
table.rows.forEach(function (row) {
|
|
27557
|
+
var currentColumnCount = row.cells.length;
|
|
27558
|
+
var lastCell = row.cells[currentColumnCount - 1];
|
|
27559
|
+
if (lastCell) {
|
|
27560
|
+
for (var col = currentColumnCount; col < columnCount; col++) {
|
|
27561
|
+
var spanCell = (0, createTableCell_1.createTableCell)(true /* spanLeft */, false /* spanAbove */, lastCell.isHeader, lastCell.format, lastCell.dataset);
|
|
27562
|
+
row.cells.push(spanCell);
|
|
27563
|
+
}
|
|
27564
|
+
}
|
|
27565
|
+
});
|
|
27566
|
+
}
|
|
27120
27567
|
function mergeList(markerPosition, newList) {
|
|
27121
27568
|
splitParagraph(markerPosition, newList.format);
|
|
27122
27569
|
var path = markerPosition.path, paragraph = markerPosition.paragraph;
|
|
@@ -32317,7 +32764,11 @@ var MarkdownPastePlugin = /** @class */ (function () {
|
|
|
32317
32764
|
(0, isPastedContentMarkdown_1.isPastedContentMarkdown)(this.editor, clipboardData) &&
|
|
32318
32765
|
clipboardData.modelBeforePaste) {
|
|
32319
32766
|
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, {
|
|
32767
|
+
(0, roosterjs_content_model_dom_1.mergeModel)(modelBeforePaste_1, (0, convertMarkdownToContentModel_1.convertMarkdownToContentModel)(clipboardData.text, {
|
|
32768
|
+
emptyLine: 'merge',
|
|
32769
|
+
}), undefined /*context*/, {
|
|
32770
|
+
mergeFormat: 'preferTarget',
|
|
32771
|
+
});
|
|
32321
32772
|
if (this.options.undoConversion) {
|
|
32322
32773
|
this.editor.takeSnapshot();
|
|
32323
32774
|
}
|
|
@@ -32371,7 +32822,7 @@ var BlockPatterns = [
|
|
|
32371
32822
|
/^\s*>\s.+/,
|
|
32372
32823
|
/^\s*[\*\-\+]\s.+/,
|
|
32373
32824
|
/^\s*\d+\.\s.+/,
|
|
32374
|
-
|
|
32825
|
+
/^---$/,
|
|
32375
32826
|
/^\s*\|.*\|\s*$/, // table row: "| a | b |"
|
|
32376
32827
|
];
|
|
32377
32828
|
// Inline markdown patterns. The text contains markdown if any of these match anywhere.
|
|
@@ -32705,6 +33156,7 @@ var DefaultOptions = {
|
|
|
32705
33156
|
autoOrdinals: false,
|
|
32706
33157
|
removeListMargins: false,
|
|
32707
33158
|
autoHorizontalLine: false,
|
|
33159
|
+
autoDirection: false,
|
|
32708
33160
|
};
|
|
32709
33161
|
/**
|
|
32710
33162
|
* Auto Format plugin handles auto formatting, such as transforming * characters into a bullet list.
|
|
@@ -32724,12 +33176,14 @@ var AutoFormatPlugin = /** @class */ (function () {
|
|
|
32724
33176
|
* - autoTel: A boolean that enables or disables automatic hyperlink telephone numbers transformation. Defaults to false.
|
|
32725
33177
|
* - autoMailto: A boolean that enables or disables automatic hyperlink email address transformation. Defaults to false.
|
|
32726
33178
|
* - autoHorizontalLine: A boolean that enables or disables automatic horizontal line creation. Defaults to false.
|
|
33179
|
+
* - autoDirection: A boolean that enables or disables automatic text direction. Defaults to false.
|
|
32727
33180
|
*/
|
|
32728
33181
|
function AutoFormatPlugin(options) {
|
|
32729
33182
|
var _this = this;
|
|
32730
33183
|
if (options === void 0) { options = DefaultOptions; }
|
|
32731
33184
|
this.options = options;
|
|
32732
33185
|
this.editor = null;
|
|
33186
|
+
this.blockDirections = new WeakMap();
|
|
32733
33187
|
this.autoLink = {
|
|
32734
33188
|
enabled: !!(this.options.autoLink || this.options.autoTel || this.options.autoMailto),
|
|
32735
33189
|
transformFunction: function (_model, previousSegment, paragraph, context) {
|
|
@@ -32864,6 +33318,9 @@ var AutoFormatPlugin = /** @class */ (function () {
|
|
|
32864
33318
|
case 'input':
|
|
32865
33319
|
this.handleEditorInputEvent(this.editor, event);
|
|
32866
33320
|
break;
|
|
33321
|
+
case 'compositionEnd':
|
|
33322
|
+
this.handleCompositionEndEvent(this.editor, event.rawEvent.data);
|
|
33323
|
+
break;
|
|
32867
33324
|
case 'keyDown':
|
|
32868
33325
|
this.handleKeyDownEvent(this.editor, event);
|
|
32869
33326
|
break;
|
|
@@ -32928,9 +33385,41 @@ var AutoFormatPlugin = /** @class */ (function () {
|
|
|
32928
33385
|
case ' ':
|
|
32929
33386
|
this.handleKeyboardEvents(editor, this.features);
|
|
32930
33387
|
break;
|
|
33388
|
+
default:
|
|
33389
|
+
this.handleAutoDirection(editor, rawEvent.data, selection.range);
|
|
33390
|
+
break;
|
|
32931
33391
|
}
|
|
32932
33392
|
}
|
|
32933
33393
|
};
|
|
33394
|
+
AutoFormatPlugin.prototype.handleCompositionEndEvent = function (editor, insertedText) {
|
|
33395
|
+
var selection = editor.getDOMSelection();
|
|
33396
|
+
if ((selection === null || selection === void 0 ? void 0 : selection.type) === 'range' && selection.range.collapsed) {
|
|
33397
|
+
this.handleAutoDirection(editor, insertedText, selection.range);
|
|
33398
|
+
}
|
|
33399
|
+
};
|
|
33400
|
+
AutoFormatPlugin.prototype.handleAutoDirection = function (editor, insertedText, range) {
|
|
33401
|
+
var _a;
|
|
33402
|
+
if (!this.options.autoDirection || !insertedText || !(0, roosterjs_content_model_api_1.getTextDirection)(insertedText)) {
|
|
33403
|
+
return;
|
|
33404
|
+
}
|
|
33405
|
+
var block = editor.getDOMHelper().findClosestBlockElement(range.startContainer);
|
|
33406
|
+
var expectedDirection = (0, roosterjs_content_model_api_1.getTextDirection)(block.textContent || '');
|
|
33407
|
+
var inlineDirection = block.style.direction;
|
|
33408
|
+
var cachedDirection = inlineDirection === 'ltr' || inlineDirection === 'rtl'
|
|
33409
|
+
? inlineDirection
|
|
33410
|
+
: this.blockDirections.get(block);
|
|
33411
|
+
if (!expectedDirection || cachedDirection === expectedDirection) {
|
|
33412
|
+
return;
|
|
33413
|
+
}
|
|
33414
|
+
var currentDirection = cachedDirection || ((_a = block.ownerDocument.defaultView) === null || _a === void 0 ? void 0 : _a.getComputedStyle(block).direction);
|
|
33415
|
+
if (currentDirection === 'ltr' || currentDirection === 'rtl') {
|
|
33416
|
+
this.blockDirections.set(block, currentDirection);
|
|
33417
|
+
}
|
|
33418
|
+
if (currentDirection !== expectedDirection) {
|
|
33419
|
+
this.blockDirections.set(block, expectedDirection);
|
|
33420
|
+
(0, roosterjs_content_model_api_1.setDirection)(editor, 'auto');
|
|
33421
|
+
}
|
|
33422
|
+
};
|
|
32934
33423
|
AutoFormatPlugin.prototype.handleKeyDownEvent = function (editor, event) {
|
|
32935
33424
|
var rawEvent = event.rawEvent;
|
|
32936
33425
|
if (!rawEvent.defaultPrevented && !event.handledByEditFeature) {
|
|
@@ -33910,9 +34399,12 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
|
33910
34399
|
exports.DragAndDropPlugin = void 0;
|
|
33911
34400
|
var handleDroppedExternalContent_1 = __webpack_require__(/*! ./utils/handleDroppedExternalContent */ "./packages/roosterjs-content-model-plugins/lib/dragAndDrop/utils/handleDroppedExternalContent.ts");
|
|
33912
34401
|
var handleDroppedInternalContent_1 = __webpack_require__(/*! ./utils/handleDroppedInternalContent */ "./packages/roosterjs-content-model-plugins/lib/dragAndDrop/utils/handleDroppedInternalContent.ts");
|
|
34402
|
+
var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
|
|
34403
|
+
var reorderList_1 = __webpack_require__(/*! ./utils/reorderList */ "./packages/roosterjs-content-model-plugins/lib/dragAndDrop/utils/reorderList.ts");
|
|
33913
34404
|
var DefaultOptions = {
|
|
33914
34405
|
forbiddenElements: ['iframe'],
|
|
33915
34406
|
};
|
|
34407
|
+
var DeleteByDragInputType = 'deleteByDrag';
|
|
33916
34408
|
/**
|
|
33917
34409
|
* DragAndDrop plugin, handles ContentChanged event when change source is "Drop"
|
|
33918
34410
|
* to sanitize dropped content, similar to how PastePlugin sanitizes pasted content.
|
|
@@ -33947,8 +34439,21 @@ var DragAndDropPlugin = /** @class */ (function () {
|
|
|
33947
34439
|
this.editor = editor;
|
|
33948
34440
|
this.disposer = editor.attachDomEvent({
|
|
33949
34441
|
dragstart: {
|
|
33950
|
-
beforeDispatch: function (
|
|
34442
|
+
beforeDispatch: function (ev) {
|
|
33951
34443
|
_this.internalDrag = true;
|
|
34444
|
+
if (_this.editor &&
|
|
34445
|
+
_this.editor.isExperimentalFeatureEnabled('HandleDropInternalContent')) {
|
|
34446
|
+
_this.adjustDraggingCursor(_this.editor, ev);
|
|
34447
|
+
}
|
|
34448
|
+
},
|
|
34449
|
+
},
|
|
34450
|
+
beforeinput: {
|
|
34451
|
+
beforeDispatch: function (event) {
|
|
34452
|
+
var ev = event;
|
|
34453
|
+
if (_this.internalDrag) {
|
|
34454
|
+
_this.handleDragOutOfTheEditor(editor, ev);
|
|
34455
|
+
_this.internalDrag = false;
|
|
34456
|
+
}
|
|
33952
34457
|
},
|
|
33953
34458
|
},
|
|
33954
34459
|
});
|
|
@@ -33965,6 +34470,7 @@ var DragAndDropPlugin = /** @class */ (function () {
|
|
|
33965
34470
|
this.disposer = null;
|
|
33966
34471
|
}
|
|
33967
34472
|
this.forbiddenElements = [];
|
|
34473
|
+
this.internalDrag = false;
|
|
33968
34474
|
};
|
|
33969
34475
|
/**
|
|
33970
34476
|
* Core method for a plugin. Once an event happens in editor, editor will call this
|
|
@@ -33973,7 +34479,6 @@ var DragAndDropPlugin = /** @class */ (function () {
|
|
|
33973
34479
|
* @param event The event to handle:
|
|
33974
34480
|
*/
|
|
33975
34481
|
DragAndDropPlugin.prototype.onPluginEvent = function (event) {
|
|
33976
|
-
var _a;
|
|
33977
34482
|
if (this.editor && event.eventType == 'beforeDrop') {
|
|
33978
34483
|
var dropEvent = event.rawEvent;
|
|
33979
34484
|
if (this.internalDrag &&
|
|
@@ -33981,14 +34486,36 @@ var DragAndDropPlugin = /** @class */ (function () {
|
|
|
33981
34486
|
(0, handleDroppedInternalContent_1.handleDroppedInternalContent)(this.editor, dropEvent);
|
|
33982
34487
|
}
|
|
33983
34488
|
else if (!this.internalDrag) {
|
|
33984
|
-
|
|
33985
|
-
if (html) {
|
|
33986
|
-
(0, handleDroppedExternalContent_1.handleDroppedExternalContent)(this.editor, dropEvent, html, this.forbiddenElements);
|
|
33987
|
-
}
|
|
34489
|
+
(0, handleDroppedExternalContent_1.handleDroppedExternalContent)(this.editor, dropEvent, this.forbiddenElements);
|
|
33988
34490
|
}
|
|
33989
34491
|
this.internalDrag = false;
|
|
33990
34492
|
}
|
|
33991
34493
|
};
|
|
34494
|
+
DragAndDropPlugin.prototype.adjustDraggingCursor = function (editor, dragEvent) {
|
|
34495
|
+
var _a, _b;
|
|
34496
|
+
var selection = editor.getDOMSelection();
|
|
34497
|
+
if ((selection === null || selection === void 0 ? void 0 : selection.type) == 'table') {
|
|
34498
|
+
var doc = (_a = this.editor) === null || _a === void 0 ? void 0 : _a.getDocument();
|
|
34499
|
+
if (doc && dragEvent.dataTransfer) {
|
|
34500
|
+
var ghost_1 = doc.createElement('span');
|
|
34501
|
+
ghost_1.textContent = '|';
|
|
34502
|
+
doc.body.appendChild(ghost_1);
|
|
34503
|
+
dragEvent.dataTransfer.setDragImage(ghost_1, 0, 0);
|
|
34504
|
+
(_b = doc.defaultView) === null || _b === void 0 ? void 0 : _b.requestAnimationFrame(function () { return ghost_1.remove(); });
|
|
34505
|
+
}
|
|
34506
|
+
}
|
|
34507
|
+
};
|
|
34508
|
+
DragAndDropPlugin.prototype.handleDragOutOfTheEditor = function (editor, inputEvent) {
|
|
34509
|
+
if (inputEvent.inputType == DeleteByDragInputType) {
|
|
34510
|
+
inputEvent.preventDefault();
|
|
34511
|
+
editor.formatContentModel(function (model, context) {
|
|
34512
|
+
(0, roosterjs_content_model_dom_1.deleteSelection)(model, [reorderList_1.reorderList], context);
|
|
34513
|
+
return true;
|
|
34514
|
+
}, {
|
|
34515
|
+
changeSource: roosterjs_content_model_dom_1.ChangeSource.DragOutOfEditor,
|
|
34516
|
+
});
|
|
34517
|
+
}
|
|
34518
|
+
};
|
|
33992
34519
|
return DragAndDropPlugin;
|
|
33993
34520
|
}());
|
|
33994
34521
|
exports.DragAndDropPlugin = DragAndDropPlugin;
|
|
@@ -34050,37 +34577,90 @@ exports.cleanForbiddenElements = cleanForbiddenElements;
|
|
|
34050
34577
|
|
|
34051
34578
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
34052
34579
|
exports.handleDroppedExternalContent = void 0;
|
|
34580
|
+
var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.mjs");
|
|
34053
34581
|
var cleanForbiddenElements_1 = __webpack_require__(/*! ./cleanForbiddenElements */ "./packages/roosterjs-content-model-plugins/lib/dragAndDrop/utils/cleanForbiddenElements.ts");
|
|
34054
34582
|
var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
|
|
34055
34583
|
/**
|
|
34056
34584
|
* @internal
|
|
34057
34585
|
* Handle dropped HTML content by inserting it at the drop position
|
|
34058
34586
|
*/
|
|
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
|
-
|
|
34587
|
+
function handleDroppedExternalContent(editor, event, forbiddenElements) {
|
|
34588
|
+
return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
|
|
34589
|
+
var items, doc, domPosition, droppedModel_1, range;
|
|
34590
|
+
return (0, tslib_1.__generator)(this, function (_a) {
|
|
34591
|
+
switch (_a.label) {
|
|
34592
|
+
case 0:
|
|
34593
|
+
items = getSupportedItems(event.dataTransfer);
|
|
34594
|
+
if (items.length == 0) {
|
|
34595
|
+
return [2 /*return*/];
|
|
34596
|
+
}
|
|
34597
|
+
doc = editor.getDocument();
|
|
34598
|
+
domPosition = (0, roosterjs_content_model_dom_1.getNodePositionFromEvent)(doc, editor.getDOMHelper(), event.x, event.y);
|
|
34599
|
+
if (!domPosition) return [3 /*break*/, 2];
|
|
34600
|
+
event.preventDefault();
|
|
34601
|
+
event.stopPropagation();
|
|
34602
|
+
return [4 /*yield*/, getDroppedModel(editor, items, forbiddenElements)];
|
|
34603
|
+
case 1:
|
|
34604
|
+
droppedModel_1 = _a.sent();
|
|
34605
|
+
if (!droppedModel_1) {
|
|
34606
|
+
return [2 /*return*/];
|
|
34607
|
+
}
|
|
34608
|
+
range = doc.createRange();
|
|
34609
|
+
range.setStart(domPosition.node, domPosition.offset);
|
|
34610
|
+
range.collapse(true);
|
|
34611
|
+
editor.formatContentModel(function (model, context) {
|
|
34612
|
+
(0, roosterjs_content_model_dom_1.mergeModel)(model, droppedModel_1, context, {
|
|
34613
|
+
mergeParagraphAfterList: true,
|
|
34614
|
+
});
|
|
34615
|
+
return true;
|
|
34616
|
+
}, {
|
|
34617
|
+
selectionOverride: {
|
|
34618
|
+
type: 'range',
|
|
34619
|
+
range: range,
|
|
34620
|
+
isReverted: false,
|
|
34621
|
+
},
|
|
34622
|
+
});
|
|
34623
|
+
_a.label = 2;
|
|
34624
|
+
case 2: return [2 /*return*/];
|
|
34625
|
+
}
|
|
34080
34626
|
});
|
|
34081
|
-
}
|
|
34627
|
+
});
|
|
34082
34628
|
}
|
|
34083
34629
|
exports.handleDroppedExternalContent = handleDroppedExternalContent;
|
|
34630
|
+
function getDroppedModel(editor, items, forbiddenElements) {
|
|
34631
|
+
return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
|
|
34632
|
+
var clipboardData, domCreator, doc, fragment;
|
|
34633
|
+
return (0, tslib_1.__generator)(this, function (_a) {
|
|
34634
|
+
switch (_a.label) {
|
|
34635
|
+
case 0: return [4 /*yield*/, (0, roosterjs_content_model_dom_1.extractClipboardItems)(items, undefined)];
|
|
34636
|
+
case 1:
|
|
34637
|
+
clipboardData = _a.sent();
|
|
34638
|
+
domCreator = editor.getDOMCreator();
|
|
34639
|
+
doc = clipboardData.rawHtml ? domCreator.htmlToDOM(clipboardData.rawHtml) : null;
|
|
34640
|
+
if (doc) {
|
|
34641
|
+
(0, cleanForbiddenElements_1.cleanForbiddenElements)(doc, forbiddenElements);
|
|
34642
|
+
}
|
|
34643
|
+
fragment = (0, roosterjs_content_model_dom_1.createPasteFragment)(editor.getDocument(), clipboardData, 'normal', doc === null || doc === void 0 ? void 0 : doc.body);
|
|
34644
|
+
return [2 /*return*/, (0, roosterjs_content_model_dom_1.domToContentModel)(fragment, (0, roosterjs_content_model_dom_1.createDomToModelContext)())];
|
|
34645
|
+
}
|
|
34646
|
+
});
|
|
34647
|
+
});
|
|
34648
|
+
}
|
|
34649
|
+
function getSupportedItems(dataTransfer) {
|
|
34650
|
+
var _a;
|
|
34651
|
+
var result = [];
|
|
34652
|
+
for (var i = 0; i < ((_a = dataTransfer === null || dataTransfer === void 0 ? void 0 : dataTransfer.items.length) !== null && _a !== void 0 ? _a : 0); i++) {
|
|
34653
|
+
var item = dataTransfer.items[i];
|
|
34654
|
+
if ((item.kind == 'string' &&
|
|
34655
|
+
(item.type == 'text/html' ||
|
|
34656
|
+
item.type == 'text/plain' ||
|
|
34657
|
+
item.type == 'text/uri-list')) ||
|
|
34658
|
+
(item.kind == 'file' && item.type.indexOf('image/') == 0)) {
|
|
34659
|
+
result.push(item);
|
|
34660
|
+
}
|
|
34661
|
+
}
|
|
34662
|
+
return result;
|
|
34663
|
+
}
|
|
34084
34664
|
|
|
34085
34665
|
|
|
34086
34666
|
/***/ },
|
|
@@ -34097,6 +34677,7 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
|
34097
34677
|
exports.handleDroppedInternalContent = void 0;
|
|
34098
34678
|
var roosterjs_content_model_api_1 = __webpack_require__(/*! roosterjs-content-model-api */ "./packages/roosterjs-content-model-api/lib/index.ts");
|
|
34099
34679
|
var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
|
|
34680
|
+
var reorderList_1 = __webpack_require__(/*! ./reorderList */ "./packages/roosterjs-content-model-plugins/lib/dragAndDrop/utils/reorderList.ts");
|
|
34100
34681
|
/**
|
|
34101
34682
|
* @internal
|
|
34102
34683
|
* Handle dropped internal HTML content by inserting it at the drop position
|
|
@@ -34112,8 +34693,10 @@ function handleDroppedInternalContent(editor, event) {
|
|
|
34112
34693
|
if (insertPoint) {
|
|
34113
34694
|
var cloneModel = (0, roosterjs_content_model_dom_1.cloneModelForPaste)(model);
|
|
34114
34695
|
(0, roosterjs_content_model_dom_1.trimModelForSelection)(cloneModel, selection);
|
|
34115
|
-
if (
|
|
34116
|
-
(0, roosterjs_content_model_dom_1.
|
|
34696
|
+
if (!event.ctrlKey && !event.metaKey) {
|
|
34697
|
+
if ((0, roosterjs_content_model_dom_1.deleteSelection)(model, [reorderList_1.reorderList], context).deleteResult == 'range') {
|
|
34698
|
+
(0, roosterjs_content_model_dom_1.normalizeContentModel)(model);
|
|
34699
|
+
}
|
|
34117
34700
|
}
|
|
34118
34701
|
var startMarker = (0, roosterjs_content_model_dom_1.createSelectionMarker)(insertPoint.marker.format);
|
|
34119
34702
|
var startParagraph = (0, roosterjs_content_model_dom_1.mutateBlock)(insertPoint.paragraph);
|
|
@@ -34121,6 +34704,7 @@ function handleDroppedInternalContent(editor, event) {
|
|
|
34121
34704
|
startParagraph.segments.splice(startIndex, 0, startMarker);
|
|
34122
34705
|
var newInsertPoint = (0, roosterjs_content_model_dom_1.mergeModel)(model, cloneModel, context, {
|
|
34123
34706
|
insertPosition: insertPoint,
|
|
34707
|
+
mergeParagraphAfterList: true,
|
|
34124
34708
|
});
|
|
34125
34709
|
if (newInsertPoint) {
|
|
34126
34710
|
(0, roosterjs_content_model_dom_1.setSelection)(model, startMarker, newInsertPoint.marker);
|
|
@@ -34132,6 +34716,39 @@ function handleDroppedInternalContent(editor, event) {
|
|
|
34132
34716
|
exports.handleDroppedInternalContent = handleDroppedInternalContent;
|
|
34133
34717
|
|
|
34134
34718
|
|
|
34719
|
+
/***/ },
|
|
34720
|
+
|
|
34721
|
+
/***/ "./packages/roosterjs-content-model-plugins/lib/dragAndDrop/utils/reorderList.ts"
|
|
34722
|
+
/*!***************************************************************************************!*\
|
|
34723
|
+
!*** ./packages/roosterjs-content-model-plugins/lib/dragAndDrop/utils/reorderList.ts ***!
|
|
34724
|
+
\***************************************************************************************/
|
|
34725
|
+
(__unused_webpack_module, exports, __webpack_require__) {
|
|
34726
|
+
|
|
34727
|
+
"use strict";
|
|
34728
|
+
|
|
34729
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
34730
|
+
exports.reorderList = void 0;
|
|
34731
|
+
var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.mjs");
|
|
34732
|
+
var getListItemFromInsertPoint_1 = __webpack_require__(/*! ../../edit/utils/getListItemFromInsertPoint */ "./packages/roosterjs-content-model-plugins/lib/edit/utils/getListItemFromInsertPoint.ts");
|
|
34733
|
+
var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
|
|
34734
|
+
/**
|
|
34735
|
+
* @internal
|
|
34736
|
+
*/
|
|
34737
|
+
var reorderList = function (context) {
|
|
34738
|
+
if (context.deleteResult != 'range') {
|
|
34739
|
+
return;
|
|
34740
|
+
}
|
|
34741
|
+
var paragraph = context.insertPoint.paragraph;
|
|
34742
|
+
var listItemAndParent = (0, getListItemFromInsertPoint_1.getListItemFromInsertPoint)(context.insertPoint);
|
|
34743
|
+
if (listItemAndParent) {
|
|
34744
|
+
var _a = (0, tslib_1.__read)(listItemAndParent, 1), item = _a[0];
|
|
34745
|
+
var mutableList = (0, roosterjs_content_model_dom_1.mutateBlock)(item);
|
|
34746
|
+
mutableList.blocks.splice(mutableList.blocks.indexOf(paragraph), mutableList.blocks.length);
|
|
34747
|
+
}
|
|
34748
|
+
};
|
|
34749
|
+
exports.reorderList = reorderList;
|
|
34750
|
+
|
|
34751
|
+
|
|
34135
34752
|
/***/ },
|
|
34136
34753
|
|
|
34137
34754
|
/***/ "./packages/roosterjs-content-model-plugins/lib/edit/EditPlugin.ts"
|
|
@@ -34415,6 +35032,9 @@ var deleteAllSegmentBefore = function (context) {
|
|
|
34415
35032
|
context.deleteResult = 'range';
|
|
34416
35033
|
}
|
|
34417
35034
|
}
|
|
35035
|
+
if (mutableParagraph.segments.length == 1 && mutableParagraph.segments[0] == marker) {
|
|
35036
|
+
mutableParagraph.segments.push((0, roosterjs_content_model_dom_1.createBr)(marker.format));
|
|
35037
|
+
}
|
|
34418
35038
|
};
|
|
34419
35039
|
exports.deleteAllSegmentBefore = deleteAllSegmentBefore;
|
|
34420
35040
|
|
|
@@ -34630,6 +35250,7 @@ var insertNewLine = function (quote, parent, quoteIndex, paragraph) {
|
|
|
34630
35250
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
34631
35251
|
exports.deleteList = void 0;
|
|
34632
35252
|
var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.mjs");
|
|
35253
|
+
var getListItemFromInsertPoint_1 = __webpack_require__(/*! ../utils/getListItemFromInsertPoint */ "./packages/roosterjs-content-model-plugins/lib/edit/utils/getListItemFromInsertPoint.ts");
|
|
34633
35254
|
var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
|
|
34634
35255
|
/**
|
|
34635
35256
|
* @internal
|
|
@@ -34639,18 +35260,14 @@ var deleteList = function (context) {
|
|
|
34639
35260
|
if (context.deleteResult != 'notDeleted') {
|
|
34640
35261
|
return;
|
|
34641
35262
|
}
|
|
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) {
|
|
35263
|
+
var paragraph = context.insertPoint.paragraph;
|
|
35264
|
+
var listItemAndParent = (0, getListItemFromInsertPoint_1.getListItemFromInsertPoint)(context.insertPoint);
|
|
35265
|
+
if (listItemAndParent) {
|
|
35266
|
+
var _c = (0, tslib_1.__read)(listItemAndParent, 2), item = _c[0], parent_1 = _c[1];
|
|
34650
35267
|
var mutableList = (0, roosterjs_content_model_dom_1.mutateBlock)(item);
|
|
34651
35268
|
var lastLevel = mutableList.levels[mutableList.levels.length - 1];
|
|
34652
|
-
var listItemIndex =
|
|
34653
|
-
var previousItem =
|
|
35269
|
+
var listItemIndex = parent_1.blocks.indexOf(item);
|
|
35270
|
+
var previousItem = parent_1.blocks[listItemIndex - 1];
|
|
34654
35271
|
// 1. If the last level is dummy, just remove it (legacy behavior)
|
|
34655
35272
|
// 2. If focus is at the beginning of list item and previous block is a list item with the same level count,
|
|
34656
35273
|
// merge current list item into previous one
|
|
@@ -34666,7 +35283,7 @@ var deleteList = function (context) {
|
|
|
34666
35283
|
previousItem.levels.length == mutableList.levels.length) {
|
|
34667
35284
|
var mutablePreviousItem = (0, roosterjs_content_model_dom_1.mutateBlock)(previousItem);
|
|
34668
35285
|
(_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)(
|
|
35286
|
+
(0, roosterjs_content_model_dom_1.mutateBlock)(parent_1).blocks.splice(listItemIndex, 1);
|
|
34670
35287
|
context.deleteResult = 'range';
|
|
34671
35288
|
}
|
|
34672
35289
|
else {
|
|
@@ -34674,10 +35291,10 @@ var deleteList = function (context) {
|
|
|
34674
35291
|
if (mutableList.levels.length > 1) {
|
|
34675
35292
|
var newListItem = (0, roosterjs_content_model_dom_1.createListItem)(mutableList.levels.slice(0, -1), mutableList.formatHolder.format);
|
|
34676
35293
|
newListItem.blocks = removedBlocks.map(function (block) { return (0, roosterjs_content_model_dom_1.mutateBlock)(block); });
|
|
34677
|
-
(0, roosterjs_content_model_dom_1.mutateBlock)(
|
|
35294
|
+
(0, roosterjs_content_model_dom_1.mutateBlock)(parent_1).blocks.splice(listItemIndex + 1, 0, newListItem);
|
|
34678
35295
|
}
|
|
34679
35296
|
else {
|
|
34680
|
-
(_b = (0, roosterjs_content_model_dom_1.mutateBlock)(
|
|
35297
|
+
(_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
35298
|
}
|
|
34682
35299
|
context.deleteResult = 'range';
|
|
34683
35300
|
}
|
|
@@ -35142,6 +35759,11 @@ var handleEnterOnParagraph = function (formatsToPreserveOnMerge) { return functi
|
|
|
35142
35759
|
context.deleteResult = 'range';
|
|
35143
35760
|
context.lastParagraph = newPara;
|
|
35144
35761
|
context.insertPoint.paragraph = newPara;
|
|
35762
|
+
if (context.formatContext) {
|
|
35763
|
+
context.formatContext.announceData = {
|
|
35764
|
+
defaultStrings: 'newLineInserted',
|
|
35765
|
+
};
|
|
35766
|
+
}
|
|
35145
35767
|
}
|
|
35146
35768
|
}; };
|
|
35147
35769
|
exports.handleEnterOnParagraph = handleEnterOnParagraph;
|
|
@@ -35846,6 +36468,37 @@ function getLeafSiblingBlock(path, block, isNext) {
|
|
|
35846
36468
|
exports.getLeafSiblingBlock = getLeafSiblingBlock;
|
|
35847
36469
|
|
|
35848
36470
|
|
|
36471
|
+
/***/ },
|
|
36472
|
+
|
|
36473
|
+
/***/ "./packages/roosterjs-content-model-plugins/lib/edit/utils/getListItemFromInsertPoint.ts"
|
|
36474
|
+
/*!***********************************************************************************************!*\
|
|
36475
|
+
!*** ./packages/roosterjs-content-model-plugins/lib/edit/utils/getListItemFromInsertPoint.ts ***!
|
|
36476
|
+
\***********************************************************************************************/
|
|
36477
|
+
(__unused_webpack_module, exports, __webpack_require__) {
|
|
36478
|
+
|
|
36479
|
+
"use strict";
|
|
36480
|
+
|
|
36481
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
36482
|
+
exports.getListItemFromInsertPoint = void 0;
|
|
36483
|
+
var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
|
|
36484
|
+
/**
|
|
36485
|
+
* @internal
|
|
36486
|
+
*/
|
|
36487
|
+
function getListItemFromInsertPoint(insertPoint) {
|
|
36488
|
+
var paragraph = insertPoint.paragraph, marker = insertPoint.marker, path = insertPoint.path;
|
|
36489
|
+
var index = (0, roosterjs_content_model_dom_1.getClosestAncestorBlockGroupIndex)(path, ['ListItem'], ['TableCell', 'FormatContainer']);
|
|
36490
|
+
var item = path[index];
|
|
36491
|
+
var parent = path[index + 1];
|
|
36492
|
+
return (item === null || item === void 0 ? void 0 : item.blockGroupType) == 'ListItem' &&
|
|
36493
|
+
item.levels.length > 0 &&
|
|
36494
|
+
paragraph.segments[0] == marker &&
|
|
36495
|
+
parent
|
|
36496
|
+
? [item, parent]
|
|
36497
|
+
: null;
|
|
36498
|
+
}
|
|
36499
|
+
exports.getListItemFromInsertPoint = getListItemFromInsertPoint;
|
|
36500
|
+
|
|
36501
|
+
|
|
35849
36502
|
/***/ },
|
|
35850
36503
|
|
|
35851
36504
|
/***/ "./packages/roosterjs-content-model-plugins/lib/edit/utils/preserveParagraphFormat.ts"
|
|
@@ -37390,7 +38043,7 @@ var ImageEditPlugin = /** @class */ (function () {
|
|
|
37390
38043
|
if (this.imageEditInfo) {
|
|
37391
38044
|
this.startEditing(editor, image, ['resize', 'rotate']);
|
|
37392
38045
|
if (this.selectedImage && this.imageEditInfo && this.wrapper && this.clonedImage) {
|
|
37393
|
-
var
|
|
38046
|
+
var _c = editor.getEnvironment(), isMobileOrTablet = _c.isMobileOrTablet, isTouchSupported = _c.isTouchSupported;
|
|
37394
38047
|
this.dndHelpers = (0, tslib_1.__spreadArray)((0, tslib_1.__spreadArray)([], (0, tslib_1.__read)((0, getDropAndDragHelpers_1.getDropAndDragHelpers)(this.wrapper, this.imageEditInfo, this.options, ImageEditElementClass_1.ImageEditElementClass.ResizeHandle, resizerContext_1.Resizer, function () {
|
|
37395
38048
|
if (_this.imageEditInfo &&
|
|
37396
38049
|
_this.selectedImage &&
|
|
@@ -37399,7 +38052,7 @@ var ImageEditPlugin = /** @class */ (function () {
|
|
|
37399
38052
|
(0, updateWrapper_1.updateWrapper)(_this.imageEditInfo, _this.options, _this.selectedImage, _this.clonedImage, _this.wrapper, _this.resizers, undefined /* croppers */, isRTL);
|
|
37400
38053
|
_this.wasImageResized = true;
|
|
37401
38054
|
}
|
|
37402
|
-
}, this.zoomScale,
|
|
38055
|
+
}, this.zoomScale, !!isMobileOrTablet, !!isTouchSupported)), false), (0, tslib_1.__read)((0, getDropAndDragHelpers_1.getDropAndDragHelpers)(this.wrapper, this.imageEditInfo, this.options, ImageEditElementClass_1.ImageEditElementClass.RotateHandle, rotatorContext_1.Rotator, function () {
|
|
37403
38056
|
var _a, _b;
|
|
37404
38057
|
if (_this.imageEditInfo &&
|
|
37405
38058
|
_this.selectedImage &&
|
|
@@ -37409,7 +38062,7 @@ var ImageEditPlugin = /** @class */ (function () {
|
|
|
37409
38062
|
_this.updateRotateHandleState(editor, _this.selectedImage, _this.wrapper, _this.rotators, (_a = _this.imageEditInfo) === null || _a === void 0 ? void 0 : _a.angleRad, !!((_b = _this.options) === null || _b === void 0 ? void 0 : _b.disableSideResize));
|
|
37410
38063
|
_this.updateResizeHandleDirection(_this.resizers, _this.imageEditInfo.angleRad);
|
|
37411
38064
|
}
|
|
37412
|
-
}, this.zoomScale,
|
|
38065
|
+
}, this.zoomScale, !!isMobileOrTablet, !!isTouchSupported)), false);
|
|
37413
38066
|
(0, updateWrapper_1.updateWrapper)(this.imageEditInfo, this.options, this.selectedImage, this.clonedImage, this.wrapper, this.resizers, undefined /* croppers */, isRTL);
|
|
37414
38067
|
this.updateRotateHandleState(editor, this.selectedImage, this.wrapper, this.rotators, (_a = this.imageEditInfo) === null || _a === void 0 ? void 0 : _a.angleRad, !!((_b = this.options) === null || _b === void 0 ? void 0 : _b.disableSideResize));
|
|
37415
38068
|
}
|
|
@@ -37455,7 +38108,7 @@ var ImageEditPlugin = /** @class */ (function () {
|
|
|
37455
38108
|
(0, updateWrapper_1.updateWrapper)(_this.imageEditInfo, _this.options, _this.selectedImage, _this.clonedImage, _this.wrapper, undefined /* resizers */, _this.croppers, isRTL);
|
|
37456
38109
|
_this.isCropMode = true;
|
|
37457
38110
|
}
|
|
37458
|
-
}, this.zoomScale, !!editor.getEnvironment().isMobileOrTablet)), false);
|
|
38111
|
+
}, this.zoomScale, !!editor.getEnvironment().isMobileOrTablet, !!editor.getEnvironment().isTouchSupported)), false);
|
|
37459
38112
|
(0, updateWrapper_1.updateWrapper)(this.imageEditInfo, this.options, this.selectedImage, this.clonedImage, this.wrapper, undefined /* resizers */, this.croppers, isRTL);
|
|
37460
38113
|
}
|
|
37461
38114
|
}
|
|
@@ -38674,7 +39327,7 @@ var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-mo
|
|
|
38674
39327
|
/**
|
|
38675
39328
|
* @internal
|
|
38676
39329
|
*/
|
|
38677
|
-
function getDropAndDragHelpers(wrapper, editInfo, options, elementClass, helper, updateWrapper, zoomScale,
|
|
39330
|
+
function getDropAndDragHelpers(wrapper, editInfo, options, elementClass, helper, updateWrapper, zoomScale, forceMobile, isTouchSupported) {
|
|
38678
39331
|
return getEditElements(wrapper, elementClass).map(function (element) {
|
|
38679
39332
|
return new DragAndDropHelper_1.DragAndDropHelper(element, {
|
|
38680
39333
|
editInfo: editInfo,
|
|
@@ -38682,7 +39335,7 @@ function getDropAndDragHelpers(wrapper, editInfo, options, elementClass, helper,
|
|
|
38682
39335
|
elementClass: elementClass,
|
|
38683
39336
|
x: element.dataset.x,
|
|
38684
39337
|
y: element.dataset.y,
|
|
38685
|
-
}, updateWrapper, helper, zoomScale,
|
|
39338
|
+
}, updateWrapper, helper, zoomScale, forceMobile, isTouchSupported);
|
|
38686
39339
|
});
|
|
38687
39340
|
}
|
|
38688
39341
|
exports.getDropAndDragHelpers = getDropAndDragHelpers;
|
|
@@ -42255,7 +42908,7 @@ var MOUSE_EVENT_INFO_DESKTOP = (function () {
|
|
|
42255
42908
|
MOUSEDOWN: 'mousedown',
|
|
42256
42909
|
MOUSEMOVE: 'mousemove',
|
|
42257
42910
|
MOUSEUP: 'mouseup',
|
|
42258
|
-
|
|
42911
|
+
normalizeEvent: normalizeMouseEvent,
|
|
42259
42912
|
};
|
|
42260
42913
|
})();
|
|
42261
42914
|
var MOUSE_EVENT_INFO_MOBILE = (function () {
|
|
@@ -42263,21 +42916,37 @@ var MOUSE_EVENT_INFO_MOBILE = (function () {
|
|
|
42263
42916
|
MOUSEDOWN: 'touchstart',
|
|
42264
42917
|
MOUSEMOVE: 'touchmove',
|
|
42265
42918
|
MOUSEUP: 'touchend',
|
|
42266
|
-
|
|
42919
|
+
normalizeEvent: normalizeTouchEvent,
|
|
42267
42920
|
};
|
|
42268
42921
|
})();
|
|
42269
|
-
function
|
|
42270
|
-
|
|
42271
|
-
|
|
42272
|
-
|
|
42273
|
-
|
|
42274
|
-
|
|
42275
|
-
|
|
42276
|
-
|
|
42277
|
-
|
|
42278
|
-
|
|
42279
|
-
}
|
|
42280
|
-
|
|
42922
|
+
function normalizeMouseEvent(event) {
|
|
42923
|
+
var mouseEvent = event;
|
|
42924
|
+
return {
|
|
42925
|
+
clientX: mouseEvent.clientX,
|
|
42926
|
+
clientY: mouseEvent.clientY,
|
|
42927
|
+
pageX: mouseEvent.pageX,
|
|
42928
|
+
pageY: mouseEvent.pageY,
|
|
42929
|
+
target: mouseEvent.target,
|
|
42930
|
+
shiftKey: mouseEvent.shiftKey,
|
|
42931
|
+
altKey: mouseEvent.altKey,
|
|
42932
|
+
};
|
|
42933
|
+
}
|
|
42934
|
+
function normalizeTouchEvent(event) {
|
|
42935
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
|
42936
|
+
var touchEvent = event;
|
|
42937
|
+
var touch = (_b = (_a = touchEvent.targetTouches) === null || _a === void 0 ? void 0 : _a[0]) !== null && _b !== void 0 ? _b : (_c = touchEvent.changedTouches) === null || _c === void 0 ? void 0 : _c[0];
|
|
42938
|
+
var clientX = (_d = touch === null || touch === void 0 ? void 0 : touch.clientX) !== null && _d !== void 0 ? _d : 0;
|
|
42939
|
+
var clientY = (_e = touch === null || touch === void 0 ? void 0 : touch.clientY) !== null && _e !== void 0 ? _e : 0;
|
|
42940
|
+
var document = (_g = (_f = touchEvent.view) === null || _f === void 0 ? void 0 : _f.document) !== null && _g !== void 0 ? _g : (_h = event.target) === null || _h === void 0 ? void 0 : _h.ownerDocument;
|
|
42941
|
+
return {
|
|
42942
|
+
clientX: clientX,
|
|
42943
|
+
clientY: clientY,
|
|
42944
|
+
pageX: (_j = touch === null || touch === void 0 ? void 0 : touch.pageX) !== null && _j !== void 0 ? _j : 0,
|
|
42945
|
+
pageY: (_k = touch === null || touch === void 0 ? void 0 : touch.pageY) !== null && _k !== void 0 ? _k : 0,
|
|
42946
|
+
target: touch ? (_l = document === null || document === void 0 ? void 0 : document.elementFromPoint(clientX, clientY)) !== null && _l !== void 0 ? _l : event.target : event.target,
|
|
42947
|
+
shiftKey: false,
|
|
42948
|
+
altKey: false,
|
|
42949
|
+
};
|
|
42281
42950
|
}
|
|
42282
42951
|
/**
|
|
42283
42952
|
* @internal
|
|
@@ -42294,8 +42963,9 @@ var DragAndDropHelper = /** @class */ (function () {
|
|
|
42294
42963
|
* @param handler The event handler object, see DragAndDropHandler interface for more information
|
|
42295
42964
|
* @param zoomScale The zoom scale of the editor
|
|
42296
42965
|
* @param forceMobile A boolean to force the use of touch controls for the helper
|
|
42966
|
+
* @param isTouchSupported Whether the current browser supports touch input
|
|
42297
42967
|
*/
|
|
42298
|
-
function DragAndDropHelper(trigger, context, onSubmit, handler, zoomScale, forceMobile) {
|
|
42968
|
+
function DragAndDropHelper(trigger, context, onSubmit, handler, zoomScale, forceMobile, isTouchSupported) {
|
|
42299
42969
|
var _this = this;
|
|
42300
42970
|
this.trigger = trigger;
|
|
42301
42971
|
this.context = context;
|
|
@@ -42305,23 +42975,29 @@ var DragAndDropHelper = /** @class */ (function () {
|
|
|
42305
42975
|
this.initX = 0;
|
|
42306
42976
|
this.initY = 0;
|
|
42307
42977
|
this.initValue = undefined;
|
|
42978
|
+
this.dndMouse = MOUSE_EVENT_INFO_DESKTOP;
|
|
42308
42979
|
this.onMouseDown = function (e) {
|
|
42309
42980
|
var _a;
|
|
42310
42981
|
var _b, _c;
|
|
42311
42982
|
e.preventDefault();
|
|
42312
42983
|
e.stopPropagation();
|
|
42984
|
+
_this.dndMouse =
|
|
42985
|
+
e.type == MOUSE_EVENT_INFO_MOBILE.MOUSEDOWN
|
|
42986
|
+
? MOUSE_EVENT_INFO_MOBILE
|
|
42987
|
+
: MOUSE_EVENT_INFO_DESKTOP;
|
|
42313
42988
|
_this.addDocumentEvents();
|
|
42314
|
-
|
|
42315
|
-
|
|
42989
|
+
var event = _this.dndMouse.normalizeEvent(e);
|
|
42990
|
+
_a = (0, tslib_1.__read)([event.pageX, event.pageY], 2), _this.initX = _a[0], _this.initY = _a[1];
|
|
42991
|
+
_this.initValue = (_c = (_b = _this.handler).onDragStart) === null || _c === void 0 ? void 0 : _c.call(_b, _this.context, event);
|
|
42316
42992
|
};
|
|
42317
42993
|
this.onMouseMove = function (e) {
|
|
42318
42994
|
var _a, _b, _c;
|
|
42319
42995
|
e.preventDefault();
|
|
42320
|
-
var
|
|
42321
|
-
var deltaX = (pageX - _this.initX) / _this.zoomScale;
|
|
42322
|
-
var deltaY = (pageY - _this.initY) / _this.zoomScale;
|
|
42996
|
+
var event = _this.dndMouse.normalizeEvent(e);
|
|
42997
|
+
var deltaX = (event.pageX - _this.initX) / _this.zoomScale;
|
|
42998
|
+
var deltaY = (event.pageY - _this.initY) / _this.zoomScale;
|
|
42323
42999
|
if (_this.initValue &&
|
|
42324
|
-
((_b = (_a = _this.handler).onDragging) === null || _b === void 0 ? void 0 : _b.call(_a, _this.context,
|
|
43000
|
+
((_b = (_a = _this.handler).onDragging) === null || _b === void 0 ? void 0 : _b.call(_a, _this.context, event, _this.initValue, deltaX, deltaY))) {
|
|
42325
43001
|
(_c = _this.onSubmit) === null || _c === void 0 ? void 0 : _c.call(_this, _this.context, _this.trigger);
|
|
42326
43002
|
}
|
|
42327
43003
|
};
|
|
@@ -42329,18 +43005,33 @@ var DragAndDropHelper = /** @class */ (function () {
|
|
|
42329
43005
|
var _a, _b, _c;
|
|
42330
43006
|
e.preventDefault();
|
|
42331
43007
|
_this.removeDocumentEvents();
|
|
42332
|
-
if ((_b = (_a = _this.handler).onDragEnd) === null || _b === void 0 ? void 0 : _b.call(_a, _this.context, e, _this.initValue)) {
|
|
43008
|
+
if ((_b = (_a = _this.handler).onDragEnd) === null || _b === void 0 ? void 0 : _b.call(_a, _this.context, _this.dndMouse.normalizeEvent(e), _this.initValue)) {
|
|
42333
43009
|
(_c = _this.onSubmit) === null || _c === void 0 ? void 0 : _c.call(_this, _this.context, _this.trigger);
|
|
42334
43010
|
}
|
|
42335
43011
|
};
|
|
42336
|
-
this.
|
|
42337
|
-
|
|
43012
|
+
this.dndMouseList = forceMobile
|
|
43013
|
+
? [MOUSE_EVENT_INFO_MOBILE]
|
|
43014
|
+
: isTouchSupported
|
|
43015
|
+
? [MOUSE_EVENT_INFO_DESKTOP, MOUSE_EVENT_INFO_MOBILE]
|
|
43016
|
+
: [MOUSE_EVENT_INFO_DESKTOP];
|
|
43017
|
+
this.dndMouse = this.dndMouseList[0];
|
|
43018
|
+
this.originalTouchAction = trigger.style.touchAction;
|
|
43019
|
+
if (this.dndMouseList.indexOf(MOUSE_EVENT_INFO_MOBILE) >= 0) {
|
|
43020
|
+
trigger.style.touchAction = 'none';
|
|
43021
|
+
}
|
|
43022
|
+
this.dndMouseList.forEach(function (eventInfo) {
|
|
43023
|
+
return trigger.addEventListener(eventInfo.MOUSEDOWN, _this.onMouseDown, { passive: false });
|
|
43024
|
+
});
|
|
42338
43025
|
}
|
|
42339
43026
|
/**
|
|
42340
43027
|
* Dispose this object, remove all event listeners that has been attached
|
|
42341
43028
|
*/
|
|
42342
43029
|
DragAndDropHelper.prototype.dispose = function () {
|
|
42343
|
-
|
|
43030
|
+
var _this = this;
|
|
43031
|
+
this.dndMouseList.forEach(function (eventInfo) {
|
|
43032
|
+
return _this.trigger.removeEventListener(eventInfo.MOUSEDOWN, _this.onMouseDown);
|
|
43033
|
+
});
|
|
43034
|
+
this.trigger.style.touchAction = this.originalTouchAction;
|
|
42344
43035
|
this.removeDocumentEvents();
|
|
42345
43036
|
};
|
|
42346
43037
|
Object.defineProperty(DragAndDropHelper.prototype, "mouseType", {
|
|
@@ -42352,8 +43043,14 @@ var DragAndDropHelper = /** @class */ (function () {
|
|
|
42352
43043
|
});
|
|
42353
43044
|
DragAndDropHelper.prototype.addDocumentEvents = function () {
|
|
42354
43045
|
var doc = this.trigger.ownerDocument;
|
|
42355
|
-
doc.addEventListener(this.dndMouse.MOUSEMOVE, this.onMouseMove,
|
|
42356
|
-
|
|
43046
|
+
doc.addEventListener(this.dndMouse.MOUSEMOVE, this.onMouseMove, {
|
|
43047
|
+
capture: true,
|
|
43048
|
+
passive: false,
|
|
43049
|
+
});
|
|
43050
|
+
doc.addEventListener(this.dndMouse.MOUSEUP, this.onMouseUp, {
|
|
43051
|
+
capture: true,
|
|
43052
|
+
passive: false,
|
|
43053
|
+
});
|
|
42357
43054
|
};
|
|
42358
43055
|
DragAndDropHelper.prototype.removeDocumentEvents = function () {
|
|
42359
43056
|
var doc = this.trigger.ownerDocument;
|
|
@@ -42891,32 +43588,23 @@ var TableEditPlugin = /** @class */ (function () {
|
|
|
42891
43588
|
}
|
|
42892
43589
|
};
|
|
42893
43590
|
this.onMouseMove = function (event) {
|
|
42894
|
-
var _a
|
|
43591
|
+
var _a;
|
|
42895
43592
|
var e = event;
|
|
42896
43593
|
var editorWindow = (_a = _this.editor) === null || _a === void 0 ? void 0 : _a.getDocument().defaultView;
|
|
42897
43594
|
if (e.buttons > 0 || !editorWindow) {
|
|
42898
43595
|
return;
|
|
42899
43596
|
}
|
|
42900
|
-
_this.ensureTableRects();
|
|
42901
43597
|
var x = e.pageX - editorWindow.scrollX;
|
|
42902
43598
|
var y = e.pageY - editorWindow.scrollY;
|
|
42903
|
-
|
|
42904
|
-
|
|
42905
|
-
|
|
42906
|
-
|
|
42907
|
-
|
|
42908
|
-
|
|
42909
|
-
|
|
42910
|
-
|
|
42911
|
-
y >= rect.top - TABLE_RESIZER_LENGTH &&
|
|
42912
|
-
y <= rect.bottom + TABLE_RESIZER_LENGTH) {
|
|
42913
|
-
currentTable = entry;
|
|
42914
|
-
break;
|
|
42915
|
-
}
|
|
42916
|
-
}
|
|
43599
|
+
_this.updateTableEditor(x, y, event, true /* updateHoveredFeature */);
|
|
43600
|
+
};
|
|
43601
|
+
this.onTouchStart = function (event) {
|
|
43602
|
+
var _a;
|
|
43603
|
+
var touchEvent = event;
|
|
43604
|
+
var touch = (_a = touchEvent.targetTouches[0]) !== null && _a !== void 0 ? _a : touchEvent.changedTouches[0];
|
|
43605
|
+
if (touch) {
|
|
43606
|
+
_this.updateTableEditor(touch.clientX, touch.clientY, event, false /* updateHoveredFeature */);
|
|
42917
43607
|
}
|
|
42918
|
-
_this.setTableEditor(currentTable, e);
|
|
42919
|
-
(_b = _this.tableEditor) === null || _b === void 0 ? void 0 : _b.onMouseMove(x, y);
|
|
42920
43608
|
};
|
|
42921
43609
|
this.invalidateTableRects = function () {
|
|
42922
43610
|
_this.tableRectMap = null;
|
|
@@ -42936,6 +43624,7 @@ var TableEditPlugin = /** @class */ (function () {
|
|
|
42936
43624
|
this.editor = editor;
|
|
42937
43625
|
this.onMouseMoveDisposer = this.editor.attachDomEvent({
|
|
42938
43626
|
mousemove: { beforeDispatch: this.onMouseMove },
|
|
43627
|
+
touchstart: { beforeDispatch: this.onTouchStart },
|
|
42939
43628
|
});
|
|
42940
43629
|
var scrollContainer = this.editor.getScrollContainer();
|
|
42941
43630
|
scrollContainer.addEventListener('mouseout', this.onMouseOut);
|
|
@@ -42969,6 +43658,32 @@ var TableEditPlugin = /** @class */ (function () {
|
|
|
42969
43658
|
break;
|
|
42970
43659
|
}
|
|
42971
43660
|
};
|
|
43661
|
+
TableEditPlugin.prototype.updateTableEditor = function (x, y, event, updateHoveredFeature) {
|
|
43662
|
+
var _a, _b;
|
|
43663
|
+
this.ensureTableRects();
|
|
43664
|
+
var currentTable = null;
|
|
43665
|
+
//Find table in range of mouse
|
|
43666
|
+
if (this.tableRectMap) {
|
|
43667
|
+
for (var i = this.tableRectMap.length - 1; i >= 0; i--) {
|
|
43668
|
+
var entry = this.tableRectMap[i];
|
|
43669
|
+
var rect = entry.rect;
|
|
43670
|
+
if (x >= rect.left - TABLE_RESIZER_LENGTH &&
|
|
43671
|
+
x <= rect.right + TABLE_RESIZER_LENGTH &&
|
|
43672
|
+
y >= rect.top - TABLE_RESIZER_LENGTH &&
|
|
43673
|
+
y <= rect.bottom + TABLE_RESIZER_LENGTH) {
|
|
43674
|
+
currentTable = entry;
|
|
43675
|
+
break;
|
|
43676
|
+
}
|
|
43677
|
+
}
|
|
43678
|
+
}
|
|
43679
|
+
this.setTableEditor(currentTable, event);
|
|
43680
|
+
if (updateHoveredFeature) {
|
|
43681
|
+
(_a = this.tableEditor) === null || _a === void 0 ? void 0 : _a.onMouseMove(x, y);
|
|
43682
|
+
}
|
|
43683
|
+
else {
|
|
43684
|
+
(_b = this.tableEditor) === null || _b === void 0 ? void 0 : _b.onTouchStart(x, y);
|
|
43685
|
+
}
|
|
43686
|
+
};
|
|
42972
43687
|
/**
|
|
42973
43688
|
* @internal Public only for unit test
|
|
42974
43689
|
* @param entry Table to use when setting the Editors
|
|
@@ -43303,6 +44018,26 @@ var TableEditor = /** @class */ (function () {
|
|
|
43303
44018
|
// Create Mover and Resizer
|
|
43304
44019
|
this.setEditorFeatures();
|
|
43305
44020
|
};
|
|
44021
|
+
/**
|
|
44022
|
+
* Public only for testing purposes
|
|
44023
|
+
*/
|
|
44024
|
+
TableEditor.prototype.onTouchStart = function (x, y) {
|
|
44025
|
+
for (var rowIndex = 0; rowIndex < this.table.rows.length; rowIndex++) {
|
|
44026
|
+
var row = this.table.rows[rowIndex];
|
|
44027
|
+
for (var cellIndex = 0; cellIndex < row.cells.length; cellIndex++) {
|
|
44028
|
+
var td = row.cells[cellIndex];
|
|
44029
|
+
var rect = (0, roosterjs_content_model_dom_1.normalizeRect)(td.getBoundingClientRect());
|
|
44030
|
+
if (rect &&
|
|
44031
|
+
x >= rect.left &&
|
|
44032
|
+
x <= rect.right &&
|
|
44033
|
+
y >= rect.top &&
|
|
44034
|
+
y <= rect.bottom) {
|
|
44035
|
+
!this.isFeatureDisabled('CellResizer') && this.setResizingTd(td);
|
|
44036
|
+
return;
|
|
44037
|
+
}
|
|
44038
|
+
}
|
|
44039
|
+
}
|
|
44040
|
+
};
|
|
43306
44041
|
TableEditor.prototype.setEditorFeatures = function () {
|
|
43307
44042
|
var disableSelector = this.isFeatureDisabled('TableSelector');
|
|
43308
44043
|
var disableMovement = this.isFeatureDisabled('TableMover');
|
|
@@ -43464,14 +44199,14 @@ function createCellResizer(editor, td, table, isRTL, isHorizontal, onStart, onEn
|
|
|
43464
44199
|
onDragging: isHorizontal ? onDraggingHorizontal : onDraggingVertical,
|
|
43465
44200
|
onDragEnd: onEnd,
|
|
43466
44201
|
};
|
|
43467
|
-
var featureHandler = new CellResizer(div, context, setPosition, handler, zoomScale, editor.getEnvironment().isMobileOrTablet, onTableEditorCreated);
|
|
44202
|
+
var featureHandler = new CellResizer(div, context, setPosition, handler, zoomScale, editor.getEnvironment().isMobileOrTablet, editor.getEnvironment().isTouchSupported, onTableEditorCreated);
|
|
43468
44203
|
return { node: td, div: div, featureHandler: featureHandler };
|
|
43469
44204
|
}
|
|
43470
44205
|
exports.createCellResizer = createCellResizer;
|
|
43471
44206
|
var CellResizer = /** @class */ (function (_super) {
|
|
43472
44207
|
(0, tslib_1.__extends)(CellResizer, _super);
|
|
43473
|
-
function CellResizer(trigger, context, onSubmit, handler, zoomScale, forceMobile, onTableEditorCreated) {
|
|
43474
|
-
var _this = _super.call(this, trigger, context, onSubmit, handler, zoomScale, forceMobile) || this;
|
|
44208
|
+
function CellResizer(trigger, context, onSubmit, handler, zoomScale, forceMobile, isTouchSupported, onTableEditorCreated) {
|
|
44209
|
+
var _this = _super.call(this, trigger, context, onSubmit, handler, zoomScale, forceMobile, isTouchSupported) || this;
|
|
43475
44210
|
_this.disposer = onTableEditorCreated === null || onTableEditorCreated === void 0 ? void 0 : onTableEditorCreated('CellResizer', trigger);
|
|
43476
44211
|
return _this;
|
|
43477
44212
|
}
|
|
@@ -43900,14 +44635,14 @@ function createTableMover(table, editor, isRTL, onFinishDragging, onStart, onEnd
|
|
|
43900
44635
|
onDragStart: onDragStart,
|
|
43901
44636
|
onDragging: onDragging,
|
|
43902
44637
|
onDragEnd: onDragEnd,
|
|
43903
|
-
}, context.zoomScale, onTableEditorCreated, editor.getEnvironment().isMobileOrTablet);
|
|
44638
|
+
}, context.zoomScale, onTableEditorCreated, editor.getEnvironment().isMobileOrTablet, editor.getEnvironment().isTouchSupported);
|
|
43904
44639
|
return { node: table, div: div, featureHandler: featureHandler };
|
|
43905
44640
|
}
|
|
43906
44641
|
exports.createTableMover = createTableMover;
|
|
43907
44642
|
var TableMoverFeature = /** @class */ (function (_super) {
|
|
43908
44643
|
(0, tslib_1.__extends)(TableMoverFeature, _super);
|
|
43909
|
-
function TableMoverFeature(div, context, onSubmit, handler, zoomScale, onTableEditorCreated, forceMobile) {
|
|
43910
|
-
var _this = _super.call(this, div, context, onSubmit, handler, zoomScale, forceMobile) || this;
|
|
44644
|
+
function TableMoverFeature(div, context, onSubmit, handler, zoomScale, onTableEditorCreated, forceMobile, isTouchSupported) {
|
|
44645
|
+
var _this = _super.call(this, div, context, onSubmit, handler, zoomScale, forceMobile, isTouchSupported) || this;
|
|
43911
44646
|
_this.disposer = onTableEditorCreated === null || onTableEditorCreated === void 0 ? void 0 : onTableEditorCreated('TableMover', div);
|
|
43912
44647
|
return _this;
|
|
43913
44648
|
}
|
|
@@ -44137,14 +44872,14 @@ function createTableResizer(table, editor, isRTL, onStart, onEnd, contentDiv, an
|
|
|
44137
44872
|
onDragStart: onDragStart,
|
|
44138
44873
|
onDragging: onDragging,
|
|
44139
44874
|
onDragEnd: onDragEnd,
|
|
44140
|
-
}, zoomScale, editor.getEnvironment().isMobileOrTablet, onTableEditorCreated);
|
|
44875
|
+
}, zoomScale, editor.getEnvironment().isMobileOrTablet, editor.getEnvironment().isTouchSupported, onTableEditorCreated);
|
|
44141
44876
|
return { node: table, div: div, featureHandler: featureHandler };
|
|
44142
44877
|
}
|
|
44143
44878
|
exports.createTableResizer = createTableResizer;
|
|
44144
44879
|
var TableResizer = /** @class */ (function (_super) {
|
|
44145
44880
|
(0, tslib_1.__extends)(TableResizer, _super);
|
|
44146
|
-
function TableResizer(trigger, context, onSubmit, handler, zoomScale, forceMobile, onTableEditorCreated) {
|
|
44147
|
-
var _this = _super.call(this, trigger, context, onSubmit, handler, zoomScale, forceMobile) || this;
|
|
44881
|
+
function TableResizer(trigger, context, onSubmit, handler, zoomScale, forceMobile, isTouchSupported, onTableEditorCreated) {
|
|
44882
|
+
var _this = _super.call(this, trigger, context, onSubmit, handler, zoomScale, forceMobile, isTouchSupported) || this;
|
|
44148
44883
|
_this.disposer = onTableEditorCreated === null || onTableEditorCreated === void 0 ? void 0 : onTableEditorCreated('TableResizer', trigger);
|
|
44149
44884
|
return _this;
|
|
44150
44885
|
}
|
|
@@ -44331,7 +45066,7 @@ function createTableRowColumnSelector(editor, table, isRowSelector, anchorContai
|
|
|
44331
45066
|
onDragStart: onDragStart,
|
|
44332
45067
|
onDragging: onDragging,
|
|
44333
45068
|
onDragEnd: onDragEnd,
|
|
44334
|
-
}, zoomScale, onTableEditorCreated, editor.getEnvironment().isMobileOrTablet);
|
|
45069
|
+
}, zoomScale, onTableEditorCreated, editor.getEnvironment().isMobileOrTablet, editor.getEnvironment().isTouchSupported);
|
|
44335
45070
|
handlers.push(handler);
|
|
44336
45071
|
}
|
|
44337
45072
|
});
|
|
@@ -44346,8 +45081,8 @@ function createTableRowColumnSelector(editor, table, isRowSelector, anchorContai
|
|
|
44346
45081
|
exports.createTableRowColumnSelector = createTableRowColumnSelector;
|
|
44347
45082
|
var TableRowColumnSelectorHandler = /** @class */ (function (_super) {
|
|
44348
45083
|
(0, tslib_1.__extends)(TableRowColumnSelectorHandler, _super);
|
|
44349
|
-
function TableRowColumnSelectorHandler(div, isRow, context, handler, zoomScale, onTableEditorCreated, forceMobile) {
|
|
44350
|
-
var _this = _super.call(this, div, context, function () { }, handler, zoomScale, forceMobile) || this;
|
|
45084
|
+
function TableRowColumnSelectorHandler(div, isRow, context, handler, zoomScale, onTableEditorCreated, forceMobile, isTouchSupported) {
|
|
45085
|
+
var _this = _super.call(this, div, context, function () { }, handler, zoomScale, forceMobile, isTouchSupported) || this;
|
|
44351
45086
|
_this.isRow = isRow;
|
|
44352
45087
|
_this.disposer = onTableEditorCreated === null || onTableEditorCreated === void 0 ? void 0 : onTableEditorCreated(_this.isRow ? 'TableRowSelector' : 'TableColumnSelector', div);
|
|
44353
45088
|
return _this;
|