haori 0.59.3 → 0.59.5

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/dist/index.d.ts CHANGED
@@ -1402,6 +1402,22 @@ declare class ElementFragment extends Fragment {
1402
1402
  * @return 除去のPromise
1403
1403
  */
1404
1404
  remove(unmount?: boolean): Promise<void>;
1405
+ /**
1406
+ * 監視が観測した取り外しを、内部の木を保ったまま反映します。
1407
+ *
1408
+ * 外部のスクリプトによる移動は「取り外し → 追加」として観測されます。木を捨てると、
1409
+ * 付け直しで描画済みの DOM から作り直すことになり、描いた結果を宣言として読み込み
1410
+ * ます(仕様「監視対象」の「走査した要素を外部のスクリプトが DOM の中で移したり、
1411
+ * 外して後で戻したりしても、宣言は保ちます」)。付け直しでは `Core.addNode()` が
1412
+ * この断片をそのまま木へつなぎ直して走査します。
1413
+ *
1414
+ * DOM は既に動いているため、DOM からの除去は行いません(同じ親の中で順を変えた
1415
+ * 場合、ノードはまだ親の下にあります)。外部ライブラリ連携は、DOM から外れる要素と
1416
+ * 同じく破棄します。
1417
+ *
1418
+ * @returns 戻り値はありません。
1419
+ */
1420
+ detachObserved(): void;
1405
1421
  /**
1406
1422
  * `data-external` の要素を、内部のフラグメント木を保ったまま親から外します。
1407
1423
  *
@@ -1409,7 +1425,7 @@ declare class ElementFragment extends Fragment {
1409
1425
  * 外部ライブラリが配下に生成した DOM ごと取り込んでフォーム値の収集に載せます
1410
1426
  * (仕様「`data-external`」の「付け直した場合も、配下は走査した時点の構成のまま
1411
1427
  * 扱う」、課題 #42)。子の断片・属性・キャッシュ登録は保ち、付け直しでは
1412
- * `Core.addNode()` がこの断片をそのまま挿入して走査します。バインドデータの
1428
+ * `Core.addNode()` がこの断片をそのまま木へつなぎ直して走査します。バインドデータの
1413
1429
  * キャッシュは、付け直しで親を設定するとき(`setParent()`)に部分木ごと捨てられる
1414
1430
  * ため、ここでは捨てません(捨てる行を外しても結果が変わらないことを確認済み)。
1415
1431
  *
@@ -2405,6 +2421,22 @@ declare class ElementFragment extends Fragment {
2405
2421
  * @returns 挿入位置。解決できない場合はnull
2406
2422
  */
2407
2423
  private resolveInsertionPointFromDom;
2424
+ /**
2425
+ * 子ノードを HTML で置き換えます(`{{{ }}}` の描画)。
2426
+ *
2427
+ * 外す子ノードと挿入した子ノードは、監視の取り込みの対象外へ登録します。取り込むと、
2428
+ * 式を持つテキストの断片が取り外しとして木から外れ、挿入した HTML が新しい子として
2429
+ * 走査されます。以降のバインドの更新で式が評価されなくなり、挿入した HTML の中まで
2430
+ * 評価されます(仕様「`{{{ expression }}}`」の「バインドの更新のたびに評価し直し」と
2431
+ * 「挿入した HTML は走査の対象外です」)。
2432
+ *
2433
+ * 描画キューの中から呼びます。登録は、監視が書き込みを処理した後に、戻り値の関数で
2434
+ * 解除します。
2435
+ *
2436
+ * @param html 挿入する HTML
2437
+ * @returns 監視の除外の登録を解除する関数
2438
+ */
2439
+ replaceChildNodesWithHtml(html: string): () => void;
2408
2440
  /**
2409
2441
  * 子ノードを参照ノードの前に挿入します。
2410
2442
  * 参照ノードがnullの場合、親の最後に追加されます。
@@ -2414,6 +2446,28 @@ declare class ElementFragment extends Fragment {
2414
2446
  * @return 挿入のPromise
2415
2447
  */
2416
2448
  insertBefore(newChild: Fragment, referenceChild: Fragment | null, referenceNodeOverride?: Node | null): Promise<void>;
2449
+ /**
2450
+ * 監視が観測した追加を、DOM を動かさずに内部の木へ反映します。
2451
+ *
2452
+ * ノードは既に DOM 上の追加された位置にあります。DOM から外して付け直すと、開いた
2453
+ * popover・`showModal()` で開いた `<dialog>` のモーダル状態・フォーカスが失われます
2454
+ * (仕様「監視対象」の「外部のスクリプトが DOM に追加したノードは、追加された位置の
2455
+ * まま取り込み、DOM から外して付け直すことはしません」)。
2456
+ *
2457
+ * @param newChild 追加された子ノード
2458
+ * @param referenceChild 追加された位置の次の子ノード(末尾の場合は null)
2459
+ * @returns 戻り値はありません。
2460
+ */
2461
+ attachObserved(newChild: Fragment, referenceChild: Fragment | null): void;
2462
+ /**
2463
+ * 子ノードを内部の木の参照ノードの前へつなぎます。DOM は操作しません。
2464
+ *
2465
+ * @param newChild 新しい子ノード
2466
+ * @param referenceChild 参照ノード(末尾の場合は null)
2467
+ * @param referenceNodeOverride DOM で挿入する位置の次のノード(省略時は参照ノード)
2468
+ * @returns DOM で挿入する位置の次のノード
2469
+ */
2470
+ private linkChild;
2417
2471
  /**
2418
2472
  * 指定した参照ノードの後に子ノードを挿入します。
2419
2473
  *
@@ -4826,7 +4880,7 @@ declare interface ValueChangeOrigin {
4826
4880
  * リリース時に `package.json` と揃えて更新します(`tests/version.test.ts` が
4827
4881
  * 一致を検査します)。
4828
4882
  */
4829
- export declare const version = "0.59.3";
4883
+ export declare const version = "0.59.5";
4830
4884
 
4831
4885
  /**
4832
4886
  * すべてのレンダリングタスク(追従投入分を含む)の完了を待ちます。
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "haori",
3
- "version": "0.59.3",
3
+ "version": "0.59.5",
4
4
  "description": "A lightweight HTML-first UI engine powered by declarative data bindings and expressions.",
5
5
  "scripts": {
6
6
  "dev": "vite",