@wcstack/state 2.4.0 → 2.5.1
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/README.ja.md +91 -38
- package/README.md +90 -37
- package/dist/auto.min.js +1 -1
- package/dist/auto.min.js.map +1 -1
- package/dist/index.d.ts +44 -4
- package/dist/index.esm.js +3367 -2672
- package/dist/index.esm.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -492,15 +492,13 @@ interface IStateAddress {
|
|
|
492
492
|
readonly listIndex: IListIndex | null;
|
|
493
493
|
readonly parentAddress: IStateAddress | null;
|
|
494
494
|
}
|
|
495
|
-
interface
|
|
495
|
+
interface ITreePath {
|
|
496
496
|
readonly stateElement: IStateElement;
|
|
497
497
|
readonly pathInfo: IPathInfo;
|
|
498
|
-
readonly parentAbsolutePathInfo: IAbsolutePathInfo | null;
|
|
499
498
|
}
|
|
500
499
|
interface IAbsoluteStateAddress {
|
|
501
|
-
readonly absolutePathInfo:
|
|
500
|
+
readonly absolutePathInfo: ITreePath;
|
|
502
501
|
readonly listIndex: IListIndex | null;
|
|
503
|
-
readonly parentAbsoluteAddress: IAbsoluteStateAddress | null;
|
|
504
502
|
}
|
|
505
503
|
|
|
506
504
|
/**
|
|
@@ -1374,8 +1372,19 @@ declare class State extends HTMLElementBase implements IStateElement {
|
|
|
1374
1372
|
*
|
|
1375
1373
|
* `source === "internal"`(再帰の生成アクセサ・ボリュームのツリーアクセサ)は載せない。
|
|
1376
1374
|
* あれらは生やした機構が新しい世代で登録し直す(recursion/registry.ts の `_define`)。
|
|
1375
|
+
*
|
|
1376
|
+
* `bound` はバインドがいちどでも登録したか(#270)。作り直しで存在検査をやり直すのはバインドの
|
|
1377
|
+
* パスだけ — `$watch` / `$scan` の登録は前の世代の宣言の残骸でもあり、今の世代の宣言は
|
|
1378
|
+
* 作り直しの後で自分の検査をする(`processWatchDeclaration` / `registerScans`)。残骸まで
|
|
1379
|
+
* 検査すると、新しい宣言から外したパスを「存在しない」と誤って報告する。
|
|
1377
1380
|
*/
|
|
1378
1381
|
private _pathRegistrations;
|
|
1382
|
+
/**
|
|
1383
|
+
* 切断中の再セットで適用し直せなかったトップレベルのパス(#267)。再適用には rootNode が要るので、
|
|
1384
|
+
* 再接続で `reapplyStateBindings` に渡す。切断中に何度入れ直しても和集合で持つ
|
|
1385
|
+
* (前の世代にしか無いキーのバインドも失敗として報告させるため)。
|
|
1386
|
+
*/
|
|
1387
|
+
private _pendingReapplyPaths;
|
|
1379
1388
|
/**
|
|
1380
1389
|
* これまでのどの世代かで再帰レジストリが実体化した具体パス(`nodes.*.total` 等)の累積。
|
|
1381
1390
|
* 再セットのたびに `forgetGenerated` の戻り値を足し、`_rebuildPathInfo` の除外に使う。
|
|
@@ -1398,6 +1407,22 @@ declare class State extends HTMLElementBase implements IStateElement {
|
|
|
1398
1407
|
private _volumeGraftInfo;
|
|
1399
1408
|
/** ボリューム: スロット予約済み・接ぎ木進行中(ロード完了前の再接続の再入ガード) */
|
|
1400
1409
|
private _volumeInitializing;
|
|
1410
|
+
/**
|
|
1411
|
+
* ボリューム: 予約したマウントパス(#265)。枠を返した後に取り直すときもこれを使う —
|
|
1412
|
+
* `mount` 属性は書き換えられるので読み直さない。
|
|
1413
|
+
*/
|
|
1414
|
+
private _volumeMountPath;
|
|
1415
|
+
/**
|
|
1416
|
+
* ボリューム: いま枠を握っている rootNode(#265)。null は「握っていない」。解放はこの控えと
|
|
1417
|
+
* `_volumeMountPath` の組でだけ行う。切断時の `_rootNode`(先に null になる)から読み直すと、
|
|
1418
|
+
* 予約した組と一致する保証が無く、別の要素の枠を消しうる。
|
|
1419
|
+
*/
|
|
1420
|
+
private _volumeSlotRootNode;
|
|
1421
|
+
/**
|
|
1422
|
+
* ボリューム: ロード中に外れたときに枠を返した rootNode(#265)。同じ rootNode へ付け直した(並べ替えた)
|
|
1423
|
+
* ときだけ connectedCallback がその場で枠を取り直すための控え。付け直すたびに null へ戻す。
|
|
1424
|
+
*/
|
|
1425
|
+
private _volumeDetachedFrom;
|
|
1401
1426
|
/** v2 マウント(Phase 2): この bind-component 要素が構築したマウント記録 */
|
|
1402
1427
|
private _mountRecord;
|
|
1403
1428
|
private _bindableEventMap;
|
|
@@ -1485,6 +1510,14 @@ declare class State extends HTMLElementBase implements IStateElement {
|
|
|
1485
1510
|
private _initializeDCC;
|
|
1486
1511
|
private _callStateDisconnectedCallback;
|
|
1487
1512
|
connectedCallback(): Promise<void>;
|
|
1513
|
+
/** 控えている枠を返す(#265)。所有者の確認は `releaseVolumeSlot` が行う。 */
|
|
1514
|
+
private _releaseVolumeSlot;
|
|
1515
|
+
/**
|
|
1516
|
+
* 接ぎ木の直前に、`rootNode` のマウントの枠を取る(#265)。握っていれば真。ロード中・保留中に外れて
|
|
1517
|
+
* 返していれば取り直して真。外れている間に別の要素が同じマウントパスを取っていれば、横取りせずに
|
|
1518
|
+
* 報告して偽 — 黙らせると、作者に見えるのは「データが現れない」だけになる。
|
|
1519
|
+
*/
|
|
1520
|
+
private _acquireVolumeSlot;
|
|
1488
1521
|
disconnectedCallback(): void;
|
|
1489
1522
|
get initialized(): boolean;
|
|
1490
1523
|
get initializePromise(): Promise<void>;
|
|
@@ -1575,6 +1608,11 @@ declare class State extends HTMLElementBase implements IStateElement {
|
|
|
1575
1608
|
* 名指していても、新しい世代ではまだ実体化されていないため(recursion/generation.ts)。読みが
|
|
1576
1609
|
* 実体化したときに `defineTreeAccessor` が登録し直す。
|
|
1577
1610
|
*
|
|
1611
|
+
* 作り直すのはバインドが登録したパスだけ(`_pathRegistrations` の `bound`・#270)。`$watch` /
|
|
1612
|
+
* `$scan` だけの登録は飛ばす — 作り直しの後で今の世代の宣言が自分で登録し直し、そこで存在も
|
|
1613
|
+
* 検査される。ここで `_pathSet` に入れてしまうと、宣言側の `setPathInfo` が `_pathSet.has` で
|
|
1614
|
+
* 素通りし、両方の世代で宣言し続けたパスが新しい state で消えても報告されない。
|
|
1615
|
+
*
|
|
1578
1616
|
* 反復中に `setPathInfo` が台帳へ書き戻す(既存キーの上書きのみで新キーは増えない)ので、
|
|
1579
1617
|
* 誤解を避けるためスナップショットを取ってから回す。
|
|
1580
1618
|
*/
|
|
@@ -1590,6 +1628,8 @@ declare class State extends HTMLElementBase implements IStateElement {
|
|
|
1590
1628
|
get indexDependentGetterPaths(): ReadonlySet<string>;
|
|
1591
1629
|
addIndexDependentGetterPath(path: string): void;
|
|
1592
1630
|
setInitialState(state: Record<string, any>): void;
|
|
1631
|
+
/** 確立済みのバインドを今の世代で適用し直す(#267)。行のバインドは経路情報の台帳のパスから引く。 */
|
|
1632
|
+
private _reapplyBindings;
|
|
1593
1633
|
}
|
|
1594
1634
|
|
|
1595
1635
|
declare global {
|