浏览代码

Merge branch 'master' into t/ckeditor5-engine/1210

Szymon Kupś 7 年之前
父节点
当前提交
4d11ee46a1

+ 10 - 3
packages/ckeditor5-ui/docs/_snippets/examples/bootstrap-ui-inner.js

@@ -34,6 +34,10 @@ import ItalicEngine from '@ckeditor/ckeditor5-basic-styles/src/italicengine';
 import UnderlineEngine from '@ckeditor/ckeditor5-basic-styles/src/underlineengine';
 import HeadingEngine from '@ckeditor/ckeditor5-heading/src/headingengine';
 
+// EasyImage
+import EasyImage from '@ckeditor/ckeditor5-easy-image/src/easyimage';
+import { TOKEN_URL } from '@ckeditor/ckeditor5-cloudservices/tests/_utils/cloudservices-config';
+
 // Extending the Editor, which brings base editor API.
 export default class BootstrapEditor extends Editor {
 	constructor( element, config ) {
@@ -206,9 +210,12 @@ function setupHeadingDropdown( editor ) {
 BootstrapEditor
 	.create( $( '#editor' ).get( 0 ), {
 		plugins: [
-			Clipboard, Enter, Typing, Paragraph,
-			BoldEngine, ItalicEngine, UnderlineEngine, HeadingEngine, UndoEngine
-		]
+			Clipboard, Enter, Typing, Paragraph, EasyImage,
+			BoldEngine, ItalicEngine, UnderlineEngine, HeadingEngine, UndoEngine,
+		],
+		cloudServices: {
+			tokenUrl: TOKEN_URL
+		}
 	} )
 	.then( editor => {
 		window.editor = editor;

+ 2 - 0
packages/ckeditor5-ui/package.json

@@ -13,9 +13,11 @@
   },
   "devDependencies": {
     "@ckeditor/ckeditor5-basic-styles": "^1.0.0-alpha.2",
+    "@ckeditor/ckeditor5-cloudservices": "^1.0.0-alpha.1",
     "@ckeditor/ckeditor5-editor-classic": "^1.0.0-alpha.2",
     "@ckeditor/ckeditor5-engine": "^1.0.0-alpha.2",
     "@ckeditor/ckeditor5-enter": "^1.0.0-alpha.2",
+    "@ckeditor/ckeditor5-easy-image": "^1.0.0-alpha.2",
     "@ckeditor/ckeditor5-heading": "^1.0.0-alpha.2",
     "@ckeditor/ckeditor5-image": "^1.0.0-alpha.2",
     "@ckeditor/ckeditor5-link": "^1.0.0-alpha.2",

+ 6 - 0
packages/ckeditor5-ui/src/button/buttonview.js

@@ -151,6 +151,12 @@ export default class ButtonView extends View {
 
 			iconView.bind( 'content' ).to( this, 'icon' );
 
+			iconView.extendTemplate( {
+				attributes: {
+					class: 'ck-button__icon'
+				}
+			} );
+
 			this.children.add( iconView );
 		}
 

+ 11 - 5
packages/ckeditor5-ui/src/dropdown/button/splitbuttonview.js

@@ -165,9 +165,9 @@ export default class SplitButtonView extends View {
 	 * @returns {module:ui/button/buttonview~ButtonView}
 	 */
 	_createActionView() {
-		const buttonView = new ButtonView();
+		const actionView = new ButtonView();
 
-		buttonView.bind(
+		actionView.bind(
 			'icon',
 			'isEnabled',
 			'isOn',
@@ -180,9 +180,15 @@ export default class SplitButtonView extends View {
 			'withText'
 		).to( this );
 
-		buttonView.delegate( 'execute' ).to( this );
+		actionView.extendTemplate( {
+			attributes: {
+				class: 'ck-splitbutton__action'
+			}
+		} );
+
+		actionView.delegate( 'execute' ).to( this );
 
-		return buttonView;
+		return actionView;
 	}
 
 	/**
@@ -199,7 +205,7 @@ export default class SplitButtonView extends View {
 
 		arrowView.extendTemplate( {
 			attributes: {
-				class: 'ck-splitbutton-arrow'
+				class: 'ck-splitbutton__arrow'
 			}
 		} );
 

+ 1 - 0
packages/ckeditor5-ui/tests/button/buttonview.js

@@ -248,6 +248,7 @@ describe( 'ButtonView', () => {
 
 			expect( view.iconView ).to.instanceOf( IconView );
 			expect( view.iconView.content ).to.equal( '<svg></svg>' );
+			expect( view.iconView.element.classList.contains( 'ck-button__icon' ) ).to.be.true;
 
 			view.icon = '<svg>bar</svg>';
 			expect( view.iconView.content ).to.equal( '<svg>bar</svg>' );

+ 2 - 1
packages/ckeditor5-ui/tests/dropdown/button/splitbuttonview.js

@@ -27,11 +27,12 @@ describe( 'SplitButtonView', () => {
 
 		it( 'creates view#actionView', () => {
 			expect( view.actionView ).to.be.instanceOf( ButtonView );
+			expect( view.actionView.element.classList.contains( 'ck-splitbutton__action' ) ).to.be.true;
 		} );
 
 		it( 'creates view#arrowView', () => {
 			expect( view.arrowView ).to.be.instanceOf( ButtonView );
-			expect( view.arrowView.element.classList.contains( 'ck-splitbutton-arrow' ) ).to.be.true;
+			expect( view.arrowView.element.classList.contains( 'ck-splitbutton__arrow' ) ).to.be.true;
 			expect( view.arrowView.icon ).to.be.not.undefined;
 		} );
 

+ 9 - 7
packages/ckeditor5-ui/tests/panel/balloon/contextualballoon.js

@@ -12,7 +12,7 @@ import Plugin from '@ckeditor/ckeditor5-core/src/plugin';
 import Paragraph from '@ckeditor/ckeditor5-paragraph/src/paragraph';
 import ViewContainerElement from '@ckeditor/ckeditor5-engine/src/view/containerelement';
 import ViewEditableElement from '@ckeditor/ckeditor5-engine/src/view/editableelement';
-import buildModelConverter from '@ckeditor/ckeditor5-engine/src/conversion/buildmodelconverter';
+import { downcastElementToElement } from '@ckeditor/ckeditor5-engine/src/conversion/downcast-converters';
 import { setData as setModelData } from '@ckeditor/ckeditor5-engine/src/dev-utils/model';
 
 /* global document, Event */
@@ -103,13 +103,15 @@ describe( 'ContextualBalloon', () => {
 				model.schema.register( 'nestedEditable', { allowIn: 'widget' } );
 				model.schema.extend( '$text', { allowIn: 'nestedEditable' } );
 
-				buildModelConverter().for( editor.data.modelToView, editor.editing.modelToView )
-					.fromElement( 'widget' )
-					.toElement( () => new ViewContainerElement( 'figure', { contenteditable: 'false' } ) );
+				editor.conversion.for( 'downcast' ).add( downcastElementToElement( {
+					model: 'widget',
+					view: () => new ViewContainerElement( 'figure', { contenteditable: 'false' } )
+				} ) );
 
-				buildModelConverter().for( editor.data.modelToView, editor.editing.modelToView )
-					.fromElement( 'nestedEditable' )
-					.toElement( () => new ViewEditableElement( 'figcaption', { contenteditable: 'true' } ) );
+				editor.conversion.for( 'downcast' ).add( downcastElementToElement( {
+					model: 'nestedEditable',
+					view: () => new ViewEditableElement( 'figcaption', { contenteditable: 'true' } )
+				} ) );
 
 				setModelData( model, '<widget><nestedEditable>[]foo</nestedEditable></widget>' );
 

+ 0 - 1
packages/ckeditor5-ui/theme/components/button/button.css

@@ -3,7 +3,6 @@
  * For licensing, see LICENSE.md.
  */
 
-@import "./mixins/_button.css";
 @import "../../mixins/_unselectable.css";
 @import "../tooltip/mixins/_tooltip.css";
 

+ 0 - 13
packages/ckeditor5-ui/theme/components/button/mixins/_button.css

@@ -1,13 +0,0 @@
-/*
- * Copyright (c) 2003-2018, CKSource - Frederico Knabben. All rights reserved.
- * For licensing, see LICENSE.md.
- */
-
-/**
- * A helper to define button–specific icon styles.
- */
-@define-mixin ck-button-icon {
-	& .ck-icon {
-		@mixin-content;
-	}
-}

+ 3 - 21
packages/ckeditor5-ui/theme/components/dropdown/splitbutton.css

@@ -3,29 +3,11 @@
  * For licensing, see LICENSE.md.
  */
 
-.ck-rounded-corners .ck-splitbutton > .ck-button:not(.ck-splitbutton-arrow) {
-	border-top-right-radius: unset;
-	border-bottom-right-radius: unset;
-
-	&:focus {
-		z-index: calc(var(--ck-z-default) + 1);
-	}
-}
-
-.ck-rounded-corners .ck-splitbutton > .ck-splitbutton-arrow {
-	border-top-left-radius: unset;
-	border-bottom-left-radius: unset;
-}
-
-.ck-dropdown {
+.ck-splitbutton {
 	/* Enable font size inheritance, which allows fluid UI scaling. */
 	font-size: inherit;
 
-	& .ck-splitbutton .ck-splitbutton-arrow svg {
-		position: static;
-		top: initial;
-		transform: initial;
-		right: auto;
-		width: var(--ck-dropdown-icon-size);
+	& .ck-splitbutton__action:focus {
+		z-index: calc(var(--ck-z-default) + 1);
 	}
 }

+ 0 - 6
packages/ckeditor5-ui/theme/components/dropdown/toolbardropdown.css

@@ -6,12 +6,6 @@
 .ck-toolbar-dropdown {
 	& .ck-toolbar {
 		flex-wrap: nowrap;
-
-		& .ck-toolbar__separator {
-			height: calc(var(--ck-line-height-base) * var(--ck-font-size-normal));
-			margin-top: 0;
-			margin-left: var(--ck-spacing-small);
-		}
 	}
 
 	& .ck-dropdown__panel .ck-button {