@xxmachina/components 19.0.0-preview.9 → 19.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 (256) hide show
  1. package/extras/flow/index.d.ts +183 -0
  2. package/features/command/index.d.ts +67 -1
  3. package/features/query/index.d.ts +117 -1
  4. package/fesm2022/xxmachina-components-extras-flow.mjs +389 -0
  5. package/fesm2022/xxmachina-components-extras-flow.mjs.map +1 -0
  6. package/fesm2022/xxmachina-components-features-command.mjs +7 -8
  7. package/fesm2022/xxmachina-components-features-command.mjs.map +1 -1
  8. package/fesm2022/xxmachina-components-features-query.mjs +120 -96
  9. package/fesm2022/xxmachina-components-features-query.mjs.map +1 -1
  10. package/fesm2022/xxmachina-components-groups-command-form.mjs +3 -3
  11. package/fesm2022/xxmachina-components-groups-command-form.mjs.map +1 -1
  12. package/fesm2022/xxmachina-components-groups-query-form.mjs +110 -24
  13. package/fesm2022/xxmachina-components-groups-query-form.mjs.map +1 -1
  14. package/fesm2022/xxmachina-components-molecules-calendar-paginator.mjs +4 -4
  15. package/fesm2022/xxmachina-components-molecules-calendar-paginator.mjs.map +1 -1
  16. package/fesm2022/xxmachina-components-molecules-daily-cell.mjs +13 -13
  17. package/fesm2022/xxmachina-components-molecules-daily-cell.mjs.map +1 -1
  18. package/fesm2022/xxmachina-components-molecules-weekly-header.mjs +5 -5
  19. package/fesm2022/xxmachina-components-molecules-weekly-header.mjs.map +1 -1
  20. package/fesm2022/xxmachina-components-organisms-calendar-section.mjs +5 -5
  21. package/fesm2022/xxmachina-components-organisms-calendar-section.mjs.map +1 -1
  22. package/fesm2022/xxmachina-components-organisms-event-input-section.mjs +3 -3
  23. package/fesm2022/xxmachina-components-organisms-event-input-section.mjs.map +1 -1
  24. package/fesm2022/xxmachina-components-organisms-terminal-input-section.mjs +123 -0
  25. package/fesm2022/xxmachina-components-organisms-terminal-input-section.mjs.map +1 -0
  26. package/fesm2022/xxmachina-components-organisms-video-trimmer-section.mjs +6 -6
  27. package/fesm2022/xxmachina-components-organisms-video-trimmer-section.mjs.map +1 -1
  28. package/fesm2022/xxmachina-components-organisms-xterm.mjs +94 -0
  29. package/fesm2022/xxmachina-components-organisms-xterm.mjs.map +1 -0
  30. package/fesm2022/xxmachina-components-pages-command.mjs +196 -48
  31. package/fesm2022/xxmachina-components-pages-command.mjs.map +1 -1
  32. package/fesm2022/xxmachina-components-pages-query.mjs +394 -92
  33. package/fesm2022/xxmachina-components-pages-query.mjs.map +1 -1
  34. package/fesm2022/xxmachina-components-pages-thread.mjs +176 -0
  35. package/fesm2022/xxmachina-components-pages-thread.mjs.map +1 -0
  36. package/fesm2022/{xxmachina-components-routes-commands-command.routes-CeRVzy3Z.mjs → xxmachina-components-routes-commands-command.routes-CSwIdXZg.mjs} +4 -11
  37. package/fesm2022/xxmachina-components-routes-commands-command.routes-CSwIdXZg.mjs.map +1 -0
  38. package/fesm2022/{xxmachina-components-routes-commands-pages.routes-Cm6Yd40h.mjs → xxmachina-components-routes-commands-pages.routes-j2xVop4W.mjs} +4 -4
  39. package/fesm2022/xxmachina-components-routes-commands-pages.routes-j2xVop4W.mjs.map +1 -0
  40. package/fesm2022/xxmachina-components-routes-commands.mjs +8 -3
  41. package/fesm2022/xxmachina-components-routes-commands.mjs.map +1 -1
  42. package/fesm2022/xxmachina-components-routes-pages.mjs +3 -1
  43. package/fesm2022/xxmachina-components-routes-pages.mjs.map +1 -1
  44. package/fesm2022/xxmachina-components-routes-preloading.mjs +3 -3
  45. package/fesm2022/xxmachina-components-routes-preloading.mjs.map +1 -1
  46. package/fesm2022/xxmachina-components-routes-queries-pages.routes-CfrglCIL.mjs +9 -0
  47. package/fesm2022/xxmachina-components-routes-queries-pages.routes-CfrglCIL.mjs.map +1 -0
  48. package/fesm2022/xxmachina-components-routes-queries.mjs +16 -7
  49. package/fesm2022/xxmachina-components-routes-queries.mjs.map +1 -1
  50. package/fesm2022/{xxmachina-components-routes-query-pages.routes-H2vrF7kQ.mjs → xxmachina-components-routes-query-pages.routes-CxTbOJDQ.mjs} +9 -9
  51. package/fesm2022/xxmachina-components-routes-query-pages.routes-CxTbOJDQ.mjs.map +1 -0
  52. package/fesm2022/xxmachina-components-routes-query.mjs +5 -3
  53. package/fesm2022/xxmachina-components-routes-query.mjs.map +1 -1
  54. package/fesm2022/{xxmachina-components-routes-resources-pages.routes-BSjrrV1g.mjs → xxmachina-components-routes-resources-pages.routes-CzjQOxwT.mjs} +4 -4
  55. package/fesm2022/xxmachina-components-routes-resources-pages.routes-CzjQOxwT.mjs.map +1 -0
  56. package/fesm2022/{xxmachina-components-routes-resources-resource.routes-DzGgwitX.mjs → xxmachina-components-routes-resources-resource.routes-C5KpB3KM.mjs} +3 -3
  57. package/fesm2022/xxmachina-components-routes-resources-resource.routes-C5KpB3KM.mjs.map +1 -0
  58. package/fesm2022/xxmachina-components-routes-resources.mjs +8 -6
  59. package/fesm2022/xxmachina-components-routes-resources.mjs.map +1 -1
  60. package/fesm2022/xxmachina-components-routes-side-chat.mjs +4 -112
  61. package/fesm2022/xxmachina-components-routes-side-chat.mjs.map +1 -1
  62. package/fesm2022/xxmachina-components-routes-side.mjs +4 -2
  63. package/fesm2022/xxmachina-components-routes-side.mjs.map +1 -1
  64. package/fesm2022/xxmachina-components-routes-transformer.mjs +99 -0
  65. package/fesm2022/xxmachina-components-routes-transformer.mjs.map +1 -0
  66. package/fesm2022/xxmachina-components-routes-transformers-pages.routes-02pVsNas.mjs +9 -0
  67. package/fesm2022/xxmachina-components-routes-transformers-pages.routes-02pVsNas.mjs.map +1 -0
  68. package/fesm2022/xxmachina-components-routes-transformers.mjs +75 -0
  69. package/fesm2022/xxmachina-components-routes-transformers.mjs.map +1 -0
  70. package/fesm2022/xxmachina-components-routes.mjs +8 -4
  71. package/fesm2022/xxmachina-components-routes.mjs.map +1 -1
  72. package/fesm2022/xxmachina-components-services-app.mjs +30 -0
  73. package/fesm2022/xxmachina-components-services-app.mjs.map +1 -0
  74. package/fesm2022/xxmachina-components-services-assistant.mjs +3 -3
  75. package/fesm2022/xxmachina-components-services-assistant.mjs.map +1 -1
  76. package/fesm2022/xxmachina-components-services-calendar.mjs +3 -3
  77. package/fesm2022/xxmachina-components-services-calendar.mjs.map +1 -1
  78. package/fesm2022/xxmachina-components-services-command.mjs +11 -10
  79. package/fesm2022/xxmachina-components-services-command.mjs.map +1 -1
  80. package/fesm2022/xxmachina-components-services-context.mjs +23 -0
  81. package/fesm2022/xxmachina-components-services-context.mjs.map +1 -0
  82. package/fesm2022/xxmachina-components-services-contract.mjs +4 -4
  83. package/fesm2022/xxmachina-components-services-contract.mjs.map +1 -1
  84. package/fesm2022/xxmachina-components-services-debug.mjs +3 -3
  85. package/fesm2022/xxmachina-components-services-debug.mjs.map +1 -1
  86. package/fesm2022/xxmachina-components-services-forms-query.mjs +13 -3
  87. package/fesm2022/xxmachina-components-services-forms-query.mjs.map +1 -1
  88. package/fesm2022/xxmachina-components-services-forms-schedule.mjs +4 -4
  89. package/fesm2022/xxmachina-components-services-forms-schedule.mjs.map +1 -1
  90. package/fesm2022/xxmachina-components-services-forms-variables.mjs +34 -0
  91. package/fesm2022/xxmachina-components-services-forms-variables.mjs.map +1 -0
  92. package/fesm2022/xxmachina-components-services-graphql.mjs +7 -6
  93. package/fesm2022/xxmachina-components-services-graphql.mjs.map +1 -1
  94. package/fesm2022/xxmachina-components-services-invoice.mjs +7 -4
  95. package/fesm2022/xxmachina-components-services-invoice.mjs.map +1 -1
  96. package/fesm2022/xxmachina-components-services-json-schema.mjs +3 -3
  97. package/fesm2022/xxmachina-components-services-json-schema.mjs.map +1 -1
  98. package/fesm2022/xxmachina-components-services-link.mjs +3 -3
  99. package/fesm2022/xxmachina-components-services-link.mjs.map +1 -1
  100. package/fesm2022/xxmachina-components-services-message.mjs +50 -0
  101. package/fesm2022/xxmachina-components-services-message.mjs.map +1 -0
  102. package/fesm2022/xxmachina-components-services-openai.mjs +113 -0
  103. package/fesm2022/xxmachina-components-services-openai.mjs.map +1 -0
  104. package/fesm2022/xxmachina-components-services-openapi.mjs +5 -5
  105. package/fesm2022/xxmachina-components-services-openapi.mjs.map +1 -1
  106. package/fesm2022/xxmachina-components-services-order.mjs +4 -4
  107. package/fesm2022/xxmachina-components-services-order.mjs.map +1 -1
  108. package/fesm2022/xxmachina-components-services-partner.mjs +4 -4
  109. package/fesm2022/xxmachina-components-services-partner.mjs.map +1 -1
  110. package/fesm2022/xxmachina-components-services-query.mjs +32 -45
  111. package/fesm2022/xxmachina-components-services-query.mjs.map +1 -1
  112. package/fesm2022/xxmachina-components-services-recording.mjs +3 -3
  113. package/fesm2022/xxmachina-components-services-recording.mjs.map +1 -1
  114. package/fesm2022/xxmachina-components-services-schedule.mjs +10 -7
  115. package/fesm2022/xxmachina-components-services-schedule.mjs.map +1 -1
  116. package/fesm2022/xxmachina-components-services-thread.mjs +5 -7
  117. package/fesm2022/xxmachina-components-services-thread.mjs.map +1 -1
  118. package/fesm2022/xxmachina-components-services-transformer.mjs +31 -0
  119. package/fesm2022/xxmachina-components-services-transformer.mjs.map +1 -0
  120. package/fesm2022/xxmachina-components-services-youtube.mjs +3 -3
  121. package/fesm2022/xxmachina-components-services-youtube.mjs.map +1 -1
  122. package/fesm2022/xxmachina-components-templates-agent.mjs +549 -0
  123. package/fesm2022/xxmachina-components-templates-agent.mjs.map +1 -0
  124. package/fesm2022/xxmachina-components-templates-background.mjs +202 -5
  125. package/fesm2022/xxmachina-components-templates-background.mjs.map +1 -1
  126. package/fesm2022/xxmachina-components-templates-invoice-iframe.mjs +3 -3
  127. package/fesm2022/xxmachina-components-templates-invoice-iframe.mjs.map +1 -1
  128. package/fesm2022/xxmachina-components-templates-scheduler.mjs +5 -5
  129. package/fesm2022/xxmachina-components-templates-scheduler.mjs.map +1 -1
  130. package/fesm2022/xxmachina-components-templates-video.mjs +6 -6
  131. package/fesm2022/xxmachina-components-templates-video.mjs.map +1 -1
  132. package/fesm2022/xxmachina-components-validators-query.mjs +2 -2
  133. package/fesm2022/xxmachina-components-validators-query.mjs.map +1 -1
  134. package/fesm2022/xxmachina-components.mjs +218 -39
  135. package/fesm2022/xxmachina-components.mjs.map +1 -1
  136. package/groups/command-form/index.d.ts +13 -1
  137. package/groups/query-form/index.d.ts +54 -1
  138. package/index.d.ts +66 -3
  139. package/molecules/calendar-paginator/index.d.ts +14 -1
  140. package/molecules/daily-cell/index.d.ts +35 -1
  141. package/molecules/weekly-header/index.d.ts +11 -1
  142. package/organisms/calendar-section/index.d.ts +25 -1
  143. package/organisms/event-input-section/index.d.ts +45 -1
  144. package/organisms/terminal-input-section/index.d.ts +37 -0
  145. package/organisms/video-trimmer-section/index.d.ts +30 -1
  146. package/organisms/xterm/index.d.ts +23 -0
  147. package/package.json +65 -17
  148. package/pages/command/index.d.ts +217 -1
  149. package/pages/query/index.d.ts +292 -1
  150. package/pages/thread/index.d.ts +109 -0
  151. package/routes/commands/index.d.ts +5 -1
  152. package/routes/index.d.ts +4 -1
  153. package/routes/pages/index.d.ts +5 -1
  154. package/routes/preloading/index.d.ts +11 -1
  155. package/routes/queries/index.d.ts +5 -1
  156. package/routes/query/index.d.ts +5 -1
  157. package/routes/resources/index.d.ts +5 -1
  158. package/routes/side/chat/index.d.ts +5 -2
  159. package/routes/side/index.d.ts +5 -1
  160. package/routes/transformer/index.d.ts +5 -0
  161. package/routes/transformers/index.d.ts +5 -0
  162. package/services/app/index.d.ts +17 -0
  163. package/services/assistant/index.d.ts +20 -1
  164. package/services/calendar/index.d.ts +13 -1
  165. package/services/command/index.d.ts +54 -1
  166. package/services/context/index.d.ts +10 -0
  167. package/services/contract/index.d.ts +11 -1
  168. package/services/debug/index.d.ts +14 -1
  169. package/services/forms/query/index.d.ts +45 -1
  170. package/services/forms/schedule/index.d.ts +42 -1
  171. package/services/forms/variables/index.d.ts +12 -0
  172. package/services/graphql/index.d.ts +20 -1
  173. package/services/invoice/index.d.ts +19 -1
  174. package/services/json-schema/index.d.ts +15 -1
  175. package/services/link/index.d.ts +13 -1
  176. package/services/message/index.d.ts +23 -0
  177. package/services/openai/index.d.ts +35 -0
  178. package/services/openapi/index.d.ts +17 -1
  179. package/services/order/index.d.ts +13 -1
  180. package/services/partner/index.d.ts +11 -1
  181. package/services/query/index.d.ts +42 -1
  182. package/services/recording/index.d.ts +20 -1
  183. package/services/schedule/index.d.ts +26 -1
  184. package/services/thread/index.d.ts +30 -1
  185. package/services/transformer/index.d.ts +19 -0
  186. package/services/youtube/index.d.ts +10 -1
  187. package/templates/agent/index.d.ts +54 -0
  188. package/templates/background/index.d.ts +44 -1
  189. package/templates/invoice-iframe/index.d.ts +13 -1
  190. package/templates/scheduler/index.d.ts +31 -1
  191. package/templates/video/index.d.ts +36 -1
  192. package/validators/query/index.d.ts +7 -1
  193. package/app.d.ts +0 -7
  194. package/features/command/command.feature.d.ts +0 -63
  195. package/features/query/query.feature.d.ts +0 -92
  196. package/fesm2022/xxmachina-components-routes-commands-command.routes-CeRVzy3Z.mjs.map +0 -1
  197. package/fesm2022/xxmachina-components-routes-commands-pages.routes-Cm6Yd40h.mjs.map +0 -1
  198. package/fesm2022/xxmachina-components-routes-queries-pages.routes-BfWsTCij.mjs +0 -9
  199. package/fesm2022/xxmachina-components-routes-queries-pages.routes-BfWsTCij.mjs.map +0 -1
  200. package/fesm2022/xxmachina-components-routes-query-pages.routes-H2vrF7kQ.mjs.map +0 -1
  201. package/fesm2022/xxmachina-components-routes-resources-pages.routes-BSjrrV1g.mjs.map +0 -1
  202. package/fesm2022/xxmachina-components-routes-resources-resource.routes-DzGgwitX.mjs.map +0 -1
  203. package/fesm2022/xxmachina-components-services-query-config.mjs +0 -47
  204. package/fesm2022/xxmachina-components-services-query-config.mjs.map +0 -1
  205. package/groups/command-form/command-form.group.d.ts +0 -10
  206. package/groups/query-form/query-form.group.d.ts +0 -19
  207. package/molecules/calendar-paginator/calendar-paginator.molecule.d.ts +0 -11
  208. package/molecules/daily-cell/daily-cell.molecule.d.ts +0 -32
  209. package/molecules/weekly-header/weekly-header.molecule.d.ts +0 -8
  210. package/organisms/calendar-section/calendar-section.organism.d.ts +0 -22
  211. package/organisms/event-input-section/event-input-section.organism.d.ts +0 -43
  212. package/organisms/video-trimmer-section/video-trimmer-section.organism.d.ts +0 -25
  213. package/pages/command/command.page.d.ts +0 -113
  214. package/pages/query/query.page.d.ts +0 -145
  215. package/router/index.d.ts +0 -5
  216. package/routes/commands/commands.routes.d.ts +0 -3
  217. package/routes/commands/pages/command/command.routes.d.ts +0 -2
  218. package/routes/commands/pages/pages.routes.d.ts +0 -3
  219. package/routes/pages/pages.routes.d.ts +0 -3
  220. package/routes/preloading/preloading.strategy.d.ts +0 -8
  221. package/routes/queries/pages/pages.routes.d.ts +0 -3
  222. package/routes/queries/queries.routes.d.ts +0 -3
  223. package/routes/query/pages/pages.routes.d.ts +0 -3
  224. package/routes/query/query.routes.d.ts +0 -4
  225. package/routes/resources/pages/pages.routes.d.ts +0 -3
  226. package/routes/resources/pages/resource/resource.routes.d.ts +0 -3
  227. package/routes/resources/resources.routes.d.ts +0 -3
  228. package/routes/side/chat/chat.component.d.ts +0 -37
  229. package/routes/side/chat/chat.routes.d.ts +0 -3
  230. package/routes/side/pages.routes.d.ts +0 -3
  231. package/services/assistant/assistant.service.d.ts +0 -17
  232. package/services/calendar/calendar.service.d.ts +0 -10
  233. package/services/command/command.service.d.ts +0 -49
  234. package/services/contract/contract.service.d.ts +0 -7
  235. package/services/debug/debug.service.d.ts +0 -11
  236. package/services/forms/query/query.service.d.ts +0 -38
  237. package/services/forms/schedule/schedule.service.d.ts +0 -39
  238. package/services/graphql/graphql.service.d.ts +0 -14
  239. package/services/invoice/invoice.service.d.ts +0 -15
  240. package/services/json-schema/json-schema.service.d.ts +0 -12
  241. package/services/link/link.service.d.ts +0 -10
  242. package/services/openapi/openapi.service.d.ts +0 -14
  243. package/services/order/order.service.d.ts +0 -10
  244. package/services/partner/partner.service.d.ts +0 -7
  245. package/services/query/query.service.d.ts +0 -34
  246. package/services/query-config/index.d.ts +0 -1
  247. package/services/query-config/query-config.service.d.ts +0 -26
  248. package/services/recording/recording.service.d.ts +0 -17
  249. package/services/schedule/schedule.service.d.ts +0 -23
  250. package/services/thread/thread.service.d.ts +0 -27
  251. package/services/youtube/youtube.service.d.ts +0 -7
  252. package/templates/background/background.template.d.ts +0 -13
  253. package/templates/invoice-iframe/invoice-iframe.template.d.ts +0 -10
  254. package/templates/scheduler/scheduler.template.d.ts +0 -29
  255. package/templates/video/video.template.d.ts +0 -31
  256. package/validators/query/query.validators.d.ts +0 -4
