@danielgindi/selectbox 2.0.10 → 2.0.11

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/lib/SelectBox.js CHANGED
@@ -111,6 +111,7 @@ const inputBackbufferCssProps = [
111
111
  * @property {function(item: DropList.ItemBase, itemEl: Element)} [unrenderNoResultsItem]
112
112
  * @property {boolean} [searchable=false] is it searchable?
113
113
  * @property {string} [noResultsText='No matching results'] text for no results (empty for none)
114
+ * @property {boolean} [autoSelectTextOnCheck=true] automatically select text in input when an item is checked (multi mode). Used to allow the user to quickly type multiple items.
114
115
  * @property {number} [filterThrottleWindow=300] throttle time (milliseconds) for filtering
115
116
  * @property {boolean} [filterOnEmptyTerm=false] call the filter function on empty search term too
116
117
  * @property {function(items: DropList.ItemBase[], term: string):(DropList.ItemBase[]|null)} [filterFn]
@@ -138,6 +139,7 @@ const defaultOptions = {
138
139
  multiPlaceholderFormatter: null,
139
140
  searchable: true,
140
141
  noResultsText: 'No matching results',
142
+ autoSelectTextOnCheck: true,
141
143
  filterThrottleWindow: 300,
142
144
  filterOnEmptyTerm: false,
143
145
  labelProp: 'label',
@@ -232,6 +234,7 @@ class SelectBox {
232
234
  multiPlaceholderFormatter: o.multiPlaceholderFormatter,
233
235
  searchable: o.searchable,
234
236
  noResultsText: o.noResultsText,
237
+ autoSelectTextOnCheck: o.autoSelectTextOnCheck,
235
238
 
236
239
  labelProp: o.labelProp,
237
240
  valueProp: o.valueProp,
@@ -1006,6 +1009,22 @@ class SelectBox {
1006
1009
  return this._p.noResultsText;
1007
1010
  }
1008
1011
 
1012
+ /**
1013
+ * @param {boolean} autoSelectTextOnCheck
1014
+ * @returns {SelectBox}
1015
+ */
1016
+ setAutoSelectTextOnCheck(autoSelectTextOnCheck) {
1017
+ this._p.autoSelectTextOnCheck = autoSelectTextOnCheck;
1018
+ return this;
1019
+ }
1020
+
1021
+ /**
1022
+ * @returns {boolean}
1023
+ */
1024
+ getAutoSelectTextOnCheck() {
1025
+ return this._p.autoSelectTextOnCheck;
1026
+ }
1027
+
1009
1028
  /**
1010
1029
  * @param {number} window
1011
1030
  * @returns {SelectBox}
@@ -1856,6 +1875,11 @@ class SelectBox {
1856
1875
  case 'check': {
1857
1876
  if (!p.multi) return;
1858
1877
 
1878
+ if (p.autoSelectTextOnCheck && p.input && document.activeElement === p.input) {
1879
+ // Select the text in the input, without causing any focus changes
1880
+ p.input.setSelectionRange(0, p.input.value.length);
1881
+ }
1882
+
1859
1883
  const item = /**@type DropList.Item*/event.item;
1860
1884
  const value = event.value;
1861
1885
 
@@ -1936,6 +1960,11 @@ class SelectBox {
1936
1960
  case 'groupcheck': {
1937
1961
  if (!p.multi) return;
1938
1962
 
1963
+ if (p.autoSelectTextOnCheck && p.input && document.activeElement === p.input) {
1964
+ // Select the text in the input, without causing any focus changes
1965
+ p.input.setSelectionRange(0, p.input.value.length);
1966
+ }
1967
+
1939
1968
  if (event.affectedCount) {
1940
1969
  this._scheduleSync(p.sortSelectedItems ? 'full' : 'render_base');
1941
1970
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@danielgindi/selectbox",
3
- "version": "2.0.10",
3
+ "version": "2.0.11",
4
4
  "description": "A collection of dom utilities. So you can work natively with the dom without dom frameworks.",
5
5
  "main": "dist/lib.cjs.min.js",
6
6
  "module": "lib/index.js",
@@ -30,29 +30,29 @@
30
30
  "homepage": "https://github.com/danielgindi/selectbox#readme",
31
31
  "license": "MIT",
32
32
  "devDependencies": {
33
- "@babel/core": "^7.26.9",
34
- "@babel/preset-env": "^7.26.9",
35
- "@babel/runtime": "^7.26.9",
36
- "@eslint/eslintrc": "^3.2.0",
37
- "@eslint/js": "^9.20.0",
38
- "@rollup/plugin-babel": "^6.0.4",
39
- "@rollup/plugin-commonjs": "^28.0.2",
40
- "@rollup/plugin-node-resolve": "^16.0.0",
33
+ "@babel/core": "^7.28.4",
34
+ "@babel/preset-env": "^7.28.3",
35
+ "@babel/runtime": "^7.28.4",
36
+ "@eslint/eslintrc": "^3.3.1",
37
+ "@eslint/js": "^9.38.0",
38
+ "@rollup/plugin-babel": "^6.1.0",
39
+ "@rollup/plugin-commonjs": "^28.0.8",
40
+ "@rollup/plugin-node-resolve": "^16.0.3",
41
41
  "@rollup/plugin-terser": "^0.4.4",
42
- "core-js": "^3.40.0",
43
- "eslint": "^9.20.1",
42
+ "core-js": "^3.46.0",
43
+ "eslint": "^9.38.0",
44
44
  "eslint-formatter-codeframe": "^7.32.1",
45
45
  "eslint-plugin-vue": "^9.32.0",
46
- "fs-extra": "^11.3.0",
47
- "globals": "^15.15.0",
46
+ "fs-extra": "^11.3.2",
47
+ "globals": "^16.4.0",
48
48
  "husky": "^9.1.7",
49
49
  "pinst": "^3.0.0",
50
- "rollup": "^4.34.8",
51
- "sass": "^1.85.0"
50
+ "rollup": "^4.52.5",
51
+ "sass": "^1.93.2"
52
52
  },
53
53
  "dependencies": {
54
54
  "@danielgindi/dom-utils": "^1.0.11",
55
- "@danielgindi/virtual-list-helper": "^1.0.13",
55
+ "@danielgindi/virtual-list-helper": "^1.0.15",
56
56
  "fast-deep-equal": "^3.1.3",
57
57
  "keycode-js": "^3.1.0",
58
58
  "mitt": "^3.0.1"
package/vue/DropList.vue CHANGED
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <span v-show="false" />
2
+ <span v-show="false" />
3
3
  </template>
4
4
 
5
5
  <script>