handsontable 0.0.0-next-ff8465d-20231006 → 0.0.0-next-b0a4ea2-20231024

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.

Files changed (117) hide show
  1. package/base.js +2 -2
  2. package/base.mjs +2 -2
  3. package/cellTypes/dateType/dateType.d.ts +3 -3
  4. package/cellTypes/dateType/dateType.js +2 -2
  5. package/cellTypes/dateType/dateType.mjs +2 -2
  6. package/cellTypes/handsontableType/handsontableType.d.ts +3 -3
  7. package/cellTypes/handsontableType/handsontableType.js +2 -2
  8. package/cellTypes/handsontableType/handsontableType.mjs +2 -2
  9. package/core.d.ts +1 -1
  10. package/core.js +10 -5
  11. package/core.mjs +10 -5
  12. package/dataMap/metaManager/metaSchema.js +1 -1
  13. package/dataMap/metaManager/metaSchema.mjs +1 -1
  14. package/dist/handsontable.css +13 -12
  15. package/dist/handsontable.full.css +13 -12
  16. package/dist/handsontable.full.js +2260 -1403
  17. package/dist/handsontable.full.min.css +5 -5
  18. package/dist/handsontable.full.min.js +10 -10
  19. package/dist/handsontable.js +2260 -1403
  20. package/dist/handsontable.min.css +5 -5
  21. package/dist/handsontable.min.js +24 -24
  22. package/dist/languages/all.js +6 -2
  23. package/dist/languages/all.min.js +1 -1
  24. package/dist/languages/en-US.js +3 -1
  25. package/dist/languages/en-US.min.js +1 -1
  26. package/dist/languages/pl-PL.js +3 -1
  27. package/dist/languages/pl-PL.min.js +1 -1
  28. package/editors/autocompleteEditor/autocompleteEditor.js +1 -1
  29. package/editors/autocompleteEditor/autocompleteEditor.mjs +1 -1
  30. package/editors/dateEditor/dateEditor.js +26 -7
  31. package/editors/dateEditor/dateEditor.mjs +27 -8
  32. package/editors/handsontableEditor/handsontableEditor.js +7 -0
  33. package/editors/handsontableEditor/handsontableEditor.mjs +8 -1
  34. package/helpers/a11y.js +3 -1
  35. package/helpers/a11y.mjs +2 -1
  36. package/helpers/mixed.js +1 -1
  37. package/helpers/mixed.mjs +1 -1
  38. package/i18n/constants.js +7 -1
  39. package/i18n/constants.mjs +4 -1
  40. package/i18n/languages/en-US.js +3 -1
  41. package/i18n/languages/en-US.mjs +3 -1
  42. package/i18n/languages/pl-PL.js +3 -1
  43. package/i18n/languages/pl-PL.mjs +3 -1
  44. package/languages/all.js +6 -2
  45. package/languages/en-US.js +3 -1
  46. package/languages/en-US.mjs +3 -1
  47. package/languages/index.js +6 -2
  48. package/languages/pl-PL.js +3 -1
  49. package/languages/pl-PL.mjs +3 -1
  50. package/package.json +11 -1
  51. package/pluginHooks.js +1 -1
  52. package/pluginHooks.mjs +1 -1
  53. package/plugins/contextMenu/menu/defaultShortcutsList.js +88 -0
  54. package/plugins/contextMenu/menu/defaultShortcutsList.mjs +84 -0
  55. package/plugins/contextMenu/menu/menu.js +87 -151
  56. package/plugins/contextMenu/menu/menu.mjs +90 -154
  57. package/plugins/contextMenu/menu/menuItemRenderer.js +58 -0
  58. package/plugins/contextMenu/menu/menuItemRenderer.mjs +54 -0
  59. package/plugins/contextMenu/menu/navigator.js +19 -144
  60. package/plugins/contextMenu/menu/navigator.mjs +18 -143
  61. package/plugins/contextMenu/menu/shortcuts.js +114 -0
  62. package/plugins/contextMenu/menu/shortcuts.mjs +110 -0
  63. package/plugins/dropdownMenu/dropdownMenu.js +32 -4
  64. package/plugins/dropdownMenu/dropdownMenu.mjs +33 -5
  65. package/plugins/filters/component/_base.js +23 -8
  66. package/plugins/filters/component/_base.mjs +23 -8
  67. package/plugins/filters/component/actionBar.js +29 -27
  68. package/plugins/filters/component/actionBar.mjs +26 -23
  69. package/plugins/filters/component/condition.js +46 -59
  70. package/plugins/filters/component/condition.mjs +40 -52
  71. package/plugins/filters/component/operators.js +21 -22
  72. package/plugins/filters/component/operators.mjs +18 -18
  73. package/plugins/filters/component/value.js +35 -26
  74. package/plugins/filters/component/value.mjs +32 -22
  75. package/plugins/filters/filters.js +75 -48
  76. package/plugins/filters/filters.mjs +68 -41
  77. package/plugins/filters/menu/focusController.js +123 -0
  78. package/plugins/filters/menu/focusController.mjs +119 -0
  79. package/plugins/filters/menu/focusNavigator.js +30 -0
  80. package/plugins/filters/menu/focusNavigator.mjs +26 -0
  81. package/plugins/filters/ui/_base.js +35 -13
  82. package/plugins/filters/ui/_base.mjs +35 -13
  83. package/plugins/filters/ui/input.js +43 -32
  84. package/plugins/filters/ui/input.mjs +42 -30
  85. package/plugins/filters/ui/link.js +44 -12
  86. package/plugins/filters/ui/link.mjs +44 -11
  87. package/plugins/filters/ui/multipleSelect.js +234 -129
  88. package/plugins/filters/ui/multipleSelect.mjs +232 -127
  89. package/plugins/filters/ui/radioInput.js +42 -18
  90. package/plugins/filters/ui/radioInput.mjs +42 -17
  91. package/plugins/filters/ui/select.js +144 -75
  92. package/plugins/filters/ui/select.mjs +140 -70
  93. package/renderers/autocompleteRenderer/autocompleteRenderer.js +1 -1
  94. package/renderers/autocompleteRenderer/autocompleteRenderer.mjs +1 -1
  95. package/renderers/checkboxRenderer/checkboxRenderer.js +3 -3
  96. package/renderers/checkboxRenderer/checkboxRenderer.mjs +4 -4
  97. package/renderers/dateRenderer/dateRenderer.d.ts +5 -0
  98. package/renderers/dateRenderer/dateRenderer.js +29 -0
  99. package/renderers/dateRenderer/dateRenderer.mjs +24 -0
  100. package/renderers/dateRenderer/index.d.ts +1 -0
  101. package/renderers/dateRenderer/index.js +6 -0
  102. package/renderers/dateRenderer/index.mjs +1 -0
  103. package/renderers/handsontableRenderer/handsontableRenderer.d.ts +5 -0
  104. package/renderers/handsontableRenderer/handsontableRenderer.js +29 -0
  105. package/renderers/handsontableRenderer/handsontableRenderer.mjs +24 -0
  106. package/renderers/handsontableRenderer/index.d.ts +1 -0
  107. package/renderers/handsontableRenderer/index.js +6 -0
  108. package/renderers/handsontableRenderer/index.mjs +1 -0
  109. package/renderers/index.d.ts +6 -0
  110. package/renderers/selectRenderer/selectRenderer.js +2 -1
  111. package/renderers/selectRenderer/selectRenderer.mjs +2 -1
  112. package/selection/selection.js +2 -2
  113. package/selection/selection.mjs +2 -2
  114. package/shortcuts/context.js +3 -2
  115. package/shortcuts/context.mjs +3 -2
  116. package/utils/paginator.js +151 -0
  117. package/utils/paginator.mjs +147 -0
