handsontable 0.0.0-next-5c1663f-20230911 → 0.0.0-next-a262af5-20230913

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of handsontable might be problematic. Click here for more details.

package/helpers/mixed.js CHANGED
@@ -134,7 +134,7 @@ const domMessages = {
134
134
  function _injectProductInfo(key, element) {
135
135
  const hasValidType = !isEmpty(key);
136
136
  const isNonCommercial = typeof key === 'string' && key.toLowerCase() === 'non-commercial-and-evaluation';
137
- const hotVersion = "0.0.0-next-5c1663f-20230911";
137
+ const hotVersion = "0.0.0-next-a262af5-20230913";
138
138
  let keyValidityDate;
139
139
  let consoleMessageState = 'invalid';
140
140
  let domMessageState = 'invalid';
package/helpers/mixed.mjs CHANGED
@@ -124,7 +124,7 @@ const domMessages = {
124
124
  export function _injectProductInfo(key, element) {
125
125
  const hasValidType = !isEmpty(key);
126
126
  const isNonCommercial = typeof key === 'string' && key.toLowerCase() === 'non-commercial-and-evaluation';
127
- const hotVersion = "0.0.0-next-5c1663f-20230911";
127
+ const hotVersion = "0.0.0-next-a262af5-20230913";
128
128
  let keyValidityDate;
129
129
  let consoleMessageState = 'invalid';
130
130
  let domMessageState = 'invalid';
package/package.json CHANGED
@@ -10,7 +10,7 @@
10
10
  "url": "https://github.com/handsontable/handsontable/issues"
11
11
  },
12
12
  "author": "Handsoncode <hello@handsontable.com>",
13
- "version": "0.0.0-next-5c1663f-20230911",
13
+ "version": "0.0.0-next-a262af5-20230913",
14
14
  "main": "index",
15
15
  "module": "index.mjs",
16
16
  "jsnext:main": "index.mjs",
@@ -10,6 +10,7 @@ var _element = require("../helpers/dom/element");
10
10
  var _browser = require("../helpers/browser");
11
11
  const MODIFIER_KEYS = ['meta', 'alt', 'shift', 'control'];
12
12
  const modifierKeysObserver = (0, _keyObserver.createKeysObserver)();
13
+ let instanceCounter = 0;
13
14
 
14
15
  /* eslint-disable jsdoc/require-description-complete-sentence */
15
16
 
@@ -88,9 +89,7 @@ function useRecorder(ownerWindow, handleEvent, beforeKeyDown, afterKeyDown, call
88
89
  }
89
90
  const pressedKey = (0, _utils.normalizeEventKey)(event.key);
90
91
  let extraModifierKeys = [];
91
- if (isModifierKey(pressedKey)) {
92
- modifierKeysObserver.press(pressedKey);
93
- } else {
92
+ if (!isModifierKey(pressedKey)) {
94
93
  extraModifierKeys = getPressedModifierKeys(event);
95
94
  }
96
95
  const pressedKeys = [pressedKey].concat(extraModifierKeys);
@@ -103,20 +102,29 @@ function useRecorder(ownerWindow, handleEvent, beforeKeyDown, afterKeyDown, call
103
102
  };
104
103
 
105
104
  /**
106
- * `KeyboardEvent`'s callback function
105
+ * `KeyboardEvent`'s callback function for observing the pressed state of the mod keys.
107
106
  *
108
107
  * @private
109
108
  * @param {KeyboardEvent} event The event object
110
109
  */
111
- const onkeyup = event => {
112
- if (handleEvent(event) === false) {
113
- return;
110
+ const onkeydownForModKeys = event => {
111
+ const pressedKey = (0, _utils.normalizeEventKey)(event.key);
112
+ if (isModifierKey(pressedKey)) {
113
+ modifierKeysObserver.press(pressedKey);
114
114
  }
115
+ };
116
+
117
+ /**
118
+ * `KeyboardEvent`'s callback function for observing the pressed state of the mod keys.
119
+ *
120
+ * @private
121
+ * @param {KeyboardEvent} event The event object
122
+ */
123
+ const onkeyupForModKeys = event => {
115
124
  const pressedKey = (0, _utils.normalizeEventKey)(event.key);
116
- if (isModifierKey(pressedKey) === false) {
117
- return;
125
+ if (isModifierKey(pressedKey)) {
126
+ modifierKeysObserver.release(pressedKey);
118
127
  }
119
- modifierKeysObserver.release(pressedKey);
120
128
  };
121
129
 
122
130
  /**
@@ -133,9 +141,13 @@ function useRecorder(ownerWindow, handleEvent, beforeKeyDown, afterKeyDown, call
133
141
  */
134
142
  const mount = () => {
135
143
  let eventTarget = ownerWindow;
144
+ instanceCounter += 1;
136
145
  while (eventTarget) {
146
+ if (instanceCounter === 1) {
147
+ eventTarget.document.documentElement.addEventListener('keydown', onkeydownForModKeys);
148
+ eventTarget.document.documentElement.addEventListener('keyup', onkeyupForModKeys);
149
+ }
137
150
  eventTarget.document.documentElement.addEventListener('keydown', onkeydown);
138
- eventTarget.document.documentElement.addEventListener('keyup', onkeyup);
139
151
  eventTarget.document.documentElement.addEventListener('blur', onblur);
140
152
  eventTarget = (0, _element.getParentWindow)(eventTarget);
141
153
  }
@@ -146,9 +158,13 @@ function useRecorder(ownerWindow, handleEvent, beforeKeyDown, afterKeyDown, call
146
158
  */
147
159
  const unmount = () => {
148
160
  let eventTarget = ownerWindow;
161
+ instanceCounter -= 1;
149
162
  while (eventTarget) {
163
+ if (instanceCounter === 0) {
164
+ eventTarget.document.documentElement.removeEventListener('keydown', onkeydownForModKeys);
165
+ eventTarget.document.documentElement.removeEventListener('keyup', onkeyupForModKeys);
166
+ }
150
167
  eventTarget.document.documentElement.removeEventListener('keydown', onkeydown);
151
- eventTarget.document.documentElement.removeEventListener('keyup', onkeyup);
152
168
  eventTarget.document.documentElement.removeEventListener('blur', onblur);
153
169
  eventTarget = (0, _element.getParentWindow)(eventTarget);
154
170
  }
@@ -6,6 +6,7 @@ import { getParentWindow } from "../helpers/dom/element.mjs";
6
6
  import { isMacOS } from "../helpers/browser.mjs";
7
7
  const MODIFIER_KEYS = ['meta', 'alt', 'shift', 'control'];
8
8
  const modifierKeysObserver = createKeysObserver();
9
+ let instanceCounter = 0;
9
10
 
10
11
  /* eslint-disable jsdoc/require-description-complete-sentence */
11
12
 
@@ -84,9 +85,7 @@ export function useRecorder(ownerWindow, handleEvent, beforeKeyDown, afterKeyDow
84
85
  }
85
86
  const pressedKey = normalizeEventKey(event.key);
86
87
  let extraModifierKeys = [];
87
- if (isModifierKey(pressedKey)) {
88
- modifierKeysObserver.press(pressedKey);
89
- } else {
88
+ if (!isModifierKey(pressedKey)) {
90
89
  extraModifierKeys = getPressedModifierKeys(event);
91
90
  }
92
91
  const pressedKeys = [pressedKey].concat(extraModifierKeys);
@@ -99,20 +98,29 @@ export function useRecorder(ownerWindow, handleEvent, beforeKeyDown, afterKeyDow
99
98
  };
100
99
 
101
100
  /**
102
- * `KeyboardEvent`'s callback function
101
+ * `KeyboardEvent`'s callback function for observing the pressed state of the mod keys.
103
102
  *
104
103
  * @private
105
104
  * @param {KeyboardEvent} event The event object
106
105
  */
107
- const onkeyup = event => {
108
- if (handleEvent(event) === false) {
109
- return;
106
+ const onkeydownForModKeys = event => {
107
+ const pressedKey = normalizeEventKey(event.key);
108
+ if (isModifierKey(pressedKey)) {
109
+ modifierKeysObserver.press(pressedKey);
110
110
  }
111
+ };
112
+
113
+ /**
114
+ * `KeyboardEvent`'s callback function for observing the pressed state of the mod keys.
115
+ *
116
+ * @private
117
+ * @param {KeyboardEvent} event The event object
118
+ */
119
+ const onkeyupForModKeys = event => {
111
120
  const pressedKey = normalizeEventKey(event.key);
112
- if (isModifierKey(pressedKey) === false) {
113
- return;
121
+ if (isModifierKey(pressedKey)) {
122
+ modifierKeysObserver.release(pressedKey);
114
123
  }
115
- modifierKeysObserver.release(pressedKey);
116
124
  };
117
125
 
118
126
  /**
@@ -129,9 +137,13 @@ export function useRecorder(ownerWindow, handleEvent, beforeKeyDown, afterKeyDow
129
137
  */
130
138
  const mount = () => {
131
139
  let eventTarget = ownerWindow;
140
+ instanceCounter += 1;
132
141
  while (eventTarget) {
142
+ if (instanceCounter === 1) {
143
+ eventTarget.document.documentElement.addEventListener('keydown', onkeydownForModKeys);
144
+ eventTarget.document.documentElement.addEventListener('keyup', onkeyupForModKeys);
145
+ }
133
146
  eventTarget.document.documentElement.addEventListener('keydown', onkeydown);
134
- eventTarget.document.documentElement.addEventListener('keyup', onkeyup);
135
147
  eventTarget.document.documentElement.addEventListener('blur', onblur);
136
148
  eventTarget = getParentWindow(eventTarget);
137
149
  }
@@ -142,9 +154,13 @@ export function useRecorder(ownerWindow, handleEvent, beforeKeyDown, afterKeyDow
142
154
  */
143
155
  const unmount = () => {
144
156
  let eventTarget = ownerWindow;
157
+ instanceCounter -= 1;
145
158
  while (eventTarget) {
159
+ if (instanceCounter === 0) {
160
+ eventTarget.document.documentElement.removeEventListener('keydown', onkeydownForModKeys);
161
+ eventTarget.document.documentElement.removeEventListener('keyup', onkeyupForModKeys);
162
+ }
146
163
  eventTarget.document.documentElement.removeEventListener('keydown', onkeydown);
147
- eventTarget.document.documentElement.removeEventListener('keyup', onkeyup);
148
164
  eventTarget.document.documentElement.removeEventListener('blur', onblur);
149
165
  eventTarget = getParentWindow(eventTarget);
150
166
  }