瀏覽代碼

Added function keys support (F1 to F12) to the keyboard helpers like keyCodes.

Aleksander Nowodzinski 9 年之前
父節點
當前提交
ac38a05279
共有 2 個文件被更改,包括 14 次插入1 次删除
  1. 6 0
      packages/ckeditor5-utils/src/keyboard.js
  2. 8 1
      packages/ckeditor5-utils/tests/keyboard.js

+ 6 - 0
packages/ckeditor5-utils/src/keyboard.js

@@ -19,6 +19,7 @@ import env from './env';
  *
  * * `a-z`,
  * * `0-9`,
+ * * `f1-f12`,
  * * `arrow(left|up|right|bottom)`,
  * * `backspace`, `delete`, `enter`, `esc`, `tab`,
  * * `ctrl`, `cmd`, `shift`, `alt`.
@@ -140,6 +141,11 @@ function generateKnownKeyCodes() {
 		keyCodes[ code - 48 ] = code;
 	}
 
+	// F1-F12
+	for ( let code = 112; code <= 123; code++ ) {
+		keyCodes[ 'f' + ( code - 111 ) ] = code;
+	}
+
 	return keyCodes;
 }
 

+ 8 - 1
packages/ckeditor5-utils/tests/keyboard.js

@@ -23,11 +23,14 @@ describe( 'Keyboard', () => {
 			expect( keyCodes.delete ).to.equal( 46 );
 			expect( keyCodes.ctrl ).to.equal( 0x110000 );
 			expect( keyCodes.cmd ).to.equal( 0x110000 );
+			expect( keyCodes.f1 ).to.equal( 112 );
+			expect( keyCodes.f12 ).to.equal( 123 );
 
 			expect( keyCodes ).to.include.keys(
 				'ctrl', 'cmd', 'shift', 'alt',
 				'arrowleft', 'arrowup', 'arrowright', 'arrowdown',
-				'backspace', 'delete', 'enter', 'esc', 'tab'
+				'backspace', 'delete', 'enter', 'esc', 'tab',
+				'f1', 'f2', 'f3', 'f4', 'f5', 'f6', 'f7', 'f8', 'f9', 'f10', 'f11', 'f12'
 			);
 		} );
 	} );
@@ -41,6 +44,10 @@ describe( 'Keyboard', () => {
 			expect( getCode( 'a' ) ).to.equal( 65 );
 		} );
 
+		it( 'gets code of a function key', () => {
+			expect( getCode( 'f6' ) ).to.equal( 117 );
+		} );
+
 		it( 'is case insensitive', () => {
 			expect( getCode( 'A' ) ).to.equal( 65 );
 			expect( getCode( 'Ctrl' ) ).to.equal( 0x110000 );