@ckeditor/ckeditor5-list 47.1.0-alpha.2 → 47.2.0-alpha.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 +1 -1
- package/build/list.js +1 -1
- package/dist/index.js +30 -3
- package/dist/index.js.map +1 -1
- package/package.json +11 -11
- package/src/list/converters.d.ts +3 -2
- package/src/list/converters.js +28 -3
package/dist/index.js
CHANGED
|
@@ -2251,6 +2251,9 @@ import { DomEventObserver, Matcher, ModelTreeWalker, getViewFillerOffset } from
|
|
|
2251
2251
|
if (!viewElement) {
|
|
2252
2252
|
return false;
|
|
2253
2253
|
}
|
|
2254
|
+
if (isItemBlockInsideStructureSlot(viewElement)) {
|
|
2255
|
+
return true;
|
|
2256
|
+
}
|
|
2254
2257
|
const needsRefresh = listEditing.fire('checkElement', {
|
|
2255
2258
|
modelElement: item,
|
|
2256
2259
|
viewElement
|
|
@@ -2269,6 +2272,22 @@ import { DomEventObserver, Matcher, ModelTreeWalker, getViewFillerOffset } from
|
|
|
2269
2272
|
}
|
|
2270
2273
|
return false;
|
|
2271
2274
|
}
|
|
2275
|
+
function isItemBlockInsideStructureSlot(viewElement) {
|
|
2276
|
+
viewElement = viewElement.parent;
|
|
2277
|
+
while(viewElement.is('attributeElement') && [
|
|
2278
|
+
'ol',
|
|
2279
|
+
'ul',
|
|
2280
|
+
'li'
|
|
2281
|
+
].includes(viewElement.name)){
|
|
2282
|
+
viewElement = viewElement.parent;
|
|
2283
|
+
}
|
|
2284
|
+
// List item inside elementToStructure slot parent without mapping then it requires refresh for correct positions
|
|
2285
|
+
// as structure child elements does not have mapping from model and position would land in wrong place.
|
|
2286
|
+
if (viewElement.getCustomProperty('$structureSlotParent') && !editing.mapper.toModelElement(viewElement)) {
|
|
2287
|
+
return true;
|
|
2288
|
+
}
|
|
2289
|
+
return false;
|
|
2290
|
+
}
|
|
2272
2291
|
function doesItemWrappingRequiresRefresh(item, stack, changedItems) {
|
|
2273
2292
|
// Items directly affected by some "change" don't need a refresh, they will be converted by their own changes.
|
|
2274
2293
|
if (changedItems.has(item)) {
|
|
@@ -2328,7 +2347,7 @@ import { DomEventObserver, Matcher, ModelTreeWalker, getViewFillerOffset } from
|
|
|
2328
2347
|
};
|
|
2329
2348
|
// Use positions mapping instead of mapper.toViewElement( listItem ) to find outermost view element.
|
|
2330
2349
|
// This is for cases when mapping is using inner view element like in the code blocks (pre > code).
|
|
2331
|
-
const viewElement = findMappedViewElement(listItem, mapper, model);
|
|
2350
|
+
const viewElement = findMappedViewElement(listItem, mapper, model, writer);
|
|
2332
2351
|
// Remove custom item marker.
|
|
2333
2352
|
removeCustomMarkerElements(viewElement, writer, mapper);
|
|
2334
2353
|
// Unwrap element from current list wrappers.
|
|
@@ -2400,10 +2419,18 @@ import { DomEventObserver, Matcher, ModelTreeWalker, getViewFillerOffset } from
|
|
|
2400
2419
|
* @param element The model element.
|
|
2401
2420
|
* @param mapper The mapper instance.
|
|
2402
2421
|
* @param model The model.
|
|
2403
|
-
|
|
2422
|
+
* @param writer The view downcast writer.
|
|
2423
|
+
*/ function findMappedViewElement(element, mapper, model, writer) {
|
|
2404
2424
|
const modelRange = model.createRangeOn(element);
|
|
2405
2425
|
const viewRange = mapper.toViewRange(modelRange).getTrimmed();
|
|
2406
|
-
|
|
2426
|
+
const viewWalker = viewRange.getWalker();
|
|
2427
|
+
for (const { item } of viewWalker){
|
|
2428
|
+
if (item.is('element') && item.getCustomProperty('listItemMarker')) {
|
|
2429
|
+
viewWalker.jumpTo(writer.createPositionAfter(item));
|
|
2430
|
+
} else if (item.is('element') && !item.getCustomProperty('listItemWrapper')) {
|
|
2431
|
+
return item;
|
|
2432
|
+
}
|
|
2433
|
+
}
|
|
2407
2434
|
}
|
|
2408
2435
|
/**
|
|
2409
2436
|
* The model to view custom position mapping for cases when marker is injected at the beginning of a block.
|