haori 0.6.0 → 0.6.2

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.
Files changed (48) hide show
  1. package/README.ja.md +3 -1
  2. package/README.md +3 -1
  3. package/dist/haori.cjs.js +13 -13
  4. package/dist/haori.cjs.js.map +1 -1
  5. package/dist/haori.es.js +2603 -1778
  6. package/dist/haori.es.js.map +1 -1
  7. package/dist/haori.iife.js +13 -13
  8. package/dist/haori.iife.js.map +1 -1
  9. package/dist/index.d.ts +242 -1
  10. package/dist/package.json +1 -1
  11. package/dist/src/core.d.ts +158 -1
  12. package/dist/src/core.d.ts.map +1 -1
  13. package/dist/src/core.js +647 -79
  14. package/dist/src/core.js.map +1 -1
  15. package/dist/src/event.d.ts +2 -2
  16. package/dist/src/event.js +2 -2
  17. package/dist/src/event_dispatcher.d.ts.map +1 -1
  18. package/dist/src/event_dispatcher.js.map +1 -1
  19. package/dist/src/expression.d.ts +49 -3
  20. package/dist/src/expression.d.ts.map +1 -1
  21. package/dist/src/expression.js +148 -33
  22. package/dist/src/expression.js.map +1 -1
  23. package/dist/src/form.d.ts.map +1 -1
  24. package/dist/src/form.js +2 -1
  25. package/dist/src/form.js.map +1 -1
  26. package/dist/src/fragment.d.ts +84 -0
  27. package/dist/src/fragment.d.ts.map +1 -1
  28. package/dist/src/fragment.js +490 -75
  29. package/dist/src/fragment.js.map +1 -1
  30. package/dist/src/observer.d.ts.map +1 -1
  31. package/dist/src/observer.js +0 -7
  32. package/dist/src/observer.js.map +1 -1
  33. package/dist/src/procedure.d.ts.map +1 -1
  34. package/dist/src/procedure.js +1 -3
  35. package/dist/src/procedure.js.map +1 -1
  36. package/dist/tests/core.test.js +288 -4
  37. package/dist/tests/core.test.js.map +1 -1
  38. package/dist/tests/data-derive.test.js +159 -0
  39. package/dist/tests/data-derive.test.js.map +1 -1
  40. package/dist/tests/evaluation-profile.test.d.ts +2 -0
  41. package/dist/tests/evaluation-profile.test.d.ts.map +1 -0
  42. package/dist/tests/evaluation-profile.test.js +92 -0
  43. package/dist/tests/evaluation-profile.test.js.map +1 -0
  44. package/dist/tests/expression.test.js +35 -1
  45. package/dist/tests/expression.test.js.map +1 -1
  46. package/dist/tests/fragment.test.js +31 -0
  47. package/dist/tests/fragment.test.js.map +1 -1
  48. package/package.json +1 -1