@@ -1,12 +1,20 @@
1
+ import "core-js/modules/es.error.cause.js";
2
+ function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
3
+ function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
4
+ function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); }
5
+ function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
6
+ function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
7
+ function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
8
+ function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError("attempted to set read only private field"); } descriptor.value = value; } }
1
9
  import { clone, extend } from "../../../helpers/object.mjs";
2
- import BaseUI from "./_base.mjs";
3
- const privatePool = new WeakMap();
4
-
10
+ import { BaseUI } from "./_base.mjs";
5
11
  /**
6
12
  * @private
7
13
  * @class RadioInputUI
8
14
  */
9
- class RadioInputUI extends BaseUI {
15
+ var _input = /*#__PURE__*/new WeakMap();
16
+ var _label = /*#__PURE__*/new WeakMap();
17
+ export class RadioInputUI extends BaseUI {
10
18
  static get DEFAULTS() {
11
19
  return clone({
12
20
  type: 'radio',
@@ -15,9 +23,28 @@ class RadioInputUI extends BaseUI {
15
23
  label: {}
16
24
  });
17
25
  }
26
+
27
+ /**
28
+ * The reference to the input element.
29
+ *
30
+ * @type {HTMLInputElement}
31
+ */
32
+
18
33
  constructor(hotInstance, options) {
19
34
  super(hotInstance, extend(RadioInputUI.DEFAULTS, options));
20
- privatePool.set(this, {});
35
+ _classPrivateFieldInitSpec(this, _input, {
36
+ writable: true,
37
+ value: void 0
38
+ });
39
+ /**
40
+ * The reference to the label element.
41
+ *
42
+ * @type {HTMLLabelElement}
43
+ */
44
+ _classPrivateFieldInitSpec(this, _label, {
45
+ writable: true,
46
+ value: void 0
47
+ });
21
48
  }
22
49
 
23
50
  /**
@@ -25,12 +52,12 @@ class RadioInputUI extends BaseUI {
25
52
  */
26
53
  build() {
27
54
  super.build();
28
- const priv = privatePool.get(this);
29
- priv.input = this._element.firstChild;
30
55
  const label = this.hot.rootDocument.createElement('label');
31
56
  label.textContent = this.translateIfPossible(this.options.label.textContent);
32
57
  label.htmlFor = this.translateIfPossible(this.options.label.htmlFor);
33
- priv.label = label;
58
+ _classPrivateFieldSet(this, _label, label);
59
+ _classPrivateFieldSet(this, _input, this._element.firstChild);
60
+ _classPrivateFieldGet(this, _input).checked = this.options.checked;
34
61
  this._element.appendChild(label);
35
62
  this.update();
36
63
  }
@@ -42,9 +69,7 @@ class RadioInputUI extends BaseUI {
42
69
  if (!this.isBuilt()) {
43
70
  return;
44
71
  }
45
- const priv = privatePool.get(this);
46
- priv.input.checked = this.options.checked;
47
- priv.label.textContent = this.translateIfPossible(this.options.label.textContent);
72
+ _classPrivateFieldGet(this, _label).textContent = this.translateIfPossible(this.options.label.textContent);
48
73
  }
49
74
 
50
75
  /**
@@ -53,7 +78,7 @@ class RadioInputUI extends BaseUI {
53
78
  * @returns {boolean}
54
79
  */
55
80
  isChecked() {
56
- return this.options.checked;
81
+ return _classPrivateFieldGet(this, _input).checked;
57
82
  }
58
83
 
59
84
  /**
@@ -63,8 +88,9 @@ class RadioInputUI extends BaseUI {
63
88
  */
64
89
  setChecked() {
65
90
  let value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
66
- this.options.checked = value;
67
- this.update();
91
+ if (this.isBuilt()) {
92
+ _classPrivateFieldGet(this, _input).checked = value;
93
+ }
68
94
  }
69
95
 
70
96
  /**
@@ -72,8 +98,7 @@ class RadioInputUI extends BaseUI {
72
98
  */
73
99
  focus() {
74
100
  if (this.isBuilt()) {
75
- privatePool.get(this).input.focus();
101
+ _classPrivateFieldGet(this, _input).focus();
76
102
  }
77
103
  }
78
- }
79
- export default RadioInputUI;
104
+ }
@@ -1,51 +1,126 @@
1
1
  "use strict";
2
2
 
3
+ require("core-js/modules/es.error.cause.js");
3
4
  exports.__esModule = true;
4
- var _menu = require("../../../plugins/contextMenu/menu");
5
+ var _menu2 = require("../../../plugins/contextMenu/menu");
5
6
  var _object = require("../../../helpers/object");
6
7
  var _array = require("../../../helpers/array");
7
8
  var C = _interopRequireWildcard(require("../../../i18n/constants"));
8
9
  var _predefinedItems = require("../../../plugins/contextMenu/predefinedItems");
9
- var _base = _interopRequireDefault(require("./_base"));
10
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
+ var _base = require("./_base");
11
11
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
12
12
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
13
- const privatePool = new WeakMap();
14
-
13
+ function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
14
+ function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
15
+ function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
16
+ function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
17
+ function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError("attempted to set read only private field"); } descriptor.value = value; } }
18
+ function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; }
19
+ function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); }
20
+ function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
21
+ function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
15
22
  /**
16
23
  * @private
17
24
  * @class SelectUI
18
25
  */
