@threestarsoftware/tssgrid 0.1.15 → 0.1.16
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/CHANGELOG.md +5 -0
- package/package.json +1 -1
- package/src/tssgrid.js +12 -0
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,11 @@
|
|
|
3
3
|
TssGrid の各リリースの変更点。日付は JST。形式は [Keep a Changelog](https://keepachangelog.com/ja/1.1.0/) 準拠(ゆるめ)。
|
|
4
4
|
数値は特記なき限り**自社調べ**(headless Chrome / Windows 11・環境差あり)。
|
|
5
5
|
|
|
6
|
+
## [0.1.16] - 2026-10-04
|
|
7
|
+
|
|
8
|
+
### 修正
|
|
9
|
+
- **ドロップダウン(`type:'dropdown'`)で「未選択」のまま矢印キーを押すと先頭オプションが選ばれてしまう不具合を修正**(コア)— ネイティブ `<select>` はフォーカス中(リストが閉じていても)`↑↓←→` でオプションが変わる仕様で、特に「未選択(空)を選ぶと値が変わらず `change` が出ない=エディタへフォーカスが戻らない」ため `<select>` にフォーカスが残り、次の矢印が `<select>` に吸われて **空→先頭** に変化+即確定していた。`<select>` の keydown で `←→↑↓` を横取りし、**現在値を確定して隣セルへ移動(Excel 流の nav)**に。リスト展開中は OS ポップアップがキーを奪うのでこのハンドラは発火しない=閉じてフォーカスだけ残った時の誤爆のみを防ぐ。`Enter`/`Tab`/`Esc` は不変。
|
|
10
|
+
|
|
6
11
|
## [0.1.15] - 2026-09-30
|
|
7
12
|
|
|
8
13
|
### 追加
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@threestarsoftware/tssgrid",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.16",
|
|
4
4
|
"description": "軽量・ノービルド・日本語IME堅牢な編集グリッド(vanilla JS / 依存なし / MIT)。Excel ライクな入力画面を <script> タグ1本で。",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "ThreeStarSoftware (https://www.threestarsoftware.co.jp/)",
|
package/src/tssgrid.js
CHANGED
|
@@ -3011,6 +3011,18 @@
|
|
|
3011
3011
|
if (e.key === 'Enter') { e.preventDefault(); this._commitSelect(); this._advance('enter', e.shiftKey); }
|
|
3012
3012
|
else if (e.key === 'Tab') { e.preventDefault(); this._commitSelect(); this._advance('tab', e.shiftKey); }
|
|
3013
3013
|
else if (e.key === 'Escape') { e.preventDefault(); this._cancelSelect(); }
|
|
3014
|
+
else if (e.key === 'ArrowUp' || e.key === 'ArrowDown' || e.key === 'ArrowLeft' || e.key === 'ArrowRight') {
|
|
3015
|
+
// ←→↑↓ はネイティブ <select> の「オプション変更」を止め、現在値を確定して隣セルへ移動(Excel 流の nav)。
|
|
3016
|
+
// これが無いと、未選択(空)のまま矢印を押すと select が選択肢を 空→先頭 に変え change が即確定=「矢印で先頭が選ばれる」不具合になる。
|
|
3017
|
+
// リストが開いている時は OS ポップアップがキーを奪いこのハンドラは発火しない=閉じて focus だけ残った時の誤爆のみ防ぐ。
|
|
3018
|
+
e.preventDefault();
|
|
3019
|
+
this._commitSelect();
|
|
3020
|
+
const r = this.active.r, c = this.active.c;
|
|
3021
|
+
if (e.key === 'ArrowUp') this.setActive(this._stepRowM(r, c, -1), c);
|
|
3022
|
+
else if (e.key === 'ArrowDown') this.setActive(this._stepRowM(r, c, 1), c);
|
|
3023
|
+
else if (e.key === 'ArrowLeft') this.setActive(r, this._stepColM(r, c, -1));
|
|
3024
|
+
else this.setActive(r, this._stepColM(r, c, 1));
|
|
3025
|
+
}
|
|
3014
3026
|
});
|
|
3015
3027
|
this.select.addEventListener('blur', () => { if (this.mode === 'edit' && this.select.style.display !== 'none') this._commitSelect(); });
|
|
3016
3028
|
// 選択肢を選んだら即確定(移動はしない=Excel と同様にそのセルに留まる)。
|