@@ -0,0 +1,94 @@
1
+ import * as i0 from '@angular/core';
2
+ import { viewChild, output, ChangeDetectionStrategy, Component } from '@angular/core';
3
+ import { Terminal } from '@xterm/xterm';
4
+ import { FitAddon } from '@xterm/addon-fit';
5
+
6
+ class XtermOrganism {
7
+ constructor() {
8
+ this.container = viewChild.required('container');
9
+ this.terminalReady = output();
10
+ }
11
+ ngAfterViewInit() {
12
+ this.terminal = new Terminal({
13
+ theme: {
14
+ background: '#0a0a0a',
15
+ foreground: '#66d9ef',
16
+ cursor: '#ff79c6',
17
+ cyan: '#8be9fd',
18
+ brightCyan: '#50fa7b',
19
+ green: '#50fa7b',
20
+ brightGreen: '#50fa7b',
21
+ magenta: '#ff79c6',
22
+ brightMagenta: '#ff79c6',
23
+ yellow: '#f1fa8c',
24
+ brightYellow: '#ffb86c',
25
+ red: '#ff5555',
26
+ brightRed: '#ff5555'
27
+ },
28
+ scrollback: 1000,
29
+ fontSize: 12,
30
+ lineHeight: 1.2,
31
+ allowTransparency: false,
32
+ disableStdin: true,
33
+ cursorBlink: false,
34
+ cursorStyle: 'block',
35
+ convertEol: true,
36
+ rows: 24
37
+ });
38
+ this.fitAddon = new FitAddon();
39
+ this.terminal.loadAddon(this.fitAddon);
40
+ const containerElement = this.container().nativeElement;
41
+ this.terminal.open(containerElement);
42
+ // 初期化後の処理
43
+ setTimeout(() => {
44
+ this.fitAddon.fit();
45
+ this.terminalReady.emit(this.terminal);
46
+ // ResizeObserverでサイズ変更を監視
47
+ this.resizeObserver = new ResizeObserver(() => {
48
+ try {
49
+ this.fitAddon.fit();
50
+ }
51
+ catch (e) {
52
+ console.warn('Failed to fit terminal:', e);
53
+ }
54
+ });
55
+ this.resizeObserver.observe(containerElement);
56
+ }, 100);
57
+ }
58
+ ngOnDestroy() {
59
+ this.resizeObserver?.disconnect();
60
+ this.terminal?.dispose();
61
+ }
62
+ // Public API
63
+ write(text) {
64
+ this.terminal?.write(text);
65
+ }
66
+ writeln(text) {
67
+ this.terminal?.writeln(text);
68
+ }
69
+ clear() {
70
+ this.terminal?.clear();
71
+ }
72
+ scrollToBottom() {
73
+ this.terminal?.scrollToBottom();
74
+ }
75
+ scrollToTop() {
76
+ this.terminal?.scrollToTop();
77
+ }
78
+ scrollLines(lines) {
79
+ this.terminal?.scrollLines(lines);
80
+ }
81
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: XtermOrganism, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
82
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.0.5", type: XtermOrganism, isStandalone: true, selector: "organisms-xterm", outputs: { terminalReady: "terminalReady" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true, isSignal: true }], ngImport: i0, template: `<div #container class="xterm-wrapper"></div>`, isInline: true, styles: ["", "@import\"https://unpkg.com/@xterm/xterm@5.5.0/css/xterm.css\";:host{display:block;width:100%;height:100%}.xterm-wrapper{width:100%;height:100%;background:#0a0a0a;position:relative;overflow:hidden}.xterm-wrapper ::ng-deep .xterm-cursor-layer{display:none!important}.xterm-wrapper ::ng-deep .xterm-cursor,.xterm-wrapper ::ng-deep .xterm-cursor-outline{opacity:0!important}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
83
+ }
84
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: XtermOrganism, decorators: [{
85
+ type: Component,
86
+ args: [{ selector: 'organisms-xterm', standalone: true, imports: [], template: `<div #container class="xterm-wrapper"></div>`, changeDetection: ChangeDetectionStrategy.OnPush, styles: ["@import\"https://unpkg.com/@xterm/xterm@5.5.0/css/xterm.css\";:host{display:block;width:100%;height:100%}.xterm-wrapper{width:100%;height:100%;background:#0a0a0a;position:relative;overflow:hidden}.xterm-wrapper ::ng-deep .xterm-cursor-layer{display:none!important}.xterm-wrapper ::ng-deep .xterm-cursor,.xterm-wrapper ::ng-deep .xterm-cursor-outline{opacity:0!important}\n"] }]
87
+ }] });
88
+
89
+ /**
90
+ * Generated bundle index. Do not edit.
91
+ */
92
+
93
+ export { XtermOrganism };
94
+ //# sourceMappingURL=xxmachina-components-organisms-xterm.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xxmachina-components-organisms-xterm.mjs","sources":["../tmp-esm2022/organisms/xterm/xterm.organism.js","../tmp-esm2022/organisms/xterm/xxmachina-components-organisms-xterm.js"],"sourcesContent":["import { Component, ChangeDetectionStrategy, viewChild, output } from '@angular/core';\nimport { Terminal } from '@xterm/xterm';\nimport { FitAddon } from '@xterm/addon-fit';\nimport * as i0 from \"@angular/core\";\nexport class XtermOrganism {\n constructor() {\n this.container = viewChild.required('container');\n this.terminalReady = output();\n }\n ngAfterViewInit() {\n this.terminal = new Terminal({\n theme: {\n background: '#0a0a0a',\n foreground: '#66d9ef',\n cursor: '#ff79c6',\n cyan: '#8be9fd',\n brightCyan: '#50fa7b',\n green: '#50fa7b',\n brightGreen: '#50fa7b',\n magenta: '#ff79c6',\n brightMagenta: '#ff79c6',\n yellow: '#f1fa8c',\n brightYellow: '#ffb86c',\n red: '#ff5555',\n brightRed: '#ff5555'\n },\n scrollback: 1000,\n fontSize: 12,\n lineHeight: 1.2,\n allowTransparency: false,\n disableStdin: true,\n cursorBlink: false,\n cursorStyle: 'block',\n convertEol: true,\n rows: 24\n });\n this.fitAddon = new FitAddon();\n this.terminal.loadAddon(this.fitAddon);\n const containerElement = this.container().nativeElement;\n this.terminal.open(containerElement);\n // 初期化後の処理\n setTimeout(() => {\n this.fitAddon.fit();\n this.terminalReady.emit(this.terminal);\n // ResizeObserverでサイズ変更を監視\n this.resizeObserver = new ResizeObserver(() => {\n try {\n this.fitAddon.fit();\n }\n catch (e) {\n console.warn('Failed to fit terminal:', e);\n }\n });\n this.resizeObserver.observe(containerElement);\n }, 100);\n }\n ngOnDestroy() {\n this.resizeObserver?.disconnect();\n this.terminal?.dispose();\n }\n // Public API\n write(text) {\n this.terminal?.write(text);\n }\n writeln(text) {\n this.terminal?.writeln(text);\n }\n clear() {\n this.terminal?.clear();\n }\n scrollToBottom() {\n this.terminal?.scrollToBottom();\n }\n scrollToTop() {\n this.terminal?.scrollToTop();\n }\n scrollLines(lines) {\n this.terminal?.scrollLines(lines);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: XtermOrganism, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.2.0\", version: \"20.0.5\", type: XtermOrganism, isStandalone: true, selector: \"organisms-xterm\", outputs: { terminalReady: \"terminalReady\" }, viewQueries: [{ propertyName: \"container\", first: true, predicate: [\"container\"], descendants: true, isSignal: true }], ngImport: i0, template: `<div #container class=\"xterm-wrapper\"></div>`, isInline: true, styles: [\"\", \"@import\\\"https://unpkg.com/@xterm/xterm@5.5.0/css/xterm.css\\\";:host{display:block;width:100%;height:100%}.xterm-wrapper{width:100%;height:100%;background:#0a0a0a;position:relative;overflow:hidden}.xterm-wrapper ::ng-deep .xterm-cursor-layer{display:none!important}.xterm-wrapper ::ng-deep .xterm-cursor,.xterm-wrapper ::ng-deep .xterm-cursor-outline{opacity:0!important}\\n\"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: XtermOrganism, decorators: [{\n type: Component,\n args: [{ selector: 'organisms-xterm', standalone: true, imports: [], template: `<div #container class=\"xterm-wrapper\"></div>`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [\"@import\\\"https://unpkg.com/@xterm/xterm@5.5.0/css/xterm.css\\\";:host{display:block;width:100%;height:100%}.xterm-wrapper{width:100%;height:100%;background:#0a0a0a;position:relative;overflow:hidden}.xterm-wrapper ::ng-deep .xterm-cursor-layer{display:none!important}.xterm-wrapper ::ng-deep .xterm-cursor,.xterm-wrapper ::ng-deep .xterm-cursor-outline{opacity:0!important}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieHRlcm0ub3JnYW5pc20uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AeHhtYWNoaW5hL2NvbXBvbmVudHMvc3JjL2xpYi9vcmdhbmlzbXMveHRlcm0veHRlcm0ub3JnYW5pc20udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBd0MsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1SCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFVNUMsTUFBTSxPQUFPLGFBQWE7SUFSMUI7UUFTVyxjQUFTLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBNkIsV0FBVyxDQUFDLENBQUM7UUFDeEUsa0JBQWEsR0FBRyxNQUFNLEVBQVksQ0FBQztLQXNGN0M7SUFoRkMsZUFBZTtRQUNiLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxRQUFRLENBQUM7WUFDM0IsS0FBSyxFQUFFO2dCQUNMLFVBQVUsRUFBRSxTQUFTO2dCQUNyQixVQUFVLEVBQUUsU0FBUztnQkFDckIsTUFBTSxFQUFFLFNBQVM7Z0JBQ2pCLElBQUksRUFBRSxTQUFTO2dCQUNmLFVBQVUsRUFBRSxTQUFTO2dCQUNyQixLQUFLLEVBQUUsU0FBUztnQkFDaEIsV0FBVyxFQUFFLFNBQVM7Z0JBQ3RCLE9BQU8sRUFBRSxTQUFTO2dCQUNsQixhQUFhLEVBQUUsU0FBUztnQkFDeEIsTUFBTSxFQUFFLFNBQVM7Z0JBQ2pCLFlBQVksRUFBRSxTQUFTO2dCQUN2QixHQUFHLEVBQUUsU0FBUztnQkFDZCxTQUFTLEVBQUUsU0FBUzthQUNyQjtZQUNELFVBQVUsRUFBRSxJQUFJO1lBQ2hCLFFBQVEsRUFBRSxFQUFFO1lBQ1osVUFBVSxFQUFFLEdBQUc7WUFDZixpQkFBaUIsRUFBRSxLQUFLO1lBQ3hCLFlBQVksRUFBRSxJQUFJO1lBQ2xCLFdBQVcsRUFBRSxLQUFLO1lBQ2xCLFdBQVcsRUFBRSxPQUFPO1lBQ3BCLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLElBQUksRUFBRSxFQUFFO1NBQ1QsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQy9CLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUV2QyxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxhQUFhLENBQUM7UUFDeEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUVyQyxVQUFVO1FBQ1YsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBRXZDLDBCQUEwQjtZQUMxQixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksY0FBYyxDQUFDLEdBQUcsRUFBRTtnQkFDNUMsSUFBSSxDQUFDO29CQUNILElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUM7Z0JBQ3RCLENBQUM7Z0JBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztvQkFDWCxPQUFPLENBQUMsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUM3QyxDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ2hELENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNWLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGNBQWMsRUFBRSxVQUFVLEVBQUUsQ0FBQztRQUNsQyxJQUFJLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxhQUFhO0lBQ04sS0FBSyxDQUFDLElBQVk7UUFDdkIsSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVNLE9BQU8sQ0FBQyxJQUFZO1FBQ3pCLElBQUksQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFTSxLQUFLO1FBQ1YsSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRU0sY0FBYztRQUNuQixJQUFJLENBQUMsUUFBUSxFQUFFLGNBQWMsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxRQUFRLEVBQUUsV0FBVyxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVNLFdBQVcsQ0FBQyxLQUFhO1FBQzlCLElBQUksQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLENBQUM7OEdBdkZVLGFBQWE7a0dBQWIsYUFBYSxnUEFKZCw4Q0FBOEM7OzJGQUk3QyxhQUFhO2tCQVJ6QixTQUFTOytCQUNFLGlCQUFpQixjQUNmLElBQUksV0FDUCxFQUFFLFlBQ0QsOENBQThDLG1CQUV2Qyx1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCB2aWV3Q2hpbGQsIG91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGVybWluYWwgfSBmcm9tICdAeHRlcm0veHRlcm0nO1xuaW1wb3J0IHsgRml0QWRkb24gfSBmcm9tICdAeHRlcm0vYWRkb24tZml0JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnb3JnYW5pc21zLXh0ZXJtJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW10sXG4gIHRlbXBsYXRlOiBgPGRpdiAjY29udGFpbmVyIGNsYXNzPVwieHRlcm0td3JhcHBlclwiPjwvZGl2PmAsXG4gIHN0eWxlVXJsczogWycuL3h0ZXJtLm9yZ2FuaXNtLmNzcycsICcuL3h0ZXJtLm9yZ2FuaXNtLnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgWHRlcm1PcmdhbmlzbSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIHJlYWRvbmx5IGNvbnRhaW5lciA9IHZpZXdDaGlsZC5yZXF1aXJlZDxFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50Pj4oJ2NvbnRhaW5lcicpO1xuICByZWFkb25seSB0ZXJtaW5hbFJlYWR5ID0gb3V0cHV0PFRlcm1pbmFsPigpO1xuXG4gIHByaXZhdGUgdGVybWluYWwhOiBUZXJtaW5hbDtcbiAgcHJpdmF0ZSBmaXRBZGRvbiE6IEZpdEFkZG9uO1xuICBwcml2YXRlIHJlc2l6ZU9ic2VydmVyPzogUmVzaXplT2JzZXJ2ZXI7XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMudGVybWluYWwgPSBuZXcgVGVybWluYWwoe1xuICAgICAgdGhlbWU6IHtcbiAgICAgICAgYmFja2dyb3VuZDogJyMwYTBhMGEnLFxuICAgICAgICBmb3JlZ3JvdW5kOiAnIzY2ZDllZicsXG4gICAgICAgIGN1cnNvcjogJyNmZjc5YzYnLFxuICAgICAgICBjeWFuOiAnIzhiZTlmZCcsXG4gICAgICAgIGJyaWdodEN5YW46ICcjNTBmYTdiJyxcbiAgICAgICAgZ3JlZW46ICcjNTBmYTdiJyxcbiAgICAgICAgYnJpZ2h0R3JlZW46ICcjNTBmYTdiJyxcbiAgICAgICAgbWFnZW50YTogJyNmZjc5YzYnLFxuICAgICAgICBicmlnaHRNYWdlbnRhOiAnI2ZmNzljNicsXG4gICAgICAgIHllbGxvdzogJyNmMWZhOGMnLFxuICAgICAgICBicmlnaHRZZWxsb3c6ICcjZmZiODZjJyxcbiAgICAgICAgcmVkOiAnI2ZmNTU1NScsXG4gICAgICAgIGJyaWdodFJlZDogJyNmZjU1NTUnXG4gICAgICB9LFxuICAgICAgc2Nyb2xsYmFjazogMTAwMCxcbiAgICAgIGZvbnRTaXplOiAxMixcbiAgICAgIGxpbmVIZWlnaHQ6IDEuMixcbiAgICAgIGFsbG93VHJhbnNwYXJlbmN5OiBmYWxzZSxcbiAgICAgIGRpc2FibGVTdGRpbjogdHJ1ZSxcbiAgICAgIGN1cnNvckJsaW5rOiBmYWxzZSxcbiAgICAgIGN1cnNvclN0eWxlOiAnYmxvY2snLFxuICAgICAgY29udmVydEVvbDogdHJ1ZSxcbiAgICAgIHJvd3M6IDI0XG4gICAgfSk7XG5cbiAgICB0aGlzLmZpdEFkZG9uID0gbmV3IEZpdEFkZG9uKCk7XG4gICAgdGhpcy50ZXJtaW5hbC5sb2FkQWRkb24odGhpcy5maXRBZGRvbik7XG4gICAgXG4gICAgY29uc3QgY29udGFpbmVyRWxlbWVudCA9IHRoaXMuY29udGFpbmVyKCkubmF0aXZlRWxlbWVudDtcbiAgICB0aGlzLnRlcm1pbmFsLm9wZW4oY29udGFpbmVyRWxlbWVudCk7XG4gICAgXG4gICAgLy8g5Yid5pyf5YyW5b6M44Gu5Yem55CGXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmZpdEFkZG9uLmZpdCgpO1xuICAgICAgdGhpcy50ZXJtaW5hbFJlYWR5LmVtaXQodGhpcy50ZXJtaW5hbCk7XG4gICAgICBcbiAgICAgIC8vIFJlc2l6ZU9ic2VydmVy44Gn44K144Kk44K65aSJ5pu044KS55uj6KaWXG4gICAgICB0aGlzLnJlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKCgpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICB0aGlzLmZpdEFkZG9uLmZpdCgpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKCdGYWlsZWQgdG8gZml0IHRlcm1pbmFsOicsIGUpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHRoaXMucmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZShjb250YWluZXJFbGVtZW50KTtcbiAgICB9LCAxMDApO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5yZXNpemVPYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xuICAgIHRoaXMudGVybWluYWw/LmRpc3Bvc2UoKTtcbiAgfVxuXG4gIC8vIFB1YmxpYyBBUElcbiAgcHVibGljIHdyaXRlKHRleHQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMudGVybWluYWw/LndyaXRlKHRleHQpO1xuICB9XG5cbiAgcHVibGljIHdyaXRlbG4odGV4dDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy50ZXJtaW5hbD8ud3JpdGVsbih0ZXh0KTtcbiAgfVxuXG4gIHB1YmxpYyBjbGVhcigpOiB2b2lkIHtcbiAgICB0aGlzLnRlcm1pbmFsPy5jbGVhcigpO1xuICB9XG5cbiAgcHVibGljIHNjcm9sbFRvQm90dG9tKCk6IHZvaWQge1xuICAgIHRoaXMudGVybWluYWw/LnNjcm9sbFRvQm90dG9tKCk7XG4gIH1cblxuICBwdWJsaWMgc2Nyb2xsVG9Ub3AoKTogdm9pZCB7XG4gICAgdGhpcy50ZXJtaW5hbD8uc2Nyb2xsVG9Ub3AoKTtcbiAgfVxuXG4gIHB1YmxpYyBzY3JvbGxMaW5lcyhsaW5lczogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy50ZXJtaW5hbD8uc2Nyb2xsTGluZXMobGluZXMpO1xuICB9XG59Il19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieHhtYWNoaW5hLWNvbXBvbmVudHMtb3JnYW5pc21zLXh0ZXJtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQHh4bWFjaGluYS9jb21wb25lbnRzL3NyYy9saWIvb3JnYW5pc21zL3h0ZXJtL3h4bWFjaGluYS1jb21wb25lbnRzLW9yZ2FuaXNtcy14dGVybS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
@@ -1,28 +1,28 @@
1
1
  import { __decorate, __metadata } from 'tslib';
