haori 0.13.0 → 0.13.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 (307) hide show
  1. package/README.ja.md +1 -1
  2. package/README.md +1 -1
  3. package/dist/haori.cjs.js +10 -10
  4. package/dist/haori.es.js +191 -165
  5. package/dist/haori.iife.js +10 -10
  6. package/dist/index.d.ts +1 -1
  7. package/package.json +11 -3
  8. package/dist/haori.cjs.js.map +0 -1
  9. package/dist/haori.es.js.map +0 -1
  10. package/dist/haori.iife.js.map +0 -1
  11. package/dist/package.json +0 -70
  12. package/dist/src/builtins.d.ts +0 -100
  13. package/dist/src/builtins.d.ts.map +0 -1
  14. package/dist/src/builtins.js +0 -194
  15. package/dist/src/builtins.js.map +0 -1
  16. package/dist/src/core.d.ts +0 -505
  17. package/dist/src/core.d.ts.map +0 -1
  18. package/dist/src/core.js +0 -1817
  19. package/dist/src/core.js.map +0 -1
  20. package/dist/src/dev.d.ts +0 -35
  21. package/dist/src/dev.d.ts.map +0 -1
  22. package/dist/src/dev.js +0 -44
  23. package/dist/src/dev.js.map +0 -1
  24. package/dist/src/env.d.ts +0 -43
  25. package/dist/src/env.d.ts.map +0 -1
  26. package/dist/src/env.js +0 -108
  27. package/dist/src/env.js.map +0 -1
  28. package/dist/src/event.d.ts +0 -171
  29. package/dist/src/event.d.ts.map +0 -1
  30. package/dist/src/event.js +0 -235
  31. package/dist/src/event.js.map +0 -1
  32. package/dist/src/event_dispatcher.d.ts +0 -66
  33. package/dist/src/event_dispatcher.d.ts.map +0 -1
  34. package/dist/src/event_dispatcher.js +0 -167
  35. package/dist/src/event_dispatcher.js.map +0 -1
  36. package/dist/src/expression.d.ts +0 -260
  37. package/dist/src/expression.d.ts.map +0 -1
  38. package/dist/src/expression.js +0 -975
  39. package/dist/src/expression.js.map +0 -1
  40. package/dist/src/form.d.ts +0 -148
  41. package/dist/src/form.d.ts.map +0 -1
  42. package/dist/src/form.js +0 -428
  43. package/dist/src/form.js.map +0 -1
  44. package/dist/src/fragment.d.ts +0 -621
  45. package/dist/src/fragment.d.ts.map +0 -1
  46. package/dist/src/fragment.js +0 -1963
  47. package/dist/src/fragment.js.map +0 -1
  48. package/dist/src/haori.d.ts +0 -130
  49. package/dist/src/haori.d.ts.map +0 -1
  50. package/dist/src/haori.js +0 -215
  51. package/dist/src/haori.js.map +0 -1
  52. package/dist/src/import.d.ts +0 -19
  53. package/dist/src/import.d.ts.map +0 -1
  54. package/dist/src/import.js +0 -64
  55. package/dist/src/import.js.map +0 -1
  56. package/dist/src/index.d.ts +0 -27
  57. package/dist/src/index.d.ts.map +0 -1
  58. package/dist/src/index.js +0 -30
  59. package/dist/src/index.js.map +0 -1
  60. package/dist/src/intersect.d.ts +0 -28
  61. package/dist/src/intersect.d.ts.map +0 -1
  62. package/dist/src/intersect.js +0 -201
  63. package/dist/src/intersect.js.map +0 -1
  64. package/dist/src/log.d.ts +0 -32
  65. package/dist/src/log.d.ts.map +0 -1
  66. package/dist/src/log.js +0 -43
  67. package/dist/src/log.js.map +0 -1
  68. package/dist/src/observer.d.ts +0 -24
  69. package/dist/src/observer.d.ts.map +0 -1
  70. package/dist/src/observer.js +0 -131
  71. package/dist/src/observer.js.map +0 -1
  72. package/dist/src/procedure.d.ts +0 -447
  73. package/dist/src/procedure.d.ts.map +0 -1
  74. package/dist/src/procedure.js +0 -1921
  75. package/dist/src/procedure.js.map +0 -1
  76. package/dist/src/queue.d.ts +0 -35
  77. package/dist/src/queue.d.ts.map +0 -1
  78. package/dist/src/queue.js +0 -202
  79. package/dist/src/queue.js.map +0 -1
  80. package/dist/src/url.d.ts +0 -14
  81. package/dist/src/url.d.ts.map +0 -1
  82. package/dist/src/url.js +0 -22
  83. package/dist/src/url.js.map +0 -1
  84. package/dist/tests/bind-arg-own-binding.test.d.ts +0 -2
  85. package/dist/tests/bind-arg-own-binding.test.d.ts.map +0 -1
  86. package/dist/tests/bind-arg-own-binding.test.js +0 -63
  87. package/dist/tests/bind-arg-own-binding.test.js.map +0 -1
  88. package/dist/tests/bindcomplete-and-scope.test.d.ts +0 -2
  89. package/dist/tests/bindcomplete-and-scope.test.d.ts.map +0 -1
  90. package/dist/tests/bindcomplete-and-scope.test.js +0 -115
  91. package/dist/tests/bindcomplete-and-scope.test.js.map +0 -1
  92. package/dist/tests/builtins.test.d.ts +0 -2
  93. package/dist/tests/builtins.test.d.ts.map +0 -1
  94. package/dist/tests/builtins.test.js +0 -152
  95. package/dist/tests/builtins.test.js.map +0 -1
  96. package/dist/tests/click-attributes.test.d.ts +0 -2
  97. package/dist/tests/click-attributes.test.d.ts.map +0 -1
  98. package/dist/tests/click-attributes.test.js +0 -113
  99. package/dist/tests/click-attributes.test.js.map +0 -1
  100. package/dist/tests/click-no-disabled.test.d.ts +0 -2
  101. package/dist/tests/click-no-disabled.test.d.ts.map +0 -1
  102. package/dist/tests/click-no-disabled.test.js +0 -67
  103. package/dist/tests/click-no-disabled.test.js.map +0 -1
  104. package/dist/tests/core.test.d.ts +0 -5
  105. package/dist/tests/core.test.d.ts.map +0 -1
  106. package/dist/tests/core.test.js +0 -1056
  107. package/dist/tests/core.test.js.map +0 -1
  108. package/dist/tests/data-bind-arg-reeval.test.d.ts +0 -2
  109. package/dist/tests/data-bind-arg-reeval.test.d.ts.map +0 -1
  110. package/dist/tests/data-bind-arg-reeval.test.js +0 -119
  111. package/dist/tests/data-bind-arg-reeval.test.js.map +0 -1
  112. package/dist/tests/data-bind-merge.test.d.ts +0 -2
  113. package/dist/tests/data-bind-merge.test.d.ts.map +0 -1
  114. package/dist/tests/data-bind-merge.test.js +0 -86
  115. package/dist/tests/data-bind-merge.test.js.map +0 -1
  116. package/dist/tests/data-click-defer.test.d.ts +0 -2
  117. package/dist/tests/data-click-defer.test.d.ts.map +0 -1
  118. package/dist/tests/data-click-defer.test.js +0 -57
  119. package/dist/tests/data-click-defer.test.js.map +0 -1
  120. package/dist/tests/data-click-run.test.d.ts +0 -5
  121. package/dist/tests/data-click-run.test.d.ts.map +0 -1
  122. package/dist/tests/data-click-run.test.js +0 -109
  123. package/dist/tests/data-click-run.test.js.map +0 -1
  124. package/dist/tests/data-derive.test.d.ts +0 -2
  125. package/dist/tests/data-derive.test.d.ts.map +0 -1
  126. package/dist/tests/data-derive.test.js +0 -999
  127. package/dist/tests/data-derive.test.js.map +0 -1
  128. package/dist/tests/data-each-browserlike.test.d.ts +0 -2
  129. package/dist/tests/data-each-browserlike.test.d.ts.map +0 -1
  130. package/dist/tests/data-each-browserlike.test.js +0 -48
  131. package/dist/tests/data-each-browserlike.test.js.map +0 -1
  132. package/dist/tests/data-each-fragment-debug.test.d.ts +0 -2
  133. package/dist/tests/data-each-fragment-debug.test.d.ts.map +0 -1
  134. package/dist/tests/data-each-fragment-debug.test.js +0 -119
  135. package/dist/tests/data-each-fragment-debug.test.js.map +0 -1
  136. package/dist/tests/data-each-table.test.d.ts +0 -2
  137. package/dist/tests/data-each-table.test.d.ts.map +0 -1
  138. package/dist/tests/data-each-table.test.js +0 -131
  139. package/dist/tests/data-each-table.test.js.map +0 -1
  140. package/dist/tests/data-each-template-recovery.test.d.ts +0 -2
  141. package/dist/tests/data-each-template-recovery.test.d.ts.map +0 -1
  142. package/dist/tests/data-each-template-recovery.test.js +0 -87
  143. package/dist/tests/data-each-template-recovery.test.js.map +0 -1
  144. package/dist/tests/data-event-prevent.test.d.ts +0 -2
  145. package/dist/tests/data-event-prevent.test.d.ts.map +0 -1
  146. package/dist/tests/data-event-prevent.test.js +0 -76
  147. package/dist/tests/data-event-prevent.test.js.map +0 -1
  148. package/dist/tests/data-fetch-form-input-binding.test.d.ts +0 -2
  149. package/dist/tests/data-fetch-form-input-binding.test.d.ts.map +0 -1
  150. package/dist/tests/data-fetch-form-input-binding.test.js +0 -202
  151. package/dist/tests/data-fetch-form-input-binding.test.js.map +0 -1
  152. package/dist/tests/data-fetch-tbody-dom.test.d.ts +0 -2
  153. package/dist/tests/data-fetch-tbody-dom.test.d.ts.map +0 -1
  154. package/dist/tests/data-fetch-tbody-dom.test.js +0 -82
  155. package/dist/tests/data-fetch-tbody-dom.test.js.map +0 -1
  156. package/dist/tests/data-form-container.test.d.ts +0 -2
  157. package/dist/tests/data-form-container.test.d.ts.map +0 -1
  158. package/dist/tests/data-form-container.test.js +0 -88
  159. package/dist/tests/data-form-container.test.js.map +0 -1
  160. package/dist/tests/data-if-dev-diagnostics.test.d.ts +0 -2
  161. package/dist/tests/data-if-dev-diagnostics.test.d.ts.map +0 -1
  162. package/dist/tests/data-if-dev-diagnostics.test.js +0 -55
  163. package/dist/tests/data-if-dev-diagnostics.test.js.map +0 -1
  164. package/dist/tests/data-if-falsy.test.d.ts +0 -2
  165. package/dist/tests/data-if-falsy.test.d.ts.map +0 -1
  166. package/dist/tests/data-if-falsy.test.js +0 -73
  167. package/dist/tests/data-if-falsy.test.js.map +0 -1
  168. package/dist/tests/data-load-on-show.test.d.ts +0 -2
  169. package/dist/tests/data-load-on-show.test.d.ts.map +0 -1
  170. package/dist/tests/data-load-on-show.test.js +0 -98
  171. package/dist/tests/data-load-on-show.test.js.map +0 -1
  172. package/dist/tests/derive-each-render-wait.test.d.ts +0 -2
  173. package/dist/tests/derive-each-render-wait.test.d.ts.map +0 -1
  174. package/dist/tests/derive-each-render-wait.test.js +0 -90
  175. package/dist/tests/derive-each-render-wait.test.js.map +0 -1
  176. package/dist/tests/dev.test.d.ts +0 -2
  177. package/dist/tests/dev.test.d.ts.map +0 -1
  178. package/dist/tests/dev.test.js +0 -51
  179. package/dist/tests/dev.test.js.map +0 -1
  180. package/dist/tests/each-update-event.test.d.ts +0 -2
  181. package/dist/tests/each-update-event.test.d.ts.map +0 -1
  182. package/dist/tests/each-update-event.test.js +0 -83
  183. package/dist/tests/each-update-event.test.js.map +0 -1
  184. package/dist/tests/each_arg.test.d.ts +0 -2
  185. package/dist/tests/each_arg.test.d.ts.map +0 -1
  186. package/dist/tests/each_arg.test.js +0 -41
  187. package/dist/tests/each_arg.test.js.map +0 -1
  188. package/dist/tests/env.test.d.ts +0 -2
  189. package/dist/tests/env.test.d.ts.map +0 -1
  190. package/dist/tests/env.test.js +0 -124
  191. package/dist/tests/env.test.js.map +0 -1
  192. package/dist/tests/evaluation-profile.test.d.ts +0 -2
  193. package/dist/tests/evaluation-profile.test.d.ts.map +0 -1
  194. package/dist/tests/evaluation-profile.test.js +0 -92
  195. package/dist/tests/evaluation-profile.test.js.map +0 -1
  196. package/dist/tests/event.test.d.ts +0 -2
  197. package/dist/tests/event.test.d.ts.map +0 -1
  198. package/dist/tests/event.test.js +0 -300
  199. package/dist/tests/event.test.js.map +0 -1
  200. package/dist/tests/expression-disallowed-keyword-hint.test.d.ts +0 -2
  201. package/dist/tests/expression-disallowed-keyword-hint.test.d.ts.map +0 -1
  202. package/dist/tests/expression-disallowed-keyword-hint.test.js +0 -45
  203. package/dist/tests/expression-disallowed-keyword-hint.test.js.map +0 -1
  204. package/dist/tests/expression-forbidden-hint.test.d.ts +0 -2
  205. package/dist/tests/expression-forbidden-hint.test.d.ts.map +0 -1
  206. package/dist/tests/expression-forbidden-hint.test.js +0 -37
  207. package/dist/tests/expression-forbidden-hint.test.js.map +0 -1
  208. package/dist/tests/expression.test.d.ts +0 -2
  209. package/dist/tests/expression.test.d.ts.map +0 -1
  210. package/dist/tests/expression.test.js +0 -482
  211. package/dist/tests/expression.test.js.map +0 -1
  212. package/dist/tests/fetch-and-procedure-scenarios.test.d.ts +0 -2
  213. package/dist/tests/fetch-and-procedure-scenarios.test.d.ts.map +0 -1
  214. package/dist/tests/fetch-and-procedure-scenarios.test.js +0 -195
  215. package/dist/tests/fetch-and-procedure-scenarios.test.js.map +0 -1
  216. package/dist/tests/form-number-type.test.d.ts +0 -2
  217. package/dist/tests/form-number-type.test.d.ts.map +0 -1
  218. package/dist/tests/form-number-type.test.js +0 -83
  219. package/dist/tests/form-number-type.test.js.map +0 -1
  220. package/dist/tests/form.test.d.ts +0 -2
  221. package/dist/tests/form.test.d.ts.map +0 -1
  222. package/dist/tests/form.test.js +0 -636
  223. package/dist/tests/form.test.js.map +0 -1
  224. package/dist/tests/fragment.test.d.ts +0 -2
  225. package/dist/tests/fragment.test.d.ts.map +0 -1
  226. package/dist/tests/fragment.test.js +0 -284
  227. package/dist/tests/fragment.test.js.map +0 -1
  228. package/dist/tests/haori.test.d.ts +0 -2
  229. package/dist/tests/haori.test.d.ts.map +0 -1
  230. package/dist/tests/haori.test.js +0 -149
  231. package/dist/tests/haori.test.js.map +0 -1
  232. package/dist/tests/helpers/async.d.ts +0 -20
  233. package/dist/tests/helpers/async.d.ts.map +0 -1
  234. package/dist/tests/helpers/async.js +0 -35
  235. package/dist/tests/helpers/async.js.map +0 -1
  236. package/dist/tests/import.test.d.ts +0 -2
  237. package/dist/tests/import.test.d.ts.map +0 -1
  238. package/dist/tests/import.test.js +0 -148
  239. package/dist/tests/import.test.js.map +0 -1
  240. package/dist/tests/intersect.test.d.ts +0 -2
  241. package/dist/tests/intersect.test.d.ts.map +0 -1
  242. package/dist/tests/intersect.test.js +0 -173
  243. package/dist/tests/intersect.test.js.map +0 -1
  244. package/dist/tests/log.test.d.ts +0 -2
  245. package/dist/tests/log.test.d.ts.map +0 -1
  246. package/dist/tests/log.test.js +0 -58
  247. package/dist/tests/log.test.js.map +0 -1
  248. package/dist/tests/observer.test.d.ts +0 -2
  249. package/dist/tests/observer.test.d.ts.map +0 -1
  250. package/dist/tests/observer.test.js +0 -64
  251. package/dist/tests/observer.test.js.map +0 -1
  252. package/dist/tests/placeholder-resolution.test.d.ts +0 -2
  253. package/dist/tests/placeholder-resolution.test.d.ts.map +0 -1
  254. package/dist/tests/placeholder-resolution.test.js +0 -463
  255. package/dist/tests/placeholder-resolution.test.js.map +0 -1
  256. package/dist/tests/procedure-action-operations.test.d.ts +0 -2
  257. package/dist/tests/procedure-action-operations.test.d.ts.map +0 -1
  258. package/dist/tests/procedure-action-operations.test.js +0 -1140
  259. package/dist/tests/procedure-action-operations.test.js.map +0 -1
  260. package/dist/tests/procedure-bind-append.test.d.ts +0 -2
  261. package/dist/tests/procedure-bind-append.test.d.ts.map +0 -1
  262. package/dist/tests/procedure-bind-append.test.js +0 -80
  263. package/dist/tests/procedure-bind-append.test.js.map +0 -1
  264. package/dist/tests/procedure-fetch-options.test.d.ts +0 -2
  265. package/dist/tests/procedure-fetch-options.test.d.ts.map +0 -1
  266. package/dist/tests/procedure-fetch-options.test.js +0 -255
  267. package/dist/tests/procedure-fetch-options.test.js.map +0 -1
  268. package/dist/tests/procedure.test.d.ts +0 -2
  269. package/dist/tests/procedure.test.d.ts.map +0 -1
  270. package/dist/tests/procedure.test.js +0 -137
  271. package/dist/tests/procedure.test.js.map +0 -1
  272. package/dist/tests/procedure_events.test.d.ts +0 -7
  273. package/dist/tests/procedure_events.test.d.ts.map +0 -1
  274. package/dist/tests/procedure_events.test.js +0 -261
  275. package/dist/tests/procedure_events.test.js.map +0 -1
  276. package/dist/tests/render-wait.test.d.ts +0 -2
  277. package/dist/tests/render-wait.test.d.ts.map +0 -1
  278. package/dist/tests/render-wait.test.js +0 -68
  279. package/dist/tests/render-wait.test.js.map +0 -1
  280. package/dist/tests/reset_each.test.d.ts +0 -2
  281. package/dist/tests/reset_each.test.d.ts.map +0 -1
  282. package/dist/tests/reset_each.test.js +0 -215
  283. package/dist/tests/reset_each.test.js.map +0 -1
  284. package/dist/tests/row-move.test.d.ts +0 -2
  285. package/dist/tests/row-move.test.d.ts.map +0 -1
  286. package/dist/tests/row-move.test.js +0 -220
  287. package/dist/tests/row-move.test.js.map +0 -1
  288. package/dist/tests/row-operations.test.d.ts +0 -2
  289. package/dist/tests/row-operations.test.d.ts.map +0 -1
  290. package/dist/tests/row-operations.test.js +0 -259
  291. package/dist/tests/row-operations.test.js.map +0 -1
  292. package/dist/tests/scheduled-evaluate-wait.test.d.ts +0 -2
  293. package/dist/tests/scheduled-evaluate-wait.test.d.ts.map +0 -1
  294. package/dist/tests/scheduled-evaluate-wait.test.js +0 -68
  295. package/dist/tests/scheduled-evaluate-wait.test.js.map +0 -1
  296. package/dist/tests/url.test.d.ts +0 -2
  297. package/dist/tests/url.test.d.ts.map +0 -1
  298. package/dist/tests/url.test.js +0 -150
  299. package/dist/tests/url.test.js.map +0 -1
  300. package/dist/vite.config.d.ts +0 -3
  301. package/dist/vite.config.d.ts.map +0 -1
  302. package/dist/vite.config.js +0 -28
  303. package/dist/vite.config.js.map +0 -1
  304. package/dist/vitest.config.d.ts +0 -3
  305. package/dist/vitest.config.d.ts.map +0 -1
  306. package/dist/vitest.config.js +0 -19
  307. package/dist/vitest.config.js.map +0 -1
