@danielgindi/selectbox 1.0.80 → 1.0.83

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/dist/lib.es6.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * @danielgindi/selectbox 1.0.80
2
+ * @danielgindi/selectbox 1.0.83
3
3
  * git://github.com/danielgindi/selectbox.git
4
4
  */
5
5
  import { createElement, closestUntil, setElementAttrs, next, prev } from '@danielgindi/dom-utils/lib/Dom';
@@ -4114,6 +4114,13 @@ class SelectBox {
4114
4114
  },
4115
4115
  });
4116
4116
 
4117
+ p.sink.add(dropList.el, 'mousedown', (event) => {
4118
+ const li = closestUntil(event.target, 'li', event.currentTarget);
4119
+ if (!li) return;
4120
+
4121
+ event.preventDefault();
4122
+ });
4123
+
4117
4124
  this._registerDropdownEvents();
4118
4125
  }
4119
4126
 
@@ -4142,6 +4149,9 @@ class SelectBox {
4142
4149
  return;
4143
4150
 
4144
4151
  let suppressEnterSpaceToggle = false;
4152
+ let lastKeyAllowsNonTypeKeys = p.lastKeyAllowsNonTypeKeys;
4153
+ p.lastKeyAllowsNonTypeKeys = false;
4154
+ let hasInputText = p.input && p.input.value.length > 0;
4145
4155
 
4146
4156
  switch (evt.key) {
4147
4157
  case VALUE_PAGE_UP:
@@ -4151,12 +4161,13 @@ class SelectBox {
4151
4161
  case VALUE_HOME:
4152
4162
  case VALUE_END:
4153
4163
  if ((evt.key === VALUE_HOME || evt.key === VALUE_END) &&
4154
- p.input && p.input.value.length > 0 && !p.lastKeyAllowsNonTypeKeys) {
4164
+ hasInputText && !lastKeyAllowsNonTypeKeys) {
4155
4165
  // Allow using HOME/END button within the textbox
4156
4166
  dropList._keydownFreeType(evt);
4157
4167
  break;
4158
4168
  }
4159
4169
 
4170
+ p.lastKeyAllowsNonTypeKeys = true;
4160
4171
  evt.preventDefault();
4161
4172
 
4162
4173
  switch (evt.key) {
@@ -4194,7 +4205,9 @@ class SelectBox {
4194
4205
  break;
4195
4206
 
4196
4207
  case VALUE_SPACE:
4197
- if (p.lastKeyAllowsNonTypeKeys) {
4208
+ if (lastKeyAllowsNonTypeKeys) {
4209
+ p.lastKeyAllowsNonTypeKeys = true;
4210
+
4198
4211
  if (dropList.isVisible() && dropList.hasFocusedItem()) {
4199
4212
  suppressEnterSpaceToggle = true;
4200
4213
  if (p.multi)
@@ -4232,14 +4245,6 @@ class SelectBox {
4232
4245
  break;
4233
4246
  }
4234
4247
 
4235
- p.lastKeyAllowsNonTypeKeys = evt.key === VALUE_UP ||
4236
- evt.key === VALUE_DOWN ||
4237
- evt.key === VALUE_PAGE_UP ||
4238
- evt.key === VALUE_PAGE_DOWN ||
4239
- evt.key === VALUE_HOME ||
4240
- evt.key === VALUE_END ||
4241
- (evt.key === VALUE_SPACE && !!p.lastKeyAllowsNonTypeKeys);
4242
-
4243
4248
  if (!suppressEnterSpaceToggle) {
4244
4249
  if (evt.key === VALUE_ENTER || (
4245
4250
  evt.key === VALUE_SPACE &&