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-amd.js
CHANGED
|
@@ -1246,12 +1246,13 @@ module.exports = {
|
|
|
1246
1246
|
/* MIT license */
|
|
1247
1247
|
var colorNames = __webpack_require__(/*! color-name */ "./node_modules/color-name/index.js");
|
|
1248
1248
|
var swizzle = __webpack_require__(/*! simple-swizzle */ "./node_modules/simple-swizzle/index.js");
|
|
1249
|
+
var hasOwnProperty = Object.hasOwnProperty;
|
|
1249
1250
|
|
|
1250
|
-
var reverseNames =
|
|
1251
|
+
var reverseNames = Object.create(null);
|
|
1251
1252
|
|
|
1252
1253
|
// create a list of reverse color names
|
|
1253
1254
|
for (var name in colorNames) {
|
|
1254
|
-
if (
|
|
1255
|
+
if (hasOwnProperty.call(colorNames, name)) {
|
|
1255
1256
|
reverseNames[colorNames[name]] = name;
|
|
1256
1257
|
}
|
|
1257
1258
|
}
|
|
@@ -1294,9 +1295,9 @@ cs.get.rgb = function (string) {
|
|
|
1294
1295
|
|
|
1295
1296
|
var abbr = /^#([a-f0-9]{3,4})$/i;
|
|
1296
1297
|
var hex = /^#([a-f0-9]{6})([a-f0-9]{2})?$/i;
|
|
1297
|
-
var rgba = /^rgba?\(\s*([+-]?\d+)\s
|
|
1298
|
-
var per = /^rgba?\(\s*([+-]?[\d\.]+)\%\s
|
|
1299
|
-
var keyword =
|
|
1298
|
+
var rgba = /^rgba?\(\s*([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/;
|
|
1299
|
+
var per = /^rgba?\(\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/;
|
|
1300
|
+
var keyword = /^(\w+)$/;
|
|
1300
1301
|
|
|
1301
1302
|
var rgb = [0, 0, 0, 1];
|
|
1302
1303
|
var match;
|
|
@@ -1333,7 +1334,11 @@ cs.get.rgb = function (string) {
|
|
|
1333
1334
|
}
|
|
1334
1335
|
|
|
1335
1336
|
if (match[4]) {
|
|
1336
|
-
|
|
1337
|
+
if (match[5]) {
|
|
1338
|
+
rgb[3] = parseFloat(match[4]) * 0.01;
|
|
1339
|
+
} else {
|
|
1340
|
+
rgb[3] = parseFloat(match[4]);
|
|
1341
|
+
}
|
|
1337
1342
|
}
|
|
1338
1343
|
} else if (match = string.match(per)) {
|
|
1339
1344
|
for (i = 0; i < 3; i++) {
|
|
@@ -1341,19 +1346,22 @@ cs.get.rgb = function (string) {
|
|
|
1341
1346
|
}
|
|
1342
1347
|
|
|
1343
1348
|
if (match[4]) {
|
|
1344
|
-
|
|
1349
|
+
if (match[5]) {
|
|
1350
|
+
rgb[3] = parseFloat(match[4]) * 0.01;
|
|
1351
|
+
} else {
|
|
1352
|
+
rgb[3] = parseFloat(match[4]);
|
|
1353
|
+
}
|
|
1345
1354
|
}
|
|
1346
1355
|
} else if (match = string.match(keyword)) {
|
|
1347
1356
|
if (match[1] === 'transparent') {
|
|
1348
1357
|
return [0, 0, 0, 0];
|
|
1349
1358
|
}
|
|
1350
1359
|
|
|
1351
|
-
|
|
1352
|
-
|
|
1353
|
-
if (!rgb) {
|
|
1360
|
+
if (!hasOwnProperty.call(colorNames, match[1])) {
|
|
1354
1361
|
return null;
|
|
1355
1362
|
}
|
|
1356
1363
|
|
|
1364
|
+
rgb = colorNames[match[1]];
|
|
1357
1365
|
rgb[3] = 1;
|
|
1358
1366
|
|
|
1359
1367
|
return rgb;
|
|
@@ -1374,12 +1382,12 @@ cs.get.hsl = function (string) {
|
|
|
1374
1382
|
return null;
|
|
1375
1383
|
}
|
|
1376
1384
|
|
|
1377
|
-
var hsl = /^hsla?\(\s*([+-]?(?:\d{0,3}\.)?\d+)(?:deg)?\s
|
|
1385
|
+
var hsl = /^hsla?\(\s*([+-]?(?:\d{0,3}\.)?\d+)(?:deg)?\s*,?\s*([+-]?[\d\.]+)%\s*,?\s*([+-]?[\d\.]+)%\s*(?:[,|\/]\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/;
|
|
1378
1386
|
var match = string.match(hsl);
|
|
1379
1387
|
|
|
1380
1388
|
if (match) {
|
|
1381
1389
|
var alpha = parseFloat(match[4]);
|
|
1382
|
-
var h = (parseFloat(match[1]) + 360) % 360;
|
|
1390
|
+
var h = ((parseFloat(match[1]) % 360) + 360) % 360;
|
|
1383
1391
|
var s = clamp(parseFloat(match[2]), 0, 100);
|
|
1384
1392
|
var l = clamp(parseFloat(match[3]), 0, 100);
|
|
1385
1393
|
var a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);
|
|
@@ -1395,7 +1403,7 @@ cs.get.hwb = function (string) {
|
|
|
1395
1403
|
return null;
|
|
1396
1404
|
}
|
|
1397
1405
|
|
|
1398
|
-
var hwb = /^hwb\(\s*([+-]?\d{0,3}(?:\.\d+)?)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d
|
|
1406
|
+
var hwb = /^hwb\(\s*([+-]?\d{0,3}(?:\.\d+)?)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/;
|
|
1399
1407
|
var match = string.match(hwb);
|
|
1400
1408
|
|
|
1401
1409
|
if (match) {
|
|
@@ -1474,7 +1482,7 @@ function clamp(num, min, max) {
|
|
|
1474
1482
|
}
|
|
1475
1483
|
|
|
1476
1484
|
function hexDouble(num) {
|
|
1477
|
-
var str = num.toString(16).toUpperCase();
|
|
1485
|
+
var str = Math.round(num).toString(16).toUpperCase();
|
|
1478
1486
|
return (str.length < 2) ? '0' + str : str;
|
|
1479
1487
|
}
|
|
1480
1488
|
|
|
@@ -2042,6 +2050,7 @@ swizzle.wrap = function (fn) {
|
|
|
2042
2050
|
"use strict";
|
|
2043
2051
|
__webpack_require__.r(__webpack_exports__);
|
|
2044
2052
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
2053
|
+
/* harmony export */ __addDisposableResource: () => (/* binding */ __addDisposableResource),
|
|
2045
2054
|
/* harmony export */ __assign: () => (/* binding */ __assign),
|
|
2046
2055
|
/* harmony export */ __asyncDelegator: () => (/* binding */ __asyncDelegator),
|
|
2047
2056
|
/* harmony export */ __asyncGenerator: () => (/* binding */ __asyncGenerator),
|
|
@@ -2053,6 +2062,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
2053
2062
|
/* harmony export */ __classPrivateFieldSet: () => (/* binding */ __classPrivateFieldSet),
|
|
2054
2063
|
/* harmony export */ __createBinding: () => (/* binding */ __createBinding),
|
|
2055
2064
|
/* harmony export */ __decorate: () => (/* binding */ __decorate),
|
|
2065
|
+
/* harmony export */ __disposeResources: () => (/* binding */ __disposeResources),
|
|
2056
2066
|
/* harmony export */ __esDecorate: () => (/* binding */ __esDecorate),
|
|
2057
2067
|
/* harmony export */ __exportStar: () => (/* binding */ __exportStar),
|
|
2058
2068
|
/* harmony export */ __extends: () => (/* binding */ __extends),
|
|
@@ -2065,6 +2075,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
2065
2075
|
/* harmony export */ __propKey: () => (/* binding */ __propKey),
|
|
2066
2076
|
/* harmony export */ __read: () => (/* binding */ __read),
|
|
2067
2077
|
/* harmony export */ __rest: () => (/* binding */ __rest),
|
|
2078
|
+
/* harmony export */ __rewriteRelativeImportExtension: () => (/* binding */ __rewriteRelativeImportExtension),
|
|
2068
2079
|
/* harmony export */ __runInitializers: () => (/* binding */ __runInitializers),
|
|
2069
2080
|
/* harmony export */ __setFunctionName: () => (/* binding */ __setFunctionName),
|
|
2070
2081
|
/* harmony export */ __spread: () => (/* binding */ __spread),
|
|
@@ -2087,7 +2098,7 @@ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
|
2087
2098
|
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
2088
2099
|
PERFORMANCE OF THIS SOFTWARE.
|
|
2089
2100
|
***************************************************************************** */
|
|
2090
|
-
/* global Reflect, Promise */
|
|
2101
|
+
/* global Reflect, Promise, SuppressedError, Symbol, Iterator */
|
|
2091
2102
|
|
|
2092
2103
|
var extendStatics = function(d, b) {
|
|
2093
2104
|
extendStatics = Object.setPrototypeOf ||
|
|
@@ -2198,8 +2209,8 @@ function __awaiter(thisArg, _arguments, P, generator) {
|
|
|
2198
2209
|
}
|
|
2199
2210
|
|
|
2200
2211
|
function __generator(thisArg, body) {
|
|
2201
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
2202
|
-
return g =
|
|
2212
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
2213
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
2203
2214
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
2204
2215
|
function step(op) {
|
|
2205
2216
|
if (f) throw new TypeError("Generator is already executing.");
|
|
@@ -2303,8 +2314,9 @@ function __await(v) {
|
|
|
2303
2314
|
function __asyncGenerator(thisArg, _arguments, generator) {
|
|
2304
2315
|
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
|
2305
2316
|
var g = generator.apply(thisArg, _arguments || []), i, q = [];
|
|
2306
|
-
return i =
|
|
2307
|
-
function
|
|
2317
|
+
return i = Object.create((typeof AsyncIterator === "function" ? AsyncIterator : Object).prototype), verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;
|
|
2318
|
+
function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }
|
|
2319
|
+
function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }
|
|
2308
2320
|
function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
|
|
2309
2321
|
function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
|
|
2310
2322
|
function fulfill(value) { resume("next", value); }
|
|
@@ -2337,10 +2349,19 @@ var __setModuleDefault = Object.create ? (function(o, v) {
|
|
|
2337
2349
|
o["default"] = v;
|
|
2338
2350
|
};
|
|
2339
2351
|
|
|
2352
|
+
var ownKeys = function(o) {
|
|
2353
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
2354
|
+
var ar = [];
|
|
2355
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
2356
|
+
return ar;
|
|
2357
|
+
};
|
|
2358
|
+
return ownKeys(o);
|
|
2359
|
+
};
|
|
2360
|
+
|
|
2340
2361
|
function __importStar(mod) {
|
|
2341
2362
|
if (mod && mod.__esModule) return mod;
|
|
2342
2363
|
var result = {};
|
|
2343
|
-
if (mod != null) for (var k
|
|
2364
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
2344
2365
|
__setModuleDefault(result, mod);
|
|
2345
2366
|
return result;
|
|
2346
2367
|
}
|
|
@@ -2367,12 +2388,79 @@ function __classPrivateFieldIn(state, receiver) {
|
|
|
2367
2388
|
return typeof state === "function" ? receiver === state : state.has(receiver);
|
|
2368
2389
|
}
|
|
2369
2390
|
|
|
2391
|
+
function __addDisposableResource(env, value, async) {
|
|
2392
|
+
if (value !== null && value !== void 0) {
|
|
2393
|
+
if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
|
|
2394
|
+
var dispose, inner;
|
|
2395
|
+
if (async) {
|
|
2396
|
+
if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined.");
|
|
2397
|
+
dispose = value[Symbol.asyncDispose];
|
|
2398
|
+
}
|
|
2399
|
+
if (dispose === void 0) {
|
|
2400
|
+
if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined.");
|
|
2401
|
+
dispose = value[Symbol.dispose];
|
|
2402
|
+
if (async) inner = dispose;
|
|
2403
|
+
}
|
|
2404
|
+
if (typeof dispose !== "function") throw new TypeError("Object not disposable.");
|
|
2405
|
+
if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };
|
|
2406
|
+
env.stack.push({ value: value, dispose: dispose, async: async });
|
|
2407
|
+
}
|
|
2408
|
+
else if (async) {
|
|
2409
|
+
env.stack.push({ async: true });
|
|
2410
|
+
}
|
|
2411
|
+
return value;
|
|
2412
|
+
}
|
|
2413
|
+
|
|
2414
|
+
var _SuppressedError = typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
|
|
2415
|
+
var e = new Error(message);
|
|
2416
|
+
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
2417
|
+
};
|
|
2418
|
+
|
|
2419
|
+
function __disposeResources(env) {
|
|
2420
|
+
function fail(e) {
|
|
2421
|
+
env.error = env.hasError ? new _SuppressedError(e, env.error, "An error was suppressed during disposal.") : e;
|
|
2422
|
+
env.hasError = true;
|
|
2423
|
+
}
|
|
2424
|
+
var r, s = 0;
|
|
2425
|
+
function next() {
|
|
2426
|
+
while (r = env.stack.pop()) {
|
|
2427
|
+
try {
|
|
2428
|
+
if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);
|
|
2429
|
+
if (r.dispose) {
|
|
2430
|
+
var result = r.dispose.call(r.value);
|
|
2431
|
+
if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });
|
|
2432
|
+
}
|
|
2433
|
+
else s |= 1;
|
|
2434
|
+
}
|
|
2435
|
+
catch (e) {
|
|
2436
|
+
fail(e);
|
|
2437
|
+
}
|
|
2438
|
+
}
|
|
2439
|
+
if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();
|
|
2440
|
+
if (env.hasError) throw env.error;
|
|
2441
|
+
}
|
|
2442
|
+
return next();
|
|
2443
|
+
}
|
|
2444
|
+
|
|
2445
|
+
function __rewriteRelativeImportExtension(path, preserveJsx) {
|
|
2446
|
+
if (typeof path === "string" && /^\.\.?\//.test(path)) {
|
|
2447
|
+
return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {
|
|
2448
|
+
return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js");
|
|
2449
|
+
});
|
|
2450
|
+
}
|
|
2451
|
+
return path;
|
|
2452
|
+
}
|
|
2453
|
+
|
|
2370
2454
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
|
|
2371
2455
|
__extends,
|
|
2372
2456
|
__assign,
|
|
2373
2457
|
__rest,
|
|
2374
2458
|
__decorate,
|
|
2375
2459
|
__param,
|
|
2460
|
+
__esDecorate,
|
|
2461
|
+
__runInitializers,
|
|
2462
|
+
__propKey,
|
|
2463
|
+
__setFunctionName,
|
|
2376
2464
|
__metadata,
|
|
2377
2465
|
__awaiter,
|
|
2378
2466
|
__generator,
|
|
@@ -2393,6 +2481,9 @@ function __classPrivateFieldIn(state, receiver) {
|
|
|
2393
2481
|
__classPrivateFieldGet,
|
|
2394
2482
|
__classPrivateFieldSet,
|
|
2395
2483
|
__classPrivateFieldIn,
|
|
2484
|
+
__addDisposableResource,
|
|
2485
|
+
__disposeResources,
|
|
2486
|
+
__rewriteRelativeImportExtension,
|
|
2396
2487
|
});
|
|
2397
2488
|
|
|
2398
2489
|
|
|
@@ -2459,7 +2550,7 @@ exports["default"] = getDarkColor;
|
|
|
2459
2550
|
|
|
2460
2551
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
2461
2552
|
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;
|
|
2462
|
-
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;
|
|
2553
|
+
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;
|
|
2463
2554
|
var insertTable_1 = __webpack_require__(/*! ./publicApi/table/insertTable */ "./packages/roosterjs-content-model-api/lib/publicApi/table/insertTable.ts");
|
|
2464
2555
|
Object.defineProperty(exports, "insertTable", ({ enumerable: true, get: function () { return insertTable_1.insertTable; } }));
|
|
2465
2556
|
var formatTable_1 = __webpack_require__(/*! ./publicApi/table/formatTable */ "./packages/roosterjs-content-model-api/lib/publicApi/table/formatTable.ts");
|
|
@@ -2576,6 +2667,8 @@ var findListItemsInSameThread_1 = __webpack_require__(/*! ./modelApi/list/findLi
|
|
|
2576
2667
|
Object.defineProperty(exports, "findListItemsInSameThread", ({ enumerable: true, get: function () { return findListItemsInSameThread_1.findListItemsInSameThread; } }));
|
|
2577
2668
|
var setModelIndentation_1 = __webpack_require__(/*! ./modelApi/block/setModelIndentation */ "./packages/roosterjs-content-model-api/lib/modelApi/block/setModelIndentation.ts");
|
|
2578
2669
|
Object.defineProperty(exports, "setModelIndentation", ({ enumerable: true, get: function () { return setModelIndentation_1.setModelIndentation; } }));
|
|
2670
|
+
var setModelDirection_1 = __webpack_require__(/*! ./modelApi/block/setModelDirection */ "./packages/roosterjs-content-model-api/lib/modelApi/block/setModelDirection.ts");
|
|
2671
|
+
Object.defineProperty(exports, "getTextDirection", ({ enumerable: true, get: function () { return setModelDirection_1.getTextDirection; } }));
|
|
2579
2672
|
var matchLink_1 = __webpack_require__(/*! ./modelApi/link/matchLink */ "./packages/roosterjs-content-model-api/lib/modelApi/link/matchLink.ts");
|
|
2580
2673
|
Object.defineProperty(exports, "matchLink", ({ enumerable: true, get: function () { return matchLink_1.matchLink; } }));
|
|
2581
2674
|
var promoteLink_1 = __webpack_require__(/*! ./modelApi/link/promoteLink */ "./packages/roosterjs-content-model-api/lib/modelApi/link/promoteLink.ts");
|
|
@@ -2676,15 +2769,12 @@ exports.setModelAlignment = setModelAlignment;
|
|
|
2676
2769
|
"use strict";
|
|
2677
2770
|
|
|
2678
2771
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
2679
|
-
exports.setModelDirection = void 0;
|
|
2772
|
+
exports.getTextDirection = exports.setModelDirection = void 0;
|
|
2680
2773
|
var findListItemsInSameThread_1 = __webpack_require__(/*! ../list/findListItemsInSameThread */ "./packages/roosterjs-content-model-api/lib/modelApi/list/findListItemsInSameThread.ts");
|
|
2681
2774
|
var splitSelectedParagraphByBr_1 = __webpack_require__(/*! ./splitSelectedParagraphByBr */ "./packages/roosterjs-content-model-api/lib/modelApi/block/splitSelectedParagraphByBr.ts");
|
|
2682
2775
|
var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
|
|
2683
|
-
|
|
2684
|
-
|
|
2685
|
-
var RTL_CHAR_REGEX = /[\u0590-\u05FF\u0600-\u08FF\uFB1D-\uFDFF\uFE70-\uFEFF]/g;
|
|
2686
|
-
var URL_CHAR_REGEX = /http\S+|www\S+|https\S+|<a\s+(?:[^>]*?\s+)?href=(["']).*?\1.*?>.*?<\/a>/g;
|
|
2687
|
-
var WHITESPACE_REGEX = /\s/g;
|
|
2776
|
+
var FIRST_STRONG_CHAR_REGEX = new RegExp('[\\p{L}\\u200E\\u200F]', 'u');
|
|
2777
|
+
var RTL_CHAR_REGEX = new RegExp('[\\u0590-\\u08FF\\u200F\\uFB1D-\\uFDFF\\uFE70-\\uFEFF\\u{10840}-\\u{10FFF}\\u{1E800}-\\u{1E95F}]', 'u');
|
|
2688
2778
|
/**
|
|
2689
2779
|
* @internal
|
|
2690
2780
|
*/
|
|
@@ -2762,29 +2852,29 @@ function setProperty(format, key, value) {
|
|
|
2762
2852
|
delete format[key];
|
|
2763
2853
|
}
|
|
2764
2854
|
}
|
|
2855
|
+
/**
|
|
2856
|
+
* Determine text direction from the first strong directional character
|
|
2857
|
+
* @param text Text to scan
|
|
2858
|
+
*/
|
|
2859
|
+
function getTextDirection(text) {
|
|
2860
|
+
var _a;
|
|
2861
|
+
var firstStrongChar = (_a = text.match(FIRST_STRONG_CHAR_REGEX)) === null || _a === void 0 ? void 0 : _a[0];
|
|
2862
|
+
return firstStrongChar ? (RTL_CHAR_REGEX.test(firstStrongChar) ? 'rtl' : 'ltr') : undefined;
|
|
2863
|
+
}
|
|
2864
|
+
exports.getTextDirection = getTextDirection;
|
|
2765
2865
|
// Designed to match browser's 'auto' detection, by scanning over the inner text until it hits a strong LTR/RTL character
|
|
2766
2866
|
function determineTextDirection(block) {
|
|
2867
|
+
return getTextDirection(getTextContent(block)) || 'ltr';
|
|
2868
|
+
}
|
|
2869
|
+
function getTextContent(block) {
|
|
2767
2870
|
if (block.blockType === 'Paragraph') {
|
|
2768
|
-
|
|
2769
|
-
|
|
2770
|
-
|
|
2771
|
-
|
|
2772
|
-
if (!!innerText) {
|
|
2773
|
-
// Remove links
|
|
2774
|
-
innerText = innerText.replace(URL_CHAR_REGEX, '');
|
|
2775
|
-
// Remove whitespace
|
|
2776
|
-
innerText = innerText.replace(WHITESPACE_REGEX, '');
|
|
2777
|
-
var rtlMatches = innerText.match(RTL_CHAR_REGEX);
|
|
2778
|
-
var rtlCount = rtlMatches ? rtlMatches.length : 0;
|
|
2779
|
-
var ltrCount = innerText.length - rtlCount;
|
|
2780
|
-
return rtlCount > ltrCount ? 'rtl' : 'ltr';
|
|
2781
|
-
}
|
|
2782
|
-
else {
|
|
2783
|
-
return 'ltr'; // Default to LTR if no text is found
|
|
2784
|
-
}
|
|
2871
|
+
return block.segments.reduce(function (text, segment) { return text + (segment.segmentType === 'Text' ? segment.text : ''); }, '');
|
|
2872
|
+
}
|
|
2873
|
+
else if ((0, roosterjs_content_model_dom_1.isBlockGroupOfType)(block, 'ListItem')) {
|
|
2874
|
+
return block.blocks.reduce(function (text, childBlock) { return text + getTextContent(childBlock); }, '');
|
|
2785
2875
|
}
|
|
2786
2876
|
else {
|
|
2787
|
-
return '
|
|
2877
|
+
return '';
|
|
2788
2878
|
}
|
|
2789
2879
|
}
|
|
2790
2880
|
|
|
@@ -5181,7 +5271,8 @@ function insertTableColumn(table, operation) {
|
|
|
5181
5271
|
for (var i = sel === null || sel === void 0 ? void 0 : sel.firstColumn; i <= sel.lastColumn; i++) {
|
|
5182
5272
|
table.rows.forEach(function (row) {
|
|
5183
5273
|
var cell = row.cells[insertLeft ? sel.firstColumn : sel.lastColumn];
|
|
5184
|
-
var newCell = (0, roosterjs_content_model_dom_1.createTableCell)(
|
|
5274
|
+
var newCell = (0, roosterjs_content_model_dom_1.createTableCell)(false, //spanLeft
|
|
5275
|
+
cell.spanAbove, cell.isHeader, cell.format, cell.dataset);
|
|
5185
5276
|
(0, copyPreviousCellSegmentFormat_1.copyPreviousCellSegmentFormat)(cell, newCell);
|
|
5186
5277
|
newCell.isSelected = true;
|
|
5187
5278
|
row.cells.splice(insertLeft ? sel.firstColumn : sel.lastColumn + 1, 0, newCell);
|
|
@@ -5224,7 +5315,8 @@ function insertTableRow(table, operation) {
|
|
|
5224
5315
|
table.rows.splice(insertAbove ? sel.firstRow : sel.lastRow + 1, 0, {
|
|
5225
5316
|
format: (0, tslib_1.__assign)({}, sourceRow.format),
|
|
5226
5317
|
cells: sourceRow.cells.map(function (cell) {
|
|
5227
|
-
var newCell = (0, roosterjs_content_model_dom_1.createTableCell)(cell.spanLeft,
|
|
5318
|
+
var newCell = (0, roosterjs_content_model_dom_1.createTableCell)(cell.spanLeft, false, //spanAbove
|
|
5319
|
+
cell.isHeader, cell.format, cell.dataset);
|
|
5228
5320
|
(0, copyPreviousCellSegmentFormat_1.copyPreviousCellSegmentFormat)(cell, newCell);
|
|
5229
5321
|
newCell.isSelected = true;
|
|
5230
5322
|
return newCell;
|
|
@@ -9156,7 +9248,7 @@ function exportContent(editor, mode, optionsOrCallbacks) {
|
|
|
9156
9248
|
var clonedRoot = editor.getDOMHelper().getClonedRoot();
|
|
9157
9249
|
if (editor.isDarkMode()) {
|
|
9158
9250
|
(0, roosterjs_content_model_dom_1.transformColor)(clonedRoot, false /*includeSelf*/, 'darkToLight', editor.getColorManager(), {
|
|
9159
|
-
tableBorders:
|
|
9251
|
+
tableBorders: true,
|
|
9160
9252
|
});
|
|
9161
9253
|
}
|
|
9162
9254
|
return getHTMLFromDOM(editor, clonedRoot);
|
|
@@ -9233,95 +9325,6 @@ function removeCommentsFromHtml(html, marker, endId, startId) {
|
|
|
9233
9325
|
}
|
|
9234
9326
|
|
|
9235
9327
|
|
|
9236
|
-
/***/ },
|
|
9237
|
-
|
|
9238
|
-
/***/ "./packages/roosterjs-content-model-core/lib/command/paste/createPasteFragment.ts"
|
|
9239
|
-
/*!****************************************************************************************!*\
|
|
9240
|
-
!*** ./packages/roosterjs-content-model-core/lib/command/paste/createPasteFragment.ts ***!
|
|
9241
|
-
\****************************************************************************************/
|
|
9242
|
-
(__unused_webpack_module, exports, __webpack_require__) {
|
|
9243
|
-
|
|
9244
|
-
"use strict";
|
|
9245
|
-
|
|
9246
|
-
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
9247
|
-
exports.createPasteFragment = void 0;
|
|
9248
|
-
var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
|
|
9249
|
-
var NBSP_HTML = '\u00A0';
|
|
9250
|
-
var ENSP_HTML = '\u2002';
|
|
9251
|
-
var TAB_SPACES = 6;
|
|
9252
|
-
/**
|
|
9253
|
-
* @internal
|
|
9254
|
-
*/
|
|
9255
|
-
function createPasteFragment(document, clipboardData, pasteType, root) {
|
|
9256
|
-
if (!clipboardData.text && pasteType === 'asPlainText' && root) {
|
|
9257
|
-
clipboardData.text = root.textContent || clipboardData.text;
|
|
9258
|
-
}
|
|
9259
|
-
var imageDataUri = clipboardData.imageDataUri, text = clipboardData.text;
|
|
9260
|
-
var fragment = document.createDocumentFragment();
|
|
9261
|
-
if ((pasteType == 'asImage' && imageDataUri) ||
|
|
9262
|
-
(pasteType != 'asPlainText' && !text && imageDataUri)) {
|
|
9263
|
-
// Paste image
|
|
9264
|
-
var img = document.createElement('img');
|
|
9265
|
-
img.style.maxWidth = '100%';
|
|
9266
|
-
img.src = imageDataUri;
|
|
9267
|
-
fragment.appendChild(img);
|
|
9268
|
-
}
|
|
9269
|
-
else if (pasteType != 'asPlainText' && root) {
|
|
9270
|
-
(0, roosterjs_content_model_dom_1.moveChildNodes)(fragment, root);
|
|
9271
|
-
}
|
|
9272
|
-
else if (text) {
|
|
9273
|
-
text.split('\n').forEach(function (line, index, lines) {
|
|
9274
|
-
line = line
|
|
9275
|
-
.replace(/^ /g, NBSP_HTML)
|
|
9276
|
-
.replace(/ $/g, NBSP_HTML)
|
|
9277
|
-
.replace(/\r/g, '')
|
|
9278
|
-
.replace(/ {2}/g, ' ' + NBSP_HTML);
|
|
9279
|
-
if (line.includes('\t')) {
|
|
9280
|
-
line = transformTabCharacters(line);
|
|
9281
|
-
}
|
|
9282
|
-
var textNode = document.createTextNode(line);
|
|
9283
|
-
// There are 3 scenarios:
|
|
9284
|
-
// 1. Single line: Paste as it is
|
|
9285
|
-
// 2. Two lines: Add <br> between the lines
|
|
9286
|
-
// 3. 3 or More lines, For first and last line, paste as it is. For middle lines, wrap with DIV, and add BR if it is empty line
|
|
9287
|
-
if (lines.length == 2 && index == 0) {
|
|
9288
|
-
// 1 of 2 lines scenario, add BR
|
|
9289
|
-
fragment.appendChild(textNode);
|
|
9290
|
-
fragment.appendChild(document.createElement('br'));
|
|
9291
|
-
}
|
|
9292
|
-
else if (index > 0 && index < lines.length - 1) {
|
|
9293
|
-
// Middle line of >=3 lines scenario, wrap with DIV
|
|
9294
|
-
fragment.appendChild((0, roosterjs_content_model_dom_1.wrap)(document, line == '' ? document.createElement('br') : textNode, 'div'));
|
|
9295
|
-
}
|
|
9296
|
-
else {
|
|
9297
|
-
// All others, paste as it is
|
|
9298
|
-
fragment.appendChild(textNode);
|
|
9299
|
-
}
|
|
9300
|
-
});
|
|
9301
|
-
}
|
|
9302
|
-
return fragment;
|
|
9303
|
-
}
|
|
9304
|
-
exports.createPasteFragment = createPasteFragment;
|
|
9305
|
-
/**
|
|
9306
|
-
* Transform \t characters into EN SPACE characters
|
|
9307
|
-
* @param input string NOT containing \n characters
|
|
9308
|
-
* @example t("\thello", 2) => "    hello"
|
|
9309
|
-
*/
|
|
9310
|
-
function transformTabCharacters(input, initialOffset) {
|
|
9311
|
-
if (initialOffset === void 0) { initialOffset = 0; }
|
|
9312
|
-
var line = input;
|
|
9313
|
-
var tIndex;
|
|
9314
|
-
while ((tIndex = line.indexOf('\t')) != -1) {
|
|
9315
|
-
var lineBefore = line.slice(0, tIndex);
|
|
9316
|
-
var lineAfter = line.slice(tIndex + 1);
|
|
9317
|
-
var tabCount = TAB_SPACES - ((lineBefore.length + initialOffset) % TAB_SPACES);
|
|
9318
|
-
var tabStr = Array(tabCount).fill(ENSP_HTML).join('');
|
|
9319
|
-
line = lineBefore + tabStr + lineAfter;
|
|
9320
|
-
}
|
|
9321
|
-
return line;
|
|
9322
|
-
}
|
|
9323
|
-
|
|
9324
|
-
|
|
9325
9328
|
/***/ },
|
|
9326
9329
|
|
|
9327
9330
|
/***/ "./packages/roosterjs-content-model-core/lib/command/paste/generatePasteOptionFromPlugins.ts"
|
|
@@ -9388,14 +9391,15 @@ var BlackColor = 'rgb(0,0,0)';
|
|
|
9388
9391
|
*/
|
|
9389
9392
|
function mergePasteContent(editor, eventResult, isFirstPaste) {
|
|
9390
9393
|
var fragment = eventResult.fragment, domToModelOption = eventResult.domToModelOption, customizedMerge = eventResult.customizedMerge, pasteType = eventResult.pasteType, clipboardData = eventResult.clipboardData, containsBlockElements = eventResult.containsBlockElements;
|
|
9391
|
-
var
|
|
9394
|
+
var isImageOnly = isImageOnlyFragment(fragment);
|
|
9395
|
+
var shouldScrollCaretIntoView = !isImageOnly;
|
|
9392
9396
|
editor.formatContentModel(function (model, context) {
|
|
9393
9397
|
if (!isFirstPaste && clipboardData.modelBeforePaste) {
|
|
9394
9398
|
var clonedModel = (0, roosterjs_content_model_dom_1.cloneModelForPaste)(clipboardData.modelBeforePaste);
|
|
9395
9399
|
model.blocks = clonedModel.blocks;
|
|
9396
9400
|
}
|
|
9397
9401
|
var domToModelContext = (0, createDomToModelContextForSanitizing_1.createDomToModelContextForSanitizing)(editor.getDocument(), undefined /*defaultFormat*/, editor.getEnvironment().domToModelSettings.customized, domToModelOption, editor.getDOMHelper(), editor.getExperimentalFeatures());
|
|
9398
|
-
domToModelContext.segmentFormat = getSegmentFormatForPaste(model, pasteType);
|
|
9402
|
+
domToModelContext.segmentFormat = getSegmentFormatForPaste(model, pasteType, isImageOnly);
|
|
9399
9403
|
var pasteModel = (0, roosterjs_content_model_dom_1.domToContentModel)(fragment, domToModelContext);
|
|
9400
9404
|
var mergeOption = {
|
|
9401
9405
|
mergeFormat: pasteType == 'mergeFormat' ? 'keepSourceEmphasisFormat' : 'none',
|
|
@@ -9419,14 +9423,16 @@ function mergePasteContent(editor, eventResult, isFirstPaste) {
|
|
|
9419
9423
|
});
|
|
9420
9424
|
}
|
|
9421
9425
|
exports.mergePasteContent = mergePasteContent;
|
|
9422
|
-
function getSegmentFormatForPaste(model, pasteType) {
|
|
9426
|
+
function getSegmentFormatForPaste(model, pasteType, isImageOnly) {
|
|
9423
9427
|
var selectedSegment = (0, roosterjs_content_model_dom_1.getSelectedSegments)(model, true /*includeFormatHolder*/)[0];
|
|
9424
9428
|
if (selectedSegment) {
|
|
9425
9429
|
var result = (0, roosterjs_content_model_dom_1.getSegmentTextFormat)(selectedSegment);
|
|
9426
|
-
if (pasteType == 'normal') {
|
|
9430
|
+
if (pasteType == 'normal' && !isImageOnly) {
|
|
9427
9431
|
// When using normal paste (Keep source formatting) set the default text color to black when creating the
|
|
9428
9432
|
// Model from the clipboard content, so the elements that do not contain any text color in their style
|
|
9429
9433
|
// Are set to black. Otherwise, These segments would get the selected segments format or the default text set in the content.
|
|
9434
|
+
// Skip this when pasting an image only, since there is no text to apply the default color to, and forcing
|
|
9435
|
+
// black here would incorrectly become the pending format used for text typed right after the pasted image.
|
|
9430
9436
|
result.textColor = BlackColor;
|
|
9431
9437
|
}
|
|
9432
9438
|
return result;
|
|
@@ -9479,7 +9485,6 @@ exports.paste = void 0;
|
|
|
9479
9485
|
var cleanHtmlComments_1 = __webpack_require__(/*! ./cleanHtmlComments */ "./packages/roosterjs-content-model-core/lib/command/paste/cleanHtmlComments.ts");
|
|
9480
9486
|
var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
|
|
9481
9487
|
var convertInlineCss_1 = __webpack_require__(/*! ../createModelFromHtml/convertInlineCss */ "./packages/roosterjs-content-model-core/lib/command/createModelFromHtml/convertInlineCss.ts");
|
|
9482
|
-
var createPasteFragment_1 = __webpack_require__(/*! ./createPasteFragment */ "./packages/roosterjs-content-model-core/lib/command/paste/createPasteFragment.ts");
|
|
9483
9488
|
var generatePasteOptionFromPlugins_1 = __webpack_require__(/*! ./generatePasteOptionFromPlugins */ "./packages/roosterjs-content-model-core/lib/command/paste/generatePasteOptionFromPlugins.ts");
|
|
9484
9489
|
var mergePasteContent_1 = __webpack_require__(/*! ./mergePasteContent */ "./packages/roosterjs-content-model-core/lib/command/paste/mergePasteContent.ts");
|
|
9485
9490
|
var retrieveHtmlInfo_1 = __webpack_require__(/*! ./retrieveHtmlInfo */ "./packages/roosterjs-content-model-core/lib/command/paste/retrieveHtmlInfo.ts");
|
|
@@ -9513,7 +9518,7 @@ function paste(editor, clipboardData, pasteTypeOrGetter) {
|
|
|
9513
9518
|
? pasteTypeOrGetter(doc, clipboardData, editor.getEnvironment(), htmlFromClipboard.metadata)
|
|
9514
9519
|
: pasteTypeOrGetter;
|
|
9515
9520
|
// 3. Create target fragment
|
|
9516
|
-
var sourceFragment = (0,
|
|
9521
|
+
var sourceFragment = (0, roosterjs_content_model_dom_1.createPasteFragment)(editor.getDocument(), clipboardData, pasteType, (_a = (clipboardData.rawHtml == clipboardData.html
|
|
9517
9522
|
? doc
|
|
9518
9523
|
: createDOMFromHtml(clipboardData.html, domCreator))) === null || _a === void 0 ? void 0 : _a.body);
|
|
9519
9524
|
// 4. Trigger BeforePaste event to allow plugins modify the fragment
|
|
@@ -10605,7 +10610,7 @@ function restoreSnapshotColors(core, snapshot) {
|
|
|
10605
10610
|
core.darkColorHandler.updateKnownColor(isDarkMode); // Pass no parameter to force update all colors
|
|
10606
10611
|
if (!!snapshot.isDarkMode != !!isDarkMode) {
|
|
10607
10612
|
(0, roosterjs_content_model_dom_1.transformColor)(core.physicalRoot, false /*includeSelf*/, isDarkMode ? 'lightToDark' : 'darkToLight', core.darkColorHandler, {
|
|
10608
|
-
tableBorders:
|
|
10613
|
+
tableBorders: true,
|
|
10609
10614
|
});
|
|
10610
10615
|
}
|
|
10611
10616
|
}
|
|
@@ -11155,10 +11160,13 @@ function setRangeSelection(core, element, collapse) {
|
|
|
11155
11160
|
"use strict";
|
|
11156
11161
|
|
|
11157
11162
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
11158
|
-
exports.setTableCellsStyle = exports.removeTableCellsStyle = void 0;
|
|
11163
|
+
exports.setTableCellsStyle = exports.removeTableCellsStyle = exports.DOM_SELECTION_CSS_KEY = void 0;
|
|
11159
11164
|
var ensureUniqueId_1 = __webpack_require__(/*! ../setEditorStyle/ensureUniqueId */ "./packages/roosterjs-content-model-core/lib/coreApi/setEditorStyle/ensureUniqueId.ts");
|
|
11160
11165
|
var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
|
|
11161
|
-
|
|
11166
|
+
/**
|
|
11167
|
+
* @internal
|
|
11168
|
+
*/
|
|
11169
|
+
exports.DOM_SELECTION_CSS_KEY = '_DOMSelection';
|
|
11162
11170
|
var TABLE_ID = 'table';
|
|
11163
11171
|
/**
|
|
11164
11172
|
* @internal
|
|
@@ -11166,7 +11174,7 @@ var TABLE_ID = 'table';
|
|
|
11166
11174
|
* @param core The EditorCore object
|
|
11167
11175
|
*/
|
|
11168
11176
|
function removeTableCellsStyle(core) {
|
|
11169
|
-
core.api.setEditorStyle(core, DOM_SELECTION_CSS_KEY, '');
|
|
11177
|
+
core.api.setEditorStyle(core, exports.DOM_SELECTION_CSS_KEY, '');
|
|
11170
11178
|
}
|
|
11171
11179
|
exports.removeTableCellsStyle = removeTableCellsStyle;
|
|
11172
11180
|
/**
|
|
@@ -11191,7 +11199,7 @@ function setTableCellsStyle(core, table, parsedTable, firstCell, lastCell) {
|
|
|
11191
11199
|
lastCell.col == ((_b = (_a = parsedTable[lastCell.row]) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0) - 1
|
|
11192
11200
|
? [tableSelector, tableSelector + " *"]
|
|
11193
11201
|
: buildTableSelectors(parsedTable, tableSelector, table, firstCell, lastCell);
|
|
11194
|
-
core.api.setEditorStyle(core, DOM_SELECTION_CSS_KEY, "background-color:" + tableSelectionColor + "!important;", tableSelectors);
|
|
11202
|
+
core.api.setEditorStyle(core, exports.DOM_SELECTION_CSS_KEY, "background-color:" + tableSelectionColor + "!important;", tableSelectors);
|
|
11195
11203
|
}
|
|
11196
11204
|
exports.setTableCellsStyle = setTableCellsStyle;
|
|
11197
11205
|
/**
|
|
@@ -11250,16 +11258,19 @@ function buildTableSelectors(parsedTable, tableSelector, table, firstCell, lastC
|
|
|
11250
11258
|
"use strict";
|
|
11251
11259
|
|
|
11252
11260
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
11253
|
-
exports.toggleCaret = void 0;
|
|
11261
|
+
exports.toggleCaret = exports.HIDE_CURSOR_CSS_KEY = void 0;
|
|
11254
11262
|
var CARET_CSS_RULE = 'caret-color: transparent';
|
|
11255
|
-
|
|
11263
|
+
/**
|
|
11264
|
+
* @internal
|
|
11265
|
+
*/
|
|
11266
|
+
exports.HIDE_CURSOR_CSS_KEY = '_DOMSelectionHideCursor';
|
|
11256
11267
|
/**
|
|
11257
11268
|
* @internal Show/Hide caret in editor
|
|
11258
11269
|
* @param core The editor core
|
|
11259
11270
|
* @param isHiding True to hide caret, false to show caret
|
|
11260
11271
|
*/
|
|
11261
11272
|
function toggleCaret(core, isHiding) {
|
|
11262
|
-
core.api.setEditorStyle(core, HIDE_CURSOR_CSS_KEY, isHiding ? CARET_CSS_RULE : null);
|
|
11273
|
+
core.api.setEditorStyle(core, exports.HIDE_CURSOR_CSS_KEY, isHiding ? CARET_CSS_RULE : null);
|
|
11263
11274
|
}
|
|
11264
11275
|
exports.toggleCaret = toggleCaret;
|
|
11265
11276
|
|
|
@@ -11528,12 +11539,13 @@ exports.switchShadowEdit = switchShadowEdit;
|
|
|
11528
11539
|
/*!****************************************************************************************!*\
|
|
11529
11540
|
!*** ./packages/roosterjs-content-model-core/lib/coreApi/triggerEvent/triggerEvent.ts ***!
|
|
11530
11541
|
\****************************************************************************************/
|
|
11531
|
-
(__unused_webpack_module, exports) {
|
|
11542
|
+
(__unused_webpack_module, exports, __webpack_require__) {
|
|
11532
11543
|
|
|
11533
11544
|
"use strict";
|
|
11534
11545
|
|
|
11535
11546
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
11536
11547
|
exports.triggerEvent = void 0;
|
|
11548
|
+
var devtoolsHook_1 = __webpack_require__(/*! ../../utils/devtoolsHook */ "./packages/roosterjs-content-model-core/lib/utils/devtoolsHook.ts");
|
|
11537
11549
|
var allowedEventsInShadowEdit = [
|
|
11538
11550
|
'editorReady',
|
|
11539
11551
|
'beforeDispose',
|
|
@@ -11557,6 +11569,7 @@ var triggerEvent = function (core, pluginEvent, broadcast) {
|
|
|
11557
11569
|
}
|
|
11558
11570
|
});
|
|
11559
11571
|
}
|
|
11572
|
+
(0, devtoolsHook_1.notifyDevToolsPluginEvent)(core, pluginEvent);
|
|
11560
11573
|
};
|
|
11561
11574
|
exports.triggerEvent = triggerEvent;
|
|
11562
11575
|
function handledExclusively(event, plugin) {
|
|
@@ -13375,7 +13388,7 @@ var EntityPlugin = /** @class */ (function () {
|
|
|
13375
13388
|
};
|
|
13376
13389
|
if (editor.isDarkMode()) {
|
|
13377
13390
|
(0, roosterjs_content_model_dom_1.transformColor)(wrapper, true /*includeSelf*/, 'lightToDark', editor.getColorManager(), {
|
|
13378
|
-
tableBorders:
|
|
13391
|
+
tableBorders: true,
|
|
13379
13392
|
});
|
|
13380
13393
|
}
|
|
13381
13394
|
}
|
|
@@ -14491,6 +14504,8 @@ var findTableCellElement_1 = __webpack_require__(/*! ../../coreApi/setDOMSelecti
|
|
|
14491
14504
|
var isSingleImageInSelection_1 = __webpack_require__(/*! ./isSingleImageInSelection */ "./packages/roosterjs-content-model-core/lib/corePlugin/selection/isSingleImageInSelection.ts");
|
|
14492
14505
|
var normalizePos_1 = __webpack_require__(/*! ./normalizePos */ "./packages/roosterjs-content-model-core/lib/corePlugin/selection/normalizePos.ts");
|
|
14493
14506
|
var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
|
|
14507
|
+
var setTableCellsStyle_1 = __webpack_require__(/*! ../../coreApi/setDOMSelection/setTableCellsStyle */ "./packages/roosterjs-content-model-core/lib/coreApi/setDOMSelection/setTableCellsStyle.ts");
|
|
14508
|
+
var toggleCaret_1 = __webpack_require__(/*! ../../coreApi/setDOMSelection/toggleCaret */ "./packages/roosterjs-content-model-core/lib/coreApi/setDOMSelection/toggleCaret.ts");
|
|
14494
14509
|
var MouseLeftButton = 0;
|
|
14495
14510
|
var MouseRightButton = 2;
|
|
14496
14511
|
var Up = 'ArrowUp';
|
|
@@ -14516,6 +14531,7 @@ var SelectionPlugin = /** @class */ (function () {
|
|
|
14516
14531
|
this.logicalRootDisposer = null;
|
|
14517
14532
|
this.isSafari = false;
|
|
14518
14533
|
this.scrollTopCache = 0;
|
|
14534
|
+
this.isInsideSelection = false;
|
|
14519
14535
|
this.onMouseMove = function (event) {
|
|
14520
14536
|
var _a, _b, _c;
|
|
14521
14537
|
if (_this.editor && _this.state.tableSelection) {
|
|
@@ -14715,6 +14731,10 @@ var SelectionPlugin = /** @class */ (function () {
|
|
|
14715
14731
|
this.onKeyDown(this.editor, event.rawEvent);
|
|
14716
14732
|
break;
|
|
14717
14733
|
case 'contentChanged':
|
|
14734
|
+
if (event.source == roosterjs_content_model_dom_1.ChangeSource.Drop && this.isInsideSelection) {
|
|
14735
|
+
this.setDOMSelection(null /* DOMSelection */, null /* tableSelection */);
|
|
14736
|
+
this.isInsideSelection = false;
|
|
14737
|
+
}
|
|
14718
14738
|
this.state.tableSelection = null;
|
|
14719
14739
|
break;
|
|
14720
14740
|
case 'scroll':
|
|
@@ -14762,14 +14782,22 @@ var SelectionPlugin = /** @class */ (function () {
|
|
|
14762
14782
|
return;
|
|
14763
14783
|
}
|
|
14764
14784
|
// Table selection
|
|
14785
|
+
var target = rawEvent.target;
|
|
14786
|
+
var tableSelection = target
|
|
14787
|
+
? this.parseTableSelection(target, target, editor.getDOMHelper())
|
|
14788
|
+
: null;
|
|
14789
|
+
if ((selection === null || selection === void 0 ? void 0 : selection.type) == 'table' &&
|
|
14790
|
+
tableSelection &&
|
|
14791
|
+
this.isInsideTableSelection(selection, tableSelection) &&
|
|
14792
|
+
rawEvent.detail == 1) {
|
|
14793
|
+
this.isInsideSelection = true;
|
|
14794
|
+
this.setTableDragSelection(editor, rawEvent);
|
|
14795
|
+
return;
|
|
14796
|
+
}
|
|
14765
14797
|
if ((selection === null || selection === void 0 ? void 0 : selection.type) == 'table' && rawEvent.button == MouseLeftButton) {
|
|
14766
14798
|
this.setDOMSelection(null /*domSelection*/, null /*tableSelection*/);
|
|
14767
14799
|
}
|
|
14768
|
-
|
|
14769
|
-
var target = rawEvent.target;
|
|
14770
|
-
if (target &&
|
|
14771
|
-
rawEvent.button == MouseLeftButton &&
|
|
14772
|
-
(tableSelection = this.parseTableSelection(target, target, editor.getDOMHelper()))) {
|
|
14800
|
+
if (target && rawEvent.button == MouseLeftButton && tableSelection) {
|
|
14773
14801
|
this.state.tableSelection = tableSelection;
|
|
14774
14802
|
if (rawEvent.detail >= 3) {
|
|
14775
14803
|
var lastCo = (0, findCoordinate_1.findCoordinate)(tableSelection.parsedTable, rawEvent.target, editor.getDOMHelper());
|
|
@@ -14789,6 +14817,10 @@ var SelectionPlugin = /** @class */ (function () {
|
|
|
14789
14817
|
}
|
|
14790
14818
|
};
|
|
14791
14819
|
SelectionPlugin.prototype.onMouseUp = function () {
|
|
14820
|
+
if (this.isInsideSelection) {
|
|
14821
|
+
this.setDOMSelection(null /*domSelection*/, null /*tableSelection*/);
|
|
14822
|
+
this.isInsideSelection = false;
|
|
14823
|
+
}
|
|
14792
14824
|
this.detachMouseEvent();
|
|
14793
14825
|
};
|
|
14794
14826
|
SelectionPlugin.prototype.onKeyDown = function (editor, rawEvent) {
|
|
@@ -14983,6 +15015,30 @@ var SelectionPlugin = /** @class */ (function () {
|
|
|
14983
15015
|
}
|
|
14984
15016
|
}
|
|
14985
15017
|
};
|
|
15018
|
+
SelectionPlugin.prototype.isInsideTableSelection = function (prevSelection, tableSelection) {
|
|
15019
|
+
var selectedCell = tableSelection.firstCo;
|
|
15020
|
+
return (selectedCell.row >= prevSelection.firstRow &&
|
|
15021
|
+
selectedCell.row <= prevSelection.lastRow &&
|
|
15022
|
+
selectedCell.col >= prevSelection.firstColumn &&
|
|
15023
|
+
selectedCell.col <= prevSelection.lastColumn);
|
|
15024
|
+
};
|
|
15025
|
+
SelectionPlugin.prototype.setTableDragSelection = function (editor, rawEvent) {
|
|
15026
|
+
var doc = editor.getDocument();
|
|
15027
|
+
var cell = editor
|
|
15028
|
+
.getDOMHelper()
|
|
15029
|
+
.findClosestElementAncestor(rawEvent.target, 'td,th');
|
|
15030
|
+
if (cell) {
|
|
15031
|
+
// Hide the table cell selection styles (grey cell background applied by
|
|
15032
|
+
// setDOMSelection) and the native selection highlight so that only the
|
|
15033
|
+
// dragged content is visible while dragging. Also restore the caret which
|
|
15034
|
+
// is hidden while a table selection is active.
|
|
15035
|
+
editor.setEditorStyle(setTableCellsStyle_1.DOM_SELECTION_CSS_KEY, null /*cssRule*/);
|
|
15036
|
+
editor.setEditorStyle(toggleCaret_1.HIDE_CURSOR_CSS_KEY, null /*cssRule*/);
|
|
15037
|
+
var range = doc.createRange();
|
|
15038
|
+
range.selectNodeContents(cell);
|
|
15039
|
+
editor.getDOMHelper().setSelectionRange(range);
|
|
15040
|
+
}
|
|
15041
|
+
};
|
|
14986
15042
|
SelectionPlugin.prototype.getTextOffset = function (editor, range, td, isKeyUp) {
|
|
14987
15043
|
var doc = editor.getDocument();
|
|
14988
15044
|
var cursorRect = range
|
|
@@ -15663,6 +15719,7 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
|
15663
15719
|
exports.Editor = void 0;
|
|
15664
15720
|
var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.mjs");
|
|
15665
15721
|
var createEditorCore_1 = __webpack_require__(/*! ./core/createEditorCore */ "./packages/roosterjs-content-model-core/lib/editor/core/createEditorCore.ts");
|
|
15722
|
+
var devtoolsHook_1 = __webpack_require__(/*! ../utils/devtoolsHook */ "./packages/roosterjs-content-model-core/lib/utils/devtoolsHook.ts");
|
|
15666
15723
|
var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
|
|
15667
15724
|
/**
|
|
15668
15725
|
* The main editor class based on Content Model
|
|
@@ -15686,7 +15743,7 @@ var Editor = /** @class */ (function () {
|
|
|
15686
15743
|
if (_this.isDarkMode()) {
|
|
15687
15744
|
var colorHandler = _this.getColorManager();
|
|
15688
15745
|
(0, roosterjs_content_model_dom_1.transformColor)(result, true /*includeSelf*/, 'darkToLight', colorHandler, {
|
|
15689
|
-
tableBorders:
|
|
15746
|
+
tableBorders: true,
|
|
15690
15747
|
});
|
|
15691
15748
|
result.style.color = result.style.color || 'inherit';
|
|
15692
15749
|
result.style.backgroundColor = result.style.backgroundColor || 'inherit';
|
|
@@ -15697,6 +15754,7 @@ var Editor = /** @class */ (function () {
|
|
|
15697
15754
|
var initialModel = (_a = options.initialModel) !== null && _a !== void 0 ? _a : (0, roosterjs_content_model_dom_1.createEmptyModel)(this.core.format.defaultFormat);
|
|
15698
15755
|
this.core.api.setContentModel(this.core, initialModel, { ignoreSelection: true }, undefined /*onNodeCreated*/, true /*isInitializing*/);
|
|
15699
15756
|
this.core.plugins.forEach(function (plugin) { return plugin.initialize(_this); });
|
|
15757
|
+
(0, devtoolsHook_1.notifyDevToolsEditorCreated)(this, this.core);
|
|
15700
15758
|
}
|
|
15701
15759
|
/**
|
|
15702
15760
|
* Dispose this editor, dispose all plugins and custom data
|
|
@@ -15704,6 +15762,7 @@ var Editor = /** @class */ (function () {
|
|
|
15704
15762
|
Editor.prototype.dispose = function () {
|
|
15705
15763
|
var _a;
|
|
15706
15764
|
var core = this.getCore();
|
|
15765
|
+
(0, devtoolsHook_1.notifyDevToolsEditorDisposed)(this, core);
|
|
15707
15766
|
for (var i = core.plugins.length - 1; i >= 0; i--) {
|
|
15708
15767
|
var plugin = core.plugins[i];
|
|
15709
15768
|
try {
|
|
@@ -15888,7 +15947,7 @@ var Editor = /** @class */ (function () {
|
|
|
15888
15947
|
var core = this.getCore();
|
|
15889
15948
|
if (!!isDarkMode != core.lifecycle.isDarkMode) {
|
|
15890
15949
|
(0, roosterjs_content_model_dom_1.transformColor)(core.physicalRoot, false /*includeSelf*/, isDarkMode ? 'lightToDark' : 'darkToLight', core.darkColorHandler, {
|
|
15891
|
-
tableBorders:
|
|
15950
|
+
tableBorders: true,
|
|
15892
15951
|
}, core.format.defaultFormat.textColor);
|
|
15893
15952
|
core.lifecycle.isDarkMode = !!isDarkMode;
|
|
15894
15953
|
core.api.triggerEvent(core, {
|
|
@@ -16337,10 +16396,11 @@ function createEditorCore(contentDiv, options) {
|
|
|
16337
16396
|
}
|
|
16338
16397
|
exports.createEditorCore = createEditorCore;
|
|
16339
16398
|
function createEditorEnvironment(contentDiv, options) {
|
|
16340
|
-
var _a, _b
|
|
16341
|
-
var
|
|
16342
|
-
var
|
|
16343
|
-
var
|
|
16399
|
+
var _a, _b;
|
|
16400
|
+
var defaultView = contentDiv.ownerDocument.defaultView;
|
|
16401
|
+
var navigator = defaultView === null || defaultView === void 0 ? void 0 : defaultView.navigator;
|
|
16402
|
+
var userAgent = (_a = navigator === null || navigator === void 0 ? void 0 : navigator.userAgent) !== null && _a !== void 0 ? _a : '';
|
|
16403
|
+
var appVersion = (_b = navigator === null || navigator === void 0 ? void 0 : navigator.appVersion) !== null && _b !== void 0 ? _b : '';
|
|
16344
16404
|
return {
|
|
16345
16405
|
document: contentDiv.ownerDocument,
|
|
16346
16406
|
domToModelSettings: (0, createEditorDefaultSettings_1.createDomToModelSettings)(options),
|
|
@@ -16352,6 +16412,7 @@ function createEditorEnvironment(contentDiv, options) {
|
|
|
16352
16412
|
userAgent.indexOf('Chrome') < 0 &&
|
|
16353
16413
|
userAgent.indexOf('Android') < 0,
|
|
16354
16414
|
isMobileOrTablet: getIsMobileOrTablet(userAgent),
|
|
16415
|
+
isTouchSupported: !!defaultView && ('ontouchstart' in defaultView || !!(navigator === null || navigator === void 0 ? void 0 : navigator.maxTouchPoints)),
|
|
16355
16416
|
};
|
|
16356
16417
|
}
|
|
16357
16418
|
function getIsMobileOrTablet(userAgent) {
|
|
@@ -16451,7 +16512,7 @@ exports.createModelToDomSettings = createModelToDomSettings;
|
|
|
16451
16512
|
"use strict";
|
|
16452
16513
|
|
|
16453
16514
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
16454
|
-
exports.getContentForCopy = exports.paste = exports.redo = exports.undo = exports.exportContent = exports.createModelFromHtml = exports.Editor = void 0;
|
|
16515
|
+
exports.RoosterJsDevToolsHookVersion = exports.getContentForCopy = exports.paste = exports.redo = exports.undo = exports.exportContent = exports.createModelFromHtml = exports.Editor = void 0;
|
|
16455
16516
|
// Editor
|
|
16456
16517
|
var Editor_1 = __webpack_require__(/*! ./editor/Editor */ "./packages/roosterjs-content-model-core/lib/editor/Editor.ts");
|
|
16457
16518
|
Object.defineProperty(exports, "Editor", ({ enumerable: true, get: function () { return Editor_1.Editor; } }));
|
|
@@ -16466,9 +16527,12 @@ var redo_1 = __webpack_require__(/*! ./command/redo/redo */ "./packages/roosterj
|
|
|
16466
16527
|
Object.defineProperty(exports, "redo", ({ enumerable: true, get: function () { return redo_1.redo; } }));
|
|
16467
16528
|
var paste_1 = __webpack_require__(/*! ./command/paste/paste */ "./packages/roosterjs-content-model-core/lib/command/paste/paste.ts");
|
|
16468
16529
|
Object.defineProperty(exports, "paste", ({ enumerable: true, get: function () { return paste_1.paste; } }));
|
|
16469
|
-
//Editor copy helper
|
|
16530
|
+
// Editor copy helper
|
|
16470
16531
|
var getContentForCopy_1 = __webpack_require__(/*! ./command/cutCopy/getContentForCopy */ "./packages/roosterjs-content-model-core/lib/command/cutCopy/getContentForCopy.ts");
|
|
16471
16532
|
Object.defineProperty(exports, "getContentForCopy", ({ enumerable: true, get: function () { return getContentForCopy_1.getContentForCopy; } }));
|
|
16533
|
+
// Editor devtools
|
|
16534
|
+
var devtoolsHook_1 = __webpack_require__(/*! ./utils/devtoolsHook */ "./packages/roosterjs-content-model-core/lib/utils/devtoolsHook.ts");
|
|
16535
|
+
Object.defineProperty(exports, "RoosterJsDevToolsHookVersion", ({ enumerable: true, get: function () { return devtoolsHook_1.RoosterJsDevToolsHookVersion; } }));
|
|
16472
16536
|
|
|
16473
16537
|
|
|
16474
16538
|
/***/ },
|
|
@@ -16844,6 +16908,105 @@ function createAriaLiveElement(document) {
|
|
|
16844
16908
|
exports.createAriaLiveElement = createAriaLiveElement;
|
|
16845
16909
|
|
|
16846
16910
|
|
|
16911
|
+
/***/ },
|
|
16912
|
+
|
|
16913
|
+
/***/ "./packages/roosterjs-content-model-core/lib/utils/devtoolsHook.ts"
|
|
16914
|
+
/*!*************************************************************************!*\
|
|
16915
|
+
!*** ./packages/roosterjs-content-model-core/lib/utils/devtoolsHook.ts ***!
|
|
16916
|
+
\*************************************************************************/
|
|
16917
|
+
(__unused_webpack_module, exports) {
|
|
16918
|
+
|
|
16919
|
+
"use strict";
|
|
16920
|
+
|
|
16921
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
16922
|
+
exports.notifyDevToolsPluginEvent = exports.notifyDevToolsEditorDisposed = exports.notifyDevToolsEditorCreated = exports.RoosterJsDevToolsHookVersion = void 0;
|
|
16923
|
+
/**
|
|
16924
|
+
* The current version of the RoosterJS DevTools hook contract (see
|
|
16925
|
+
* {@link RoosterJsDevToolsHook}). The editor stamps this onto the installed hook so a developer
|
|
16926
|
+
* tool can adapt to the editor's capabilities. Bump this whenever the shape of the contract changes
|
|
16927
|
+
* in a way tools may need to detect.
|
|
16928
|
+
*
|
|
16929
|
+
* History:
|
|
16930
|
+
* - 1: onEditorCreated, onEditorDisposed, onPluginEvent
|
|
16931
|
+
*/
|
|
16932
|
+
exports.RoosterJsDevToolsHookVersion = 1;
|
|
16933
|
+
// Maps an editor core back to its IEditor wrapper, so plugin events (which only carry the core)
|
|
16934
|
+
// can be attributed to the right editor when forwarded to developer tools.
|
|
16935
|
+
var coreToEditor = new WeakMap();
|
|
16936
|
+
/**
|
|
16937
|
+
* @internal
|
|
16938
|
+
* Notify developer tools that an editor has been created. Failures are swallowed so developer
|
|
16939
|
+
* tools can never break the editor.
|
|
16940
|
+
* @param editor The editor that was created
|
|
16941
|
+
* @param core The editor core, used to attribute later plugin events to this editor
|
|
16942
|
+
*/
|
|
16943
|
+
function notifyDevToolsEditorCreated(editor, core) {
|
|
16944
|
+
safeCall(function () {
|
|
16945
|
+
var _a, _b;
|
|
16946
|
+
coreToEditor.set(core, editor);
|
|
16947
|
+
var win = editor.getDocument().defaultView;
|
|
16948
|
+
if (win) {
|
|
16949
|
+
var editors = (_a = win.__ROOSTERJS_DEVTOOLS_EDITORS__) !== null && _a !== void 0 ? _a : [];
|
|
16950
|
+
editors.push(editor);
|
|
16951
|
+
win.__ROOSTERJS_DEVTOOLS_EDITORS__ = editors;
|
|
16952
|
+
var hook = win.__ROOSTERJS_DEVTOOLS_HOOK__;
|
|
16953
|
+
if (hook) {
|
|
16954
|
+
hook.version = exports.RoosterJsDevToolsHookVersion;
|
|
16955
|
+
(_b = hook.onEditorCreated) === null || _b === void 0 ? void 0 : _b.call(hook, editor);
|
|
16956
|
+
}
|
|
16957
|
+
}
|
|
16958
|
+
});
|
|
16959
|
+
}
|
|
16960
|
+
exports.notifyDevToolsEditorCreated = notifyDevToolsEditorCreated;
|
|
16961
|
+
/**
|
|
16962
|
+
* @internal
|
|
16963
|
+
* Notify developer tools that an editor is about to be disposed. Failures are swallowed so
|
|
16964
|
+
* developer tools can never break the editor.
|
|
16965
|
+
* @param editor The editor that is being disposed
|
|
16966
|
+
* @param core The editor core to stop tracking
|
|
16967
|
+
*/
|
|
16968
|
+
function notifyDevToolsEditorDisposed(editor, core) {
|
|
16969
|
+
safeCall(function () {
|
|
16970
|
+
var _a, _b;
|
|
16971
|
+
coreToEditor.delete(core);
|
|
16972
|
+
var win = editor.getDocument().defaultView;
|
|
16973
|
+
if (win) {
|
|
16974
|
+
var editors = win.__ROOSTERJS_DEVTOOLS_EDITORS__;
|
|
16975
|
+
var index = editors ? editors.indexOf(editor) : -1;
|
|
16976
|
+
if (editors && index >= 0) {
|
|
16977
|
+
editors.splice(index, 1);
|
|
16978
|
+
}
|
|
16979
|
+
(_b = (_a = win.__ROOSTERJS_DEVTOOLS_HOOK__) === null || _a === void 0 ? void 0 : _a.onEditorDisposed) === null || _b === void 0 ? void 0 : _b.call(_a, editor);
|
|
16980
|
+
}
|
|
16981
|
+
});
|
|
16982
|
+
}
|
|
16983
|
+
exports.notifyDevToolsEditorDisposed = notifyDevToolsEditorDisposed;
|
|
16984
|
+
/**
|
|
16985
|
+
* @internal
|
|
16986
|
+
* Forward a plugin event to developer tools, if a hook is installed. Failures are swallowed so
|
|
16987
|
+
* developer tools can never break the editor.
|
|
16988
|
+
* @param core The editor core that dispatched the event
|
|
16989
|
+
* @param event The plugin event being dispatched
|
|
16990
|
+
*/
|
|
16991
|
+
function notifyDevToolsPluginEvent(core, event) {
|
|
16992
|
+
safeCall(function () {
|
|
16993
|
+
var _a, _b;
|
|
16994
|
+
var editor = coreToEditor.get(core);
|
|
16995
|
+
var win = editor === null || editor === void 0 ? void 0 : editor.getDocument().defaultView;
|
|
16996
|
+
if (editor && win) {
|
|
16997
|
+
(_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);
|
|
16998
|
+
}
|
|
16999
|
+
});
|
|
17000
|
+
}
|
|
17001
|
+
exports.notifyDevToolsPluginEvent = notifyDevToolsPluginEvent;
|
|
17002
|
+
function safeCall(callback) {
|
|
17003
|
+
try {
|
|
17004
|
+
callback();
|
|
17005
|
+
}
|
|
17006
|
+
catch (_a) { }
|
|
17007
|
+
}
|
|
17008
|
+
|
|
17009
|
+
|
|
16847
17010
|
/***/ },
|
|
16848
17011
|
|
|
16849
17012
|
/***/ "./packages/roosterjs-content-model-core/lib/utils/domCreator.ts"
|
|
@@ -17018,6 +17181,9 @@ exports.defaultHTMLStyleMap = {
|
|
|
17018
17181
|
marginBottom: '1em',
|
|
17019
17182
|
},
|
|
17020
17183
|
dt: blockElement,
|
|
17184
|
+
del: {
|
|
17185
|
+
textDecoration: 'line-through',
|
|
17186
|
+
},
|
|
17021
17187
|
em: {
|
|
17022
17188
|
fontStyle: 'italic',
|
|
17023
17189
|
},
|
|
@@ -17271,6 +17437,10 @@ exports.ChangeSource = {
|
|
|
17271
17437
|
* Content changed by replace
|
|
17272
17438
|
*/
|
|
17273
17439
|
Replace: 'Replace',
|
|
17440
|
+
/**
|
|
17441
|
+
* Content changed by dragging content out the editor
|
|
17442
|
+
*/
|
|
17443
|
+
DragOutOfEditor: 'DragOutOfEditor',
|
|
17274
17444
|
};
|
|
17275
17445
|
|
|
17276
17446
|
|
|
@@ -17759,6 +17929,7 @@ exports.defaultProcessorMap = {
|
|
|
17759
17929
|
h5: headingProcessor_1.headingProcessor,
|
|
17760
17930
|
h6: headingProcessor_1.headingProcessor,
|
|
17761
17931
|
hr: hrProcessor_1.hrProcessor,
|
|
17932
|
+
label: knownElementProcessor_1.knownElementProcessor,
|
|
17762
17933
|
li: listItemProcessor_1.listItemProcessor,
|
|
17763
17934
|
ol: listProcessor_1.listProcessor,
|
|
17764
17935
|
p: pProcessor_1.pProcessor,
|
|
@@ -19782,6 +19953,53 @@ function cacheGetEventData(event, key, getter) {
|
|
|
19782
19953
|
exports.cacheGetEventData = cacheGetEventData;
|
|
19783
19954
|
|
|
19784
19955
|
|
|
19956
|
+
/***/ },
|
|
19957
|
+
|
|
19958
|
+
/***/ "./packages/roosterjs-content-model-dom/lib/domUtils/event/createPasteFragment.ts"
|
|
19959
|
+
/*!****************************************************************************************!*\
|
|
19960
|
+
!*** ./packages/roosterjs-content-model-dom/lib/domUtils/event/createPasteFragment.ts ***!
|
|
19961
|
+
\****************************************************************************************/
|
|
19962
|
+
(__unused_webpack_module, exports, __webpack_require__) {
|
|
19963
|
+
|
|
19964
|
+
"use strict";
|
|
19965
|
+
|
|
19966
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
19967
|
+
exports.createPasteFragment = void 0;
|
|
19968
|
+
var moveChildNodes_1 = __webpack_require__(/*! ../moveChildNodes */ "./packages/roosterjs-content-model-dom/lib/domUtils/moveChildNodes.ts");
|
|
19969
|
+
var textToFragment_1 = __webpack_require__(/*! ../textToFragment */ "./packages/roosterjs-content-model-dom/lib/domUtils/textToFragment.ts");
|
|
19970
|
+
/**
|
|
19971
|
+
* Create a document fragment from clipboard content using the specified paste type
|
|
19972
|
+
* @param document The document used to create the fragment
|
|
19973
|
+
* @param clipboardData The clipboard data to convert
|
|
19974
|
+
* @param pasteType The paste type that determines which clipboard content to use
|
|
19975
|
+
* @param root The optional root element containing the parsed HTML content
|
|
19976
|
+
* @returns A document fragment containing the content to paste
|
|
19977
|
+
*/
|
|
19978
|
+
function createPasteFragment(document, clipboardData, pasteType, root) {
|
|
19979
|
+
if (!clipboardData.text && pasteType === 'asPlainText' && root) {
|
|
19980
|
+
clipboardData.text = root.textContent || clipboardData.text;
|
|
19981
|
+
}
|
|
19982
|
+
var imageDataUri = clipboardData.imageDataUri, text = clipboardData.text;
|
|
19983
|
+
var fragment = document.createDocumentFragment();
|
|
19984
|
+
if ((pasteType == 'asImage' && imageDataUri) ||
|
|
19985
|
+
(pasteType != 'asPlainText' && !text && imageDataUri)) {
|
|
19986
|
+
// Paste image
|
|
19987
|
+
var img = document.createElement('img');
|
|
19988
|
+
img.style.maxWidth = '100%';
|
|
19989
|
+
img.src = imageDataUri;
|
|
19990
|
+
fragment.appendChild(img);
|
|
19991
|
+
}
|
|
19992
|
+
else if (pasteType != 'asPlainText' && root) {
|
|
19993
|
+
(0, moveChildNodes_1.moveChildNodes)(fragment, root);
|
|
19994
|
+
}
|
|
19995
|
+
else if (text) {
|
|
19996
|
+
return (0, textToFragment_1.textToFragment)(text, document);
|
|
19997
|
+
}
|
|
19998
|
+
return fragment;
|
|
19999
|
+
}
|
|
20000
|
+
exports.createPasteFragment = createPasteFragment;
|
|
20001
|
+
|
|
20002
|
+
|
|
19785
20003
|
/***/ },
|
|
19786
20004
|
|
|
19787
20005
|
/***/ "./packages/roosterjs-content-model-dom/lib/domUtils/event/eventUtils.ts"
|
|
@@ -19958,14 +20176,14 @@ function getNodePositionFromEvent(doc, domHelper, x, y) {
|
|
|
19958
20176
|
// Firefox, Chrome, Edge, Safari, Opera
|
|
19959
20177
|
var pos = doc.caretPositionFromPoint(x, y);
|
|
19960
20178
|
if (pos && domHelper.isNodeInEditor(pos.offsetNode)) {
|
|
19961
|
-
return
|
|
20179
|
+
return normalizePosition(pos.offsetNode, pos.offset);
|
|
19962
20180
|
}
|
|
19963
20181
|
}
|
|
19964
20182
|
if (doc.caretRangeFromPoint) {
|
|
19965
20183
|
// Safari
|
|
19966
20184
|
var range = doc.caretRangeFromPoint(x, y);
|
|
19967
20185
|
if (range && domHelper.isNodeInEditor(range.startContainer)) {
|
|
19968
|
-
return
|
|
20186
|
+
return normalizePosition(range.startContainer, range.startOffset);
|
|
19969
20187
|
}
|
|
19970
20188
|
}
|
|
19971
20189
|
if (doc.elementFromPoint) {
|
|
@@ -19978,6 +20196,14 @@ function getNodePositionFromEvent(doc, domHelper, x, y) {
|
|
|
19978
20196
|
return null;
|
|
19979
20197
|
}
|
|
19980
20198
|
exports.getNodePositionFromEvent = getNodePositionFromEvent;
|
|
20199
|
+
function normalizePosition(node, offset) {
|
|
20200
|
+
var _a;
|
|
20201
|
+
// Safari hit-testing in tableMoverTest returns offset 1 after the lone BR of an empty block.
|
|
20202
|
+
var normalizedOffset = offset == 1 && node.childNodes.length == 1 && ((_a = node.firstChild) === null || _a === void 0 ? void 0 : _a.nodeName) == 'BR'
|
|
20203
|
+
? 0
|
|
20204
|
+
: offset;
|
|
20205
|
+
return { node: node, offset: normalizedOffset };
|
|
20206
|
+
}
|
|
19981
20207
|
|
|
19982
20208
|
|
|
19983
20209
|
/***/ },
|
|
@@ -21280,6 +21506,78 @@ function parseTableCells(table) {
|
|
|
21280
21506
|
exports.parseTableCells = parseTableCells;
|
|
21281
21507
|
|
|
21282
21508
|
|
|
21509
|
+
/***/ },
|
|
21510
|
+
|
|
21511
|
+
/***/ "./packages/roosterjs-content-model-dom/lib/domUtils/textToFragment.ts"
|
|
21512
|
+
/*!*****************************************************************************!*\
|
|
21513
|
+
!*** ./packages/roosterjs-content-model-dom/lib/domUtils/textToFragment.ts ***!
|
|
21514
|
+
\*****************************************************************************/
|
|
21515
|
+
(__unused_webpack_module, exports, __webpack_require__) {
|
|
21516
|
+
|
|
21517
|
+
"use strict";
|
|
21518
|
+
|
|
21519
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
21520
|
+
exports.textToFragment = void 0;
|
|
21521
|
+
var wrap_1 = __webpack_require__(/*! ./wrap */ "./packages/roosterjs-content-model-dom/lib/domUtils/wrap.ts");
|
|
21522
|
+
var NBSP_HTML = '\u00A0';
|
|
21523
|
+
var ENSP_HTML = '\u2002';
|
|
21524
|
+
var TAB_SPACES = 6;
|
|
21525
|
+
/**
|
|
21526
|
+
* @internal
|
|
21527
|
+
*/
|
|
21528
|
+
function textToFragment(text, doc) {
|
|
21529
|
+
var fragment = doc.createDocumentFragment();
|
|
21530
|
+
text.split('\n').forEach(function (line, index, lines) {
|
|
21531
|
+
line = line
|
|
21532
|
+
.replace(/^ /g, NBSP_HTML)
|
|
21533
|
+
.replace(/ $/g, NBSP_HTML)
|
|
21534
|
+
.replace(/\r/g, '')
|
|
21535
|
+
.replace(/ {2}/g, ' ' + NBSP_HTML);
|
|
21536
|
+
if (line.includes('\t')) {
|
|
21537
|
+
line = transformTabCharacters(line);
|
|
21538
|
+
}
|
|
21539
|
+
var textNode = doc.createTextNode(line);
|
|
21540
|
+
// There are 3 scenarios:
|
|
21541
|
+
// 1. Single line: Paste as it is
|
|
21542
|
+
// 2. Two lines: Add <br> between the lines
|
|
21543
|
+
// 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
|
|
21544
|
+
if (lines.length == 2 && index == 0) {
|
|
21545
|
+
// 1 of 2 lines scenario, add BR
|
|
21546
|
+
fragment.appendChild(textNode);
|
|
21547
|
+
fragment.appendChild(doc.createElement('br'));
|
|
21548
|
+
}
|
|
21549
|
+
else if (index > 0 && index < lines.length - 1) {
|
|
21550
|
+
// Middle line of >=3 lines scenario, wrap with DIV
|
|
21551
|
+
fragment.appendChild((0, wrap_1.wrap)(doc, line == '' ? doc.createElement('br') : textNode, 'div'));
|
|
21552
|
+
}
|
|
21553
|
+
else {
|
|
21554
|
+
// All others, paste as it is
|
|
21555
|
+
fragment.appendChild(textNode);
|
|
21556
|
+
}
|
|
21557
|
+
});
|
|
21558
|
+
return fragment;
|
|
21559
|
+
}
|
|
21560
|
+
exports.textToFragment = textToFragment;
|
|
21561
|
+
/**
|
|
21562
|
+
* Transform \t characters into EN SPACE characters
|
|
21563
|
+
* @param input string NOT containing \n characters
|
|
21564
|
+
* @example t("\thello", 2) => "    hello"
|
|
21565
|
+
*/
|
|
21566
|
+
function transformTabCharacters(input, initialOffset) {
|
|
21567
|
+
if (initialOffset === void 0) { initialOffset = 0; }
|
|
21568
|
+
var line = input;
|
|
21569
|
+
var tIndex;
|
|
21570
|
+
while ((tIndex = line.indexOf('\t')) != -1) {
|
|
21571
|
+
var lineBefore = line.slice(0, tIndex);
|
|
21572
|
+
var lineAfter = line.slice(tIndex + 1);
|
|
21573
|
+
var tabCount = TAB_SPACES - ((lineBefore.length + initialOffset) % TAB_SPACES);
|
|
21574
|
+
var tabStr = Array(tabCount).fill(ENSP_HTML).join('');
|
|
21575
|
+
line = lineBefore + tabStr + lineAfter;
|
|
21576
|
+
}
|
|
21577
|
+
return line;
|
|
21578
|
+
}
|
|
21579
|
+
|
|
21580
|
+
|
|
21283
21581
|
/***/ },
|
|
21284
21582
|
|
|
21285
21583
|
/***/ "./packages/roosterjs-content-model-dom/lib/domUtils/toArray.ts"
|
|
@@ -21872,41 +22170,35 @@ var DEFAULT_COLOR = '#000000';
|
|
|
21872
22170
|
*/
|
|
21873
22171
|
exports.borderColorFormatHandler = {
|
|
21874
22172
|
parse: function (format, element, context) {
|
|
21875
|
-
|
|
21876
|
-
|
|
21877
|
-
|
|
21878
|
-
|
|
21879
|
-
|
|
21880
|
-
|
|
21881
|
-
var
|
|
21882
|
-
|
|
21883
|
-
|
|
21884
|
-
|
|
21885
|
-
|
|
21886
|
-
|
|
21887
|
-
|
|
21888
|
-
|
|
21889
|
-
}
|
|
21890
|
-
});
|
|
21891
|
-
}
|
|
22173
|
+
borderKeys_1.BorderKeys.forEach(function (key) {
|
|
22174
|
+
var width = element.style.getPropertyValue(BorderWidthKeyMap[key]);
|
|
22175
|
+
var style = element.style.getPropertyValue(BorderStyleKeyMap[key]);
|
|
22176
|
+
var color = (0, color_1.retrieveElementColor)(element, key);
|
|
22177
|
+
var borderColor = color == 'initial' ? DEFAULT_COLOR : color;
|
|
22178
|
+
if (borderColor) {
|
|
22179
|
+
var lightModeColor = (0, color_1.getLightModeColor)(borderColor, !!context.isDarkMode, context.darkColorHandler);
|
|
22180
|
+
format[key] = (0, borderValues_1.combineBorderValue)({
|
|
22181
|
+
width: width,
|
|
22182
|
+
style: style,
|
|
22183
|
+
color: lightModeColor,
|
|
22184
|
+
});
|
|
22185
|
+
}
|
|
22186
|
+
});
|
|
21892
22187
|
},
|
|
21893
22188
|
apply: function (format, element, context) {
|
|
21894
|
-
|
|
21895
|
-
|
|
21896
|
-
|
|
21897
|
-
var
|
|
21898
|
-
|
|
21899
|
-
|
|
21900
|
-
var
|
|
21901
|
-
if (
|
|
21902
|
-
|
|
21903
|
-
if (transformedColor) {
|
|
21904
|
-
element.style.setProperty(borderColorProperty, transformedColor);
|
|
21905
|
-
}
|
|
22189
|
+
borderKeys_1.BorderKeys.forEach(function (key) {
|
|
22190
|
+
var value = format[key];
|
|
22191
|
+
if (value) {
|
|
22192
|
+
var borderValues = (0, borderValues_1.extractBorderValues)(value);
|
|
22193
|
+
var borderColorProperty = borderKeys_1.BorderColorKeyMap[key];
|
|
22194
|
+
if (borderValues.color) {
|
|
22195
|
+
var transformedColor = (0, color_1.adaptColor)(element, borderValues.color, 'border', !!context.isDarkMode, context.darkColorHandler);
|
|
22196
|
+
if (transformedColor) {
|
|
22197
|
+
element.style.setProperty(borderColorProperty, transformedColor);
|
|
21906
22198
|
}
|
|
21907
22199
|
}
|
|
21908
|
-
}
|
|
21909
|
-
}
|
|
22200
|
+
}
|
|
22201
|
+
});
|
|
21910
22202
|
},
|
|
21911
22203
|
};
|
|
21912
22204
|
|
|
@@ -23865,8 +24157,8 @@ exports.shouldSetValue = shouldSetValue;
|
|
|
23865
24157
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
23866
24158
|
exports.createImage = exports.createText = exports.createTableCell = exports.createTable = exports.createSelectionMarker = exports.createParagraph = exports.createFormatContainer = exports.createListItem = exports.createBr = exports.isLinkUndeletable = exports.setLinkUndeletable = exports.scrollRectIntoView = exports.normalizeRect = exports.isWhiteSpacePreserved = exports.reuseCachedElement = exports.findClosestBlockEntityContainer = exports.isBlockEntityContainer = exports.isEntityDelimiter = exports.addDelimiters = exports.generateEntityClassNames = exports.parseEntityFormat = exports.getAllEntityWrappers = exports.findClosestEntityWrapper = exports.isEntityElement = exports.unwrap = exports.wrap = exports.wrapAllChildNodes = exports.moveChildNodes = exports.toArray = exports.getSafeIdSelector = exports.getObjectKeys = exports.isElementOfType = exports.isNodeOfType = exports.hasMetadata = exports.getMetadata = exports.updateMetadata = exports.buildSelectionMarker = exports.isBlockElement = exports.areSameFormats = exports.parseFormat = exports.getRegularSelectionOffsets = exports.formatContainerProcessor = exports.tableProcessor = exports.entityProcessor = exports.processChildNode = exports.handleRegularSelection = exports.childProcessor = exports.contentModelToText = exports.contentModelToDom = exports.domToContentModel = void 0;
|
|
23867
24159
|
exports.getDOMInsertPointRect = exports.getSelectionRootNode = exports.isBold = exports.createModelToDomConfig = exports.createModelToDomContextWithConfig = exports.createModelToDomContext = exports.createDomToModelConfig = exports.createDomToModelContextWithConfig = exports.createDomToModelContext = exports.defaultGenerateColorKey = exports.parseColor = exports.setColor = exports.getColor = exports.DeprecatedColors = exports.BorderKeys = exports.parseValueWithUnit = exports.getAutoListStyleType = exports.getOrderedListNumberStr = exports.ParagraphFormats = exports.ListFormatsToMove = exports.ListFormatsToKeep = exports.ListFormats = exports.copyFormat = exports.setParagraphNotImplicit = exports.normalizeSegmentFormat = exports.mergeTextSegments = exports.normalizeSingleSegment = exports.isEmpty = exports.addSegment = exports.unwrapBlock = exports.isGeneralSegment = exports.normalizeContentModel = exports.normalizeParagraph = exports.addTextSegment = exports.addLink = exports.addData = exports.addCode = exports.addBlock = exports.mutateSegment = exports.mutateSegments = exports.mutateBlock = exports.createTableRow = exports.createEmptyModel = exports.createListLevel = exports.createDivider = exports.createEntity = exports.createGeneralBlock = exports.createGeneralSegment = exports.createParagraphDecorator = exports.createContentModelDocument = void 0;
|
|
23868
|
-
exports.
|
|
23869
|
-
exports.EmptySegmentFormat = exports.UnorderedListStyleMap = exports.OrderedListStyleMap = exports.TableBorderFormat = exports.NumberingListType = exports.BulletListType = exports.ChangeSource = exports.ListMetadataDefinition = exports.getListMetadata = exports.updateListMetadata = exports.getTableMetadata = exports.updateTableMetadata = exports.getTableCellMetadata = exports.updateTableCellMetadata = exports.getImageMetadata = exports.updateImageMetadata = exports.runEditSteps = exports.getClosestAncestorBlockGroupIndex = void 0;
|
|
24160
|
+
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;
|
|
24161
|
+
exports.EmptySegmentFormat = exports.UnorderedListStyleMap = exports.OrderedListStyleMap = exports.TableBorderFormat = exports.NumberingListType = exports.BulletListType = exports.ChangeSource = exports.ListMetadataDefinition = exports.getListMetadata = exports.updateListMetadata = exports.getTableMetadata = exports.updateTableMetadata = exports.getTableCellMetadata = exports.updateTableCellMetadata = exports.getImageMetadata = exports.updateImageMetadata = exports.runEditSteps = exports.getClosestAncestorBlockGroupIndex = exports.getSegmentTextFormat = void 0;
|
|
23870
24162
|
var domToContentModel_1 = __webpack_require__(/*! ./domToModel/domToContentModel */ "./packages/roosterjs-content-model-dom/lib/domToModel/domToContentModel.ts");
|
|
23871
24163
|
Object.defineProperty(exports, "domToContentModel", ({ enumerable: true, get: function () { return domToContentModel_1.domToContentModel; } }));
|
|
23872
24164
|
var contentModelToDom_1 = __webpack_require__(/*! ./modelToDom/contentModelToDom */ "./packages/roosterjs-content-model-dom/lib/modelToDom/contentModelToDom.ts");
|
|
@@ -24066,6 +24358,8 @@ var normalizeFontFamily_1 = __webpack_require__(/*! ./domUtils/style/normalizeFo
|
|
|
24066
24358
|
Object.defineProperty(exports, "normalizeFontFamily", ({ enumerable: true, get: function () { return normalizeFontFamily_1.normalizeFontFamily; } }));
|
|
24067
24359
|
var extractClipboardItems_1 = __webpack_require__(/*! ./domUtils/event/extractClipboardItems */ "./packages/roosterjs-content-model-dom/lib/domUtils/event/extractClipboardItems.ts");
|
|
24068
24360
|
Object.defineProperty(exports, "extractClipboardItems", ({ enumerable: true, get: function () { return extractClipboardItems_1.extractClipboardItems; } }));
|
|
24361
|
+
var createPasteFragment_1 = __webpack_require__(/*! ./domUtils/event/createPasteFragment */ "./packages/roosterjs-content-model-dom/lib/domUtils/event/createPasteFragment.ts");
|
|
24362
|
+
Object.defineProperty(exports, "createPasteFragment", ({ enumerable: true, get: function () { return createPasteFragment_1.createPasteFragment; } }));
|
|
24069
24363
|
var cacheGetEventData_1 = __webpack_require__(/*! ./domUtils/event/cacheGetEventData */ "./packages/roosterjs-content-model-dom/lib/domUtils/event/cacheGetEventData.ts");
|
|
24070
24364
|
Object.defineProperty(exports, "cacheGetEventData", ({ enumerable: true, get: function () { return cacheGetEventData_1.cacheGetEventData; } }));
|
|
24071
24365
|
var paragraphMarker_1 = __webpack_require__(/*! ./domUtils/hiddenProperties/paragraphMarker */ "./packages/roosterjs-content-model-dom/lib/domUtils/hiddenProperties/paragraphMarker.ts");
|
|
@@ -25807,12 +26101,102 @@ function applyTableFormat(table, newFormat, keepCellShade) {
|
|
|
25807
26101
|
var effectiveMetadata = (0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)({}, DEFAULT_FORMAT), format), newFormat);
|
|
25808
26102
|
var metaOverrides = updateOverrides(rows, !keepCellShade);
|
|
25809
26103
|
formatCells(rows, effectiveMetadata, metaOverrides);
|
|
26104
|
+
if ((format === null || format === void 0 ? void 0 : format.hasFirstColumn) &&
|
|
26105
|
+
(!effectiveMetadata.hasFirstColumn || (newFormat === null || newFormat === void 0 ? void 0 : newFormat.firstColumnCustomStyles) !== undefined)) {
|
|
26106
|
+
clearFirstColumnTextFormat(rows, format.firstColumnCustomStyles);
|
|
26107
|
+
}
|
|
26108
|
+
if ((format === null || format === void 0 ? void 0 : format.hasHeaderRow) &&
|
|
26109
|
+
(!effectiveMetadata.hasHeaderRow || (newFormat === null || newFormat === void 0 ? void 0 : newFormat.headerRowCustomStyles) !== undefined)) {
|
|
26110
|
+
clearHeaderRowTextFormat(rows, format.headerRowCustomStyles);
|
|
26111
|
+
}
|
|
25810
26112
|
setFirstColumnFormatBorders(rows, effectiveMetadata);
|
|
25811
26113
|
setHeaderRowFormat(rows, effectiveMetadata, metaOverrides);
|
|
25812
26114
|
return effectiveMetadata;
|
|
25813
26115
|
});
|
|
25814
26116
|
}
|
|
25815
26117
|
exports.applyTableFormat = applyTableFormat;
|
|
26118
|
+
function clearFirstColumnTextFormat(rows, customStyles) {
|
|
26119
|
+
var _a;
|
|
26120
|
+
var fontWeight = (_a = customStyles === null || customStyles === void 0 ? void 0 : customStyles.fontWeight) !== null && _a !== void 0 ? _a : 'bold';
|
|
26121
|
+
rows.forEach(function (row) {
|
|
26122
|
+
var e_1, _a, e_2, _b;
|
|
26123
|
+
var cell = row.cells[0] && (0, mutate_1.mutateBlock)(row.cells[0]);
|
|
26124
|
+
if (cell) {
|
|
26125
|
+
clearStyleIfMatch(cell.format, 'fontWeight', fontWeight);
|
|
26126
|
+
clearStyleIfMatch(cell.format, 'textAlign', customStyles === null || customStyles === void 0 ? void 0 : customStyles.textAlign);
|
|
26127
|
+
try {
|
|
26128
|
+
for (var _c = (0, tslib_1.__values)(cell.blocks), _d = _c.next(); !_d.done; _d = _c.next()) {
|
|
26129
|
+
var block = _d.value;
|
|
26130
|
+
if (block.blockType == 'Paragraph') {
|
|
26131
|
+
var mutateParagraph = (0, mutate_1.mutateBlock)(block);
|
|
26132
|
+
try {
|
|
26133
|
+
for (var _e = (e_2 = void 0, (0, tslib_1.__values)(mutateParagraph.segments)), _f = _e.next(); !_f.done; _f = _e.next()) {
|
|
26134
|
+
var cellSegment = _f.value;
|
|
26135
|
+
clearStyleIfMatch(cellSegment.format, 'fontWeight', fontWeight);
|
|
26136
|
+
clearStyleIfMatch(cellSegment.format, 'italic', customStyles === null || customStyles === void 0 ? void 0 : customStyles.italic);
|
|
26137
|
+
}
|
|
26138
|
+
}
|
|
26139
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
26140
|
+
finally {
|
|
26141
|
+
try {
|
|
26142
|
+
if (_f && !_f.done && (_b = _e.return)) _b.call(_e);
|
|
26143
|
+
}
|
|
26144
|
+
finally { if (e_2) throw e_2.error; }
|
|
26145
|
+
}
|
|
26146
|
+
clearStyleIfMatch(block.format, 'textAlign', customStyles === null || customStyles === void 0 ? void 0 : customStyles.textAlign);
|
|
26147
|
+
}
|
|
26148
|
+
}
|
|
26149
|
+
}
|
|
26150
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
26151
|
+
finally {
|
|
26152
|
+
try {
|
|
26153
|
+
if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
|
|
26154
|
+
}
|
|
26155
|
+
finally { if (e_1) throw e_1.error; }
|
|
26156
|
+
}
|
|
26157
|
+
}
|
|
26158
|
+
});
|
|
26159
|
+
}
|
|
26160
|
+
function clearHeaderRowTextFormat(rows, customStyles) {
|
|
26161
|
+
var _a, _b;
|
|
26162
|
+
var fontWeight = (_a = customStyles === null || customStyles === void 0 ? void 0 : customStyles.fontWeight) !== null && _a !== void 0 ? _a : 'bold';
|
|
26163
|
+
(_b = rows[0]) === null || _b === void 0 ? void 0 : _b.cells.forEach(function (readonlyCell) {
|
|
26164
|
+
var e_3, _a, e_4, _b;
|
|
26165
|
+
var cell = (0, mutate_1.mutateBlock)(readonlyCell);
|
|
26166
|
+
clearStyleIfMatch(cell.format, 'fontWeight', fontWeight);
|
|
26167
|
+
clearStyleIfMatch(cell.format, 'textAlign', customStyles === null || customStyles === void 0 ? void 0 : customStyles.textAlign);
|
|
26168
|
+
try {
|
|
26169
|
+
for (var _c = (0, tslib_1.__values)(cell.blocks), _d = _c.next(); !_d.done; _d = _c.next()) {
|
|
26170
|
+
var block = _d.value;
|
|
26171
|
+
if (block.blockType == 'Paragraph') {
|
|
26172
|
+
var mutateParagraph = (0, mutate_1.mutateBlock)(block);
|
|
26173
|
+
try {
|
|
26174
|
+
for (var _e = (e_4 = void 0, (0, tslib_1.__values)(mutateParagraph.segments)), _f = _e.next(); !_f.done; _f = _e.next()) {
|
|
26175
|
+
var cellSegment = _f.value;
|
|
26176
|
+
clearStyleIfMatch(cellSegment.format, 'fontWeight', fontWeight);
|
|
26177
|
+
clearStyleIfMatch(cellSegment.format, 'italic', customStyles === null || customStyles === void 0 ? void 0 : customStyles.italic);
|
|
26178
|
+
}
|
|
26179
|
+
}
|
|
26180
|
+
catch (e_4_1) { e_4 = { error: e_4_1 }; }
|
|
26181
|
+
finally {
|
|
26182
|
+
try {
|
|
26183
|
+
if (_f && !_f.done && (_b = _e.return)) _b.call(_e);
|
|
26184
|
+
}
|
|
26185
|
+
finally { if (e_4) throw e_4.error; }
|
|
26186
|
+
}
|
|
26187
|
+
clearStyleIfMatch(block.format, 'textAlign', customStyles === null || customStyles === void 0 ? void 0 : customStyles.textAlign);
|
|
26188
|
+
}
|
|
26189
|
+
}
|
|
26190
|
+
}
|
|
26191
|
+
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
26192
|
+
finally {
|
|
26193
|
+
try {
|
|
26194
|
+
if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
|
|
26195
|
+
}
|
|
26196
|
+
finally { if (e_3) throw e_3.error; }
|
|
26197
|
+
}
|
|
26198
|
+
});
|
|
26199
|
+
}
|
|
25816
26200
|
function updateOverrides(rows, removeCellShade) {
|
|
25817
26201
|
var overrides = {
|
|
25818
26202
|
bgColorOverrides: [],
|
|
@@ -25973,7 +26357,8 @@ function setFirstColumnFormatBorders(rows, format) {
|
|
|
25973
26357
|
var customStyles = format.hasFirstColumn ? format.firstColumnCustomStyles : undefined;
|
|
25974
26358
|
rows.forEach(function (row, rowIndex) {
|
|
25975
26359
|
row.cells.forEach(function (readonlyCell, cellIndex) {
|
|
25976
|
-
var
|
|
26360
|
+
var e_5, _a, e_6, _b;
|
|
26361
|
+
var _c, _d;
|
|
25977
26362
|
var cell = (0, mutate_1.mutateBlock)(readonlyCell);
|
|
25978
26363
|
if (cellIndex === 0) {
|
|
25979
26364
|
if (rowIndex == 0) {
|
|
@@ -25990,44 +26375,47 @@ function setFirstColumnFormatBorders(rows, format) {
|
|
|
25990
26375
|
}
|
|
25991
26376
|
}
|
|
25992
26377
|
try {
|
|
25993
|
-
for (var
|
|
25994
|
-
var block =
|
|
26378
|
+
for (var _e = (0, tslib_1.__values)(cell.blocks), _f = _e.next(); !_f.done; _f = _e.next()) {
|
|
26379
|
+
var block = _f.value;
|
|
25995
26380
|
if (block.blockType == 'Paragraph') {
|
|
26381
|
+
var mutateParagraph = (0, mutate_1.mutateBlock)(block);
|
|
25996
26382
|
try {
|
|
25997
|
-
for (var
|
|
25998
|
-
var
|
|
25999
|
-
(
|
|
26000
|
-
|
|
26001
|
-
|
|
26002
|
-
|
|
26003
|
-
|
|
26004
|
-
|
|
26005
|
-
setStyleIfDefined(cellSegment.format, 'italic', customStyles === null || customStyles === void 0 ? void 0 : customStyles.italic);
|
|
26383
|
+
for (var _g = (e_6 = void 0, (0, tslib_1.__values)(mutateParagraph.segments)), _h = _g.next(); !_h.done; _h = _g.next()) {
|
|
26384
|
+
var cellSegment = _h.value;
|
|
26385
|
+
if (format.hasFirstColumn) {
|
|
26386
|
+
setStyleIfDefined(cellSegment.format, 'fontWeight', (_c = customStyles === null || customStyles === void 0 ? void 0 : customStyles.fontWeight) !== null && _c !== void 0 ? _c : 'bold');
|
|
26387
|
+
setStyleIfDefined(cell.format, 'textAlign', customStyles === null || customStyles === void 0 ? void 0 : customStyles.textAlign);
|
|
26388
|
+
setStyleIfDefined(cell.format, 'fontWeight', (_d = customStyles === null || customStyles === void 0 ? void 0 : customStyles.fontWeight) !== null && _d !== void 0 ? _d : 'bold');
|
|
26389
|
+
if (customStyles === null || customStyles === void 0 ? void 0 : customStyles.italic) {
|
|
26390
|
+
cellSegment.format.italic = true;
|
|
26006
26391
|
}
|
|
26007
|
-
else if (
|
|
26008
|
-
|
|
26009
|
-
delete cellSegment.format.fontWeight;
|
|
26010
|
-
delete cell.format.fontWeight;
|
|
26392
|
+
else if ((customStyles === null || customStyles === void 0 ? void 0 : customStyles.italic) === false) {
|
|
26393
|
+
delete cellSegment.format.italic;
|
|
26011
26394
|
}
|
|
26012
|
-
}
|
|
26395
|
+
}
|
|
26396
|
+
else if (cellSegment.format.fontWeight == 'bold' &&
|
|
26397
|
+
cell.format.fontWeight == 'bold') {
|
|
26398
|
+
delete cellSegment.format.fontWeight;
|
|
26399
|
+
delete cell.format.fontWeight;
|
|
26400
|
+
}
|
|
26013
26401
|
}
|
|
26014
26402
|
}
|
|
26015
|
-
catch (
|
|
26403
|
+
catch (e_6_1) { e_6 = { error: e_6_1 }; }
|
|
26016
26404
|
finally {
|
|
26017
26405
|
try {
|
|
26018
|
-
if (
|
|
26406
|
+
if (_h && !_h.done && (_b = _g.return)) _b.call(_g);
|
|
26019
26407
|
}
|
|
26020
|
-
finally { if (
|
|
26408
|
+
finally { if (e_6) throw e_6.error; }
|
|
26021
26409
|
}
|
|
26022
26410
|
}
|
|
26023
26411
|
}
|
|
26024
26412
|
}
|
|
26025
|
-
catch (
|
|
26413
|
+
catch (e_5_1) { e_5 = { error: e_5_1 }; }
|
|
26026
26414
|
finally {
|
|
26027
26415
|
try {
|
|
26028
|
-
if (
|
|
26416
|
+
if (_f && !_f.done && (_a = _e.return)) _a.call(_e);
|
|
26029
26417
|
}
|
|
26030
|
-
finally { if (
|
|
26418
|
+
finally { if (e_5) throw e_5.error; }
|
|
26031
26419
|
}
|
|
26032
26420
|
}
|
|
26033
26421
|
});
|
|
@@ -26044,6 +26432,11 @@ function setStyleIfDefined(format, key, value) {
|
|
|
26044
26432
|
format[key] = value;
|
|
26045
26433
|
}
|
|
26046
26434
|
}
|
|
26435
|
+
function clearStyleIfMatch(format, key, value) {
|
|
26436
|
+
if (value !== undefined && format[key] === value) {
|
|
26437
|
+
delete format[key];
|
|
26438
|
+
}
|
|
26439
|
+
}
|
|
26047
26440
|
function setHeaderRowFormat(rows, format, metaOverrides) {
|
|
26048
26441
|
var _a;
|
|
26049
26442
|
if (!format.hasHeaderRow) {
|
|
@@ -26052,11 +26445,12 @@ function setHeaderRowFormat(rows, format, metaOverrides) {
|
|
|
26052
26445
|
var rowIndex = 0;
|
|
26053
26446
|
var customStyles = format.headerRowCustomStyles;
|
|
26054
26447
|
(_a = rows[rowIndex]) === null || _a === void 0 ? void 0 : _a.cells.forEach(function (readonlyCell, cellIndex) {
|
|
26055
|
-
var
|
|
26448
|
+
var e_7, _a, e_8, _b;
|
|
26056
26449
|
var _c, _d, _e, _f;
|
|
26057
26450
|
var cell = (0, mutate_1.mutateBlock)(readonlyCell);
|
|
26451
|
+
var fontWeight = (_c = customStyles === null || customStyles === void 0 ? void 0 : customStyles.fontWeight) !== null && _c !== void 0 ? _c : 'bold';
|
|
26058
26452
|
cell.isHeader = true;
|
|
26059
|
-
cell.format.fontWeight =
|
|
26453
|
+
cell.format.fontWeight = fontWeight;
|
|
26060
26454
|
if (format.headerRowColor) {
|
|
26061
26455
|
if (!metaOverrides.bgColorOverrides[rowIndex][cellIndex]) {
|
|
26062
26456
|
(0, setTableCellBackgroundColor_1.setTableCellBackgroundColor)(cell, format.headerRowColor, false /*isColorOverride*/, true /*applyToSegments*/);
|
|
@@ -26068,40 +26462,40 @@ function setHeaderRowFormat(rows, format, metaOverrides) {
|
|
|
26068
26462
|
if (customStyles) {
|
|
26069
26463
|
setStyleIfDefined(cell.format, 'textAlign', customStyles.textAlign);
|
|
26070
26464
|
setBorderColorIfExists(cell.format, 'borderBottom', customStyles.borderBottomColor);
|
|
26071
|
-
|
|
26072
|
-
|
|
26073
|
-
|
|
26074
|
-
|
|
26075
|
-
|
|
26076
|
-
|
|
26077
|
-
|
|
26078
|
-
|
|
26079
|
-
|
|
26080
|
-
|
|
26081
|
-
|
|
26082
|
-
|
|
26083
|
-
delete cellSegment.format.italic;
|
|
26084
|
-
}
|
|
26085
|
-
});
|
|
26465
|
+
}
|
|
26466
|
+
try {
|
|
26467
|
+
for (var _g = (0, tslib_1.__values)(cell.blocks), _h = _g.next(); !_h.done; _h = _g.next()) {
|
|
26468
|
+
var block = _h.value;
|
|
26469
|
+
if (block.blockType == 'Paragraph') {
|
|
26470
|
+
var mutateParagraph = (0, mutate_1.mutateBlock)(block);
|
|
26471
|
+
try {
|
|
26472
|
+
for (var _j = (e_8 = void 0, (0, tslib_1.__values)(mutateParagraph.segments)), _k = _j.next(); !_k.done; _k = _j.next()) {
|
|
26473
|
+
var cellSegment = _k.value;
|
|
26474
|
+
cellSegment.format.fontWeight = fontWeight;
|
|
26475
|
+
if (customStyles === null || customStyles === void 0 ? void 0 : customStyles.italic) {
|
|
26476
|
+
cellSegment.format.italic = true;
|
|
26086
26477
|
}
|
|
26087
|
-
|
|
26088
|
-
|
|
26089
|
-
finally {
|
|
26090
|
-
try {
|
|
26091
|
-
if (_k && !_k.done && (_b = _j.return)) _b.call(_j);
|
|
26478
|
+
else if ((customStyles === null || customStyles === void 0 ? void 0 : customStyles.italic) === false) {
|
|
26479
|
+
delete cellSegment.format.italic;
|
|
26092
26480
|
}
|
|
26093
|
-
finally { if (e_4) throw e_4.error; }
|
|
26094
26481
|
}
|
|
26095
26482
|
}
|
|
26483
|
+
catch (e_8_1) { e_8 = { error: e_8_1 }; }
|
|
26484
|
+
finally {
|
|
26485
|
+
try {
|
|
26486
|
+
if (_k && !_k.done && (_b = _j.return)) _b.call(_j);
|
|
26487
|
+
}
|
|
26488
|
+
finally { if (e_8) throw e_8.error; }
|
|
26489
|
+
}
|
|
26096
26490
|
}
|
|
26097
26491
|
}
|
|
26098
|
-
|
|
26099
|
-
|
|
26100
|
-
|
|
26101
|
-
|
|
26102
|
-
|
|
26103
|
-
finally { if (e_3) throw e_3.error; }
|
|
26492
|
+
}
|
|
26493
|
+
catch (e_7_1) { e_7 = { error: e_7_1 }; }
|
|
26494
|
+
finally {
|
|
26495
|
+
try {
|
|
26496
|
+
if (_h && !_h.done && (_a = _g.return)) _a.call(_g);
|
|
26104
26497
|
}
|
|
26498
|
+
finally { if (e_7) throw e_7.error; }
|
|
26105
26499
|
}
|
|
26106
26500
|
});
|
|
26107
26501
|
}
|
|
@@ -26909,6 +27303,7 @@ var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.m
|
|
|
26909
27303
|
var addBlock_1 = __webpack_require__(/*! ../common/addBlock */ "./packages/roosterjs-content-model-dom/lib/modelApi/common/addBlock.ts");
|
|
26910
27304
|
var addSegment_1 = __webpack_require__(/*! ../common/addSegment */ "./packages/roosterjs-content-model-dom/lib/modelApi/common/addSegment.ts");
|
|
26911
27305
|
var applyTableFormat_1 = __webpack_require__(/*! ./applyTableFormat */ "./packages/roosterjs-content-model-dom/lib/modelApi/editing/applyTableFormat.ts");
|
|
27306
|
+
var createBr_1 = __webpack_require__(/*! ../creators/createBr */ "./packages/roosterjs-content-model-dom/lib/modelApi/creators/createBr.ts");
|
|
26912
27307
|
var createListItem_1 = __webpack_require__(/*! ../creators/createListItem */ "./packages/roosterjs-content-model-dom/lib/modelApi/creators/createListItem.ts");
|
|
26913
27308
|
var createParagraph_1 = __webpack_require__(/*! ../creators/createParagraph */ "./packages/roosterjs-content-model-dom/lib/modelApi/creators/createParagraph.ts");
|
|
26914
27309
|
var createSelectionMarker_1 = __webpack_require__(/*! ../creators/createSelectionMarker */ "./packages/roosterjs-content-model-dom/lib/modelApi/creators/createSelectionMarker.ts");
|
|
@@ -26931,11 +27326,14 @@ var KeysOfSegmentFormat = (0, getObjectKeys_1.getObjectKeys)(EmptySegmentFormat_
|
|
|
26931
27326
|
* @returns Insert point after merge, or null if there is no insert point
|
|
26932
27327
|
*/
|
|
26933
27328
|
function mergeModel(target, source, context, options) {
|
|
26934
|
-
var _a;
|
|
27329
|
+
var _a, _b;
|
|
26935
27330
|
var insertPosition = (_a = options === null || options === void 0 ? void 0 : options.insertPosition) !== null && _a !== void 0 ? _a : (0, deleteSelection_1.deleteSelection)(target, [], context).insertPoint;
|
|
26936
|
-
var
|
|
27331
|
+
var _c = options || {}, addParagraphAfterMergedContent = _c.addParagraphAfterMergedContent, mergeFormat = _c.mergeFormat, mergeParagraphAfterList = _c.mergeParagraphAfterList, mergeTable = _c.mergeTable;
|
|
27332
|
+
if (mergeParagraphAfterList && insertPosition && ((_b = source.blocks[0]) === null || _b === void 0 ? void 0 : _b.blockType) == 'Paragraph') {
|
|
27333
|
+
moveParagraphAfterListIntoList(insertPosition);
|
|
27334
|
+
}
|
|
26937
27335
|
if (addParagraphAfterMergedContent && !mergeTable) {
|
|
26938
|
-
var
|
|
27336
|
+
var _d = insertPosition || {}, paragraph = _d.paragraph, marker = _d.marker;
|
|
26939
27337
|
var newPara = (0, createParagraph_1.createParagraph)(false /* isImplicit */, paragraph === null || paragraph === void 0 ? void 0 : paragraph.format, marker === null || marker === void 0 ? void 0 : marker.format);
|
|
26940
27338
|
(0, addBlock_1.addBlock)(source, newPara);
|
|
26941
27339
|
}
|
|
@@ -26983,6 +27381,22 @@ function mergeModel(target, source, context, options) {
|
|
|
26983
27381
|
return insertPosition;
|
|
26984
27382
|
}
|
|
26985
27383
|
exports.mergeModel = mergeModel;
|
|
27384
|
+
function moveParagraphAfterListIntoList(insertPosition) {
|
|
27385
|
+
var paragraph = insertPosition.paragraph, path = insertPosition.path;
|
|
27386
|
+
var parent = path[0];
|
|
27387
|
+
var paragraphIndex = parent.blocks.indexOf(paragraph);
|
|
27388
|
+
var previousBlock = parent.blocks[paragraphIndex - 1];
|
|
27389
|
+
if (paragraph.segments.every(function (segment) { return segment.segmentType == 'SelectionMarker' || segment.segmentType == 'Br'; }) &&
|
|
27390
|
+
(previousBlock === null || previousBlock === void 0 ? void 0 : previousBlock.blockType) == 'BlockGroup' &&
|
|
27391
|
+
previousBlock.blockGroupType == 'ListItem') {
|
|
27392
|
+
var newListItem = (0, createListItem_1.createListItem)(previousBlock.levels, previousBlock.formatHolder.format);
|
|
27393
|
+
var paragraphAfterList = (0, createParagraph_1.createParagraph)(false, paragraph.format);
|
|
27394
|
+
(0, addBlock_1.addBlock)(newListItem, paragraph);
|
|
27395
|
+
paragraphAfterList.segments.push((0, createBr_1.createBr)());
|
|
27396
|
+
(0, mutate_1.mutateBlock)(parent).blocks.splice(paragraphIndex, 1, newListItem, paragraphAfterList);
|
|
27397
|
+
path.unshift(newListItem);
|
|
27398
|
+
}
|
|
27399
|
+
}
|
|
26986
27400
|
function mergeParagraph(markerPosition, newPara, mergeToCurrentParagraph, context, option) {
|
|
26987
27401
|
var paragraph = markerPosition.paragraph, marker = markerPosition.marker;
|
|
26988
27402
|
var newParagraph = mergeToCurrentParagraph
|
|
@@ -27050,7 +27464,7 @@ function mergeTables(markerPosition, newTable, source) {
|
|
|
27050
27464
|
var newColIndex = currentColCount + col;
|
|
27051
27465
|
for (var k = 0; k < table.rows.length; k++) {
|
|
27052
27466
|
var leftCell = (_b = table.rows[k]) === null || _b === void 0 ? void 0 : _b.cells[newColIndex - 1];
|
|
27053
|
-
table.rows[k].cells[newColIndex] = (0, createTableCell_1.createTableCell)(false /*spanLeft*/,
|
|
27467
|
+
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);
|
|
27054
27468
|
}
|
|
27055
27469
|
}
|
|
27056
27470
|
}
|
|
@@ -27068,7 +27482,7 @@ function mergeTables(markerPosition, newTable, source) {
|
|
|
27068
27482
|
};
|
|
27069
27483
|
for (var k = 0; k < colCount; k++) {
|
|
27070
27484
|
var aboveCell = (_d = table.rows[newRowIndex - 1]) === null || _d === void 0 ? void 0 : _d.cells[k];
|
|
27071
|
-
table.rows[newRowIndex].cells[k] = (0, createTableCell_1.createTableCell)(
|
|
27485
|
+
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);
|
|
27072
27486
|
}
|
|
27073
27487
|
}
|
|
27074
27488
|
}
|
|
@@ -27112,10 +27526,43 @@ function mergeTables(markerPosition, newTable, source) {
|
|
|
27112
27526
|
(0, normalizeTable_1.normalizeTable)(table, markerPosition.marker.format);
|
|
27113
27527
|
(0, applyTableFormat_1.applyTableFormat)(table, undefined /*newFormat*/, true /*keepCellShade*/);
|
|
27114
27528
|
}
|
|
27115
|
-
else {
|
|
27529
|
+
else if (!mergeTableAfterPreviousTable(markerPosition, newTable)) {
|
|
27116
27530
|
insertBlock(markerPosition, newTable);
|
|
27117
27531
|
}
|
|
27118
27532
|
}
|
|
27533
|
+
function mergeTableAfterPreviousTable(markerPosition, newTable) {
|
|
27534
|
+
var _a;
|
|
27535
|
+
var _b, _c;
|
|
27536
|
+
var marker = markerPosition.marker, paragraph = markerPosition.paragraph, path = markerPosition.path;
|
|
27537
|
+
var parent = path[0];
|
|
27538
|
+
var paragraphIndex = parent.blocks.indexOf(paragraph);
|
|
27539
|
+
var previousBlock = parent.blocks[paragraphIndex - 1];
|
|
27540
|
+
if (paragraphIndex > 0 &&
|
|
27541
|
+
paragraph.segments.indexOf(marker) == 0 &&
|
|
27542
|
+
(previousBlock === null || previousBlock === void 0 ? void 0 : previousBlock.blockType) == 'Table' &&
|
|
27543
|
+
((_b = previousBlock.rows[0]) === null || _b === void 0 ? void 0 : _b.cells.length) > 0 &&
|
|
27544
|
+
((_c = newTable.rows[0]) === null || _c === void 0 ? void 0 : _c.cells.length) > 0) {
|
|
27545
|
+
var table = (0, mutate_1.mutateBlock)(previousBlock);
|
|
27546
|
+
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));
|
|
27547
|
+
extendTableRows(table, columnCount);
|
|
27548
|
+
extendTableRows(newTable, columnCount);
|
|
27549
|
+
(_a = table.rows).push.apply(_a, (0, tslib_1.__spreadArray)([], (0, tslib_1.__read)(newTable.rows), false));
|
|
27550
|
+
return true;
|
|
27551
|
+
}
|
|
27552
|
+
return false;
|
|
27553
|
+
}
|
|
27554
|
+
function extendTableRows(table, columnCount) {
|
|
27555
|
+
table.rows.forEach(function (row) {
|
|
27556
|
+
var currentColumnCount = row.cells.length;
|
|
27557
|
+
var lastCell = row.cells[currentColumnCount - 1];
|
|
27558
|
+
if (lastCell) {
|
|
27559
|
+
for (var col = currentColumnCount; col < columnCount; col++) {
|
|
27560
|
+
var spanCell = (0, createTableCell_1.createTableCell)(true /* spanLeft */, false /* spanAbove */, lastCell.isHeader, lastCell.format, lastCell.dataset);
|
|
27561
|
+
row.cells.push(spanCell);
|
|
27562
|
+
}
|
|
27563
|
+
}
|
|
27564
|
+
});
|
|
27565
|
+
}
|
|
27119
27566
|
function mergeList(markerPosition, newList) {
|
|
27120
27567
|
splitParagraph(markerPosition, newList.format);
|
|
27121
27568
|
var path = markerPosition.path, paragraph = markerPosition.paragraph;
|
|
@@ -32316,7 +32763,11 @@ var MarkdownPastePlugin = /** @class */ (function () {
|
|
|
32316
32763
|
(0, isPastedContentMarkdown_1.isPastedContentMarkdown)(this.editor, clipboardData) &&
|
|
32317
32764
|
clipboardData.modelBeforePaste) {
|
|
32318
32765
|
var modelBeforePaste_1 = (0, roosterjs_content_model_dom_1.cloneModelForPaste)(clipboardData.modelBeforePaste);
|
|
32319
|
-
(0, roosterjs_content_model_dom_1.mergeModel)(modelBeforePaste_1, (0, convertMarkdownToContentModel_1.convertMarkdownToContentModel)(clipboardData.text, {
|
|
32766
|
+
(0, roosterjs_content_model_dom_1.mergeModel)(modelBeforePaste_1, (0, convertMarkdownToContentModel_1.convertMarkdownToContentModel)(clipboardData.text, {
|
|
32767
|
+
emptyLine: 'merge',
|
|
32768
|
+
}), undefined /*context*/, {
|
|
32769
|
+
mergeFormat: 'preferTarget',
|
|
32770
|
+
});
|
|
32320
32771
|
if (this.options.undoConversion) {
|
|
32321
32772
|
this.editor.takeSnapshot();
|
|
32322
32773
|
}
|
|
@@ -32370,7 +32821,7 @@ var BlockPatterns = [
|
|
|
32370
32821
|
/^\s*>\s.+/,
|
|
32371
32822
|
/^\s*[\*\-\+]\s.+/,
|
|
32372
32823
|
/^\s*\d+\.\s.+/,
|
|
32373
|
-
|
|
32824
|
+
/^---$/,
|
|
32374
32825
|
/^\s*\|.*\|\s*$/, // table row: "| a | b |"
|
|
32375
32826
|
];
|
|
32376
32827
|
// Inline markdown patterns. The text contains markdown if any of these match anywhere.
|
|
@@ -32704,6 +33155,7 @@ var DefaultOptions = {
|
|
|
32704
33155
|
autoOrdinals: false,
|
|
32705
33156
|
removeListMargins: false,
|
|
32706
33157
|
autoHorizontalLine: false,
|
|
33158
|
+
autoDirection: false,
|
|
32707
33159
|
};
|
|
32708
33160
|
/**
|
|
32709
33161
|
* Auto Format plugin handles auto formatting, such as transforming * characters into a bullet list.
|
|
@@ -32723,12 +33175,14 @@ var AutoFormatPlugin = /** @class */ (function () {
|
|
|
32723
33175
|
* - autoTel: A boolean that enables or disables automatic hyperlink telephone numbers transformation. Defaults to false.
|
|
32724
33176
|
* - autoMailto: A boolean that enables or disables automatic hyperlink email address transformation. Defaults to false.
|
|
32725
33177
|
* - autoHorizontalLine: A boolean that enables or disables automatic horizontal line creation. Defaults to false.
|
|
33178
|
+
* - autoDirection: A boolean that enables or disables automatic text direction. Defaults to false.
|
|
32726
33179
|
*/
|
|
32727
33180
|
function AutoFormatPlugin(options) {
|
|
32728
33181
|
var _this = this;
|
|
32729
33182
|
if (options === void 0) { options = DefaultOptions; }
|
|
32730
33183
|
this.options = options;
|
|
32731
33184
|
this.editor = null;
|
|
33185
|
+
this.blockDirections = new WeakMap();
|
|
32732
33186
|
this.autoLink = {
|
|
32733
33187
|
enabled: !!(this.options.autoLink || this.options.autoTel || this.options.autoMailto),
|
|
32734
33188
|
transformFunction: function (_model, previousSegment, paragraph, context) {
|
|
@@ -32863,6 +33317,9 @@ var AutoFormatPlugin = /** @class */ (function () {
|
|
|
32863
33317
|
case 'input':
|
|
32864
33318
|
this.handleEditorInputEvent(this.editor, event);
|
|
32865
33319
|
break;
|
|
33320
|
+
case 'compositionEnd':
|
|
33321
|
+
this.handleCompositionEndEvent(this.editor, event.rawEvent.data);
|
|
33322
|
+
break;
|
|
32866
33323
|
case 'keyDown':
|
|
32867
33324
|
this.handleKeyDownEvent(this.editor, event);
|
|
32868
33325
|
break;
|
|
@@ -32927,9 +33384,41 @@ var AutoFormatPlugin = /** @class */ (function () {
|
|
|
32927
33384
|
case ' ':
|
|
32928
33385
|
this.handleKeyboardEvents(editor, this.features);
|
|
32929
33386
|
break;
|
|
33387
|
+
default:
|
|
33388
|
+
this.handleAutoDirection(editor, rawEvent.data, selection.range);
|
|
33389
|
+
break;
|
|
32930
33390
|
}
|
|
32931
33391
|
}
|
|
32932
33392
|
};
|
|
33393
|
+
AutoFormatPlugin.prototype.handleCompositionEndEvent = function (editor, insertedText) {
|
|
33394
|
+
var selection = editor.getDOMSelection();
|
|
33395
|
+
if ((selection === null || selection === void 0 ? void 0 : selection.type) === 'range' && selection.range.collapsed) {
|
|
33396
|
+
this.handleAutoDirection(editor, insertedText, selection.range);
|
|
33397
|
+
}
|
|
33398
|
+
};
|
|
33399
|
+
AutoFormatPlugin.prototype.handleAutoDirection = function (editor, insertedText, range) {
|
|
33400
|
+
var _a;
|
|
33401
|
+
if (!this.options.autoDirection || !insertedText || !(0, roosterjs_content_model_api_1.getTextDirection)(insertedText)) {
|
|
33402
|
+
return;
|
|
33403
|
+
}
|
|
33404
|
+
var block = editor.getDOMHelper().findClosestBlockElement(range.startContainer);
|
|
33405
|
+
var expectedDirection = (0, roosterjs_content_model_api_1.getTextDirection)(block.textContent || '');
|
|
33406
|
+
var inlineDirection = block.style.direction;
|
|
33407
|
+
var cachedDirection = inlineDirection === 'ltr' || inlineDirection === 'rtl'
|
|
33408
|
+
? inlineDirection
|
|
33409
|
+
: this.blockDirections.get(block);
|
|
33410
|
+
if (!expectedDirection || cachedDirection === expectedDirection) {
|
|
33411
|
+
return;
|
|
33412
|
+
}
|
|
33413
|
+
var currentDirection = cachedDirection || ((_a = block.ownerDocument.defaultView) === null || _a === void 0 ? void 0 : _a.getComputedStyle(block).direction);
|
|
33414
|
+
if (currentDirection === 'ltr' || currentDirection === 'rtl') {
|
|
33415
|
+
this.blockDirections.set(block, currentDirection);
|
|
33416
|
+
}
|
|
33417
|
+
if (currentDirection !== expectedDirection) {
|
|
33418
|
+
this.blockDirections.set(block, expectedDirection);
|
|
33419
|
+
(0, roosterjs_content_model_api_1.setDirection)(editor, 'auto');
|
|
33420
|
+
}
|
|
33421
|
+
};
|
|
32933
33422
|
AutoFormatPlugin.prototype.handleKeyDownEvent = function (editor, event) {
|
|
32934
33423
|
var rawEvent = event.rawEvent;
|
|
32935
33424
|
if (!rawEvent.defaultPrevented && !event.handledByEditFeature) {
|
|
@@ -33909,9 +34398,12 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
|
33909
34398
|
exports.DragAndDropPlugin = void 0;
|
|
33910
34399
|
var handleDroppedExternalContent_1 = __webpack_require__(/*! ./utils/handleDroppedExternalContent */ "./packages/roosterjs-content-model-plugins/lib/dragAndDrop/utils/handleDroppedExternalContent.ts");
|
|
33911
34400
|
var handleDroppedInternalContent_1 = __webpack_require__(/*! ./utils/handleDroppedInternalContent */ "./packages/roosterjs-content-model-plugins/lib/dragAndDrop/utils/handleDroppedInternalContent.ts");
|
|
34401
|
+
var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
|
|
34402
|
+
var reorderList_1 = __webpack_require__(/*! ./utils/reorderList */ "./packages/roosterjs-content-model-plugins/lib/dragAndDrop/utils/reorderList.ts");
|
|
33912
34403
|
var DefaultOptions = {
|
|
33913
34404
|
forbiddenElements: ['iframe'],
|
|
33914
34405
|
};
|
|
34406
|
+
var DeleteByDragInputType = 'deleteByDrag';
|
|
33915
34407
|
/**
|
|
33916
34408
|
* DragAndDrop plugin, handles ContentChanged event when change source is "Drop"
|
|
33917
34409
|
* to sanitize dropped content, similar to how PastePlugin sanitizes pasted content.
|
|
@@ -33946,8 +34438,21 @@ var DragAndDropPlugin = /** @class */ (function () {
|
|
|
33946
34438
|
this.editor = editor;
|
|
33947
34439
|
this.disposer = editor.attachDomEvent({
|
|
33948
34440
|
dragstart: {
|
|
33949
|
-
beforeDispatch: function (
|
|
34441
|
+
beforeDispatch: function (ev) {
|
|
33950
34442
|
_this.internalDrag = true;
|
|
34443
|
+
if (_this.editor &&
|
|
34444
|
+
_this.editor.isExperimentalFeatureEnabled('HandleDropInternalContent')) {
|
|
34445
|
+
_this.adjustDraggingCursor(_this.editor, ev);
|
|
34446
|
+
}
|
|
34447
|
+
},
|
|
34448
|
+
},
|
|
34449
|
+
beforeinput: {
|
|
34450
|
+
beforeDispatch: function (event) {
|
|
34451
|
+
var ev = event;
|
|
34452
|
+
if (_this.internalDrag) {
|
|
34453
|
+
_this.handleDragOutOfTheEditor(editor, ev);
|
|
34454
|
+
_this.internalDrag = false;
|
|
34455
|
+
}
|
|
33951
34456
|
},
|
|
33952
34457
|
},
|
|
33953
34458
|
});
|
|
@@ -33964,6 +34469,7 @@ var DragAndDropPlugin = /** @class */ (function () {
|
|
|
33964
34469
|
this.disposer = null;
|
|
33965
34470
|
}
|
|
33966
34471
|
this.forbiddenElements = [];
|
|
34472
|
+
this.internalDrag = false;
|
|
33967
34473
|
};
|
|
33968
34474
|
/**
|
|
33969
34475
|
* Core method for a plugin. Once an event happens in editor, editor will call this
|
|
@@ -33972,7 +34478,6 @@ var DragAndDropPlugin = /** @class */ (function () {
|
|
|
33972
34478
|
* @param event The event to handle:
|
|
33973
34479
|
*/
|
|
33974
34480
|
DragAndDropPlugin.prototype.onPluginEvent = function (event) {
|
|
33975
|
-
var _a;
|
|
33976
34481
|
if (this.editor && event.eventType == 'beforeDrop') {
|
|
33977
34482
|
var dropEvent = event.rawEvent;
|
|
33978
34483
|
if (this.internalDrag &&
|
|
@@ -33980,14 +34485,36 @@ var DragAndDropPlugin = /** @class */ (function () {
|
|
|
33980
34485
|
(0, handleDroppedInternalContent_1.handleDroppedInternalContent)(this.editor, dropEvent);
|
|
33981
34486
|
}
|
|
33982
34487
|
else if (!this.internalDrag) {
|
|
33983
|
-
|
|
33984
|
-
if (html) {
|
|
33985
|
-
(0, handleDroppedExternalContent_1.handleDroppedExternalContent)(this.editor, dropEvent, html, this.forbiddenElements);
|
|
33986
|
-
}
|
|
34488
|
+
(0, handleDroppedExternalContent_1.handleDroppedExternalContent)(this.editor, dropEvent, this.forbiddenElements);
|
|
33987
34489
|
}
|
|
33988
34490
|
this.internalDrag = false;
|
|
33989
34491
|
}
|
|
33990
34492
|
};
|
|
34493
|
+
DragAndDropPlugin.prototype.adjustDraggingCursor = function (editor, dragEvent) {
|
|
34494
|
+
var _a, _b;
|
|
34495
|
+
var selection = editor.getDOMSelection();
|
|
34496
|
+
if ((selection === null || selection === void 0 ? void 0 : selection.type) == 'table') {
|
|
34497
|
+
var doc = (_a = this.editor) === null || _a === void 0 ? void 0 : _a.getDocument();
|
|
34498
|
+
if (doc && dragEvent.dataTransfer) {
|
|
34499
|
+
var ghost_1 = doc.createElement('span');
|
|
34500
|
+
ghost_1.textContent = '|';
|
|
34501
|
+
doc.body.appendChild(ghost_1);
|
|
34502
|
+
dragEvent.dataTransfer.setDragImage(ghost_1, 0, 0);
|
|
34503
|
+
(_b = doc.defaultView) === null || _b === void 0 ? void 0 : _b.requestAnimationFrame(function () { return ghost_1.remove(); });
|
|
34504
|
+
}
|
|
34505
|
+
}
|
|
34506
|
+
};
|
|
34507
|
+
DragAndDropPlugin.prototype.handleDragOutOfTheEditor = function (editor, inputEvent) {
|
|
34508
|
+
if (inputEvent.inputType == DeleteByDragInputType) {
|
|
34509
|
+
inputEvent.preventDefault();
|
|
34510
|
+
editor.formatContentModel(function (model, context) {
|
|
34511
|
+
(0, roosterjs_content_model_dom_1.deleteSelection)(model, [reorderList_1.reorderList], context);
|
|
34512
|
+
return true;
|
|
34513
|
+
}, {
|
|
34514
|
+
changeSource: roosterjs_content_model_dom_1.ChangeSource.DragOutOfEditor,
|
|
34515
|
+
});
|
|
34516
|
+
}
|
|
34517
|
+
};
|
|
33991
34518
|
return DragAndDropPlugin;
|
|
33992
34519
|
}());
|
|
33993
34520
|
exports.DragAndDropPlugin = DragAndDropPlugin;
|
|
@@ -34049,37 +34576,90 @@ exports.cleanForbiddenElements = cleanForbiddenElements;
|
|
|
34049
34576
|
|
|
34050
34577
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
34051
34578
|
exports.handleDroppedExternalContent = void 0;
|
|
34579
|
+
var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.mjs");
|
|
34052
34580
|
var cleanForbiddenElements_1 = __webpack_require__(/*! ./cleanForbiddenElements */ "./packages/roosterjs-content-model-plugins/lib/dragAndDrop/utils/cleanForbiddenElements.ts");
|
|
34053
34581
|
var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
|
|
34054
34582
|
/**
|
|
34055
34583
|
* @internal
|
|
34056
34584
|
* Handle dropped HTML content by inserting it at the drop position
|
|
34057
34585
|
*/
|
|
34058
|
-
function handleDroppedExternalContent(editor, event,
|
|
34059
|
-
|
|
34060
|
-
|
|
34061
|
-
|
|
34062
|
-
|
|
34063
|
-
|
|
34064
|
-
|
|
34065
|
-
|
|
34066
|
-
|
|
34067
|
-
|
|
34068
|
-
|
|
34069
|
-
|
|
34070
|
-
|
|
34071
|
-
|
|
34072
|
-
|
|
34073
|
-
|
|
34074
|
-
|
|
34075
|
-
|
|
34076
|
-
|
|
34077
|
-
|
|
34078
|
-
|
|
34586
|
+
function handleDroppedExternalContent(editor, event, forbiddenElements) {
|
|
34587
|
+
return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
|
|
34588
|
+
var items, doc, domPosition, droppedModel_1, range;
|
|
34589
|
+
return (0, tslib_1.__generator)(this, function (_a) {
|
|
34590
|
+
switch (_a.label) {
|
|
34591
|
+
case 0:
|
|
34592
|
+
items = getSupportedItems(event.dataTransfer);
|
|
34593
|
+
if (items.length == 0) {
|
|
34594
|
+
return [2 /*return*/];
|
|
34595
|
+
}
|
|
34596
|
+
doc = editor.getDocument();
|
|
34597
|
+
domPosition = (0, roosterjs_content_model_dom_1.getNodePositionFromEvent)(doc, editor.getDOMHelper(), event.x, event.y);
|
|
34598
|
+
if (!domPosition) return [3 /*break*/, 2];
|
|
34599
|
+
event.preventDefault();
|
|
34600
|
+
event.stopPropagation();
|
|
34601
|
+
return [4 /*yield*/, getDroppedModel(editor, items, forbiddenElements)];
|
|
34602
|
+
case 1:
|
|
34603
|
+
droppedModel_1 = _a.sent();
|
|
34604
|
+
if (!droppedModel_1) {
|
|
34605
|
+
return [2 /*return*/];
|
|
34606
|
+
}
|
|
34607
|
+
range = doc.createRange();
|
|
34608
|
+
range.setStart(domPosition.node, domPosition.offset);
|
|
34609
|
+
range.collapse(true);
|
|
34610
|
+
editor.formatContentModel(function (model, context) {
|
|
34611
|
+
(0, roosterjs_content_model_dom_1.mergeModel)(model, droppedModel_1, context, {
|
|
34612
|
+
mergeParagraphAfterList: true,
|
|
34613
|
+
});
|
|
34614
|
+
return true;
|
|
34615
|
+
}, {
|
|
34616
|
+
selectionOverride: {
|
|
34617
|
+
type: 'range',
|
|
34618
|
+
range: range,
|
|
34619
|
+
isReverted: false,
|
|
34620
|
+
},
|
|
34621
|
+
});
|
|
34622
|
+
_a.label = 2;
|
|
34623
|
+
case 2: return [2 /*return*/];
|
|
34624
|
+
}
|
|
34079
34625
|
});
|
|
34080
|
-
}
|
|
34626
|
+
});
|
|
34081
34627
|
}
|
|
34082
34628
|
exports.handleDroppedExternalContent = handleDroppedExternalContent;
|
|
34629
|
+
function getDroppedModel(editor, items, forbiddenElements) {
|
|
34630
|
+
return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
|
|
34631
|
+
var clipboardData, domCreator, doc, fragment;
|
|
34632
|
+
return (0, tslib_1.__generator)(this, function (_a) {
|
|
34633
|
+
switch (_a.label) {
|
|
34634
|
+
case 0: return [4 /*yield*/, (0, roosterjs_content_model_dom_1.extractClipboardItems)(items, undefined)];
|
|
34635
|
+
case 1:
|
|
34636
|
+
clipboardData = _a.sent();
|
|
34637
|
+
domCreator = editor.getDOMCreator();
|
|
34638
|
+
doc = clipboardData.rawHtml ? domCreator.htmlToDOM(clipboardData.rawHtml) : null;
|
|
34639
|
+
if (doc) {
|
|
34640
|
+
(0, cleanForbiddenElements_1.cleanForbiddenElements)(doc, forbiddenElements);
|
|
34641
|
+
}
|
|
34642
|
+
fragment = (0, roosterjs_content_model_dom_1.createPasteFragment)(editor.getDocument(), clipboardData, 'normal', doc === null || doc === void 0 ? void 0 : doc.body);
|
|
34643
|
+
return [2 /*return*/, (0, roosterjs_content_model_dom_1.domToContentModel)(fragment, (0, roosterjs_content_model_dom_1.createDomToModelContext)())];
|
|
34644
|
+
}
|
|
34645
|
+
});
|
|
34646
|
+
});
|
|
34647
|
+
}
|
|
34648
|
+
function getSupportedItems(dataTransfer) {
|
|
34649
|
+
var _a;
|
|
34650
|
+
var result = [];
|
|
34651
|
+
for (var i = 0; i < ((_a = dataTransfer === null || dataTransfer === void 0 ? void 0 : dataTransfer.items.length) !== null && _a !== void 0 ? _a : 0); i++) {
|
|
34652
|
+
var item = dataTransfer.items[i];
|
|
34653
|
+
if ((item.kind == 'string' &&
|
|
34654
|
+
(item.type == 'text/html' ||
|
|
34655
|
+
item.type == 'text/plain' ||
|
|
34656
|
+
item.type == 'text/uri-list')) ||
|
|
34657
|
+
(item.kind == 'file' && item.type.indexOf('image/') == 0)) {
|
|
34658
|
+
result.push(item);
|
|
34659
|
+
}
|
|
34660
|
+
}
|
|
34661
|
+
return result;
|
|
34662
|
+
}
|
|
34083
34663
|
|
|
34084
34664
|
|
|
34085
34665
|
/***/ },
|
|
@@ -34096,6 +34676,7 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
|
34096
34676
|
exports.handleDroppedInternalContent = void 0;
|
|
34097
34677
|
var roosterjs_content_model_api_1 = __webpack_require__(/*! roosterjs-content-model-api */ "./packages/roosterjs-content-model-api/lib/index.ts");
|
|
34098
34678
|
var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
|
|
34679
|
+
var reorderList_1 = __webpack_require__(/*! ./reorderList */ "./packages/roosterjs-content-model-plugins/lib/dragAndDrop/utils/reorderList.ts");
|
|
34099
34680
|
/**
|
|
34100
34681
|
* @internal
|
|
34101
34682
|
* Handle dropped internal HTML content by inserting it at the drop position
|
|
@@ -34111,8 +34692,10 @@ function handleDroppedInternalContent(editor, event) {
|
|
|
34111
34692
|
if (insertPoint) {
|
|
34112
34693
|
var cloneModel = (0, roosterjs_content_model_dom_1.cloneModelForPaste)(model);
|
|
34113
34694
|
(0, roosterjs_content_model_dom_1.trimModelForSelection)(cloneModel, selection);
|
|
34114
|
-
if (
|
|
34115
|
-
(0, roosterjs_content_model_dom_1.
|
|
34695
|
+
if (!event.ctrlKey && !event.metaKey) {
|
|
34696
|
+
if ((0, roosterjs_content_model_dom_1.deleteSelection)(model, [reorderList_1.reorderList], context).deleteResult == 'range') {
|
|
34697
|
+
(0, roosterjs_content_model_dom_1.normalizeContentModel)(model);
|
|
34698
|
+
}
|
|
34116
34699
|
}
|
|
34117
34700
|
var startMarker = (0, roosterjs_content_model_dom_1.createSelectionMarker)(insertPoint.marker.format);
|
|
34118
34701
|
var startParagraph = (0, roosterjs_content_model_dom_1.mutateBlock)(insertPoint.paragraph);
|
|
@@ -34120,6 +34703,7 @@ function handleDroppedInternalContent(editor, event) {
|
|
|
34120
34703
|
startParagraph.segments.splice(startIndex, 0, startMarker);
|
|
34121
34704
|
var newInsertPoint = (0, roosterjs_content_model_dom_1.mergeModel)(model, cloneModel, context, {
|
|
34122
34705
|
insertPosition: insertPoint,
|
|
34706
|
+
mergeParagraphAfterList: true,
|
|
34123
34707
|
});
|
|
34124
34708
|
if (newInsertPoint) {
|
|
34125
34709
|
(0, roosterjs_content_model_dom_1.setSelection)(model, startMarker, newInsertPoint.marker);
|
|
@@ -34131,6 +34715,39 @@ function handleDroppedInternalContent(editor, event) {
|
|
|
34131
34715
|
exports.handleDroppedInternalContent = handleDroppedInternalContent;
|
|
34132
34716
|
|
|
34133
34717
|
|
|
34718
|
+
/***/ },
|
|
34719
|
+
|
|
34720
|
+
/***/ "./packages/roosterjs-content-model-plugins/lib/dragAndDrop/utils/reorderList.ts"
|
|
34721
|
+
/*!***************************************************************************************!*\
|
|
34722
|
+
!*** ./packages/roosterjs-content-model-plugins/lib/dragAndDrop/utils/reorderList.ts ***!
|
|
34723
|
+
\***************************************************************************************/
|
|
34724
|
+
(__unused_webpack_module, exports, __webpack_require__) {
|
|
34725
|
+
|
|
34726
|
+
"use strict";
|
|
34727
|
+
|
|
34728
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
34729
|
+
exports.reorderList = void 0;
|
|
34730
|
+
var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.mjs");
|
|
34731
|
+
var getListItemFromInsertPoint_1 = __webpack_require__(/*! ../../edit/utils/getListItemFromInsertPoint */ "./packages/roosterjs-content-model-plugins/lib/edit/utils/getListItemFromInsertPoint.ts");
|
|
34732
|
+
var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
|
|
34733
|
+
/**
|
|
34734
|
+
* @internal
|
|
34735
|
+
*/
|
|
34736
|
+
var reorderList = function (context) {
|
|
34737
|
+
if (context.deleteResult != 'range') {
|
|
34738
|
+
return;
|
|
34739
|
+
}
|
|
34740
|
+
var paragraph = context.insertPoint.paragraph;
|
|
34741
|
+
var listItemAndParent = (0, getListItemFromInsertPoint_1.getListItemFromInsertPoint)(context.insertPoint);
|
|
34742
|
+
if (listItemAndParent) {
|
|
34743
|
+
var _a = (0, tslib_1.__read)(listItemAndParent, 1), item = _a[0];
|
|
34744
|
+
var mutableList = (0, roosterjs_content_model_dom_1.mutateBlock)(item);
|
|
34745
|
+
mutableList.blocks.splice(mutableList.blocks.indexOf(paragraph), mutableList.blocks.length);
|
|
34746
|
+
}
|
|
34747
|
+
};
|
|
34748
|
+
exports.reorderList = reorderList;
|
|
34749
|
+
|
|
34750
|
+
|
|
34134
34751
|
/***/ },
|
|
34135
34752
|
|
|
34136
34753
|
/***/ "./packages/roosterjs-content-model-plugins/lib/edit/EditPlugin.ts"
|
|
@@ -34414,6 +35031,9 @@ var deleteAllSegmentBefore = function (context) {
|
|
|
34414
35031
|
context.deleteResult = 'range';
|
|
34415
35032
|
}
|
|
34416
35033
|
}
|
|
35034
|
+
if (mutableParagraph.segments.length == 1 && mutableParagraph.segments[0] == marker) {
|
|
35035
|
+
mutableParagraph.segments.push((0, roosterjs_content_model_dom_1.createBr)(marker.format));
|
|
35036
|
+
}
|
|
34417
35037
|
};
|
|
34418
35038
|
exports.deleteAllSegmentBefore = deleteAllSegmentBefore;
|
|
34419
35039
|
|
|
@@ -34629,6 +35249,7 @@ var insertNewLine = function (quote, parent, quoteIndex, paragraph) {
|
|
|
34629
35249
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
34630
35250
|
exports.deleteList = void 0;
|
|
34631
35251
|
var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.mjs");
|
|
35252
|
+
var getListItemFromInsertPoint_1 = __webpack_require__(/*! ../utils/getListItemFromInsertPoint */ "./packages/roosterjs-content-model-plugins/lib/edit/utils/getListItemFromInsertPoint.ts");
|
|
34632
35253
|
var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
|
|
34633
35254
|
/**
|
|
34634
35255
|
* @internal
|
|
@@ -34638,18 +35259,14 @@ var deleteList = function (context) {
|
|
|
34638
35259
|
if (context.deleteResult != 'notDeleted') {
|
|
34639
35260
|
return;
|
|
34640
35261
|
}
|
|
34641
|
-
var
|
|
34642
|
-
var
|
|
34643
|
-
|
|
34644
|
-
|
|
34645
|
-
if ((item === null || item === void 0 ? void 0 : item.blockGroupType) == 'ListItem' &&
|
|
34646
|
-
item.levels.length > 0 &&
|
|
34647
|
-
paragraph.segments[0] == marker &&
|
|
34648
|
-
parent) {
|
|
35262
|
+
var paragraph = context.insertPoint.paragraph;
|
|
35263
|
+
var listItemAndParent = (0, getListItemFromInsertPoint_1.getListItemFromInsertPoint)(context.insertPoint);
|
|
35264
|
+
if (listItemAndParent) {
|
|
35265
|
+
var _c = (0, tslib_1.__read)(listItemAndParent, 2), item = _c[0], parent_1 = _c[1];
|
|
34649
35266
|
var mutableList = (0, roosterjs_content_model_dom_1.mutateBlock)(item);
|
|
34650
35267
|
var lastLevel = mutableList.levels[mutableList.levels.length - 1];
|
|
34651
|
-
var listItemIndex =
|
|
34652
|
-
var previousItem =
|
|
35268
|
+
var listItemIndex = parent_1.blocks.indexOf(item);
|
|
35269
|
+
var previousItem = parent_1.blocks[listItemIndex - 1];
|
|
34653
35270
|
// 1. If the last level is dummy, just remove it (legacy behavior)
|
|
34654
35271
|
// 2. If focus is at the beginning of list item and previous block is a list item with the same level count,
|
|
34655
35272
|
// merge current list item into previous one
|
|
@@ -34665,7 +35282,7 @@ var deleteList = function (context) {
|
|
|
34665
35282
|
previousItem.levels.length == mutableList.levels.length) {
|
|
34666
35283
|
var mutablePreviousItem = (0, roosterjs_content_model_dom_1.mutateBlock)(previousItem);
|
|
34667
35284
|
(_a = mutablePreviousItem.blocks).push.apply(_a, (0, tslib_1.__spreadArray)([], (0, tslib_1.__read)(mutableList.blocks), false));
|
|
34668
|
-
(0, roosterjs_content_model_dom_1.mutateBlock)(
|
|
35285
|
+
(0, roosterjs_content_model_dom_1.mutateBlock)(parent_1).blocks.splice(listItemIndex, 1);
|
|
34669
35286
|
context.deleteResult = 'range';
|
|
34670
35287
|
}
|
|
34671
35288
|
else {
|
|
@@ -34673,10 +35290,10 @@ var deleteList = function (context) {
|
|
|
34673
35290
|
if (mutableList.levels.length > 1) {
|
|
34674
35291
|
var newListItem = (0, roosterjs_content_model_dom_1.createListItem)(mutableList.levels.slice(0, -1), mutableList.formatHolder.format);
|
|
34675
35292
|
newListItem.blocks = removedBlocks.map(function (block) { return (0, roosterjs_content_model_dom_1.mutateBlock)(block); });
|
|
34676
|
-
(0, roosterjs_content_model_dom_1.mutateBlock)(
|
|
35293
|
+
(0, roosterjs_content_model_dom_1.mutateBlock)(parent_1).blocks.splice(listItemIndex + 1, 0, newListItem);
|
|
34677
35294
|
}
|
|
34678
35295
|
else {
|
|
34679
|
-
(_b = (0, roosterjs_content_model_dom_1.mutateBlock)(
|
|
35296
|
+
(_b = (0, roosterjs_content_model_dom_1.mutateBlock)(parent_1).blocks).splice.apply(_b, (0, tslib_1.__spreadArray)([listItemIndex + 1, 0], (0, tslib_1.__read)(removedBlocks), false));
|
|
34680
35297
|
}
|
|
34681
35298
|
context.deleteResult = 'range';
|
|
34682
35299
|
}
|
|
@@ -35141,6 +35758,11 @@ var handleEnterOnParagraph = function (formatsToPreserveOnMerge) { return functi
|
|
|
35141
35758
|
context.deleteResult = 'range';
|
|
35142
35759
|
context.lastParagraph = newPara;
|
|
35143
35760
|
context.insertPoint.paragraph = newPara;
|
|
35761
|
+
if (context.formatContext) {
|
|
35762
|
+
context.formatContext.announceData = {
|
|
35763
|
+
defaultStrings: 'newLineInserted',
|
|
35764
|
+
};
|
|
35765
|
+
}
|
|
35144
35766
|
}
|
|
35145
35767
|
}; };
|
|
35146
35768
|
exports.handleEnterOnParagraph = handleEnterOnParagraph;
|
|
@@ -35845,6 +36467,37 @@ function getLeafSiblingBlock(path, block, isNext) {
|
|
|
35845
36467
|
exports.getLeafSiblingBlock = getLeafSiblingBlock;
|
|
35846
36468
|
|
|
35847
36469
|
|
|
36470
|
+
/***/ },
|
|
36471
|
+
|
|
36472
|
+
/***/ "./packages/roosterjs-content-model-plugins/lib/edit/utils/getListItemFromInsertPoint.ts"
|
|
36473
|
+
/*!***********************************************************************************************!*\
|
|
36474
|
+
!*** ./packages/roosterjs-content-model-plugins/lib/edit/utils/getListItemFromInsertPoint.ts ***!
|
|
36475
|
+
\***********************************************************************************************/
|
|
36476
|
+
(__unused_webpack_module, exports, __webpack_require__) {
|
|
36477
|
+
|
|
36478
|
+
"use strict";
|
|
36479
|
+
|
|
36480
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
36481
|
+
exports.getListItemFromInsertPoint = void 0;
|
|
36482
|
+
var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
|
|
36483
|
+
/**
|
|
36484
|
+
* @internal
|
|
36485
|
+
*/
|
|
36486
|
+
function getListItemFromInsertPoint(insertPoint) {
|
|
36487
|
+
var paragraph = insertPoint.paragraph, marker = insertPoint.marker, path = insertPoint.path;
|
|
36488
|
+
var index = (0, roosterjs_content_model_dom_1.getClosestAncestorBlockGroupIndex)(path, ['ListItem'], ['TableCell', 'FormatContainer']);
|
|
36489
|
+
var item = path[index];
|
|
36490
|
+
var parent = path[index + 1];
|
|
36491
|
+
return (item === null || item === void 0 ? void 0 : item.blockGroupType) == 'ListItem' &&
|
|
36492
|
+
item.levels.length > 0 &&
|
|
36493
|
+
paragraph.segments[0] == marker &&
|
|
36494
|
+
parent
|
|
36495
|
+
? [item, parent]
|
|
36496
|
+
: null;
|
|
36497
|
+
}
|
|
36498
|
+
exports.getListItemFromInsertPoint = getListItemFromInsertPoint;
|
|
36499
|
+
|
|
36500
|
+
|
|
35848
36501
|
/***/ },
|
|
35849
36502
|
|
|
35850
36503
|
/***/ "./packages/roosterjs-content-model-plugins/lib/edit/utils/preserveParagraphFormat.ts"
|
|
@@ -37389,7 +38042,7 @@ var ImageEditPlugin = /** @class */ (function () {
|
|
|
37389
38042
|
if (this.imageEditInfo) {
|
|
37390
38043
|
this.startEditing(editor, image, ['resize', 'rotate']);
|
|
37391
38044
|
if (this.selectedImage && this.imageEditInfo && this.wrapper && this.clonedImage) {
|
|
37392
|
-
var
|
|
38045
|
+
var _c = editor.getEnvironment(), isMobileOrTablet = _c.isMobileOrTablet, isTouchSupported = _c.isTouchSupported;
|
|
37393
38046
|
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 () {
|
|
37394
38047
|
if (_this.imageEditInfo &&
|
|
37395
38048
|
_this.selectedImage &&
|
|
@@ -37398,7 +38051,7 @@ var ImageEditPlugin = /** @class */ (function () {
|
|
|
37398
38051
|
(0, updateWrapper_1.updateWrapper)(_this.imageEditInfo, _this.options, _this.selectedImage, _this.clonedImage, _this.wrapper, _this.resizers, undefined /* croppers */, isRTL);
|
|
37399
38052
|
_this.wasImageResized = true;
|
|
37400
38053
|
}
|
|
37401
|
-
}, this.zoomScale,
|
|
38054
|
+
}, 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 () {
|
|
37402
38055
|
var _a, _b;
|
|
37403
38056
|
if (_this.imageEditInfo &&
|
|
37404
38057
|
_this.selectedImage &&
|
|
@@ -37408,7 +38061,7 @@ var ImageEditPlugin = /** @class */ (function () {
|
|
|
37408
38061
|
_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));
|
|
37409
38062
|
_this.updateResizeHandleDirection(_this.resizers, _this.imageEditInfo.angleRad);
|
|
37410
38063
|
}
|
|
37411
|
-
}, this.zoomScale,
|
|
38064
|
+
}, this.zoomScale, !!isMobileOrTablet, !!isTouchSupported)), false);
|
|
37412
38065
|
(0, updateWrapper_1.updateWrapper)(this.imageEditInfo, this.options, this.selectedImage, this.clonedImage, this.wrapper, this.resizers, undefined /* croppers */, isRTL);
|
|
37413
38066
|
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));
|
|
37414
38067
|
}
|
|
@@ -37454,7 +38107,7 @@ var ImageEditPlugin = /** @class */ (function () {
|
|
|
37454
38107
|
(0, updateWrapper_1.updateWrapper)(_this.imageEditInfo, _this.options, _this.selectedImage, _this.clonedImage, _this.wrapper, undefined /* resizers */, _this.croppers, isRTL);
|
|
37455
38108
|
_this.isCropMode = true;
|
|
37456
38109
|
}
|
|
37457
|
-
}, this.zoomScale, !!editor.getEnvironment().isMobileOrTablet)), false);
|
|
38110
|
+
}, this.zoomScale, !!editor.getEnvironment().isMobileOrTablet, !!editor.getEnvironment().isTouchSupported)), false);
|
|
37458
38111
|
(0, updateWrapper_1.updateWrapper)(this.imageEditInfo, this.options, this.selectedImage, this.clonedImage, this.wrapper, undefined /* resizers */, this.croppers, isRTL);
|
|
37459
38112
|
}
|
|
37460
38113
|
}
|
|
@@ -38673,7 +39326,7 @@ var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-mo
|
|
|
38673
39326
|
/**
|
|
38674
39327
|
* @internal
|
|
38675
39328
|
*/
|
|
38676
|
-
function getDropAndDragHelpers(wrapper, editInfo, options, elementClass, helper, updateWrapper, zoomScale,
|
|
39329
|
+
function getDropAndDragHelpers(wrapper, editInfo, options, elementClass, helper, updateWrapper, zoomScale, forceMobile, isTouchSupported) {
|
|
38677
39330
|
return getEditElements(wrapper, elementClass).map(function (element) {
|
|
38678
39331
|
return new DragAndDropHelper_1.DragAndDropHelper(element, {
|
|
38679
39332
|
editInfo: editInfo,
|
|
@@ -38681,7 +39334,7 @@ function getDropAndDragHelpers(wrapper, editInfo, options, elementClass, helper,
|
|
|
38681
39334
|
elementClass: elementClass,
|
|
38682
39335
|
x: element.dataset.x,
|
|
38683
39336
|
y: element.dataset.y,
|
|
38684
|
-
}, updateWrapper, helper, zoomScale,
|
|
39337
|
+
}, updateWrapper, helper, zoomScale, forceMobile, isTouchSupported);
|
|
38685
39338
|
});
|
|
38686
39339
|
}
|
|
38687
39340
|
exports.getDropAndDragHelpers = getDropAndDragHelpers;
|
|
@@ -42254,7 +42907,7 @@ var MOUSE_EVENT_INFO_DESKTOP = (function () {
|
|
|
42254
42907
|
MOUSEDOWN: 'mousedown',
|
|
42255
42908
|
MOUSEMOVE: 'mousemove',
|
|
42256
42909
|
MOUSEUP: 'mouseup',
|
|
42257
|
-
|
|
42910
|
+
normalizeEvent: normalizeMouseEvent,
|
|
42258
42911
|
};
|
|
42259
42912
|
})();
|
|
42260
42913
|
var MOUSE_EVENT_INFO_MOBILE = (function () {
|
|
@@ -42262,21 +42915,37 @@ var MOUSE_EVENT_INFO_MOBILE = (function () {
|
|
|
42262
42915
|
MOUSEDOWN: 'touchstart',
|
|
42263
42916
|
MOUSEMOVE: 'touchmove',
|
|
42264
42917
|
MOUSEUP: 'touchend',
|
|
42265
|
-
|
|
42918
|
+
normalizeEvent: normalizeTouchEvent,
|
|
42266
42919
|
};
|
|
42267
42920
|
})();
|
|
42268
|
-
function
|
|
42269
|
-
|
|
42270
|
-
|
|
42271
|
-
|
|
42272
|
-
|
|
42273
|
-
|
|
42274
|
-
|
|
42275
|
-
|
|
42276
|
-
|
|
42277
|
-
|
|
42278
|
-
}
|
|
42279
|
-
|
|
42921
|
+
function normalizeMouseEvent(event) {
|
|
42922
|
+
var mouseEvent = event;
|
|
42923
|
+
return {
|
|
42924
|
+
clientX: mouseEvent.clientX,
|
|
42925
|
+
clientY: mouseEvent.clientY,
|
|
42926
|
+
pageX: mouseEvent.pageX,
|
|
42927
|
+
pageY: mouseEvent.pageY,
|
|
42928
|
+
target: mouseEvent.target,
|
|
42929
|
+
shiftKey: mouseEvent.shiftKey,
|
|
42930
|
+
altKey: mouseEvent.altKey,
|
|
42931
|
+
};
|
|
42932
|
+
}
|
|
42933
|
+
function normalizeTouchEvent(event) {
|
|
42934
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
|
42935
|
+
var touchEvent = event;
|
|
42936
|
+
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];
|
|
42937
|
+
var clientX = (_d = touch === null || touch === void 0 ? void 0 : touch.clientX) !== null && _d !== void 0 ? _d : 0;
|
|
42938
|
+
var clientY = (_e = touch === null || touch === void 0 ? void 0 : touch.clientY) !== null && _e !== void 0 ? _e : 0;
|
|
42939
|
+
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;
|
|
42940
|
+
return {
|
|
42941
|
+
clientX: clientX,
|
|
42942
|
+
clientY: clientY,
|
|
42943
|
+
pageX: (_j = touch === null || touch === void 0 ? void 0 : touch.pageX) !== null && _j !== void 0 ? _j : 0,
|
|
42944
|
+
pageY: (_k = touch === null || touch === void 0 ? void 0 : touch.pageY) !== null && _k !== void 0 ? _k : 0,
|
|
42945
|
+
target: touch ? (_l = document === null || document === void 0 ? void 0 : document.elementFromPoint(clientX, clientY)) !== null && _l !== void 0 ? _l : event.target : event.target,
|
|
42946
|
+
shiftKey: false,
|
|
42947
|
+
altKey: false,
|
|
42948
|
+
};
|
|
42280
42949
|
}
|
|
42281
42950
|
/**
|
|
42282
42951
|
* @internal
|
|
@@ -42293,8 +42962,9 @@ var DragAndDropHelper = /** @class */ (function () {
|
|
|
42293
42962
|
* @param handler The event handler object, see DragAndDropHandler interface for more information
|
|
42294
42963
|
* @param zoomScale The zoom scale of the editor
|
|
42295
42964
|
* @param forceMobile A boolean to force the use of touch controls for the helper
|
|
42965
|
+
* @param isTouchSupported Whether the current browser supports touch input
|
|
42296
42966
|
*/
|
|
42297
|
-
function DragAndDropHelper(trigger, context, onSubmit, handler, zoomScale, forceMobile) {
|
|
42967
|
+
function DragAndDropHelper(trigger, context, onSubmit, handler, zoomScale, forceMobile, isTouchSupported) {
|
|
42298
42968
|
var _this = this;
|
|
42299
42969
|
this.trigger = trigger;
|
|
42300
42970
|
this.context = context;
|
|
@@ -42304,23 +42974,29 @@ var DragAndDropHelper = /** @class */ (function () {
|
|
|
42304
42974
|
this.initX = 0;
|
|
42305
42975
|
this.initY = 0;
|
|
42306
42976
|
this.initValue = undefined;
|
|
42977
|
+
this.dndMouse = MOUSE_EVENT_INFO_DESKTOP;
|
|
42307
42978
|
this.onMouseDown = function (e) {
|
|
42308
42979
|
var _a;
|
|
42309
42980
|
var _b, _c;
|
|
42310
42981
|
e.preventDefault();
|
|
42311
42982
|
e.stopPropagation();
|
|
42983
|
+
_this.dndMouse =
|
|
42984
|
+
e.type == MOUSE_EVENT_INFO_MOBILE.MOUSEDOWN
|
|
42985
|
+
? MOUSE_EVENT_INFO_MOBILE
|
|
42986
|
+
: MOUSE_EVENT_INFO_DESKTOP;
|
|
42312
42987
|
_this.addDocumentEvents();
|
|
42313
|
-
|
|
42314
|
-
|
|
42988
|
+
var event = _this.dndMouse.normalizeEvent(e);
|
|
42989
|
+
_a = (0, tslib_1.__read)([event.pageX, event.pageY], 2), _this.initX = _a[0], _this.initY = _a[1];
|
|
42990
|
+
_this.initValue = (_c = (_b = _this.handler).onDragStart) === null || _c === void 0 ? void 0 : _c.call(_b, _this.context, event);
|
|
42315
42991
|
};
|
|
42316
42992
|
this.onMouseMove = function (e) {
|
|
42317
42993
|
var _a, _b, _c;
|
|
42318
42994
|
e.preventDefault();
|
|
42319
|
-
var
|
|
42320
|
-
var deltaX = (pageX - _this.initX) / _this.zoomScale;
|
|
42321
|
-
var deltaY = (pageY - _this.initY) / _this.zoomScale;
|
|
42995
|
+
var event = _this.dndMouse.normalizeEvent(e);
|
|
42996
|
+
var deltaX = (event.pageX - _this.initX) / _this.zoomScale;
|
|
42997
|
+
var deltaY = (event.pageY - _this.initY) / _this.zoomScale;
|
|
42322
42998
|
if (_this.initValue &&
|
|
42323
|
-
((_b = (_a = _this.handler).onDragging) === null || _b === void 0 ? void 0 : _b.call(_a, _this.context,
|
|
42999
|
+
((_b = (_a = _this.handler).onDragging) === null || _b === void 0 ? void 0 : _b.call(_a, _this.context, event, _this.initValue, deltaX, deltaY))) {
|
|
42324
43000
|
(_c = _this.onSubmit) === null || _c === void 0 ? void 0 : _c.call(_this, _this.context, _this.trigger);
|
|
42325
43001
|
}
|
|
42326
43002
|
};
|
|
@@ -42328,18 +43004,33 @@ var DragAndDropHelper = /** @class */ (function () {
|
|
|
42328
43004
|
var _a, _b, _c;
|
|
42329
43005
|
e.preventDefault();
|
|
42330
43006
|
_this.removeDocumentEvents();
|
|
42331
|
-
if ((_b = (_a = _this.handler).onDragEnd) === null || _b === void 0 ? void 0 : _b.call(_a, _this.context, e, _this.initValue)) {
|
|
43007
|
+
if ((_b = (_a = _this.handler).onDragEnd) === null || _b === void 0 ? void 0 : _b.call(_a, _this.context, _this.dndMouse.normalizeEvent(e), _this.initValue)) {
|
|
42332
43008
|
(_c = _this.onSubmit) === null || _c === void 0 ? void 0 : _c.call(_this, _this.context, _this.trigger);
|
|
42333
43009
|
}
|
|
42334
43010
|
};
|
|
42335
|
-
this.
|
|
42336
|
-
|
|
43011
|
+
this.dndMouseList = forceMobile
|
|
43012
|
+
? [MOUSE_EVENT_INFO_MOBILE]
|
|
43013
|
+
: isTouchSupported
|
|
43014
|
+
? [MOUSE_EVENT_INFO_DESKTOP, MOUSE_EVENT_INFO_MOBILE]
|
|
43015
|
+
: [MOUSE_EVENT_INFO_DESKTOP];
|
|
43016
|
+
this.dndMouse = this.dndMouseList[0];
|
|
43017
|
+
this.originalTouchAction = trigger.style.touchAction;
|
|
43018
|
+
if (this.dndMouseList.indexOf(MOUSE_EVENT_INFO_MOBILE) >= 0) {
|
|
43019
|
+
trigger.style.touchAction = 'none';
|
|
43020
|
+
}
|
|
43021
|
+
this.dndMouseList.forEach(function (eventInfo) {
|
|
43022
|
+
return trigger.addEventListener(eventInfo.MOUSEDOWN, _this.onMouseDown, { passive: false });
|
|
43023
|
+
});
|
|
42337
43024
|
}
|
|
42338
43025
|
/**
|
|
42339
43026
|
* Dispose this object, remove all event listeners that has been attached
|
|
42340
43027
|
*/
|
|
42341
43028
|
DragAndDropHelper.prototype.dispose = function () {
|
|
42342
|
-
|
|
43029
|
+
var _this = this;
|
|
43030
|
+
this.dndMouseList.forEach(function (eventInfo) {
|
|
43031
|
+
return _this.trigger.removeEventListener(eventInfo.MOUSEDOWN, _this.onMouseDown);
|
|
43032
|
+
});
|
|
43033
|
+
this.trigger.style.touchAction = this.originalTouchAction;
|
|
42343
43034
|
this.removeDocumentEvents();
|
|
42344
43035
|
};
|
|
42345
43036
|
Object.defineProperty(DragAndDropHelper.prototype, "mouseType", {
|
|
@@ -42351,8 +43042,14 @@ var DragAndDropHelper = /** @class */ (function () {
|
|
|
42351
43042
|
});
|
|
42352
43043
|
DragAndDropHelper.prototype.addDocumentEvents = function () {
|
|
42353
43044
|
var doc = this.trigger.ownerDocument;
|
|
42354
|
-
doc.addEventListener(this.dndMouse.MOUSEMOVE, this.onMouseMove,
|
|
42355
|
-
|
|
43045
|
+
doc.addEventListener(this.dndMouse.MOUSEMOVE, this.onMouseMove, {
|
|
43046
|
+
capture: true,
|
|
43047
|
+
passive: false,
|
|
43048
|
+
});
|
|
43049
|
+
doc.addEventListener(this.dndMouse.MOUSEUP, this.onMouseUp, {
|
|
43050
|
+
capture: true,
|
|
43051
|
+
passive: false,
|
|
43052
|
+
});
|
|
42356
43053
|
};
|
|
42357
43054
|
DragAndDropHelper.prototype.removeDocumentEvents = function () {
|
|
42358
43055
|
var doc = this.trigger.ownerDocument;
|
|
@@ -42890,32 +43587,23 @@ var TableEditPlugin = /** @class */ (function () {
|
|
|
42890
43587
|
}
|
|
42891
43588
|
};
|
|
42892
43589
|
this.onMouseMove = function (event) {
|
|
42893
|
-
var _a
|
|
43590
|
+
var _a;
|
|
42894
43591
|
var e = event;
|
|
42895
43592
|
var editorWindow = (_a = _this.editor) === null || _a === void 0 ? void 0 : _a.getDocument().defaultView;
|
|
42896
43593
|
if (e.buttons > 0 || !editorWindow) {
|
|
42897
43594
|
return;
|
|
42898
43595
|
}
|
|
42899
|
-
_this.ensureTableRects();
|
|
42900
43596
|
var x = e.pageX - editorWindow.scrollX;
|
|
42901
43597
|
var y = e.pageY - editorWindow.scrollY;
|
|
42902
|
-
|
|
42903
|
-
|
|
42904
|
-
|
|
42905
|
-
|
|
42906
|
-
|
|
42907
|
-
|
|
42908
|
-
|
|
42909
|
-
|
|
42910
|
-
y >= rect.top - TABLE_RESIZER_LENGTH &&
|
|
42911
|
-
y <= rect.bottom + TABLE_RESIZER_LENGTH) {
|
|
42912
|
-
currentTable = entry;
|
|
42913
|
-
break;
|
|
42914
|
-
}
|
|
42915
|
-
}
|
|
43598
|
+
_this.updateTableEditor(x, y, event, true /* updateHoveredFeature */);
|
|
43599
|
+
};
|
|
43600
|
+
this.onTouchStart = function (event) {
|
|
43601
|
+
var _a;
|
|
43602
|
+
var touchEvent = event;
|
|
43603
|
+
var touch = (_a = touchEvent.targetTouches[0]) !== null && _a !== void 0 ? _a : touchEvent.changedTouches[0];
|
|
43604
|
+
if (touch) {
|
|
43605
|
+
_this.updateTableEditor(touch.clientX, touch.clientY, event, false /* updateHoveredFeature */);
|
|
42916
43606
|
}
|
|
42917
|
-
_this.setTableEditor(currentTable, e);
|
|
42918
|
-
(_b = _this.tableEditor) === null || _b === void 0 ? void 0 : _b.onMouseMove(x, y);
|
|
42919
43607
|
};
|
|
42920
43608
|
this.invalidateTableRects = function () {
|
|
42921
43609
|
_this.tableRectMap = null;
|
|
@@ -42935,6 +43623,7 @@ var TableEditPlugin = /** @class */ (function () {
|
|
|
42935
43623
|
this.editor = editor;
|
|
42936
43624
|
this.onMouseMoveDisposer = this.editor.attachDomEvent({
|
|
42937
43625
|
mousemove: { beforeDispatch: this.onMouseMove },
|
|
43626
|
+
touchstart: { beforeDispatch: this.onTouchStart },
|
|
42938
43627
|
});
|
|
42939
43628
|
var scrollContainer = this.editor.getScrollContainer();
|
|
42940
43629
|
scrollContainer.addEventListener('mouseout', this.onMouseOut);
|
|
@@ -42968,6 +43657,32 @@ var TableEditPlugin = /** @class */ (function () {
|
|
|
42968
43657
|
break;
|
|
42969
43658
|
}
|
|
42970
43659
|
};
|
|
43660
|
+
TableEditPlugin.prototype.updateTableEditor = function (x, y, event, updateHoveredFeature) {
|
|
43661
|
+
var _a, _b;
|
|
43662
|
+
this.ensureTableRects();
|
|
43663
|
+
var currentTable = null;
|
|
43664
|
+
//Find table in range of mouse
|
|
43665
|
+
if (this.tableRectMap) {
|
|
43666
|
+
for (var i = this.tableRectMap.length - 1; i >= 0; i--) {
|
|
43667
|
+
var entry = this.tableRectMap[i];
|
|
43668
|
+
var rect = entry.rect;
|
|
43669
|
+
if (x >= rect.left - TABLE_RESIZER_LENGTH &&
|
|
43670
|
+
x <= rect.right + TABLE_RESIZER_LENGTH &&
|
|
43671
|
+
y >= rect.top - TABLE_RESIZER_LENGTH &&
|
|
43672
|
+
y <= rect.bottom + TABLE_RESIZER_LENGTH) {
|
|
43673
|
+
currentTable = entry;
|
|
43674
|
+
break;
|
|
43675
|
+
}
|
|
43676
|
+
}
|
|
43677
|
+
}
|
|
43678
|
+
this.setTableEditor(currentTable, event);
|
|
43679
|
+
if (updateHoveredFeature) {
|
|
43680
|
+
(_a = this.tableEditor) === null || _a === void 0 ? void 0 : _a.onMouseMove(x, y);
|
|
43681
|
+
}
|
|
43682
|
+
else {
|
|
43683
|
+
(_b = this.tableEditor) === null || _b === void 0 ? void 0 : _b.onTouchStart(x, y);
|
|
43684
|
+
}
|
|
43685
|
+
};
|
|
42971
43686
|
/**
|
|
42972
43687
|
* @internal Public only for unit test
|
|
42973
43688
|
* @param entry Table to use when setting the Editors
|
|
@@ -43302,6 +44017,26 @@ var TableEditor = /** @class */ (function () {
|
|
|
43302
44017
|
// Create Mover and Resizer
|
|
43303
44018
|
this.setEditorFeatures();
|
|
43304
44019
|
};
|
|
44020
|
+
/**
|
|
44021
|
+
* Public only for testing purposes
|
|
44022
|
+
*/
|
|
44023
|
+
TableEditor.prototype.onTouchStart = function (x, y) {
|
|
44024
|
+
for (var rowIndex = 0; rowIndex < this.table.rows.length; rowIndex++) {
|
|
44025
|
+
var row = this.table.rows[rowIndex];
|
|
44026
|
+
for (var cellIndex = 0; cellIndex < row.cells.length; cellIndex++) {
|
|
44027
|
+
var td = row.cells[cellIndex];
|
|
44028
|
+
var rect = (0, roosterjs_content_model_dom_1.normalizeRect)(td.getBoundingClientRect());
|
|
44029
|
+
if (rect &&
|
|
44030
|
+
x >= rect.left &&
|
|
44031
|
+
x <= rect.right &&
|
|
44032
|
+
y >= rect.top &&
|
|
44033
|
+
y <= rect.bottom) {
|
|
44034
|
+
!this.isFeatureDisabled('CellResizer') && this.setResizingTd(td);
|
|
44035
|
+
return;
|
|
44036
|
+
}
|
|
44037
|
+
}
|
|
44038
|
+
}
|
|
44039
|
+
};
|
|
43305
44040
|
TableEditor.prototype.setEditorFeatures = function () {
|
|
43306
44041
|
var disableSelector = this.isFeatureDisabled('TableSelector');
|
|
43307
44042
|
var disableMovement = this.isFeatureDisabled('TableMover');
|
|
@@ -43463,14 +44198,14 @@ function createCellResizer(editor, td, table, isRTL, isHorizontal, onStart, onEn
|
|
|
43463
44198
|
onDragging: isHorizontal ? onDraggingHorizontal : onDraggingVertical,
|
|
43464
44199
|
onDragEnd: onEnd,
|
|
43465
44200
|
};
|
|
43466
|
-
var featureHandler = new CellResizer(div, context, setPosition, handler, zoomScale, editor.getEnvironment().isMobileOrTablet, onTableEditorCreated);
|
|
44201
|
+
var featureHandler = new CellResizer(div, context, setPosition, handler, zoomScale, editor.getEnvironment().isMobileOrTablet, editor.getEnvironment().isTouchSupported, onTableEditorCreated);
|
|
43467
44202
|
return { node: td, div: div, featureHandler: featureHandler };
|
|
43468
44203
|
}
|
|
43469
44204
|
exports.createCellResizer = createCellResizer;
|
|
43470
44205
|
var CellResizer = /** @class */ (function (_super) {
|
|
43471
44206
|
(0, tslib_1.__extends)(CellResizer, _super);
|
|
43472
|
-
function CellResizer(trigger, context, onSubmit, handler, zoomScale, forceMobile, onTableEditorCreated) {
|
|
43473
|
-
var _this = _super.call(this, trigger, context, onSubmit, handler, zoomScale, forceMobile) || this;
|
|
44207
|
+
function CellResizer(trigger, context, onSubmit, handler, zoomScale, forceMobile, isTouchSupported, onTableEditorCreated) {
|
|
44208
|
+
var _this = _super.call(this, trigger, context, onSubmit, handler, zoomScale, forceMobile, isTouchSupported) || this;
|
|
43474
44209
|
_this.disposer = onTableEditorCreated === null || onTableEditorCreated === void 0 ? void 0 : onTableEditorCreated('CellResizer', trigger);
|
|
43475
44210
|
return _this;
|
|
43476
44211
|
}
|
|
@@ -43899,14 +44634,14 @@ function createTableMover(table, editor, isRTL, onFinishDragging, onStart, onEnd
|
|
|
43899
44634
|
onDragStart: onDragStart,
|
|
43900
44635
|
onDragging: onDragging,
|
|
43901
44636
|
onDragEnd: onDragEnd,
|
|
43902
|
-
}, context.zoomScale, onTableEditorCreated, editor.getEnvironment().isMobileOrTablet);
|
|
44637
|
+
}, context.zoomScale, onTableEditorCreated, editor.getEnvironment().isMobileOrTablet, editor.getEnvironment().isTouchSupported);
|
|
43903
44638
|
return { node: table, div: div, featureHandler: featureHandler };
|
|
43904
44639
|
}
|
|
43905
44640
|
exports.createTableMover = createTableMover;
|
|
43906
44641
|
var TableMoverFeature = /** @class */ (function (_super) {
|
|
43907
44642
|
(0, tslib_1.__extends)(TableMoverFeature, _super);
|
|
43908
|
-
function TableMoverFeature(div, context, onSubmit, handler, zoomScale, onTableEditorCreated, forceMobile) {
|
|
43909
|
-
var _this = _super.call(this, div, context, onSubmit, handler, zoomScale, forceMobile) || this;
|
|
44643
|
+
function TableMoverFeature(div, context, onSubmit, handler, zoomScale, onTableEditorCreated, forceMobile, isTouchSupported) {
|
|
44644
|
+
var _this = _super.call(this, div, context, onSubmit, handler, zoomScale, forceMobile, isTouchSupported) || this;
|
|
43910
44645
|
_this.disposer = onTableEditorCreated === null || onTableEditorCreated === void 0 ? void 0 : onTableEditorCreated('TableMover', div);
|
|
43911
44646
|
return _this;
|
|
43912
44647
|
}
|
|
@@ -44136,14 +44871,14 @@ function createTableResizer(table, editor, isRTL, onStart, onEnd, contentDiv, an
|
|
|
44136
44871
|
onDragStart: onDragStart,
|
|
44137
44872
|
onDragging: onDragging,
|
|
44138
44873
|
onDragEnd: onDragEnd,
|
|
44139
|
-
}, zoomScale, editor.getEnvironment().isMobileOrTablet, onTableEditorCreated);
|
|
44874
|
+
}, zoomScale, editor.getEnvironment().isMobileOrTablet, editor.getEnvironment().isTouchSupported, onTableEditorCreated);
|
|
44140
44875
|
return { node: table, div: div, featureHandler: featureHandler };
|
|
44141
44876
|
}
|
|
44142
44877
|
exports.createTableResizer = createTableResizer;
|
|
44143
44878
|
var TableResizer = /** @class */ (function (_super) {
|
|
44144
44879
|
(0, tslib_1.__extends)(TableResizer, _super);
|
|
44145
|
-
function TableResizer(trigger, context, onSubmit, handler, zoomScale, forceMobile, onTableEditorCreated) {
|
|
44146
|
-
var _this = _super.call(this, trigger, context, onSubmit, handler, zoomScale, forceMobile) || this;
|
|
44880
|
+
function TableResizer(trigger, context, onSubmit, handler, zoomScale, forceMobile, isTouchSupported, onTableEditorCreated) {
|
|
44881
|
+
var _this = _super.call(this, trigger, context, onSubmit, handler, zoomScale, forceMobile, isTouchSupported) || this;
|
|
44147
44882
|
_this.disposer = onTableEditorCreated === null || onTableEditorCreated === void 0 ? void 0 : onTableEditorCreated('TableResizer', trigger);
|
|
44148
44883
|
return _this;
|
|
44149
44884
|
}
|
|
@@ -44330,7 +45065,7 @@ function createTableRowColumnSelector(editor, table, isRowSelector, anchorContai
|
|
|
44330
45065
|
onDragStart: onDragStart,
|
|
44331
45066
|
onDragging: onDragging,
|
|
44332
45067
|
onDragEnd: onDragEnd,
|
|
44333
|
-
}, zoomScale, onTableEditorCreated, editor.getEnvironment().isMobileOrTablet);
|
|
45068
|
+
}, zoomScale, onTableEditorCreated, editor.getEnvironment().isMobileOrTablet, editor.getEnvironment().isTouchSupported);
|
|
44334
45069
|
handlers.push(handler);
|
|
44335
45070
|
}
|
|
44336
45071
|
});
|
|
@@ -44345,8 +45080,8 @@ function createTableRowColumnSelector(editor, table, isRowSelector, anchorContai
|
|
|
44345
45080
|
exports.createTableRowColumnSelector = createTableRowColumnSelector;
|
|
44346
45081
|
var TableRowColumnSelectorHandler = /** @class */ (function (_super) {
|
|
44347
45082
|
(0, tslib_1.__extends)(TableRowColumnSelectorHandler, _super);
|
|
44348
|
-
function TableRowColumnSelectorHandler(div, isRow, context, handler, zoomScale, onTableEditorCreated, forceMobile) {
|
|
44349
|
-
var _this = _super.call(this, div, context, function () { }, handler, zoomScale, forceMobile) || this;
|
|
45083
|
+
function TableRowColumnSelectorHandler(div, isRow, context, handler, zoomScale, onTableEditorCreated, forceMobile, isTouchSupported) {
|
|
45084
|
+
var _this = _super.call(this, div, context, function () { }, handler, zoomScale, forceMobile, isTouchSupported) || this;
|
|
44350
45085
|
_this.isRow = isRow;
|
|
44351
45086
|
_this.disposer = onTableEditorCreated === null || onTableEditorCreated === void 0 ? void 0 : onTableEditorCreated(_this.isRow ? 'TableRowSelector' : 'TableColumnSelector', div);
|
|
44352
45087
|
return _this;
|