2
2
  import * as i0 from '@angular/core';
3
- import { inject, effect, computed, input, Directive, Component } from '@angular/core';
3
+ import { inject, effect, computed, untracked, input, Directive, Component } from '@angular/core';
4
4
  import { FormGroup, FormArray, FormControl } from '@angular/forms';
5
5
  import { RouterOutletFrame } from '@ng-atomic/components/frames/router-outlet';
6
6
  import { CommandService } from '@xxmachina/components/services/command';
7
7
  import { InjectableComponent, applyToInput, provideEffect, _computed, TokenizedType, NgAtomicComponent, Effect } from '@ng-atomic/core';
8
8
  import { ActivatedRoute } from '@angular/router';
9
9
  import { FormTemplateStore, FormTemplate } from '@ng-atomic/components/templates/form';
10
- import { injectRouteParam, injectRouteData, injectRouteParam$, injectUnflattenRouteParam$, injectRouteData$, injectUnflattenRouteParam, getInvalid$ } from '@ng-atomic/common/utils';
11
- import { combineLatest, filter, map, tap, shareReplay } from 'rxjs';
10
+ import { injectRouteParam, injectRouteData, injectRouteParam$, injectUnflattenRouteParam$, injectRouteData$, injectRouteParamMap, getValue$, injectUnflattenRouteParam, getInvalid$, injectRouteSkip } from '@ng-atomic/common/utils';
11
+ import { combineLatest, filter, map, tap, shareReplay, of } from 'rxjs';
12
12
  import { AppService } from '@ng-atomic/common/services/app';
