@ckeditor/ckeditor5-typing 29.1.0 → 31.1.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ckeditor/ckeditor5-typing",
3
- "version": "29.1.0",
3
+ "version": "31.1.0",
4
4
  "description": "Typing feature for CKEditor 5.",
5
5
  "keywords": [
6
6
  "ckeditor",
@@ -12,24 +12,24 @@
12
12
  ],
13
13
  "main": "src/index.js",
14
14
  "dependencies": {
15
- "@ckeditor/ckeditor5-core": "^29.1.0",
16
- "@ckeditor/ckeditor5-engine": "^29.1.0",
17
- "@ckeditor/ckeditor5-utils": "^29.1.0",
15
+ "@ckeditor/ckeditor5-core": "^31.1.0",
16
+ "@ckeditor/ckeditor5-engine": "^31.1.0",
17
+ "@ckeditor/ckeditor5-utils": "^31.1.0",
18
18
  "lodash-es": "^4.17.15"
19
19
  },
20
20
  "devDependencies": {
21
- "@ckeditor/ckeditor5-basic-styles": "^29.1.0",
22
- "@ckeditor/ckeditor5-block-quote": "^29.1.0",
23
- "@ckeditor/ckeditor5-editor-classic": "^29.1.0",
24
- "@ckeditor/ckeditor5-enter": "^29.1.0",
25
- "@ckeditor/ckeditor5-essentials": "^29.1.0",
26
- "@ckeditor/ckeditor5-heading": "^29.1.0",
27
- "@ckeditor/ckeditor5-image": "^29.1.0",
28
- "@ckeditor/ckeditor5-link": "^29.1.0",
29
- "@ckeditor/ckeditor5-list": "^29.1.0",
30
- "@ckeditor/ckeditor5-paragraph": "^29.1.0",
31
- "@ckeditor/ckeditor5-undo": "^29.1.0",
32
- "@ckeditor/ckeditor5-code-block": "^29.1.0"
21
+ "@ckeditor/ckeditor5-basic-styles": "^31.1.0",
22
+ "@ckeditor/ckeditor5-block-quote": "^31.1.0",
23
+ "@ckeditor/ckeditor5-editor-classic": "^31.1.0",
24
+ "@ckeditor/ckeditor5-enter": "^31.1.0",
25
+ "@ckeditor/ckeditor5-essentials": "^31.1.0",
26
+ "@ckeditor/ckeditor5-heading": "^31.1.0",
27
+ "@ckeditor/ckeditor5-image": "^31.1.0",
28
+ "@ckeditor/ckeditor5-link": "^31.1.0",
29
+ "@ckeditor/ckeditor5-list": "^31.1.0",
30
+ "@ckeditor/ckeditor5-paragraph": "^31.1.0",
31
+ "@ckeditor/ckeditor5-undo": "^31.1.0",
32
+ "@ckeditor/ckeditor5-code-block": "^31.1.0"
33
33
  },
34
34
  "engines": {
35
35
  "node": ">=12.0.0",
package/src/delete.js CHANGED
@@ -18,6 +18,13 @@ import env from '@ckeditor/ckeditor5-utils/src/env';
18
18
  * @extends module:core/plugin~Plugin
19
19
  */
20
20
  export default class Delete extends Plugin {
21
+ /**
22
+ * Whether pressing backspace should trigger undo action
23
+ *
24
+ * @private
25
+ * @member {Boolean} #_undoOnBackspace
26
+ */
27
+
21
28
  /**
22
29
  * @inheritDoc
23
30
  */
@@ -29,9 +36,12 @@ export default class Delete extends Plugin {
29
36
  const editor = this.editor;
30
37
  const view = editor.editing.view;
31
38
  const viewDocument = view.document;
39
+ const modelDocument = editor.model.document;
32
40
 
33
41
  view.addObserver( DeleteObserver );
34
42
 
43
+ this._undoOnBackspace = false;
44
+
35
45
  const deleteForwardCommand = new DeleteCommand( editor, 'forward' );
36
46
 
37
47
  // Register `deleteForward` command and add `forwardDelete` command as an alias for backward compatibility.
@@ -97,5 +107,33 @@ export default class Delete extends Plugin {
97
107
  }
98
108
  } );
99
109
  }
