haori 0.1.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.
Files changed (175) hide show
  1. package/LICENSE +21 -0
  2. package/README.ja.md +157 -0
  3. package/README.md +158 -0
  4. package/dist/haori.cjs.js +13 -0
  5. package/dist/haori.cjs.js.map +1 -0
  6. package/dist/haori.es.js +2929 -0
  7. package/dist/haori.es.js.map +1 -0
  8. package/dist/haori.iife.js +13 -0
  9. package/dist/haori.iife.js.map +1 -0
  10. package/dist/index.d.ts +824 -0
  11. package/dist/src/core.d.ts +144 -0
  12. package/dist/src/core.d.ts.map +1 -0
  13. package/dist/src/core.js +605 -0
  14. package/dist/src/core.js.map +1 -0
  15. package/dist/src/dev.d.ts +35 -0
  16. package/dist/src/dev.d.ts.map +1 -0
  17. package/dist/src/dev.js +44 -0
  18. package/dist/src/dev.js.map +1 -0
  19. package/dist/src/env.d.ts +25 -0
  20. package/dist/src/env.d.ts.map +1 -0
  21. package/dist/src/env.js +64 -0
  22. package/dist/src/env.js.map +1 -0
  23. package/dist/src/event.d.ts +144 -0
  24. package/dist/src/event.d.ts.map +1 -0
  25. package/dist/src/event.js +221 -0
  26. package/dist/src/event.js.map +1 -0
  27. package/dist/src/event_dispatcher.d.ts +50 -0
  28. package/dist/src/event_dispatcher.d.ts.map +1 -0
  29. package/dist/src/event_dispatcher.js +99 -0
  30. package/dist/src/event_dispatcher.js.map +1 -0
  31. package/dist/src/expression.d.ts +39 -0
  32. package/dist/src/expression.d.ts.map +1 -0
  33. package/dist/src/expression.js +148 -0
  34. package/dist/src/expression.js.map +1 -0
  35. package/dist/src/form.d.ts +113 -0
  36. package/dist/src/form.d.ts.map +1 -0
  37. package/dist/src/form.js +361 -0
  38. package/dist/src/form.js.map +1 -0
  39. package/dist/src/fragment.d.ts +427 -0
  40. package/dist/src/fragment.d.ts.map +1 -0
  41. package/dist/src/fragment.js +1168 -0
  42. package/dist/src/fragment.js.map +1 -0
  43. package/dist/src/haori.d.ts +54 -0
  44. package/dist/src/haori.d.ts.map +1 -0
  45. package/dist/src/haori.js +120 -0
  46. package/dist/src/haori.js.map +1 -0
  47. package/dist/src/import.d.ts +19 -0
  48. package/dist/src/import.d.ts.map +1 -0
  49. package/dist/src/import.js +64 -0
  50. package/dist/src/import.js.map +1 -0
  51. package/dist/src/index.d.ts +17 -0
  52. package/dist/src/index.d.ts.map +1 -0
  53. package/dist/src/index.js +21 -0
  54. package/dist/src/index.js.map +1 -0
  55. package/dist/src/log.d.ts +32 -0
  56. package/dist/src/log.d.ts.map +1 -0
  57. package/dist/src/log.js +43 -0
  58. package/dist/src/log.js.map +1 -0
  59. package/dist/src/observer.d.ts +17 -0
  60. package/dist/src/observer.d.ts.map +1 -0
  61. package/dist/src/observer.js +102 -0
  62. package/dist/src/observer.js.map +1 -0
  63. package/dist/src/procedure.d.ts +203 -0
  64. package/dist/src/procedure.d.ts.map +1 -0
  65. package/dist/src/procedure.js +1040 -0
  66. package/dist/src/procedure.js.map +1 -0
  67. package/dist/src/queue.d.ts +28 -0
  68. package/dist/src/queue.d.ts.map +1 -0
  69. package/dist/src/queue.js +150 -0
  70. package/dist/src/queue.js.map +1 -0
  71. package/dist/src/url.d.ts +14 -0
  72. package/dist/src/url.d.ts.map +1 -0
  73. package/dist/src/url.js +22 -0
  74. package/dist/src/url.js.map +1 -0
  75. package/dist/tests/click-attributes.test.d.ts +2 -0
  76. package/dist/tests/click-attributes.test.d.ts.map +1 -0
  77. package/dist/tests/click-attributes.test.js +95 -0
  78. package/dist/tests/click-attributes.test.js.map +1 -0
  79. package/dist/tests/core.test.d.ts +5 -0
  80. package/dist/tests/core.test.d.ts.map +1 -0
  81. package/dist/tests/core.test.js +158 -0
  82. package/dist/tests/core.test.js.map +1 -0
  83. package/dist/tests/data-each-browserlike.test.d.ts +2 -0
  84. package/dist/tests/data-each-browserlike.test.d.ts.map +1 -0
  85. package/dist/tests/data-each-browserlike.test.js +48 -0
  86. package/dist/tests/data-each-browserlike.test.js.map +1 -0
  87. package/dist/tests/data-each-fragment-debug.test.d.ts +2 -0
  88. package/dist/tests/data-each-fragment-debug.test.d.ts.map +1 -0
  89. package/dist/tests/data-each-fragment-debug.test.js +119 -0
  90. package/dist/tests/data-each-fragment-debug.test.js.map +1 -0
  91. package/dist/tests/data-each-table.test.d.ts +2 -0
  92. package/dist/tests/data-each-table.test.d.ts.map +1 -0
  93. package/dist/tests/data-each-table.test.js +63 -0
  94. package/dist/tests/data-each-table.test.js.map +1 -0
  95. package/dist/tests/dev.test.d.ts +2 -0
  96. package/dist/tests/dev.test.d.ts.map +1 -0
  97. package/dist/tests/dev.test.js +51 -0
  98. package/dist/tests/dev.test.js.map +1 -0
  99. package/dist/tests/each_arg.test.d.ts +2 -0
  100. package/dist/tests/each_arg.test.d.ts.map +1 -0
  101. package/dist/tests/each_arg.test.js +41 -0
  102. package/dist/tests/each_arg.test.js.map +1 -0
  103. package/dist/tests/env.test.d.ts +2 -0
  104. package/dist/tests/env.test.d.ts.map +1 -0
  105. package/dist/tests/env.test.js +96 -0
  106. package/dist/tests/env.test.js.map +1 -0
  107. package/dist/tests/event.test.d.ts +2 -0
  108. package/dist/tests/event.test.d.ts.map +1 -0
  109. package/dist/tests/event.test.js +287 -0
  110. package/dist/tests/event.test.js.map +1 -0
  111. package/dist/tests/expression.test.d.ts +2 -0
  112. package/dist/tests/expression.test.d.ts.map +1 -0
  113. package/dist/tests/expression.test.js +281 -0
  114. package/dist/tests/expression.test.js.map +1 -0
  115. package/dist/tests/fetch-and-procedure-scenarios.test.d.ts +2 -0
  116. package/dist/tests/fetch-and-procedure-scenarios.test.d.ts.map +1 -0
  117. package/dist/tests/fetch-and-procedure-scenarios.test.js +133 -0
  118. package/dist/tests/fetch-and-procedure-scenarios.test.js.map +1 -0
  119. package/dist/tests/form.test.d.ts +2 -0
  120. package/dist/tests/form.test.d.ts.map +1 -0
  121. package/dist/tests/form.test.js +607 -0
  122. package/dist/tests/form.test.js.map +1 -0
  123. package/dist/tests/fragment.test.d.ts +2 -0
  124. package/dist/tests/fragment.test.d.ts.map +1 -0
  125. package/dist/tests/fragment.test.js +164 -0
  126. package/dist/tests/fragment.test.js.map +1 -0
  127. package/dist/tests/import.test.d.ts +2 -0
  128. package/dist/tests/import.test.d.ts.map +1 -0
  129. package/dist/tests/import.test.js +148 -0
  130. package/dist/tests/import.test.js.map +1 -0
  131. package/dist/tests/log.test.d.ts +2 -0
  132. package/dist/tests/log.test.d.ts.map +1 -0
  133. package/dist/tests/log.test.js +58 -0
  134. package/dist/tests/log.test.js.map +1 -0
  135. package/dist/tests/procedure-action-operations.test.d.ts +2 -0
  136. package/dist/tests/procedure-action-operations.test.d.ts.map +1 -0
  137. package/dist/tests/procedure-action-operations.test.js +148 -0
  138. package/dist/tests/procedure-action-operations.test.js.map +1 -0
  139. package/dist/tests/procedure-fetch-options.test.d.ts +2 -0
  140. package/dist/tests/procedure-fetch-options.test.d.ts.map +1 -0
  141. package/dist/tests/procedure-fetch-options.test.js +131 -0
  142. package/dist/tests/procedure-fetch-options.test.js.map +1 -0
  143. package/dist/tests/procedure.test.d.ts +2 -0
  144. package/dist/tests/procedure.test.d.ts.map +1 -0
  145. package/dist/tests/procedure.test.js +136 -0
  146. package/dist/tests/procedure.test.js.map +1 -0
  147. package/dist/tests/procedure_events.test.d.ts +7 -0
  148. package/dist/tests/procedure_events.test.d.ts.map +1 -0
  149. package/dist/tests/procedure_events.test.js +96 -0
  150. package/dist/tests/procedure_events.test.js.map +1 -0
  151. package/dist/tests/reset_each.test.d.ts +2 -0
  152. package/dist/tests/reset_each.test.d.ts.map +1 -0
  153. package/dist/tests/reset_each.test.js +215 -0
  154. package/dist/tests/reset_each.test.js.map +1 -0
  155. package/dist/tests/row-move.test.d.ts +2 -0
  156. package/dist/tests/row-move.test.d.ts.map +1 -0
  157. package/dist/tests/row-move.test.js +197 -0
  158. package/dist/tests/row-move.test.js.map +1 -0
  159. package/dist/tests/row-operations.test.d.ts +2 -0
  160. package/dist/tests/row-operations.test.d.ts.map +1 -0
  161. package/dist/tests/row-operations.test.js +238 -0
  162. package/dist/tests/row-operations.test.js.map +1 -0
  163. package/dist/tests/url.test.d.ts +2 -0
  164. package/dist/tests/url.test.d.ts.map +1 -0
  165. package/dist/tests/url.test.js +150 -0
  166. package/dist/tests/url.test.js.map +1 -0
  167. package/dist/vite.config.d.ts +3 -0
  168. package/dist/vite.config.d.ts.map +1 -0
  169. package/dist/vite.config.js +28 -0
  170. package/dist/vite.config.js.map +1 -0
  171. package/dist/vitest.config.d.ts +3 -0
  172. package/dist/vitest.config.d.ts.map +1 -0
  173. package/dist/vitest.config.js +19 -0
  174. package/dist/vitest.config.js.map +1 -0
  175. package/package.json +68 -0