13
- import { makeConfig, injectNavStartActionsV2 } from '@ng-atomic/common/services/ui';
14
- import { Query, QueryHelper } from '@xxmachina/common/domain/models';
15
- import { makeInitializerConfig } from '@ng-atomic/common/services/initializer';
13
+ import { makeDI, injectNavStartActionsV2 } from '@ng-atomic/common/services/ui';
14
+ import { Query, QueryHelper, EndpointHelper } from '@xxmachina/common/domain/models';
16
15
  import { pick, merge } from 'lodash-es';
17
16
  import { injectOne$ } from '@ng-atomic/common/stores/entities';
18
17
  import { MachinaDevService } from '@xxmachina/components/services/debug';
19
- import { EndpointHelper } from '@xxmachina/common/domain/models/endpoint';
20
18
  import { derivedAsync } from 'ngxtension/derived-async';
21
19
  import { CommandFeature } from '@xxmachina/components/features/command';
22
20
  import { TabsFrame } from '@ng-atomic/components/frames/tabs';
23
21
  import { QueryFormGroup } from '@xxmachina/components/groups/query-form';
24
22
  import { CommandFormGroup } from '@xxmachina/components/groups/command-form';
25
- import { QueryFeature } from '@xxmachina/components/features/query';
23
+ import { QueryFeature, QueryGraphqlSchemaFeature } from '@xxmachina/components/features/query';
24
+ import { CloudStorageService } from '@nx-ddd/common/infrastructure/externals/cloud-storage';
25
+ import { injectErrorMessageResolver } from '@ng-atomic/common/pipes/error';
26
26
 
