@xxmachina/components 19.84.0 → 19.86.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 (291) hide show
  1. package/fesm2022/xxmachina-components-extras-flow.mjs +0 -1
  2. package/fesm2022/xxmachina-components-features-command.mjs +0 -1
  3. package/fesm2022/xxmachina-components-features-query.mjs +0 -1
  4. package/fesm2022/xxmachina-components-groups-command-form.mjs +0 -1
  5. package/fesm2022/xxmachina-components-groups-query-form.mjs +0 -1
  6. package/fesm2022/xxmachina-components-molecules-calendar-paginator.mjs +0 -1
  7. package/fesm2022/xxmachina-components-molecules-daily-cell.mjs +0 -1
  8. package/fesm2022/xxmachina-components-molecules-inline-edit-field.mjs +0 -1
  9. package/fesm2022/xxmachina-components-molecules-user-avatar-menu.mjs +0 -1
  10. package/fesm2022/xxmachina-components-molecules-weekly-header.mjs +2 -3
  11. package/fesm2022/xxmachina-components-molecules-workspace-selector.mjs +0 -1
  12. package/fesm2022/xxmachina-components-organisms-calendar-section.mjs +2 -3
  13. package/fesm2022/xxmachina-components-organisms-event-input-section.mjs +0 -1
  14. package/fesm2022/xxmachina-components-organisms-terminal-input-section.mjs +0 -1
  15. package/fesm2022/xxmachina-components-organisms-video-trimmer-section.mjs +0 -1
  16. package/fesm2022/xxmachina-components-organisms-xterm.mjs +0 -1
  17. package/fesm2022/xxmachina-components-pages-command-harness.mjs +0 -1
  18. package/fesm2022/xxmachina-components-pages-command.mjs +2 -3
  19. package/fesm2022/xxmachina-components-pages-query-v2.mjs +0 -1
  20. package/fesm2022/xxmachina-components-pages-query.mjs +2 -3
  21. package/fesm2022/xxmachina-components-pages-thread.mjs +2 -3
  22. package/fesm2022/xxmachina-components-routes-commands-command.routes-Ca2yVrwL.mjs +0 -1
  23. package/fesm2022/xxmachina-components-routes-commands-pages.routes-COpFeEsz.mjs +0 -1
  24. package/fesm2022/xxmachina-components-routes-commands.mjs +0 -1
  25. package/fesm2022/xxmachina-components-routes-pages.mjs +0 -1
  26. package/fesm2022/xxmachina-components-routes-preloading.mjs +0 -1
  27. package/fesm2022/xxmachina-components-routes-queries-pages.routes-CfrglCIL.mjs +0 -1
  28. package/fesm2022/xxmachina-components-routes-queries.mjs +0 -1
  29. package/fesm2022/xxmachina-components-routes-query-pages.routes-BNuONo3g.mjs +0 -1
  30. package/fesm2022/xxmachina-components-routes-query.mjs +0 -1
  31. package/fesm2022/xxmachina-components-routes-resources-pages.routes-DEu2qpeu.mjs +0 -1
  32. package/fesm2022/xxmachina-components-routes-resources-resource.routes-CWxi2agj.mjs +0 -1
  33. package/fesm2022/xxmachina-components-routes-resources.mjs +0 -1
  34. package/fesm2022/xxmachina-components-routes-side-chat.mjs +0 -1
  35. package/fesm2022/xxmachina-components-routes-side.mjs +0 -1
  36. package/fesm2022/xxmachina-components-routes-transformer.mjs +0 -1
  37. package/fesm2022/xxmachina-components-routes-transformers-pages.routes-02pVsNas.mjs +0 -1
  38. package/fesm2022/xxmachina-components-routes-transformers.mjs +0 -1
  39. package/fesm2022/xxmachina-components-routes.mjs +0 -1
  40. package/fesm2022/xxmachina-components-services-app.mjs +0 -1
  41. package/fesm2022/xxmachina-components-services-assistant.mjs +0 -1
  42. package/fesm2022/xxmachina-components-services-command.mjs +0 -1
  43. package/fesm2022/xxmachina-components-services-context.mjs +0 -1
  44. package/fesm2022/xxmachina-components-services-contract.mjs +0 -1
  45. package/fesm2022/xxmachina-components-services-debug.mjs +0 -1
  46. package/fesm2022/xxmachina-components-services-forms-query.mjs +1 -2
  47. package/fesm2022/xxmachina-components-services-forms-schedule.mjs +0 -1
  48. package/fesm2022/xxmachina-components-services-forms-variables.mjs +0 -1
  49. package/fesm2022/xxmachina-components-services-graphql.mjs +0 -1
  50. package/fesm2022/xxmachina-components-services-invoice.mjs +0 -1
  51. package/fesm2022/xxmachina-components-services-json-schema.mjs +0 -1
  52. package/fesm2022/xxmachina-components-services-message.mjs +0 -1
  53. package/fesm2022/xxmachina-components-services-openai.mjs +0 -1
  54. package/fesm2022/xxmachina-components-services-openapi.mjs +0 -1
  55. package/fesm2022/xxmachina-components-services-order.mjs +0 -1
  56. package/fesm2022/xxmachina-components-services-partner.mjs +0 -1
  57. package/fesm2022/xxmachina-components-services-query.mjs +0 -1
  58. package/fesm2022/xxmachina-components-services-recording.mjs +0 -1
  59. package/fesm2022/xxmachina-components-services-thread.mjs +0 -1
  60. package/fesm2022/xxmachina-components-services-transformer.mjs +0 -1
  61. package/fesm2022/xxmachina-components-services-version.mjs +0 -1
  62. package/fesm2022/xxmachina-components-services-workspace-switcher.mjs +0 -1
  63. package/fesm2022/xxmachina-components-services-youtube.mjs +0 -1
  64. package/fesm2022/xxmachina-components-templates-agent.mjs +2 -3
  65. package/fesm2022/xxmachina-components-templates-background.mjs +0 -1
  66. package/fesm2022/xxmachina-components-templates-env.mjs +0 -1
  67. package/fesm2022/xxmachina-components-templates-flow-nodes-group.mjs +0 -1
  68. package/fesm2022/xxmachina-components-templates-flow-nodes-issue.mjs +0 -1
  69. package/fesm2022/xxmachina-components-templates-flow-nodes-task.mjs +0 -1
  70. package/fesm2022/xxmachina-components-templates-flow.mjs +0 -1
  71. package/fesm2022/xxmachina-components-templates-invoice-iframe.mjs +0 -1
  72. package/fesm2022/xxmachina-components-templates-machina-icon-button-menu.mjs +2 -3
  73. package/fesm2022/xxmachina-components-templates-scheduler.mjs +0 -1
  74. package/fesm2022/xxmachina-components-templates-video.mjs +0 -1
  75. package/fesm2022/xxmachina-components-validators-query.mjs +0 -1
  76. package/fesm2022/xxmachina-components.mjs +2 -3
  77. package/package.json +1 -1
  78. package/types/xxmachina-components-extras-flow.d.ts +0 -1
  79. package/types/xxmachina-components-features-command.d.ts +0 -1
  80. package/types/xxmachina-components-features-query.d.ts +3 -4
  81. package/types/xxmachina-components-groups-command-form.d.ts +0 -1
  82. package/types/xxmachina-components-groups-query-form.d.ts +2 -3
  83. package/types/xxmachina-components-molecules-calendar-paginator.d.ts +0 -1
  84. package/types/xxmachina-components-molecules-daily-cell.d.ts +0 -1
  85. package/types/xxmachina-components-molecules-inline-edit-field.d.ts +0 -1
  86. package/types/xxmachina-components-molecules-user-avatar-menu.d.ts +0 -1
  87. package/types/xxmachina-components-molecules-weekly-header.d.ts +0 -1
  88. package/types/xxmachina-components-molecules-workspace-selector.d.ts +0 -1
  89. package/types/xxmachina-components-organisms-calendar-section.d.ts +0 -1
  90. package/types/xxmachina-components-organisms-event-input-section.d.ts +0 -1
  91. package/types/xxmachina-components-organisms-terminal-input-section.d.ts +0 -1
  92. package/types/xxmachina-components-organisms-video-trimmer-section.d.ts +0 -1
  93. package/types/xxmachina-components-organisms-xterm.d.ts +0 -1
  94. package/types/xxmachina-components-pages-command-harness.d.ts +0 -1
  95. package/types/xxmachina-components-pages-command.d.ts +0 -1
  96. package/types/xxmachina-components-pages-query-v2.d.ts +0 -1
  97. package/types/xxmachina-components-pages-query.d.ts +0 -1
  98. package/types/xxmachina-components-pages-thread.d.ts +0 -1
  99. package/types/xxmachina-components-routes-commands.d.ts +0 -1
  100. package/types/xxmachina-components-routes-pages.d.ts +0 -1
  101. package/types/xxmachina-components-routes-preloading.d.ts +0 -1
  102. package/types/xxmachina-components-routes-queries.d.ts +0 -1
  103. package/types/xxmachina-components-routes-query.d.ts +0 -1
  104. package/types/xxmachina-components-routes-resources.d.ts +0 -1
  105. package/types/xxmachina-components-routes-side-chat.d.ts +0 -1
  106. package/types/xxmachina-components-routes-side.d.ts +0 -1
  107. package/types/xxmachina-components-routes-transformer.d.ts +0 -1
  108. package/types/xxmachina-components-routes-transformers.d.ts +0 -1
  109. package/types/xxmachina-components-routes.d.ts +0 -1
  110. package/types/xxmachina-components-services-app.d.ts +0 -1
  111. package/types/xxmachina-components-services-assistant.d.ts +0 -1
  112. package/types/xxmachina-components-services-command.d.ts +0 -1
  113. package/types/xxmachina-components-services-context.d.ts +0 -1
  114. package/types/xxmachina-components-services-contract.d.ts +0 -1
  115. package/types/xxmachina-components-services-debug.d.ts +0 -1
  116. package/types/xxmachina-components-services-forms-query.d.ts +1 -2
  117. package/types/xxmachina-components-services-forms-schedule.d.ts +0 -1
  118. package/types/xxmachina-components-services-forms-variables.d.ts +0 -1
  119. package/types/xxmachina-components-services-graphql.d.ts +0 -1
  120. package/types/xxmachina-components-services-invoice.d.ts +0 -1
  121. package/types/xxmachina-components-services-json-schema.d.ts +0 -1
  122. package/types/xxmachina-components-services-message.d.ts +0 -1
  123. package/types/xxmachina-components-services-openai.d.ts +0 -1
  124. package/types/xxmachina-components-services-openapi.d.ts +0 -1
  125. package/types/xxmachina-components-services-order.d.ts +0 -1
  126. package/types/xxmachina-components-services-partner.d.ts +0 -1
  127. package/types/xxmachina-components-services-query.d.ts +0 -1
  128. package/types/xxmachina-components-services-recording.d.ts +0 -1
  129. package/types/xxmachina-components-services-thread.d.ts +0 -1
  130. package/types/xxmachina-components-services-transformer.d.ts +0 -1
  131. package/types/xxmachina-components-services-version.d.ts +0 -1
  132. package/types/xxmachina-components-services-workspace-switcher.d.ts +0 -1
  133. package/types/xxmachina-components-services-youtube.d.ts +0 -1
  134. package/types/xxmachina-components-templates-agent.d.ts +0 -1
  135. package/types/xxmachina-components-templates-background.d.ts +0 -1
  136. package/types/xxmachina-components-templates-env.d.ts +0 -1
  137. package/types/xxmachina-components-templates-flow-nodes-group.d.ts +0 -1
  138. package/types/xxmachina-components-templates-flow-nodes-issue.d.ts +0 -1
  139. package/types/xxmachina-components-templates-flow-nodes-task.d.ts +0 -1
  140. package/types/xxmachina-components-templates-flow.d.ts +0 -1
  141. package/types/xxmachina-components-templates-invoice-iframe.d.ts +0 -1
  142. package/types/xxmachina-components-templates-machina-icon-button-menu.d.ts +0 -1
  143. package/types/xxmachina-components-templates-scheduler.d.ts +0 -1
  144. package/types/xxmachina-components-templates-video.d.ts +0 -1
  145. package/types/xxmachina-components-validators-query.d.ts +0 -1
  146. package/types/xxmachina-components.d.ts +0 -1
  147. package/fesm2022/xxmachina-components-extras-flow.mjs.map +0 -1
  148. package/fesm2022/xxmachina-components-features-command.mjs.map +0 -1
  149. package/fesm2022/xxmachina-components-features-query.mjs.map +0 -1
  150. package/fesm2022/xxmachina-components-groups-command-form.mjs.map +0 -1
  151. package/fesm2022/xxmachina-components-groups-query-form.mjs.map +0 -1
  152. package/fesm2022/xxmachina-components-molecules-calendar-paginator.mjs.map +0 -1
  153. package/fesm2022/xxmachina-components-molecules-daily-cell.mjs.map +0 -1
  154. package/fesm2022/xxmachina-components-molecules-inline-edit-field.mjs.map +0 -1
  155. package/fesm2022/xxmachina-components-molecules-user-avatar-menu.mjs.map +0 -1
  156. package/fesm2022/xxmachina-components-molecules-weekly-header.mjs.map +0 -1
  157. package/fesm2022/xxmachina-components-molecules-workspace-selector.mjs.map +0 -1
  158. package/fesm2022/xxmachina-components-organisms-calendar-section.mjs.map +0 -1
  159. package/fesm2022/xxmachina-components-organisms-event-input-section.mjs.map +0 -1
  160. package/fesm2022/xxmachina-components-organisms-terminal-input-section.mjs.map +0 -1
  161. package/fesm2022/xxmachina-components-organisms-video-trimmer-section.mjs.map +0 -1
  162. package/fesm2022/xxmachina-components-organisms-xterm.mjs.map +0 -1
  163. package/fesm2022/xxmachina-components-pages-command-harness.mjs.map +0 -1
  164. package/fesm2022/xxmachina-components-pages-command.mjs.map +0 -1
  165. package/fesm2022/xxmachina-components-pages-query-v2.mjs.map +0 -1
  166. package/fesm2022/xxmachina-components-pages-query.mjs.map +0 -1
  167. package/fesm2022/xxmachina-components-pages-thread.mjs.map +0 -1
  168. package/fesm2022/xxmachina-components-routes-commands-command.routes-Ca2yVrwL.mjs.map +0 -1
  169. package/fesm2022/xxmachina-components-routes-commands-pages.routes-COpFeEsz.mjs.map +0 -1
  170. package/fesm2022/xxmachina-components-routes-commands.mjs.map +0 -1
  171. package/fesm2022/xxmachina-components-routes-pages.mjs.map +0 -1
  172. package/fesm2022/xxmachina-components-routes-preloading.mjs.map +0 -1
  173. package/fesm2022/xxmachina-components-routes-queries-pages.routes-CfrglCIL.mjs.map +0 -1
  174. package/fesm2022/xxmachina-components-routes-queries.mjs.map +0 -1
  175. package/fesm2022/xxmachina-components-routes-query-pages.routes-BNuONo3g.mjs.map +0 -1
  176. package/fesm2022/xxmachina-components-routes-query.mjs.map +0 -1
  177. package/fesm2022/xxmachina-components-routes-resources-pages.routes-DEu2qpeu.mjs.map +0 -1
  178. package/fesm2022/xxmachina-components-routes-resources-resource.routes-CWxi2agj.mjs.map +0 -1
  179. package/fesm2022/xxmachina-components-routes-resources.mjs.map +0 -1
  180. package/fesm2022/xxmachina-components-routes-side-chat.mjs.map +0 -1
  181. package/fesm2022/xxmachina-components-routes-side.mjs.map +0 -1
  182. package/fesm2022/xxmachina-components-routes-transformer.mjs.map +0 -1
  183. package/fesm2022/xxmachina-components-routes-transformers-pages.routes-02pVsNas.mjs.map +0 -1
  184. package/fesm2022/xxmachina-components-routes-transformers.mjs.map +0 -1
  185. package/fesm2022/xxmachina-components-routes.mjs.map +0 -1
  186. package/fesm2022/xxmachina-components-services-app.mjs.map +0 -1
  187. package/fesm2022/xxmachina-components-services-assistant.mjs.map +0 -1
  188. package/fesm2022/xxmachina-components-services-command.mjs.map +0 -1
  189. package/fesm2022/xxmachina-components-services-context.mjs.map +0 -1
  190. package/fesm2022/xxmachina-components-services-contract.mjs.map +0 -1
  191. package/fesm2022/xxmachina-components-services-debug.mjs.map +0 -1
  192. package/fesm2022/xxmachina-components-services-forms-query.mjs.map +0 -1
  193. package/fesm2022/xxmachina-components-services-forms-schedule.mjs.map +0 -1
  194. package/fesm2022/xxmachina-components-services-forms-variables.mjs.map +0 -1
  195. package/fesm2022/xxmachina-components-services-graphql.mjs.map +0 -1
  196. package/fesm2022/xxmachina-components-services-invoice.mjs.map +0 -1
  197. package/fesm2022/xxmachina-components-services-json-schema.mjs.map +0 -1
  198. package/fesm2022/xxmachina-components-services-message.mjs.map +0 -1
  199. package/fesm2022/xxmachina-components-services-openai.mjs.map +0 -1
  200. package/fesm2022/xxmachina-components-services-openapi.mjs.map +0 -1
  201. package/fesm2022/xxmachina-components-services-order.mjs.map +0 -1
  202. package/fesm2022/xxmachina-components-services-partner.mjs.map +0 -1
  203. package/fesm2022/xxmachina-components-services-query.mjs.map +0 -1
  204. package/fesm2022/xxmachina-components-services-recording.mjs.map +0 -1
  205. package/fesm2022/xxmachina-components-services-thread.mjs.map +0 -1
  206. package/fesm2022/xxmachina-components-services-transformer.mjs.map +0 -1
  207. package/fesm2022/xxmachina-components-services-version.mjs.map +0 -1
  208. package/fesm2022/xxmachina-components-services-workspace-switcher.mjs.map +0 -1
  209. package/fesm2022/xxmachina-components-services-youtube.mjs.map +0 -1
  210. package/fesm2022/xxmachina-components-templates-agent.mjs.map +0 -1
  211. package/fesm2022/xxmachina-components-templates-background.mjs.map +0 -1
  212. package/fesm2022/xxmachina-components-templates-env.mjs.map +0 -1
  213. package/fesm2022/xxmachina-components-templates-flow-nodes-group.mjs.map +0 -1
  214. package/fesm2022/xxmachina-components-templates-flow-nodes-issue.mjs.map +0 -1
  215. package/fesm2022/xxmachina-components-templates-flow-nodes-task.mjs.map +0 -1
  216. package/fesm2022/xxmachina-components-templates-flow.mjs.map +0 -1
  217. package/fesm2022/xxmachina-components-templates-invoice-iframe.mjs.map +0 -1
  218. package/fesm2022/xxmachina-components-templates-machina-icon-button-menu.mjs.map +0 -1
  219. package/fesm2022/xxmachina-components-templates-scheduler.mjs.map +0 -1
  220. package/fesm2022/xxmachina-components-templates-video.mjs.map +0 -1
  221. package/fesm2022/xxmachina-components-validators-query.mjs.map +0 -1
  222. package/fesm2022/xxmachina-components.mjs.map +0 -1
  223. package/types/xxmachina-components-extras-flow.d.ts.map +0 -1
  224. package/types/xxmachina-components-features-command.d.ts.map +0 -1
  225. package/types/xxmachina-components-features-query.d.ts.map +0 -1
  226. package/types/xxmachina-components-groups-command-form.d.ts.map +0 -1
  227. package/types/xxmachina-components-groups-query-form.d.ts.map +0 -1
  228. package/types/xxmachina-components-molecules-calendar-paginator.d.ts.map +0 -1
  229. package/types/xxmachina-components-molecules-daily-cell.d.ts.map +0 -1
  230. package/types/xxmachina-components-molecules-inline-edit-field.d.ts.map +0 -1
  231. package/types/xxmachina-components-molecules-user-avatar-menu.d.ts.map +0 -1
  232. package/types/xxmachina-components-molecules-weekly-header.d.ts.map +0 -1
  233. package/types/xxmachina-components-molecules-workspace-selector.d.ts.map +0 -1
  234. package/types/xxmachina-components-organisms-calendar-section.d.ts.map +0 -1
  235. package/types/xxmachina-components-organisms-event-input-section.d.ts.map +0 -1
  236. package/types/xxmachina-components-organisms-terminal-input-section.d.ts.map +0 -1
  237. package/types/xxmachina-components-organisms-video-trimmer-section.d.ts.map +0 -1
  238. package/types/xxmachina-components-organisms-xterm.d.ts.map +0 -1
  239. package/types/xxmachina-components-pages-command-harness.d.ts.map +0 -1
  240. package/types/xxmachina-components-pages-command.d.ts.map +0 -1
  241. package/types/xxmachina-components-pages-query-v2.d.ts.map +0 -1
  242. package/types/xxmachina-components-pages-query.d.ts.map +0 -1
  243. package/types/xxmachina-components-pages-thread.d.ts.map +0 -1
  244. package/types/xxmachina-components-routes-commands.d.ts.map +0 -1
  245. package/types/xxmachina-components-routes-pages.d.ts.map +0 -1
  246. package/types/xxmachina-components-routes-preloading.d.ts.map +0 -1
  247. package/types/xxmachina-components-routes-queries.d.ts.map +0 -1
  248. package/types/xxmachina-components-routes-query.d.ts.map +0 -1
  249. package/types/xxmachina-components-routes-resources.d.ts.map +0 -1
  250. package/types/xxmachina-components-routes-side-chat.d.ts.map +0 -1
  251. package/types/xxmachina-components-routes-side.d.ts.map +0 -1
  252. package/types/xxmachina-components-routes-transformer.d.ts.map +0 -1
  253. package/types/xxmachina-components-routes-transformers.d.ts.map +0 -1
  254. package/types/xxmachina-components-routes.d.ts.map +0 -1
  255. package/types/xxmachina-components-services-app.d.ts.map +0 -1
  256. package/types/xxmachina-components-services-assistant.d.ts.map +0 -1
  257. package/types/xxmachina-components-services-command.d.ts.map +0 -1
  258. package/types/xxmachina-components-services-context.d.ts.map +0 -1
  259. package/types/xxmachina-components-services-contract.d.ts.map +0 -1
  260. package/types/xxmachina-components-services-debug.d.ts.map +0 -1
  261. package/types/xxmachina-components-services-forms-query.d.ts.map +0 -1
  262. package/types/xxmachina-components-services-forms-schedule.d.ts.map +0 -1
  263. package/types/xxmachina-components-services-forms-variables.d.ts.map +0 -1
  264. package/types/xxmachina-components-services-graphql.d.ts.map +0 -1
  265. package/types/xxmachina-components-services-invoice.d.ts.map +0 -1
  266. package/types/xxmachina-components-services-json-schema.d.ts.map +0 -1
  267. package/types/xxmachina-components-services-message.d.ts.map +0 -1
  268. package/types/xxmachina-components-services-openai.d.ts.map +0 -1
  269. package/types/xxmachina-components-services-openapi.d.ts.map +0 -1
  270. package/types/xxmachina-components-services-order.d.ts.map +0 -1
  271. package/types/xxmachina-components-services-partner.d.ts.map +0 -1
  272. package/types/xxmachina-components-services-query.d.ts.map +0 -1
  273. package/types/xxmachina-components-services-recording.d.ts.map +0 -1
  274. package/types/xxmachina-components-services-thread.d.ts.map +0 -1
  275. package/types/xxmachina-components-services-transformer.d.ts.map +0 -1
  276. package/types/xxmachina-components-services-version.d.ts.map +0 -1
  277. package/types/xxmachina-components-services-workspace-switcher.d.ts.map +0 -1
  278. package/types/xxmachina-components-services-youtube.d.ts.map +0 -1
  279. package/types/xxmachina-components-templates-agent.d.ts.map +0 -1
  280. package/types/xxmachina-components-templates-background.d.ts.map +0 -1
  281. package/types/xxmachina-components-templates-env.d.ts.map +0 -1
  282. package/types/xxmachina-components-templates-flow-nodes-group.d.ts.map +0 -1
  283. package/types/xxmachina-components-templates-flow-nodes-issue.d.ts.map +0 -1
  284. package/types/xxmachina-components-templates-flow-nodes-task.d.ts.map +0 -1
  285. package/types/xxmachina-components-templates-flow.d.ts.map +0 -1
  286. package/types/xxmachina-components-templates-invoice-iframe.d.ts.map +0 -1
  287. package/types/xxmachina-components-templates-machina-icon-button-menu.d.ts.map +0 -1
  288. package/types/xxmachina-components-templates-scheduler.d.ts.map +0 -1
  289. package/types/xxmachina-components-templates-video.d.ts.map +0 -1
  290. package/types/xxmachina-components-validators-query.d.ts.map +0 -1
  291. package/types/xxmachina-components.d.ts.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"xxmachina-components-services-openai.mjs","sources":["../../../../../packages/@xxmachina/components/src/lib/services/openai/openai.service.ts","../../../../../packages/@xxmachina/components/src/lib/services/openai/xxmachina-components-services-openai.ts"],"sourcesContent":["import { computed, inject, Injectable, InjectionToken, Provider, signal } from '@angular/core';\nimport OpenAI, { ClientOptions } from 'openai';\nimport type { ChatCompletionMessageParam } from 'openai/resources/chat/completions';\nimport { Message } from '@ng-atomic/common/models';\nimport { HttpClient } from '@angular/common/http';\nimport { lastValueFrom } from 'rxjs';\n\nasync function imageToBase64(imageFile: File): Promise<string> {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onload = () => {\n const base64String = reader.result as string;\n resolve(base64String.split(',')[1]);\n };\n reader.onerror = reject;\n reader.readAsDataURL(imageFile);\n });\n}\n\nclass OpenAiMessageHelper {\n static async buildMessage(message: Message): Promise<ChatCompletionMessageParam> {\n if (message?.attachments?.length) {\n const content = await Promise.all(message.attachments.map(async attachment => ({\n type: 'image_url' as const,\n image_url: { url: `data:image/jpeg;base64,${await imageToBase64(attachment.file)}` },\n })));\n return {\n role: message.role as 'user',\n content: [\n ...content,\n { type: 'text', text: message.content }\n ] as never\n };\n }\n\n return {\n role: message.role,\n content: message?.content || ''\n }\n }\n}\n\nexport const OPENAI_CONFIG = new InjectionToken<ClientOptions>('[@xxmachina/components/services/openai] OpenAiConfig');\nexport const OPENAI_BACKEND_URL = new InjectionToken<string>('[@xxmachina/components/services/openai] OpenAiBackendUrl');\n\nexport function provideOpenaiConfig(useFactory?: () => ClientOptions) {\n return [\n { provide: OPENAI_CONFIG, useFactory },\n ]\n}\n\nexport function provideOpenaiBackendUrl(url: string) {\n return { provide: OPENAI_BACKEND_URL, useValue: url };\n}\n\n@Injectable({ providedIn: 'root' })\nexport class OpenAIService {\n readonly config = inject(OPENAI_CONFIG);\n readonly apiKey = signal(this.config?.apiKey);\n readonly openai = computed(() => new OpenAI(this.config));\n readonly hasApiKey = computed(() => (this.apiKey() as string)?.trim() !== '');\n\n async complete(_messages: Message[]): Promise<Message[]> {\n const resolvedMessages = await Promise.all(_messages.map(message => OpenAiMessageHelper.buildMessage(message)));\n console.debug('[OpenAIService] resolvedMessages', resolvedMessages);\n const response = await this.openai().chat.completions.create({\n model: 'gpt-4o-mini',\n messages: [...resolvedMessages],\n });\n const assistantMessage = response.choices[0]?.message?.content || 'エラーが発生しました。';\n return [\n ..._messages,\n { role: 'assistant', content: assistantMessage, time: new Date() }\n ];\n }\n}\n\n@Injectable()\nexport class OpenAIViaBackendService extends OpenAIService {\n private readonly http = inject(HttpClient);\n private readonly backendUrl = inject(OPENAI_BACKEND_URL);\n\n async complete(_messages: Message[]): Promise<Message[]> {\n const resolvedMessages = await Promise.all(_messages.map(message => OpenAiMessageHelper.buildMessage(message)));\n console.debug('[OpenAIService] resolvedMessages', resolvedMessages);\n const response = await lastValueFrom(this.http.post<any>(this.backendUrl, {\n model: 'gpt-4o-mini',\n messages: [...resolvedMessages],\n }))\n const assistantMessage = response.choices[0]?.message?.content || 'エラーが発生しました。';\n return [\n ..._messages,\n { role: 'assistant', content: assistantMessage, time: new Date() }\n ];\n }\n}\n\nexport function provideOpenAIViaBackendService(backendUrl: string): Provider[] {\n return [\n { provide: OPENAI_BACKEND_URL, useValue: backendUrl },\n { provide: OpenAIService, useClass: OpenAIViaBackendService },\n ];\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"xxmachina-components-services-openapi.mjs","sources":["../../../../../packages/@xxmachina/components/src/lib/services/openapi/openapi.service.ts","../../../../../packages/@xxmachina/components/src/lib/services/openapi/xxmachina-components-services-openapi.ts"],"sourcesContent":["import { HttpClient } from '@angular/common/http';\nimport { Injectable, inject } from '@angular/core';\nimport { catchError, forkJoin, map, Observable, of, switchMap } from 'rxjs';\nimport { OpenApi, OpenAPISchema } from '@xxmachina/common/domain/models';\nimport { JsonSchemaService } from '@xxmachina/components/services/json-schema';\n\nfunction _forkJoin<T>(sources: Observable<T>[]): Observable<T[]> {\n return sources?.length ? forkJoin(sources) : of([]);\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class OpenApiService {\n readonly http = inject(HttpClient);\n readonly schema = inject(JsonSchemaService);\n\n getOpenApiMany(urls: string[]): Observable<OpenApi[]> {\n return _forkJoin(urls.map((url) => this.getOpenApi(url).pipe(\n catchError((error) => (console.error(error), of(null))),\n ))) as Observable<OpenApi[]>;\n }\n\n getOpenApi(url: string): Observable<OpenApi> {\n return this.getOpenApiSchema(url).pipe(\n catchError((error) => (console.warn('[OpenApiService] getOpenApi failed.'), of(null))),\n switchMap((openApi) => this.schema.resolveRef(openApi)),\n map((openApi) => new OpenApi({...openApi, apiJsonUrl: url})),\n );\n }\n\n getOpenApiSchema(url: string): Observable<OpenAPISchema> {\n return this.http.get<OpenAPISchema>(url);\n }\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;AAMA,SAAS,SAAS,CAAI,OAAwB,EAAA;AAC5C,IAAA,OAAO,OAAO,EAAE,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC;AACrD;MAKa,cAAc,CAAA;AAChB,IAAA,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC;AACzB,IAAA,MAAM,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAE3C,IAAA,cAAc,CAAC,IAAc,EAAA;QAC3B,OAAO,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,CAC1D,UAAU,CAAC,CAAC,KAAK,MAAM,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CACxD,CAAC,CAA0B;IAC9B;AAEA,IAAA,UAAU,CAAC,GAAW,EAAA;AACpB,QAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAI,CACpC,UAAU,CAAC,CAAC,KAAK,MAAM,OAAO,CAAC,IAAI,CAAC,qCAAqC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EACtF,SAAS,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,EACvD,GAAG,CAAC,CAAC,OAAO,KAAK,IAAI,OAAO,CAAC,EAAC,GAAG,OAAO,EAAE,UAAU,EAAE,GAAG,EAAC,CAAC,CAAC,CAC7D;IACH;AAEA,IAAA,gBAAgB,CAAC,GAAW,EAAA;QAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAgB,GAAG,CAAC;IAC1C;uGApBW,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAd,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,cAFb,MAAM,EAAA,CAAA;;2FAEP,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;ACZD;;AAEG;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"xxmachina-components-services-order.mjs","sources":["../../../../../packages/@xxmachina/components/src/lib/services/order/order.service.ts","../../../../../packages/@xxmachina/components/src/lib/services/order/xxmachina-components-services-order.ts"],"sourcesContent":["import { Injectable, inject } from '@angular/core';\nimport { GraphqlService } from '@xxmachina/components/services/graphql';\nimport { Order } from '@xxmachina/common/invoice/domain/models';\nimport { Observable, map } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class OrderService {\n readonly graphql = inject(GraphqlService);\n\n list(): Observable<Order[]> {\n return this.graphql.graphql({\n query: `query { orders {\n id title eclId customerId vendorId\n contractId invoiceId startDate endDate unitPrice unit\n quantity amountInput amount statusIn statusOut\n } }`,\n }).pipe(\n map((data => data?.data?.orders ?? [])),\n map((orders) => orders.map((order: any) => Order.from({\n ...order,\n }))),\n );\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;MAQa,YAAY,CAAA;AACd,IAAA,OAAO,GAAG,MAAM,CAAC,cAAc,CAAC;IAEzC,IAAI,GAAA;AACF,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;AAC1B,YAAA,KAAK,EAAE,CAAA;;;;AAIH,SAAA,CAAA;AACL,SAAA,CAAC,CAAC,IAAI,CACL,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,MAAM,IAAI,EAAE,EAAE,EACvC,GAAG,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,GAAG,CAAC,CAAC,KAAU,KAAK,KAAK,CAAC,IAAI,CAAC;AACpD,YAAA,GAAG,KAAK;SACT,CAAC,CAAC,CAAC,CACL;IACH;uGAhBW,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAZ,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,cAFX,MAAM,EAAA,CAAA;;2FAEP,YAAY,EAAA,UAAA,EAAA,CAAA;kBAHxB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;ACPD;;AAEG;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"xxmachina-components-services-partner.mjs","sources":["../../../../../packages/@xxmachina/components/src/lib/services/partner/partner.service.ts","../../../../../packages/@xxmachina/components/src/lib/services/partner/xxmachina-components-services-partner.ts"],"sourcesContent":["import { Injectable, inject } from '@angular/core';\nimport { Partner } from '@xxmachina/common/invoice/domain/models';\nimport { GraphqlService } from '@xxmachina/components/services/graphql';\nimport { map } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class PartnerService {\n private graphql = inject(GraphqlService);\n list() {\n return this.graphql.graphql({\n query: `query { partners {\n id\n name\n type\n address\n postalCode\n email\n billingEmail\n billingContact\n phoneNumber\n contact\n suffix\n bankAccount\n } }`\n }).pipe(\n map((data => data?.data?.partners ?? [])),\n map((partners) => partners.map((partner: any) => Partner.from({...partner}))),\n )\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;MAMa,cAAc,CAAA;AACjB,IAAA,OAAO,GAAG,MAAM,CAAC,cAAc,CAAC;IACxC,IAAI,GAAA;AACF,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;AAC1B,YAAA,KAAK,EAAE,CAAA;;;;;;;;;;;;;AAaH,SAAA;SACL,CAAC,CAAC,IAAI,CACL,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,QAAQ,IAAI,EAAE,EAAE,EACzC,GAAG,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAY,KAAK,OAAO,CAAC,IAAI,CAAC,EAAC,GAAG,OAAO,EAAC,CAAC,CAAC,CAAC,CAC9E;IACH;uGAtBW,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAd,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,cADD,MAAM,EAAA,CAAA;;2FACnB,cAAc,EAAA,UAAA,EAAA,CAAA;kBAD1B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;ACLlC;;AAEG;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"xxmachina-components-services-query.mjs","sources":["../../../../../packages/@xxmachina/components/src/lib/services/query/query.service.ts","../../../../../packages/@xxmachina/components/src/lib/services/query/xxmachina-components-services-query.ts"],"sourcesContent":["import { HttpClient } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { map, lastValueFrom, switchMap } from 'rxjs';\nimport { getIntrospectionQuery } from 'graphql';\nimport { Query, QueryHelper } from '@xxmachina/common/domain/models';\nimport { QueryConfigService } from '@xxmachina/common/services/query/config';\nimport { GraphqlService } from '@xxmachina/common/services/graphql';\nimport { Observable } from 'rxjs';\nimport { QueryResolverService } from '@ng-atomic/common/services/query-resolver';\nimport { QueryService as CommonQueryService } from '@xxmachina/common/services/query';\n\n\n@Injectable({ providedIn: 'root' })\nexport class QueryService {\n protected readonly http = inject(HttpClient);\n protected readonly graphql = inject(GraphqlService);\n protected readonly resolver = inject(QueryResolverService);\n \n protected readonly config = inject(QueryConfigService);\n readonly query = inject(CommonQueryService);\n\n getSchema(endpoint: string, options: {\n headers?: Record<string, string>,\n } = { headers: { 'content-type': 'application/json' } }) {\n return this.config.resolve(options).pipe(\n switchMap(({headers}) => this.http.post(endpoint, { query: getIntrospectionQuery() }, { headers }))\n );\n }\n\n subscribeSchema(endpoint: string, options: {\n headers?: Record<string, string>,\n }): Observable<any> {\n return this.config.resolve({\n endpoint,\n headers: options.headers,\n query: getIntrospectionQuery(),\n variables: {}\n }).pipe(\n switchMap(({endpoint}) => {\n const getHeaders = () => this.config.resolve(options.headers as object) as unknown as Observable<Record<string, string>>;\n return this.graphql.getSchema({\n endpoint: endpoint!,\n headers: getHeaders as never,\n }).pipe(\n map((result: any) => QueryHelper.parseResult(result)),\n );\n }),\n );\n }\n\n \n subscribeQuery(query: {\n type: 'graphql',\n graphql: any,\n }): Observable<Record<string, any>> {\n return this.query.subscribe(query as Query);\n }\n\n async generate(\n instructions: string,\n options: {\n baseUrl: string\n } = {\n baseUrl: '',\n },\n ) {\n const endpoint = `${options.baseUrl}/generate`;\n return lastValueFrom(this.http.post<{query: string}>(endpoint, { instructions }));\n }\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["CommonQueryService"],"mappings":";;;;;;;;;;;MAaa,YAAY,CAAA;AACJ,IAAA,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC;AACzB,IAAA,OAAO,GAAG,MAAM,CAAC,cAAc,CAAC;AAChC,IAAA,QAAQ,GAAG,MAAM,CAAC,oBAAoB,CAAC;AAEvC,IAAA,MAAM,GAAG,MAAM,CAAC,kBAAkB,CAAC;AAC7C,IAAA,KAAK,GAAG,MAAM,CAACA,cAAkB,CAAC;AAE3C,IAAA,SAAS,CAAC,QAAgB,EAAE,OAAA,GAExB,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,EAAE,EAAA;AACrD,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CACtC,SAAS,CAAC,CAAC,EAAC,OAAO,EAAC,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,qBAAqB,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,CACpG;IACH;IAEA,eAAe,CAAC,QAAgB,EAAE,OAEjC,EAAA;AACC,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACzB,QAAQ;YACR,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,KAAK,EAAE,qBAAqB,EAAE;AAC9B,YAAA,SAAS,EAAE;SACZ,CAAC,CAAC,IAAI,CACL,SAAS,CAAC,CAAC,EAAC,QAAQ,EAAC,KAAI;AACvB,YAAA,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,OAAiB,CAAkD;AACxH,YAAA,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;AAC5B,gBAAA,QAAQ,EAAE,QAAS;AACnB,gBAAA,OAAO,EAAE,UAAmB;AAC7B,aAAA,CAAC,CAAC,IAAI,CACL,GAAG,CAAC,CAAC,MAAW,KAAK,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CACtD;QACH,CAAC,CAAC,CACH;IACH;AAGA,IAAA,cAAc,CAAC,KAGd,EAAA;QACC,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAc,CAAC;IAC7C;AAEA,IAAA,MAAM,QAAQ,CACZ,YAAoB,EACpB,OAAA,GAEI;AACF,QAAA,OAAO,EAAE,EAAE;AACZ,KAAA,EAAA;AAED,QAAA,MAAM,QAAQ,GAAG,CAAA,EAAG,OAAO,CAAC,OAAO,WAAW;AAC9C,QAAA,OAAO,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAkB,QAAQ,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC;IACnF;uGAvDW,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAZ,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,cADC,MAAM,EAAA,CAAA;;2FACnB,YAAY,EAAA,UAAA,EAAA,CAAA;kBADxB,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;ACZlC;;AAEG;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"xxmachina-components-services-recording.mjs","sources":["../../../../../packages/@xxmachina/components/src/lib/services/recording/recording.service.ts","../../../../../packages/@xxmachina/components/src/lib/services/recording/xxmachina-components-services-recording.ts"],"sourcesContent":["import { Injectable, computed, signal } from '@angular/core';\nimport fixWebmDuration from 'fix-webm-duration';\nimport dayjs from 'dayjs';\nimport { filter, interval, map, Observable } from 'rxjs';\nimport { toSignal } from '@angular/core/rxjs-interop';\n\n@Injectable({ providedIn: 'root' })\nexport class RecordingService {\n\n constructor() {\n \n \n \n \n \n }\n\n readonly stream = signal<MediaStream | null>(null);\n readonly recorder = computed(() => this.stream() ? new MediaRecorder(this.stream()!) : null);\n \n \n \n \n \n \n \n \n readonly isRecording$ = interval(500).pipe(map(() => this.recorder()?.state === 'recording'));\n readonly isRecording = toSignal(this.isRecording$);\n readonly recordedChunks = signal<Blob[]>([]);\n readonly startTime = signal<dayjs.Dayjs>(null as unknown as dayjs.Dayjs);\n\n async stopStream() {\n if (this.stream()) {\n this.stream()!.getTracks().forEach(track => track.stop());\n this.stream.set(null);\n }\n }\n\n async start(stream: MediaStream = this.stream()!) {\n this.recordedChunks.set([]);\n this.stream.set(stream);\n\n new Observable<BlobEvent>((subscriber) => {\n this.recorder()!.ondataavailable = (event) => subscriber.next(event);\n this.recorder()!.onstop = () => subscriber.complete();\n this.recorder()!.onerror = (error) => subscriber.error(error);\n }).pipe(\n filter((event) => event.data.size > 0),\n ).subscribe((event) => {\n this.recordedChunks.update((current) => ([...current, event.data]));\n });\n\n this.startTime.set(dayjs());\n this.recorder()!.start(100);\n }\n\n async stop() {\n if (this.recorder()) this.recorder()!.stop();\n const blob = new Blob(this.recordedChunks(), { type: 'video/webm' });\n this.recordedChunks.set([]);\n const time = dayjs().diff(this.startTime(), 'millisecond');\n this.startTime.set(null as unknown as dayjs.Dayjs);\n return fixWebmDuration(blob, time);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"xxmachina-components-services-thread.mjs","sources":["../../../../../packages/@xxmachina/components/src/lib/services/thread/thread.service.ts","../../../../../packages/@xxmachina/components/src/lib/services/thread/xxmachina-components-services-thread.ts"],"sourcesContent":["import { HttpClient } from '@angular/common/http';\nimport { Injectable, inject } from '@angular/core';\nimport { message } from '@nx-ddd/common';\nimport { NEVER, Observable, ReplaySubject, catchError, interval, lastValueFrom, map, startWith, switchMap, takeUntil } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class ThreadService {\n readonly http = inject(HttpClient);\n\n \n\n getThread(id: string) {\n return this.http.get(`/api/threads/${id}`);\n }\n\n create() {\n return lastValueFrom(this.http.post<{id: string}>('/api/threads', {}));\n }\n\n listMessages(threadId: string) {\n return this.http.get<any[]>(`/api/threads/${threadId}/messages`);\n }\n\n createMessage(message: {threadId: string, role: 'user', content: string}) {\n return lastValueFrom(this.http.post(`/api/threads/${message.threadId}/messages`, message));\n }\n\n run(assistantId: string, threadId: string) {\n return lastValueFrom(this.http.post<{id: string}>(`/api/threads/${threadId}/runs`, {\n assistantId,\n instructions: message``,\n tools: [],\n }));\n }\n\n submitToolOutputs(threadId: string, runId: string, toolOutputs: any[]) {\n return lastValueFrom(this.http.post<any>(`/api/threads/${threadId}/runs/${runId}/submit_tool_outputs`, {\n toolOutputs,\n }));\n }\n\n retrieveRun(threadId: string, runId: string) {\n return lastValueFrom(this.http.get<any>(`/api/threads/${threadId}/runs/${runId}`));\n }\n\n retrieveRunSteps(threadId: string, runId: string) {\n return this.http.get<any>(`/api/threads/${threadId}/runs/${runId}/steps`);\n }\n\n observeSteps(threadId: string, runId: string): Observable<'dealing' | 'message_creating' | 'function_calling' | 'done'> {\n const stop$ = new ReplaySubject<void>();\n return interval(1000).pipe(\n startWith(null),\n takeUntil(stop$),\n switchMap(() => this.retrieveRunSteps(threadId, runId).pipe(\n catchError((error) => (console.error(error), NEVER)),\n )),\n map(steps => {\n if (steps.some((step: any) => step.status === 'in_progress')) {\n const inProgress = steps.find((step: any) => step.status === 'in_progress');\n switch (inProgress.type) {\n case 'message_creation': return 'message_creating';\n default: return 'function_calling'\n }\n }\n\n if (steps.find((step: any) => step.type === 'message_creation')?.status === 'completed') {\n stop$.next();\n return 'done';\n }\n return 'dealing';\n \n })\n );\n }\n\n async watchSteps(\n threadId: string,\n runId: string,\n onStatusChanged: (status: string) => void,\n ) {\n while (true) {\n const steps = await lastValueFrom(this.retrieveRunSteps(threadId, runId));\n console.debug('steps:', steps);\n if (steps.some((step: any) => step.status === 'in_progress')) {\n const inProgress = steps.find((step: any) => step.status === 'in_progress');\n switch (inProgress.type) {\n case 'message_creation': {\n onStatusChanged('message_creating');\n break;\n }\n default: {\n onStatusChanged('function_calling');\n break;\n }\n }\n }\n\n onStatusChanged('dealing');\n\n if (steps.find((step: any) => step.type === 'message_creation')?.status === 'completed') {\n onStatusChanged('done');\n break;\n }\n\n await new Promise(resolve => setTimeout(resolve, 1000));\n }\n }\n\n async watch(\n threadId: string,\n runId: string,\n onFunctionCalled: (toolCall: any) => Promise<object> | object,\n onCompleted: () => void,\n onError: (error: any) => void,\n ) {\n while (true) {\n const run = await this.retrieveRun(threadId, runId);\n switch (run.status) {\n case 'requires_action': {\n try {\n const toolCalls = run.required_action.submit_tool_outputs.tool_calls;\n const result = await onFunctionCalled(toolCalls[0]);\n this.submitToolOutputs(threadId, runId, [{ toolCallId: toolCalls[0].id, output: JSON.stringify(result) }]);\n } catch (error) {\n onError(error);\n \n }\n }\n case 'completed': {\n console.debug(`run ${runId} completed`);\n onCompleted();\n \n return;\n }\n case 'failed': {\n console.debug(`run ${runId} failed`);\n return;\n }\n }\n await new Promise(resolve => setTimeout(resolve, 1000));\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"xxmachina-components-services-transformer.mjs","sources":["../../../../../packages/@xxmachina/components/src/lib/services/transformer/transformer.service.ts","../../../../../packages/@xxmachina/components/src/lib/services/transformer/xxmachina-components-services-transformer.ts"],"sourcesContent":["import { inject, Injectable } from '@angular/core';\nimport { Spec, Transformer } from '@xxmachina/common/domain/models';\nimport { QuickJsService } from '@xxmachina/common/infra/external/quick-js';\nimport { isEqual } from 'lodash-es';\nimport { diff } from 'jest-diff'\n\n@Injectable({providedIn: 'root'})\nexport class TransformerService {\n readonly quickJs = inject(QuickJsService);\n\n async runTest(transformer: Transformer, spec: Spec): Promise<{isEqual: boolean, diff: string}> {\n const output = await this.quickJs.apply(transformer.script, 'transformer', [spec.input]) as object;\n return {isEqual: isEqual(spec.output, output), diff: diff(output, spec.output) ?? ''};\n }\n\n async runTests(transformer: Transformer, specs: Spec[]): Promise<{isEqual: boolean, diff: string}[]> {\n return Promise.all(specs.map(spec => this.runTest(transformer, spec)));\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;MAOa,kBAAkB,CAAA;AACpB,IAAA,OAAO,GAAG,MAAM,CAAC,cAAc,CAAC;AAEzC,IAAA,MAAM,OAAO,CAAC,WAAwB,EAAE,IAAU,EAAA;QAChD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAW;QAClG,OAAO,EAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAC;IACvF;AAEA,IAAA,MAAM,QAAQ,CAAC,WAAwB,EAAE,KAAa,EAAA;QACpD,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;IACxE;uGAVW,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAlB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,cADN,MAAM,EAAA,CAAA;;2FAClB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAD9B,UAAU;mBAAC,EAAC,UAAU,EAAE,MAAM,EAAC;;;ACNhC;;AAEG;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"xxmachina-components-services-version.mjs","sources":["../../../../../packages/@xxmachina/components/src/lib/services/version/read-config-from-idb.ts","../../../../../packages/@xxmachina/components/src/lib/services/version/version.service.ts","../../../../../packages/@xxmachina/components/src/lib/services/version/xxmachina-components-services-version.ts"],"sourcesContent":["\nexport function readConfigFromIdb(key: string): Promise<string> {\n return new Promise((resolve) => {\n try {\n const req = indexedDB.open('firebase_remote_config');\n req.onsuccess = (e) => {\n const db = (e.target as IDBOpenDBRequest).result;\n const tx = db.transaction('app_namespace_store', 'readonly');\n const store = tx.objectStore('app_namespace_store');\n const getAll = store.getAll();\n getAll.onsuccess = () => {\n const resp = getAll.result.find(\n (item: { compositeKey: string }) =>\n item.compositeKey.endsWith('last_successful_fetch_response'),\n );\n db.close();\n resolve(resp?.value?.config?.[key] ?? '');\n };\n getAll.onerror = () => { db.close(); resolve(''); };\n };\n req.onerror = () => resolve('');\n } catch {\n resolve('');\n }\n });\n}\n","import { Injectable, signal, computed, inject, DestroyRef } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { FirebaseApp } from '@angular/fire/app';\nimport {\n getRemoteConfig,\n fetchAndActivate,\n fetchConfig,\n getString,\n activate,\n} from 'firebase/remote-config';\nimport type { RemoteConfig } from 'firebase/remote-config';\nimport { readConfigFromIdb } from './read-config-from-idb';\n\nexport interface Version {\n key: string;\n label: string;\n}\n\n\nconst DEFAULT_VERSIONS: Version[] = [\n { key: 'stable', label: 'stable (本番)' },\n { key: 'dev', label: 'dev (開発)' },\n];\n\n\nconst POLLING_INTERVAL_MS = 60_000; \n\n@Injectable({ providedIn: 'root' })\nexport class VersionService {\n private readonly document = inject(DOCUMENT);\n private readonly destroyRef = inject(DestroyRef);\n \n private readonly firebaseApp = inject(FirebaseApp, { optional: true });\n private remoteConfig?: RemoteConfig;\n private unsubscribe?: () => void;\n private pollingInterval?: ReturnType<typeof setInterval>;\n private initialized = false;\n\n \n readonly versions = signal<Version[]>(DEFAULT_VERSIONS);\n\n \n readonly isLoading = signal(true);\n\n \n private isVersionedHost(hostname: string): boolean {\n return hostname === 'machina.at' || hostname === 'planx.machina.at';\n }\n\n \n readonly currentVersion = computed(() => {\n const hostname = this.document.location.hostname;\n\n \n if (this.isVersionedHost(hostname)) {\n const pathParts = this.document.location.pathname.split('/').filter(Boolean);\n if (pathParts.length > 0) {\n return pathParts[0];\n }\n }\n\n \n return null;\n });\n\n \n readonly isCloudflareEnv = computed(() => {\n const hostname = this.document.location.hostname;\n return this.isVersionedHost(hostname) || hostname === 'localhost';\n });\n\n \n async initialize(): Promise<void> {\n if (this.initialized) return;\n this.initialized = true;\n await this.initRemoteConfig();\n }\n\n \n switchVersion(versionKey: string): void {\n const currentPath = this.document.location.pathname;\n const currentVersion = this.currentVersion();\n\n let newPath: string;\n if (currentVersion) {\n \n newPath = currentPath.replace(`/${currentVersion}`, `/${versionKey}`);\n } else {\n \n newPath = `/${versionKey}${currentPath}`;\n }\n\n this.document.location.href = `${this.document.location.origin}${newPath}`;\n }\n\n \n private async initRemoteConfig(): Promise<void> {\n \n if (!this.firebaseApp) {\n console.warn('[VersionService] FirebaseApp not available, using defaults');\n this.isLoading.set(false);\n return;\n }\n\n try {\n this.remoteConfig = getRemoteConfig(this.firebaseApp);\n \n \n \n \n this.remoteConfig.settings.minimumFetchIntervalMillis = 0;\n } catch (e) {\n console.warn('[VersionService] Failed to get RemoteConfig:', e);\n this.isLoading.set(false);\n return;\n }\n\n \n try {\n await fetchAndActivate(this.remoteConfig);\n\n \n \n let initialValue = getString(this.remoteConfig, 'available_versions');\n if (!initialValue) {\n initialValue = await readConfigFromIdb('available_versions');\n }\n console.log('[VersionService] Initial Remote Config value:', initialValue);\n this.updateVersions(initialValue);\n\n \n this.remoteConfig.settings.minimumFetchIntervalMillis = 60_000;\n } catch (e) {\n console.warn('[VersionService] Failed to fetch Remote Config:', e);\n this.isLoading.set(false);\n return;\n }\n\n \n this.setupRealtimeListenerWithFallback();\n }\n\n \n private setupRealtimeListenerWithFallback(): void {\n if (!this.remoteConfig) return;\n\n \n \n this.setupPollingFallback();\n\n this.destroyRef.onDestroy(() => {\n this.unsubscribe?.();\n if (this.pollingInterval) {\n clearInterval(this.pollingInterval);\n }\n });\n }\n\n \n private setupPollingFallback(): void {\n if (!this.remoteConfig) return;\n\n console.log('[VersionService] Setting up polling fallback');\n\n this.pollingInterval = setInterval(async () => {\n try {\n await fetchConfig(this.remoteConfig!);\n await activate(this.remoteConfig!);\n let newValue = getString(this.remoteConfig!, 'available_versions');\n if (!newValue) {\n newValue = await readConfigFromIdb('available_versions');\n }\n console.log('[VersionService] Polling: Remote Config value:', newValue);\n this.updateVersions(newValue);\n } catch (e) {\n console.warn('[VersionService] Polling fetch failed:', e);\n }\n }, POLLING_INTERVAL_MS);\n }\n\n \n private updateVersions(jsonString: string): void {\n if (jsonString) {\n try {\n const parsed = JSON.parse(jsonString) as Version[];\n if (parsed.length > 0) {\n this.versions.set(parsed);\n }\n } catch (e) {\n console.warn('[VersionService] Failed to parse available_versions:', e);\n }\n }\n this.isLoading.set(false);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"xxmachina-components-services-workspace-switcher.mjs","sources":["../../../../../packages/@xxmachina/components/src/lib/services/workspace-switcher/workspace-switcher.service.ts","../../../../../packages/@xxmachina/components/src/lib/services/workspace-switcher/xxmachina-components-services-workspace-switcher.ts"],"sourcesContent":["import { Signal } from '@angular/core';\n\nexport interface WorkspaceOption {\n id: string;\n kind: string;\n name: string;\n}\n\n\nexport abstract class WorkspaceSwitcherService {\n \n abstract readonly workspaces: Signal<WorkspaceOption[] | null>;\n abstract readonly currentWorkspaceId: Signal<string | null>;\n abstract readonly currentWorkspaceName: Signal<string | null>;\n \n abstract switchTo(workspaceId: string): void;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"MASsB,wBAAwB,CAAA;AAO7C;;AChBD;;AAEG;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"xxmachina-components-services-youtube.mjs","sources":["../../../../../packages/@xxmachina/components/src/lib/services/youtube/youtube.service.ts","../../../../../packages/@xxmachina/components/src/lib/services/youtube/xxmachina-components-services-youtube.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class YoutubeService {\n\n constructor() { }\n\n async uploadHls(cid: string, files: File[]): Promise<void> {\n for (const file of files) {\n const URL = `https://a.upload.youtube.com/http_upload_hls?cid=${cid}&copy=0&file=${file.name}`;\n fetch(URL, {body: file, method: 'POST', mode: 'no-cors'})\n .catch((err => console.error('err:', err)));\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MAKa,cAAc,CAAA;AAEzB,IAAA,WAAA,GAAA,EAAgB;AAEhB,IAAA,MAAM,SAAS,CAAC,GAAW,EAAE,KAAa,EAAA;AACxC,QAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;YACtB,MAAM,GAAG,GAAG,CAAA,iDAAA,EAAoD,GAAG,gBAAgB,IAAI,CAAC,IAAI,CAAA,CAAE;AAC9F,YAAA,KAAK,CAAC,GAAG,EAAE,EAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAC;AACrD,iBAAA,KAAK,EAAE,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE;QACjD;IACF;uGAVW,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAd,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,cAFb,MAAM,EAAA,CAAA;;2FAEP,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;ACJD;;AAEG;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"xxmachina-components-templates-agent.mjs","sources":["../../../../../packages/@xxmachina/components/src/lib/templates/agent/agent-messages.ts","../../../../../packages/@xxmachina/components/src/lib/templates/agent/agent.template.ts","../../../../../packages/@xxmachina/components/src/lib/templates/agent/xxmachina-components-templates-agent.ts"],"sourcesContent":["import chalk from 'chalk';\n\n\nconst CORE_MESSAGE = `${chalk.cyan('● What is Plan X?')}\n A modern SSH and tmux alternative, peer-to-peer over WebRTC.\n Connect any machine worldwide with a single command and deploy AI agents anywhere.\n\n${chalk.cyan(`● Vision: ${chalk.bold.yellow('\"The Planet is the Computer\"')}`)}\n Building a planetary-scale operating system\n AI agents autonomously optimize distributed systems\n\n${chalk.cyan('● Agentic Shell')}\n Unified interface to distributed resources\n Express your intent in natural language, AI plans the execution\n\n${chalk.cyan('● Meta-Kernel')}\n Distributed abstraction layer running on top of existing OSes (Linux/Mac/Win)\n Just as kernels abstract hardware, Plan X abstracts the network\n\n${chalk.cyan('● Autopoiesis')}\n Self-improving, self-sustaining, self-replicating living system\n Agents evolve themselves and spawn new agents`;\n\n\nexport const WELCOME_MESSAGE = `${chalk.cyan(`● Welcome to ${chalk.bold.yellow('Plan X')}`)}\n\n${CORE_MESSAGE}\n\n${chalk.gray('powered by Plan X Agent LLC.')}\n`;\n\n\nexport const ABOUT_MESSAGE = `${chalk.bold.cyan('● Plan X - OS for the LLM Era')}\n\n${CORE_MESSAGE}\n\n${chalk.cyan('● QTP/ATC Patterns')}\n Query-Transformer-Presenter: Retrieve information\n Action-Transformer-Command: Execute actions\n New interaction model replacing stdio\n\n${chalk.cyan('● Learn More')}\n Sign in to access more features\n\n${chalk.gray('powered by Plan X Agent LLC.')}`;\n","import { ChangeDetectionStrategy, Component, inject, ChangeDetectorRef, ElementRef, AfterViewInit, Provider, viewChild, computed, HostListener, input } from '@angular/core';\nimport { NgAtomicComponent, provideComponent } from '@ng-atomic/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { AutoLayoutFrame } from '@ng-atomic/components/frames/auto-layout';\nimport { CardFrame } from '@ng-atomic/components/frames/card';\nimport { ScrollFrame } from '@ng-atomic/components/frames/scroll';\nimport { ActionButtonsSectionOrganism } from '@ng-atomic/components/organisms/action-buttons-section';\nimport { HeadingOrganism } from '@ng-atomic/components/organisms/heading';\nimport { NgAtomicFormSectionBuilder } from '@ng-atomic/components/templates/form';\nimport { EntranceTemplateStore } from '@ng-atomic/components/templates/entrance';\nimport { AppService } from '@ng-atomic/common/services/app';\nimport { injectAuthState } from '@ng-atomic/common/services/auth';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { Terminal } from '@xterm/xterm';\nimport { XtermOrganism, svgToSixel } from '@xxmachina/components/organisms/xterm';\nimport { NavigatorOrganismStore } from '@ng-atomic/components/organisms/navigator';\nimport chalk from 'chalk';\nimport { WELCOME_MESSAGE, ABOUT_MESSAGE } from './agent-messages';\n\n\nenum ActionId {\n SIGN_IN = '[@ng-atomic/components] Sign In',\n SIGN_IN_WITH_GOOGLE = '[@ng-atomic/components] Sign In With Google',\n SIGN_IN_WITH_TWITTER = '[@ng-atomic/components] Sign In With Twitter',\n SIGN_OUT = '[@ng-atomic/components] Sign Out',\n NAVIGATE = '[@ng-atomic/components] Navigate',\n}\n\n@Component({\n selector: 'templates-agent',\n imports: [\n FormsModule,\n AutoLayoutFrame,\n CardFrame,\n ScrollFrame,\n ActionButtonsSectionOrganism,\n HeadingOrganism,\n NgAtomicFormSectionBuilder,\n MatButtonModule,\n MatIconModule,\n MatTooltipModule,\n XtermOrganism,\n NavigatorOrganismStore\n],\n template: `\n <frames-scroll class=\"terminal-window\">\n <organisms-navigator top injectable class=\"terminal-header\"\n [startActions]=\"navStartActions()\"\n [endActions]=\"endActions()\"\n (action)=\"onNavAction($event)\"\n >MACHINA</organisms-navigator>\n\n <ng-content select=\"[terminalSlot]\">\n <organisms-xterm\n class=\"terminal-display\"\n (terminalReady)=\"onTerminalReady($event)\"\n (githubLinkClick)=\"onGitHubLinkClick($event)\"\n (click)=\"focusInput()\"\n #xtermComponent\n />\n </ng-content>\n\n @if (!hideInputArea()) {\n <div bottom class=\"input-area\">\n <div class=\"input-line\">\n <span class=\"input-prefix\">></span>\n <div class=\"textarea-wrapper\">\n <span class=\"arrow-prefix\">></span>\n <div class=\"input-container\">\n <textarea\n #inputField\n class=\"terminal-input\"\n [(ngModel)]=\"currentInput\"\n (keydown.enter)=\"handleEnter($event)\"\n (keydown.arrowUp)=\"navigateHistory($event, -1)\"\n (keydown.arrowDown)=\"navigateHistory($event, 1)\"\n (keydown.control.k)=\"generateCommand($event)\"\n (keydown.meta.k)=\"generateCommand($event)\"\n (keydown)=\"preventPrefixDeletion($event)\"\n (input)=\"handleInput($event)\"\n (focus)=\"handleFocus()\"\n (blur)=\"handleBlur()\"\n (keyup)=\"updateCursorPosition()\"\n (click)=\"updateCursorPosition()\"\n (scroll)=\"updateCursorPosition()\"\n [disabled]=\"isProcessing\"\n placeholder=\"Type a command...\"\n rows=\"1\"\n ></textarea>\n <div class=\"block-cursor\"\n [class.visible]=\"showCursor\"\n [style.left.px]=\"cursorLeft\"\n [style.top.px]=\"cursorTop\"\n ></div>\n </div>\n </div>\n </div>\n </div>\n }\n </frames-scroll>\n `,\n styleUrls: ['./agent.template.scss'],\n host: {\n class: 'template'\n },\n changeDetection: ChangeDetectionStrategy.Default,\n hostDirectives: [\n {\n directive: EntranceTemplateStore,\n inputs: [\n 'form',\n 'actions',\n 'title',\n 'fieldMap',\n ],\n },\n ]\n})\nexport class AgentTemplate extends NgAtomicComponent implements AfterViewInit {\n static ActionId = ActionId;\n protected ActionId = ActionId;\n protected store = inject(EntranceTemplateStore);\n private cdr = inject(ChangeDetectorRef);\n private app = inject(AppService);\n\n \n private readonly authState = injectAuthState();\n protected readonly isLoggedIn = computed(() => !!this.authState());\n\n readonly endActions = input<any[]>([]);\n readonly hideInputArea = input<boolean>(false);\n\n protected navStartActions = computed(() => {\n if (!this.isLoggedIn()) return [];\n return [{ id: 'close-side-app', icon: 'close', name: '閉じる' }];\n });\n\n readonly xtermComponent = viewChild<XtermOrganism>('xtermComponent');\n readonly inputField = viewChild<ElementRef<HTMLTextAreaElement>>('inputField');\n\n protected statusText = 'Ready';\n protected isProcessing = false;\n protected showCursor = false;\n protected cursorLeft = 60;\n protected cursorTop = 12;\n\n \n private terminal!: Terminal;\n private commandHistory: string[] = [];\n private historyIndex = -1;\n \n \n protected currentInput = '';\n\n ngAfterViewInit() {\n \n setTimeout(() => {\n const textarea = this.inputField()?.nativeElement;\n if (textarea) {\n textarea.focus();\n \n this.adjustTextareaHeight();\n }\n }, 100);\n }\n\n @HostListener('window:resize')\n onWindowResize() {\n \n this.xtermComponent()?.fit();\n }\n\n onTerminalReady(terminal: Terminal) {\n this.terminal = terminal;\n\n \n setTimeout(() => {\n this.xtermComponent()?.fit();\n }, 50);\n\n \n this.showWelcomeMessage();\n\n \n setTimeout(() => {\n this.terminal.scrollToTop();\n }, 100);\n\n \n const textarea = this.inputField()?.nativeElement;\n if (textarea) {\n textarea.focus();\n this.adjustTextareaHeight();\n }\n }\n\n onGitHubLinkClick(issueNumber: number) {\n const url = `https://github.com/nontangent/x_x_machina/issues/${issueNumber}`;\n window.open(url, '_blank');\n }\n\n private async showWelcomeMessage() {\n this.terminal.writeln('');\n\n \n try {\n const response = await fetch('/assets/machina-ascii-art.svg');\n const svgString = await response.text();\n const sixelData = await svgToSixel(svgString, { width: 400, height: 130 });\n this.terminal.write(sixelData);\n this.terminal.writeln('');\n } catch (error) {\n console.warn('SIXEL logo display failed, using ASCII fallback:', error);\n \n this.terminal.writeln(`${chalk.cyan(' ██╗ ██╗ ██╗ ██╗')}`);\n this.terminal.writeln(`${chalk.cyan(' ╚██╗██╔╝ ╚██╗██╔╝ ')}`);\n this.terminal.writeln(`${chalk.cyan(' ╚███╔╝ ╚███╔╝ ')}`);\n this.terminal.writeln(`${chalk.cyan(' ██╔██╗ ██╔██╗ ')}`);\n this.terminal.writeln(`${chalk.cyan(' ██╔╝ ██╗ ██╔╝ ██╗ ')}`);\n this.terminal.writeln(`${chalk.cyan(' ╚═╝ ╚═╝ ╚═╝ ╚═╝ ')}`);\n }\n this.terminal.writeln('');\n\n \n WELCOME_MESSAGE.split('\\n').forEach(line => this.terminal.writeln(line));\n\n this.terminal.writeln('');\n this.terminal.writeln(`${chalk.cyan('● Type \\x1b[1;36mlogin\\x1b[1;33m to sign in with Google\\x1b[0m')}`);\n this.terminal.writeln(`${chalk.cyan('● Type \\x1b[1;36mhelp\\x1b[1;33m for more commands\\x1b[0m')}`);\n this.terminal.writeln('');\n\n \n this.showPrompt();\n }\n\n\n private showPrompt() {\n void 0;\n }\n\n private processCommand(command: string) {\n this.isProcessing = true;\n this.statusText = 'Processing...';\n this.cdr.markForCheck();\n\n \n if (command === 'login') {\n this.terminal.writeln('\\x1b[1;32m● Initiating Google authentication...\\x1b[0m');\n setTimeout(() => {\n this.dispatch({ id: ActionId.SIGN_IN_WITH_GOOGLE });\n this.completeProcessing();\n }, 300);\n }\n else if (command.startsWith('auth')) {\n if (command.includes('google')) {\n this.terminal.writeln('\\x1b[1;32m● Initiating Google authentication...\\x1b[0m');\n setTimeout(() => {\n this.dispatch({ id: ActionId.SIGN_IN_WITH_GOOGLE });\n this.completeProcessing();\n }, 300);\n } else if (command.includes('twitter')) {\n this.terminal.writeln('\\x1b[1;32m● Initiating Twitter authentication...\\x1b[0m');\n setTimeout(() => {\n this.dispatch({ id: ActionId.SIGN_IN_WITH_TWITTER });\n this.completeProcessing();\n }, 300);\n } else if (command.includes('local')) {\n this.terminal.writeln('\\x1b[1;32m● Initiating local authentication...\\x1b[0m');\n setTimeout(() => {\n this.dispatch({ id: ActionId.SIGN_IN });\n this.completeProcessing();\n }, 300);\n } else {\n this.terminal.writeln('\\x1b[1;32m● Available authentication methods:\\x1b[0m');\n this.terminal.writeln(' - auth --provider=google');\n this.terminal.writeln(' - auth --provider=twitter');\n this.terminal.writeln(' - auth --provider=local');\n this.completeProcessing();\n }\n }\n \n else if (command === 'logout' || command === 'signout') {\n this.terminal.writeln('\\x1b[1;32m● Signing out...\\x1b[0m');\n setTimeout(() => {\n this.dispatch({ id: ActionId.SIGN_OUT });\n setTimeout(() => {\n this.terminal.writeln('\\x1b[1;32m● You have been signed out.\\x1b[0m');\n this.terminal.writeln('\\x1b[1;33m● Type \"login\" to sign in again.\\x1b[0m');\n this.completeProcessing();\n }, 500);\n }, 300);\n }\n \n else if (command === 'help' || command === '?') {\n this.terminal.writeln('\\x1b[1;32m● Available commands:\\x1b[0m');\n this.terminal.writeln(' \\x1b[36mlogin\\x1b[0m - Sign in with Google (default)');\n this.terminal.writeln(' \\x1b[36mauth\\x1b[0m --provider=\\x1b[33mgoogle\\x1b[0m - Sign in with Google');\n this.terminal.writeln(' \\x1b[36mauth\\x1b[0m --provider=\\x1b[33mtwitter\\x1b[0m - Sign in with Twitter');\n this.terminal.writeln(' \\x1b[36mauth\\x1b[0m --provider=\\x1b[33mlocal\\x1b[0m - Sign in with email/password');\n this.terminal.writeln(' \\x1b[36mlogout\\x1b[0m / \\x1b[36msignout\\x1b[0m - Sign out from the application');\n this.terminal.writeln(' \\x1b[36mterms\\x1b[0m - View Terms of Service');\n this.terminal.writeln(' \\x1b[36mabout\\x1b[0m - Show company information');\n this.terminal.writeln(' \\x1b[36mclear\\x1b[0m - Clear terminal');\n this.terminal.writeln(' \\x1b[36mhelp\\x1b[0m / \\x1b[36m?\\x1b[0m - Show this help');\n this.terminal.writeln('');\n this.terminal.writeln('\\x1b[1;33m● Keyboard shortcuts:\\x1b[0m');\n this.terminal.writeln(' \\x1b[36m⌘K\\x1b[0m / \\x1b[36mCtrl+K\\x1b[0m - Generate command suggestions');\n this.terminal.writeln(' \\x1b[36m↑\\x1b[0m / \\x1b[36m↓\\x1b[0m - Navigate command history');\n this.completeProcessing();\n }\n \n else if (command === 'about') {\n ABOUT_MESSAGE.split('\\n').forEach(line => this.terminal.writeln(line));\n this.completeProcessing();\n }\n \n else if (command === 'terms') {\n this.terminal.writeln('\\x1b[1;32m● Opening Terms of Service...\\x1b[0m');\n setTimeout(() => {\n this.dispatch({ id: ActionId.NAVIGATE, payload: 'terms' });\n this.completeProcessing();\n }, 300);\n }\n \n else if (command === 'clear' || command === 'cls') {\n this.terminal.clear();\n this.terminal.scrollToBottom();\n this.completeProcessing();\n }\n \n else {\n this.terminal.writeln(`\\x1b[1;31m● Command not found: ${command}\\x1b[0m`);\n this.terminal.writeln(' Type \"help\" for available commands.');\n this.completeProcessing();\n }\n }\n\n private completeProcessing() {\n this.isProcessing = false;\n this.statusText = 'Ready';\n this.cdr.markForCheck();\n this.terminal.writeln('');\n \n \n this.terminal.scrollToBottom();\n \n \n setTimeout(() => {\n this.inputField()?.nativeElement?.focus();\n }, 100);\n }\n\n handleEnter(event: KeyboardEvent) {\n \n if (event.shiftKey || event.ctrlKey) {\n return; \n }\n\n event.preventDefault();\n const actualCommand = this.currentInput.trim();\n\n if (actualCommand) {\n \n const displayCommand = actualCommand.split('\\n').map(line => '\\x1b[32m> \\x1b[0m' + line).join('\\r\\n');\n this.terminal.write(displayCommand + '\\r\\n');\n\n \n this.commandHistory.push(actualCommand);\n this.historyIndex = this.commandHistory.length;\n\n \n this.processCommand(actualCommand);\n\n \n this.currentInput = '';\n\n \n const textarea = this.inputField()?.nativeElement;\n if (textarea) {\n textarea.style.height = 'auto';\n }\n }\n }\n \n navigateHistory(event: KeyboardEvent, direction: number) {\n event.preventDefault();\n\n if (direction === -1 && this.historyIndex > 0) {\n \n this.historyIndex--;\n this.currentInput = this.commandHistory[this.historyIndex];\n } else if (direction === 1) {\n \n if (this.historyIndex < this.commandHistory.length - 1) {\n this.historyIndex++;\n this.currentInput = this.commandHistory[this.historyIndex];\n } else {\n this.historyIndex = this.commandHistory.length;\n this.currentInput = '';\n }\n }\n }\n \n generateCommand(event?: KeyboardEvent) {\n if (event) {\n event.preventDefault();\n }\n \n this.terminal.writeln('');\n this.terminal.writeln('\\x1b[1;32m● Generating command suggestions...\\x1b[0m');\n \n setTimeout(() => {\n this.terminal.writeln('\\x1b[1;33m● Suggested commands:\\x1b[0m');\n this.terminal.writeln(' 1. \\x1b[36mauth --provider=google\\x1b[0m');\n this.terminal.writeln(' 2. \\x1b[36mlogin\\x1b[0m');\n this.terminal.writeln(' 3. \\x1b[36mhelp\\x1b[0m');\n this.terminal.writeln('');\n this.cdr.markForCheck();\n }, 500);\n }\n\n onNavAction(action: any) {\n if (action.id === 'close-side-app') {\n this.app.sideApp.collapse();\n return;\n }\n this.dispatch(action);\n }\n\n \n focusInput() {\n this.inputField()?.nativeElement?.focus();\n }\n\n \n adjustTextareaHeight() {\n const textarea = this.inputField()?.nativeElement;\n if (textarea) {\n \n textarea.style.height = '20px';\n \n const scrollHeight = textarea.scrollHeight;\n \n const minHeight = 44; \n textarea.style.height = Math.max(minHeight, scrollHeight) + 'px';\n }\n }\n\n \n preventPrefixDeletion(_event: KeyboardEvent) {\n void 0;\n }\n\n \n handleInput(event: Event) {\n const textarea = event.target as HTMLTextAreaElement;\n\n \n if (this.currentInput.includes('\\n')) {\n this.adjustTextareaHeight();\n } else {\n \n textarea.style.height = '44px';\n }\n\n \n this.updateCursorPosition();\n }\n\n \n handleFocus() {\n this.showCursor = true;\n this.updateCursorPosition();\n }\n\n \n handleBlur() {\n this.showCursor = false;\n }\n\n \n updateCursorPosition() {\n const textarea = this.inputField()?.nativeElement;\n if (!textarea) return;\n \n const cursorPos = textarea.selectionStart;\n const textBeforeCursor = this.currentInput.substring(0, cursorPos);\n \n \n const lines = textBeforeCursor.split('\\n');\n const currentLineIndex = lines.length - 1;\n const currentLineText = lines[currentLineIndex];\n \n \n const canvas = document.createElement('canvas');\n const context = canvas.getContext('2d');\n if (context) {\n context.font = '14px \"SF Mono\", Monaco, monospace';\n const textWidth = context.measureText(currentLineText).width;\n \n \n this.cursorLeft = 8 + textWidth; \n \n \n const scrollTop = textarea.scrollTop;\n this.cursorTop = 12 + (currentLineIndex * 20) - scrollTop; \n }\n }\n}\n\nexport function provideAgentTemplate(): Provider[] {\n return [\n provideComponent(EntranceTemplateStore, () => AgentTemplate),\n ];\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"xxmachina-components-templates-background.mjs","sources":["../../../../../packages/@xxmachina/components/src/lib/templates/background/shaders/particle.vert.ts","../../../../../packages/@xxmachina/components/src/lib/templates/background/shaders/particle.frag.ts","../../../../../packages/@xxmachina/components/src/lib/templates/background/utils/webgl-particle-system.ts","../../../../../packages/@xxmachina/components/src/lib/templates/background/lain-background.template.ts","../../../../../packages/@xxmachina/components/src/lib/templates/background/background.template.ts","../../../../../packages/@xxmachina/components/src/lib/templates/background/index.ts","../../../../../packages/@xxmachina/components/src/lib/templates/background/xxmachina-components-templates-background.ts"],"sourcesContent":["export const particleVertexShader = `\nattribute vec3 velocity;\nattribute float size;\n\nuniform float uTime;\nuniform vec2 uBounds;\n\nvarying vec3 vColor;\nvarying float vAlpha;\n\nvoid main() {\n vColor = color;\n vAlpha = 1.0;\n\n // GPU上で位置更新(時間ベース)\n vec3 pos = position;\n pos.x += velocity.x * uTime * 0.01;\n pos.y += velocity.y * uTime * 0.01;\n\n // 境界でラップアラウンド\n pos.x = mod(pos.x + uBounds.x, uBounds.x * 2.0) - uBounds.x;\n pos.y = mod(pos.y + uBounds.y, uBounds.y * 2.0) - uBounds.y;\n\n vec4 mvPosition = modelViewMatrix * vec4(pos, 1.0);\n gl_PointSize = size * (300.0 / -mvPosition.z);\n gl_Position = projectionMatrix * mvPosition;\n}\n`;\n","export const particleFragmentShader = `\nvarying vec3 vColor;\nvarying float vAlpha;\n\nvoid main() {\n // 中心からの距離\n float dist = length(gl_PointCoord - vec2(0.5));\n\n // 円形にクリップ\n if (dist > 0.5) discard;\n\n // 強いグロー効果(Canvas版のshadowBlur=15を再現)\n float coreBrightness = exp(-dist * 8.0); // コア部分(非常に明るい)\n float glowBrightness = exp(-dist * 2.5) * 0.6; // 外側のソフトグロー\n float outerGlow = exp(-dist * 1.5) * 0.3; // さらに外側の淡いグロー\n float glow = coreBrightness + glowBrightness + outerGlow;\n\n // 色を強くブースト(黒背景で映える明るさに)\n vec3 boostedColor = vColor * 1.5;\n float alpha = min(glow * vAlpha, 1.0);\n\n gl_FragColor = vec4(boostedColor, alpha);\n}\n`;\n","import * as THREE from 'three';\nimport { particleVertexShader, particleFragmentShader } from '../shaders';\n\nexport interface ParticleSystemConfig {\n container: HTMLElement;\n particleCount?: number;\n connectionDistance?: number;\n \n baseHue?: number;\n \n hueSpeed?: number;\n}\n\nexport class WebGLParticleSystem {\n private scene: THREE.Scene;\n private camera: THREE.PerspectiveCamera;\n private renderer: THREE.WebGLRenderer;\n private particles: THREE.Points;\n private lines: THREE.LineSegments;\n private clock: THREE.Clock;\n private config: Required<ParticleSystemConfig>;\n private positions: Float32Array;\n private velocities: Float32Array;\n private isRunning = false;\n private frameCount = 0; \n private readonly onResize = () => {\n const { width, height } = this.getSize();\n this.camera.aspect = width / height;\n this.camera.updateProjectionMatrix();\n this.renderer.setSize(width, height);\n const material = this.particles.material as THREE.ShaderMaterial;\n material.uniforms['uBounds'].value.set(width / 2, height / 2);\n };\n private readonly onVisibilityChange = () => {\n if (document.hidden) {\n this.stop();\n } else {\n this.start();\n }\n };\n\n constructor(config: ParticleSystemConfig) {\n this.config = {\n container: config.container,\n particleCount: config.particleCount ?? this.getOptimalParticleCount(),\n connectionDistance: config.connectionDistance ?? 100, \n baseHue: config.baseHue ?? -1, \n hueSpeed: config.hueSpeed ?? 30,\n };\n\n this.scene = new THREE.Scene();\n this.scene.background = new THREE.Color(0x000000);\n this.clock = new THREE.Clock();\n this.positions = new Float32Array(this.config.particleCount * 3);\n this.velocities = new Float32Array(this.config.particleCount * 3);\n\n this.camera = this.createCamera();\n this.renderer = this.createRenderer();\n this.particles = this.createParticles();\n this.lines = this.createLines();\n\n this.scene.add(this.particles);\n this.scene.add(this.lines);\n\n this.setupResizeHandler();\n this.setupVisibilityHandler();\n }\n\n private getOptimalParticleCount(): number {\n const isMobile = /iPhone|iPad|Android/i.test(navigator.userAgent);\n \n return isMobile ? 60 : 100;\n }\n\n private createCamera(): THREE.PerspectiveCamera {\n const { width, height } = this.getSize();\n const camera = new THREE.PerspectiveCamera(75, width / height, 1, 2000);\n camera.position.z = 400;\n return camera;\n }\n\n private createRenderer(): THREE.WebGLRenderer {\n const { width, height } = this.getSize();\n const renderer = new THREE.WebGLRenderer({\n antialias: true,\n alpha: false, \n });\n renderer.setSize(width, height);\n renderer.setPixelRatio(Math.min(window.devicePixelRatio, 2));\n renderer.setClearColor(0x000000, 1); \n this.config.container.appendChild(renderer.domElement);\n\n \n renderer.domElement.style.position = 'absolute';\n renderer.domElement.style.top = '0';\n renderer.domElement.style.left = '0';\n renderer.domElement.style.width = '100%';\n renderer.domElement.style.height = '100%';\n\n return renderer;\n }\n\n private createParticles(): THREE.Points {\n const { particleCount, baseHue } = this.config;\n const { width, height } = this.getSize();\n\n const geometry = new THREE.BufferGeometry();\n const colors = new Float32Array(particleCount * 3);\n const sizes = new Float32Array(particleCount);\n\n for (let i = 0; i < particleCount; i++) {\n const i3 = i * 3;\n\n \n this.positions[i3] = (Math.random() - 0.5) * width;\n this.positions[i3 + 1] = (Math.random() - 0.5) * height;\n this.positions[i3 + 2] = (Math.random() - 0.5) * 100;\n\n \n this.velocities[i3] = (Math.random() - 0.5) * 50;\n this.velocities[i3 + 1] = (Math.random() - 0.5) * 50;\n this.velocities[i3 + 2] = 0;\n\n \n const hue = baseHue < 0\n ? Math.random() \n : (baseHue + Math.random() * 60) / 360;\n \n const color = new THREE.Color().setHSL(hue, 0.7, 0.6);\n colors[i3] = color.r;\n colors[i3 + 1] = color.g;\n colors[i3 + 2] = color.b;\n\n sizes[i] = Math.random() * 2 + 2; \n }\n\n geometry.setAttribute('position', new THREE.BufferAttribute(this.positions, 3));\n geometry.setAttribute('color', new THREE.BufferAttribute(colors, 3));\n geometry.setAttribute('velocity', new THREE.BufferAttribute(this.velocities, 3));\n geometry.setAttribute('size', new THREE.BufferAttribute(sizes, 1));\n\n const material = new THREE.ShaderMaterial({\n vertexShader: particleVertexShader,\n fragmentShader: particleFragmentShader,\n uniforms: {\n uTime: { value: 0 },\n uBounds: { value: new THREE.Vector2(width / 2, height / 2) },\n },\n transparent: true,\n vertexColors: true,\n blending: THREE.AdditiveBlending,\n depthWrite: false,\n });\n\n return new THREE.Points(geometry, material);\n }\n\n private createLines(): THREE.LineSegments {\n const geometry = new THREE.BufferGeometry();\n const material = new THREE.LineBasicMaterial({\n vertexColors: true,\n transparent: true,\n blending: THREE.AdditiveBlending,\n depthWrite: false,\n });\n return new THREE.LineSegments(geometry, material);\n }\n\n private updateConnections() {\n const { particleCount, connectionDistance, baseHue, hueSpeed } = this.config;\n const positions: number[] = [];\n const colors: number[] = [];\n\n \n const cellSize = connectionDistance;\n const grid = new Map<string, number[]>();\n\n \n for (let i = 0; i < particleCount; i++) {\n const x = this.positions[i * 3];\n const y = this.positions[i * 3 + 1];\n const cellX = Math.floor(x / cellSize);\n const cellY = Math.floor(y / cellSize);\n const key = `${cellX},${cellY}`;\n if (!grid.has(key)) grid.set(key, []);\n grid.get(key)!.push(i);\n }\n\n \n const elapsed = this.clock.getElapsedTime();\n const lineHue = baseHue < 0\n ? ((elapsed * hueSpeed) % 360) / 360\n : (baseHue + (elapsed * hueSpeed) % 60) / 360;\n \n const lineColor = new THREE.Color().setHSL(lineHue, 0.8, 0.65);\n\n \n for (const [key, indices] of grid.entries()) {\n const [cx, cy] = key.split(',').map(Number);\n\n for (let dx = -1; dx <= 1; dx++) {\n for (let dy = -1; dy <= 1; dy++) {\n const neighborKey = `${cx + dx},${cy + dy}`;\n const neighborIndices = grid.get(neighborKey);\n if (!neighborIndices) continue;\n\n for (const i of indices) {\n for (const j of neighborIndices) {\n if (i >= j) continue;\n\n const i3 = i * 3;\n const j3 = j * 3;\n const pdx = this.positions[i3] - this.positions[j3];\n const pdy = this.positions[i3 + 1] - this.positions[j3 + 1];\n const dist = Math.sqrt(pdx * pdx + pdy * pdy);\n\n if (dist < connectionDistance) {\n const alpha = (1 - dist / connectionDistance) * 0.7;\n\n positions.push(\n this.positions[i3], this.positions[i3 + 1], this.positions[i3 + 2],\n this.positions[j3], this.positions[j3 + 1], this.positions[j3 + 2]\n );\n \n colors.push(\n lineColor.r * alpha, lineColor.g * alpha, lineColor.b * alpha,\n lineColor.r * alpha, lineColor.g * alpha, lineColor.b * alpha\n );\n }\n }\n }\n }\n }\n }\n\n this.lines.geometry.dispose();\n this.lines.geometry = new THREE.BufferGeometry();\n if (positions.length > 0) {\n this.lines.geometry.setAttribute('position',\n new THREE.Float32BufferAttribute(positions, 3));\n this.lines.geometry.setAttribute('color',\n new THREE.Float32BufferAttribute(colors, 3));\n }\n }\n\n private updateParticlePositions(delta: number) {\n const { width, height } = this.getSize();\n const halfW = width / 2;\n const halfH = height / 2;\n\n for (let i = 0; i < this.config.particleCount; i++) {\n const i3 = i * 3;\n\n \n this.positions[i3] += this.velocities[i3] * delta;\n this.positions[i3 + 1] += this.velocities[i3 + 1] * delta;\n\n \n if (this.positions[i3] > halfW) this.positions[i3] = -halfW;\n if (this.positions[i3] < -halfW) this.positions[i3] = halfW;\n if (this.positions[i3 + 1] > halfH) this.positions[i3 + 1] = -halfH;\n if (this.positions[i3 + 1] < -halfH) this.positions[i3 + 1] = halfH;\n }\n\n this.particles.geometry.attributes['position'].needsUpdate = true;\n }\n\n private animate = () => {\n if (!this.isRunning) return;\n\n const delta = this.clock.getDelta();\n const elapsed = this.clock.getElapsedTime();\n\n \n this.updateParticlePositions(delta);\n\n \n const material = this.particles.material as THREE.ShaderMaterial;\n material.uniforms['uTime'].value = elapsed;\n\n \n this.frameCount++;\n if (this.frameCount % 3 === 0) {\n this.updateConnections();\n }\n\n \n this.renderer.render(this.scene, this.camera);\n requestAnimationFrame(this.animate);\n };\n\n private getSize() {\n return {\n width: window.innerWidth,\n height: window.innerHeight,\n };\n }\n\n private setupResizeHandler() {\n window.addEventListener('resize', this.onResize);\n }\n\n private setupVisibilityHandler() {\n document.addEventListener('visibilitychange', this.onVisibilityChange);\n }\n\n start() {\n if (this.isRunning) return;\n this.isRunning = true;\n this.clock.start();\n requestAnimationFrame(this.animate);\n }\n\n stop() {\n this.isRunning = false;\n this.clock.stop();\n }\n\n dispose() {\n this.stop();\n window.removeEventListener('resize', this.onResize);\n document.removeEventListener('visibilitychange', this.onVisibilityChange);\n this.particles.geometry.dispose();\n (this.particles.material as THREE.Material).dispose();\n this.lines.geometry.dispose();\n (this.lines.material as THREE.Material).dispose();\n this.renderer.dispose();\n this.config.container.removeChild(this.renderer.domElement);\n }\n}\n","import { Component, input, ElementRef, afterNextRender, OnDestroy, viewChild } from '@angular/core';\nimport { WebGLParticleSystem } from './utils';\n\n@Component({\n selector: 'app-background-template',\n standalone: true,\n template: `\n <div #container></div>\n <div class=\"overlay\">\n <div class=\"scanlines\"></div>\n <div class=\"glitch-text\" [class.glitch]=\"isGlitching\">\n {{ currentMessage }}\n </div>\n </div>\n <div class=\"content\">\n @if (title()) {\n <h1 class=\"title\">{{ title() }}</h1>\n }\n <ng-content></ng-content>\n </div>\n `,\n styles: `\n :host {\n display: block;\n position: fixed;\n width: 100%;\n height: 100vh;\n color: white;\n z-index: -1;\n }\n\n .overlay {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n pointer-events: none;\n z-index: 0;\n }\n\n .scanlines {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: repeating-linear-gradient(\n 0deg,\n rgba(0, 0, 0, 0.1) 0px,\n rgba(0, 0, 0, 0.1) 1px,\n transparent 1px,\n transparent 2px\n );\n opacity: 0.3;\n }\n\n .glitch-text {\n position: absolute;\n top: 20px;\n left: 20px;\n font-family: \"Courier New\", monospace;\n font-size: 14px;\n color: rgba(0, 255, 255, 0.8);\n text-shadow: 0 0 10px rgba(0, 255, 255, 0.5);\n white-space: pre-line;\n transition: transform 0.1s;\n }\n\n .glitch-text.glitch {\n animation: glitch 0.3s ease-in-out;\n }\n\n @keyframes glitch {\n 0%, 100% { transform: translate(0); }\n 20% { transform: translate(-2px, 2px); }\n 40% { transform: translate(2px, -2px); }\n 60% { transform: translate(-1px, -1px); }\n 80% { transform: translate(1px, 1px); }\n }\n\n .content {\n position: relative;\n z-index: 1;\n padding: 2rem;\n }\n\n .title {\n font-size: 2rem;\n margin-bottom: 1rem;\n font-family: \"Courier New\", monospace;\n text-shadow: 0 0 10px rgba(0, 255, 255, 0.5);\n }\n `\n})\nexport class BackgroundTemplate implements OnDestroy {\n title = input<string>('');\n\n private container = viewChild.required<ElementRef<HTMLDivElement>>('container');\n private particleSystem: WebGLParticleSystem | null = null;\n private glitchInterval: number | null = null;\n\n protected currentMessage = '(x_x) PROTOCOL.7 (x_x)';\n protected isGlitching = false;\n\n private messages = [\n '(x_x) PROTOCOL.7 (x_x)',\n '[MACHINA:01] INITIALIZING...',\n '(>_<) SYSTEM OVERLOAD (>_<)',\n '▓▓▒▒░░W I R E D░░▒▒▓▓',\n '【=◈︿◈=】LAYER:13【=◈︿◈=】',\n '[▀▄▀▄▀▄] NAV¡GATOR [▄▀▄▀▄▀]',\n '(╥﹏╥) ERROR_404 (╥﹏╥)',\n '▌│█║▌║▌║ CONNECTING... ║▌║▌║█│▌'\n ];\n private messageIndex = 0;\n\n constructor() {\n afterNextRender(() => {\n this.particleSystem = new WebGLParticleSystem({\n container: this.container().nativeElement,\n baseHue: 180, \n connectionDistance: 80,\n });\n this.particleSystem.start();\n\n \n this.glitchInterval = window.setInterval(() => this.triggerGlitch(), 5000);\n });\n }\n\n private triggerGlitch() {\n this.isGlitching = true;\n this.messageIndex = (this.messageIndex + 1) % this.messages.length;\n this.currentMessage = this.messages[this.messageIndex];\n\n setTimeout(() => {\n this.isGlitching = false;\n }, 300);\n }\n\n ngOnDestroy() {\n this.particleSystem?.dispose();\n if (this.glitchInterval !== null) {\n clearInterval(this.glitchInterval);\n }\n }\n}\n","import { Component, ElementRef, afterNextRender, OnDestroy, viewChild } from '@angular/core';\nimport { WebGLParticleSystem } from './utils';\n\n@Component({\n selector: 'machina-templates-background',\n standalone: true,\n template: `<div #container></div>`,\n styles: `\n :host {\n display: block;\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: -1;\n pointer-events: none;\n }\n `\n})\nexport class MachinaBackgroundTemplate implements OnDestroy {\n private container = viewChild.required<ElementRef<HTMLDivElement>>('container');\n private particleSystem: WebGLParticleSystem | null = null;\n\n constructor() {\n afterNextRender(() => {\n this.particleSystem = new WebGLParticleSystem({\n container: this.container().nativeElement,\n \n });\n this.particleSystem.start();\n });\n }\n\n ngOnDestroy() {\n this.particleSystem?.dispose();\n }\n}\n","import { provideComponent } from '@ng-atomic/core';\nimport { BackgroundTemplate as LainBapBackgroundTemplate } from './lain-background.template';\nimport { BackgroundTemplateStore } from '@ng-atomic/components/templates/background';\nimport { MachinaBackgroundTemplate } from './background.template';\n\nexport * from './background.template';\n\nexport function provideMachinaBackgroundTemplate() {\n return provideComponent(BackgroundTemplateStore, () => MachinaBackgroundTemplate);\n}\n\nexport function provideLainBackgroundTemplate() {\n return provideComponent(BackgroundTemplateStore, () => LainBapBackgroundTemplate);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["LainBapBackgroundTemplate"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"xxmachina-components-templates-env.mjs","sources":["../../../../../packages/@xxmachina/components/src/lib/templates/env/sections/env-presets/env-presets.component.ts","../../../../../packages/@xxmachina/components/src/lib/templates/env/sections/env-endpoints/env-endpoints.component.ts","../../../../../packages/@xxmachina/components/src/lib/templates/env/sections/env-flags/env-flags.component.ts","../../../../../packages/@xxmachina/components/src/lib/templates/env/sections/env-reload-notice/env-reload-notice.component.ts","../../../../../packages/@xxmachina/components/src/lib/templates/env/env.template.ts","../../../../../packages/@xxmachina/components/src/lib/templates/env/xxmachina-components-templates-env.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, input, output } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatListModule } from '@angular/material/list';\nimport type { EnvPresetLike } from '../../env.types';\n\n@Component({\n selector: 'env-presets-section',\n standalone: true,\n imports: [MatListModule, MatIconModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <section class=\"settings-section\" aria-labelledby=\"env-section-connection\">\n <h2 id=\"env-section-connection\" class=\"section-title\">Connection</h2>\n <p class=\"section-current\">Current: <strong>{{ currentEnv() }}</strong></p>\n <mat-list role=\"list\" class=\"settings-list\">\n @for (preset of presets(); track preset.name) {\n <mat-list-item\n role=\"listitem\"\n (click)=\"presetSelected.emit(preset)\"\n [class.is-active]=\"currentEnv() === preset.name\"\n [attr.aria-current]=\"currentEnv() === preset.name ? 'true' : null\"\n >\n <mat-icon matListItemIcon>cloud</mat-icon>\n <span matListItemTitle>{{ preset.name }}</span>\n <span matListItemLine>{{ preset.description ?? preset.hasuraUrl }}</span>\n @if (currentEnv() === preset.name) {\n <mat-icon matListItemMeta aria-hidden=\"true\">check</mat-icon>\n }\n </mat-list-item>\n }\n </mat-list>\n </section>\n `,\n styleUrl: '../env-section.shared.scss',\n})\nexport class EnvPresetsSection {\n readonly presets = input.required<readonly EnvPresetLike[]>();\n readonly currentEnv = input.required<string>();\n readonly presetSelected = output<EnvPresetLike>();\n}\n","import { ChangeDetectionStrategy, Component, input, output } from '@angular/core';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport type { EnvEndpointField } from '../../env.types';\n\n@Component({\n\tselector: 'env-endpoints-section',\n\tstandalone: true,\n\timports: [MatFormFieldModule, MatInputModule],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplate: `\n\t\t<section class=\"settings-section\" aria-labelledby=\"env-section-endpoints\">\n\t\t\t<h2 id=\"env-section-endpoints\" class=\"section-title\">Endpoints</h2>\n\t\t\t@for (field of endpoints(); track field.key) {\n\t\t\t\t<div class=\"endpoint-row\">\n\t\t\t\t\t<mat-form-field appearance=\"outline\" class=\"endpoint-field\">\n\t\t\t\t\t\t<mat-label>{{ field.label }}</mat-label>\n\t\t\t\t\t\t<input matInput type=\"url\" [value]=\"field.value\"\n\t\t\t\t\t\t\t(change)=\"endpointChanged.emit({ key: field.key, value: $any($event.target).value })\" />\n\t\t\t\t\t</mat-form-field>\n\t\t\t\t</div>\n\t\t\t}\n\t\t</section>\n\t`,\n\tstyles: [`\n\t\t:host { display: block; }\n\t\t.endpoint-row { padding: 8px 16px; }\n\t\t.endpoint-field { width: 100%; }\n\t`],\n\tstyleUrl: '../env-section.shared.scss',\n})\nexport class EnvEndpointsSection {\n\treadonly endpoints = input.required<readonly EnvEndpointField[]>();\n\treadonly endpointChanged = output<{ key: string; value: string }>();\n}\n","import { ChangeDetectionStrategy, Component, input, output } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatListModule } from '@angular/material/list';\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\nimport type { EnvFlagField } from '../../env.types';\n\n@Component({\n\tselector: 'env-flags-section',\n\tstandalone: true,\n\timports: [MatListModule, MatIconModule, MatSlideToggleModule],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplate: `\n\t\t<section class=\"settings-section\" aria-labelledby=\"env-section-flags\">\n\t\t\t<h2 id=\"env-section-flags\" class=\"section-title\">Feature flags</h2>\n\t\t\t<mat-list role=\"list\" class=\"settings-list\">\n\t\t\t\t@for (flag of flags(); track flag.key) {\n\t\t\t\t\t<mat-list-item role=\"listitem\" lines=\"2\">\n\t\t\t\t\t\t<mat-icon matListItemIcon>{{ flag.icon ?? 'toggle_on' }}</mat-icon>\n\t\t\t\t\t\t<span matListItemTitle>{{ flag.label }}</span>\n\t\t\t\t\t\t@if (flag.description) {\n\t\t\t\t\t\t\t<span matListItemLine>{{ flag.description }}</span>\n\t\t\t\t\t\t}\n\t\t\t\t\t\t<div matListItemMeta class=\"toggle-meta\">\n\t\t\t\t\t\t\t<mat-slide-toggle\n\t\t\t\t\t\t\t\t[checked]=\"flag.enabled\"\n\t\t\t\t\t\t\t\t(change)=\"flagChanged.emit({ key: flag.key, enabled: $event.checked })\"\n\t\t\t\t\t\t\t\t[attr.aria-label]=\"flag.label\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</mat-list-item>\n\t\t\t\t}\n\t\t\t</mat-list>\n\t\t</section>\n\t`,\n\tstyleUrl: '../env-section.shared.scss',\n})\nexport class EnvFlagsSection {\n\treadonly flags = input.required<readonly EnvFlagField[]>();\n\treadonly flagChanged = output<{ key: string; enabled: boolean }>();\n}\n","import { ChangeDetectionStrategy, Component, input, output } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\n\n@Component({\n selector: 'env-reload-notice',\n standalone: true,\n imports: [MatButtonModule, MatIconModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n @if (needsReload()) {\n <div class=\"reload-notice\" role=\"status\" data-testid=\"reload-banner\">\n <mat-icon class=\"reload-notice__icon\" aria-hidden=\"true\">refresh</mat-icon>\n <span class=\"reload-notice__text\">Reload required</span>\n <button\n mat-stroked-button\n color=\"primary\"\n (click)=\"reloadClicked.emit()\"\n data-testid=\"reload-button\"\n >\n Reload\n </button>\n </div>\n }\n `,\n styleUrl: './env-reload-notice.component.scss',\n})\nexport class EnvReloadNotice {\n readonly needsReload = input.required<boolean>();\n readonly reloadClicked = output<void>();\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { NgAtomicComponent } from '@ng-atomic/core';\nimport { ScrollFrame } from '@ng-atomic/components/frames/scroll';\nimport { NavigatorOrganism } from '@ng-atomic/components/organisms/navigator';\nimport type { EnvEndpointField, EnvFlagField, EnvPresetLike } from './env.types';\nimport { EnvPresetsSection } from './sections/env-presets/env-presets.component';\nimport { EnvEndpointsSection } from './sections/env-endpoints/env-endpoints.component';\nimport { EnvFlagsSection } from './sections/env-flags/env-flags.component';\nimport { EnvReloadNotice } from './sections/env-reload-notice/env-reload-notice.component';\n\nexport enum EnvTemplateActionId {\n\tSELECT_PRESET = '[EnvTemplate] Select Preset',\n\tCHANGE_ENDPOINT = '[EnvTemplate] Change Endpoint',\n\tCHANGE_FLAG = '[EnvTemplate] Change Flag',\n\tRELOAD = '[EnvTemplate] Reload',\n}\n\n@Component({\n\tselector: 'templates-env',\n\tstandalone: true,\n\timports: [ScrollFrame, NavigatorOrganism, EnvPresetsSection, EnvEndpointsSection, EnvFlagsSection, EnvReloadNotice],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplate: `\n\t\t<frames-scroll>\n\t\t\t<organisms-navigator top [title]=\"title()\" [startActions]=\"[]\" />\n\t\t\t<div class=\"env-container\">\n\t\t\t\t<ng-content select=\"[before-presets]\" />\n\t\t\t\t<env-presets-section\n\t\t\t\t\t[presets]=\"presets()\"\n\t\t\t\t\t[currentEnv]=\"currentEnv()\"\n\t\t\t\t\t(presetSelected)=\"dispatch({ id: ActionId.SELECT_PRESET, payload: $event })\"\n\t\t\t\t/>\n\t\t\t\t@if (endpoints().length > 0) {\n\t\t\t\t\t<env-endpoints-section\n\t\t\t\t\t\t[endpoints]=\"endpoints()\"\n\t\t\t\t\t\t(endpointChanged)=\"dispatch({ id: ActionId.CHANGE_ENDPOINT, payload: $event })\"\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t\t@if (flags().length > 0) {\n\t\t\t\t\t<env-flags-section\n\t\t\t\t\t\t[flags]=\"flags()\"\n\t\t\t\t\t\t(flagChanged)=\"dispatch({ id: ActionId.CHANGE_FLAG, payload: $event })\"\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t\t<ng-content />\n\t\t\t\t<env-reload-notice\n\t\t\t\t\t[needsReload]=\"needsReload()\"\n\t\t\t\t\t(reloadClicked)=\"dispatch({ id: ActionId.RELOAD })\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</frames-scroll>\n\t`,\n\tstyleUrl: './env.template.scss',\n\thost: { class: 'template' },\n})\nexport class EnvTemplate extends NgAtomicComponent {\n\tstatic readonly ActionId = EnvTemplateActionId;\n\tprotected readonly ActionId = EnvTemplateActionId;\n\n\treadonly title = input('Environment');\n\treadonly presets = input.required<readonly EnvPresetLike[]>();\n\treadonly currentEnv = input.required<string>();\n\treadonly endpoints = input<readonly EnvEndpointField[]>([]);\n\treadonly flags = input<readonly EnvFlagField[]>([]);\n\treadonly needsReload = input.required<boolean>();\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"xxmachina-components-templates-flow-nodes-group.mjs","sources":["../../../../../packages/@xxmachina/components/src/lib/templates/flow/nodes/group/group.node.ts","../../../../../packages/@xxmachina/components/src/lib/templates/flow/nodes/group/group.node.meta.ts","../../../../../packages/@xxmachina/components/src/lib/templates/flow/nodes/group/xxmachina-components-templates-flow-nodes-group.ts"],"sourcesContent":["import { Component, input, output } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { NgAtomicComponent } from '@ng-atomic/core';\n\nexport interface GroupNodeData {\n label: string;\n status?: string;\n assignee?: string;\n assigneeIcon?: string;\n childCount?: number;\n expanded?: boolean;\n}\n\nenum ActionId {\n EXPANDED_CHANGE = 'EXPANDED_CHANGE',\n}\n\n@Component({\n selector: 'flow-group-node',\n standalone: true,\n imports: [MatIconModule],\n template: `\n <div class=\"group-node\" [class]=\"'s-' + data()?.status\">\n <div class=\"group-header\">\n <span class=\"dot\"></span>\n <span class=\"status-badge\">{{ getStatusLabel(data()?.status) }}</span>\n @if (data()?.childCount) {\n <span class=\"child-count\">{{ data()?.childCount }}</span>\n }\n </div>\n <div class=\"group-title\">{{ data()?.label }}</div>\n @if (data()?.assignee) {\n <div class=\"group-footer\">\n <span class=\"assignee\">\n @if (data()?.assigneeIcon) {\n <img [src]=\"data()?.assigneeIcon\" class=\"assignee-avatar\" alt=\"\" />\n } @else {\n <mat-icon class=\"assignee-icon\">group</mat-icon>\n }\n {{ data()?.assignee }}\n </span>\n </div>\n }\n </div>\n `,\n styles: [`\n :host { display: block; width: 180px; }\n\n .group-node {\n background: #0a0a0a;\n border: 1px solid rgba(51, 51, 51, 0.8);\n border-radius: 10px;\n padding: 12px;\n font-family: 'SF Mono', Monaco, monospace;\n transition: all 0.2s ease;\n box-shadow: 0 4px 16px rgba(0, 0, 0, 0.5);\n }\n\n .group-node:hover {\n transform: translateY(-2px);\n box-shadow: 0 8px 32px rgba(0, 0, 0, 0.6);\n border-color: rgba(80, 80, 80, 0.8);\n }\n\n .group-node.s-root { border-color: rgba(99, 102, 241, 0.6); }\n .group-node.s-completed { border-color: rgba(16, 185, 129, 0.6); }\n .group-node.s-in_progress { border-color: rgba(59, 130, 246, 0.6); }\n .group-node.s-pending { border-color: rgba(136, 136, 136, 0.6); }\n .group-node.s-sprint_planned { border-color: rgba(139, 92, 246, 0.6); }\n .group-node.s-needs_breakdown { border-color: rgba(245, 158, 11, 0.6); }\n\n .group-header {\n display: flex;\n align-items: center;\n gap: 6px;\n margin-bottom: 8px;\n }\n\n .dot {\n width: 10px;\n height: 10px;\n border-radius: 50%;\n flex-shrink: 0;\n box-shadow: 0 0 10px currentColor;\n }\n\n .s-root .dot { background: #6366f1; color: #6366f1; }\n .s-completed .dot { background: #10b981; color: #10b981; }\n .s-in_progress .dot { background: #3b82f6; color: #3b82f6; animation: pulse 2s infinite; }\n .s-pending .dot { background: #888; color: #888; }\n .s-sprint_planned .dot { background: #8b5cf6; color: #8b5cf6; }\n .s-needs_breakdown .dot { background: #f59e0b; color: #f59e0b; }\n\n @keyframes pulse {\n 0%, 100% { box-shadow: 0 0 4px rgba(59, 130, 246, 0.4); }\n 50% { box-shadow: 0 0 12px rgba(59, 130, 246, 0.8); }\n }\n\n .status-badge {\n font-size: 10px;\n font-weight: 600;\n padding: 2px 8px;\n border-radius: 10px;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n }\n\n .s-root .status-badge { background: rgba(99, 102, 241, 0.2); color: #6366f1; }\n .s-completed .status-badge { background: rgba(16, 185, 129, 0.2); color: #10b981; }\n .s-in_progress .status-badge { background: rgba(59, 130, 246, 0.2); color: #3b82f6; }\n .s-pending .status-badge { background: rgba(136, 136, 136, 0.2); color: #888; }\n .s-sprint_planned .status-badge { background: rgba(139, 92, 246, 0.2); color: #8b5cf6; }\n .s-needs_breakdown .status-badge { background: rgba(245, 158, 11, 0.2); color: #f59e0b; }\n\n .child-count {\n margin-left: auto;\n font-size: 11px;\n font-weight: 600;\n color: #888;\n background: rgba(255, 255, 255, 0.05);\n padding: 2px 8px;\n border-radius: 10px;\n }\n\n .group-title {\n font-size: 14px;\n font-weight: 500;\n color: #e0e0e0;\n line-height: 1.4;\n margin-bottom: 8px;\n }\n\n .group-footer {\n padding-top: 8px;\n border-top: 1px solid rgba(51, 51, 51, 0.5);\n }\n\n .assignee {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n font-size: 11px;\n color: #888;\n font-weight: 500;\n }\n\n .assignee-icon {\n font-size: 14px;\n width: 14px;\n height: 14px;\n color: #666;\n }\n\n .assignee-avatar {\n width: 18px;\n height: 18px;\n border-radius: 50%;\n object-fit: cover;\n border: 1px solid rgba(255, 255, 255, 0.1);\n }\n `]\n})\nexport class GroupNodeComponent extends NgAtomicComponent {\n static readonly ActionId = ActionId;\n\n readonly data = input<GroupNodeData>();\n readonly expandedChange = output<boolean>();\n\n getStatusLabel(status?: string): string {\n const labels: Record<string, string> = {\n 'root': 'ROOT',\n 'in_progress': 'WIP',\n 'completed': 'DONE',\n 'pending': 'TODO',\n 'sprint_planned': 'PLAN',\n 'needs_breakdown': 'BREAK',\n 'under_consideration': 'REVIEW',\n 'abandoned': 'DROP'\n };\n return labels[status || ''] || status?.toUpperCase() || '';\n }\n\n onExpandedChange(expanded: boolean): void {\n this.dispatch({id: ActionId.EXPANDED_CHANGE, payload: { expanded, data: this.data() }});\n }\n}\n","import { Type } from '@angular/core';\nimport { GroupNodeComponent, GroupNodeData } from './group.node';\n\ninterface ComponentMeta<T = unknown> {\n title: string;\n group?: 'atoms' | 'molecules' | 'organisms' | 'templates' | 'presenters' | 'extras';\n component: Type<T>;\n inputs?: Record<string, unknown>;\n viewport?: { width?: number; height?: number };\n variants?: { name: string; inputs: Record<string, unknown> }[];\n}\n\nexport const groupNodeMeta: ComponentMeta = {\n title: 'Flow Group Node',\n group: 'molecules',\n component: GroupNodeComponent,\n viewport: { width: 280, height: 180 },\n variants: [\n {\n name: 'root',\n inputs: {\n data: {\n label: 'Project Tasks',\n status: 'root',\n childCount: 12,\n } as GroupNodeData,\n },\n },\n {\n name: 'in progress',\n inputs: {\n data: {\n label: 'Sprint 1 Tasks',\n status: 'in_progress',\n assignee: 'Team Alpha',\n childCount: 5,\n } as GroupNodeData,\n },\n },\n {\n name: 'completed',\n inputs: {\n data: {\n label: 'Completed Features',\n status: 'completed',\n assignee: 'Team Beta',\n childCount: 8,\n } as GroupNodeData,\n },\n },\n {\n name: 'pending',\n inputs: {\n data: {\n label: 'Backlog Items',\n status: 'pending',\n childCount: 15,\n } as GroupNodeData,\n },\n },\n {\n name: 'sprint planned',\n inputs: {\n data: {\n label: 'Sprint 2 Planned',\n status: 'sprint_planned',\n assignee: 'Team Gamma',\n childCount: 6,\n } as GroupNodeData,\n },\n },\n {\n name: 'with avatar',\n inputs: {\n data: {\n label: 'Design Review',\n status: 'in_progress',\n assignee: 'Design Team',\n assigneeIcon: 'https://api.dicebear.com/7.x/avataaars/svg?seed=Team',\n childCount: 3,\n } as GroupNodeData,\n },\n },\n ],\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"xxmachina-components-templates-flow-nodes-issue.mjs","sources":["../../../../../packages/@xxmachina/components/src/lib/templates/flow/nodes/issue/issue.node.ts","../../../../../packages/@xxmachina/components/src/lib/templates/flow/nodes/issue/issue.node.meta.ts","../../../../../packages/@xxmachina/components/src/lib/templates/flow/nodes/issue/xxmachina-components-templates-flow-nodes-issue.ts"],"sourcesContent":["import { Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatIconModule } from '@angular/material/icon';\n\nexport type IssueStatus = 'open' | 'in_progress' | 'closed' | 'blocked';\nexport type IssuePriority = 'critical' | 'high' | 'medium' | 'low';\n\nexport interface IssueNodeData {\n id: string;\n title: string;\n status: IssueStatus;\n priority?: IssuePriority;\n assignee?: string;\n assigneeIcon?: string;\n blockedBy?: string[];\n level?: number;\n row?: number;\n \n effectiveLevel?: number;\n \n effectiveRow?: number;\n}\n\n@Component({\n selector: 'flow-issue-node',\n standalone: true,\n imports: [CommonModule, MatIconModule],\n template: `\n <div class=\"issue-node\" [class]=\"'s-' + data.status\" [class.has-deps]=\"hasDeps\">\n <div class=\"issue-header\">\n <span class=\"dot\"></span>\n <span class=\"id\">#{{ data.id }}</span>\n @if (data.priority) {\n <span class=\"priority\" [class]=\"'p-' + data.priority\">\n {{ data.priority[0] | uppercase }}\n </span>\n }\n </div>\n <div class=\"issue-title\">{{ data.title }}</div>\n @if (data.assignee) {\n <div class=\"assignee\">\n @if (data.assigneeIcon) {\n <img [src]=\"data.assigneeIcon\" class=\"assignee-avatar\" alt=\"\" />\n } @else {\n <mat-icon class=\"assignee-icon\">person</mat-icon>\n }\n {{ data.assignee }}\n </div>\n }\n @if (hasDeps) {\n <div class=\"deps\">blocked by: {{ data.blockedBy?.length }}</div>\n }\n @if (data.effectiveLevel !== undefined) {\n <div class=\"coords\">{{ data.effectiveLevel }}, {{ data.effectiveRow }}</div>\n }\n </div>\n `,\n styles: [`\n :host { display: block; width: 160px; height: 120px; }\n\n .issue-node {\n background: #1a1a1a;\n border: 1px solid rgba(51, 51, 51, 0.8);\n border-radius: 8px;\n padding: 10px;\n font-family: 'SF Mono', Monaco, monospace;\n transition: all 0.2s ease;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4);\n height: 100%;\n box-sizing: border-box;\n overflow: hidden;\n }\n\n .issue-node:hover {\n transform: translateY(-2px);\n box-shadow: 0 8px 24px rgba(0, 0, 0, 0.5);\n border-color: rgba(80, 80, 80, 0.8);\n }\n\n .issue-node.s-open { border-color: rgba(59, 130, 246, 0.6); }\n .issue-node.s-in_progress { border-color: rgba(245, 158, 11, 0.6); }\n .issue-node.s-closed { border-color: rgba(16, 185, 129, 0.6); opacity: 0.7; }\n .issue-node.s-blocked { border-color: rgba(239, 68, 68, 0.6); }\n .issue-node.has-deps { border-style: dashed; }\n\n .issue-header {\n display: flex;\n align-items: center;\n gap: 6px;\n margin-bottom: 6px;\n }\n\n .dot {\n width: 8px;\n height: 8px;\n border-radius: 50%;\n flex-shrink: 0;\n box-shadow: 0 0 8px currentColor;\n }\n\n .s-open .dot { background: #3b82f6; color: #3b82f6; }\n .s-in_progress .dot { background: #f59e0b; color: #f59e0b; animation: pulse 2s infinite; }\n .s-closed .dot { background: #10b981; color: #10b981; }\n .s-blocked .dot { background: #ef4444; color: #ef4444; }\n\n @keyframes pulse {\n 0%, 100% { box-shadow: 0 0 4px rgba(245, 158, 11, 0.4); }\n 50% { box-shadow: 0 0 12px rgba(245, 158, 11, 0.8); }\n }\n\n .id {\n font-size: 10px;\n font-weight: 500;\n color: #888;\n font-family: 'SF Mono', Monaco, monospace;\n }\n\n .priority {\n margin-left: auto;\n font-size: 9px;\n font-weight: 600;\n padding: 2px 5px;\n border-radius: 4px;\n text-transform: uppercase;\n }\n\n .p-critical { background: rgba(239, 68, 68, 0.2); color: #ef4444; }\n .p-high { background: rgba(245, 158, 11, 0.2); color: #f59e0b; }\n .p-medium { background: rgba(59, 130, 246, 0.2); color: #3b82f6; }\n .p-low { background: rgba(136, 136, 136, 0.2); color: #888; }\n\n .issue-title {\n font-size: 12px;\n font-weight: 500;\n color: #e0e0e0;\n line-height: 1.4;\n margin-bottom: 6px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .assignee {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n font-size: 10px;\n color: #888;\n font-weight: 500;\n }\n\n .assignee-icon {\n font-size: 12px;\n width: 12px;\n height: 12px;\n color: #666;\n }\n\n .assignee-avatar {\n width: 14px;\n height: 14px;\n border-radius: 50%;\n object-fit: cover;\n border: 1px solid rgba(255, 255, 255, 0.1);\n }\n\n .deps {\n margin-top: 6px;\n padding-top: 6px;\n border-top: 1px solid rgba(51, 51, 51, 0.5);\n font-size: 10px;\n color: #ff79c6;\n font-weight: 500;\n }\n .coords {\n margin-top: 4px;\n font-size: 9px;\n color: #666;\n font-family: 'SF Mono', Monaco, monospace;\n }\n `]\n})\nexport class IssueNodeComponent {\n @Input() data!: IssueNodeData;\n\n get hasDeps(): boolean {\n return !!this.data.blockedBy?.length;\n }\n}\n","import { Type } from '@angular/core';\nimport { IssueNodeComponent, IssueNodeData } from './issue.node';\n\ninterface ComponentMeta<T = unknown> {\n title: string;\n group?: 'atoms' | 'molecules' | 'organisms' | 'templates' | 'presenters' | 'extras';\n component: Type<T>;\n inputs?: Record<string, unknown>;\n viewport?: { width?: number; height?: number };\n variants?: { name: string; inputs: Record<string, unknown> }[];\n}\n\nexport const issueNodeMeta: ComponentMeta = {\n title: 'Flow Issue Node',\n group: 'molecules',\n component: IssueNodeComponent,\n viewport: { width: 260, height: 180 },\n variants: [\n {\n name: 'open',\n inputs: {\n data: {\n id: '123',\n title: 'Fix authentication bug',\n status: 'open',\n priority: 'high',\n assignee: 'dev-001',\n } as IssueNodeData,\n },\n },\n {\n name: 'in progress',\n inputs: {\n data: {\n id: '456',\n title: 'Implement dark mode',\n status: 'in_progress',\n priority: 'medium',\n assignee: 'dev-002',\n } as IssueNodeData,\n },\n },\n {\n name: 'closed',\n inputs: {\n data: {\n id: '789',\n title: 'Update dependencies',\n status: 'closed',\n priority: 'low',\n assignee: 'dev-003',\n } as IssueNodeData,\n },\n },\n {\n name: 'blocked',\n inputs: {\n data: {\n id: '101',\n title: 'Deploy to production',\n status: 'blocked',\n priority: 'critical',\n assignee: 'ops-001',\n blockedBy: ['456', '789'],\n } as IssueNodeData,\n },\n },\n {\n name: 'with avatar',\n inputs: {\n data: {\n id: '202',\n title: 'Code review needed',\n status: 'open',\n priority: 'high',\n assignee: 'reviewer',\n assigneeIcon: 'https://api.dicebear.com/7.x/avataaars/svg?seed=Review',\n } as IssueNodeData,\n },\n },\n ],\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"xxmachina-components-templates-flow-nodes-task.mjs","sources":["../../../../../packages/@xxmachina/components/src/lib/templates/flow/nodes/task/task.component.ts","../../../../../packages/@xxmachina/components/src/lib/templates/flow/nodes/task/task.component.meta.ts","../../../../../packages/@xxmachina/components/src/lib/templates/flow/nodes/task/xxmachina-components-templates-flow-nodes-task.ts"],"sourcesContent":["import { Component, Input } from '@angular/core';\n\nimport { MatIconModule } from '@angular/material/icon';\n\nexport interface TaskNodeData {\n label: string;\n status?: string;\n assignee?: string;\n assigneeIcon?: string;\n task?: any;\n}\n\n@Component({\n selector: 'flow-task-node',\n standalone: true,\n imports: [MatIconModule],\n template: `\n <div class=\"task-node\" [class]=\"'s-' + data.status\" [class.has-deps]=\"hasDeps\">\n <div class=\"task-header\">\n <span class=\"dot\"></span>\n <span class=\"task-id\">{{ data.task?.id?.slice(0, 8) }}</span>\n <span class=\"status-badge\">{{ getStatusLabel(data.status) }}</span>\n </div>\n <div class=\"task-title\">{{ data.label }}</div>\n @if (data.task?.result) {\n <div class=\"task-result\">{{ data.task.result }}</div>\n }\n <div class=\"task-footer\">\n @if (data.assignee) {\n <span class=\"assignee\">\n @if (data.assigneeIcon) {\n <img [src]=\"data.assigneeIcon\" class=\"assignee-avatar\" alt=\"\" />\n } @else {\n <mat-icon class=\"assignee-icon\">person</mat-icon>\n }\n {{ data.assignee }}\n </span>\n }\n @if (hasDeps) {\n <span class=\"deps\">依存: {{ data.task?.dependsOn?.length }}</span>\n }\n </div>\n </div>\n `,\n styles: [`\n :host { display: block; width: 200px; }\n\n .task-node {\n background: #1a1a1a;\n border: 1px solid rgba(51, 51, 51, 0.8);\n border-radius: 8px;\n padding: 12px;\n font-family: 'SF Mono', Monaco, monospace;\n transition: all 0.2s ease;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4);\n }\n\n .task-node:hover {\n transform: translateY(-2px);\n box-shadow: 0 8px 24px rgba(0, 0, 0, 0.5);\n border-color: rgba(80, 80, 80, 0.8);\n }\n\n .task-node.s-completed { border-color: rgba(16, 185, 129, 0.6); }\n .task-node.s-in_progress { border-color: rgba(59, 130, 246, 0.6); }\n .task-node.s-pending { border-color: rgba(136, 136, 136, 0.6); }\n .task-node.has-deps { border-style: dashed; }\n\n .task-header {\n display: flex;\n align-items: center;\n gap: 6px;\n margin-bottom: 8px;\n }\n\n .dot {\n width: 8px;\n height: 8px;\n border-radius: 50%;\n flex-shrink: 0;\n box-shadow: 0 0 8px currentColor;\n }\n\n .s-completed .dot { background: #10b981; color: #10b981; }\n .s-in_progress .dot { background: #3b82f6; color: #3b82f6; animation: pulse 2s infinite; }\n .s-pending .dot { background: #888; color: #888; }\n\n @keyframes pulse {\n 0%, 100% { box-shadow: 0 0 4px rgba(59, 130, 246, 0.4); }\n 50% { box-shadow: 0 0 12px rgba(59, 130, 246, 0.8); }\n }\n\n .task-id {\n font-size: 10px;\n font-weight: 500;\n color: #888;\n font-family: 'SF Mono', Monaco, monospace;\n background: rgba(255, 255, 255, 0.05);\n padding: 2px 6px;\n border-radius: 4px;\n }\n\n .status-badge {\n margin-left: auto;\n font-size: 9px;\n font-weight: 600;\n padding: 2px 6px;\n border-radius: 4px;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n }\n\n .s-completed .status-badge { background: rgba(16, 185, 129, 0.2); color: #10b981; }\n .s-in_progress .status-badge { background: rgba(59, 130, 246, 0.2); color: #3b82f6; }\n .s-pending .status-badge { background: rgba(136, 136, 136, 0.2); color: #888; }\n\n .task-title {\n font-size: 13px;\n font-weight: 500;\n color: #e0e0e0;\n line-height: 1.4;\n margin-bottom: 8px;\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n }\n\n .task-result {\n font-size: 11px;\n color: #888;\n background: rgba(255, 255, 255, 0.03);\n padding: 6px 8px;\n border-radius: 4px;\n margin-bottom: 8px;\n border: 1px solid rgba(51, 51, 51, 0.5);\n }\n\n .task-footer {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding-top: 8px;\n border-top: 1px solid rgba(51, 51, 51, 0.5);\n font-size: 11px;\n }\n\n .assignee {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n color: #888;\n font-weight: 500;\n }\n\n .assignee-icon {\n font-size: 14px;\n width: 14px;\n height: 14px;\n color: #666;\n }\n\n .assignee-avatar {\n width: 18px;\n height: 18px;\n border-radius: 50%;\n object-fit: cover;\n border: 1px solid rgba(255, 255, 255, 0.1);\n }\n\n .deps {\n font-size: 10px;\n color: #ff79c6;\n font-weight: 500;\n }\n `]\n})\nexport class TaskNodeComponent {\n @Input() data!: TaskNodeData;\n\n get hasDeps(): boolean {\n return !!this.data.task?.dependsOn?.length;\n }\n\n getStatusLabel(status?: string): string {\n const labels: Record<string, string> = {\n 'completed': 'DONE',\n 'in_progress': 'WIP',\n 'pending': 'TODO',\n };\n return labels[status || ''] || status?.toUpperCase() || '';\n }\n}\n","import { Type } from '@angular/core';\nimport { TaskNodeComponent, TaskNodeData } from './task.component';\n\ninterface ComponentMeta<T = unknown> {\n title: string;\n group?: 'atoms' | 'molecules' | 'organisms' | 'templates' | 'presenters' | 'extras';\n component: Type<T>;\n inputs?: Record<string, unknown>;\n viewport?: { width?: number; height?: number };\n variants?: { name: string; inputs: Record<string, unknown> }[];\n}\n\nexport const taskNodeMeta: ComponentMeta = {\n title: 'Flow Task Node',\n group: 'molecules',\n component: TaskNodeComponent,\n viewport: { width: 300, height: 200 },\n variants: [\n {\n name: 'completed',\n inputs: {\n data: {\n label: 'Implement user authentication',\n status: 'completed',\n assignee: 'dev-001',\n task: {\n id: 'abc12345-6789-0123-4567-890abcdef012',\n result: 'OAuth2 implemented',\n },\n } as TaskNodeData,\n },\n },\n {\n name: 'in progress',\n inputs: {\n data: {\n label: 'Build API endpoints',\n status: 'in_progress',\n assignee: 'dev-002',\n task: {\n id: 'def12345-6789-0123-4567-890abcdef012',\n dependsOn: ['abc12345'],\n },\n } as TaskNodeData,\n },\n },\n {\n name: 'pending',\n inputs: {\n data: {\n label: 'Write unit tests',\n status: 'pending',\n assignee: 'dev-003',\n task: {\n id: 'ghi12345-6789-0123-4567-890abcdef012',\n },\n } as TaskNodeData,\n },\n },\n {\n name: 'with avatar',\n inputs: {\n data: {\n label: 'Integration testing',\n status: 'in_progress',\n assignee: 'qa-team',\n assigneeIcon: 'https://api.dicebear.com/7.x/avataaars/svg?seed=Felix',\n task: {\n id: 'jkl12345-6789-0123-4567-890abcdef012',\n dependsOn: ['abc12345', 'def12345'],\n },\n } as TaskNodeData,\n },\n },\n ],\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"xxmachina-components-templates-flow.mjs","sources":["../../../../../packages/@xxmachina/components/src/lib/templates/flow/nodes/group/group.node.ts","../../../../../packages/@xxmachina/components/src/lib/templates/flow/nodes/group/group.node.meta.ts","../../../../../packages/@xxmachina/components/src/lib/templates/flow/flow.template.ts","../../../../../packages/@xxmachina/components/src/lib/templates/flow/xxmachina-components-templates-flow.ts"],"sourcesContent":["import { Component, input, output } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { NgAtomicComponent } from '@ng-atomic/core';\n\nexport interface GroupNodeData {\n label: string;\n status?: string;\n assignee?: string;\n assigneeIcon?: string;\n childCount?: number;\n expanded?: boolean;\n}\n\nenum ActionId {\n EXPANDED_CHANGE = 'EXPANDED_CHANGE',\n}\n\n@Component({\n selector: 'flow-group-node',\n standalone: true,\n imports: [MatIconModule],\n template: `\n <div class=\"group-node\" [class]=\"'s-' + data()?.status\">\n <div class=\"group-header\">\n <span class=\"dot\"></span>\n <span class=\"status-badge\">{{ getStatusLabel(data()?.status) }}</span>\n @if (data()?.childCount) {\n <span class=\"child-count\">{{ data()?.childCount }}</span>\n }\n </div>\n <div class=\"group-title\">{{ data()?.label }}</div>\n @if (data()?.assignee) {\n <div class=\"group-footer\">\n <span class=\"assignee\">\n @if (data()?.assigneeIcon) {\n <img [src]=\"data()?.assigneeIcon\" class=\"assignee-avatar\" alt=\"\" />\n } @else {\n <mat-icon class=\"assignee-icon\">group</mat-icon>\n }\n {{ data()?.assignee }}\n </span>\n </div>\n }\n </div>\n `,\n styles: [`\n :host { display: block; width: 180px; }\n\n .group-node {\n background: #0a0a0a;\n border: 1px solid rgba(51, 51, 51, 0.8);\n border-radius: 10px;\n padding: 12px;\n font-family: 'SF Mono', Monaco, monospace;\n transition: all 0.2s ease;\n box-shadow: 0 4px 16px rgba(0, 0, 0, 0.5);\n }\n\n .group-node:hover {\n transform: translateY(-2px);\n box-shadow: 0 8px 32px rgba(0, 0, 0, 0.6);\n border-color: rgba(80, 80, 80, 0.8);\n }\n\n .group-node.s-root { border-color: rgba(99, 102, 241, 0.6); }\n .group-node.s-completed { border-color: rgba(16, 185, 129, 0.6); }\n .group-node.s-in_progress { border-color: rgba(59, 130, 246, 0.6); }\n .group-node.s-pending { border-color: rgba(136, 136, 136, 0.6); }\n .group-node.s-sprint_planned { border-color: rgba(139, 92, 246, 0.6); }\n .group-node.s-needs_breakdown { border-color: rgba(245, 158, 11, 0.6); }\n\n .group-header {\n display: flex;\n align-items: center;\n gap: 6px;\n margin-bottom: 8px;\n }\n\n .dot {\n width: 10px;\n height: 10px;\n border-radius: 50%;\n flex-shrink: 0;\n box-shadow: 0 0 10px currentColor;\n }\n\n .s-root .dot { background: #6366f1; color: #6366f1; }\n .s-completed .dot { background: #10b981; color: #10b981; }\n .s-in_progress .dot { background: #3b82f6; color: #3b82f6; animation: pulse 2s infinite; }\n .s-pending .dot { background: #888; color: #888; }\n .s-sprint_planned .dot { background: #8b5cf6; color: #8b5cf6; }\n .s-needs_breakdown .dot { background: #f59e0b; color: #f59e0b; }\n\n @keyframes pulse {\n 0%, 100% { box-shadow: 0 0 4px rgba(59, 130, 246, 0.4); }\n 50% { box-shadow: 0 0 12px rgba(59, 130, 246, 0.8); }\n }\n\n .status-badge {\n font-size: 10px;\n font-weight: 600;\n padding: 2px 8px;\n border-radius: 10px;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n }\n\n .s-root .status-badge { background: rgba(99, 102, 241, 0.2); color: #6366f1; }\n .s-completed .status-badge { background: rgba(16, 185, 129, 0.2); color: #10b981; }\n .s-in_progress .status-badge { background: rgba(59, 130, 246, 0.2); color: #3b82f6; }\n .s-pending .status-badge { background: rgba(136, 136, 136, 0.2); color: #888; }\n .s-sprint_planned .status-badge { background: rgba(139, 92, 246, 0.2); color: #8b5cf6; }\n .s-needs_breakdown .status-badge { background: rgba(245, 158, 11, 0.2); color: #f59e0b; }\n\n .child-count {\n margin-left: auto;\n font-size: 11px;\n font-weight: 600;\n color: #888;\n background: rgba(255, 255, 255, 0.05);\n padding: 2px 8px;\n border-radius: 10px;\n }\n\n .group-title {\n font-size: 14px;\n font-weight: 500;\n color: #e0e0e0;\n line-height: 1.4;\n margin-bottom: 8px;\n }\n\n .group-footer {\n padding-top: 8px;\n border-top: 1px solid rgba(51, 51, 51, 0.5);\n }\n\n .assignee {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n font-size: 11px;\n color: #888;\n font-weight: 500;\n }\n\n .assignee-icon {\n font-size: 14px;\n width: 14px;\n height: 14px;\n color: #666;\n }\n\n .assignee-avatar {\n width: 18px;\n height: 18px;\n border-radius: 50%;\n object-fit: cover;\n border: 1px solid rgba(255, 255, 255, 0.1);\n }\n `]\n})\nexport class GroupNodeComponent extends NgAtomicComponent {\n static readonly ActionId = ActionId;\n\n readonly data = input<GroupNodeData>();\n readonly expandedChange = output<boolean>();\n\n getStatusLabel(status?: string): string {\n const labels: Record<string, string> = {\n 'root': 'ROOT',\n 'in_progress': 'WIP',\n 'completed': 'DONE',\n 'pending': 'TODO',\n 'sprint_planned': 'PLAN',\n 'needs_breakdown': 'BREAK',\n 'under_consideration': 'REVIEW',\n 'abandoned': 'DROP'\n };\n return labels[status || ''] || status?.toUpperCase() || '';\n }\n\n onExpandedChange(expanded: boolean): void {\n this.dispatch({id: ActionId.EXPANDED_CHANGE, payload: { expanded, data: this.data() }});\n }\n}\n","import { Type } from '@angular/core';\nimport { GroupNodeComponent, GroupNodeData } from './group.node';\n\ninterface ComponentMeta<T = unknown> {\n title: string;\n group?: 'atoms' | 'molecules' | 'organisms' | 'templates' | 'presenters' | 'extras';\n component: Type<T>;\n inputs?: Record<string, unknown>;\n viewport?: { width?: number; height?: number };\n variants?: { name: string; inputs: Record<string, unknown> }[];\n}\n\nexport const groupNodeMeta: ComponentMeta = {\n title: 'Flow Group Node',\n group: 'molecules',\n component: GroupNodeComponent,\n viewport: { width: 280, height: 180 },\n variants: [\n {\n name: 'root',\n inputs: {\n data: {\n label: 'Project Tasks',\n status: 'root',\n childCount: 12,\n } as GroupNodeData,\n },\n },\n {\n name: 'in progress',\n inputs: {\n data: {\n label: 'Sprint 1 Tasks',\n status: 'in_progress',\n assignee: 'Team Alpha',\n childCount: 5,\n } as GroupNodeData,\n },\n },\n {\n name: 'completed',\n inputs: {\n data: {\n label: 'Completed Features',\n status: 'completed',\n assignee: 'Team Beta',\n childCount: 8,\n } as GroupNodeData,\n },\n },\n {\n name: 'pending',\n inputs: {\n data: {\n label: 'Backlog Items',\n status: 'pending',\n childCount: 15,\n } as GroupNodeData,\n },\n },\n {\n name: 'sprint planned',\n inputs: {\n data: {\n label: 'Sprint 2 Planned',\n status: 'sprint_planned',\n assignee: 'Team Gamma',\n childCount: 6,\n } as GroupNodeData,\n },\n },\n {\n name: 'with avatar',\n inputs: {\n data: {\n label: 'Design Review',\n status: 'in_progress',\n assignee: 'Design Team',\n assigneeIcon: 'https://api.dicebear.com/7.x/avataaars/svg?seed=Team',\n childCount: 3,\n } as GroupNodeData,\n },\n },\n ],\n};\n","import { Component, computed, Directive, input, output, Type } from '@angular/core';\nimport { ReactFlowComponent, FlowNodeDirective } from '@xxmachina/components/extras/flow';\nimport { Node, Edge, NodeChange, EdgeChange, Connection, MarkerType, Viewport, ReactFlowInstance } from 'reactflow';\nimport { GroupNodeComponent } from './nodes/group';\nimport { TaskNodeComponent } from './nodes/task';\nimport { Effect, InjectableComponent, NgAtomicComponent, provideComponent, TokenizedType } from '@ng-atomic/core';\nimport { ScrollFrame } from '@ng-atomic/components/frames/scroll';\n\nexport type FlowInteractionMode = 'desktop' | 'touch';\n\nenum ActionId {\n EXPANDED_CHANGE = '[FlowTemplate] EXPANDED_CHANGE',\n}\n\n@TokenizedType()\n@Directive({ standalone: true, selector: 'flow-node' })\nexport class FlowNodeStore<T> extends InjectableComponent {\n static provideComponent(loader: () => Promise<Type<any>> | Type<any>) {\n return provideComponent(FlowNodeStore, loader);\n }\n\n readonly data = input<T>();\n}\n\n@Component({\n selector: 'templates-flow',\n standalone: true,\n imports: [\n ReactFlowComponent,\n FlowNodeDirective,\n GroupNodeComponent,\n FlowNodeStore,\n ScrollFrame,\n],\n template: `\n <frames-scroll>\n <ng-content select=\"[top]\" top />\n <machina-react-flow\n [nodes]=\"nodes()\"\n [edges]=\"edges()\"\n [deleteKeyCode]=\"deleteKeyCode()\"\n [defaultEdgeOptions]=\"defaultEdgeOptions()\"\n [enableTouchPassthrough]=\"interactionMode() === 'touch'\"\n [minZoom]=\"0.05\"\n [maxZoom]=\"2\"\n [fitView]=\"true\"\n [fitViewOptions]=\"{ padding: 0.1, minZoom: 0.1, maxZoom: 0.5 }\"\n [defaultViewport]=\"{ x: 0, y: 0, zoom: 0.3 }\"\n [nodesDraggable]=\"nodesDraggable_()\"\n [nodesConnectable]=\"true\"\n [elementsSelectable]=\"elementsSelectable_()\"\n [onlyRenderVisibleElements]=\"true\"\n [panOnDrag]=\"panOnDrag_\"\n [panOnScroll]=\"true\"\n [selectionOnDrag]=\"false\"\n [zoomOnScroll]=\"true\"\n [zoomOnPinch]=\"true\"\n [zoomOnDoubleClick]=\"true\"\n (action)=\"dispatch($event)\"\n (onNodeClick)=\"nodeClick.emit($event)\"\n (onNodesChange)=\"nodesChange.emit($event)\"\n (onNodeDragStop)=\"nodeDragStop.emit($event)\"\n (onEdgesChange)=\"edgesChange.emit($event)\"\n (onConnect)=\"connect.emit($event)\"\n (onNodeResizeEnd)=\"nodeResizeEnd.emit($event)\"\n (onMove)=\"onViewportMove($event)\"\n (onMoveEnd)=\"onViewportMove($event)\"\n (onInit)=\"onFlowInit($event)\"\n >\n <flow-node injectable\n *flowNode=\"'task'; let data\"\n [data]=\"data\"\n (action)=\"dispatch($event)\"\n />\n <flow-group-node\n *flowNode=\"'group'; let data; let node\"\n [data]=\"data\"\n (action)=\"dispatch($event)\"\n />\n </machina-react-flow>\n </frames-scroll>\n `,\n styleUrl: './flow.template.scss',\n})\nexport class FlowTemplate extends NgAtomicComponent {\n static readonly ActionId = ActionId;\n\n readonly nodes = input<Node[]>([]);\n readonly edges = input<Edge[]>([]);\n readonly interactionMode = input<FlowInteractionMode>('desktop');\n readonly deleteKeyCode = input<string | null>(null);\n protected readonly panOnDrag_ = true;\n protected readonly nodesDraggable_ = computed(() => this.interactionMode() !== 'touch');\n protected readonly elementsSelectable_ = computed(() => this.interactionMode() !== 'touch');\n readonly defaultEdgeOptions = input({\n type: 'smoothstep',\n animated: true,\n markerEnd: {\n type: MarkerType.ArrowClosed,\n },\n style: {\n stroke: '#333',\n strokeWidth: 2,\n }\n });\n\n readonly nodeClick = output<[MouseEvent, Node]>();\n readonly nodesChange = output<NodeChange[]>();\n readonly nodeDragStop = output<[MouseEvent, Node, Node[]]>();\n readonly edgesChange = output<EdgeChange[]>();\n readonly connect = output<Connection>();\n readonly nodeData = output<[string, any]>();\n readonly nodeResizeEnd = output<{ nodeId: string; width: number; height: number }>();\n readonly viewportChange = output<Viewport>();\n\n protected onViewportMove([_event, viewport]: [MouseEvent, Viewport]): void {\n this.viewportChange.emit(viewport);\n }\n\n protected onFlowInit([instance]: [ReactFlowInstance]): void {\n requestAnimationFrame(() => {\n const viewport = instance.getViewport();\n this.viewportChange.emit(viewport);\n });\n }\n\n @Effect(GroupNodeComponent.ActionId.EXPANDED_CHANGE)\n protected onGroupExpandedChange(payload: { expanded: boolean, data: any }): void {\n const nodeId = payload.data?.task?.id;\n if (nodeId) {\n this.dispatch({ id: ActionId.EXPANDED_CHANGE, payload: { nodeId, expanded: payload.expanded } });\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["ActionId"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"xxmachina-components-templates-invoice-iframe.mjs","sources":["../../../../../packages/@xxmachina/components/src/lib/templates/invoice-iframe/invoice-iframe.template.ts","../../../../../packages/@xxmachina/components/src/lib/templates/invoice-iframe/xxmachina-components-templates-invoice-iframe.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, ElementRef, Input, ViewChild } from '@angular/core';\n\nimport { NavigatorOrganism } from '@ng-atomic/components/organisms/navigator';\nimport { NgAtomicComponent } from '@ng-atomic/core';\n\n@Component({\n selector: 'templates-invoice-iframe',\n standalone: true,\n imports: [\n NavigatorOrganism\n],\n template: `\n <organisms-navigator\n [startActions]=\"navStartActions\"\n (action)=\"dispatch($event)\"\n >請求書</organisms-navigator>\n <iframe [src]=\"src\" #iframe></iframe>\n `,\n styleUrls: ['./invoice-iframe.template.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'template' },\n})\nexport class InvoiceIframeTemplate extends NgAtomicComponent {\n @ViewChild('iframe', { static: false }) readonly iframe!: ElementRef;\n @Input() protected navStartActions = [];\n @Input() protected src = '';\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AAsBM,MAAO,qBAAsB,SAAQ,iBAAiB,CAAA;AACT,IAAA,MAAM;IACpC,eAAe,GAAG,EAAE;IACpB,GAAG,GAAG,EAAE;uGAHhB,qBAAqB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAArB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,GAAA,EAAA,KAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAXtB;;;;;;AAMT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,4GAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EARC,iBAAiB,EAAA,QAAA,EAAA,qBAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAaR,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAjBjC,SAAS;+BACE,0BAA0B,EAAA,UAAA,EACxB,IAAI,EAAA,OAAA,EACP;wBACP;qBACH,EAAA,QAAA,EACW;;;;;;GAMT,EAAA,eAAA,EAEgB,uBAAuB,CAAC,MAAM,EAAA,IAAA,EACzC,EAAE,KAAK,EAAE,UAAU,EAAE,EAAA,MAAA,EAAA,CAAA,4GAAA,CAAA,EAAA;;sBAG1B,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,QAAQ,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;;sBACrC;;sBACA;;;ACzBH;;AAEG;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"xxmachina-components-templates-machina-icon-button-menu.mjs","sources":["../../../../../packages/@xxmachina/components/src/lib/templates/machina-icon-button-menu/machina-icon-button-menu.template.ts","../../../../../packages/@xxmachina/components/src/lib/templates/machina-icon-button-menu/xxmachina-components-templates-machina-icon-button-menu.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, inject } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { NgAtomicComponent } from '@ng-atomic/core';\nimport { AuthService } from '@ng-atomic/common/services/auth';\nimport { IconButtonMenuTemplateStore } from '@ng-atomic/components/templates/icon-button-menu';\nimport { UserAvatarMenuMolecule } from '@xxmachina/components/molecules/user-avatar-menu';\n\n\n@Component({\n selector: 'templates-icon-button-menu',\n standalone: true,\n imports: [MatButtonModule, MatIconModule, MatTooltipModule, UserAvatarMenuMolecule],\n template: `\n <div class=\"top\" [style.padding-top]=\"store.topPadding()\">\n @for (action of store.actions(); track $index) {\n <button mat-icon-button [color]=\"action?.color\" (click)=\"dispatch(action)\"\n [matTooltip]=\"action.name\" matTooltipPosition=\"right\">\n <mat-icon>{{ action.icon }}</mat-icon>\n </button>\n }\n </div>\n <div class=\"bottom\">\n @if (signOutAction(); as signOut) {\n <molecules-user-avatar-menu [signOutAction]=\"signOut\" (action)=\"dispatch($event)\"/>\n }\n @for (action of restBottomActions(); track $index) {\n <button mat-icon-button [color]=\"action?.color\" (click)=\"dispatch(action)\"\n [matTooltip]=\"action.name\" matTooltipPosition=\"right\">\n <mat-icon>{{ action.icon }}</mat-icon>\n </button>\n }\n </div>\n `,\n styleUrl: './machina-icon-button-menu.template.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [\n {\n directive: IconButtonMenuTemplateStore,\n inputs: ['actions', 'bottomActions', 'topPadding'],\n },\n ],\n})\nexport class MachinaIconButtonMenuTemplate extends NgAtomicComponent {\n protected readonly store = inject(IconButtonMenuTemplateStore);\n protected readonly auth = inject(AuthService);\n\n \n protected readonly signOutAction = computed(() =>\n this.auth.auth() ? this.store.bottomActions()[0] ?? null : null);\n protected readonly restBottomActions = computed(() =>\n this.signOutAction() ? this.store.bottomActions().slice(1) : this.store.bottomActions());\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;AA4CM,MAAO,6BAA8B,SAAQ,iBAAiB,CAAA;AAC/C,IAAA,KAAK,GAAG,MAAM,CAAC,2BAA2B,CAAC;AAC3C,IAAA,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC;AAG1B,IAAA,aAAa,GAAG,QAAQ,CAAC,MAC1C,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,IAAI,yDAAC;AAC/C,IAAA,iBAAiB,GAAG,QAAQ,CAAC,MAC9C,IAAI,CAAC,aAAa,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,6DAAC;uGAR/E,6BAA6B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA7B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,6BAA6B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,eAAA,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,eAAA,EAAA,eAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EA9B9B;;;;;;;;;;;;;;;;;;;;AAoBT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,ipCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EArBS,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,sFAAA,EAAA,QAAA,EAAA,CAAA,WAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,gBAAgB,6TAAE,sBAAsB,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FA+BvE,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAlCzC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,4BAA4B,EAAA,UAAA,EAC1B,IAAI,EAAA,OAAA,EACP,CAAC,eAAe,EAAE,aAAa,EAAE,gBAAgB,EAAE,sBAAsB,CAAC,EAAA,QAAA,EACzE;;;;;;;;;;;;;;;;;;;;GAoBT,EAAA,eAAA,EAEgB,uBAAuB,CAAC,MAAM,EAAA,cAAA,EAC/B;AACd,wBAAA;AACE,4BAAA,SAAS,EAAE,2BAA2B;AACtC,4BAAA,MAAM,EAAE,CAAC,SAAS,EAAE,eAAe,EAAE,YAAY,CAAC;AACnD,yBAAA;AACF,qBAAA,EAAA,MAAA,EAAA,CAAA,ipCAAA,CAAA,EAAA;;;AC1CH;;AAEG;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"xxmachina-components-templates-scheduler.mjs","sources":["../../../../../packages/@xxmachina/components/src/lib/templates/scheduler/scheduler.template.ts","../../../../../packages/@xxmachina/components/src/lib/templates/scheduler/xxmachina-components-templates-scheduler.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, Input, Pipe } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormGroup } from '@angular/forms';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { TextInputSectionOrganism } from '@ng-atomic/components/organisms/text-input-section';\nimport { TextareaSectionOrganism } from '@ng-atomic/components/organisms/textarea-section';\nimport { DateInputSectionOrganism } from '@ng-atomic/components/organisms/date-input-section';\nimport { TimeRangeInputSectionOrganism } from '@ng-atomic/components/organisms/time-range-input-section';\nimport { DateRangeInputSectionOrganism } from '@ng-atomic/components/organisms/date-range-input-section';\nimport { NavigatorOrganism } from '@ng-atomic/components/organisms/navigator';\nimport { ScrollFrame } from '@ng-atomic/components/frames/scroll';\nimport { TabsFrame } from '@ng-atomic/components/frames/tabs';\nimport { ActionButtonsSectionOrganism } from '@ng-atomic/components/organisms/action-buttons-section';\nimport { Effect, NgAtomicComponent } from '@ng-atomic/core';\nimport { EventInputSectionOrganism } from '@xxmachina/components/organisms/event-input-section';\n\nenum ActionId {\n ADD_EVENTS = 'ADD_EVENTS',\n COPY_MESSAGE = 'COPY_MESSAGE',\n DELETE_EVENT = '[@xxmachina/scheduler/components/templates/scheduler] Delete Event',\n FIX_SCHEDULE = '[@xxmachina/scheduler/components/templates/scheduler] Fix Schedule',\n}\n\n\n@Component({\n selector: 'templates-scheduler',\n standalone: true,\n imports: [\n CommonModule,\n TextInputSectionOrganism,\n TextareaSectionOrganism,\n DateInputSectionOrganism,\n TimeRangeInputSectionOrganism,\n DateRangeInputSectionOrganism,\n ActionButtonsSectionOrganism,\n EventInputSectionOrganism,\n NavigatorOrganism,\n ScrollFrame,\n MatTabsModule,\n TabsFrame,\n ],\n template: `\n <frames-scroll>\n <organisms-navigator top>日程調整</organisms-navigator>\n <frames-tabs content>\n <ng-template #tab>\n <frames-scroll>\n <organisms-text-input-section\n [label]=\"'予定名'\"\n [control]=\"form.get(['title'])\"\n [autoComplete]=\"autoCompleteTitle\"\n [actions]=\"addEventsActions\"\n (action)=\"dispatch($event)\"\n top/>\n <div content>\n <organisms-event-input-section\n *ngFor=\"let control of form.get(['events'])?.controls; let i = index\"\n [label]=\"'候補(' + (i + 1) + ')'\"\n [control]=\"control\"\n (action)=\"dispatch($event, undefined, i)\"\n />\n </div>\n <organisms-textarea-section bottom\n [rows]=\"5\"\n [label]=\"'メッセージ文'\"\n [control]=\"form.get(['message'])\"\n [actions]=\"submitActions\"\n (action)=\"dispatch($event)\"\n />\n </frames-scroll>\n </ng-template>\n <ng-template #tab>\n <frames-scroll>\n <div top>\n <organisms-date-range-input-section\n [label]=\"'日付'\"\n [control]=\"form.get(['dateRange'])\"\n />\n <organisms-time-range-input-section\n [label]=\"'時間'\"\n [control]=\"form.get(['timeRange'])\"\n />\n </div>\n </frames-scroll>\n </ng-template>\n </frames-tabs>\n </frames-scroll>\n `,\n styleUrls: ['./scheduler.template.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'template' },\n})\nexport class SchedulerTemplate extends NgAtomicComponent {\n static readonly ActionId = ActionId;\n\n @Input() protected form!: FormGroup;\n @Input() protected autoCompleteTitle!: string[];\n\n protected addEventsActions= [\n { id: ActionId.ADD_EVENTS, name: '候補日をピックアップ', icon: 'add' },\n ];\n\n protected submitActions = [\n { id: ActionId.COPY_MESSAGE, name: 'コピー', icon: 'content_copy'},\n ];\n\n @Effect(EventInputSectionOrganism.ActionId.DELETE_BUTTON_CLICK, {accessor: (action: any) => action.meta.componentId})\n onDeleteButtonClicked(index: any) {\n this.dispatch({id: ActionId.DELETE_EVENT, payload: index});\n }\n\n @Effect(EventInputSectionOrganism.ActionId.FIX_BUTTON_CLICK, {accessor: (action: any) => action.meta.componentId})\n onFixButtonClicked(index: any) {\n this.dispatch({id: ActionId.FIX_SCHEDULE, payload: index});\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAgBA,IAAK,QAKJ;AALD,CAAA,UAAK,QAAQ,EAAA;AACX,IAAA,QAAA,CAAA,YAAA,CAAA,GAAA,YAAyB;AACzB,IAAA,QAAA,CAAA,cAAA,CAAA,GAAA,cAA6B;AAC7B,IAAA,QAAA,CAAA,cAAA,CAAA,GAAA,oEAAmF;AACnF,IAAA,QAAA,CAAA,cAAA,CAAA,GAAA,oEAAmF;AACrF,CAAC,EALI,QAAQ,KAAR,QAAQ,GAAA,EAAA,CAAA,CAAA;AA4EP,MAAO,iBAAkB,SAAQ,iBAAiB,CAAA;AACtD,IAAA,OAAgB,QAAQ,GAAG,QAAQ;AAEhB,IAAA,IAAI;AACJ,IAAA,iBAAiB;AAE1B,IAAA,gBAAgB,GAAE;AAC1B,QAAA,EAAE,EAAE,EAAE,QAAQ,CAAC,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE;KAC7D;AAES,IAAA,aAAa,GAAG;AACxB,QAAA,EAAE,EAAE,EAAE,QAAQ,CAAC,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAC;KAChE;AAGD,IAAA,qBAAqB,CAAC,KAAU,EAAA;AAC9B,QAAA,IAAI,CAAC,QAAQ,CAAC,EAAC,EAAE,EAAE,QAAQ,CAAC,YAAY,EAAE,OAAO,EAAE,KAAK,EAAC,CAAC;IAC5D;AAGA,IAAA,kBAAkB,CAAC,KAAU,EAAA;AAC3B,QAAA,IAAI,CAAC,QAAQ,CAAC,EAAC,EAAE,EAAE,QAAQ,CAAC,YAAY,EAAE,OAAO,EAAE,KAAK,EAAC,CAAC;IAC5D;uGAtBW,iBAAiB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAjB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,UAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAnDlB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8CT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,gTAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EA3DC,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACZ,wBAAwB,yEACxB,uBAAuB,EAAA,QAAA,EAAA,4BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAEvB,6BAA6B,EAAA,QAAA,EAAA,oCAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAC7B,6BAA6B,EAAA,QAAA,EAAA,oCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAE7B,yBAAyB,wGACzB,iBAAiB,EAAA,QAAA,EAAA,qBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACjB,WAAW,EAAA,QAAA,EAAA,eAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACX,aAAa,+BACb,SAAS,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;AAoEX,UAAA,CAAA;IADC,MAAM,CAAC,yBAAyB,CAAC,QAAQ,CAAC,mBAAmB,EAAE,EAAC,QAAQ,EAAE,CAAC,MAAW,KAAK,MAAM,CAAC,IAAI,CAAC,WAAW,EAAC,CAAC;;;;AAGpH,CAAA,EAAA,iBAAA,CAAA,SAAA,EAAA,uBAAA,EAAA,IAAA,CAAA;AAGD,UAAA,CAAA;IADC,MAAM,CAAC,yBAAyB,CAAC,QAAQ,CAAC,gBAAgB,EAAE,EAAC,QAAQ,EAAE,CAAC,MAAW,KAAK,MAAM,CAAC,IAAI,CAAC,WAAW,EAAC,CAAC;;;;AAGjH,CAAA,EAAA,iBAAA,CAAA,SAAA,EAAA,oBAAA,EAAA,IAAA,CAAA;2FAtBU,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBApE7B,SAAS;+BACE,qBAAqB,EAAA,UAAA,EACnB,IAAI,EAAA,OAAA,EACP;wBACP,YAAY;wBACZ,wBAAwB;wBACxB,uBAAuB;wBACvB,wBAAwB;wBACxB,6BAA6B;wBAC7B,6BAA6B;wBAC7B,4BAA4B;wBAC5B,yBAAyB;wBACzB,iBAAiB;wBACjB,WAAW;wBACX,aAAa;wBACb,SAAS;qBACV,EAAA,QAAA,EACS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CT,EAAA,eAAA,EAEgB,uBAAuB,CAAC,MAAM,EAAA,IAAA,EACzC,EAAE,KAAK,EAAE,UAAU,EAAE,EAAA,MAAA,EAAA,CAAA,gTAAA,CAAA,EAAA;;sBAK1B;;sBACA;;;AChGH;;AAEG;;;;"}