@threestarsoftware/tssgrid 0.0.9 → 0.0.10
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 +6 -0
- package/package.json +1 -1
- package/src/tssgrid.css +9 -0
- package/src/tssgrid.js +1 -0
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,12 @@
|
|
|
3
3
|
TssGrid の各リリースの変更点。日付は JST。形式は [Keep a Changelog](https://keepachangelog.com/ja/1.1.0/) 準拠(ゆるめ)。
|
|
4
4
|
数値は特記なき限り**自社調べ**(headless Chrome / Windows 11・環境差あり)。
|
|
5
5
|
|
|
6
|
+
## [0.0.10] - 2026-07-15
|
|
7
|
+
|
|
8
|
+
### 修正
|
|
9
|
+
- **固定列(`frozenCols`)+dropdown/日付ピッカー/複数行セルで、そのセルが右にずれる不具合を修正**(コアCSS)— 2番目以降の固定列が `dropdown`(または `tg-haspicker`/`tg-multiline-cell`)だと、これら型の `position:relative` が固定列の `position:sticky` と**同じ詳細度で後勝ち**し、`sticky` が潰れて `_applyFrozen` の inline `left` が相対オフセットとして効き、body セルだけが固定ペイン幅ぶん右にずれていた(表示のみ・データは無影響だが実用不可)。複合セレクタ `td.tg-frozen.tg-dropdown` 等(詳細度を1段上げる)で `sticky` を維持するよう修正。行固定(`tr.tg-frozen-row > td`)は子結合子で詳細度が既に高く影響なし。tssgrid-kintone の実機で発覚→ヘッドレス最小再現。
|
|
10
|
+
- **開発用の幾何自己検査 `_geomDelta()` が仮想スクロール時に throw していたのを修正**(内部ヘルパ)— 窓外の未描画セルを `if(!cellEl)continue` でスキップし、仮想でも幾何検査を回せるようにした(実害は無いが回帰テストで使える)。
|
|
11
|
+
|
|
6
12
|
## [0.0.9] - 2026-07-13
|
|
7
13
|
|
|
8
14
|
### セキュリティ
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@threestarsoftware/tssgrid",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.10",
|
|
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.css
CHANGED
|
@@ -188,6 +188,15 @@
|
|
|
188
188
|
.tssgrid .tg-table td.tg-readonly.tg-haspicker { padding-right: 6px; } /* 読取専用は出さない */
|
|
189
189
|
.tssgrid .tg-table td.tg-readonly.tg-haspicker::after { display: none; }
|
|
190
190
|
|
|
191
|
+
/* 固定列(frozen)は dropdown/haspicker/multiline でも sticky を維持する。
|
|
192
|
+
これら型の position:relative は .tg-frozen と同じ詳細度(0,3,1)で後勝ち=固定列の
|
|
193
|
+
sticky を潰し、_applyFrozen の inline left が相対オフセットになってセルが右へずれる。
|
|
194
|
+
複合セレクタ(0,4,1)で sticky を勝たせて解消(sticky も ::after 絶対配置の基準になるのでキャレットはそのまま)。
|
|
195
|
+
※ frozen-row(tr.tg-frozen-row > td)は子結合子で詳細度(0,3,2)=既に relative に勝つため対処不要。 */
|
|
196
|
+
.tssgrid .tg-table td.tg-frozen.tg-dropdown,
|
|
197
|
+
.tssgrid .tg-table td.tg-frozen.tg-haspicker,
|
|
198
|
+
.tssgrid .tg-table td.tg-frozen.tg-multiline-cell { position: sticky; }
|
|
199
|
+
|
|
191
200
|
/* dropdown 編集用の <select>(editor と同じ位置に重ねる)。
|
|
192
201
|
ネイティブ矢印を消し、非編集セルの ▾ と同じ見た目のキャレットを描いて統一する。 */
|
|
193
202
|
.tssgrid .tg-select {
|
package/src/tssgrid.js
CHANGED
|
@@ -1471,6 +1471,7 @@
|
|
|
1471
1471
|
let max = 0, worst = null;
|
|
1472
1472
|
for (let r = 0; r < this.ROWS; r++) for (let c = 0; c < this.COLS; c++) {
|
|
1473
1473
|
if (this._merges && this._isCovered(r, c)) continue;
|
|
1474
|
+
if (!this.cellEl(r, c)) continue; // 仮想スクロール: 窓外の未描画セルは DOM 実測なし=スキップ(仮想でも _geomDelta を回せる)
|
|
1474
1475
|
const d = this._cellRect(r, c), m = this._cellRectModel(r, c);
|
|
1475
1476
|
const e = Math.max(Math.abs(d.left - m.left), Math.abs(d.top - m.top), Math.abs(d.width - m.width), Math.abs(d.height - m.height));
|
|
1476
1477
|
if (e > max) { max = e; worst = { r, c, dom: d, model: m }; }
|