haori 0.60.0 → 0.61.0
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 +1 -1
- package/README.md +1 -1
- package/dist/haori.cjs.js +23 -23
- package/dist/haori.es.js +1625 -1451
- package/dist/haori.iife.js +23 -23
- package/dist/index.d.ts +61 -4
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -394,6 +394,8 @@ export declare class Core {
|
|
|
394
394
|
* @param next その経路の更新後の値(存在しない場合は `ABSENT_PATH`)
|
|
395
395
|
* @param origin この更新の由来
|
|
396
396
|
* @param path その経路(ルートは空文字)
|
|
397
|
+
* @param keyArgs 経路の形ごとの `data-each-key` の照合結果(この更新の中で共有する。
|
|
398
|
+
* `Core.resolveEachKeyArg()`)
|
|
397
399
|
* @returns 採用した値。その経路を持たせない場合は `ABSENT_PATH`
|
|
398
400
|
*/
|
|
399
401
|
private static mergePathAuthority;
|
|
@@ -410,6 +412,7 @@ export declare class Core {
|
|
|
410
412
|
* @param previous 更新前の値
|
|
411
413
|
* @param next 更新後の値
|
|
412
414
|
* @param path その経路
|
|
415
|
+
* @param keyArgs 経路の形ごとの `data-each-key` の照合結果(`Core.resolveEachKeyArg()`)
|
|
413
416
|
* @returns 要素ごとのリストキー。要素へ降りない場合は null
|
|
414
417
|
*/
|
|
415
418
|
private static resolveArrayPairing;
|
|
@@ -422,11 +425,26 @@ export declare class Core {
|
|
|
422
425
|
* (`Core.resolveEachDeclarationPath()`)。経路の側は配列要素の区間(`[キー]`)を
|
|
423
426
|
* 取り除いた形にします。宣言は「どの階層の配列か」しか表さないためです。
|
|
424
427
|
*
|
|
428
|
+
* 照合の結果は、1 回の更新の中で経路の形ごとに使い回します(仕様
|
|
429
|
+
* 「`Core.setBindingData(element, data, options?)`」)。行ごとの入れ子の配列
|
|
430
|
+
* (`rows[7].items`)は形が同じなので、行の数だけ照合し直すと、時間が行数の
|
|
431
|
+
* 2 乗で増えます。照合は同期的に終わるため、更新の途中で宣言が変わることは
|
|
432
|
+
* ありません。
|
|
433
|
+
*
|
|
425
434
|
* @param fragment 対象のフラグメント
|
|
426
435
|
* @param path 配列の経路(`rows[7].items` のような形)
|
|
436
|
+
* @param keyArgs 経路の形ごとの照合結果。この更新の中で共有する
|
|
427
437
|
* @returns リストキーに使うプロパティ名。宣言が無ければ null
|
|
428
438
|
*/
|
|
429
439
|
private static resolveEachKeyArg;
|
|
440
|
+
/**
|
|
441
|
+
* 経路の形に対応する `data-each` の宣言を探し、その `data-each-key` を返します。
|
|
442
|
+
*
|
|
443
|
+
* @param root 起点の要素(経路の基準)
|
|
444
|
+
* @param shapePath 要素の区間を落とした配列の経路(`rows.items` のような形)
|
|
445
|
+
* @returns リストキーに使うプロパティ名。宣言が無ければ null
|
|
446
|
+
*/
|
|
447
|
+
private static findEachKeyArg;
|
|
430
448
|
/**
|
|
431
449
|
* `data-each` の宣言を、起点の要素から見た絶対経路へ直します。
|
|
432
450
|
*
|
|
@@ -565,9 +583,10 @@ export declare class Core {
|
|
|
565
583
|
* フラグメントとその子要素を評価します。
|
|
566
584
|
*
|
|
567
585
|
* @param fragment 対象フラグメント
|
|
586
|
+
* @param skipFragments 評価しない子孫(要素は配下ごと、テキストはそのものを省く)
|
|
568
587
|
* @return Promise (DOM操作が完了したときに解決される)
|
|
569
588
|
*/
|
|
570
|
-
static evaluateAll(fragment: ElementFragment, skipFragments?: ReadonlySet<
|
|
589
|
+
static evaluateAll(fragment: ElementFragment, skipFragments?: ReadonlySet<Fragment>): Promise<void>;
|
|
571
590
|
/**
|
|
572
591
|
* data-derive / data-derive-name を評価し、子孫要素向けの派生値を更新します。
|
|
573
592
|
*
|
|
@@ -668,9 +687,11 @@ export declare class Core {
|
|
|
668
687
|
* それ以外の場合は表示します。
|
|
669
688
|
*
|
|
670
689
|
* @param fragment 対象フラグメント
|
|
690
|
+
* @param skipFragments 表示のままの分岐で評価しない子孫(`evaluateAll()` と同じ)。
|
|
691
|
+
* 表示へ切り替わった分岐では使わない(非表示のあいだ評価していないため)
|
|
671
692
|
* @return Promise (DOM操作が完了したときに解決される)
|
|
672
693
|
*/
|
|
673
|
-
static evaluateIf(fragment: ElementFragment): Promise<void>;
|
|
694
|
+
static evaluateIf(fragment: ElementFragment, skipFragments?: ReadonlySet<Fragment>): Promise<void>;
|
|
674
695
|
/**
|
|
675
696
|
* data-if 表示時に data-load-* 手続きを発火します。
|
|
676
697
|
*
|
|
@@ -788,12 +809,48 @@ export declare class Core {
|
|
|
788
809
|
* 差分更新が不要な `data-each` の既存行について、子孫の再評価だけを行います。
|
|
789
810
|
*
|
|
790
811
|
* 行スコープの値だけで描画が決まるテンプレートでは、行の要素データが同値である
|
|
791
|
-
*
|
|
812
|
+
* 限り描画結果も変わらないため何もしません。行の外を参照するテンプレートでも、
|
|
813
|
+
* 行スコープの名前だけを参照する部分は評価しません(`collectRowLocalFragments()`)。
|
|
792
814
|
*
|
|
793
815
|
* @param fragment `data-each` コンテナのフラグメント
|
|
794
816
|
* @returns 再評価完了の Promise
|
|
795
817
|
*/
|
|
796
818
|
private static reevaluateEachRows;
|
|
819
|
+
/**
|
|
820
|
+
* 行の要素データが同値のときに評価を省ける、行の中の部分を集めます。
|
|
821
|
+
*
|
|
822
|
+
* 行スコープの名前(`data-each-arg` と `data-each-index`)だけを参照する要素
|
|
823
|
+
* (配下を含む)とテキストは、要素データが同値なら評価しても結果が変わりません。
|
|
824
|
+
* テンプレート全体が行スコープだけで描画できる場合(`isRowLocalEachTemplate()`)
|
|
825
|
+
* の判定を、要素とテキストの単位へ細かくしたものです。
|
|
826
|
+
*
|
|
827
|
+
* 降りるのは、名前を差し替えない要素(`keepsRowScopeNames()`)の配下だけです。
|
|
828
|
+
* それ以外の `data-*` を持つ要素(`data-bind`・`data-derive`・`data-each`・
|
|
829
|
+
* 手続きなど)は、配下へ公開する名前を変え得るため、その配下は省きません。
|
|
830
|
+
*
|
|
831
|
+
* @param container `data-each` コンテナのフラグメント
|
|
832
|
+
* @param row 行のフラグメント
|
|
833
|
+
* @returns 評価を省ける要素とテキストの集合
|
|
834
|
+
*/
|
|
835
|
+
private static collectRowLocalFragments;
|
|
836
|
+
/**
|
|
837
|
+
* 要素が、配下へ公開する名前を差し替えないかどうかを返します。
|
|
838
|
+
*
|
|
839
|
+
* `data-*` として `data-if` と `data-row`(差分更新が行の根へ付けるリストキー)
|
|
840
|
+
* だけを持つ要素が該当します。
|
|
841
|
+
*
|
|
842
|
+
* @param fragment 判定対象フラグメント
|
|
843
|
+
* @returns 名前を差し替えないなら true
|
|
844
|
+
*/
|
|
845
|
+
private static keepsRowScopeNames;
|
|
846
|
+
/**
|
|
847
|
+
* `data-each` が行スコープへ公開する名前を返します。
|
|
848
|
+
*
|
|
849
|
+
* @param fragment `data-each` コンテナのフラグメント
|
|
850
|
+
* @returns 名前の集合。`data-each-arg` が無い(要素データのキーが行スコープへ
|
|
851
|
+
* 直接展開され、名前を静的に決められない)場合は null
|
|
852
|
+
*/
|
|
853
|
+
private static getEachScopeNames;
|
|
797
854
|
/**
|
|
798
855
|
* data-each 属性値を仕様に従って配列へ正規化します。
|
|
799
856
|
*
|
|
@@ -4923,7 +4980,7 @@ declare interface ValueChangeOrigin {
|
|
|
4923
4980
|
* リリース時に `package.json` と揃えて更新します(`tests/version.test.ts` が
|
|
4924
4981
|
* 一致を検査します)。
|
|
4925
4982
|
*/
|
|
4926
|
-
export declare const version = "0.
|
|
4983
|
+
export declare const version = "0.61.0";
|
|
4927
4984
|
|
|
4928
4985
|
/**
|
|
4929
4986
|
* すべてのレンダリングタスク(追従投入分を含む)の完了を待ちます。
|