package/dist/src/event.js DELETED
@@ -1,235 +0,0 @@
1
- /**
2
- * @fileoverview Haoriイベント発火ユーティリティ
3
- *
4
- * Haoriライブラリが発火するカスタムイベントの統一的な発火機能を提供します。
5
- */
6
- export default class HaoriEvent {
7
- /**
8
- * カスタムイベントを発火します。
9
- *
10
- * @param target イベントを発火する対象要素
11
- * @param eventName イベント名(haori:プレフィックスは自動追加)
12
- * @param detail イベントの詳細データ
13
- * @param options イベントオプション
14
- */
15
- static dispatch(target, eventName, detail, options) {
16
- const event = new CustomEvent(`haori:${eventName}`, {
17
- bubbles: options?.bubbles ?? true,
18
- cancelable: options?.cancelable ?? false,
19
- composed: options?.composed ?? true,
20
- detail,
21
- });
22
- return target.dispatchEvent(event);
23
- }
24
- /**
25
- * readyイベントを発火します。
26
- *
27
- * @param version ライブラリバージョン
28
- */
29
- static ready(version) {
30
- HaoriEvent.dispatch(document, 'ready', { version });
31
- }
32
- /**
33
- * renderイベントを発火します。
34
- *
35
- * @param target 評価対象要素
36
- */
37
- static render(target) {
38
- HaoriEvent.dispatch(target, 'render', { target });
39
- }
40
- /**
41
- * importstartイベントを発火します。
42
- *
43
- * @param target data-import要素
44
- * @param url インポート対象URL
45
- */
46
- static importStart(target, url) {
47
- HaoriEvent.dispatch(target, 'importstart', {
48
- url,
49
- startedAt: performance.now(),
50
- });
51
- }
52
- /**
53
- * importendイベントを発火します。
54
- *
55
- * @param target data-import要素
56
- * @param url インポート対象URL
57
- * @param bytes 取得バイト数
58
- * @param startedAt 開始時刻
59
- */
60
- static importEnd(target, url, bytes, startedAt) {
61
- HaoriEvent.dispatch(target, 'importend', {
62
- url,
63
- bytes,
64
- durationMs: performance.now() - startedAt,
65
- });
66
- }
67
- /**
68
- * importerrorイベントを発火します。
69
- *
70
- * @param target data-import要素
71
- * @param url インポート対象URL
72
- * @param error エラー内容
73
- */
74
- static importError(target, url, error) {
75
- HaoriEvent.dispatch(target, 'importerror', { url, error });
76
- }
77
- /**
78
- * bindchangeイベントを発火します。
79
- *
80
- * @param target バインド対象要素
81
- * @param previous 変更前のデータ
82
- * @param next 変更後のデータ
83
- * @param reason 変更理由
84
- */
85
- static bindChange(target, previous, next, reason = 'other') {
86
- const changedKeys = [];
87
- // 変更されたキーを検出
88
- const prevKeys = new Set(Object.keys(previous || {}));
89
- const nextKeys = new Set(Object.keys(next));
90
- const allKeys = new Set([...prevKeys, ...nextKeys]);
91
- for (const key of allKeys) {
92
- const prevValue = previous?.[key];
93
- const nextValue = next[key];
94
- if (prevValue !== nextValue) {
95
- changedKeys.push(key);
96
- }
97
- }
98
- HaoriEvent.dispatch(target, 'bindchange', {
99
- previous: previous || {},
100
- next,
101
- changedKeys,
102
- reason,
103
- });
104
- }
105
- /**
106
- * bindcompleteイベントを発火します。
107
- *
108
- * Procedure(data-*-bind / data-*-bind-arg など)によるバインドと、それに伴う
109
- * 対象要素配下の再評価(data-if / data-each 等)が完了したタイミングで発火します。
110
- * 外部スクリプトがバインド完了を契機に同期処理を行うために利用できます。
111
- *
112
- * @param target バインド対象要素
113
- * @param bindArg バインド時に使用したネストキー(指定がない場合は null)
114
- * @param reason 変更理由
115
- */
116
- static bindComplete(target, bindArg = null, reason = 'other') {
117
- HaoriEvent.dispatch(target, 'bindcomplete', { bindArg, reason });
118
- }
119
- /**
120
- * eachupdateイベントを発火します。
121
- *
122
- * @param target data-each要素
123
- * @param added 追加された行のキー
124
- * @param removed 削除された行のキー
125
- * @param order 現在の順序
126
- */
127
- static eachUpdate(target, added, removed, order) {
128
- HaoriEvent.dispatch(target, 'eachupdate', {
129
- added,
130
- removed,
131
- order,
132
- total: order.length,
133
- });
134
- }
135
- /**
136
- * rowaddイベントを発火します。
137
- *
138
- * @param target 行要素
139
- * @param key 行キー
140
- * @param index インデックス
141
- * @param item 行データ
142
- */
143
- static rowAdd(target, key, index, item) {
144
- HaoriEvent.dispatch(target, 'rowadd', { key, index, item });
145
- }
146
- /**
147
- * rowremoveイベントを発火します。
148
- *
149
- * @param target 行要素
150
- * @param key 行キー
151
- * @param index インデックス
152
- */
153
- static rowRemove(target, key, index) {
154
- HaoriEvent.dispatch(target, 'rowremove', { key, index });
155
- }
156
- /**
157
- * rowmoveイベントを発火します。
158
- *
159
- * @param target 行要素
160
- * @param key 行キー
161
- * @param from 移動前インデックス
162
- * @param to 移動後インデックス
163
- */
164
- static rowMove(target, key, from, to) {
165
- HaoriEvent.dispatch(target, 'rowmove', { key, from, to });
166
- }
167
- /**
168
- * showイベントを発火します。
169
- *
170
- * @param target data-if要素
171
- */
172
- static show(target) {
173
- HaoriEvent.dispatch(target, 'show', { visible: true });
174
- }
175
- /**
176
- * hideイベントを発火します。
177
- *
178
- * @param target data-if要素
179
- */
180
- static hide(target) {
181
- HaoriEvent.dispatch(target, 'hide', { visible: false });
182
- }
183
- /**
184
- * fetchstartイベントを発火します。
185
- *
186
- * @param target 起点要素
187
- * @param url フェッチURL
188
- * @param options フェッチオプション
189
- * @param payload 送信データ
190
- * @param metadata runtime とメソッド変換情報。
191
- * @return 戻り値はありません。
192
- */
193
- static fetchStart(target, url, options, payload, metadata) {
194
- HaoriEvent.dispatch(target, 'fetchstart', {
195
- url,
196
- options: options || {},
197
- payload,
198
- startedAt: performance.now(),
199
- ...metadata,
200
- });
201
- }
202
- /**
203
- * fetchendイベントを発火します。
204
- *
205
- * @param target 起点要素
206
- * @param url フェッチURL
207
- * @param status HTTPステータス
208
- * @param startedAt 開始時刻
209
- */
210
- static fetchEnd(target, url, status, startedAt) {
211
- HaoriEvent.dispatch(target, 'fetchend', {
212
- url,
213
- status,
214
- durationMs: performance.now() - startedAt,
215
- });
216
- }
217
- /**
218
- * fetcherrorイベントを発火します。
219
- *
220
- * @param target 起点要素
221
- * @param url フェッチURL
222
- * @param error エラー内容
223
- * @param status HTTPステータス(存在する場合)
224
- * @param startedAt 開始時刻(存在する場合)
225
- */
226
- static fetchError(target, url, error, status, startedAt) {
227
- HaoriEvent.dispatch(target, 'fetcherror', {
228
- url,
229
- status,
230
- error,
231
- durationMs: startedAt ? performance.now() - startedAt : undefined,
232
- });
233
- }
234
- }
235
- //# sourceMappingURL=event.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"event.js","sourceRoot":"","sources":["../../src/event.ts"],"names":[],"mappings":"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"}
@@ -1,66 +0,0 @@
1
- /**
2
- * @fileoverview イベント振り分け機能
3
- *
4
- * クリック/変更/ロード/ポップステートイベントを検出し Procedure に委譲します。
5
- */
6
- /**
7
- * イベントの振り分けを行うクラスです。
8
- */
9
- export default class EventDispatcher {
10
- /** Haori が history.state に埋め込む状態キー */
11
- private static readonly HISTORY_STATE_KEY;
12
- /** ルート要素 */
13
- private readonly root;
14
- /** クリックデリゲータ */
15
- private readonly onClick;
16
- /** 変更デリゲータ */
17
- private readonly onChange;
18
- /** ロードデリゲータ(キャプチャで拾う) */
19
- private readonly onLoadCapture;
20
- /** ページ全体のロード完了時の処理 */
21
- private readonly onWindowLoad;
22
- /**
23
- * popstate デリゲータ(Haori が管理する履歴に戻った場合だけページをリロード)。
24
- *
25
- * @param event popstate イベント
26
- */
27
- private readonly onPopstate;
28
- /**
29
- * コンストラクタ。
30
- *
31
- * @param root 監視対象のルート要素(デフォルトは document )
32
- */
33
- constructor(root?: Document | HTMLElement);
34
- /**
35
- * イベントリスナーの登録を開始します。
36
- * クリック、変更、ロード、popstate イベントを監視し、対応するProcedureを実行します。
37
- */
38
- start(): void;
39
- /**
40
- * イベントリスナーの登録を停止します。
41
- */
42
- stop(): void;
43
- /**
44
- * イベントを処理し、対応するProcedureを実行します。
45
- *
46
- * @param event 発生したイベント
47
- * @param type イベントタイプ('click', 'change', 'load'など)
48
- */
49
- private delegate;
50
- /**
51
- * イベントのターゲットから HTMLElement を取得します。
52
- *
53
- * @param target イベントのターゲット
54
- * @param type イベントタイプ。click の場合のみ祖先委譲を行う
55
- * @returns HTMLElement または null
56
- */
57
- private getElementFromTarget;
58
- /**
59
- * data-click-* 属性を持つ最も近い祖先要素を返します。
60
- *
61
- * @param element 探索開始要素
62
- * @returns 処理対象要素。見つからない場合は null
63
- */
64
- private findClickableElement;
65
- }
66
- //# sourceMappingURL=event_dispatcher.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"event_dispatcher.d.ts","sourceRoot":"","sources":["../../src/event_dispatcher.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,eAAe;IAClC,sCAAsC;IACtC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAA2B;IAEpE,YAAY;IACZ,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAyB;IAE9C,gBAAgB;IAChB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmD;IAE3E,cAAc;IACd,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoD;IAE7E,yBAAyB;IACzB,OAAO,CAAC,QAAQ,CAAC,aAAa,CACC;IAE/B,sBAAsB;IACtB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAO3B;IAEF;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,UAAU,CAMzB;IAEF;;;;OAIG;gBACS,IAAI,GAAE,QAAQ,GAAG,WAAsB;IAInD;;;OAGG;IACH,KAAK,IAAI,IAAI;IAWb;;OAEG;IACH,IAAI,IAAI,IAAI;IAQZ;;;;;OAKG;IACH,OAAO,CAAC,QAAQ;IA8ChB;;;;;;OAMG;IACH,OAAO,CAAC,oBAAoB;IA0B5B;;;;;OAKG;IACH,OAAO,CAAC,oBAAoB;CAY7B"}
@@ -1,167 +0,0 @@
1
- /**
2
- * @fileoverview イベント振り分け機能
3
- *
4
- * クリック/変更/ロード/ポップステートイベントを検出し Procedure に委譲します。
5
- */
6
- import Fragment, { ElementFragment } from './fragment';
7
- import Procedure from './procedure';
8
- import Log from './log';
9
- /**
10
- * イベントの振り分けを行うクラスです。
11
- */
12
- class EventDispatcher {
13
- /**
14
- * コンストラクタ。
15
- *
16
- * @param root 監視対象のルート要素(デフォルトは document )
17
- */
18
- constructor(root = document) {
19
- /** クリックデリゲータ */
20
- this.onClick = (event) => this.delegate(event, 'click');
21
- /** 変更デリゲータ */
22
- this.onChange = (event) => this.delegate(event, 'change');
23
- /** ロードデリゲータ(キャプチャで拾う) */
24
- this.onLoadCapture = (event) => this.delegate(event, 'load');
25
- /** ページ全体のロード完了時の処理 */
26
- this.onWindowLoad = () => {
27
- // ページロード時にも load を1回ディスパッチ
28
- const html = document.documentElement;
29
- const fragment = Fragment.get(html);
30
- if (fragment) {
31
- void new Procedure(fragment, 'load').run();
32
- }
33
- };
34
- /**
35
- * popstate デリゲータ(Haori が管理する履歴に戻った場合だけページをリロード)。
36
- *
37
- * @param event popstate イベント
38
- */
39
- this.onPopstate = (event) => {
40
- const state = event.state;
41
- if (!state || state[EventDispatcher.HISTORY_STATE_KEY] !== true) {
42
- return;
43
- }
44
- location.reload();
45
- };
46
- this.root = root;
47
- }
48
- /**
49
- * イベントリスナーの登録を開始します。
50
- * クリック、変更、ロード、popstate イベントを監視し、対応するProcedureを実行します。
51
- */
52
- start() {
53
- this.root.addEventListener('click', this.onClick);
54
- this.root.addEventListener('change', this.onChange);
55
- // load は非バブルなのでキャプチャで拾う
56
- this.root.addEventListener('load', this.onLoadCapture, true);
57
- // ページ全体のロード
58
- window.addEventListener('load', this.onWindowLoad, { once: true });
59
- // ブラウザの戻る・進む操作
60
- window.addEventListener('popstate', this.onPopstate);
61
- }
62
- /**
63
- * イベントリスナーの登録を停止します。
64
- */
65
- stop() {
66
- this.root.removeEventListener('click', this.onClick);
67
- this.root.removeEventListener('change', this.onChange);
68
- this.root.removeEventListener('load', this.onLoadCapture, true);
69
- window.removeEventListener('load', this.onWindowLoad);
70
- window.removeEventListener('popstate', this.onPopstate);
71
- }
72
- /**
73
- * イベントを処理し、対応するProcedureを実行します。
74
- *
75
- * @param event 発生したイベント
76
- * @param type イベントタイプ('click', 'change', 'load'など)
77
- */
78
- delegate(event, type) {
79
- const element = this.getElementFromTarget(event.target, type);
80
- if (!element) {
81
- return;
82
- }
83
- // data-{event}-prevent: ネイティブのデフォルト動作(type="submit" のフォーム送信や
84
- // <a href> の遷移など)を抑止する。delegate はイベントリスナー内で同期実行される
85
- // ため、ここで preventDefault すれば data-click-defer と併用してもデフォルト動作を
86
- // 確実に止められる(伝播は止めないので他ライブラリのハンドラには影響しない)。
87
- if (element.hasAttribute(`data-${type}-prevent`)) {
88
- event.preventDefault();
89
- }
90
- const fragment = Fragment.get(element);
91
- if (!fragment) {
92
- return;
93
- }
94
- // changeイベントの場合、DOM値と同期
95
- if (type === 'change' && fragment instanceof ElementFragment) {
96
- fragment.syncValue();
97
- }
98
- const runProcedure = () => {
99
- new Procedure(fragment, type, event).run().catch(error => {
100
- Log.error('[Haori]', 'Procedure execution error:', error);
101
- });
102
- };
103
- // data-click-defer 指定時は、Haori の click 処理を次フレーム(または次マクロ
104
- // タスク)へ遅延する。これにより Bootstrap など他ライブラリの「同一クリック
105
- // イベント中に同期実行される」ハンドラ(collapse トグル等)が先に完了し、
106
- // Haori の reset/copy 等による DOM 変更との競合を避けられる。
107
- if (type === 'click' && element.hasAttribute('data-click-defer')) {
108
- if (typeof requestAnimationFrame !== 'undefined') {
109
- requestAnimationFrame(() => runProcedure());
110
- }
111
- else {
112
- setTimeout(runProcedure, 0);
113
- }
114
- return;
115
- }
116
- runProcedure();
117
- }
118
- /**
119
- * イベントのターゲットから HTMLElement を取得します。
120
- *
121
- * @param target イベントのターゲット
122
- * @param type イベントタイプ。click の場合のみ祖先委譲を行う
123
- * @returns HTMLElement または null
124
- */
125
- getElementFromTarget(target, type) {
126
- if (!target) {
127
- return null;
128
- }
129
- if (target instanceof HTMLElement) {
130
- if (type === 'click') {
131
- return this.findClickableElement(target);
132
- }
133
- return target;
134
- }
135
- if (target instanceof Node) {
136
- const element = target.parentElement;
137
- if (!element) {
138
- return null;
139
- }
140
- if (type === 'click') {
141
- return this.findClickableElement(element);
142
- }
143
- return element;
144
- }
145
- return null;
146
- }
147
- /**
148
- * data-click-* 属性を持つ最も近い祖先要素を返します。
149
- *
150
- * @param element 探索開始要素
151
- * @returns 処理対象要素。見つからない場合は null
152
- */
153
- findClickableElement(element) {
154
- let current = element;
155
- while (current) {
156
- if (current.getAttributeNames().some(name => name.startsWith('data-click-'))) {
157
- return current;
158
- }
159
- current = current.parentElement;
160
- }
161
- return null;
162
- }
163
- }
164
- /** Haori が history.state に埋め込む状態キー */
165
- EventDispatcher.HISTORY_STATE_KEY = '__haoriHistoryState__';
166
- export default EventDispatcher;
167
- //# sourceMappingURL=event_dispatcher.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"event_dispatcher.js","sourceRoot":"","sources":["../../src/event_dispatcher.ts"],"names":[],"mappings":"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"}