19
- class SelectUI extends _base.default {
26
+ var _menu = /*#__PURE__*/new WeakMap();
27
+ var _items = /*#__PURE__*/new WeakMap();
28
+ var _caption = /*#__PURE__*/new WeakMap();
29
+ var _captionElement = /*#__PURE__*/new WeakMap();
30
+ var _dropdown = /*#__PURE__*/new WeakMap();
31
+ var _onMenuSelect = /*#__PURE__*/new WeakSet();
32
+ var _onMenuClosed = /*#__PURE__*/new WeakSet();
33
+ var _onClick = /*#__PURE__*/new WeakSet();
34
+ class SelectUI extends _base.BaseUI {
20
35
  static get DEFAULTS() {
21
36
  return (0, _object.clone)({
22
37
  className: 'htUISelect',
23
- wrapIt: false
38
+ wrapIt: false,
39
+ tabIndex: -1
24
40
  });
25
41
  }
42
+
43
+ /**
44
+ * Instance of {@link Menu}.
45
+ *
46
+ * @type {Menu}
47
+ */
48
+
26
49
  constructor(hotInstance, options) {
27
50
  super(hotInstance, (0, _object.extend)(SelectUI.DEFAULTS, options));
28
- privatePool.set(this, {});
29
51
  /**
30
- * Instance of {@link Menu}.
52
+ * On element click listener.
31
53
  *
32
- * @type {Menu}
54
+ * @private
33
55
  */
34
- this.menu = null;
56
+ _classPrivateMethodInitSpec(this, _onClick);
57
+ /**
58
+ * On menu closed listener.
59
+ */
60
+ _classPrivateMethodInitSpec(this, _onMenuClosed);
61
+ /**
62
+ * On menu selected listener.
63
+ *
64
+ * @param {object} command Selected item.
65
+ */
66
+ _classPrivateMethodInitSpec(this, _onMenuSelect);
67
+ _classPrivateFieldInitSpec(this, _menu, {
68
+ writable: true,
69
+ value: null
70
+ });
35
71
  /**
36
72
  * List of available select options.
37
73
  *
38
74
  * @type {Array}
39
75
  */
40
- this.items = [];
76
+ _classPrivateFieldInitSpec(this, _items, {
77
+ writable: true,
78
+ value: []
79
+ });
80
+ /**
81
+ * The reference to the BaseUI instance of the caption.
82
+ *
83
+ * @type {BaseUI}
84
+ */
85
+ _classPrivateFieldInitSpec(this, _caption, {
86
+ writable: true,
87
+ value: void 0
88
+ });
89
+ /**
90
+ * The reference to the table caption element.
91
+ *
92
+ * @type {HTMLTableCaptionElement}
93
+ */
94
+ _classPrivateFieldInitSpec(this, _captionElement, {
95
+ writable: true,
96
+ value: void 0
97
+ });
98
+ /**
99
+ * The reference to the BaseUI instance of the dropdown.
100
+ *
101
+ * @type {BaseUI}
102
+ */
103
+ _classPrivateFieldInitSpec(this, _dropdown, {
104
+ writable: true,
105
+ value: void 0
106
+ });
41
107
  this.registerHooks();
42
108
  }
43
109
 
110
+ /**
111
+ * Gets the instance of the Menu.
112
+ *
113
+ * @returns {Menu}
114
+ */
115
+ getMenu() {
116
+ return _classPrivateFieldGet(this, _menu);
117
+ }
118
+
44
119
  /**
45
120
  * Register all necessary hooks.
46
121
  */
47
122
  registerHooks() {
48
- this.addLocalHook('click', () => this.onClick());
123
+ this.addLocalHook('click', () => _classPrivateMethodGet(this, _onClick, _onClick2).call(this));
49
124
  }
50
125
 
51
126
  /**
@@ -54,9 +129,9 @@ class SelectUI extends _base.default {
54
129
  * @param {Array} items Array of objects with required keys `key` and `name`.
55
130
  */
56
131
  setItems(items) {
57
- this.items = this.translateNames(items);
58
- if (this.menu) {
59
- this.menu.setMenuItems(this.items);
132
+ _classPrivateFieldSet(this, _items, this.translateNames(items));
133
+ if (_classPrivateFieldGet(this, _menu)) {
134
+ _classPrivateFieldGet(this, _menu).setMenuItems(_classPrivateFieldGet(this, _items));
60
135
  }
61
136
  }
62
137
 
@@ -78,26 +153,25 @@ class SelectUI extends _base.default {
78
153
  */
79
154
  build() {
80
155
  super.build();
81
- this.menu = new _menu.Menu(this.hot, {
156
+ _classPrivateFieldSet(this, _menu, new _menu2.Menu(this.hot, {
82
157
  className: 'htSelectUI htFiltersConditionsMenu',
83
158
  keepInViewport: false,
84
159
  standalone: true,
85
160
  container: this.options.menuContainer
86
- });
87
- this.menu.setMenuItems(this.items);
88
- const caption = new _base.default(this.hot, {
161
+ }));
162
+ _classPrivateFieldGet(this, _menu).setMenuItems(_classPrivateFieldGet(this, _items));
163
+ const caption = new _base.BaseUI(this.hot, {
89
164
  className: 'htUISelectCaption'
90
165
  });
91
- const dropdown = new _base.default(this.hot, {
166
+ const dropdown = new _base.BaseUI(this.hot, {
92
167
  className: 'htUISelectDropdown'
93
168
  });
94
- const priv = privatePool.get(this);
95
- priv.caption = caption;
96
- priv.captionElement = caption.element;
97
- priv.dropdown = dropdown;
169
+ _classPrivateFieldSet(this, _caption, caption);
170
+ _classPrivateFieldSet(this, _captionElement, caption.element);
171
+ _classPrivateFieldSet(this, _dropdown, dropdown);
98
172
  (0, _array.arrayEach)([caption, dropdown], element => this._element.appendChild(element.element));
99
- this.menu.addLocalHook('select', command => this.onMenuSelect(command));
100
- this.menu.addLocalHook('afterClose', () => this.onMenuClosed());
173
+ _classPrivateFieldGet(this, _menu).addLocalHook('select', command => _classPrivateMethodGet(this, _onMenuSelect, _onMenuSelect2).call(this, command));
174
+ _classPrivateFieldGet(this, _menu).addLocalHook('afterClose', () => _classPrivateMethodGet(this, _onMenuClosed, _onMenuClosed2).call(this));
101
175
  this.update();
102
176
  }
103
177
 
@@ -112,9 +186,9 @@ class SelectUI extends _base.default {
112
186
  if (this.options.value) {
113
187
  conditionName = this.options.value.name;
114
188
  } else {
115
- conditionName = this.menu.hot.getTranslatedPhrase(C.FILTERS_CONDITIONS_NONE);
189
+ conditionName = _classPrivateFieldGet(this, _menu).hot.getTranslatedPhrase(C.FILTERS_CONDITIONS_NONE);
116
190
  }
117
- privatePool.get(this).captionElement.textContent = conditionName;
191
+ _classPrivateFieldGet(this, _captionElement).textContent = conditionName;
118
192
  super.update();
119
193
  }
120
194
 
@@ -123,14 +197,25 @@ class SelectUI extends _base.default {
123
197
  */
124
198
  openOptions() {
125
199
  const rect = this.element.getBoundingClientRect();
126
- if (this.menu) {
127
- this.menu.open();
128
- this.menu.setPosition({
200
+ if (_classPrivateFieldGet(this, _menu)) {
201
+ _classPrivateFieldGet(this, _menu).open();
202
+ _classPrivateFieldGet(this, _menu).setPosition({
129
203
  left: this.hot.isLtr() ? rect.left - 5 : rect.left - 31,
130
204
  top: rect.top - 1,
131
205
  width: rect.width,
132
206
  height: rect.height
133
207
  });
208
+ _classPrivateFieldGet(this, _menu).getNavigator().toFirstItem();
209
+ _classPrivateFieldGet(this, _menu).getKeyboardShortcutsCtrl().addCustomShortcuts([{
210
+ keys: [['Tab'], ['Shift', 'Tab']],
211
+ callback: event => {
212
+ this.closeOptions();
213
+ this.runLocalHooks('tabKeydown', event);
214
+ }
215
+ }, {
216
+ keys: [['Control/Meta', 'A']],
217
+ callback: () => false
218
+ }]);
134
219
  }
135
220
  }
136
221
 
@@ -138,63 +223,47 @@ class SelectUI extends _base.default {
138
223
  * Close select dropdown menu.
139
224
  */
140
225
  closeOptions() {
141
- if (this.menu) {
142
- this.menu.close();
226
+ if (_classPrivateFieldGet(this, _menu)) {
227
+ _classPrivateFieldGet(this, _menu).close();
143
228
  }
144
229
  }
145
230
 
146
231
  /**
147
- * On menu selected listener.
148
- *
149
- * @private
150
- * @param {object} command Selected item.
232
+ * Focus element.
151
233
  */
152
- onMenuSelect(command) {
153
- if (command.name !== _predefinedItems.SEPARATOR) {
154
- this.options.value = command;
155
- this.update();
156
- this.runLocalHooks('select', this.options.value);
234
+ focus() {
235
+ if (this.isBuilt()) {
236
+ this.element.focus();
157
237
  }
158
238
  }
159
-
160
- /**
161
- * On menu closed listener.
162
- *
163
- * @private
164
- */
165
- onMenuClosed() {
166
- this.runLocalHooks('afterClose');
167
- }
168
-
169
- /**
170
- * On element click listener.
171
- *
172
- * @private
173
- */
174
- onClick() {
175
- this.openOptions();
176
- }
177
-
178
239
  /**
179
240
  * Destroy instance.
180
241
  */
181
242
  destroy() {
182
- if (this.menu) {
183
- this.menu.destroy();
184
- this.menu = null;
243
+ if (_classPrivateFieldGet(this, _menu)) {
244
+ _classPrivateFieldGet(this, _menu).destroy();
245
+ _classPrivateFieldSet(this, _menu, null);
185
246
  }
186
- const {
187
- caption,
188
- dropdown
189
- } = privatePool.get(this);
190
- if (caption) {
191
- caption.destroy();
247
+ if (_classPrivateFieldGet(this, _caption)) {
248
+ _classPrivateFieldGet(this, _caption).destroy();
192
249
  }
193
- if (dropdown) {
194
- dropdown.destroy();
250
+ if (_classPrivateFieldGet(this, _dropdown)) {
251
+ _classPrivateFieldGet(this, _dropdown).destroy();
195
252
  }
196
253
  super.destroy();
197
254
  }
198
255
  }
199
- var _default = SelectUI;
200
- exports.default = _default;
256
+ exports.SelectUI = SelectUI;
257
+ function _onMenuSelect2(command) {
258
+ if (command.name !== _predefinedItems.SEPARATOR) {
259
+ this.options.value = command;
260
+ this.update();
261
+ this.runLocalHooks('select', this.options.value);
262
+ }
263
+ }
264
+ function _onMenuClosed2() {
265
+ this.runLocalHooks('afterClose');
266
+ }
267
+ function _onClick2() {
268
+ this.openOptions();
269
+ }