@@ -0,0 +1,144 @@
1
+ import { ElementFragment, TextFragment } from './fragment';
2
+ /**
3
+ * アプリケーションの中心的な制御を行うクラスです。
4
+ * Fragment の初期化、属性変化の処理、条件分岐・繰り返し処理を管理します。
5
+ */
6
+ export default class Core {
7
+ /** 優先処理する属性のサフィックス(処理順序で定義) */
8
+ private static readonly PRIORITY_ATTRIBUTE_SUFFIXES;
9
+ /** 遅延処理する属性のサフィックス */
10
+ private static readonly DEFERRED_ATTRIBUTE_SUFFIXES;
11
+ /**
12
+ * 遅延属性かどうか(完全名で判定)を判定します。
13
+ *
14
+ * @param name 属性名
15
+ * @returns 遅延属性かどうか
16
+ */
17
+ private static isDeferredAttributeName;
18
+ /**
19
+ * 指定された要素と、その子要素をスキャンし、Fragmentを生成します。
20
+ *
21
+ * @param element スキャン対象の要素
22
+ * @returns Promise (スキャンが完了したときに解決される)
23
+ */
24
+ static scan(element: HTMLElement): Promise<void>;
25
+ /**
26
+ * エレメントに属性を設定します。
27
+ * 属性固有の処理も行います。
28
+ *
29
+ * @param element エレメント
30
+ * @param name 属性名
31
+ * @param value 属性値
32
+ * @returns Promise (DOM操作が完了したときに解決される)
33
+ */
34
+ static setAttribute(element: HTMLElement, name: string, value: string | null): Promise<void>;
35
+ /**
36
+ * エレメントに属性を設定し、評価を行います。
37
+ *
38
+ * @param element エレメント
39
+ * @param name 属性名
40
+ * @param value 属性値
41
+ * @returns Promise (DOM操作が完了したときに解決される)
42
+ */
43
+ static setBindingData(element: HTMLElement, data: Record<string, unknown>): Promise<void>;
44
+ /**
45
+ * data-bind 属性の値をパースします。
46
+ *
47
+ * @param data data-bind 属性の値
48
+ * @returns パースされたデータオブジェクト
49
+ */
50
+ static parseDataBind(data: string): Record<string, unknown>;
51
+ /**
52
+ * ノードを親要素に追加し評価を行います。
53
+ *
54
+ * @param parentElement 親エレメント
55
+ * @param node 追加するノード
56
+ */
57
+ static addNode(parentElement: HTMLElement, node: Node): void;
58
+ /**
59
+ * ノードを親要素から削除します。
60
+ *
61
+ * @param node 削除するノード
62
+ */
63
+ static removeNode(node: Node): void;
64
+ /**
65
+ * ノードのテキストを変更します。
66
+ *
67
+ * @param node 変更するノード
68
+ * @param text 新しいテキスト
69
+ */
70
+ static changeText(node: Text | Comment, text: string): void;
71
+ /**
72
+ * エレメントの値を変更します。
73
+ * フォームの双方向バインディングを考慮し、フォームのバインドデータも更新します。
74
+ *
75
+ * @param element 変更するエレメント
76
+ * @param value 新しい値
77
+ * @returns Promise (DOM操作が完了したときに解決される)
78
+ */
79
+ static changeValue(element: HTMLElement, value: string): Promise<void>;
80
+ /**
81
+ * フォームフラグメントを取得します。
82
+ *
83
+ * @param fragment フラグメント
84
+ * @returns フォームフラグメントまたはnull
85
+ */
86
+ private static getFormFragment;
87
+ /**
88
+ * フラグメントとその子要素を評価します。
89
+ *
90
+ * @param fragment 対象フラグメント
91
+ * @return Promise (DOM操作が完了したときに解決される)
92
+ */
93
+ static evaluateAll(fragment: ElementFragment): Promise<void>;
94
+ /**
95
+ * テキストフラグメントを評価します。
96
+ *
97
+ * @param fragment 対象フラグメント
98
+ * @returns Promise (DOM操作が完了したときに解決される)
99
+ */
100
+ static evaluateText(fragment: TextFragment): Promise<void>;
101
+ /**
102
+ * if要素を評価します。
103
+ * 値がfalse、null、undefined、NaNの場合は非表示にし、それ以外の場合は表示します。
104
+ *
105
+ * @param fragment 対象フラグメント
106
+ * @return Promise (DOM操作が完了したときに解決される)
107
+ */
108
+ static evaluateIf(fragment: ElementFragment): Promise<void>;
109
+ /**
110
+ * each要素を評価します。
111
+ * 非表示または未マウントの場合は処理をスキップします。
112
+ *
113
+ * @param fragment 対象フラグメント
114
+ */
115
+ static evaluateEach(fragment: ElementFragment): Promise<void>;
116
+ /**
117
+ * 差分を更新します。
118
+ *
119
+ * @param parent 親フラグメント
120
+ * @param newList 新しいリスト
121
+ */
122
+ private static updateDiff;
123
+ /**
124
+ * リスト比較用のキーを生成します。
125
+ *
126
+ * @param item 対象オブジェクト
127
+ * @param keyArg リストキーに使用するプロパティ名
128
+ * @param index 配列のインデックス
129
+ * @returns リストキー
130
+ */
131
+ private static createListKey;
132
+ /**
133
+ * 行フラグメントにデータを設定します。
134
+ *
135
+ * @param rowFragment 行フラグメント
136
+ * @param data 行データ
137
+ * @param indexKey インデックスキー
138
+ * @param index インデックス番号
139
+ * @param arg バインドデータパラメータ名
140
+ * @param listKey リストキー
141
+ */
142
+ private static updateRowFragment;
143
+ }
144
+ //# sourceMappingURL=core.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/core.ts"],"names":[],"mappings":"AAQA,OAAiB,EAAC,eAAe,EAAE,YAAY,EAAC,MAAM,YAAY,CAAC;AAQnE;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,IAAI;IACvB,+BAA+B;IAC/B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,2BAA2B,CAA0B;IAE7E,sBAAsB;IACtB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,2BAA2B,CAA0B;IAE7E;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,uBAAuB;IAMtC;;;;;OAKG;WACW,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAmEvD;;;;;;;;OAQG;WACW,YAAY,CACxB,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,GAAG,IAAI,GACnB,OAAO,CAAC,IAAI,CAAC;IAoEhB;;;;;;;OAOG;WACW,cAAc,CAC1B,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,IAAI,CAAC;IAgBhB;;;;;OAKG;WACW,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IA6BlE;;;;;OAKG;WACW,OAAO,CAAC,aAAa,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI;IAoB5D;;;;OAIG;WACW,UAAU,CAAC,IAAI,EAAE,IAAI;IAYnC;;;;;OAKG;WACW,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM;IAO3D;;;;;;;OAOG;WACW,WAAW,CACvB,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC;IA0BhB;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe;IAa9B;;;;;OAKG;WACW,WAAW,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBnE;;;;;OAKG;WACW,YAAY,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjE;;;;;;OAMG;WACW,UAAU,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IA6BlE;;;;;OAKG;WACW,YAAY,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAyDpE;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,UAAU;IAwGzB;;;;;;;OAOG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;IA0B5B;;;;;;;;;OASG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;CAuCjC"}