@danielgindi/selectbox 1.0.78 → 1.0.80

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.umd.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * @danielgindi/selectbox 1.0.78
2
+ * @danielgindi/selectbox 1.0.80
3
3
  * git://github.com/danielgindi/selectbox.git
4
4
  */
5
5
  (function (global, factory) {
@@ -6651,6 +6651,14 @@
6651
6651
 
6652
6652
  function previousPage(event) {
6653
6653
  this._move('prev_page', event);
6654
+ } }, { key: "goToFirst", value:
6655
+
6656
+ function goToFirst(event) {
6657
+ this._move('first', event);
6658
+ } }, { key: "goToLast", value:
6659
+
6660
+ function goToLast(event) {
6661
+ this._move('last', event);
6654
6662
  } }, { key: "toggleFocusedItem", value:
6655
6663
 
6656
6664
  function toggleFocusedItem() {
@@ -7678,12 +7686,6 @@
7678
7686
  var p = this._p;
7679
7687
 
7680
7688
  p.sink.
7681
- add(p.el, 'mousedown', function (event) {
7682
- var li = Dom.closestUntil(event.target, 'li', event.currentTarget);
7683
- if (!li) return;
7684
-
7685
- event.preventDefault();
7686
- }).
7687
7689
  add(p.el, 'mouseup', function (event) {
7688
7690
  var li = Dom.closestUntil(event.target, 'li', event.currentTarget);
7689
7691
  if (!li) return;
@@ -7784,7 +7786,6 @@
7784
7786
  var p = this._p;
7785
7787
 
7786
7788
  p.sink.add(p.el, 'keydown', function (evt) {return _this9._keydown(evt);});
7787
- p.sink.add(p.el, 'keypress', function (evt) {return _this9._keydown(evt);});
7788
7789
  } }, { key: "_keydown", value:
7789
7790
 
7790
7791
  function _keydown(event) {
@@ -11387,9 +11388,7 @@
11387
11388
  if (!dropList) return;
11388
11389
 
11389
11390
  var avoidToggleFromClick = false,
11390
- currentTouchId = null,
11391
- suppressKeyPress = false,
11392
- suppressKeyPressRepeat = false;
11391
+ currentTouchId = null;
11393
11392
 
11394
11393
  var keyEventsTarget = p.multi || p.searchable ? p.input : p.el;
11395
11394
 
@@ -11398,15 +11397,22 @@
11398
11397
  if ( /**@type HTMLInputElement*/evt.currentTarget.readOnly)
11399
11398
  return;
11400
11399
 
11401
- suppressKeyPress = false;
11402
- suppressKeyPressRepeat = false;
11400
+ var suppressEnterSpaceToggle = false;
11403
11401
 
11404
11402
  switch (evt.key) {
11405
11403
  case keycodeJs.VALUE_PAGE_UP:
11406
11404
  case keycodeJs.VALUE_PAGE_DOWN:
11407
11405
  case keycodeJs.VALUE_UP:
11408
11406
  case keycodeJs.VALUE_DOWN:
11409
- suppressKeyPress = true;
11407
+ case keycodeJs.VALUE_HOME:
11408
+ case keycodeJs.VALUE_END:
11409
+ if ((evt.key === keycodeJs.VALUE_HOME || evt.key === keycodeJs.VALUE_END) &&
11410
+ p.input && p.input.value.length > 0 && !p.lastKeyAllowsNonTypeKeys) {
11411
+ // Allow using HOME/END button within the textbox
11412
+ dropList._keydownFreeType(evt);
11413
+ break;
11414
+ }
11415
+
11410
11416
  evt.preventDefault();
11411
11417
 
11412
11418
  switch (evt.key) {
@@ -11431,16 +11437,22 @@
11431
11437
  } else {
11432
11438
  _this6._moveNext();
11433
11439
  }
11434
- break;}
11440
+ break;
11435
11441
 
11442
+ case keycodeJs.VALUE_HOME:
11443
+ dropList.goToFirst(evt);
11444
+ break;
11445
+
11446
+ case keycodeJs.VALUE_END:
11447
+ dropList.goToLast(evt);
11448
+ break;}
11436
11449
 
11437
11450
  break;
11438
11451
 
11439
11452
  case keycodeJs.VALUE_SPACE:
11440
- if (p.lastKeyAllowsSpaceToggle) {
11453
+ if (p.lastKeyAllowsNonTypeKeys) {
11441
11454
  if (dropList.isVisible() && dropList.hasFocusedItem()) {
11442
- suppressKeyPress = true;
11443
- suppressKeyPressRepeat = true;
11455
+ suppressEnterSpaceToggle = true;
11444
11456
  if (p.multi)
11445
11457
  dropList.toggleFocusedItem(evt);else
11446
11458
  dropList.triggerItemSelection(evt);
@@ -11451,8 +11463,7 @@
11451
11463
 
11452
11464
  case keycodeJs.VALUE_ENTER:
11453
11465
  if (dropList.isVisible() && dropList.hasFocusedItem()) {
11454
- suppressKeyPress = true;
11455
- suppressKeyPressRepeat = true;
11466
+ suppressEnterSpaceToggle = true;
11456
11467
  evt.preventDefault();
11457
11468
  dropList.triggerItemSelection(evt);
11458
11469
  }
@@ -11473,74 +11484,30 @@
11473
11484
  break;
11474
11485
 
11475
11486
  default:
11476
- suppressKeyPressRepeat = true;
11477
11487
  dropList._keydownFreeType(evt);
11478
11488
  break;}
11479
11489
 
11480
11490
 
11481
- p.lastKeyAllowsSpaceToggle = evt.key === keycodeJs.VALUE_UP ||
11491
+ p.lastKeyAllowsNonTypeKeys = evt.key === keycodeJs.VALUE_UP ||
11482
11492
  evt.key === keycodeJs.VALUE_DOWN ||
11483
11493
  evt.key === keycodeJs.VALUE_PAGE_UP ||
11484
11494
  evt.key === keycodeJs.VALUE_PAGE_DOWN ||
11485
- evt.key === keycodeJs.VALUE_SPACE && !!p.lastKeyAllowsSpaceToggle;
11486
- }).
11487
- add(keyEventsTarget, 'keypress.dropdown', function (evt) {
11488
- if (suppressKeyPress) {
11489
- suppressKeyPress = false;
11490
- evt.preventDefault();
11491
- return;
11492
- }
11493
-
11494
- if (suppressKeyPressRepeat)
11495
- return;
11496
-
11497
- if (evt.key === keycodeJs.VALUE_ENTER ||
11498
-
11499
- evt.key === keycodeJs.VALUE_SPACE &&
11500
- p.lastKeyAllowsSpaceToggle &&
11501
- !p.multi &&
11502
- !dropList.hasFocusedItem())
11503
-
11504
- {
11505
- _this6.toggleList();
11506
- evt.preventDefault();
11507
- evt.stopPropagation();
11508
- return;
11509
- }
11510
-
11511
- switch (evt.key) {
11512
- case keycodeJs.VALUE_PAGE_UP:
11513
- case keycodeJs.VALUE_PAGE_DOWN:
11514
- case keycodeJs.VALUE_UP:
11515
- case keycodeJs.VALUE_DOWN:
11495
+ evt.key === keycodeJs.VALUE_HOME ||
11496
+ evt.key === keycodeJs.VALUE_END ||
11497
+ evt.key === keycodeJs.VALUE_SPACE && !!p.lastKeyAllowsNonTypeKeys;
11498
+
11499
+ if (!suppressEnterSpaceToggle) {
11500
+ if (evt.key === keycodeJs.VALUE_ENTER ||
11501
+ evt.key === keycodeJs.VALUE_SPACE &&
11502
+ p.lastKeyAllowsNonTypeKeys &&
11503
+ !p.multi &&
11504
+ !dropList.hasFocusedItem())
11505
+ {
11506
+ _this6.toggleList();
11516
11507
  evt.preventDefault();
11517
-
11518
- switch (evt.key) {
11519
- case keycodeJs.VALUE_PAGE_UP:
11520
- if (dropList.isVisible())
11521
- dropList.previousPage(evt);
11522
- break;
11523
- case keycodeJs.VALUE_PAGE_DOWN:
11524
- if (dropList.isVisible())
11525
- dropList.nextPage(evt);
11526
- break;
11527
- case keycodeJs.VALUE_UP:
11528
- if (dropList.isVisible()) {
11529
- dropList.previous(evt);
11530
- } else {
11531
- _this6._movePrev();
11532
- }
11533
- break;
11534
- case keycodeJs.VALUE_DOWN:
11535
- if (dropList.isVisible()) {
11536
- dropList.next(evt);
11537
- } else {
11538
- _this6._moveNext();
11539
- }
11540
- break;}
11541
-
11542
- break;}
11543
-
11508
+ evt.stopPropagation();
11509
+ }
11510
+ }
11544
11511
  });
11545
11512
 
11546
11513
  if (p.input) {