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
@@ -1,636 +0,0 @@
1
- /* @vitest-environment jsdom */
2
- /**
3
- * @fileoverview Form機能(getValues, setValues, addErrorMessage)のテスト
4
- */
5
- import { describe, it, expect, beforeEach, afterEach } from 'vitest';
6
- import Core from '../src/core';
7
- import Form from '../src/form';
8
- import Fragment from '../src/fragment';
9
- import { waitForDomSettled } from './helpers/async';
10
- describe('Form', () => {
11
- let container;
12
- const originalLocation = window.location;
13
- beforeEach(() => {
14
- container = document.createElement('div');
15
- document.body.appendChild(container);
16
- Object.defineProperty(window, 'location', {
17
- value: { ...originalLocation, search: '' },
18
- writable: true,
19
- });
20
- });
21
- afterEach(() => {
22
- document.body.removeChild(container);
23
- Object.defineProperty(window, 'location', {
24
- value: originalLocation,
25
- writable: true,
26
- });
27
- });
28
- describe('getValues', () => {
29
- it('should get simple values', async () => {
30
- container.innerHTML = `
31
- <form>
32
- <input type="text" name="name" value="田中太郎">
33
- <input type="number" name="age" value="25">
34
- <input type="email" name="email" value="tanaka@example.com">
35
- </form>
36
- `;
37
- await Core.scan(container);
38
- await waitForDomSettled();
39
- const form = container.querySelector('form');
40
- const fragment = Fragment.get(form);
41
- const values = Form.getValues(fragment);
42
- expect(values.name).toBe('田中太郎');
43
- // type="number" は数値型として収集される
44
- expect(values.age).toBe(25);
45
- expect(values.email).toBe('tanaka@example.com');
46
- });
47
- it('should get nested object values with data-form-object', async () => {
48
- container.innerHTML = `
49
- <form>
50
- <input type="text" name="name" value="田中太郎">
51
- <div data-form-object="address">
52
- <input type="text" name="city" value="東京">
53
- <input type="text" name="street" value="渋谷区1-1-1">
54
- <input type="text" name="zip" value="150-0001">
55
- </div>
56
- </form>
57
- `;
58
- await Core.scan(container);
59
- await waitForDomSettled();
60
- const form = container.querySelector('form');
61
- const fragment = Fragment.get(form);
62
- const values = Form.getValues(fragment);
63
- expect(values.name).toBe('田中太郎');
64
- expect(values.address).toEqual({
65
- city: '東京',
66
- street: '渋谷区1-1-1',
67
- zip: '150-0001',
68
- });
69
- });
70
- it('should get deeply nested object values', async () => {
71
- container.innerHTML = `
72
- <form>
73
- <input type="text" name="name" value="会社A">
74
- <div data-form-object="location">
75
- <input type="text" name="country" value="日本">
76
- <div data-form-object="address">
77
- <input type="text" name="city" value="東京">
78
- <input type="text" name="district" value="渋谷区">
79
- </div>
80
- </div>
81
- </form>
82
- `;
83
- await Core.scan(container);
84
- await waitForDomSettled();
85
- const form = container.querySelector('form');
86
- const fragment = Fragment.get(form);
87
- const values = Form.getValues(fragment);
88
- expect(values.name).toBe('会社A');
89
- expect(values.location).toEqual({
90
- country: '日本',
91
- address: {
92
- city: '東京',
93
- district: '渋谷区',
94
- },
95
- });
96
- });
97
- it('should get array values with data-form-list on container', async () => {
98
- // data-form-listは入力要素ではなくコンテナ要素に付ける
99
- // 入力要素に直接付けた場合は配列にならない(最後の値のみ取得される)
100
- container.innerHTML = `
101
- <form>
102
- <div data-form-list="tags">
103
- <div><input type="text" name="value" value="タグ1"></div>
104
- <div><input type="text" name="value" value="タグ2"></div>
105
- <div><input type="text" name="value" value="タグ3"></div>
106
- </div>
107
- </form>
108
- `;
109
- await Core.scan(container);
110
- await waitForDomSettled();
111
- const form = container.querySelector('form');
112
- const fragment = Fragment.get(form);
113
- const values = Form.getValues(fragment);
114
- expect(values.tags).toEqual([
115
- { value: 'タグ1' },
116
- { value: 'タグ2' },
117
- { value: 'タグ3' },
118
- ]);
119
- });
120
- it('should get object array values with data-form-list on container', async () => {
121
- container.innerHTML = `
122
- <form>
123
- <div data-form-list="items">
124
- <div>
125
- <input type="text" name="name" value="商品A">
126
- <input type="number" name="price" value="100">
127
- </div>
128
- <div>
129
- <input type="text" name="name" value="商品B">
130
- <input type="number" name="price" value="200">
131
- </div>
132
- <div>
133
- <input type="text" name="name" value="商品C">
134
- <input type="number" name="price" value="300">
135
- </div>
136
- </div>
137
- </form>
138
- `;
139
- await Core.scan(container);
140
- await waitForDomSettled();
141
- const form = container.querySelector('form');
142
- const fragment = Fragment.get(form);
143
- const values = Form.getValues(fragment);
144
- expect(values.items).toEqual([
145
- { name: '商品A', price: 100 },
146
- { name: '商品B', price: 200 },
147
- { name: '商品C', price: 300 },
148
- ]);
149
- });
150
- it('should get nested array with objects', async () => {
151
- container.innerHTML = `
152
- <form>
153
- <input type="text" name="orderName" value="注文1">
154
- <div data-form-list="products">
155
- <div>
156
- <input type="text" name="productName" value="商品X">
157
- <input type="number" name="quantity" value="2">
158
- <div data-form-object="details">
159
- <input type="text" name="color" value="赤">
160
- <input type="text" name="size" value="M">
161
- </div>
162
- </div>
163
- <div>
164
- <input type="text" name="productName" value="商品Y">
165
- <input type="number" name="quantity" value="1">
166
- <div data-form-object="details">
167
- <input type="text" name="color" value="青">
168
- <input type="text" name="size" value="L">
169
- </div>
170
- </div>
171
- </div>
172
- </form>
173
- `;
174
- await Core.scan(container);
175
- await waitForDomSettled();
176
- const form = container.querySelector('form');
177
- const fragment = Fragment.get(form);
178
- const values = Form.getValues(fragment);
179
- expect(values.orderName).toBe('注文1');
180
- expect(values.products).toEqual([
181
- {
182
- productName: '商品X',
183
- quantity: 2,
184
- details: { color: '赤', size: 'M' },
185
- },
186
- {
187
- productName: '商品Y',
188
- quantity: 1,
189
- details: { color: '青', size: 'L' },
190
- },
191
- ]);
192
- });
193
- it('should get complex nested structure with multiple arrays', async () => {
194
- container.innerHTML = `
195
- <form>
196
- <input type="text" name="companyName" value="会社X">
197
- <div data-form-list="departments">
198
- <div>
199
- <input type="text" name="deptName" value="営業部">
200
- <div data-form-list="employees">
201
- <div>
202
- <input type="text" name="empName" value="田中">
203
- <input type="text" name="role" value="部長">
204
- </div>
205
- <div>
206
- <input type="text" name="empName" value="佐藤">
207
- <input type="text" name="role" value="課長">
208
- </div>
209
- </div>
210
- </div>
211
- <div>
212
- <input type="text" name="deptName" value="開発部">
213
- <div data-form-list="employees">
214
- <div>
215
- <input type="text" name="empName" value="鈴木">
216
- <input type="text" name="role" value="リーダー">
217
- </div>
218
- </div>
219
- </div>
220
- </div>
221
- </form>
222
- `;
223
- await Core.scan(container);
224
- await waitForDomSettled();
225
- const form = container.querySelector('form');
226
- const fragment = Fragment.get(form);
227
- const values = Form.getValues(fragment);
228
- expect(values.companyName).toBe('会社X');
229
- expect(values.departments).toEqual([
230
- {
231
- deptName: '営業部',
232
- employees: [
233
- { empName: '田中', role: '部長' },
234
- { empName: '佐藤', role: '課長' },
235
- ],
236
- },
237
- {
238
- deptName: '開発部',
239
- employees: [{ empName: '鈴木', role: 'リーダー' }],
240
- },
241
- ]);
242
- });
243
- });
244
- describe('setValues', () => {
245
- it('should set simple values', async () => {
246
- container.innerHTML = `
247
- <form>
248
- <input type="text" name="name" value="">
249
- <input type="number" name="age" value="">
250
- <input type="email" name="email" value="">
251
- </form>
252
- `;
253
- await Core.scan(container);
254
- await waitForDomSettled();
255
- const form = container.querySelector('form');
256
- const fragment = Fragment.get(form);
257
- await Form.setValues(fragment, {
258
- name: '山田花子',
259
- age: 30,
260
- email: 'yamada@example.com',
261
- });
262
- await waitForDomSettled();
263
- const nameInput = container.querySelector('input[name="name"]');
264
- const ageInput = container.querySelector('input[name="age"]');
265
- const emailInput = container.querySelector('input[name="email"]');
266
- expect(nameInput.value).toBe('山田花子');
267
- expect(ageInput.value).toBe('30');
268
- expect(emailInput.value).toBe('yamada@example.com');
269
- });
270
- it('should set nested object values', async () => {
271
- container.innerHTML = `
272
- <form>
273
- <input type="text" name="name" value="">
274
- <div data-form-object="address">
275
- <input type="text" name="city" value="">
276
- <input type="text" name="street" value="">
277
- </div>
278
- </form>
279
- `;
280
- await Core.scan(container);
281
- await waitForDomSettled();
282
- const form = container.querySelector('form');
283
- const fragment = Fragment.get(form);
284
- await Form.setValues(fragment, {
285
- name: '鈴木一郎',
286
- address: {
287
- city: '大阪',
288
- street: '北区2-2-2',
289
- },
290
- });
291
- await waitForDomSettled();
292
- const nameInput = container.querySelector('input[name="name"]');
293
- const cityInput = container.querySelector('input[name="city"]');
294
- const streetInput = container.querySelector('input[name="street"]');
295
- expect(nameInput.value).toBe('鈴木一郎');
296
- expect(cityInput.value).toBe('大阪');
297
- expect(streetInput.value).toBe('北区2-2-2');
298
- });
299
- it('should set deeply nested object values', async () => {
300
- container.innerHTML = `
301
- <form>
302
- <div data-form-object="company">
303
- <input type="text" name="name" value="">
304
- <div data-form-object="location">
305
- <input type="text" name="country" value="">
306
- <div data-form-object="address">
307
- <input type="text" name="city" value="">
308
- </div>
309
- </div>
310
- </div>
311
- </form>
312
- `;
313
- await Core.scan(container);
314
- await waitForDomSettled();
315
- const form = container.querySelector('form');
316
- const fragment = Fragment.get(form);
317
- await Form.setValues(fragment, {
318
- company: {
319
- name: '株式会社テスト',
320
- location: {
321
- country: '日本',
322
- address: {
323
- city: '福岡',
324
- },
325
- },
326
- },
327
- });
328
- await waitForDomSettled();
329
- const nameInput = container.querySelector('input[name="name"]');
330
- const countryInput = container.querySelector('input[name="country"]');
331
- const cityInput = container.querySelector('input[name="city"]');
332
- expect(nameInput.value).toBe('株式会社テスト');
333
- expect(countryInput.value).toBe('日本');
334
- expect(cityInput.value).toBe('福岡');
335
- });
336
- it('should set object array values', async () => {
337
- container.innerHTML = `
338
- <form>
339
- <div data-form-list="items">
340
- <div>
341
- <input type="text" name="name" value="">
342
- <input type="number" name="price" value="">
343
- </div>
344
- <div>
345
- <input type="text" name="name" value="">
346
- <input type="number" name="price" value="">
347
- </div>
348
- </div>
349
- </form>
350
- `;
351
- await Core.scan(container);
352
- await waitForDomSettled();
353
- const form = container.querySelector('form');
354
- const fragment = Fragment.get(form);
355
- await Form.setValues(fragment, {
356
- items: [
357
- { name: '新商品A', price: 500 },
358
- { name: '新商品B', price: 600 },
359
- ],
360
- });
361
- await waitForDomSettled();
362
- const nameInputs = container.querySelectorAll('input[name="name"]');
363
- const priceInputs = container.querySelectorAll('input[name="price"]');
364
- expect(nameInputs[0].value).toBe('新商品A');
365
- expect(priceInputs[0].value).toBe('500');
366
- expect(nameInputs[1].value).toBe('新商品B');
367
- expect(priceInputs[1].value).toBe('600');
368
- });
369
- it('should set nested array with objects', async () => {
370
- container.innerHTML = `
371
- <form>
372
- <div data-form-list="orders">
373
- <div>
374
- <input type="text" name="orderId" value="">
375
- <div data-form-object="customer">
376
- <input type="text" name="name" value="">
377
- <input type="text" name="phone" value="">
378
- </div>
379
- </div>
380
- </div>
381
- </form>
382
- `;
383
- await Core.scan(container);
384
- await waitForDomSettled();
385
- const form = container.querySelector('form');
386
- const fragment = Fragment.get(form);
387
- await Form.setValues(fragment, {
388
- orders: [
389
- {
390
- orderId: 'ORD-001',
391
- customer: {
392
- name: '高橋',
393
- phone: '090-1234-5678',
394
- },
395
- },
396
- ],
397
- });
398
- await waitForDomSettled();
399
- const orderIdInput = container.querySelector('input[name="orderId"]');
400
- const nameInput = container.querySelector('input[name="name"]');
401
- const phoneInput = container.querySelector('input[name="phone"]');
402
- expect(orderIdInput.value).toBe('ORD-001');
403
- expect(nameInput.value).toBe('高橋');
404
- expect(phoneInput.value).toBe('090-1234-5678');
405
- });
406
- it('should skip missing URL params when data-url-param syncs a form', async () => {
407
- Object.defineProperty(window, 'location', {
408
- value: { ...originalLocation, search: '?page=2' },
409
- writable: true,
410
- });
411
- container.innerHTML = `
412
- <form data-url-param>
413
- <input type="text" name="q" value="">
414
- <input type="text" name="page" value="">
415
- </form>
416
- `;
417
- await Core.scan(container);
418
- await waitForDomSettled();
419
- const qInput = container.querySelector('input[name="q"]');
420
- const pageInput = container.querySelector('input[name="page"]');
421
- expect(qInput.value).toBe('');
422
- expect(pageInput.value).toBe('2');
423
- });
424
- });
425
- describe('addErrorMessage', () => {
426
- it('should add error message to simple input', async () => {
427
- container.innerHTML = `
428
- <form>
429
- <input type="text" name="name" value="">
430
- <input type="email" name="email" value="">
431
- </form>
432
- `;
433
- await Core.scan(container);
434
- await waitForDomSettled();
435
- const form = container.querySelector('form');
436
- const fragment = Fragment.get(form);
437
- await Form.addErrorMessage(fragment, 'name', '名前は必須です');
438
- await waitForDomSettled();
439
- const nameInput = container.querySelector('input[name="name"]');
440
- const parentElement = nameInput.parentElement;
441
- expect(parentElement.getAttribute('data-message')).toBe('名前は必須です');
442
- });
443
- it('should add error message to nested object field', async () => {
444
- container.innerHTML = `
445
- <form>
446
- <div data-form-object="address">
447
- <input type="text" name="city" value="">
448
- <input type="text" name="street" value="">
449
- </div>
450
- </form>
451
- `;
452
- await Core.scan(container);
453
- await waitForDomSettled();
454
- const form = container.querySelector('form');
455
- const fragment = Fragment.get(form);
456
- await Form.addErrorMessage(fragment, 'address.city', '市区町村は必須です');
457
- await waitForDomSettled();
458
- const cityInput = container.querySelector('input[name="city"]');
459
- const parentElement = cityInput.parentElement;
460
- expect(parentElement.getAttribute('data-message')).toBe('市区町村は必須です');
461
- });
462
- it('should add error message to deeply nested field', async () => {
463
- container.innerHTML = `
464
- <form>
465
- <div data-form-object="company">
466
- <div data-form-object="location">
467
- <input type="text" name="country" value="">
468
- </div>
469
- </div>
470
- </form>
471
- `;
472
- await Core.scan(container);
473
- await waitForDomSettled();
474
- const form = container.querySelector('form');
475
- const fragment = Fragment.get(form);
476
- await Form.addErrorMessage(fragment, 'company.location.country', '国名は必須です');
477
- await waitForDomSettled();
478
- const countryInput = container.querySelector('input[name="country"]');
479
- const parentElement = countryInput.parentElement;
480
- expect(parentElement.getAttribute('data-message')).toBe('国名は必須です');
481
- });
482
- it('should add error message to array item field', async () => {
483
- container.innerHTML = `
484
- <form>
485
- <div data-form-list="items">
486
- <div data-row="0">
487
- <input type="text" name="name" value="">
488
- </div>
489
- <div data-row="1">
490
- <input type="text" name="name" value="">
491
- </div>
492
- <div data-row="2">
493
- <input type="text" name="name" value="">
494
- </div>
495
- </div>
496
- </form>
497
- `;
498
- await Core.scan(container);
499
- await waitForDomSettled();
500
- const form = container.querySelector('form');
501
- const fragment = Fragment.get(form);
502
- // 2番目の配列要素にエラーを追加
503
- await Form.addErrorMessage(fragment, 'items[1].name', '2番目の項目名は必須です');
504
- await waitForDomSettled();
505
- const rows = container.querySelectorAll('[data-row]');
506
- const secondRowInput = rows[1].querySelector('input[name="name"]');
507
- const parentElement = secondRowInput.parentElement;
508
- expect(parentElement.getAttribute('data-message')).toBe('2番目の項目名は必須です');
509
- });
510
- it('should add error message to nested field in array item', async () => {
511
- container.innerHTML = `
512
- <form>
513
- <div data-form-list="orders">
514
- <div data-row="0">
515
- <div data-form-object="customer">
516
- <input type="text" name="name" value="">
517
- </div>
518
- </div>
519
- <div data-row="1">
520
- <div data-form-object="customer">
521
- <input type="text" name="name" value="">
522
- </div>
523
- </div>
524
- </div>
525
- </form>
526
- `;
527
- await Core.scan(container);
528
- await waitForDomSettled();
529
- const form = container.querySelector('form');
530
- const fragment = Fragment.get(form);
531
- await Form.addErrorMessage(fragment, 'orders[1].customer.name', '顧客名は必須です');
532
- await waitForDomSettled();
533
- const rows = container.querySelectorAll('[data-row]');
534
- const secondRowInput = rows[1].querySelector('input[name="name"]');
535
- const parentElement = secondRowInput.parentElement;
536
- expect(parentElement.getAttribute('data-message')).toBe('顧客名は必須です');
537
- });
538
- it('should add error message to form when key not found', async () => {
539
- container.innerHTML = `
540
- <form>
541
- <input type="text" name="name" value="">
542
- </form>
543
- `;
544
- await Core.scan(container);
545
- await waitForDomSettled();
546
- const form = container.querySelector('form');
547
- const fragment = Fragment.get(form);
548
- await Form.addErrorMessage(fragment, 'nonexistent', 'フォーム全体のエラー');
549
- await waitForDomSettled();
550
- expect(form.getAttribute('data-message')).toBe('フォーム全体のエラー');
551
- });
552
- it('should clear messages with Form.clearMessages', async () => {
553
- container.innerHTML = `
554
- <form>
555
- <input type="text" name="name" value="">
556
- <div data-form-object="address">
557
- <input type="text" name="city" value="">
558
- </div>
559
- </form>
560
- `;
561
- await Core.scan(container);
562
- await waitForDomSettled();
563
- const form = container.querySelector('form');
564
- const fragment = Fragment.get(form);
565
- // エラーメッセージを追加
566
- await Form.addErrorMessage(fragment, 'name', 'エラー1');
567
- await Form.addErrorMessage(fragment, 'address.city', 'エラー2');
568
- await waitForDomSettled();
569
- // メッセージをクリア
570
- await Form.clearMessages(fragment);
571
- await waitForDomSettled();
572
- const messagesAfter = container.querySelectorAll('[data-message]');
573
- expect(messagesAfter.length).toBe(0);
574
- });
575
- });
576
- describe('getValues and setValues roundtrip', () => {
577
- it('should maintain data integrity with complex nested structure', async () => {
578
- container.innerHTML = `
579
- <form>
580
- <input type="text" name="title" value="">
581
- <div data-form-object="metadata">
582
- <input type="text" name="author" value="">
583
- <input type="text" name="version" value="">
584
- </div>
585
- <div data-form-list="sections">
586
- <div>
587
- <input type="text" name="heading" value="">
588
- <div data-form-list="paragraphs">
589
- <div>
590
- <input type="text" name="text" value="">
591
- </div>
592
- <div>
593
- <input type="text" name="text" value="">
594
- </div>
595
- </div>
596
- </div>
597
- <div>
598
- <input type="text" name="heading" value="">
599
- <div data-form-list="paragraphs">
600
- <div>
601
- <input type="text" name="text" value="">
602
- </div>
603
- </div>
604
- </div>
605
- </div>
606
- </form>
607
- `;
608
- await Core.scan(container);
609
- await waitForDomSettled();
610
- const form = container.querySelector('form');
611
- const fragment = Fragment.get(form);
612
- const originalData = {
613
- title: 'ドキュメントタイトル',
614
- metadata: {
615
- author: '著者名',
616
- version: '0.1.0',
617
- },
618
- sections: [
619
- {
620
- heading: 'セクション1',
621
- paragraphs: [{ text: '段落1-1' }, { text: '段落1-2' }],
622
- },
623
- {
624
- heading: 'セクション2',
625
- paragraphs: [{ text: '段落2-1' }],
626
- },
627
- ],
628
- };
629
- await Form.setValues(fragment, originalData);
630
- await waitForDomSettled();
631
- const retrievedData = Form.getValues(fragment);
632
- expect(retrievedData).toEqual(originalData);
633
- });
634
- });
635
- });
636
- //# sourceMappingURL=form.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"form.test.js","sourceRoot":"","sources":["../../tests/form.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=fragment.test.d.ts.map