110
+
111
+ if ( this.editor.plugins.has( 'UndoEditing' ) ) {
112
+ this.listenTo( viewDocument, 'delete', ( evt, data ) => {
113
+ if ( this._undoOnBackspace && data.direction == 'backward' && data.sequence == 1 && data.unit == 'codePoint' ) {
114
+ this._undoOnBackspace = false;
115
+
116
+ editor.execute( 'undo' );
117
+
118
+ data.preventDefault();
119
+ evt.stop();
120
+ }
121
+ }, { context: '$capture' } );
122
+
123
+ this.listenTo( modelDocument, 'change', () => {
124
+ this._undoOnBackspace = false;
125
+ } );
126
+ }
127
+ }
128
+
129
+ /**
130
+ * If the next user action after calling this method is pressing backspace, it would undo the last change.
131
+ *
132
+ * Requires {@link module:undo/undoediting~UndoEditing} plugin. If not loaded, does nothing.
133
+ */
134
+ requestUndoOnBackspace() {
135
+ if ( this.editor.plugins.has( 'UndoEditing' ) ) {
136
+ this._undoOnBackspace = true;
137
+ }
100
138
  }
101
139
  }
@@ -12,6 +12,7 @@ import DomEventData from '@ckeditor/ckeditor5-engine/src/view/observer/domeventd
12
12
  import BubblingEventInfo from '@ckeditor/ckeditor5-engine/src/view/observer/bubblingeventinfo';
13
13
  import { keyCodes } from '@ckeditor/ckeditor5-utils/src/keyboard';
14
14
  import env from '@ckeditor/ckeditor5-utils/src/env';
15
+ import { isShiftDeleteOnNonCollapsedSelection } from './utils/utils';
15
16
 
16
17
  /**
17
18
  * Delete observer introduces the {@link module:engine/view/document~Document#event:delete} event.
@@ -35,6 +36,15 @@ export default class DeleteObserver extends Observer {
35
36
  } );
36
37
 
37
38
  document.on( 'keydown', ( evt, data ) => {
39
+ // Do not fire the `delete` event, if Shift + Delete key combination was pressed on a non-collapsed selection on Windows.
40
+ //
41
+ // The Shift + Delete key combination should work in the same way as the `cut` event on a non-collapsed selection on Windows.
42
+ // In fact, the native `cut` event is actually emitted in this case, but with lower priority. Therefore, in order to handle the
43
+ // Shift + Delete key combination correctly, it is enough not to emit the `delete` event.
44
+ if ( env.isWindows && isShiftDeleteOnNonCollapsedSelection( data, document ) ) {
45
+ return;
46
+ }
47
+
38
48
  const deleteData = {};
39
49
 
40
50
  if ( data.keyCode == keyCodes.delete ) {
@@ -111,7 +121,7 @@ export default class DeleteObserver extends Observer {
111
121
  * @event module:engine/view/document~Document#event:delete
112
122
  * @param {module:engine/view/observer/domeventdata~DomEventData} data
113
123
  * @param {'forward'|'delete'} data.direction The direction in which the deletion should happen.
114
- * @param {'character'|'word'} data.unit The "amount" of content that should be deleted.
124
+ * @param {'character'|'codePoint'|'word'} data.unit The "amount" of content that should be deleted.
115
125
  * @param {Number} data.sequence A number describing which subsequent delete event it is without the key being released.
116
126
  * If it's 2 or more it means that the key was pressed and hold.
117
127
  * @param {module:engine/view/selection~Selection} [data.selectionToRemove] View selection which content should be removed. If not set,
@@ -19,11 +19,11 @@ const TRANSFORMATIONS = {
19
19
  trademark: { from: '(tm)', to: '™' },
20
20
 
21
21
  // Mathematical:
22
- oneHalf: { from: '1/2', to: '½' },
23
- oneThird: { from: '1/3', to: '⅓' },
24
- twoThirds: { from: '2/3', to: '⅔' },
25
- oneForth: { from: '1/4', to: '¼' },
26
- threeQuarters: { from: '3/4', to: '¾' },
22
+ oneHalf: { from: /(^|[^/a-z0-9])(1\/2)([^/a-z0-9])$/i, to: [ null, '½', null ] },
23
+ oneThird: { from: /(^|[^/a-z0-9])(1\/3)([^/a-z0-9])$/i, to: [ null, '⅓', null ] },
24
+ twoThirds: { from: /(^|[^/a-z0-9])(2\/3)([^/a-z0-9])$/i, to: [ null, '⅔', null ] },
25
+ oneForth: { from: /(^|[^/a-z0-9])(1\/4)([^/a-z0-9])$/i, to: [ null, '¼', null ] },
26
+ threeQuarters: { from: /(^|[^/a-z0-9])(3\/4)([^/a-z0-9])$/i, to: [ null, '¾', null ] },
27
27
  lessThanOrEqual: { from: '<=', to: '≤' },
28
28
  greaterThanOrEqual: { from: '>=', to: '≥' },
29
29
  notEqual: { from: '!=', to: '≠' },
@@ -74,6 +74,13 @@ const DEFAULT_TRANSFORMATIONS = [
74
74
  * @extends module:core/plugin~Plugin
75
75
  */
