diff --git a/packages/ckeditor5-indent/package.json b/packages/ckeditor5-indent/package.json index c1246b143fd..b7dccb304ae 100644 --- a/packages/ckeditor5-indent/package.json +++ b/packages/ckeditor5-indent/package.json @@ -17,6 +17,7 @@ "devDependencies": { "@ckeditor/ckeditor5-core": "39.0.1", "@ckeditor/ckeditor5-dev-utils": "^38.0.0", + "@ckeditor/ckeditor5-list": "39.0.1", "@ckeditor/ckeditor5-editor-classic": "39.0.1", "@ckeditor/ckeditor5-engine": "39.0.1", "@ckeditor/ckeditor5-heading": "39.0.1", diff --git a/packages/ckeditor5-indent/src/indentblock.ts b/packages/ckeditor5-indent/src/indentblock.ts index cbad9516725..1b5cab34e75 100644 --- a/packages/ckeditor5-indent/src/indentblock.ts +++ b/packages/ckeditor5-indent/src/indentblock.ts @@ -125,7 +125,12 @@ export default class IndentBlock extends Plugin { }, model: { key: 'blockIndent', - value: ( viewElement: ViewElement ) => viewElement.getStyle( marginProperty ) + value: ( viewElement: ViewElement ) => { + // Do not indent block elements in Document Lists. See https://github.com/ckeditor/ckeditor5/issues/12466. + if ( !viewElement.is( 'element', 'li' ) ) { + return viewElement.getStyle( marginProperty ); + } + } } } ); diff --git a/packages/ckeditor5-indent/tests/indentblock.js b/packages/ckeditor5-indent/tests/indentblock.js index 91ac44620db..c3d2630658c 100644 --- a/packages/ckeditor5-indent/tests/indentblock.js +++ b/packages/ckeditor5-indent/tests/indentblock.js @@ -8,6 +8,7 @@ import testUtils from '@ckeditor/ckeditor5-core/tests/_utils/utils'; import { getData as getViewData } from '@ckeditor/ckeditor5-engine/src/dev-utils/view'; import Paragraph from '@ckeditor/ckeditor5-paragraph/src/paragraph'; import HeadingEditing from '@ckeditor/ckeditor5-heading/src/headingediting'; +import DocumentListEditing from '@ckeditor/ckeditor5-list/src/documentlist/documentlistediting'; import IndentEditing from '../src/indentediting'; import IndentBlock from '../src/indentblock'; @@ -158,6 +159,30 @@ describe( 'IndentBlock', () => { expect( getViewData( editor.editing.view, { withoutSelection: true } ) ) .to.equal( '
foo
' ); } ); + + describe( 'integration with List', () => { + beforeEach( () => { + return VirtualTestEditor + .create( { + plugins: [ Paragraph, DocumentListEditing, IndentEditing, IndentBlock ] + } ) + .then( newEditor => { + editor = newEditor; + model = editor.model; + doc = model.document; + } ); + } ); + + // Block elements in Document Lists should not be indented. See https://github.com/ckeditor/ckeditor5/issues/12466. + it( 'should not convert margin-left to indent attribute for a list item', () => { + editor.setData( '