27
27
  var CommandPageStore_1;
28
28
  var ActionId;
@@ -64,7 +64,7 @@ function buildActions(hasPermission, invalid) {
64
64
  let CommandPageStore = class CommandPageStore extends InjectableComponent {
65
65
  static { CommandPageStore_1 = this; }
66
66
  static { this.ActionId = ActionId; }
67
- static { this.Config = makeConfig(() => {
67
+ static { this.DI = makeDI(CommandPageStore_1, () => {
68
68
  const dev = inject(MachinaDevService);
69
69
  return () => ({
70
70
  style: {
@@ -89,10 +89,11 @@ let CommandPageStore = class CommandPageStore extends InjectableComponent {
89
89
  }),
90
90
  });
91
91
  }, ['@xxmachina/components', 'pages', 'command']); }
92
- static { this.Initializer = makeInitializerConfig(CommandPageStore_1); }
92
+ static { this.Config = CommandPageStore_1.DI.Config; }
93
+ static { this.Initializer = CommandPageStore_1.DI.Initializer; }
93
94
  static provideDefault() {
94
95
  return [
95
- CommandPageStore_1.Config.provide(),
96
+ CommandPageStore_1.DI.provideConfig(),
96
97
  CommandPageStore_1.provideDefaultInitializer(),
97
98
  CommandPageStore_1.provideDefaultEffects(),
98
99
  ];
@@ -101,6 +102,18 @@ let CommandPageStore = class CommandPageStore extends InjectableComponent {
101
102
  return [
102
103
  CommandPageStore_1.provideDefault(),
103
104
  CommandPageStore_1.provideCommandIdFromRouteDataInitializer(),
105
+ CommandPageStore_1.provideSetupInitializeQueryInitializer(),
106
+ ];
107
+ }
108
+ static provideDefaultV2() {
109
+ return [
110
+ CommandPageStore_1.Config.provide(),
111
+ CommandPageStore_1.provideDefaultInitializer(),
112
+ CommandPageStore_1.provideDefaultEffects(),
113
+ CommandPageStore_1.provideCommandIdFromRouteDataInitializer(),
114
+ CommandPageStore_1.provideSetupInitializeQueryInitializer(),
115
+ CommandPageStore_1.provideInitialFormValueFromQueryResult(),
116
+ CommandPageStore_1.provideQueryFromRouteData(),
104
117
  ];
105
118
  }
106
119
  static provideDefaultInitializer() {
@@ -121,18 +134,14 @@ let CommandPageStore = class CommandPageStore extends InjectableComponent {
121
134
  return CommandPageStore_1.Initializer.provide((store) => {
122
135
  const commandId = injectRouteParam(paramName);
123
136
  const service = inject(CommandService);
124
- effect(() => {
125
- applyToInput(store, 'command', service.getCommand(commandId()));
126
- });
137
+ effect(() => applyToInput(store, 'command', service.getCommand(commandId())));
127
138
  });
128
139
  }
129
140
  static provideCommandIdFromRouteDataInitializer() {
130
141
  return CommandPageStore_1.Initializer.provide((store) => {
131
142
  const commandId = injectRouteData('commandId');
132
143
  const service = inject(CommandService);
133
- effect(() => {
134
- applyToInput(store, 'command', service.getCommand(commandId()));
135
- });
144
+ effect(() => applyToInput(store, 'command', service.getCommand(commandId())));
136
145
  });
137
146
  }
138
147
  static providePatchFormFromRouteParamInitializer() {
@@ -154,8 +163,7 @@ let CommandPageStore = class CommandPageStore extends InjectableComponent {
154
163
  ];
155
164
  }
156
165
  static provideQueryIdFromRouteParam(key = 'queryId') {
157
- return CommandPageStore_1.Initializer.provide(() => {
158
- const feature = inject(QueryFeature);
166
+ return CommandPageStore_1.Initializer.provide((store) => {
159
167
  const queryId$ = injectRouteParam$(key);
160
168
  const params$ = injectUnflattenRouteParam$('data');
161
169
  const query$ = injectOne$(Query, { id: queryId$ });
@@ -165,28 +173,48 @@ let CommandPageStore = class CommandPageStore extends InjectableComponent {
165
173
  }).pipe(filter(({ query, params }) => !!query && !!params), map(({ query, params }) => QueryHelper.setup(query, params)), tap((query) => console.debug('[CommandPage] query:', query)), shareReplay(1)));
166
174
  effect(() => {
167
175
  console.debug('[CommandPage] setupQuery:', setupQuery());
168
- feature.form.patchValue(setupQuery());
176
+ store.queryFeature.form.patchValue(setupQuery());
169
177
  });
170
178
  });
171
179
  }
172
180
  static provideQueryFromRouteData(key = 'query') {
173
- return CommandPageStore_1.Initializer.provide(() => {
174
- const feature = inject(QueryFeature);
181
+ return CommandPageStore_1.Initializer.provide((store) => {
175
182
  const params$ = injectUnflattenRouteParam$('data');
176
183
  const query$ = injectRouteData$(key);
177
184
  const setupQuery = derivedAsync(() => combineLatest({
178
185
  query: query$,
179
186
  params: params$,
180
- }).pipe(filter(({ query, params }) => !!query && !!params), map(({ query, params }) => QueryHelper.setup(query, params)), tap((query) => console.debug('[CommandPage] query:', query)), shareReplay(1)));
181
- effect(() => { feature.form.patchValue(setupQuery()); });
187
+ }).pipe(filter(({ query, params }) => !!query), map(({ query, params }) => QueryHelper.setup(query, params)), shareReplay(1)));
188
+ effect(() => { store.queryFeature.form.patchValue(setupQuery()); });
189
+ });
190
+ }
191
+ static provideRouteParamsToDataInitializer(projector) {
192
+ return CommandPageStore_1.Initializer.provide((store) => {
193
+ const route = inject(ActivatedRoute);
194
+ const data = derivedAsync(() => route.params.pipe(map(params => projector(params))));
195
+ effect(() => applyToInput(store, 'data', data()));
196
+ });
197
+ }
198
+ static provideRouteParamMapToDataInitializer(projector) {
199
+ return CommandPageStore_1.Initializer.provide((store) => {
200
+ const paramMap = injectRouteParamMap({ merge: true });
201
+ const data = computed(() => projector(paramMap()));
202
+ effect(() => applyToInput(store, 'data', data()));
203
+ });
204
+ }
205
+ static provideSetupInitializeQueryInitializer() {
206
+ return CommandPageStore_1.Initializer.provide((store) => {
207
+ const initializeQuery = derivedAsync(() => combineLatest({
208
+ initializeQuery: of(store.initializeQuery()),
209
+ data: of(store.data())
210
+ }).pipe(filter(({ initializeQuery, data }) => !!initializeQuery && !!data), map(({ initializeQuery, data }) => QueryHelper.setup(initializeQuery, data)), filter((initializeQuery) => !!initializeQuery), shareReplay(1)));
211
+ effect(() => store.queryFeature.form.patchValue(initializeQuery()));
182
212
  });
183
213
  }
184
214
  static provideInitialFormValueFromQueryResult() {
185
215
  return CommandPageStore_1.Initializer.provide((store) => {
186
- const feature = inject(QueryFeature);
187
- const data = computed(() => QueryHelper.getResult(feature.result()));
188
- effect(() => { store.form().patchValue(data()); });
189
- feature.refresh();
216
+ effect(() => store.form().patchValue(store.queryFeature.result()));
217
+ store.queryFeature.refresh();
190
218
  });
191
219
  }
192
220
  static provideExecuteCommandEffect() {
@@ -202,7 +230,7 @@ let CommandPageStore = class CommandPageStore extends InjectableComponent {
202
230
  app.loading.await(() => {
203
231
  return store.feature.execute(command, data).then(() => {
204
232
  app.snackBar.open('成功しました。');
205
- history.back();
233
+ // history.back();
206
234
  }).catch((error) => {
207
235
  console.error(error);
208
236
  app.snackBar.openError(error);
@@ -216,12 +244,96 @@ let CommandPageStore = class CommandPageStore extends InjectableComponent {
216
244
  return () => history.back();
217
245
  });
218
246
  }
247
+ static provideFileSelectedEffect() {
248
+ return provideEffect(CommandPageStore_1.ActionId.FILE_SELECTED, () => {
249
+ const store = inject(CommandPageStore_1);
250
+ return (payload) => {
251
+ store.form().patchValue({ file: payload.files?.[0] });
252
+ };
253
+ });
254
+ }
255
+ static provideDebugFormInitializer() {
256
+ return CommandPageStore_1.Initializer.provide(() => {
257
+ const store = inject(CommandPageStore_1);
258
+ // FormGroupを再帰的に調べる関数(invalidなコントロールのみ)
259
+ const getInvalidControls = (formGroup, path = '') => {
260
+ let invalidControls = [];
261
+ Object.keys(formGroup.controls).forEach(key => {
262
+ const control = formGroup.controls[key];
263
+ const currentPath = path ? `${path}.${key}` : key;
264
+ // invalidなコントロールを記録
265
+ if (control.invalid) {
266
+ invalidControls.push({
267
+ path: currentPath,
268
+ errors: control.errors,
269
+ value: control.value,
270
+ status: control.status,
271
+ valid: control.valid,
272
+ invalid: control.invalid,
273
+ dirty: control.dirty,
274
+ touched: control.touched
275
+ });
276
+ }
277
+ // FormGroupの場合は再帰的に調べる
278
+ if (control.controls) {
279
+ invalidControls = invalidControls.concat(getInvalidControls(control, currentPath));
280
+ }
281
+ });
282
+ return invalidControls;
283
+ };
284
+ const formValue_ = derivedAsync(() => getValue$(store.form()));
285
+ effect(() => {
286
+ const formValue = formValue_();
287
+ const form = untracked(() => store.form());
288
+ console.log('[CommandPage] Form value changed:', formValue);
289
+ console.log('[CommandPage] CommandForm valid:', form?.valid);
290
+ console.log('[CommandPage] CommandForm status:', form?.status);
291
+ if (form) {
292
+ const invalidControls = getInvalidControls(form);
293
+ const invalidPaths = invalidControls.map(control => control.path);
294
+ console.log(`[CommandPage] Found ${invalidControls.length} INVALID controls:`);
295
+ console.log('[CommandPage] INVALID PATHS:', invalidPaths);
296
+ }
297
+ });
298
+ });
299
+ }
300
+ static provideSelectedFileUploadEffect(callbackFactory, { validator = () => null, getPath, }) {
301
+ return provideEffect(CommandPageStore_1.ActionId.FILE_SELECTED, () => {
302
+ const storage = inject(CloudStorageService);
303
+ const app = inject(AppService);
304
+ const callback = callbackFactory();
305
+ const errorMessageResolver = injectErrorMessageResolver();
306
+ return (payload) => {
307
+ const file = payload.files?.[0];
308
+ const errors = validator(file);
309
+ if (errors && Object.keys(errors).length > 0) {
310
+ app.snackBar.open(errorMessageResolver(errors));
311
+ return;
312
+ }
313
+ return app.loading.await(() => {
314
+ const path = getPath();
315
+ return storage.upload(path, file).then(() => {
316
+ app.snackBar.open('ファイルをアップロードしました');
317
+ return storage.getDownloadUrl(path).then((imageUrl) => {
318
+ return callback({ file, path, url: imageUrl });
319
+ });
320
+ }).catch((error) => {
321
+ console.error(error);
322
+ app.snackBar.open('ファイルのアップロードに失敗しました');
323
+ });
324
+ });
325
+ };
326
+ });
327
+ }
328
+ #navStartActions;
219
329
  constructor() {
220
330
  super();
221
331
  this.feature = inject(CommandFeature);
222
332
  this.config = CommandPageStore_1.Config.inject();
333
+ this.queryFeature = inject(QueryFeature);
223
334
  this.style = input(_computed(() => this.config().style));
224
- this.navStartActions = injectNavStartActionsV2();
335
+ this.#navStartActions = injectNavStartActionsV2();
336
+ this.navStartActions = input(_computed(() => this.#navStartActions()));
225
337
  this.navEndActions = input(_computed(() => this.config().navEndActions));
226
338
  this.command = input(_computed(() => this.config().command));
227
339
  this.form = input(_computed(() => this.feature.form()));
@@ -231,19 +343,26 @@ let CommandPageStore = class CommandPageStore extends InjectableComponent {
231
343
  ...this.extractedFormFieldMap(),
232
344
  ...this.additionalFormFieldMap()
233
345
  })));
234
- this.data = injectUnflattenRouteParam('data');
346
+ this.formFieldKeys = input(_computed(() => []));
347
+ this.formFlatExcludes = input(_computed(() => []));
348
+ this._initializeQuery = injectRouteData('query');
349
+ this.initializeQuery = input(_computed(() => this._initializeQuery()));
350
+ this._data = injectUnflattenRouteParam('data');
351
+ this.data = input(_computed(() => this._data()));
235
352
  this.formInvalid = derivedAsync(() => getInvalid$(this.form()));
353
+ this.title = input(_computed(() => this.feature.title()));
236
354
  this.actions = derivedAsync(() => buildActions(this.feature.hasPermission(this.command()), this.formInvalid()));
355
+ this.skip = injectRouteSkip();
237
356
  CommandPageStore_1.Initializer.initializeStore(this);
238
357
  }
239
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: CommandPageStore, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
240
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.1.4", type: CommandPageStore, isStandalone: true, inputs: { style: { classPropertyName: "style", publicName: "style", isSignal: true, isRequired: false, transformFunction: null }, navEndActions: { classPropertyName: "navEndActions", publicName: "navEndActions", isSignal: true, isRequired: false, transformFunction: null }, command: { classPropertyName: "command", publicName: "command", isSignal: true, isRequired: false, transformFunction: null }, form: { classPropertyName: "form", publicName: "form", isSignal: true, isRequired: false, transformFunction: null }, extractedFormFieldMap: { classPropertyName: "extractedFormFieldMap", publicName: "extractedFormFieldMap", isSignal: true, isRequired: false, transformFunction: null }, additionalFormFieldMap: { classPropertyName: "additionalFormFieldMap", publicName: "additionalFormFieldMap", isSignal: true, isRequired: false, transformFunction: null }, formFieldMap: { classPropertyName: "formFieldMap", publicName: "formFieldMap", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 }); }
358
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: CommandPageStore, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
359
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.0.5", type: CommandPageStore, isStandalone: true, inputs: { style: { classPropertyName: "style", publicName: "style", isSignal: true, isRequired: false, transformFunction: null }, navStartActions: { classPropertyName: "navStartActions", publicName: "navStartActions", isSignal: true, isRequired: false, transformFunction: null }, navEndActions: { classPropertyName: "navEndActions", publicName: "navEndActions", isSignal: true, isRequired: false, transformFunction: null }, command: { classPropertyName: "command", publicName: "command", isSignal: true, isRequired: false, transformFunction: null }, form: { classPropertyName: "form", publicName: "form", isSignal: true, isRequired: false, transformFunction: null }, extractedFormFieldMap: { classPropertyName: "extractedFormFieldMap", publicName: "extractedFormFieldMap", isSignal: true, isRequired: false, transformFunction: null }, additionalFormFieldMap: { classPropertyName: "additionalFormFieldMap", publicName: "additionalFormFieldMap", isSignal: true, isRequired: false, transformFunction: null }, formFieldMap: { classPropertyName: "formFieldMap", publicName: "formFieldMap", isSignal: true, isRequired: false, transformFunction: null }, formFieldKeys: { classPropertyName: "formFieldKeys", publicName: "formFieldKeys", isSignal: true, isRequired: false, transformFunction: null }, formFlatExcludes: { classPropertyName: "formFlatExcludes", publicName: "formFlatExcludes", isSignal: true, isRequired: false, transformFunction: null }, initializeQuery: { classPropertyName: "initializeQuery", publicName: "initializeQuery", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 }); }
241
360
  };
242
361
  CommandPageStore = CommandPageStore_1 = __decorate([
243
362
  TokenizedType(),
244
363
  __metadata("design:paramtypes", [])
245
364
  ], CommandPageStore);
246
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: CommandPageStore, decorators: [{
365
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: CommandPageStore, decorators: [{
247
366
  type: Directive,
248
367
  args: [{ standalone: true }]
249
368
  }], ctorParameters: () => [] });
@@ -253,31 +372,44 @@ class CommandPage extends NgAtomicComponent {
253
372
  this.store = inject(CommandPageStore);
254
373
  this.route = inject(ActivatedRoute);
255
374
  this.app = inject(AppService);
256
- this.parentRouterOutletFrame = inject(RouterOutletFrame);
375
+ this.parentRouterOutletFrame = inject(RouterOutletFrame, { optional: true });
257
376
  }
258
377
  onFileSelected(payload) {
259
378
  this.dispatch({ id: ActionId.FILE_SELECTED, payload });
260
379
  }
261
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: CommandPage, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
262
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.4", type: CommandPage, isStandalone: true, selector: "pages-command", usesInheritance: true, hostDirectives: [{ directive: CommandPageStore, inputs: ["style", "style", "navEndActions", "navEndActions", "command", "command", "form", "form", "additionalFormFieldMap", "additionalFormFieldMap", "formFieldMap", "formFieldMap"] }], ngImport: i0, template: `
263
- <frames-router-outlet>
380
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: CommandPage, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
381
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.5", type: CommandPage, isStandalone: true, selector: "pages-command", providers: [
382
+ CommandFeature,
383
+ QueryFeature,
384
+ QueryGraphqlSchemaFeature
385
+ ], usesInheritance: true, hostDirectives: [{ directive: CommandPageStore, inputs: ["style", "style", "navEndActions", "navEndActions", "command", "command", "form", "form", "additionalFormFieldMap", "additionalFormFieldMap", "formFieldMap", "formFieldMap", "formFlatExcludes", "formFlatExcludes", "initializeQuery", "initializeQuery", "data", "data"] }], ngImport: i0, template: `
386
+ <frames-router-outlet [skip]="store.skip()" (action)="dispatch($event)">
264
387
  <templates-form
265
388
  [form]="store.form()"
266
389
  [style]="store.style()"
267
390
  [fieldMap]="store.formFieldMap()"
268
- [title]="store.feature.title()"
391
+ [fieldKeys]="store.formFieldKeys()"
392
+ [formFlatExcludes]="store.formFlatExcludes()"
393
+ [title]="store.title()"
269
394
  [navStartActions]="store.navStartActions()"
270
395
  [navEndActions]="store.navEndActions()"
271
396
  [actions]="store.actions()"
272
397
  (action)="dispatch($event)"
273
398
  >
274
399
  <frames-tabs [labels]="['Command', 'InitializeQuery']" dashboard>
275
- <ng-template #tab><groups-command-form (action)="dispatch($event)"/></ng-template>
276
- <ng-template #tab><groups-query-form (action)="dispatch($event)"/></ng-template>
400
+ <ng-template #tab>
401
+ <groups-command-form (action)="dispatch($event)"/>
402
+ </ng-template>
403
+ <ng-template #tab>
404
+ <groups-query-form
405
+ [form]="store.queryFeature.form"
406
+ (action)="dispatch($event)"
407
+ />
408
+ </ng-template>
277
409
  </frames-tabs>
278
410
  </templates-form>
279
411
  </frames-router-outlet>
280
- `, isInline: true, styles: [":host{width:100%;height:100%;display:block;--page-width-lv1-SCOPED-IN-command-UWxd: var(--page-width-lv1)}:host .template{--first-content-height: 0px;width:var(--page-width-lv1-SCOPED-IN-command-UWxd)}:host .template div[dashboard]{padding:0;box-sizing:border-box}\n"], dependencies: [{ kind: "component", type: RouterOutletFrame, selector: "frames-router-outlet", outputs: ["events"] }, { kind: "component", type: FormTemplate, selector: "templates-form" }, { kind: "component", type: TabsFrame, selector: "frames-tabs", inputs: ["labels"] }, { kind: "component", type: CommandFormGroup, selector: "groups-command-form", inputs: ["apiJsonUrls"] }, { kind: "component", type: QueryFormGroup, selector: "groups-query-form", inputs: ["keyActions"] }] }); }
412
+ `, isInline: true, styles: [":host{width:100%;height:100%;display:block;--page-width-lv1-SCOPED-IN-command-KQgS: var(--page-width-lv1)}:host .template{--first-content-height: 0px;width:var(--page-width-lv1-SCOPED-IN-command-KQgS)}:host .template div[dashboard]{padding:0;box-sizing:border-box}\n"], dependencies: [{ kind: "component", type: RouterOutletFrame, selector: "frames-router-outlet", outputs: ["events"] }, { kind: "component", type: FormTemplate, selector: "templates-form" }, { kind: "component", type: TabsFrame, selector: "frames-tabs", inputs: ["labels"], outputs: ["selectedTabIndexChange"] }, { kind: "component", type: CommandFormGroup, selector: "groups-command-form", inputs: ["apiJsonUrls"] }, { kind: "component", type: QueryFormGroup, selector: "groups-query-form", inputs: ["form", "keyActions"] }] }); }
281
413
  }
282
414
  __decorate([
283
415
  Effect(FormTemplateStore.ActionId.FILE_SELECTED),
@@ -285,7 +417,7 @@ __decorate([
285
417
  __metadata("design:paramtypes", [Object]),
286
418
  __metadata("design:returntype", void 0)
287
419
  ], CommandPage.prototype, "onFileSelected", null);
288
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: CommandPage, decorators: [{
420
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: CommandPage, decorators: [{
289
421
  type: Component,
290
422
  args: [{ selector: 'pages-command', imports: [
291
423
  RouterOutletFrame,
@@ -293,21 +425,34 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImpor
293
425
  TabsFrame,
294
426
  CommandFormGroup,
295
427
  QueryFormGroup
428
+ ], providers: [
429
+ CommandFeature,
430
+ QueryFeature,
431
+ QueryGraphqlSchemaFeature
296
432
  ], template: `
297
- <frames-router-outlet>
433
+ <frames-router-outlet [skip]="store.skip()" (action)="dispatch($event)">
298
434
  <templates-form
299
435
  [form]="store.form()"
300
436
  [style]="store.style()"
301
437
  [fieldMap]="store.formFieldMap()"
302
- [title]="store.feature.title()"
438
+ [fieldKeys]="store.formFieldKeys()"
439
+ [formFlatExcludes]="store.formFlatExcludes()"
440
+ [title]="store.title()"
303
441
  [navStartActions]="store.navStartActions()"
304
442
  [navEndActions]="store.navEndActions()"
305
443
  [actions]="store.actions()"
306
444
  (action)="dispatch($event)"
307
445
  >
308
446
  <frames-tabs [labels]="['Command', 'InitializeQuery']" dashboard>
309
- <ng-template #tab><groups-command-form (action)="dispatch($event)"/></ng-template>
310
- <ng-template #tab><groups-query-form (action)="dispatch($event)"/></ng-template>
447
+ <ng-template #tab>
448
+ <groups-command-form (action)="dispatch($event)"/>
449
+ </ng-template>
450
+ <ng-template #tab>
451
+ <groups-query-form
452
+ [form]="store.queryFeature.form"
453
+ (action)="dispatch($event)"
454
+ />
455
+ </ng-template>
311
456
  </frames-tabs>
312
457
  </templates-form>
313
458
  </frames-router-outlet>
@@ -321,9 +466,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImpor
321
466
  'form',
322
467
  'additionalFormFieldMap',
323
468
  'formFieldMap',
469
+ 'formFlatExcludes',
470
+ 'initializeQuery',
471
+ 'data',
324
472
  ]
325
473
  },
326
- ], styles: [":host{width:100%;height:100%;display:block;--page-width-lv1-SCOPED-IN-command-UWxd: var(--page-width-lv1)}:host .template{--first-content-height: 0px;width:var(--page-width-lv1-SCOPED-IN-command-UWxd)}:host .template div[dashboard]{padding:0;box-sizing:border-box}\n"] }]
474
+ ], styles: [":host{width:100%;height:100%;display:block;--page-width-lv1-SCOPED-IN-command-KQgS: var(--page-width-lv1)}:host .template{--first-content-height: 0px;width:var(--page-width-lv1-SCOPED-IN-command-KQgS)}:host .template div[dashboard]{padding:0;box-sizing:border-box}\n"] }]
327
475
  }], propDecorators: { onFileSelected: [] } });
328
476
 
329
477
  /**