package/dist/index.d.ts CHANGED
@@ -64,6 +64,8 @@ export declare class Core {
64
64
  private static readonly REACTIVE_FETCH_STATES;
65
65
  /** data-import の自動再評価状態 */
66
66
  private static readonly REACTIVE_IMPORT_STATES;
67
+ /** data-derive subtree skip の開発用プロファイル */
68
+ private static readonly DERIVE_SUBTREE_PROFILES;
67
69
  /**
68
70
  * 遅延属性かどうか(完全名で判定)を判定します。
69
71
  *
@@ -159,6 +161,43 @@ export declare class Core {
159
161
  * @returns Promise (スキャンが完了したときに解決される)
160
162
  */
161
163
  static scan(element: HTMLElement): Promise<void>;
164
+ /**
165
+ * 新規 each 行を局所初期化します。
166
+ * 既存 scan の属性順序を保ちつつ、Fragment 木を直接たどります。
167
+ *
168
+ * @param fragment 新規挿入された行フラグメント
169
+ * @returns 初期化完了の Promise
170
+ */
171
+ private static initializeFreshEachRow;
172
+ /**
173
+ * ElementFragment とその子孫を初期化します。
174
+ *
175
+ * @param fragment 対象フラグメント
176
+ * @param stopAtEach true の場合、data-each 要素では通常再帰を止める
177
+ * @returns 初期化完了の Promise
178
+ */
179
+ private static initializeElementFragment;
180
+ /**
181
+ * 要素初期化時の mounted 状態を同期します。
182
+ *
183
+ * @param fragment 対象フラグメント
184
+ */
185
+ private static syncMountedState;
186
+ /**
187
+ * scan と fresh clone 初期化で共有する属性初期化を行います。
188
+ *
189
+ * @param fragment 対象フラグメント
190
+ * @returns 属性初期化完了の Promise
191
+ */
192
+ private static initializeElementAttributes;
193
+ /**
194
+ * 子孫初期化をスキップすべきかどうかを返します。
195
+ *
196
+ * @param fragment 対象フラグメント
197
+ * @param stopAtEach true の場合、data-each 要素で通常再帰を止める
198
+ * @returns 子孫初期化をスキップするなら true
199
+ */
200
+ private static shouldSkipChildInitialization;
162
201
  /**
163
202
  * エレメントに属性を設定します。
164
203
  * 属性固有の処理も行います。
@@ -236,7 +275,7 @@ export declare class Core {
236
275
  * @param deriveName 上書きする導出名
237
276
  * @returns Promise (評価完了時に解決)
238
277
  */
239
- static evaluateDerive(fragment: ElementFragment, deriveExpression?: string | null, deriveName?: string | null): Promise<void>;
278
+ static evaluateDerive(fragment: ElementFragment, deriveExpression?: string | null, deriveName?: string | null): Promise<boolean>;
240
279
  /**
241
280
  * テキストフラグメントを評価します。
242
281
  *
@@ -266,6 +305,101 @@ export declare class Core {
266
305
  * @returns 配列。無効な場合は null
267
306
  */
268
307
  private static resolveEachItems;
308
+ /**
309
+ * nested data-each の入力が同値で、要素自身に他の動的要素が無い場合は
310
+ * evaluateAll の子走査を省略できるかどうかを返します。
311
+ *
312
+ * @param fragment 判定対象フラグメント
313
+ * @returns 省略可能なら true
314
+ */
315
+ private static canSkipUnchangedNestedEach;
316
+ /**
317
+ * data-derive subtree の入力が同値で、保守条件も満たす場合に
318
+ * 子走査を省略できるかどうかを返します。
319
+ *
320
+ * @param fragment 判定対象フラグメント
321
+ * @returns 省略可能なら true
322
+ */
323
+ private static canSkipStableDerivedSubtree;
324
+ /**
325
+ * data-derive subtree skip の初期 PoC で扱わない子孫要素を含むかを返します。
326
+ *
327
+ * @param fragment 判定対象フラグメント
328
+ * @returns 含むなら true
329
+ */
330
+ private static hasDisallowedDerivedSubtreeDescendant;
331
+ /**
332
+ * data-derive host が子孫要素へ公開している binding の署名を返します。
333
+ *
334
+ * @param fragment 対象フラグメント
335
+ * @returns binding 署名
336
+ */
337
+ private static createDescendantBindingSignature;
338
+ /**
339
+ * data-derive 実行前の入力署名を返します。
340
+ *
341
+ * @param fragment 対象フラグメント
342
+ * @param deriveExpression 導出式
343
+ * @param deriveName 導出名
344
+ * @returns 入力署名。導出が無効なら null
345
+ */
346
+ private static createDeriveInputSignature;
347
+ /**
348
+ * data-derive subtree skip 用の署名を現在状態で更新します。
349
+ *
350
+ * @param fragment 対象フラグメント
351
+ */
352
+ private static refreshDerivedSubtreeSignature;
353
+ /**
354
+ * data-derive subtree skip のプロファイルを取得または初期化します。
355
+ *
356
+ * @param fragment 対象フラグメント
357
+ * @returns プロファイル
358
+ */
359
+ private static getOrCreateDerivedSubtreeProfile;
360
+ /**
361
+ * data-derive subtree host の識別子を作成します。
362
+ *
363
+ * @param fragment 対象フラグメント
364
+ * @returns host 識別子
365
+ */
366
+ private static createDerivedSubtreeHostId;
367
+ /**
368
+ * data-derive subtree の署名計算回数を記録します。
369
+ *
370
+ * @param fragment 対象フラグメント
371
+ * @param source 計算元
372
+ */
373
+ private static recordDerivedSubtreeSignatureComputation;
374
+ /**
375
+ * data-derive subtree の現在プロファイルをログ出力します。
376
+ *
377
+ * @param fragment 対象フラグメント
378
+ * @param reason ログ理由
379
+ */
380
+ private static logDerivedSubtreeProfileSnapshot;
381
+ /**
382
+ * data-each 以外の動的要素状態を持つかどうかを返します。
383
+ *
384
+ * @param fragment 判定対象フラグメント
385
+ * @returns 該当するなら true
386
+ */
387
+ private static hasNonEachDynamicElementState;
388
+ /**
389
+ * fresh clone 初期化を subtree ごと省略できるかどうかを事前計算します。
390
+ *
391
+ * @param fragment 判定対象フラグメント
392
+ * @returns subtree 全体を省略可能なら true
393
+ */
394
+ private static markFreshInitializationSkippable;
395
+ /**
396
+ * fresh clone 初期化で再評価が必要な属性かどうかを返します。
397
+ *
398
+ * @param fragment 判定対象フラグメント
399
+ * @param name 属性名
400
+ * @returns 再評価が必要なら true
401
+ */
402
+ private static isFreshInitializationDynamicAttribute;
269
403
  /**
270
404
  * 差分を更新します。
271
405
  *
@@ -294,6 +428,29 @@ export declare class Core {
294
428
  * @returns 行メタデータの更新完了 Promise
295
429
  */
296
430
  private static updateRowFragment;
431
+ /**
432
+ * 新規挿入行に遅延再評価が必要かどうかを判定します。
433
+ *
434
+ * @param fragment 判定対象の行フラグメント
435
+ * @returns 遅延再評価が必要なら true
436
+ */
437
+ private static needsScheduledEvaluateAll;
438
+ /**
439
+ * mounted 状態に依存して再評価が必要になりやすい属性を持つかどうかを返します。
440
+ *
441
+ * @param fragment 判定対象フラグメント
442
+ * @returns 該当属性を持つなら true
443
+ */
444
+ private static hasMountSensitiveAttribute;
445
+ /**
446
+ * バインド値が同一かどうかを再帰的に判定します。
447
+ *
448
+ * @param left 比較元の値
449
+ * @param right 比較先の値
450
+ * @param visited 循環参照対策用の訪問済みペア
451
+ * @returns 同一なら true
452
+ */
453
+ private static createBindingSignature;
297
454
  /**
298
455
  * フラグメントの再評価を次のイベントループで実行します。
299
456
  *
@@ -333,6 +490,16 @@ declare class ElementFragment extends Fragment {
333
490
  private template;
334
491
  /** each比較用のキー */
335
492
  private listKey;
493
+ /** 直近に描画した each 行の入力署名 */
494
+ private renderSignature;
495
+ /** 直近に描画した data-each 全体の入力署名 */
496
+ private eachInputSignature;
497
+ /** 直近に公開した data-derive subtree の入力署名 */
498
+ private deriveSubtreeSignature;
499
+ /** 直近に評価した data-derive の入力署名 */
500
+ private deriveInputSignature;
501
+ /** fresh clone 初期化を subtree ごと省略できるかどうか */
502
+ private freshInitializationSkippable;
336
503
  /** valueプロパティの値 */
337
504
  private value;
338
505
  /** 属性更新スキップフラグ(オブザーバーによる無限ループ対応) */
@@ -413,6 +580,12 @@ declare class ElementFragment extends Fragment {
413
580
  * @returns 生のバインドデータ
414
581
  */
415
582
  getRawBindingData(): Record<string, unknown> | null;
583
+ /**
584
+ * 生の派生バインドデータを取得します。
585
+ *
586
+ * @returns 生の派生バインドデータ
587
+ */
588
+ getRawDerivedBindingData(): Record<string, unknown> | null;
416
589
  /**
417
590
  * バインドデータを設定します。
418
591
  *
@@ -459,6 +632,66 @@ declare class ElementFragment extends Fragment {
459
632
  * @returns 比較用リストキー
460
633
  */
461
634
  getListKey(): string | null;
635
+ /**
636
+ * 直近に描画した each 行の入力署名を取得します。
637
+ *
638
+ * @returns 入力署名
639
+ */
640
+ getRenderSignature(): string | null;
641
+ /**
642
+ * 直近に描画した each 行の入力署名を設定します。
643
+ *
644
+ * @param signature 入力署名
645
+ */
646
+ setRenderSignature(signature: string | null): void;
647
+ /**
648
+ * 直近に描画した data-each 全体の入力署名を取得します。
649
+ *
650
+ * @returns 入力署名
651
+ */
652
+ getEachInputSignature(): string | null;
653
+ /**
654
+ * 直近に描画した data-each 全体の入力署名を設定します。
655
+ *
656
+ * @param signature 入力署名
657
+ */
658
+ setEachInputSignature(signature: string | null): void;
659
+ /**
660
+ * 直近に公開した data-derive subtree の入力署名を取得します。
661
+ *
662
+ * @returns 入力署名
663
+ */
664
+ getDeriveSubtreeSignature(): string | null;
665
+ /**
666
+ * 直近に公開した data-derive subtree の入力署名を設定します。
667
+ *
668
+ * @param signature 入力署名
669
+ */
670
+ setDeriveSubtreeSignature(signature: string | null): void;
671
+ /**
672
+ * 直近に評価した data-derive の入力署名を取得します。
673
+ *
674
+ * @returns 入力署名
675
+ */
676
+ getDeriveInputSignature(): string | null;
677
+ /**
678
+ * 直近に評価した data-derive の入力署名を設定します。
679
+ *
680
+ * @param signature 入力署名
681
+ */
682
+ setDeriveInputSignature(signature: string | null): void;
683
+ /**
684
+ * fresh clone 初期化を subtree ごと省略できるかどうかを返します。
685
+ *
686
+ * @returns 省略可能なら true
687
+ */
688
+ isFreshInitializationSkippable(): boolean;
689
+ /**
690
+ * fresh clone 初期化を subtree ごと省略できるかどうかを設定します。
691
+ *
692
+ * @param skippable 省略可能なら true
693
+ */
694
+ setFreshInitializationSkippable(skippable: boolean): void;
462
695
  /**
463
696
  * 入力エレメントに値を設定します。
464
697
  * チェックボックとラジオボタンの場合は値に一致するかどうかでチェック状態を変更します。
@@ -1068,6 +1301,8 @@ declare class TextFragment extends Fragment {
1068
1301
  private contents;
1069
1302
  /** 更新スキップフラグ(オブザーバーによる無限ループ対応) */
1070
1303
  private skipMutation;
1304
+ /** 直近に描画した文字列 */
1305
+ private renderedText;
1071
1306
  /**
1072
1307
  * テキストフラグメントのコンストラクタ。
1073
1308
  * 対象テキストノードの内容を初期化します。
@@ -1087,6 +1322,12 @@ declare class TextFragment extends Fragment {
1087
1322
  * @returns フラグメントの対象ノード
1088
1323
  */
1089
1324
  getTarget(): Text;
1325
+ /**
1326
+ * テキストに評価式が含まれているかどうかを返します。
1327
+ *
1328
+ * @returns 評価式を含むなら true
1329
+ */
1330
+ hasDynamicContent(): boolean;
1090
1331
  /**
1091
1332
  * コンテンツを更新します。
1092
1333
  *
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "haori",
3
- "version": "0.6.0",
3
+ "version": "0.6.2",
4
4
  "description": "A lightweight HTML-first UI engine powered by declarative data bindings and expressions.",
5
5
  "scripts": {
6
6
  "dev": "vite",
@@ -18,6 +18,8 @@ export default class Core {
18
18
  private static readonly REACTIVE_FETCH_STATES;
19
19
  /** data-import の自動再評価状態 */
20
20
  private static readonly REACTIVE_IMPORT_STATES;
21
+ /** data-derive subtree skip の開発用プロファイル */
22
+ private static readonly DERIVE_SUBTREE_PROFILES;
21
23
  /**
22
24
  * 遅延属性かどうか(完全名で判定)を判定します。
23
25
  *
@@ -113,6 +115,43 @@ export default class Core {
113
115
  * @returns Promise (スキャンが完了したときに解決される)
114
116
  */
115
117
  static scan(element: HTMLElement): Promise<void>;
118
+ /**
119
+ * 新規 each 行を局所初期化します。
120
+ * 既存 scan の属性順序を保ちつつ、Fragment 木を直接たどります。
121
+ *
122
+ * @param fragment 新規挿入された行フラグメント
123
+ * @returns 初期化完了の Promise
124
+ */
125
+ private static initializeFreshEachRow;
126
+ /**
127
+ * ElementFragment とその子孫を初期化します。
128
+ *
129
+ * @param fragment 対象フラグメント
130
+ * @param stopAtEach true の場合、data-each 要素では通常再帰を止める
131
+ * @returns 初期化完了の Promise
132
+ */
133
+ private static initializeElementFragment;
134
+ /**
135
+ * 要素初期化時の mounted 状態を同期します。
136
+ *
137
+ * @param fragment 対象フラグメント
138
+ */
139
+ private static syncMountedState;
140
+ /**
141
+ * scan と fresh clone 初期化で共有する属性初期化を行います。
142
+ *
143
+ * @param fragment 対象フラグメント
144
+ * @returns 属性初期化完了の Promise
145
+ */
146
+ private static initializeElementAttributes;
147
+ /**
148
+ * 子孫初期化をスキップすべきかどうかを返します。
149
+ *
150
+ * @param fragment 対象フラグメント
151
+ * @param stopAtEach true の場合、data-each 要素で通常再帰を止める
152
+ * @returns 子孫初期化をスキップするなら true
153
+ */
154
+ private static shouldSkipChildInitialization;
116
155
  /**
117
156
  * エレメントに属性を設定します。
118
157
  * 属性固有の処理も行います。
@@ -190,7 +229,7 @@ export default class Core {
190
229
  * @param deriveName 上書きする導出名
191
230
  * @returns Promise (評価完了時に解決)
192
231
  */
193
- static evaluateDerive(fragment: ElementFragment, deriveExpression?: string | null, deriveName?: string | null): Promise<void>;
232
+ static evaluateDerive(fragment: ElementFragment, deriveExpression?: string | null, deriveName?: string | null): Promise<boolean>;
194
233
  /**
195
234
  * テキストフラグメントを評価します。
196
235
  *
@@ -220,6 +259,101 @@ export default class Core {
220
259
  * @returns 配列。無効な場合は null
221
260
  */
222
261
  private static resolveEachItems;
262
+ /**
263
+ * nested data-each の入力が同値で、要素自身に他の動的要素が無い場合は
264
+ * evaluateAll の子走査を省略できるかどうかを返します。
265
+ *
266
+ * @param fragment 判定対象フラグメント
267
+ * @returns 省略可能なら true
268
+ */
269
+ private static canSkipUnchangedNestedEach;
270
+ /**
271
+ * data-derive subtree の入力が同値で、保守条件も満たす場合に
272
+ * 子走査を省略できるかどうかを返します。
273
+ *
274
+ * @param fragment 判定対象フラグメント
275
+ * @returns 省略可能なら true
276
+ */
277
+ private static canSkipStableDerivedSubtree;
278
+ /**
279
+ * data-derive subtree skip の初期 PoC で扱わない子孫要素を含むかを返します。
280
+ *
281
+ * @param fragment 判定対象フラグメント
282
+ * @returns 含むなら true
283
+ */
284
+ private static hasDisallowedDerivedSubtreeDescendant;
285
+ /**
286
+ * data-derive host が子孫要素へ公開している binding の署名を返します。
287
+ *
288
+ * @param fragment 対象フラグメント
289
+ * @returns binding 署名
290
+ */
291
+ private static createDescendantBindingSignature;
292
+ /**
293
+ * data-derive 実行前の入力署名を返します。
294
+ *
295
+ * @param fragment 対象フラグメント
296
+ * @param deriveExpression 導出式
297
+ * @param deriveName 導出名
298
+ * @returns 入力署名。導出が無効なら null
299
+ */
300
+ private static createDeriveInputSignature;
301
+ /**
302
+ * data-derive subtree skip 用の署名を現在状態で更新します。
303
+ *
304
+ * @param fragment 対象フラグメント
305
+ */
306
+ private static refreshDerivedSubtreeSignature;
307
+ /**
308
+ * data-derive subtree skip のプロファイルを取得または初期化します。
309
+ *
310
+ * @param fragment 対象フラグメント
311
+ * @returns プロファイル
312
+ */
313
+ private static getOrCreateDerivedSubtreeProfile;
314
+ /**
315
+ * data-derive subtree host の識別子を作成します。
316
+ *
317
+ * @param fragment 対象フラグメント
318
+ * @returns host 識別子
319
+ */
320
+ private static createDerivedSubtreeHostId;
321
+ /**
322
+ * data-derive subtree の署名計算回数を記録します。
323
+ *
324
+ * @param fragment 対象フラグメント
325
+ * @param source 計算元
326
+ */
327
+ private static recordDerivedSubtreeSignatureComputation;
328
+ /**
329
+ * data-derive subtree の現在プロファイルをログ出力します。
330
+ *
331
+ * @param fragment 対象フラグメント
332
+ * @param reason ログ理由
333
+ */
334
+ private static logDerivedSubtreeProfileSnapshot;
335
+ /**
336
+ * data-each 以外の動的要素状態を持つかどうかを返します。
337
+ *
338
+ * @param fragment 判定対象フラグメント
339
+ * @returns 該当するなら true
340
+ */
341
+ private static hasNonEachDynamicElementState;
342
+ /**
343
+ * fresh clone 初期化を subtree ごと省略できるかどうかを事前計算します。
344
+ *
345
+ * @param fragment 判定対象フラグメント
346
+ * @returns subtree 全体を省略可能なら true
347
+ */
348
+ private static markFreshInitializationSkippable;
349
+ /**
350
+ * fresh clone 初期化で再評価が必要な属性かどうかを返します。
351
+ *
352
+ * @param fragment 判定対象フラグメント
353
+ * @param name 属性名
354
+ * @returns 再評価が必要なら true
355
+ */
356
+ private static isFreshInitializationDynamicAttribute;
223
357
  /**
224
358
  * 差分を更新します。
225
359
  *
@@ -248,6 +382,29 @@ export default class Core {
248
382
  * @returns 行メタデータの更新完了 Promise
249
383
  */
250
384
  private static updateRowFragment;
385
+ /**
386
+ * 新規挿入行に遅延再評価が必要かどうかを判定します。
387
+ *
388
+ * @param fragment 判定対象の行フラグメント
389
+ * @returns 遅延再評価が必要なら true
390
+ */
391
+ private static needsScheduledEvaluateAll;
392
+ /**
393
+ * mounted 状態に依存して再評価が必要になりやすい属性を持つかどうかを返します。
394
+ *
395
+ * @param fragment 判定対象フラグメント
396
+ * @returns 該当属性を持つなら true
397
+ */
398
+ private static hasMountSensitiveAttribute;
399
+ /**
400
+ * バインド値が同一かどうかを再帰的に判定します。
401
+ *
402
+ * @param left 比較元の値
403
+ * @param right 比較先の値
404
+ * @param visited 循環参照対策用の訪問済みペア
405
+ * @returns 同一なら true
406
+ */
407
+ private static createBindingSignature;
251
408
  /**
252
409
  * フラグメントの再評価を次のイベントループで実行します。
253
410
  *
@@ -1 +1 @@
1
- {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/core.ts"],"names":[],"mappings":"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"}