76
76
  export default class TextTransformation extends Plugin {
77
+ /**
78
+ * @inheritDoc
79
+ */
80
+ static get requires() {
81
+ return [ 'Delete', 'Input' ];
82
+ }
83
+
77
84
  /**
78
85
  * @inheritDoc
79
86
  */
@@ -117,7 +124,8 @@ export default class TextTransformation extends Plugin {
117
124
  _enableTransformationWatchers() {
118
125
  const editor = this.editor;
119
126
  const model = editor.model;
120
- const input = editor.plugins.get( 'Input' );
127
+ const inputPlugin = editor.plugins.get( 'Input' );
128
+ const deletePlugin = editor.plugins.get( 'Delete' );
121
129
  const normalizedTransformations = normalizeTransformations( editor.config.get( 'typing.transformations' ) );
122
130
 
123
131
  const testCallback = text => {
@@ -132,7 +140,7 @@ export default class TextTransformation extends Plugin {
132
140
  };
133
141
 
134
142
  const watcherCallback = ( evt, data ) => {
135
- if ( !input.isInput( data.batch ) ) {
143
+ if ( !inputPlugin.isInput( data.batch ) ) {
136
144
  return;
137
145
  }
138
146
 
@@ -164,6 +172,10 @@ export default class TextTransformation extends Plugin {
164
172
 
165
173
  changeIndex += replaceWith.length;
166
174
  }
175
+
176
+ model.enqueueChange( () => {
177
+ deletePlugin.requestUndoOnBackspace();
178
+ } );
167
179
  } );
168
180
  };
169
181
 
@@ -9,6 +9,7 @@
9
9
 
10
10
  import { getCode } from '@ckeditor/ckeditor5-utils/src/keyboard';
11
11
  import env from '@ckeditor/ckeditor5-utils/src/env';
12
+ import { isShiftDeleteOnNonCollapsedSelection } from './utils';
12
13
 
13
14
  /**
14
15
  * Handles keystrokes which are unsafe for typing. This handler's logic is explained
@@ -49,6 +50,15 @@ export default function injectUnsafeKeystrokesHandling( editor ) {
49
50
  //
50
51
  // @param {module:engine/view/observer/keyobserver~KeyEventData} evtData
51
52
  function handleUnsafeKeystroke( evtData ) {
53
+ // Do not delete the content, if Shift + Delete key combination was pressed on a non-collapsed selection on Windows.
54
+ //
55
+ // The Shift + Delete key combination should work in the same way as the `cut` event on a non-collapsed selection on Windows.
56
+ // In fact, the native `cut` event is actually emitted in this case, but with lower priority. Therefore, in order to handle the
57
+ // Shift + Delete key combination correctly, it is enough to prevent the content deletion here.
58
+ if ( env.isWindows && isShiftDeleteOnNonCollapsedSelection( evtData, view.document ) ) {
59
+ return;
60
+ }
61
+
52
62
  const doc = model.document;
53
63
  const isComposing = view.document.isComposing;
54
64
  const isSelectionUnchanged = latestCompositionSelection && latestCompositionSelection.isEqual( doc.selection );
@@ -9,6 +9,7 @@
9
9
 
10
10
  import diff from '@ckeditor/ckeditor5-utils/src/diff';
11
11
  import diffToChanges from '@ckeditor/ckeditor5-utils/src/difftochanges';
12
+ import { keyCodes } from '@ckeditor/ckeditor5-utils/src/keyboard';
12
13
 
13
14
  /**
14
15
  * Returns true if container children have mutated or more than a single text node was changed.
@@ -83,3 +84,21 @@ export function compareChildNodes( oldChild, newChild ) {
83
84
  return oldChild === newChild;
84
85
  }
85
86
  }
87
+
88
+ /**
89
+ * Checks if <kbd>Shift</kbd> + <kbd>Delete</kbd> keystroke was pressed on a non-collapsed selection.
90
+ *
91
+ * This key combination has a special meaning on Windows machines and it should work in the same way as the `cut` event on a non-collapsed
92
+ * selection.
93
+ *
94
+ * @param {module:engine/view/observer/domeventdata~DomEventData} domEventData Event data.
95
+ * @param {module:engine/view/document~Document} document The document instance on which the event has been fired.
96
+ * @returns {Boolean}
97
+ */
98
+ export function isShiftDeleteOnNonCollapsedSelection( domEventData, document ) {
99
+ const selection = document.selection;
100
+ const isShiftDelete = domEventData.shiftKey && domEventData.keyCode === keyCodes.delete;
101
+ const isNonCollapsedSelection = !selection.isCollapsed;
102
+
103
+ return isShiftDelete && isNonCollapsedSelection;
104
+ }
package/CHANGELOG.md DELETED
@@ -1,236 +0,0 @@
1
- Changelog
2
- =========
3
-
4
- All changes in the package are documented in the main repository. See: https://github.com/ckeditor/ckeditor5/blob/master/CHANGELOG.md.
5
-
6
- Changes for the past releases are available below.
7
-
8
- ## [19.0.0](https://github.com/ckeditor/ckeditor5-typing/compare/v18.0.0...v19.0.0) (2020-04-29)
9
-
10
- Internal changes only (updated dependencies, documentation, etc.).
11
-
12
-
13
- ## [18.0.0](https://github.com/ckeditor/ckeditor5-typing/compare/v17.0.0...v18.0.0) (2020-03-19)
14
-
15
- ### Other changes
16
-
17
- * `DeleteCommand` should pass its direction to `Model#deleteContent()`. Closes [ckeditor/ckeditor5#6355](https://github.com/ckeditor/ckeditor5/issues/6355). See [ckeditor/ckeditor5#6356](https://github.com/ckeditor/ckeditor5/issues/6356). ([cb75e45](https://github.com/ckeditor/ckeditor5-typing/commit/cb75e45))
18
- * Introduced support for multi-range selections. See [ckeditor/ckeditor5#6116](https://github.com/ckeditor/ckeditor5/issues/6116). ([64daf31](https://github.com/ckeditor/ckeditor5-typing/commit/64daf31))
19
- * Run only one instance of the `TextWatcher` for all text transformations. Closes [ckeditor/ckeditor5#6020](https://github.com/ckeditor/ckeditor5/issues/6020). ([550426d](https://github.com/ckeditor/ckeditor5-typing/commit/550426d))
20
-
21
-
22
- ## [17.0.0](https://github.com/ckeditor/ckeditor5-typing/compare/v16.0.0...v17.0.0) (2020-02-19)
23
-
24
- ### Features
25
-
26
- * Add `TextWatcher#isEnabled` property to allow toggling text watcher on and off. ([fa79d00](https://github.com/ckeditor/ckeditor5-typing/commit/fa79d00))
27
-
28
-
29
- ## [16.0.0](https://github.com/ckeditor/ckeditor5-typing/compare/v15.0.0...v16.0.0) (2019-12-04)
30
-
31
- Internal changes only (updated dependencies, documentation, etc.).
32
-
33
-
34
- ## [15.0.0](https://github.com/ckeditor/ckeditor5-typing/compare/v12.2.0...v15.0.0) (2019-10-23)
35
-
36
- ### Bug fixes
37
-
38
- * Autoformat transformations in blocks containing inline elements. See [ckeditor/ckeditor5#1955](https://github.com/ckeditor/ckeditor5/issues/1955). ([58abd23](https://github.com/ckeditor/ckeditor5-typing/commit/58abd23))
39
-
40
-
41
- ## [12.2.0](https://github.com/ckeditor/ckeditor5-typing/compare/v12.1.1...v12.2.0) (2019-08-26)
42
-
43
- ### Features
44
-
45
- * Introduced `Input#isInput()`. Closes [#214](https://github.com/ckeditor/ckeditor5-typing/issues/214). Fixed the `TextTransformation` feature so it willl trigger only for typing changes. Closes [#208](https://github.com/ckeditor/ckeditor5-typing/issues/208). ([0e26850](https://github.com/ckeditor/ckeditor5-typing/commit/0e26850))
46
-
47
- ### Bug fixes
48
-
49
- * Allow dashes on the begging of a line. Closes [#200](https://github.com/ckeditor/ckeditor5-typing/issues/200). ([6ef7d47](https://github.com/ckeditor/ckeditor5-typing/commit/6ef7d47))
50
- * Typing on mobile device will not throw after each typed character. ([056b036](https://github.com/ckeditor/ckeditor5-typing/commit/056b036))
51
-
52
- ### Other changes
53
-
54
- * The issue tracker for this package was moved to https://github.com/ckeditor/ckeditor5/issues. See [ckeditor/ckeditor5#1988](https://github.com/ckeditor/ckeditor5/issues/1988). ([6491e8d](https://github.com/ckeditor/ckeditor5-typing/commit/6491e8d))
55
-
56
-
57
- ## [12.1.1](https://github.com/ckeditor/ckeditor5-typing/compare/v12.1.0...v12.1.1) (2019-07-10)
58
-
59
- ### Bug fixes
60
-
61
- * Text transformations will not remove existing formatting. Closes [#203](https://github.com/ckeditor/ckeditor5-typing/issues/203). Closes [#196](https://github.com/ckeditor/ckeditor5-typing/issues/196). ([2279eee](https://github.com/ckeditor/ckeditor5-typing/commit/2279eee))
62
-
63
-
64
- ## [12.1.0](https://github.com/ckeditor/ckeditor5-typing/compare/v12.0.2...v12.1.0) (2019-07-04)
65
-
66
- ### Features
67
-
68
- * Introduced the text transformation feature. Additionally, the `TextWatcher` util was moved to this package from `@ckeditor/ckeditor5-mention`. Closes [ckeditor/ckeditor5#1490](https://github.com/ckeditor/ckeditor5/issues/1490). ([dafd16e](https://github.com/ckeditor/ckeditor5-typing/commit/dafd16e))
69
-
70
- ### Bug fixes
71
-
72
- * Improved typing on Android devices by handling `beforeinput` event instead of mutations. Introduced `options.selection` in the `DeleteCommand#execute()` params. Introduced `selectionToRemove` parameter in the `view.Document#event:delete` data. Closes [#167](https://github.com/ckeditor/ckeditor5-typing/issues/167). ([92ab3ff](https://github.com/ckeditor/ckeditor5-typing/commit/92ab3ff))
73
-
74
-
75
- ## [12.0.2](https://github.com/ckeditor/ckeditor5-typing/compare/v12.0.1...v12.0.2) (2019-06-05)
76
-
77
- ### Other changes
78
-
79
- * Use `Model#insertContent()` instead of `model.Writer#insertText()`. Closes [#191](https://github.com/ckeditor/ckeditor5-typing/issues/191). ([0aeb384](https://github.com/ckeditor/ckeditor5-typing/commit/0aeb384))
80
-
81
-
82
- ## [12.0.1](https://github.com/ckeditor/ckeditor5-typing/compare/v12.0.0...v12.0.1) (2019-04-10)
83
-
84
- ### Bug fixes
85
-
86
- * The `delete` event will now stop the `keydown` event if it was set with the highest priority. Closes [#186](https://github.com/ckeditor/ckeditor5-typing/issues/186). ([07cca83](https://github.com/ckeditor/ckeditor5-typing/commit/07cca83))
87
-
88
-
89
- ## [12.0.0](https://github.com/ckeditor/ckeditor5-typing/compare/v11.0.2...v12.0.0) (2019-02-28)
90
-
91
- ### Bug fixes
92
-
93
- * Fixed mutation handling which crashed when the old text was the same as the new text. Closes [#181](https://github.com/ckeditor/ckeditor5-typing/issues/181). ([7175b6c](https://github.com/ckeditor/ckeditor5-typing/commit/7175b6c))
94
-
95
- ### Other changes
96
-
97
- * Exposed `DeleteCommand#buffer`. `InputCommand` uses `Model#deleteContent()` instead of `model.Writer#remove()`. ([5ab39fc](https://github.com/ckeditor/ckeditor5-typing/commit/5ab39fc))
98
-
99
- ### BREAKING CHANGES
100
-
101
- * Upgraded minimal versions of Node to `8.0.0` and npm to `5.7.1`. See: [ckeditor/ckeditor5#1507](https://github.com/ckeditor/ckeditor5/issues/1507). ([612ea3c](https://github.com/ckeditor/ckeditor5-cloud-services/commit/612ea3c))
102
-
103
-
104
- ## [11.0.2](https://github.com/ckeditor/ckeditor5-typing/compare/v11.0.1...v11.0.2) (2018-12-05)
105
-
106
- ### Bug fixes
107
-
108
- * Non-printable keys like volume up or the win key will not remove the content anymore. Closes [#136](https://github.com/ckeditor/ckeditor5-typing/issues/136). ([0ea9fbd](https://github.com/ckeditor/ckeditor5-typing/commit/0ea9fbd))
109
-
110
-
111
- ## [11.0.1](https://github.com/ckeditor/ckeditor5-typing/compare/v11.0.0...v11.0.1) (2018-10-08)
112
-
113
- ### Bug fixes
114
-
115
- * `&nbsp;` is now correctly handled in mutations. Closes [#170](https://github.com/ckeditor/ckeditor5-typing/issues/170). ([9badb20](https://github.com/ckeditor/ckeditor5-typing/commit/9badb20))
116
-
117
-
118
- ## [11.0.0](https://github.com/ckeditor/ckeditor5-typing/compare/v10.0.1...v11.0.0) (2018-07-18)
119
-
120
- ### Bug fixes
121
-
122
- * Handle <kbd>Backspace</kbd> on Android. Closes ckeditor/ckeditor5/issues/1106. Closes https://github.com/ckeditor/ckeditor5/issues/1130. ([9161275](https://github.com/ckeditor/ckeditor5-typing/commit/9161275))
123
- * Remove selection contents on `keydown` before the composition starts. Closes [#83](https://github.com/ckeditor/ckeditor5-typing/issues/83). Closes [#150](https://github.com/ckeditor/ckeditor5-typing/issues/150). ([ab1b46d](https://github.com/ckeditor/ckeditor5-typing/commit/ab1b46d))
124
-
125
- ### BREAKING CHANGES
126
-
127
- * `@ckeditor/ckeditor5-typing/src/changebuffer.js` was moved to `@ckeditor/ckeditor5-typing/src/utils/changebuffer.js`.
128
-
129
-
130
- ## [10.0.1](https://github.com/ckeditor/ckeditor5-typing/compare/v10.0.0...v10.0.1) (2018-06-21)
131
-
132
- ### Bug fixes
133
-
134
- * Bogus `<br />` element inserted by a browser at the end of an element is now correctly handled. Closes [ckeditor/ckeditor5#1083](https://github.com/ckeditor/ckeditor5/issues/1083). ([22abdff](https://github.com/ckeditor/ckeditor5-typing/commit/22abdff))
135
-
136
-
137
- ## [10.0.0](https://github.com/ckeditor/ckeditor5-typing/compare/v1.0.0-beta.4...v10.0.0) (2018-04-25)
138
-
139
- ### Other changes
140
-
141
- * Changed the license to GPL2+ only. See [ckeditor/ckeditor5#991](https://github.com/ckeditor/ckeditor5/issues/991). ([d24abd5](https://github.com/ckeditor/ckeditor5-typing/commit/d24abd5))
142
-
143
- ### BREAKING CHANGES
144
-
145
- * The license under which CKEditor 5 is released has been changed from a triple GPL, LGPL and MPL license to a GPL2+ only. See [ckeditor/ckeditor5#991](https://github.com/ckeditor/ckeditor5/issues/991) for more information.
146
-
147
-
148
- ## [1.0.0-beta.4](https://github.com/ckeditor/ckeditor5-typing/compare/v1.0.0-beta.2...v1.0.0-beta.4) (2018-04-19)
149
-
150
- Internal changes only (updated dependencies, documentation, etc.).
151
-
152
-
153
- ## [1.0.0-beta.2](https://github.com/ckeditor/ckeditor5-typing/compare/v1.0.0-beta.1...v1.0.0-beta.2) (2018-04-10)
154
-
155
- Internal changes only (updated dependencies, documentation, etc.).
156
-
157
-
158
- ## [1.0.0-beta.1](https://github.com/ckeditor/ckeditor5-typing/compare/v1.0.0-alpha.2...v1.0.0-beta.1) (2018-03-15)
159
-
160
- ### Bug fixes
161
-
162
- * `DeleteObserver` will stop the `keydown` event when the `delete` event is stopped. Closes: https://github.com/ckeditor/ckeditor5/issues/753. ([479d043](https://github.com/ckeditor/ckeditor5-typing/commit/479d043))
163
- * Editor should not crash in scenarios when mutations' common ancestor could not be mapped to the model. Closes [ckeditor/ckeditor5#718](https://github.com/ckeditor/ckeditor5/issues/718). ([db0fe8f](https://github.com/ckeditor/ckeditor5-typing/commit/db0fe8f))
164
- * Properly discover delete-word keyboard modifier on mac and non-mac computers. Closes [#92](https://github.com/ckeditor/ckeditor5-typing/issues/92). ([81f5b76](https://github.com/ckeditor/ckeditor5-typing/commit/81f5b76))
165
-
166
- ### Other changes
167
-
168
- * Aligned feature class naming to the new scheme. ([9c2cb9d](https://github.com/ckeditor/ckeditor5-typing/commit/9c2cb9d))
169
-
170
-
171
- ## [1.0.0-alpha.2](https://github.com/ckeditor/ckeditor5-typing/compare/v1.0.0-alpha.1...v1.0.0-alpha.2) (2017-11-14)
172
-
173
- Internal changes only (updated dependencies, documentation, etc.).
174
-
175
- ## [1.0.0-alpha.1](https://github.com/ckeditor/ckeditor5-typing/compare/v0.10.0...v1.0.0-alpha.1) (2017-10-03)
176
-
177
- ### Bug fixes
178
-
179
- * Fixed a bug where using spellchecker sometimes caused creating incorrect deltas, which caused bugs in undo. Closes [#123](https://github.com/ckeditor/ckeditor5-typing/issues/123). Closes [ckeditor/ckeditor5-engine#1152](https://github.com/ckeditor/ckeditor5-engine/issues/1152). ([9a5e22b](https://github.com/ckeditor/ckeditor5-typing/commit/9a5e22b))
180
- * Fixed an error where using spellchecker on a word with a style applied sometimes resulted in that word being removed. Closes [#117](https://github.com/ckeditor/ckeditor5-typing/issues/117). ([1e8d02b](https://github.com/ckeditor/ckeditor5-typing/commit/1e8d02b))
181
-
182
-
183
- ## [0.10.0](https://github.com/ckeditor/ckeditor5-typing/compare/v0.9.1...v0.10.0) (2017-09-03)
184
-
185
- ### Bug fixes
186
-
187
- * Fixed a range of issues when typing or using a spellchecker on styled words leads to errors. Closes [#100](https://github.com/ckeditor/ckeditor5-typing/issues/100). Closes ckeditor/ckeditor5[#491](https://github.com/ckeditor/ckeditor5-typing/issues/491). ([c30dbf8](https://github.com/ckeditor/ckeditor5-typing/commit/c30dbf8))
188
- * Prevent from modifying document by `Input` feature when `InputCommand` is disabled. Closes [#107](https://github.com/ckeditor/ckeditor5-typing/issues/107). ([f935d66](https://github.com/ckeditor/ckeditor5-typing/commit/f935d66))
189
-
190
- ### Features
191
-
192
- * Pressing <kbd>Backspace</kbd> or <kbd>Delete</kbd> in an empty content will reset the current block to a paragraph. Closes [#61](https://github.com/ckeditor/ckeditor5-typing/issues/61). ([bb07bc6](https://github.com/ckeditor/ckeditor5-typing/commit/bb07bc6))
193
- * The viewport will be scrolled to the selection upon user input. See ckeditor/ckeditor5-engine#660. ([2cdf02f](https://github.com/ckeditor/ckeditor5-typing/commit/2cdf02f))
194
-
195
- ### Other changes
196
-
197
- * Aligned the implementation to the new Command API (see https://github.com/ckeditor/ckeditor5-core/issues/88). ([b241ac6](https://github.com/ckeditor/ckeditor5-typing/commit/b241ac6))
198
-
199
- ### BREAKING CHANGES
200
-
201
- * The command API has been changed.
202
-
203
-
204
- ## [0.9.1](https://github.com/ckeditor/ckeditor5-typing/compare/v0.9.0...v0.9.1) (2017-05-07)
205
-
206
- Internal changes only (updated dependencies, documentation, etc.).
207
-
208
- ## [0.9.0](https://github.com/ckeditor/ckeditor5-typing/compare/v0.8.0...v0.9.0) (2017-04-05)
209
-
210
- ### Bug fixes
211
-
212
- * [Safari] Fixed an issue when inserting a Spanish accent character on a non-collapsed selection wouldn't work. Closes [#82](https://github.com/ckeditor/ckeditor5-typing/issues/82). ([49cfe9c](https://github.com/ckeditor/ckeditor5-typing/commit/49cfe9c))
213
- * `InputCommand` now accepts `Range` instead of `Position` as a parameter. Closes [#86](https://github.com/ckeditor/ckeditor5-typing/issues/86). Closes [#54](https://github.com/ckeditor/ckeditor5-typing/issues/54). ([0766407](https://github.com/ckeditor/ckeditor5-typing/commit/0766407))
214
- * New undo step should be created on selection change or applying an attribute. Closes [#20](https://github.com/ckeditor/ckeditor5-typing/issues/20). Closes [#21](https://github.com/ckeditor/ckeditor5-typing/issues/21). ([011452b](https://github.com/ckeditor/ckeditor5-typing/commit/011452b))
215
- * Use `typing.undoStep` in both `InputCommand` and `DeleteCommand`. Closes [#79](https://github.com/ckeditor/ckeditor5-typing/issues/79). ([c597467](https://github.com/ckeditor/ckeditor5-typing/commit/c597467))
216
-
217
- ### Features
218
-
219
- * Named existing plugin(s). ([2a2fcae](https://github.com/ckeditor/ckeditor5-typing/commit/2a2fcae))
220
-
221
- ### BREAKING CHANGES
222
-
223
- * `InputCommand` `options.resultPosition` was replaced with `options.resultRange`.
224
- * The `undo.step` configuration option was replaced by `typing.undoStep` in `DeleteCommand`. See [#79](https://github.com/ckeditor/ckeditor5-typing/issues/79).
225
-
226
-
227
- ## [0.8.0](https://github.com/ckeditor/ckeditor5-typing/compare/v0.7.0...v0.8.0) (2017-03-06)
228
-
229
- ### Bug fixes
230
-
231
- * Replace all `&nbsp;` with spaces in text inserted via mutations. Closes [#68](https://github.com/ckeditor/ckeditor5/issues/68). ([c0fce25](https://github.com/ckeditor/ckeditor5-typing/commit/c0fce25))
232
- * Tab key should not delete selected text. Closes: [#69](https://github.com/ckeditor/ckeditor5/issues/69). ([8447f51](https://github.com/ckeditor/ckeditor5-typing/commit/8447f51))
233
-
234
- ### Features
235
-
236
- * Introduced `InputCommand` which can be used to simulate typing. Closes [#48](https://github.com/ckeditor/ckeditor5/issues/48). ([cdb7fdf](https://github.com/ckeditor/ckeditor5-typing/commit/cdb7fdf))