@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.
- package/fesm2022/xxmachina-components-extras-flow.mjs +0 -1
- package/fesm2022/xxmachina-components-features-command.mjs +0 -1
- package/fesm2022/xxmachina-components-features-query.mjs +0 -1
- package/fesm2022/xxmachina-components-groups-command-form.mjs +0 -1
- package/fesm2022/xxmachina-components-groups-query-form.mjs +0 -1
- package/fesm2022/xxmachina-components-molecules-calendar-paginator.mjs +0 -1
- package/fesm2022/xxmachina-components-molecules-daily-cell.mjs +0 -1
- package/fesm2022/xxmachina-components-molecules-inline-edit-field.mjs +0 -1
- package/fesm2022/xxmachina-components-molecules-user-avatar-menu.mjs +0 -1
- package/fesm2022/xxmachina-components-molecules-weekly-header.mjs +2 -3
- package/fesm2022/xxmachina-components-molecules-workspace-selector.mjs +0 -1
- package/fesm2022/xxmachina-components-organisms-calendar-section.mjs +2 -3
- package/fesm2022/xxmachina-components-organisms-event-input-section.mjs +0 -1
- package/fesm2022/xxmachina-components-organisms-terminal-input-section.mjs +0 -1
- package/fesm2022/xxmachina-components-organisms-video-trimmer-section.mjs +0 -1
- package/fesm2022/xxmachina-components-organisms-xterm.mjs +0 -1
- package/fesm2022/xxmachina-components-pages-command-harness.mjs +0 -1
- package/fesm2022/xxmachina-components-pages-command.mjs +2 -3
- package/fesm2022/xxmachina-components-pages-query-v2.mjs +0 -1
- package/fesm2022/xxmachina-components-pages-query.mjs +2 -3
- package/fesm2022/xxmachina-components-pages-thread.mjs +2 -3
- package/fesm2022/xxmachina-components-routes-commands-command.routes-Ca2yVrwL.mjs +0 -1
- package/fesm2022/xxmachina-components-routes-commands-pages.routes-COpFeEsz.mjs +0 -1
- package/fesm2022/xxmachina-components-routes-commands.mjs +0 -1
- package/fesm2022/xxmachina-components-routes-pages.mjs +0 -1
- package/fesm2022/xxmachina-components-routes-preloading.mjs +0 -1
- package/fesm2022/xxmachina-components-routes-queries-pages.routes-CfrglCIL.mjs +0 -1
- package/fesm2022/xxmachina-components-routes-queries.mjs +0 -1
- package/fesm2022/xxmachina-components-routes-query-pages.routes-BNuONo3g.mjs +0 -1
- package/fesm2022/xxmachina-components-routes-query.mjs +0 -1
- package/fesm2022/xxmachina-components-routes-resources-pages.routes-DEu2qpeu.mjs +0 -1
- package/fesm2022/xxmachina-components-routes-resources-resource.routes-CWxi2agj.mjs +0 -1
- package/fesm2022/xxmachina-components-routes-resources.mjs +0 -1
- package/fesm2022/xxmachina-components-routes-side-chat.mjs +0 -1
- package/fesm2022/xxmachina-components-routes-side.mjs +0 -1
- package/fesm2022/xxmachina-components-routes-transformer.mjs +0 -1
- package/fesm2022/xxmachina-components-routes-transformers-pages.routes-02pVsNas.mjs +0 -1
- package/fesm2022/xxmachina-components-routes-transformers.mjs +0 -1
- package/fesm2022/xxmachina-components-routes.mjs +0 -1
- package/fesm2022/xxmachina-components-services-app.mjs +0 -1
- package/fesm2022/xxmachina-components-services-assistant.mjs +0 -1
- package/fesm2022/xxmachina-components-services-command.mjs +0 -1
- package/fesm2022/xxmachina-components-services-context.mjs +0 -1
- package/fesm2022/xxmachina-components-services-contract.mjs +0 -1
- package/fesm2022/xxmachina-components-services-debug.mjs +0 -1
- package/fesm2022/xxmachina-components-services-forms-query.mjs +1 -2
- package/fesm2022/xxmachina-components-services-forms-schedule.mjs +0 -1
- package/fesm2022/xxmachina-components-services-forms-variables.mjs +0 -1
- package/fesm2022/xxmachina-components-services-graphql.mjs +0 -1
- package/fesm2022/xxmachina-components-services-invoice.mjs +0 -1
- package/fesm2022/xxmachina-components-services-json-schema.mjs +0 -1
- package/fesm2022/xxmachina-components-services-message.mjs +0 -1
- package/fesm2022/xxmachina-components-services-openai.mjs +0 -1
- package/fesm2022/xxmachina-components-services-openapi.mjs +0 -1
- package/fesm2022/xxmachina-components-services-order.mjs +0 -1
- package/fesm2022/xxmachina-components-services-partner.mjs +0 -1
- package/fesm2022/xxmachina-components-services-query.mjs +0 -1
- package/fesm2022/xxmachina-components-services-recording.mjs +0 -1
- package/fesm2022/xxmachina-components-services-thread.mjs +0 -1
- package/fesm2022/xxmachina-components-services-transformer.mjs +0 -1
- package/fesm2022/xxmachina-components-services-version.mjs +0 -1
- package/fesm2022/xxmachina-components-services-workspace-switcher.mjs +0 -1
- package/fesm2022/xxmachina-components-services-youtube.mjs +0 -1
- package/fesm2022/xxmachina-components-templates-agent.mjs +2 -3
- package/fesm2022/xxmachina-components-templates-background.mjs +0 -1
- package/fesm2022/xxmachina-components-templates-env.mjs +0 -1
- package/fesm2022/xxmachina-components-templates-flow-nodes-group.mjs +0 -1
- package/fesm2022/xxmachina-components-templates-flow-nodes-issue.mjs +0 -1
- package/fesm2022/xxmachina-components-templates-flow-nodes-task.mjs +0 -1
- package/fesm2022/xxmachina-components-templates-flow.mjs +0 -1
- package/fesm2022/xxmachina-components-templates-invoice-iframe.mjs +0 -1
- package/fesm2022/xxmachina-components-templates-machina-icon-button-menu.mjs +2 -3
- package/fesm2022/xxmachina-components-templates-scheduler.mjs +0 -1
- package/fesm2022/xxmachina-components-templates-video.mjs +0 -1
- package/fesm2022/xxmachina-components-validators-query.mjs +0 -1
- package/fesm2022/xxmachina-components.mjs +2 -3
- package/package.json +1 -1
- package/types/xxmachina-components-extras-flow.d.ts +0 -1
- package/types/xxmachina-components-features-command.d.ts +0 -1
- package/types/xxmachina-components-features-query.d.ts +3 -4
- package/types/xxmachina-components-groups-command-form.d.ts +0 -1
- package/types/xxmachina-components-groups-query-form.d.ts +2 -3
- package/types/xxmachina-components-molecules-calendar-paginator.d.ts +0 -1
- package/types/xxmachina-components-molecules-daily-cell.d.ts +0 -1
- package/types/xxmachina-components-molecules-inline-edit-field.d.ts +0 -1
- package/types/xxmachina-components-molecules-user-avatar-menu.d.ts +0 -1
- package/types/xxmachina-components-molecules-weekly-header.d.ts +0 -1
- package/types/xxmachina-components-molecules-workspace-selector.d.ts +0 -1
- package/types/xxmachina-components-organisms-calendar-section.d.ts +0 -1
- package/types/xxmachina-components-organisms-event-input-section.d.ts +0 -1
- package/types/xxmachina-components-organisms-terminal-input-section.d.ts +0 -1
- package/types/xxmachina-components-organisms-video-trimmer-section.d.ts +0 -1
- package/types/xxmachina-components-organisms-xterm.d.ts +0 -1
- package/types/xxmachina-components-pages-command-harness.d.ts +0 -1
- package/types/xxmachina-components-pages-command.d.ts +0 -1
- package/types/xxmachina-components-pages-query-v2.d.ts +0 -1
- package/types/xxmachina-components-pages-query.d.ts +0 -1
- package/types/xxmachina-components-pages-thread.d.ts +0 -1
- package/types/xxmachina-components-routes-commands.d.ts +0 -1
- package/types/xxmachina-components-routes-pages.d.ts +0 -1
- package/types/xxmachina-components-routes-preloading.d.ts +0 -1
- package/types/xxmachina-components-routes-queries.d.ts +0 -1
- package/types/xxmachina-components-routes-query.d.ts +0 -1
- package/types/xxmachina-components-routes-resources.d.ts +0 -1
- package/types/xxmachina-components-routes-side-chat.d.ts +0 -1
- package/types/xxmachina-components-routes-side.d.ts +0 -1
- package/types/xxmachina-components-routes-transformer.d.ts +0 -1
- package/types/xxmachina-components-routes-transformers.d.ts +0 -1
- package/types/xxmachina-components-routes.d.ts +0 -1
- package/types/xxmachina-components-services-app.d.ts +0 -1
- package/types/xxmachina-components-services-assistant.d.ts +0 -1
- package/types/xxmachina-components-services-command.d.ts +0 -1
- package/types/xxmachina-components-services-context.d.ts +0 -1
- package/types/xxmachina-components-services-contract.d.ts +0 -1
- package/types/xxmachina-components-services-debug.d.ts +0 -1
- package/types/xxmachina-components-services-forms-query.d.ts +1 -2
- package/types/xxmachina-components-services-forms-schedule.d.ts +0 -1
- package/types/xxmachina-components-services-forms-variables.d.ts +0 -1
- package/types/xxmachina-components-services-graphql.d.ts +0 -1
- package/types/xxmachina-components-services-invoice.d.ts +0 -1
- package/types/xxmachina-components-services-json-schema.d.ts +0 -1
- package/types/xxmachina-components-services-message.d.ts +0 -1
- package/types/xxmachina-components-services-openai.d.ts +0 -1
- package/types/xxmachina-components-services-openapi.d.ts +0 -1
- package/types/xxmachina-components-services-order.d.ts +0 -1
- package/types/xxmachina-components-services-partner.d.ts +0 -1
- package/types/xxmachina-components-services-query.d.ts +0 -1
- package/types/xxmachina-components-services-recording.d.ts +0 -1
- package/types/xxmachina-components-services-thread.d.ts +0 -1
- package/types/xxmachina-components-services-transformer.d.ts +0 -1
- package/types/xxmachina-components-services-version.d.ts +0 -1
- package/types/xxmachina-components-services-workspace-switcher.d.ts +0 -1
- package/types/xxmachina-components-services-youtube.d.ts +0 -1
- package/types/xxmachina-components-templates-agent.d.ts +0 -1
- package/types/xxmachina-components-templates-background.d.ts +0 -1
- package/types/xxmachina-components-templates-env.d.ts +0 -1
- package/types/xxmachina-components-templates-flow-nodes-group.d.ts +0 -1
- package/types/xxmachina-components-templates-flow-nodes-issue.d.ts +0 -1
- package/types/xxmachina-components-templates-flow-nodes-task.d.ts +0 -1
- package/types/xxmachina-components-templates-flow.d.ts +0 -1
- package/types/xxmachina-components-templates-invoice-iframe.d.ts +0 -1
- package/types/xxmachina-components-templates-machina-icon-button-menu.d.ts +0 -1
- package/types/xxmachina-components-templates-scheduler.d.ts +0 -1
- package/types/xxmachina-components-templates-video.d.ts +0 -1
- package/types/xxmachina-components-validators-query.d.ts +0 -1
- package/types/xxmachina-components.d.ts +0 -1
- package/fesm2022/xxmachina-components-extras-flow.mjs.map +0 -1
- package/fesm2022/xxmachina-components-features-command.mjs.map +0 -1
- package/fesm2022/xxmachina-components-features-query.mjs.map +0 -1
- package/fesm2022/xxmachina-components-groups-command-form.mjs.map +0 -1
- package/fesm2022/xxmachina-components-groups-query-form.mjs.map +0 -1
- package/fesm2022/xxmachina-components-molecules-calendar-paginator.mjs.map +0 -1
- package/fesm2022/xxmachina-components-molecules-daily-cell.mjs.map +0 -1
- package/fesm2022/xxmachina-components-molecules-inline-edit-field.mjs.map +0 -1
- package/fesm2022/xxmachina-components-molecules-user-avatar-menu.mjs.map +0 -1
- package/fesm2022/xxmachina-components-molecules-weekly-header.mjs.map +0 -1
- package/fesm2022/xxmachina-components-molecules-workspace-selector.mjs.map +0 -1
- package/fesm2022/xxmachina-components-organisms-calendar-section.mjs.map +0 -1
- package/fesm2022/xxmachina-components-organisms-event-input-section.mjs.map +0 -1
- package/fesm2022/xxmachina-components-organisms-terminal-input-section.mjs.map +0 -1
- package/fesm2022/xxmachina-components-organisms-video-trimmer-section.mjs.map +0 -1
- package/fesm2022/xxmachina-components-organisms-xterm.mjs.map +0 -1
- package/fesm2022/xxmachina-components-pages-command-harness.mjs.map +0 -1
- package/fesm2022/xxmachina-components-pages-command.mjs.map +0 -1
- package/fesm2022/xxmachina-components-pages-query-v2.mjs.map +0 -1
- package/fesm2022/xxmachina-components-pages-query.mjs.map +0 -1
- package/fesm2022/xxmachina-components-pages-thread.mjs.map +0 -1
- package/fesm2022/xxmachina-components-routes-commands-command.routes-Ca2yVrwL.mjs.map +0 -1
- package/fesm2022/xxmachina-components-routes-commands-pages.routes-COpFeEsz.mjs.map +0 -1
- package/fesm2022/xxmachina-components-routes-commands.mjs.map +0 -1
- package/fesm2022/xxmachina-components-routes-pages.mjs.map +0 -1
- package/fesm2022/xxmachina-components-routes-preloading.mjs.map +0 -1
- package/fesm2022/xxmachina-components-routes-queries-pages.routes-CfrglCIL.mjs.map +0 -1
- package/fesm2022/xxmachina-components-routes-queries.mjs.map +0 -1
- package/fesm2022/xxmachina-components-routes-query-pages.routes-BNuONo3g.mjs.map +0 -1
- package/fesm2022/xxmachina-components-routes-query.mjs.map +0 -1
- package/fesm2022/xxmachina-components-routes-resources-pages.routes-DEu2qpeu.mjs.map +0 -1
- package/fesm2022/xxmachina-components-routes-resources-resource.routes-CWxi2agj.mjs.map +0 -1
- package/fesm2022/xxmachina-components-routes-resources.mjs.map +0 -1
- package/fesm2022/xxmachina-components-routes-side-chat.mjs.map +0 -1
- package/fesm2022/xxmachina-components-routes-side.mjs.map +0 -1
- package/fesm2022/xxmachina-components-routes-transformer.mjs.map +0 -1
- package/fesm2022/xxmachina-components-routes-transformers-pages.routes-02pVsNas.mjs.map +0 -1
- package/fesm2022/xxmachina-components-routes-transformers.mjs.map +0 -1
- package/fesm2022/xxmachina-components-routes.mjs.map +0 -1
- package/fesm2022/xxmachina-components-services-app.mjs.map +0 -1
- package/fesm2022/xxmachina-components-services-assistant.mjs.map +0 -1
- package/fesm2022/xxmachina-components-services-command.mjs.map +0 -1
- package/fesm2022/xxmachina-components-services-context.mjs.map +0 -1
- package/fesm2022/xxmachina-components-services-contract.mjs.map +0 -1
- package/fesm2022/xxmachina-components-services-debug.mjs.map +0 -1
- package/fesm2022/xxmachina-components-services-forms-query.mjs.map +0 -1
- package/fesm2022/xxmachina-components-services-forms-schedule.mjs.map +0 -1
- package/fesm2022/xxmachina-components-services-forms-variables.mjs.map +0 -1
- package/fesm2022/xxmachina-components-services-graphql.mjs.map +0 -1
- package/fesm2022/xxmachina-components-services-invoice.mjs.map +0 -1
- package/fesm2022/xxmachina-components-services-json-schema.mjs.map +0 -1
- package/fesm2022/xxmachina-components-services-message.mjs.map +0 -1
- package/fesm2022/xxmachina-components-services-openai.mjs.map +0 -1
- package/fesm2022/xxmachina-components-services-openapi.mjs.map +0 -1
- package/fesm2022/xxmachina-components-services-order.mjs.map +0 -1
- package/fesm2022/xxmachina-components-services-partner.mjs.map +0 -1
- package/fesm2022/xxmachina-components-services-query.mjs.map +0 -1
- package/fesm2022/xxmachina-components-services-recording.mjs.map +0 -1
- package/fesm2022/xxmachina-components-services-thread.mjs.map +0 -1
- package/fesm2022/xxmachina-components-services-transformer.mjs.map +0 -1
- package/fesm2022/xxmachina-components-services-version.mjs.map +0 -1
- package/fesm2022/xxmachina-components-services-workspace-switcher.mjs.map +0 -1
- package/fesm2022/xxmachina-components-services-youtube.mjs.map +0 -1
- package/fesm2022/xxmachina-components-templates-agent.mjs.map +0 -1
- package/fesm2022/xxmachina-components-templates-background.mjs.map +0 -1
- package/fesm2022/xxmachina-components-templates-env.mjs.map +0 -1
- package/fesm2022/xxmachina-components-templates-flow-nodes-group.mjs.map +0 -1
- package/fesm2022/xxmachina-components-templates-flow-nodes-issue.mjs.map +0 -1
- package/fesm2022/xxmachina-components-templates-flow-nodes-task.mjs.map +0 -1
- package/fesm2022/xxmachina-components-templates-flow.mjs.map +0 -1
- package/fesm2022/xxmachina-components-templates-invoice-iframe.mjs.map +0 -1
- package/fesm2022/xxmachina-components-templates-machina-icon-button-menu.mjs.map +0 -1
- package/fesm2022/xxmachina-components-templates-scheduler.mjs.map +0 -1
- package/fesm2022/xxmachina-components-templates-video.mjs.map +0 -1
- package/fesm2022/xxmachina-components-validators-query.mjs.map +0 -1
- package/fesm2022/xxmachina-components.mjs.map +0 -1
- package/types/xxmachina-components-extras-flow.d.ts.map +0 -1
- package/types/xxmachina-components-features-command.d.ts.map +0 -1
- package/types/xxmachina-components-features-query.d.ts.map +0 -1
- package/types/xxmachina-components-groups-command-form.d.ts.map +0 -1
- package/types/xxmachina-components-groups-query-form.d.ts.map +0 -1
- package/types/xxmachina-components-molecules-calendar-paginator.d.ts.map +0 -1
- package/types/xxmachina-components-molecules-daily-cell.d.ts.map +0 -1
- package/types/xxmachina-components-molecules-inline-edit-field.d.ts.map +0 -1
- package/types/xxmachina-components-molecules-user-avatar-menu.d.ts.map +0 -1
- package/types/xxmachina-components-molecules-weekly-header.d.ts.map +0 -1
- package/types/xxmachina-components-molecules-workspace-selector.d.ts.map +0 -1
- package/types/xxmachina-components-organisms-calendar-section.d.ts.map +0 -1
- package/types/xxmachina-components-organisms-event-input-section.d.ts.map +0 -1
- package/types/xxmachina-components-organisms-terminal-input-section.d.ts.map +0 -1
- package/types/xxmachina-components-organisms-video-trimmer-section.d.ts.map +0 -1
- package/types/xxmachina-components-organisms-xterm.d.ts.map +0 -1
- package/types/xxmachina-components-pages-command-harness.d.ts.map +0 -1
- package/types/xxmachina-components-pages-command.d.ts.map +0 -1
- package/types/xxmachina-components-pages-query-v2.d.ts.map +0 -1
- package/types/xxmachina-components-pages-query.d.ts.map +0 -1
- package/types/xxmachina-components-pages-thread.d.ts.map +0 -1
- package/types/xxmachina-components-routes-commands.d.ts.map +0 -1
- package/types/xxmachina-components-routes-pages.d.ts.map +0 -1
- package/types/xxmachina-components-routes-preloading.d.ts.map +0 -1
- package/types/xxmachina-components-routes-queries.d.ts.map +0 -1
- package/types/xxmachina-components-routes-query.d.ts.map +0 -1
- package/types/xxmachina-components-routes-resources.d.ts.map +0 -1
- package/types/xxmachina-components-routes-side-chat.d.ts.map +0 -1
- package/types/xxmachina-components-routes-side.d.ts.map +0 -1
- package/types/xxmachina-components-routes-transformer.d.ts.map +0 -1
- package/types/xxmachina-components-routes-transformers.d.ts.map +0 -1
- package/types/xxmachina-components-routes.d.ts.map +0 -1
- package/types/xxmachina-components-services-app.d.ts.map +0 -1
- package/types/xxmachina-components-services-assistant.d.ts.map +0 -1
- package/types/xxmachina-components-services-command.d.ts.map +0 -1
- package/types/xxmachina-components-services-context.d.ts.map +0 -1
- package/types/xxmachina-components-services-contract.d.ts.map +0 -1
- package/types/xxmachina-components-services-debug.d.ts.map +0 -1
- package/types/xxmachina-components-services-forms-query.d.ts.map +0 -1
- package/types/xxmachina-components-services-forms-schedule.d.ts.map +0 -1
- package/types/xxmachina-components-services-forms-variables.d.ts.map +0 -1
- package/types/xxmachina-components-services-graphql.d.ts.map +0 -1
- package/types/xxmachina-components-services-invoice.d.ts.map +0 -1
- package/types/xxmachina-components-services-json-schema.d.ts.map +0 -1
- package/types/xxmachina-components-services-message.d.ts.map +0 -1
- package/types/xxmachina-components-services-openai.d.ts.map +0 -1
- package/types/xxmachina-components-services-openapi.d.ts.map +0 -1
- package/types/xxmachina-components-services-order.d.ts.map +0 -1
- package/types/xxmachina-components-services-partner.d.ts.map +0 -1
- package/types/xxmachina-components-services-query.d.ts.map +0 -1
- package/types/xxmachina-components-services-recording.d.ts.map +0 -1
- package/types/xxmachina-components-services-thread.d.ts.map +0 -1
- package/types/xxmachina-components-services-transformer.d.ts.map +0 -1
- package/types/xxmachina-components-services-version.d.ts.map +0 -1
- package/types/xxmachina-components-services-workspace-switcher.d.ts.map +0 -1
- package/types/xxmachina-components-services-youtube.d.ts.map +0 -1
- package/types/xxmachina-components-templates-agent.d.ts.map +0 -1
- package/types/xxmachina-components-templates-background.d.ts.map +0 -1
- package/types/xxmachina-components-templates-env.d.ts.map +0 -1
- package/types/xxmachina-components-templates-flow-nodes-group.d.ts.map +0 -1
- package/types/xxmachina-components-templates-flow-nodes-issue.d.ts.map +0 -1
- package/types/xxmachina-components-templates-flow-nodes-task.d.ts.map +0 -1
- package/types/xxmachina-components-templates-flow.d.ts.map +0 -1
- package/types/xxmachina-components-templates-invoice-iframe.d.ts.map +0 -1
- package/types/xxmachina-components-templates-machina-icon-button-menu.d.ts.map +0 -1
- package/types/xxmachina-components-templates-scheduler.d.ts.map +0 -1
- package/types/xxmachina-components-templates-video.d.ts.map +0 -1
- package/types/xxmachina-components-validators-query.d.ts.map +0 -1
- package/types/xxmachina-components.d.ts.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"xxmachina-components-organisms-terminal-input-section.mjs","sources":["../../../../../packages/@xxmachina/components/src/lib/organisms/terminal-input-section/terminal-input-section.organism.ts","../../../../../packages/@xxmachina/components/src/lib/organisms/terminal-input-section/terminal-input-section.organism.html","../../../../../packages/@xxmachina/components/src/lib/organisms/terminal-input-section/xxmachina-components-organisms-terminal-input-section.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, effect, ElementRef, inject, input, output, untracked, viewChild } from '@angular/core';\n\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { Action } from '@ng-atomic/core';\nimport { SpeechService } from '@xxmachina/common/services/speech';\n\nexport enum ActionId {\n SEND = 'send',\n}\n\n@Component({\n selector: 'organisms-terminal-input-section',\n standalone: true,\n imports: [\n ReactiveFormsModule,\n MatButtonModule,\n MatIconModule,\n MatTooltipModule\n],\n templateUrl: './terminal-input-section.organism.html',\n styleUrls: ['./terminal-input-section.organism.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'organism terminal-input section' },\n})\nexport class TerminalInputSectionOrganism {\n static readonly ActionId = ActionId;\n\n readonly speechService = inject(SpeechService);\n\n readonly control = input(new FormControl('', { nonNullable: true }));\n readonly placeholder = input('Enter command...');\n readonly prefix = input('>');\n readonly clearOnSend = input(true);\n readonly enableVoiceInput = input(false);\n readonly sessionId = input<string | undefined>(undefined);\n\n readonly action = output<Action<string>>();\n\n readonly inputField = viewChild<ElementRef<HTMLTextAreaElement>>('inputField');\n\n private readonly componentId = this.speechService.generateComponentId();\n\n \n readonly isRecording = computed(() =>\n this.speechService.isListening() &&\n this.speechService.isActiveComponent(this.componentId)\n );\n\n \n private isComposing = false;\n \n private enterPressedDuringComposition = false;\n\n constructor() {\n \n effect(() => {\n if (this.enableVoiceInput() && this.speechService.isActiveComponent(this.componentId)) {\n const transcript = this.speechService.transcript();\n const text = transcript.finalized + transcript.interim;\n \n this.control().setValue(text);\n }\n });\n\n \n effect(() => {\n const autoMode = this.speechService.autoModeEnabled();\n const selectedId = this.speechService.selectedSessionId();\n const sid = this.sessionId();\n if (autoMode && sid && selectedId === sid) {\n \n untracked(() => this.speechService.activateComponent(this.componentId));\n } else if (autoMode && sid && selectedId !== sid) {\n \n untracked(() => this.send());\n }\n });\n }\n\n onCompositionStart() {\n this.isComposing = true;\n this.enterPressedDuringComposition = false;\n }\n\n onCompositionEnd() {\n this.isComposing = false;\n \n \n if (this.enterPressedDuringComposition) {\n this.enterPressedDuringComposition = false;\n setTimeout(() => this.send(), 0);\n }\n }\n\n handleKeydown(event: KeyboardEvent) {\n if (this.isComposing) {\n \n if (event.key === 'Enter' && !event.shiftKey) {\n this.enterPressedDuringComposition = true;\n }\n return;\n }\n if (event.key === 'Enter' && !event.shiftKey) {\n event.preventDefault();\n this.send();\n }\n }\n\n onInput() {\n this.adjustTextareaHeight();\n }\n\n send() {\n const value = this.control().value.trim();\n if (value) {\n this.action.emit({ id: ActionId.SEND, payload: value });\n if (this.clearOnSend()) {\n this.control().reset();\n this.resetTextareaHeight();\n \n if (this.isRecording()) {\n this.speechService.clear();\n }\n }\n }\n }\n\n private adjustTextareaHeight() {\n const textarea = this.inputField()?.nativeElement;\n if (textarea) {\n \n textarea.style.overflow = 'hidden';\n \n textarea.style.height = '0px';\n \n const newHeight = Math.min(textarea.scrollHeight, 200);\n textarea.style.height = `${newHeight}px`;\n \n textarea.style.overflow = 'auto';\n }\n }\n\n private resetTextareaHeight() {\n const textarea = this.inputField()?.nativeElement;\n if (textarea) {\n textarea.style.height = 'auto';\n }\n }\n\n focus() {\n this.inputField()?.nativeElement?.focus();\n }\n\n toggleVoiceInput() {\n this.speechService.toggle(this.componentId);\n }\n}\n","<div class=\"input-line\">\n <span class=\"input-prefix\">{{ prefix() }}</span>\n <div class=\"input-container\">\n <textarea\n #inputField\n class=\"terminal-input\"\n [formControl]=\"control()\"\n [placeholder]=\"placeholder()\"\n (keydown)=\"handleKeydown($event)\"\n (input)=\"onInput()\"\n (compositionstart)=\"onCompositionStart()\"\n (compositionend)=\"onCompositionEnd()\"\n rows=\"1\"\n ></textarea>\n </div>\n @if (enableVoiceInput() && speechService.isSupported) {\n <button\n mat-icon-button\n (click)=\"toggleVoiceInput()\"\n [matTooltip]=\"isRecording() ? '音声入力停止' : '音声入力'\"\n [class.recording]=\"isRecording()\">\n <mat-icon>{{ isRecording() ? 'mic' : 'mic_none' }}</mat-icon>\n </button>\n }\n <button mat-icon-button (click)=\"send()\" matTooltip=\"送信\">\n <mat-icon>send</mat-icon>\n </button>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;IASY;AAAZ,CAAA,UAAY,QAAQ,EAAA;AAClB,IAAA,QAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACf,CAAC,EAFW,QAAQ,KAAR,QAAQ,GAAA,EAAA,CAAA,CAAA;MAkBP,4BAA4B,CAAA;AACvC,IAAA,OAAgB,QAAQ,GAAG,QAAQ;AAE1B,IAAA,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;AAErC,IAAA,OAAO,GAAG,KAAK,CAAC,IAAI,WAAW,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,mDAAC;AAC3D,IAAA,WAAW,GAAG,KAAK,CAAC,kBAAkB,uDAAC;AACvC,IAAA,MAAM,GAAG,KAAK,CAAC,GAAG,kDAAC;AACnB,IAAA,WAAW,GAAG,KAAK,CAAC,IAAI,uDAAC;AACzB,IAAA,gBAAgB,GAAG,KAAK,CAAC,KAAK,4DAAC;AAC/B,IAAA,SAAS,GAAG,KAAK,CAAqB,SAAS,qDAAC;IAEhD,MAAM,GAAG,MAAM,EAAkB;AAEjC,IAAA,UAAU,GAAG,SAAS,CAAkC,YAAY,sDAAC;AAE7D,IAAA,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,mBAAmB,EAAE;IAG9D,WAAW,GAAG,QAAQ,CAAC,MAC9B,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;QAChC,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,aAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CACvD;IAGO,WAAW,GAAG,KAAK;IAEnB,6BAA6B,GAAG,KAAK;AAE7C,IAAA,WAAA,GAAA;QAEE,MAAM,CAAC,MAAK;AACV,YAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE,IAAI,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;gBACrF,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE;gBAClD,MAAM,IAAI,GAAG,UAAU,CAAC,SAAS,GAAG,UAAU,CAAC,OAAO;gBAEtD,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;YAC/B;AACF,QAAA,CAAC,CAAC;QAGF,MAAM,CAAC,MAAK;YACV,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE;YACrD,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,iBAAiB,EAAE;AACzD,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,EAAE;YAC5B,IAAI,QAAQ,IAAI,GAAG,IAAI,UAAU,KAAK,GAAG,EAAE;AAEzC,gBAAA,SAAS,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACzE;iBAAO,IAAI,QAAQ,IAAI,GAAG,IAAI,UAAU,KAAK,GAAG,EAAE;gBAEhD,SAAS,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YAC9B;AACF,QAAA,CAAC,CAAC;IACJ;IAEA,kBAAkB,GAAA;AAChB,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI;AACvB,QAAA,IAAI,CAAC,6BAA6B,GAAG,KAAK;IAC5C;IAEA,gBAAgB,GAAA;AACd,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK;AAGxB,QAAA,IAAI,IAAI,CAAC,6BAA6B,EAAE;AACtC,YAAA,IAAI,CAAC,6BAA6B,GAAG,KAAK;YAC1C,UAAU,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAClC;IACF;AAEA,IAAA,aAAa,CAAC,KAAoB,EAAA;AAChC,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;YAEpB,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;AAC5C,gBAAA,IAAI,CAAC,6BAA6B,GAAG,IAAI;YAC3C;YACA;QACF;QACA,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;YAC5C,KAAK,CAAC,cAAc,EAAE;YACtB,IAAI,CAAC,IAAI,EAAE;QACb;IACF;IAEA,OAAO,GAAA;QACL,IAAI,CAAC,oBAAoB,EAAE;IAC7B;IAEA,IAAI,GAAA;QACF,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE;QACzC,IAAI,KAAK,EAAE;AACT,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AACvD,YAAA,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;AACtB,gBAAA,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE;gBACtB,IAAI,CAAC,mBAAmB,EAAE;AAE1B,gBAAA,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;AACtB,oBAAA,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE;gBAC5B;YACF;QACF;IACF;IAEQ,oBAAoB,GAAA;QAC1B,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,EAAE,aAAa;QACjD,IAAI,QAAQ,EAAE;AAEZ,YAAA,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ;AAElC,YAAA,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK;AAE7B,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,YAAY,EAAE,GAAG,CAAC;YACtD,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,CAAA,EAAG,SAAS,IAAI;AAExC,YAAA,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,MAAM;QAClC;IACF;IAEQ,mBAAmB,GAAA;QACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,EAAE,aAAa;QACjD,IAAI,QAAQ,EAAE;AACZ,YAAA,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM;QAChC;IACF;IAEA,KAAK,GAAA;QACH,IAAI,CAAC,UAAU,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE;IAC3C;IAEA,gBAAgB,GAAA;QACd,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;IAC7C;uGAnIW,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAA5B,4BAA4B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kCAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,iCAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,YAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC3BzC,g9BA4BA,EAAA,MAAA,EAAA,CAAA,k7BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDXI,mBAAmB,ykBACnB,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,EACf,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,EACb,gBAAgB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,4BAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,YAAA,EAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAOP,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAdxC,SAAS;+BACE,kCAAkC,EAAA,UAAA,EAChC,IAAI,EAAA,OAAA,EACP;wBACP,mBAAmB;wBACnB,eAAe;wBACf,aAAa;wBACb;qBACH,EAAA,eAAA,EAGkB,uBAAuB,CAAC,MAAM,EAAA,IAAA,EACzC,EAAE,KAAK,EAAE,iCAAiC,EAAE,EAAA,QAAA,EAAA,g9BAAA,EAAA,MAAA,EAAA,CAAA,k7BAAA,CAAA,EAAA;2uBAgBe,YAAY,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;AEzC/E;;AAEG;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"xxmachina-components-organisms-video-trimmer-section.mjs","sources":["../../../../../packages/@xxmachina/components/src/lib/organisms/video-trimmer-section/video-trimmer-section.organism.ts","../../../../../packages/@xxmachina/components/src/lib/organisms/video-trimmer-section/xxmachina-components-organisms-video-trimmer-section.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, Directive, ElementRef, computed, inject, input } from '@angular/core';\nimport { MatSliderModule } from '@angular/material/slider';\nimport { FormBuilder, ReactiveFormsModule } from '@angular/forms';\nimport { formatSeconds } from '@ng-atomic/common/utils';\nimport { NgAtomicComponent } from '@ng-atomic/core';\nimport { fromEvent, map, startWith } from 'rxjs';\nimport { toSignal } from '@angular/core/rxjs-interop';\n\n@Directive({ standalone: true })\nexport class VideoTrimmerSectionOrganismStore {\n readonly images = input<Blob[]>([]);\n \n readonly imageSrcList = computed(() => (this.images() ?? []).map(blob => URL.createObjectURL(blob)));\n\n readonly control = input(inject(FormBuilder).group({\n duration: [0],\n start: [0],\n end: [100],\n }));\n\n readonly el = inject(ElementRef);\n readonly width$ = fromEvent(window, 'resize').pipe(\n startWith(null),\n map(() => this.el.nativeElement.clientWidth),\n );\n readonly width = toSignal(this.width$);\n\n readonly frameSize = computed(() => Math.round(this.width() / 100));\n\n readonly frames = computed(() => {\n \n const frameSize = this.frameSize();\n const images = this.imageSrcList().map(src => [...Array(this.frameSize())].map(() => src)).flat();\n console.debug('images:', images.length);\n \n const interval = Math.floor(images.length / this.frameSize());\n return images.filter((_, i) => i % interval === 0);\n });\n}\n\n@Component({\n selector: 'organisms-video-trimmer-section',\n standalone: true,\n imports: [\n MatSliderModule,\n ReactiveFormsModule,\n ],\n template: `\n <div class=\"frames\">\n @for (image of store.frames(); track image) {\n <img [style.width] [src]=\"image\" />\n }\n </div>\n <mat-slider min=\"0\" max=\"100\" discrete [displayWith]=\"formatLabel\">\n <input [formControl]=\"store.control().get(['start'])\" matSliderStartThumb>\n <input [formControl]=\"store.control().get(['end'])\" matSliderEndThumb>\n </mat-slider>\n `,\n styleUrls: ['./video-trimmer-section.organism.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [\n {\n directive: VideoTrimmerSectionOrganismStore,\n inputs: ['images', 'control'],\n }\n ]\n})\nexport class VideoTrimmerSectionOrganism extends NgAtomicComponent {\n protected store = inject(VideoTrimmerSectionOrganismStore);\n\n formatLabel = (value: number): string => {\n const seconds = Math.round(value / 100 * this.store.control().value.duration!);\n return formatSeconds(seconds);\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-organisms-xterm.mjs","sources":["../../../../../packages/@xxmachina/components/src/lib/organisms/xterm/web-link.provider.ts","../../../../../packages/@xxmachina/components/src/lib/organisms/xterm/web-links.addon.ts","../../../../../packages/@xxmachina/components/src/lib/organisms/xterm/github-link.provider.ts","../../../../../packages/@xxmachina/components/src/lib/organisms/xterm/github-links.addon.ts","../../../../../packages/@xxmachina/components/src/lib/organisms/xterm/file-link.provider.ts","../../../../../packages/@xxmachina/components/src/lib/organisms/xterm/file-links.addon.ts","../../../../../packages/@xxmachina/components/src/lib/organisms/xterm/deploy-version-suffix.ts","../../../../../packages/@xxmachina/components/src/lib/organisms/xterm/url-handoff.ts","../../../../../packages/@xxmachina/components/src/lib/organisms/xterm/open-web-proxy-for-port.ts","../../../../../packages/@xxmachina/components/src/lib/organisms/xterm/to-proxy-url.ts","../../../../../packages/@xxmachina/components/src/lib/organisms/xterm/proxy-link.provider.ts","../../../../../packages/@xxmachina/components/src/lib/organisms/xterm/proxy-links.addon.ts","../../../../../packages/@xxmachina/components/src/lib/organisms/xterm/xterm.organism.store.ts","../../../../../packages/@xxmachina/components/src/lib/organisms/xterm/fit-to-viewport.helper.ts","../../../../../packages/@xxmachina/components/src/lib/organisms/xterm/canvas-cell-metric.helper.ts","../../../../../packages/@xxmachina/components/src/lib/organisms/xterm/xterm.organism.ts","../../../../../packages/@xxmachina/components/src/lib/organisms/xterm/image.utils.ts","../../../../../packages/@xxmachina/components/src/lib/organisms/xterm/xxmachina-components-organisms-xterm.ts"],"sourcesContent":["import { ILinkProvider, ILink, Terminal } from '@xterm/xterm';\n\nconst URL_REGEX = /https?:\\/\\/[^\\s<>'\")\\[\\]]+/g;\nconst LOCALHOST_REGEX = /^https?:\\/\\/(?:localhost|127\\.0\\.0\\.1)(?::\\d+)?(?:\\/|$)/;\nconst MAX_SCAN_LINES = 30;\n\n\nexport class WebLinkProvider implements ILinkProvider {\n constructor(\n private readonly _terminal: Terminal,\n private readonly _handler: (event: MouseEvent, uri: string) => void = (_, uri) => {\n window.open(uri, '_blank', 'noopener');\n },\n ) {}\n\n provideLinks(bufferLineNumber: number, callback: (links: ILink[] | undefined) => void): void {\n const buffer = this._terminal.buffer.active;\n\n let startY = bufferLineNumber - 1;\n while (startY > 0\n && (bufferLineNumber - 1 - startY) < MAX_SCAN_LINES\n && this._isLineContinuation(startY)\n ) {\n startY--;\n }\n\n const lineTexts: string[] = [];\n let y = startY;\n do {\n const line = buffer.getLine(y);\n if (!line) break;\n lineTexts.push(line.translateToString(true));\n y++;\n } while (\n y < buffer.length\n && (y - startY) < MAX_SCAN_LINES\n && this._isLineContinuation(y)\n );\n\n const fullText = lineTexts.join('');\n\n URL_REGEX.lastIndex = 0;\n let match: RegExpExecArray | null;\n const links: ILink[] = [];\n\n while ((match = URL_REGEX.exec(fullText)) !== null) {\n if (LOCALHOST_REGEX.test(match[0])) continue;\n\n const startPos = this._offsetToPos(match.index, startY, lineTexts);\n const endPos = this._offsetToPos(match.index + match[0].length - 1, startY, lineTexts);\n if (!startPos || !endPos) continue;\n\n links.push({\n text: match[0],\n range: {\n start: { x: startPos.x + 1, y: startPos.y + 1 },\n end: { x: endPos.x + 1, y: endPos.y + 1 },\n },\n activate: (event, text) => this._handler(event, text),\n });\n }\n\n callback(links.length > 0 ? links : undefined);\n }\n\n private _isLineContinuation(lineIdx: number): boolean {\n const buffer = this._terminal.buffer.active;\n const line = buffer.getLine(lineIdx);\n if (!line) return false;\n if (line.isWrapped) return true;\n\n if (lineIdx === 0) return false;\n const prevLine = buffer.getLine(lineIdx - 1);\n if (!prevLine) return false;\n\n const prevText = prevLine.translateToString(true);\n const currentText = line.translateToString(true);\n return (\n prevText.length > 0\n && !/\\s$/.test(prevText)\n && currentText.length > 0\n && !/^\\s/.test(currentText)\n );\n }\n\n private _offsetToPos(\n offset: number, startY: number, lineTexts: string[],\n ): { x: number; y: number } | null {\n let remaining = offset;\n for (let i = 0; i < lineTexts.length; i++) {\n if (remaining < lineTexts[i].length) {\n return { x: remaining, y: startY + i };\n }\n remaining -= lineTexts[i].length;\n }\n const lastIdx = lineTexts.length - 1;\n return { x: lineTexts[lastIdx].length, y: startY + lastIdx };\n }\n}\n","import { Terminal, ITerminalAddon, IDisposable } from '@xterm/xterm';\nimport { WebLinkProvider } from './web-link.provider';\n\n\nexport class WebLinksAddon implements ITerminalAddon {\n private _linkProvider?: IDisposable;\n\n constructor(\n private readonly _handler?: (event: MouseEvent, uri: string) => void\n ) {}\n\n activate(terminal: Terminal): void {\n this._linkProvider = terminal.registerLinkProvider(\n new WebLinkProvider(terminal, this._handler)\n );\n }\n\n dispose(): void {\n this._linkProvider?.dispose();\n }\n}\n","import { ILinkProvider, ILink, Terminal } from '@xterm/xterm';\n\nexport interface GitHubLinkActivateHandler {\n (event: MouseEvent, issueNumber: number): void;\n}\n\nexport class GitHubLinkProvider implements ILinkProvider {\n \n private readonly GITHUB_ISSUE_REGEX = /(?:^|[\\s(])#(\\d+)(?!\\d)/g;\n\n constructor(\n private readonly _terminal: Terminal,\n private readonly _handler: GitHubLinkActivateHandler\n ) {}\n\n provideLinks(bufferLineNumber: number, callback: (links: ILink[] | undefined) => void): void {\n const lineIndex = bufferLineNumber - 1;\n const line = this._terminal.buffer.active.getLine(lineIndex);\n if (!line) {\n callback(undefined);\n return;\n }\n\n const text = line.translateToString(true);\n const links: ILink[] = [];\n\n this.GITHUB_ISSUE_REGEX.lastIndex = 0;\n\n let match: RegExpExecArray | null;\n while ((match = this.GITHUB_ISSUE_REGEX.exec(text)) !== null) {\n const issueNumber = parseInt(match[1], 10);\n const fullMatch = match[0];\n const issueRef = `#${match[1]}`;\n\n \n const stringStartIndex = match.index + (fullMatch.length - issueRef.length);\n\n const [, startX] = this._mapStrIdx(lineIndex, 0, stringStartIndex);\n const [, endX] = this._mapStrIdx(lineIndex, startX, issueRef.length);\n\n if (startX === -1 || endX === -1) continue;\n\n links.push({\n text: issueRef,\n range: {\n start: { x: startX + 1, y: bufferLineNumber },\n end: { x: endX, y: bufferLineNumber }\n },\n activate: (event) => {\n this._handler(event, issueNumber);\n }\n });\n }\n\n callback(links.length > 0 ? links : undefined);\n }\n\n private _mapStrIdx(lineIndex: number, rowIndex: number, stringIndex: number): [number, number] {\n const buf = this._terminal.buffer.active;\n const cell = buf.getNullCell();\n let start = rowIndex;\n\n while (stringIndex) {\n const line = buf.getLine(lineIndex);\n if (!line) return [-1, -1];\n\n for (let i = start; i < line.length; ++i) {\n line.getCell(i, cell);\n const chars = cell.getChars();\n const width = cell.getWidth();\n if (width) {\n stringIndex -= chars.length || 1;\n }\n if (stringIndex < 0) {\n return [lineIndex, i];\n }\n }\n lineIndex++;\n start = 0;\n }\n return [lineIndex, start];\n }\n}\n","import { Terminal, ITerminalAddon, IDisposable } from '@xterm/xterm';\nimport { GitHubLinkProvider, GitHubLinkActivateHandler } from './github-link.provider';\n\nexport class GitHubLinksAddon implements ITerminalAddon {\n private _terminal?: Terminal;\n private _linkProvider?: IDisposable;\n\n constructor(\n private readonly _handler: GitHubLinkActivateHandler\n ) {}\n\n activate(terminal: Terminal): void {\n this._terminal = terminal;\n this._linkProvider = terminal.registerLinkProvider(\n new GitHubLinkProvider(terminal, this._handler)\n );\n }\n\n dispose(): void {\n this._linkProvider?.dispose();\n }\n}\n","import { ILinkProvider, ILink, Terminal } from '@xterm/xterm';\n\nexport interface FileLinkActivateHandler {\n (event: MouseEvent, filePath: string, line?: number, column?: number): void;\n}\n\nexport class FileLinkProvider implements ILinkProvider {\n \n \n \n \n private readonly FILE_PATH_REGEX = /(?:^|[\\s'\"`(])((\\.\\.?\\/|\\/)?[\\w.@-]+(?:\\/[\\w.@-]+)*\\.[a-zA-Z0-9]+(?::\\d+(?::\\d+)?)?)/g;\n\n constructor(\n private readonly _terminal: Terminal,\n private readonly _handler: FileLinkActivateHandler\n ) {}\n\n provideLinks(bufferLineNumber: number, callback: (links: ILink[] | undefined) => void): void {\n \n const lineIndex = bufferLineNumber - 1;\n const line = this._terminal.buffer.active.getLine(lineIndex);\n if (!line) {\n callback(undefined);\n return;\n }\n\n const text = line.translateToString(true);\n const links: ILink[] = [];\n\n \n this.FILE_PATH_REGEX.lastIndex = 0;\n\n let match: RegExpExecArray | null;\n while ((match = this.FILE_PATH_REGEX.exec(text)) !== null) {\n const filePath = match[1];\n if (this._isLikelyFilePath(filePath) && !this._isUrl(filePath)) {\n \n const stringStartIndex = match.index + (match[0].length - match[1].length);\n\n \n const [, startX] = this._mapStrIdx(lineIndex, 0, stringStartIndex);\n const [, endX] = this._mapStrIdx(lineIndex, startX, filePath.length);\n\n if (startX === -1 || endX === -1) {\n continue;\n }\n\n links.push({\n text: filePath,\n range: {\n \n start: { x: startX + 1, y: bufferLineNumber },\n end: { x: endX, y: bufferLineNumber }\n },\n activate: (event, linkText) => {\n const parsed = this._parseFilePath(linkText);\n this._handler(event, parsed.path, parsed.line, parsed.column);\n }\n });\n }\n }\n\n callback(links.length > 0 ? links : undefined);\n }\n\n \n private _mapStrIdx(lineIndex: number, rowIndex: number, stringIndex: number): [number, number] {\n const buf = this._terminal.buffer.active;\n const cell = buf.getNullCell();\n let start = rowIndex;\n\n while (stringIndex) {\n const line = buf.getLine(lineIndex);\n if (!line) {\n return [-1, -1];\n }\n for (let i = start; i < line.length; ++i) {\n line.getCell(i, cell);\n const chars = cell.getChars();\n const width = cell.getWidth();\n if (width) {\n stringIndex -= chars.length || 1;\n }\n if (stringIndex < 0) {\n return [lineIndex, i];\n }\n }\n lineIndex++;\n start = 0;\n }\n return [lineIndex, start];\n }\n\n private _isLikelyFilePath(text: string): boolean {\n \n return /\\.[a-zA-Z0-9]+(?::\\d+(?::\\d+)?)?$/.test(text);\n }\n\n private _isUrl(text: string): boolean {\n \n return /^https?:\\/\\//.test(text) || /^file:\\/\\//.test(text);\n }\n\n private _parseFilePath(text: string): { path: string; line?: number; column?: number } {\n const match = text.match(/^(.+?)(?::(\\d+)(?::(\\d+))?)?$/);\n if (match) {\n return {\n path: match[1],\n line: match[2] ? parseInt(match[2], 10) : undefined,\n column: match[3] ? parseInt(match[3], 10) : undefined\n };\n }\n return { path: text };\n }\n}\n\n\nexport const isLikelyFilePath = (text: string): boolean => {\n return /\\.[a-zA-Z0-9]+(?::\\d+(?::\\d+)?)?$/.test(text) && !/^https?:\\/\\//.test(text);\n};\n\nexport const parseFilePath = (text: string): { path: string; line?: number; column?: number } => {\n const match = text.match(/^(.+?)(?::(\\d+)(?::(\\d+))?)?$/);\n if (match) {\n return {\n path: match[1],\n line: match[2] ? parseInt(match[2], 10) : undefined,\n column: match[3] ? parseInt(match[3], 10) : undefined\n };\n }\n return { path: text };\n};\n","import { Terminal, ITerminalAddon, IDisposable } from '@xterm/xterm';\nimport { FileLinkProvider, FileLinkActivateHandler } from './file-link.provider';\n\n\nexport class FileLinksAddon implements ITerminalAddon {\n private _terminal?: Terminal;\n private _linkProvider?: IDisposable;\n\n constructor(\n private readonly _handler: FileLinkActivateHandler\n ) {}\n\n activate(terminal: Terminal): void {\n this._terminal = terminal;\n this._linkProvider = terminal.registerLinkProvider(\n new FileLinkProvider(terminal, this._handler)\n );\n }\n\n dispose(): void {\n this._linkProvider?.dispose();\n }\n}\n","\nexport function deployVersionToHostSuffix(version: string | null | undefined): string {\n if (!version || version === 'stable') return '';\n if (version.startsWith('pr-')) return `--${version}`;\n if (version === 'dev' || version === 'develop') return '--dev';\n\n \n const match = version.match(/^v?(\\d+)\\.(\\d+)\\.(\\d+)(?:-([a-z]+)\\.(\\d+))?$/);\n if (match) {\n const [, major, minor, patch, pre, num] = match;\n let encoded = `v${major}-${minor}-${patch}`;\n if (pre) encoded += `-${pre}-${num}`;\n return `--${encoded}`;\n }\n\n return '';\n}\n","import type { ProxyEndpoints, ProxyEnvName } from './proxy-link.types';\n\n\nexport function encodeUrlHandoff(\n token: string,\n endpoints: ProxyEndpoints,\n env?: ProxyEnvName,\n): string {\n if (env) {\n \n return btoa(JSON.stringify({ t: token, env }));\n }\n return btoa(JSON.stringify({ t: token, e: endpoints }));\n}\n\n\nexport function appendUrlHandoff(\n proxyUrl: string,\n token: string,\n endpoints: ProxyEndpoints,\n env?: ProxyEnvName,\n): string {\n const u = new URL(proxyUrl);\n u.searchParams.set('lt', encodeUrlHandoff(token, endpoints, env));\n return u.toString();\n}\n","import { deployVersionToHostSuffix } from './deploy-version-suffix';\nimport { appendUrlHandoff } from './url-handoff';\nimport type { ProxyEndpoints, ProxyEnvName } from './proxy-link.types';\n\n\nexport interface OpenWebProxyOptions {\n serverUUID: string;\n port: number | string;\n path?: string;\n token?: string;\n endpoints?: ProxyEndpoints;\n \n env?: ProxyEnvName;\n deployVersion?: string | null;\n \n handler?: (event: MouseEvent | undefined, url: string) => void;\n}\n\nexport function openWebProxyForPort(opts: OpenWebProxyOptions): void {\n const { serverUUID, port, path = '/', token, endpoints, env, deployVersion } = opts;\n const handler = opts.handler ?? ((_, url) => { window.open(url, '_blank', 'noopener'); });\n\n const hostSuffix = deployVersionToHostSuffix(deployVersion);\n const baseProxyUrl = `https://${serverUUID}--${port}${hostSuffix}.proxy.machina.at${path}`;\n\n \n \n if (!token || !endpoints) {\n handler(undefined, baseProxyUrl);\n return;\n }\n\n const proxyUrlWithHandoff = appendUrlHandoff(baseProxyUrl, token, endpoints, env);\n window.open(proxyUrlWithHandoff, '_blank', 'noopener');\n}\n","import { deployVersionToHostSuffix } from './deploy-version-suffix';\n\n\nexport function toProxyUrl(\n serverUUID: string,\n localhostUrl: string,\n deployVersion?: string | null,\n): string | null {\n const match = localhostUrl.match(/^https?:\\/\\/(?:localhost|127\\.0\\.0\\.1)(?::(\\d+))?(\\/.*)?$/);\n if (!match) return null;\n const port = match[1] || '80';\n const path = match[2] || '/';\n const hostSuffix = deployVersionToHostSuffix(deployVersion);\n return `https://${serverUUID}--${port}${hostSuffix}.proxy.machina.at${path}`;\n}\n","import { ILinkProvider, ILink, Terminal } from '@xterm/xterm';\nimport { openWebProxyForPort } from './open-web-proxy-for-port';\nimport type {\n ServerUUIDGetter,\n TokenGetter,\n DeployVersionGetter,\n EndpointsGetter,\n} from './proxy-link.types';\n\n\n\nexport * from './proxy-link.types';\nexport * from './deploy-version-suffix';\nexport * from './url-handoff';\nexport * from './to-proxy-url';\nexport * from './open-web-proxy-for-port';\n\n\n\nconst LOCALHOST_URL_REGEX = /https?:\\/\\/(?:localhost|127\\.0\\.0\\.1)(?::(\\d+))?(\\/[^\\s<>'\")\\]]*)?/g;\n\nexport class ProxyLinkProvider implements ILinkProvider {\n constructor(\n private readonly _terminal: Terminal,\n private readonly _getServerUUID: ServerUUIDGetter,\n private readonly _getToken?: TokenGetter,\n private readonly _handler: (event: MouseEvent, proxyUrl: string) => void = (_, url) => {\n window.open(url, '_blank', 'noopener');\n },\n private readonly _getDeployVersion?: DeployVersionGetter,\n private readonly _getEndpoints?: EndpointsGetter,\n \n private readonly _onMissingToken?: () => void,\n \n private readonly _getEnv?: () => 'dev' | 'stg' | 'prod' | undefined,\n ) {}\n\n provideLinks(bufferLineNumber: number, callback: (links: ILink[] | undefined) => void): void {\n const lineIndex = bufferLineNumber - 1;\n const line = this._terminal.buffer.active.getLine(lineIndex);\n if (!line) {\n callback(undefined);\n return;\n }\n\n const text = line.translateToString(true);\n const links: ILink[] = [];\n\n console.log('[proxy-link] provideLinks line', bufferLineNumber, 'text:', text.substring(0, 80));\n LOCALHOST_URL_REGEX.lastIndex = 0;\n let match: RegExpExecArray | null;\n\n while ((match = LOCALHOST_URL_REGEX.exec(text)) !== null) {\n const matchedUrl = match[0];\n const port = match[1] || '80';\n const path = match[2] || '/';\n\n const startX = match.index + 1;\n const endX = match.index + matchedUrl.length;\n\n links.push({\n text: matchedUrl,\n range: {\n start: { x: startX, y: bufferLineNumber },\n end: { x: endX, y: bufferLineNumber },\n },\n \n activate: (event) => {\n const uuid = this._getServerUUID();\n \n if (!uuid) {\n console.warn('[ProxyLinkProvider] serverUUID undefined, opening localhost URL as-is (no proxy):', {\n matchedUrl,\n hasGetToken: !!this._getToken,\n hasGetEndpoints: !!this._getEndpoints,\n });\n this._handler(event, matchedUrl);\n return;\n }\n const token = this._getToken?.();\n const endpoints = this._getEndpoints?.();\n \n \n if ((!token || !endpoints) && this._onMissingToken) {\n this._onMissingToken();\n return;\n }\n openWebProxyForPort({\n serverUUID: uuid,\n port,\n path,\n token,\n endpoints,\n env: this._getEnv?.(),\n deployVersion: this._getDeployVersion?.(),\n handler: (_e, url) => this._handler(event, url),\n });\n },\n });\n }\n\n callback(links.length > 0 ? links : undefined);\n }\n}\n","import { Terminal, ITerminalAddon, IDisposable } from '@xterm/xterm';\nimport { ProxyLinkProvider, ServerUUIDGetter, TokenGetter, DeployVersionGetter, EndpointsGetter } from './proxy-link.provider';\n\n\nexport class ProxyLinksAddon implements ITerminalAddon {\n private _linkProvider?: IDisposable;\n\n constructor(\n private readonly _getServerUUID: ServerUUIDGetter,\n private readonly _getToken?: TokenGetter,\n private readonly _handler?: (event: MouseEvent, proxyUrl: string) => void,\n private readonly _getDeployVersion?: DeployVersionGetter,\n private readonly _getEndpoints?: EndpointsGetter,\n \n private readonly _onMissingToken?: () => void,\n \n private readonly _getEnv?: () => 'dev' | 'stg' | 'prod' | undefined,\n ) {}\n\n activate(terminal: Terminal): void {\n this._linkProvider = terminal.registerLinkProvider(\n new ProxyLinkProvider(\n terminal,\n this._getServerUUID,\n this._getToken,\n this._handler,\n this._getDeployVersion,\n this._getEndpoints,\n this._onMissingToken,\n this._getEnv,\n ),\n );\n }\n\n dispose(): void {\n this._linkProvider?.dispose();\n }\n}\n","import { Directive, InjectionToken, input, inject } from '@angular/core';\nimport { _computed, InjectableComponent } from '@ng-atomic/core';\nimport { makeDI } from '@ng-atomic/common/services/ui';\nimport type { ProxyEndpoints } from './proxy-link.provider';\n\nexport enum XtermActionId {\n DATA_INPUT = 'xterm:data-input',\n RESIZED = 'xterm:resized',\n GITHUB_LINK_CLICK = 'xterm:github-link-click',\n FILE_LINK_CLICK = 'xterm:file-link-click',\n FOCUS_INPUT_REQUEST = 'xterm:focus-input-request',\n}\n\n\nexport interface XtermSessionContext {\n \n readonly getServerUUID?: () => string | undefined;\n \n readonly getProxyToken?: () => string | undefined;\n \n readonly getDeployVersion?: () => string | null | undefined;\n \n readonly getProxyEndpoints?: () => ProxyEndpoints | undefined;\n \n readonly getProxyEnv?: () => 'dev' | 'stg' | 'prod' | undefined;\n \n readonly onMissingToken?: () => void;\n}\n\nexport const XTERM_SESSION_CONTEXT = new InjectionToken<XtermSessionContext>('XTERM_SESSION_CONTEXT');\n\n@Directive({ standalone: true, selector: 'organisms-xterm' })\nexport class XtermOrganismStore extends InjectableComponent {\n static readonly DI = makeDI(XtermOrganismStore, () => () => ({\n data: '',\n interactive: false,\n queryResult: '',\n useInteractiveTheme: false,\n }), ['components', 'organisms', 'xterm']);\n\n readonly config = XtermOrganismStore.DI.injectConfig();\n readonly data = input<string | undefined>(undefined);\n readonly interactive = input<boolean>(false);\n readonly queryResult = input<string>('');\n readonly useInteractiveTheme = input<boolean>(false);\n readonly totalWritten = input<number>(0);\n\n \n readonly sessionContext = inject(XTERM_SESSION_CONTEXT, { optional: true });\n\n constructor() {\n super();\n XtermOrganismStore.DI.initialize(this);\n }\n}\n","\n\nexport interface FitToViewportInput {\n \n viewportElement: HTMLElement;\n \n cellWidth: number;\n \n cellHeight: number;\n}\n\nexport interface FitToViewportResult {\n cols: number;\n rows: number;\n}\n\n\nexport const MIN_VIEWPORT_COLS = 2;\nexport const MIN_VIEWPORT_ROWS = 1;\n\n\nexport const MAX_VIEWPORT_COLS = 500;\nexport const MAX_VIEWPORT_ROWS = 200;\n\n\nexport const CANONICAL_FONT_FAMILY = '\"FiraCode Nerd Font\", \"Fira Code\", \"SF Mono\", \"Cascadia Code\", \"Consolas\", \"Courier New\", monospace';\nexport const CANONICAL_FONT_SIZE_PX = 14;\nexport const CANONICAL_LINE_HEIGHT = 1.2;\n\n\nconst DEFAULT_CELL_WIDTH = 8.4;\nconst DEFAULT_CELL_HEIGHT = CANONICAL_FONT_SIZE_PX * CANONICAL_LINE_HEIGHT; \n\n\nexport function measureCellMetric(): { cellWidth: number; cellHeight: number } {\n try {\n const doc = document;\n if (!doc?.body) return { cellWidth: DEFAULT_CELL_WIDTH, cellHeight: DEFAULT_CELL_HEIGHT };\n const probe = doc.createElement('span');\n probe.textContent = 'M';\n probe.style.position = 'absolute';\n probe.style.visibility = 'hidden';\n probe.style.whiteSpace = 'pre';\n probe.style.left = '-9999px';\n probe.style.top = '-9999px';\n \n probe.style.fontFamily = CANONICAL_FONT_FAMILY;\n probe.style.fontSize = `${CANONICAL_FONT_SIZE_PX}px`;\n probe.style.lineHeight = String(CANONICAL_LINE_HEIGHT);\n doc.body.appendChild(probe);\n const rect = probe.getBoundingClientRect();\n doc.body.removeChild(probe);\n \n const cellWidth = rect.width >= 3 ? rect.width : DEFAULT_CELL_WIDTH;\n const cellHeight = rect.height >= 8 ? rect.height : DEFAULT_CELL_HEIGHT;\n return { cellWidth, cellHeight };\n } catch {\n return { cellWidth: DEFAULT_CELL_WIDTH, cellHeight: DEFAULT_CELL_HEIGHT };\n }\n}\n\n\nexport function computeFitToViewport(input: FitToViewportInput): FitToViewportResult | null {\n const { viewportElement, cellWidth, cellHeight } = input;\n if (!cellWidth || !cellHeight || cellWidth <= 0 || cellHeight <= 0) return null;\n const w = viewportElement.offsetWidth;\n const h = viewportElement.offsetHeight;\n if (w <= 0 || h <= 0) return null;\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n return {\n cols: Math.min(MAX_VIEWPORT_COLS, Math.max(MIN_VIEWPORT_COLS, Math.floor(w / cellWidth))),\n rows: Math.min(MAX_VIEWPORT_ROWS, Math.max(MIN_VIEWPORT_ROWS, Math.floor(h / cellHeight))),\n };\n}\n\n","\n\nimport { Terminal } from '@xterm/xterm';\nimport { CANONICAL_FONT_FAMILY, CANONICAL_FONT_SIZE_PX, CANONICAL_LINE_HEIGHT } from './fit-to-viewport.helper';\n\ninterface CanvasCellMetric {\n cellWidth: number;\n cellHeight: number;\n}\n\nlet cached: CanvasCellMetric | null = null;\n\n\nexport function clearCanvasCellMetricCache(): void {\n cached = null;\n}\n\n\nexport function recordCanvasCellMetric(metric: { cellWidth: number; cellHeight: number }): void {\n \n \n if (cached) return;\n if (metric.cellWidth > 0 && metric.cellHeight > 0) {\n cached = { cellWidth: metric.cellWidth, cellHeight: metric.cellHeight };\n }\n}\n\n\nconst CELL_WIDTH_RATIO = 0.615; \nconst CELL_HEIGHT_RATIO = 1.43; \n\nexport function getCanvasCellMetric(fontSize = CANONICAL_FONT_SIZE_PX): CanvasCellMetric {\n if (cached) return cached;\n cached = {\n \n \n \n \n \n \n \n cellWidth: fontSize * CELL_WIDTH_RATIO,\n \n \n \n \n \n \n \n \n \n cellHeight: Math.round(fontSize * CELL_HEIGHT_RATIO),\n };\n return cached;\n}\n\n\nfunction _legacyMeasureViaTempTerminal(fontSize = CANONICAL_FONT_SIZE_PX): CanvasCellMetric {\n const fallback: CanvasCellMetric = {\n cellWidth: fontSize * 0.6,\n cellHeight: fontSize * CANONICAL_LINE_HEIGHT,\n };\n if (typeof document === 'undefined') return fallback;\n let container: HTMLDivElement | null = null;\n let terminal: Terminal | null = null;\n try {\n container = document.createElement('div');\n container.style.position = 'absolute';\n container.style.visibility = 'hidden';\n container.style.pointerEvents = 'none';\n container.style.width = '500px';\n container.style.height = '500px';\n container.style.left = '-9999px';\n container.style.top = '-9999px';\n document.body.appendChild(container);\n terminal = new Terminal({\n fontSize,\n fontFamily: CANONICAL_FONT_FAMILY,\n lineHeight: CANONICAL_LINE_HEIGHT,\n rows: 24,\n cols: 80,\n });\n terminal.open(container);\n const internal = terminal as unknown as {\n _core?: { _renderService?: { dimensions?: { css?: { cell?: { width?: number; height?: number } } } } };\n };\n const cell = internal._core?._renderService?.dimensions?.css?.cell;\n const cellWidth = cell?.width;\n const cellHeight = cell?.height;\n if (typeof cellWidth === 'number' && typeof cellHeight === 'number' && cellWidth > 0 && cellHeight > 0) {\n \n \n \n \n \n cached = { cellWidth: Math.ceil(cellWidth), cellHeight: Math.ceil(cellHeight) };\n return cached;\n }\n return fallback;\n } catch {\n return fallback;\n } finally {\n try { terminal?.dispose(); } catch { void 0; }\n try { if (container?.parentElement) container.parentElement.removeChild(container); } catch { void 0; }\n }\n}\n","import { Component, ElementRef, AfterViewInit, OnDestroy, ChangeDetectionStrategy, viewChild, output, effect, inject, signal } from '@angular/core';\nimport { Terminal, IDisposable } from '@xterm/xterm';\nimport { FitAddon } from '@xterm/addon-fit';\nimport { WebLinksAddon } from './web-links.addon';\nimport { NgAtomicComponent } from '@ng-atomic/core';\nimport { GitHubLinksAddon } from './github-links.addon';\nimport { FileLinksAddon } from './file-links.addon';\nimport { ProxyLinksAddon } from './proxy-links.addon';\nimport { XtermOrganismStore, XtermActionId } from './xterm.organism.store';\nimport { computeFitToViewport, measureCellMetric } from './fit-to-viewport.helper';\nimport { readXtermInternalCellMetric } from './xterm-internal-cell-metric.helper';\nimport { getCanvasCellMetric, recordCanvasCellMetric } from './canvas-cell-metric.helper';\n\n\ntype ImageAddon = any;\ntype IImageAddonOptions = any;\n\n\nconst MIN_CONTAINER_SIZE = 10;\n\n\n\nexport const DISPLAY_THEME = {\n background: '#0a0a0a',\n foreground: '#66d9ef',\n cursor: '#ff79c6',\n cyan: '#5bc5ff',\n brightCyan: '#8ad7ff',\n green: '#33ff33',\n brightGreen: '#66ff66',\n magenta: '#ff79c6',\n brightMagenta: '#ff79c6',\n yellow: '#f1fa8c',\n brightYellow: '#ffb86c',\n red: '#ff5555',\n brightRed: '#ff5555'\n};\n\n\nexport const INTERACTIVE_THEME = {\n background: '#0a0a0a',\n foreground: '#e0e0e0',\n cursor: '#e0e0e0',\n black: '#000000',\n red: '#cd3131',\n green: '#33ff33',\n yellow: '#e5e510',\n blue: '#2472c8',\n magenta: '#bc3fbc',\n cyan: '#5bc5ff',\n white: '#e5e5e5',\n brightBlack: '#666666',\n brightRed: '#f14c4c',\n brightGreen: '#66ff66',\n brightYellow: '#f5f543',\n brightBlue: '#3b8eea',\n brightMagenta: '#d670d6',\n brightCyan: '#8ad7ff',\n brightWhite: '#e5e5e5',\n};\n\n@Component({\n selector: 'organisms-xterm',\n standalone: true,\n imports: [],\n template: `<div #container class=\"terminal-viewport xterm-wrapper\"></div>`,\n styleUrls: ['./xterm.organism.css', './xterm.organism.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [{\n directive: XtermOrganismStore,\n inputs: ['data', 'interactive', 'useInteractiveTheme', 'totalWritten'],\n }],\n})\nexport class XtermOrganism extends NgAtomicComponent implements AfterViewInit, OnDestroy {\n readonly container = viewChild.required<ElementRef<HTMLDivElement>>('container');\n protected readonly store = inject(XtermOrganismStore);\n private readonly hostElement = inject(ElementRef<HTMLElement>);\n\n readonly terminalReady = output<Terminal>();\n readonly githubLinkClick = output<number>();\n\n private terminal!: Terminal;\n private fitAddon!: FitAddon;\n private imageAddon!: ImageAddon;\n private githubLinksAddon!: GitHubLinksAddon;\n private fileLinksAddon!: FileLinksAddon;\n private resizeObserver?: ResizeObserver;\n private lastDataLength = 0;\n \n private lastProcessedLength = 0;\n private readonly terminalInitialized = signal(false);\n \n private initSkippedDueToSize = false;\n \n private readonly disposables: IDisposable[] = [];\n \n private stableTimer: ReturnType<typeof setTimeout> | null = null;\n private resizeTimer: ReturnType<typeof setTimeout> | null = null;\n private fallbackTimer: ReturnType<typeof setTimeout> | null = null;\n\n constructor() {\n super();\n\n \n effect(() => {\n const isInitialized = this.terminalInitialized();\n const rawData = this.store.data();\n const totalWritten = this.store.totalWritten();\n const dataIsFunction = typeof rawData === 'function';\n const data = dataIsFunction ? (rawData as any)() : rawData;\n if (!isInitialized) return;\n\n \n if (totalWritten > 0) {\n this.writeDataWithTotalWritten(data ?? '', totalWritten);\n } else {\n \n this.writeDataToTerminal(data);\n }\n });\n\n \n \n effect(() => {\n const isInteractive = this.store.interactive();\n if (isInteractive) {\n this.hostElement.nativeElement.classList.add('interactive');\n } else {\n this.hostElement.nativeElement.classList.remove('interactive');\n }\n });\n\n \n effect(() => {\n const isInitialized = this.terminalInitialized();\n const isInteractive = this.store.interactive();\n if (!isInitialized || !this.terminal) return;\n\n \n this.terminal.options.cursorBlink = isInteractive;\n });\n }\n\n private writeDataToTerminal(data: string | undefined): void {\n \n \n \n if (data === undefined || data === null || data === '') {\n return;\n }\n \n if (data.length >= this.lastDataLength) {\n const newPart = data.slice(this.lastDataLength);\n if (newPart) {\n this.terminal.write(newPart);\n }\n this.lastDataLength = data.length;\n } else {\n \n this.terminal.reset();\n this.terminal.write(data);\n this.lastDataLength = data.length;\n }\n }\n\n \n private writeDataWithTotalWritten(data: string, totalWritten: number): void {\n if (!data) return;\n\n const newBytesCount = totalWritten - this.lastProcessedLength;\n\n if (newBytesCount <= 0) {\n if (totalWritten < this.lastProcessedLength) {\n \n this.terminal.reset();\n this.terminal.write(data);\n this.lastProcessedLength = totalWritten;\n }\n return;\n }\n\n \n \n let written = '';\n if (newBytesCount >= data.length) {\n \n \n \n \n if (hasVisibleContent(data)) {\n this.terminal.reset();\n }\n this.terminal.write(data);\n written = data;\n } else {\n \n \n \n const sliceN = Math.min(newBytesCount, data.length);\n const newContent = data.slice(-sliceN);\n if (newContent) {\n this.terminal.write(newContent);\n written = newContent;\n }\n }\n this.lastProcessedLength = totalWritten;\n\n \n \n \n \n \n \n if (hasDisplayClearWithoutScrollbackClear(written)) {\n this.terminal.clear();\n }\n }\n\n ngAfterViewInit() {\n const containerElement = this.container().nativeElement;\n\n \n \n if (containerElement.offsetWidth < MIN_CONTAINER_SIZE || containerElement.offsetHeight < MIN_CONTAINER_SIZE) {\n this.initSkippedDueToSize = true;\n \n this.resizeObserver = new ResizeObserver(() => {\n if (containerElement.offsetWidth >= MIN_CONTAINER_SIZE && containerElement.offsetHeight >= MIN_CONTAINER_SIZE) {\n this.resizeObserver?.disconnect();\n this.resizeObserver = undefined;\n this.initSkippedDueToSize = false;\n this.initializeTerminal(containerElement);\n }\n });\n this.resizeObserver.observe(containerElement);\n return;\n }\n\n this.initializeTerminal(containerElement);\n }\n\n private initializeTerminal(containerElement: HTMLDivElement): void {\n const isInteractive = this.store.interactive();\n const useInteractiveTheme = this.store.useInteractiveTheme() || isInteractive;\n\n this.terminal = new Terminal({\n theme: useInteractiveTheme ? INTERACTIVE_THEME : DISPLAY_THEME,\n scrollback: isInteractive ? 10000 : 1000,\n fontSize: useInteractiveTheme ? 14 : 12,\n fontFamily: '\"FiraCode Nerd Font\", \"Fira Code\", \"SF Mono\", \"Cascadia Code\", \"Consolas\", \"Courier New\", monospace',\n lineHeight: 1.2,\n allowTransparency: false,\n disableStdin: !isInteractive,\n cursorBlink: isInteractive,\n cursorStyle: 'block',\n convertEol: true,\n rows: 24\n });\n\n this.fitAddon = new FitAddon();\n this.terminal.loadAddon(this.fitAddon);\n this.terminal.loadAddon(new WebLinksAddon());\n\n \n \n this.loadImageAddon();\n\n this.githubLinksAddon = new GitHubLinksAddon((event, issueNumber) => {\n this.dispatch({ id: XtermActionId.GITHUB_LINK_CLICK, payload: issueNumber });\n });\n this.terminal.loadAddon(this.githubLinksAddon);\n\n this.fileLinksAddon = new FileLinksAddon((event, filePath, line, column) => {\n if (event.metaKey || event.ctrlKey) {\n this.dispatch({ id: XtermActionId.FILE_LINK_CLICK, payload: { filePath, line, column } });\n }\n });\n this.terminal.loadAddon(this.fileLinksAddon);\n\n \n \n const ctx = this.store.sessionContext;\n this.terminal.loadAddon(new ProxyLinksAddon(\n ctx?.getServerUUID ?? (() => undefined),\n ctx?.getProxyToken,\n undefined,\n ctx?.getDeployVersion,\n ctx?.getProxyEndpoints,\n ctx?.onMissingToken,\n \n \n ctx?.getProxyEnv,\n ));\n\n this.terminal.open(containerElement);\n\n \n \n \n \n \n const core = (this.terminal as unknown as { _core?: { _charSizeService?: { onCharSizeChange?: (cb: () => void) => { dispose: () => void } } } })._core;\n const charSizeChange = core?._charSizeService?.onCharSizeChange;\n if (typeof charSizeChange === 'function') {\n const disp = charSizeChange.call(core!._charSizeService, () => {\n if (!this.terminal) return;\n this.fitToViewport();\n if (isInteractive) {\n this.dispatch({ id: XtermActionId.RESIZED, payload: { cols: this.cols, rows: this.rows } });\n }\n });\n if (disp && typeof disp.dispose === 'function') {\n this.disposables.push(disp);\n }\n }\n\n \n if (isInteractive) {\n this.disposables.push(\n this.terminal.onData((data) => {\n this.dispatch({ id: XtermActionId.DATA_INPUT, payload: data });\n }),\n this.terminal.onResize(({ cols, rows }) => this.dispatch({ id: XtermActionId.RESIZED, payload: { cols, rows } })),\n );\n }\n\n \n \n this.resizeObserver = new ResizeObserver(() => {\n try {\n if (!this.terminalInitialized()) {\n this.fitToViewport();\n \n if (this.stableTimer) clearTimeout(this.stableTimer);\n this.stableTimer = setTimeout(() => {\n this.stableTimer = null;\n this.fitToViewport();\n this.markInitialized(isInteractive);\n }, 150);\n } else {\n \n \n \n \n \n if (this.resizeTimer) clearTimeout(this.resizeTimer);\n this.resizeTimer = setTimeout(() => {\n this.resizeTimer = null;\n this.fitToViewport();\n if (isInteractive) {\n this.dispatch({ id: XtermActionId.RESIZED, payload: { cols: this.cols, rows: this.rows } });\n }\n }, 300);\n }\n } catch (e) {\n console.warn('Failed to fit terminal:', e);\n }\n });\n this.resizeObserver.observe(containerElement);\n\n \n this.fallbackTimer = setTimeout(() => {\n this.fallbackTimer = null;\n if (!this.terminalInitialized()) {\n this.fitToViewport();\n this.markInitialized(isInteractive);\n }\n }, 500);\n }\n\n \n private fitToViewport(): void {\n if (!this.terminal) return;\n \n \n const viewportElement = this.container().nativeElement;\n \n \n \n \n \n \n \n \n \n const sharedCanvas = getCanvasCellMetric();\n const probe = measureCellMetric();\n const cellWidth = sharedCanvas.cellWidth > 0 ? sharedCanvas.cellWidth : probe.cellWidth;\n const cellHeight = sharedCanvas.cellHeight > 0 ? sharedCanvas.cellHeight : probe.cellHeight;\n const result = computeFitToViewport({ viewportElement, cellWidth, cellHeight });\n if (!result) {\n \n this.fitAddon.fit();\n return;\n }\n if (result.cols !== this.terminal.cols || result.rows !== this.terminal.rows) {\n this.terminal.resize(result.cols, result.rows);\n }\n }\n\n ngOnDestroy() {\n \n if (this.stableTimer) clearTimeout(this.stableTimer);\n if (this.resizeTimer) clearTimeout(this.resizeTimer);\n if (this.fallbackTimer) clearTimeout(this.fallbackTimer);\n\n this.resizeObserver?.disconnect();\n\n \n for (const d of this.disposables) d.dispose();\n this.disposables.length = 0;\n\n \n if (typeof window !== 'undefined' && (window as any).__XTERM_INSTANCES__) {\n const instances = (window as any).__XTERM_INSTANCES__ as Terminal[];\n const index = instances.indexOf(this.terminal);\n if (index !== -1) {\n instances.splice(index, 1);\n }\n }\n\n this.terminal?.dispose();\n }\n\n private markInitialized(isInteractive: boolean): void {\n if (this.terminalInitialized()) return;\n this.terminalInitialized.set(true);\n this.terminalReady.emit(this.terminal);\n\n \n if (typeof window !== 'undefined') {\n (window as any).__XTERM_INSTANCES__ = (window as any).__XTERM_INSTANCES__ || [];\n (window as any).__XTERM_INSTANCES__.push(this.terminal);\n }\n\n \n if (isInteractive) {\n this.dispatch({ id: XtermActionId.RESIZED, payload: { cols: this.cols, rows: this.rows } });\n }\n }\n\n private async loadImageAddon(): Promise<void> {\n try {\n const { ImageAddon } = await import('@xterm/addon-image');\n const imageAddonOptions = {\n enableSizeReports: true,\n sixelSupport: true,\n sixelScrolling: true,\n sixelPaletteLimit: 256,\n };\n this.imageAddon = new ImageAddon(imageAddonOptions);\n this.terminal.loadAddon(this.imageAddon);\n } catch (e) {\n \n console.debug('ImageAddon not available:', e);\n }\n }\n\n \n public write(text: string): void {\n this.terminal?.write(text);\n }\n\n public writeln(text: string): void {\n this.terminal?.writeln(text);\n }\n\n public clear(): void {\n this.terminal?.clear();\n }\n\n public scrollToBottom(): void {\n this.terminal?.scrollToBottom();\n }\n\n public scrollToTop(): void {\n this.terminal?.scrollToTop();\n }\n\n public scrollLines(lines: number): void {\n this.terminal?.scrollLines(lines);\n }\n\n \n public focus(): void {\n this.terminal?.focus();\n const helperTextarea = this.container().nativeElement.querySelector(\n '.xterm-helper-textarea'\n ) as HTMLTextAreaElement | null;\n helperTextarea?.focus();\n }\n\n public fit(): void {\n this.fitToViewport();\n \n \n if (this.terminalInitialized() && this.terminal) {\n this.dispatch({ id: XtermActionId.RESIZED, payload: { cols: this.cols, rows: this.rows } });\n }\n }\n\n public get cols(): number {\n return this.terminal?.cols ?? 80;\n }\n\n public get rows(): number {\n return this.terminal?.rows ?? 24;\n }\n\n public getTerminal(): Terminal | undefined {\n \n return this.terminalInitialized() ? this.terminal : undefined;\n }\n\n \n public displayImage(base64Data: string, options?: {\n width?: string | number; \n height?: string | number; \n preserveAspectRatio?: boolean;\n name?: string;\n }): void {\n if (!this.terminal) return;\n\n const args: string[] = ['inline=1'];\n\n if (options?.width) {\n args.push(`width=${options.width}`);\n }\n if (options?.height) {\n args.push(`height=${options.height}`);\n }\n if (options?.preserveAspectRatio !== undefined) {\n args.push(`preserveAspectRatio=${options.preserveAspectRatio ? 1 : 0}`);\n }\n if (options?.name) {\n args.push(`name=${btoa(options.name)}`);\n }\n\n \n const escapeSequence = `\\x1b]1337;File=${args.join(';')}:${base64Data}\\x07`;\n this.terminal.write(escapeSequence);\n }\n\n \n public getImageAddon(): ImageAddon | undefined {\n return this.imageAddon;\n }\n}\n\n\nfunction hasVisibleContent(s: string): boolean {\n const stripped = s\n // eslint-disable-next-line no-control-regex -- ANSI CSI / OSC を strip するため意図的に \\x1b / \\x07 を match\n .replace(/\\x1b\\[[\\d;?]*[a-zA-Z]/g, '')\n // eslint-disable-next-line no-control-regex -- ANSI OSC を strip するため意図的に \\x1b / \\x07 を match\n .replace(/\\x1b\\][^\\x07\\x1b]*[\\x07\\x1b]/g, '');\n return /\\S/.test(stripped);\n}\n\n\nfunction hasDisplayClearWithoutScrollbackClear(s: string): boolean {\n return s.includes('\\x1b[2J') && !s.includes('\\x1b[3J');\n}\n","\n\nexport interface SvgToSixelOptions {\n width?: number;\n height?: number;\n backgroundColor?: string;\n textColor?: string;\n}\n\n\nexport async function generateAsciiArt(text: string, font = 'ANSI Shadow'): Promise<string> {\n try {\n const figlet = await import('figlet');\n return new Promise((resolve, reject) => {\n figlet.default.text(text, { font: font as any }, (err, result) => {\n if (err) {\n reject(err);\n return;\n }\n resolve(result || '');\n });\n });\n } catch (e) {\n \n console.debug('figlet not available:', e);\n return text;\n }\n}\n\n\nexport function asciiArtToSvg(\n asciiArt: string,\n options: { textColor?: string; fontSize?: number } = {}\n): string {\n const { textColor = '#00FFFF', fontSize = 14 } = options;\n\n const lines = asciiArt.split('\\n');\n const maxLineLength = Math.max(...lines.map(l => l.length));\n\n \n const charWidth = fontSize * 0.65;\n const lineHeight = fontSize * 1.4;\n const padding = 40;\n const width = Math.ceil(maxLineLength * charWidth) + padding;\n const height = Math.ceil(lines.length * lineHeight) + padding;\n\n \n const textElements = lines.map((line, i) => {\n \n const escapedLine = line\n .replace(/&/g, '&')\n .replace(/</g, '<')\n .replace(/>/g, '>')\n .replace(/\"/g, '"');\n\n return `<text x=\"20\" y=\"${20 + (i + 1) * lineHeight}\" fill=\"${textColor}\" xml:space=\"preserve\">${escapedLine}</text>`;\n }).join('\\n ');\n\n return `<svg width=\"${width}\" height=\"${height}\" xmlns=\"http://www.w3.org/2000/svg\">\n <style>text { font-family: 'Courier New', Consolas, monospace; font-size: ${fontSize}px; white-space: pre; }</style>\n ${textElements}\n</svg>`;\n}\n\n\nexport async function svgToSixel(\n svgString: string,\n options: SvgToSixelOptions = {}\n): Promise<string> {\n const { width = 400, height = 200, backgroundColor } = options;\n\n return new Promise((resolve, reject) => {\n const canvas = document.createElement('canvas');\n canvas.width = width;\n canvas.height = height;\n const ctx = canvas.getContext('2d');\n\n if (!ctx) {\n reject(new Error('Failed to get canvas context'));\n return;\n }\n\n \n if (backgroundColor) {\n ctx.fillStyle = backgroundColor;\n ctx.fillRect(0, 0, width, height);\n }\n\n const img = new Image();\n const blob = new Blob([svgString], { type: 'image/svg+xml;charset=utf-8' });\n const url = URL.createObjectURL(blob);\n\n img.onload = () => {\n ctx.drawImage(img, 0, 0, width, height);\n URL.revokeObjectURL(url);\n\n const imageData = ctx.getImageData(0, 0, width, height);\n const sixelData = imageDataToSixel(imageData);\n resolve(sixelData);\n };\n\n img.onerror = (error) => {\n URL.revokeObjectURL(url);\n reject(error);\n };\n\n img.src = url;\n });\n}\n\n\nfunction imageDataToSixel(imageData: ImageData): string {\n const { width, height, data } = imageData;\n\n \n const palette = buildColorPalette(data, 16);\n const colorMap = new Map<string, number>();\n palette.forEach((color, index) => {\n colorMap.set(color, index);\n });\n\n \n let sixel = '\\x1bPq';\n\n \n palette.forEach((color, index) => {\n const [r, g, b] = hexToRgb(color);\n const rPct = Math.round((r / 255) * 100);\n const gPct = Math.round((g / 255) * 100);\n const bPct = Math.round((b / 255) * 100);\n sixel += `#${index};2;${rPct};${gPct};${bPct}`;\n });\n\n \n for (let bandY = 0; bandY < height; bandY += 6) {\n for (let colorIdx = 0; colorIdx < palette.length; colorIdx++) {\n const color = palette[colorIdx];\n let rowData = '';\n let hasPixels = false;\n\n rowData += `#${colorIdx}`;\n\n for (let x = 0; x < width; x++) {\n let sixelValue = 0;\n\n for (let dy = 0; dy < 6; dy++) {\n const y = bandY + dy;\n if (y >= height) continue;\n\n const pixelIndex = (y * width + x) * 4;\n const r = data[pixelIndex];\n const g = data[pixelIndex + 1];\n const b = data[pixelIndex + 2];\n const a = data[pixelIndex + 3];\n\n if (a < 128) continue;\n\n const pixelColor = rgbToHex(r, g, b);\n const nearestColor = findNearestColor(pixelColor, palette);\n\n if (nearestColor === color) {\n sixelValue |= (1 << dy);\n hasPixels = true;\n }\n }\n\n rowData += String.fromCharCode(63 + sixelValue);\n }\n\n if (hasPixels) {\n sixel += rowData;\n sixel += '$';\n }\n }\n\n if (bandY + 6 < height) {\n sixel += '-';\n }\n }\n\n sixel += '\\x1b\\\\';\n return sixel;\n}\n\nfunction buildColorPalette(data: Uint8ClampedArray, maxColors: number): string[] {\n const colorCounts = new Map<string, number>();\n\n for (let i = 0; i < data.length; i += 4) {\n const r = data[i];\n const g = data[i + 1];\n const b = data[i + 2];\n const a = data[i + 3];\n\n if (a < 128) continue;\n\n const qr = Math.floor(r / 16) * 16;\n const qg = Math.floor(g / 16) * 16;\n const qb = Math.floor(b / 16) * 16;\n const color = rgbToHex(qr, qg, qb);\n\n colorCounts.set(color, (colorCounts.get(color) || 0) + 1);\n }\n\n return Array.from(colorCounts.entries())\n .sort((a, b) => b[1] - a[1])\n .slice(0, maxColors)\n .map(([color]) => color);\n}\n\nfunction rgbToHex(r: number, g: number, b: number): string {\n return `#${r.toString(16).padStart(2, '0')}${g.toString(16).padStart(2, '0')}${b.toString(16).padStart(2, '0')}`;\n}\n\nfunction hexToRgb(hex: string): [number, number, number] {\n const match = hex.match(/^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})$/i);\n if (!match) return [0, 0, 0];\n return [parseInt(match[1], 16), parseInt(match[2], 16), parseInt(match[3], 16)];\n}\n\nfunction findNearestColor(targetHex: string, palette: string[]): string {\n const [tr, tg, tb] = hexToRgb(targetHex);\n let nearest = palette[0];\n let minDist = Infinity;\n\n for (const color of palette) {\n const [r, g, b] = hexToRgb(color);\n const dist = (tr - r) ** 2 + (tg - g) ** 2 + (tb - b) ** 2;\n if (dist < minDist) {\n minDist = dist;\n nearest = color;\n }\n }\n\n return nearest;\n}\n\n\nexport async function getMachinaAsciiArtSixel(\n options: SvgToSixelOptions = {}\n): Promise<string> {\n \n const machinaArt = await generateAsciiArt('MACHINA', 'ANSI Shadow');\n\n \n const fontSize = 14;\n const svg = asciiArtToSvg(machinaArt, {\n textColor: options.textColor || '#00FFFF',\n fontSize\n });\n\n \n const lines = machinaArt.split('\\n');\n const maxLineLength = Math.max(...lines.map(l => l.length));\n const charWidth = fontSize * 0.65;\n const lineHeight = fontSize * 1.4;\n const padding = 40;\n const defaultWidth = Math.ceil(maxLineLength * charWidth) + padding;\n const defaultHeight = Math.ceil(lines.length * lineHeight) + padding;\n\n return svgToSixel(svg, {\n width: options.width || defaultWidth,\n height: options.height || defaultHeight,\n backgroundColor: options.backgroundColor || '#0a0a0a',\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-pages-command-harness.mjs","sources":["../../../../../packages/@xxmachina/components/src/lib/pages/command/harness/command-page.harness.ts","../../../../../packages/@xxmachina/components/src/lib/pages/command/harness/xxmachina-components-pages-command-harness.ts"],"sourcesContent":["import { ComponentHarness, HarnessPredicate, TestElement } from '@angular/cdk/testing';\nimport { FormTemplateHarness } from '@ng-atomic/components/templates/form/harness';\n\nexport class CommandPageHarness extends ComponentHarness {\n static hostSelector = 'pages-command';\n\n private _form = this.locatorFor(FormTemplateHarness);\n\n static with(options: Record<string, unknown> = {}): HarnessPredicate<CommandPageHarness> {\n return new HarnessPredicate(CommandPageHarness, options);\n }\n\n async getForm(): Promise<FormTemplateHarness> {\n return this._form();\n }\n\n async getFieldByLabel(label: string): Promise<TestElement | null> {\n const form = await this._form();\n return form.getFieldByLabel(label);\n }\n\n async clickExecuteButton(): Promise<void> {\n const form = await this._form();\n await form.clickActionButton();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;AAGM,MAAO,kBAAmB,SAAQ,gBAAgB,CAAA;AACtD,IAAA,OAAO,YAAY,GAAG,eAAe;AAE7B,IAAA,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC;AAEpD,IAAA,OAAO,IAAI,CAAC,OAAA,GAAmC,EAAE,EAAA;AAC/C,QAAA,OAAO,IAAI,gBAAgB,CAAC,kBAAkB,EAAE,OAAO,CAAC;IAC1D;AAEA,IAAA,MAAM,OAAO,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,KAAK,EAAE;IACrB;IAEA,MAAM,eAAe,CAAC,KAAa,EAAA;AACjC,QAAA,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE;AAC/B,QAAA,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;IACpC;AAEA,IAAA,MAAM,kBAAkB,GAAA;AACtB,QAAA,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE;AAC/B,QAAA,MAAM,IAAI,CAAC,iBAAiB,EAAE;IAChC;;;ACxBF;;AAEG;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"xxmachina-components-pages-command.mjs","sources":["../../../../../packages/@xxmachina/components/src/lib/pages/command/command.page.ts","../../../../../packages/@xxmachina/components/src/lib/pages/command/xxmachina-components-pages-command.ts"],"sourcesContent":["import { Component, computed, Directive, effect, inject, input, Provider, untracked } from '@angular/core';\nimport { AbstractControl, FormArray, FormControl, FormGroup } from '@angular/forms';\nimport { RouterOutletFrame, RouterOutletFrameStore } from '@ng-atomic/components/frames/router-outlet';\nimport { CommandService } from '@xxmachina/components/services/command';\nimport { _computed, Action, applyToInput, computeFake, Effect, InjectableComponent, NgAtomicComponent, provideEffect, TokenizedType } from '@ng-atomic/core';\nimport { ActivatedRoute, ParamMap, Params } from '@angular/router';\nimport { FormTemplate, FormTemplateStore } from '@ng-atomic/components/templates/form';\nimport { getInvalid$, getValue$, injectHasNext, injectRouteData, injectRouteData$, injectRouteParam, injectRouteParam$, injectRouteParamMap, injectRouteSkip, injectUnflattenRouteParam$ } from '@ng-atomic/common/utils';\nimport { map, tap, filter, combineLatest, shareReplay, of } from 'rxjs';\nimport { FormFieldMap } from '@ng-atomic/common/pipes/smart-field';\nimport { AppService } from '@ng-atomic/common/services/app';\nimport { injectNavStartActionsV2, makeDI } from '@ng-atomic/common/services/ui';\nimport { Query, QueryHelper } from '@xxmachina/common/domain/models';\nimport { Command } from '@xxmachina/common/domain/models';\nimport { injectUnflattenRouteParam } from '@ng-atomic/common/utils';\nimport { merge, pick } from 'lodash-es';\nimport { injectOne$ } from '@ng-atomic/common/stores/entities';\nimport { MachinaDevService } from '@xxmachina/components/services/debug';\nimport { EndpointHelper } from '@xxmachina/common/domain/models';\nimport { derivedAsync } from 'ngxtension/derived-async';\nimport { CommandFeature } from '@xxmachina/components/features/command';\nimport { TabsFrame } from '@ng-atomic/components/frames/tabs';\nimport { QueryFormGroup } from '@xxmachina/components/groups/query-form';\nimport { CommandFormGroup } from '@xxmachina/components/groups/command-form';\nimport { QueryFeature, QueryGraphqlSchemaFeature } from '@xxmachina/components/features/query';\nimport { CloudStorageService } from '@nx-ddd/common/infrastructure/externals/cloud-storage';\nimport { injectErrorMessageResolver } from '@ng-atomic/common/pipes/error';\n\nenum ActionId {\n EXECUTE_COMMAND = 'execute-command',\n FILE_SELECTED = 'file-selected',\n}\n\nfunction buildFormData(form: FormGroup | FormArray, formData: FormData = new FormData(), parentKey = ''): FormData {\n Object.keys(form.controls).forEach(key => {\n const control = form.get(key);\n const formKey = parentKey ? `${parentKey}.${key}` : key;\n\n if (control instanceof FormGroup || control instanceof FormArray) {\n \n buildFormData(control, formData, formKey);\n } else if (control instanceof FormControl) {\n \n const value = control.value;\n if (value !== null && value !== undefined) {\n formData.append(formKey, value);\n }\n }\n });\n\n return formData;\n}\n\nfunction buildData(form: AbstractControl, contentType: string) {\n if (contentType === 'multipart/form-data') {\n return buildFormData(form as FormGroup);\n } else {\n return form.getRawValue();\n }\n}\n\nexport function buildActions(hasPermission: boolean, invalid: boolean): Action[] {\n return hasPermission\n ? [{ id: ActionId.EXECUTE_COMMAND, name: '実行', disabled: invalid }]\n : [{ id: ActionId.EXECUTE_COMMAND, name: '実行権限がありません', disabled: true }]\n}\n\n@TokenizedType()\n@Directive({ standalone: true })\nexport class CommandPageStore extends InjectableComponent {\n static readonly ActionId = ActionId;\n static readonly DI = makeDI(CommandPageStore, () => {\n const dev = inject(MachinaDevService);\n return () => ({\n title: '' as string,\n style: <any>{\n width: 'var(--page-width-lv1)',\n },\n baseUrls: [] as string[],\n command: {\n id: '1',\n webApiRequest: {\n serverUrl: null,\n apiJsonUrl: null,\n path: '/users',\n method: 'GET',\n bodySchema: null,\n },\n } as unknown as Command,\n navEndActions: <Action[]>[],\n additionalFormFieldMap: <FormFieldMap>(dev.isDevMode() ? {} : {\n 'id': { type: 'hidden' },\n '__typename': { type: 'hidden' },\n 'kind': { type: 'hidden' },\n }),\n });\n }, ['@xxmachina/components', 'pages', 'command']);\n static readonly Config = CommandPageStore.DI.Config;\n static readonly Initializer = CommandPageStore.DI.Initializer;\n\n static provideDefault(): Provider[] {\n return [\n CommandPageStore.DI.provideConfig(),\n CommandPageStore.provideDefaultInitializer(),\n CommandPageStore.provideDefaultEffects(),\n ];\n }\n\n static provideCustom(): Provider[] {\n return [\n CommandPageStore.provideDefault(),\n CommandPageStore.provideCommandIdFromRouteDataInitializer(),\n CommandPageStore.provideSetupInitializeQueryInitializer(),\n ];\n }\n\n static provideDefaultV2(): Provider[] {\n return [\n CommandPageStore.Config.provide(),\n CommandPageStore.provideDefaultInitializer(),\n CommandPageStore.provideDefaultEffects(),\n CommandPageStore.provideCommandIdFromRouteDataInitializer(),\n CommandPageStore.provideSetupInitializeQueryInitializer(),\n CommandPageStore.provideInitialFormValueFromQueryResult(),\n CommandPageStore.provideQueryFromRouteData(),\n ];\n }\n\n static provideDefaultInitializer(): Provider[] {\n return [\n CommandPageStore.providePatchFormFromRouteParamInitializer(),\n CommandPageStore.providePatchCommandFormValueFromCommandInitializer(),\n CommandPageStore.provideInitialFormValueFromQueryResult()\n ];\n }\n\n static provideDefaultEffects(): Provider[] {\n return [\n CommandPageStore.provideExecuteCommandEffect(),\n CommandPageStore.provideBackEffect(),\n QueryFeature.provideDefaultEffects(),\n ];\n }\n\n static provideAutoTogglePageInitializer(): Provider[] {\n return [\n provideEffect(RouterOutletFrameStore.ActionId.DEACTIVATED, () => {\n const store = inject(CommandPageStore);\n const style = computeFake(store.style());\n return () => applyToInput(store, 'style', { ...style, paddingLeft: `0` });\n }),\n CommandPageStore.DI.provideInitializer((store) => {\n const hasNext = injectHasNext();\n const style = computeFake(store.style());\n effect(() => {\n if (hasNext() && style.width !== 'var(--page-width-lv1)') {\n setTimeout(() => {\n applyToInput(store, 'style', { ...style, paddingLeft: 'var(--page-width-lv1)' });\n }, 300);\n }\n });\n }),\n ];\n }\n\n static provideCommandFromRouteParamInitializer(paramName = 'commandId'): Provider {\n return CommandPageStore.Initializer.provide((store) => {\n const commandId = injectRouteParam(paramName);\n const service = inject(CommandService);\n effect(() => applyToInput(store, 'command', service.getCommand(commandId()!) as never));\n });\n }\n\n static provideCommandIdFromRouteDataInitializer(): Provider {\n return CommandPageStore.Initializer.provide((store) => {\n const commandId = injectRouteData<string>('commandId');\n const service = inject(CommandService);\n effect(() => applyToInput(store, 'command', service.getCommand(commandId()) as never));\n });\n }\n\n static providePatchFormFromRouteParamInitializer() {\n return [\n CommandPageStore.Initializer.provide(store => {\n effect(() => store.form().patchValue(store.data()));\n }),\n ]\n }\n\n static providePatchCommandFormValueFromCommandInitializer() {\n return [\n CommandPageStore.Initializer.provide(store => {\n effect(() => {\n if (!store.command()) return;\n store.feature.commandForm().patchValue({ ...store.command() });\n });\n })\n ];\n }\n\n static provideQueryIdFromRouteParam(key = 'queryId'): Provider {\n return CommandPageStore.Initializer.provide((store) => {\n const queryId$ = injectRouteParam$(key);\n const params$ = injectUnflattenRouteParam$('data');\n const query$ = injectOne$(Query, { id: queryId$ });\n const setupQuery = derivedAsync(() => combineLatest({\n query: query$,\n params: params$,\n }).pipe(\n filter(({ query, params }) => !!query && !!params),\n map(({ query, params }) => QueryHelper.setup(query, params)),\n tap((query) => console.debug('[CommandPage] query:', query)),\n shareReplay(1),\n ));\n effect(() => {\n console.debug('[CommandPage] setupQuery:', setupQuery());\n store.queryFeature.form.patchValue(setupQuery() as never);\n });\n });\n }\n\n static provideQueryFromRouteData(key = 'query'): Provider {\n return CommandPageStore.Initializer.provide((store) => {\n const params$ = injectUnflattenRouteParam$('data');\n const query$ = injectRouteData$<Query>(key);\n const setupQuery = derivedAsync(() => combineLatest({\n query: query$,\n params: params$,\n }).pipe(\n filter(({ query, params }) => !!query),\n map(({ query, params }) => QueryHelper.setup(query, params)),\n shareReplay(1),\n ));\n effect(() => { store.queryFeature.form.patchValue(setupQuery() as never); });\n });\n }\n\n static provideRouteParamsToDataInitializer(projector: (params: Params) => Record<string, any>): Provider[] {\n return CommandPageStore.Initializer.provide((store) => {\n const route = inject(ActivatedRoute);\n const data = derivedAsync(() => route.params.pipe(map(params => projector(params))));\n effect(() => applyToInput(store, 'data', data()));\n });\n }\n\n static provideRouteParamMapToDataInitializer(projector: (params: ParamMap) => Record<string, any>): Provider[] {\n return CommandPageStore.Initializer.provide((store) => {\n const paramMap = injectRouteParamMap({merge: true});\n const data = computed(() => projector(paramMap()));\n effect(() => applyToInput(store, 'data', data()));\n });\n }\n\n static provideSetupInitializeQueryInitializer(): Provider {\n return CommandPageStore.Initializer.provide((store) => {\n const initializeQuery = derivedAsync(() => combineLatest({\n initializeQuery: of(store.initializeQuery()),\n data: of(store.data())\n }).pipe(\n filter(({ initializeQuery, data }) => !!initializeQuery && !!data),\n map(({ initializeQuery, data }) => QueryHelper.setup(initializeQuery, data)),\n filter((initializeQuery) => !!initializeQuery),\n shareReplay(1),\n ));\n \n effect(() => store.queryFeature.form.patchValue(initializeQuery() as never));\n });\n }\n\n static provideInitialFormValueFromQueryResult(): Provider {\n return CommandPageStore.Initializer.provide((store) => {\n effect(() => store.form().patchValue(store.queryFeature.result() as never));\n store.queryFeature.refresh();\n });\n }\n\n static provideExecuteCommandEffect(): Provider {\n return provideEffect(ActionId.EXECUTE_COMMAND, () => {\n const store = inject(CommandPageStore);\n const app = inject(AppService);\n const paramKeys = computed(() => EndpointHelper.extract(store.feature.path()!));\n const resolvedParams = computed(() => pick(store.data(), paramKeys()));\n\n return () => {\n const resolvedEndpoint = EndpointHelper.resolve(store.feature.path()!, resolvedParams());\n const data = buildData(store.form(), store.command()?.webApiRequest?.contentType);\n const command = merge(\n store.command(),\n store.feature.commandForm().getRawValue(),\n { webApiRequest: { path: resolvedEndpoint } },\n );\n app.loading.await(() => {\n return store.feature.execute(command, data).then(() => {\n app.snackBar.open('成功しました。');\n \n }).catch((error) => {\n console.error(error);\n app.snackBar.openError(error);\n });\n });\n }\n });\n }\n\n static provideBackEffect(): Provider {\n return provideEffect(FormTemplateStore.ActionId.BACK, () => {\n return () => history.back();\n });\n }\n\n static provideFileSelectedEffect(): Provider {\n return provideEffect(CommandPageStore.ActionId.FILE_SELECTED, () => {\n const store = inject(CommandPageStore);\n return (payload) => {\n store.form().patchValue({ file: payload.files?.[0] })\n }\n });\n }\n\n static provideDebugFormInitializer(): Provider {\n return CommandPageStore.Initializer.provide(() => {\n const store = inject(CommandPageStore);\n \n \n const getInvalidControls = (formGroup: any, path = '') => {\n let invalidControls: any[] = [];\n \n Object.keys(formGroup.controls).forEach(key => {\n const control = formGroup.controls[key];\n const currentPath = path ? `${path}.${key}` : key;\n \n \n if (control.invalid) {\n invalidControls.push({\n path: currentPath,\n errors: control.errors,\n value: control.value,\n status: control.status,\n valid: control.valid,\n invalid: control.invalid,\n dirty: control.dirty,\n touched: control.touched\n });\n }\n \n \n if (control.controls) {\n invalidControls = invalidControls.concat(getInvalidControls(control, currentPath));\n }\n });\n \n return invalidControls;\n };\n\n const formValue_ = derivedAsync(() => getValue$(store.form()));\n \n effect(() => {\n const formValue = formValue_();\n const form = untracked(() => store.form());\n console.log('[CommandPage] Form value changed:', formValue);\n console.log('[CommandPage] CommandForm valid:', form?.valid);\n console.log('[CommandPage] CommandForm status:', form?.status);\n if (form) {\n const invalidControls = getInvalidControls(form);\n const invalidPaths = invalidControls.map(control => control.path);\n console.log(`[CommandPage] Found ${invalidControls.length} INVALID controls:`);\n console.log('[CommandPage] INVALID PATHS:', invalidPaths);\n }\n });\n });\n }\n\n static provideSelectedFileUploadEffect(\n callbackFactory: () => (result: {file: File, path: string, url: string}) => void | Promise<void>,\n {\n validator = () => null,\n getPath,\n }: {\n validator?: (file: File) => {type: boolean, size: boolean} | null,\n getPath: () => string,\n }\n ): Provider {\n return provideEffect(CommandPageStore.ActionId.FILE_SELECTED, () => {\n const storage = inject(CloudStorageService);\n const app = inject(AppService);\n const callback = callbackFactory();\n const errorMessageResolver = injectErrorMessageResolver();\n \n return (payload: { scope: string, files: File[]}) => {\n const file = payload.files?.[0];\n const errors = validator(file);\n if (errors && Object.keys(errors).length > 0) {\n app.snackBar.open(errorMessageResolver(errors));\n return;\n }\n return app.loading.await(() => {\n const path = getPath();\n return storage.upload(path, file).then(() => {\n app.snackBar.open('ファイルをアップロードしました');\n return storage.getDownloadUrl(path).then((imageUrl) => {\n return callback({file, path, url: imageUrl});\n });\n }).catch((error) => {\n console.error(error);\n app.snackBar.open('ファイルのアップロードに失敗しました');\n });\n });\n }\n });\n }\n\n readonly feature = inject(CommandFeature);\n readonly config = CommandPageStore.Config.inject();\n readonly queryFeature = inject(QueryFeature);\n readonly style = input(_computed(() => this.config().style));\n readonly #navStartActions = injectNavStartActionsV2();\n readonly navStartActions = input(_computed(() => this.#navStartActions()));\n readonly navEndActions = input(_computed(() => this.config().navEndActions));\n readonly command = input(_computed(() => this.config().command));\n readonly form = input(_computed(() => this.feature.form()));\n readonly extractedFormFieldMap = input(_computed(() => this.feature.extractedFormFieldMap()));\n readonly additionalFormFieldMap = input(_computed(() => this.config().additionalFormFieldMap));\n readonly formFieldMap = input(_computed<FormFieldMap>(() => ({\n ...this.extractedFormFieldMap(),\n ...this.additionalFormFieldMap()\n })));\n readonly formFieldKeys = input<string[]>(_computed(() => []));\n readonly formFlatExcludes = input<string[]>(_computed(() => []));\n protected readonly _initializeQuery = injectRouteData<Query>('query');\n readonly initializeQuery = input(_computed(() => this._initializeQuery()));\n protected readonly _data = injectUnflattenRouteParam('data');\n readonly data = input(_computed(() => this._data()));\n protected readonly formInvalid = derivedAsync(() => getInvalid$(this.form()));\n readonly title = input(_computed(() => (this.config() as any).title || this.feature.title()));\n readonly #actions = derivedAsync(() => buildActions(this.feature.hasPermission(this.command()), this.formInvalid()!));\n readonly actions = input(_computed(() => this.#actions()));\n readonly skip = injectRouteSkip();\n\n constructor() {\n super();\n CommandPageStore.Initializer.initializeStore(this);\n }\n}\n\n@Component({\n selector: 'pages-command',\n imports: [\n RouterOutletFrame,\n FormTemplate,\n TabsFrame,\n CommandFormGroup,\n QueryFormGroup\n ],\n providers: [\n CommandFeature,\n QueryFeature,\n QueryGraphqlSchemaFeature\n ],\n template: `\n <frames-router-outlet [skip]=\"store.skip()\" (action)=\"dispatch($event)\">\n <templates-form\n [form]=\"store.form()\"\n [style]=\"store.style()\"\n [fieldMap]=\"store.formFieldMap()\"\n [fieldKeys]=\"store.formFieldKeys()\"\n [formFlatExcludes]=\"store.formFlatExcludes()\"\n [title]=\"store.title()\"\n [navStartActions]=\"store.navStartActions()\"\n [navEndActions]=\"store.navEndActions()\"\n [actions]=\"store.actions()\"\n (action)=\"dispatch($event)\"\n >\n <frames-tabs [labels]=\"['Command', 'InitializeQuery']\" dashboard>\n <ng-template #tab>\n <groups-command-form (action)=\"dispatch($event)\"/>\n </ng-template>\n <ng-template #tab>\n <groups-query-form\n [form]=\"store.queryFeature.form\"\n (action)=\"dispatch($event)\"\n />\n </ng-template>\n </frames-tabs> \n </templates-form>\n </frames-router-outlet>\n `,\n styleUrls: ['./command.page.scss'],\n hostDirectives: [\n {\n directive: CommandPageStore,\n inputs: [\n 'style',\n 'navEndActions',\n 'command',\n 'form',\n 'additionalFormFieldMap',\n 'formFieldMap',\n 'formFlatExcludes',\n 'initializeQuery',\n 'data',\n 'actions',\n ]\n },\n ]\n})\nexport class CommandPage extends NgAtomicComponent {\n protected readonly store = inject(CommandPageStore);\n readonly route = inject(ActivatedRoute);\n readonly app = inject(AppService);\n readonly parentRouterOutletFrame = inject(RouterOutletFrame, {optional: true});\n\n @Effect(FormTemplateStore.ActionId.FILE_SELECTED)\n protected onFileSelected(payload: any) {\n this.dispatch({ id: ActionId.FILE_SELECTED, payload });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BA,IAAK,QAGJ;AAHD,CAAA,UAAK,QAAQ,EAAA;AACX,IAAA,QAAA,CAAA,iBAAA,CAAA,GAAA,iBAAmC;AACnC,IAAA,QAAA,CAAA,eAAA,CAAA,GAAA,eAA+B;AACjC,CAAC,EAHI,QAAQ,KAAR,QAAQ,GAAA,EAAA,CAAA,CAAA;AAKb,SAAS,aAAa,CAAC,IAA2B,EAAE,QAAA,GAAqB,IAAI,QAAQ,EAAE,EAAE,SAAS,GAAG,EAAE,EAAA;AACrG,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,IAAG;QACvC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;AAC7B,QAAA,MAAM,OAAO,GAAG,SAAS,GAAG,CAAA,EAAG,SAAS,CAAA,CAAA,EAAI,GAAG,CAAA,CAAE,GAAG,GAAG;QAEvD,IAAI,OAAO,YAAY,SAAS,IAAI,OAAO,YAAY,SAAS,EAAE;AAEhE,YAAA,aAAa,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC;QAC3C;AAAO,aAAA,IAAI,OAAO,YAAY,WAAW,EAAE;AAEzC,YAAA,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK;YAC3B,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE;AACzC,gBAAA,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC;YACjC;QACF;AACF,IAAA,CAAC,CAAC;AAEF,IAAA,OAAO,QAAQ;AACjB;AAEA,SAAS,SAAS,CAAC,IAAqB,EAAE,WAAmB,EAAA;AAC3D,IAAA,IAAI,WAAW,KAAK,qBAAqB,EAAE;AACzC,QAAA,OAAO,aAAa,CAAC,IAAiB,CAAC;IACzC;SAAO;AACL,QAAA,OAAO,IAAI,CAAC,WAAW,EAAE;IAC3B;AACF;AAEM,SAAU,YAAY,CAAC,aAAsB,EAAE,OAAgB,EAAA;AACnE,IAAA,OAAO;AACL,UAAE,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,eAAe,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE;AAClE,UAAE,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,eAAe,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC5E;AAIO,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,mBAAmB,CAAA;;AACvD,IAAA,OAAgB,QAAQ,GAAG,QAAQ;IACnC,OAAgB,EAAE,GAAG,MAAM,CAAC,kBAAgB,EAAE,MAAK;AACjD,QAAA,MAAM,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC;QACrC,OAAO,OAAO;AACZ,YAAA,KAAK,EAAE,EAAY;AACnB,YAAA,KAAK,EAAO;AACV,gBAAA,KAAK,EAAE,uBAAuB;AAC/B,aAAA;AACD,YAAA,QAAQ,EAAE,EAAc;AACxB,YAAA,OAAO,EAAE;AACP,gBAAA,EAAE,EAAE,GAAG;AACP,gBAAA,aAAa,EAAE;AACb,oBAAA,SAAS,EAAE,IAAI;AACf,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE,QAAQ;AACd,oBAAA,MAAM,EAAE,KAAK;AACb,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA;AACoB,aAAA;AACvB,YAAA,aAAa,EAAY,EAAE;AAC3B,YAAA,sBAAsB,GAAiB,GAAG,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG;AAC5D,gBAAA,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;AACxB,gBAAA,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;AAChC,gBAAA,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;aAC3B,CAAC;AACH,SAAA,CAAC;IACJ,CAAC,EAAE,CAAC,uBAAuB,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IACjD,OAAgB,MAAM,GAAG,kBAAgB,CAAC,EAAE,CAAC,MAAM;IACnD,OAAgB,WAAW,GAAG,kBAAgB,CAAC,EAAE,CAAC,WAAW;AAE7D,IAAA,OAAO,cAAc,GAAA;QACnB,OAAO;AACL,YAAA,kBAAgB,CAAC,EAAE,CAAC,aAAa,EAAE;YACnC,kBAAgB,CAAC,yBAAyB,EAAE;YAC5C,kBAAgB,CAAC,qBAAqB,EAAE;SACzC;IACH;AAEA,IAAA,OAAO,aAAa,GAAA;QAClB,OAAO;YACL,kBAAgB,CAAC,cAAc,EAAE;YACjC,kBAAgB,CAAC,wCAAwC,EAAE;YAC3D,kBAAgB,CAAC,sCAAsC,EAAE;SAC1D;IACH;AAEA,IAAA,OAAO,gBAAgB,GAAA;QACrB,OAAO;AACL,YAAA,kBAAgB,CAAC,MAAM,CAAC,OAAO,EAAE;YACjC,kBAAgB,CAAC,yBAAyB,EAAE;YAC5C,kBAAgB,CAAC,qBAAqB,EAAE;YACxC,kBAAgB,CAAC,wCAAwC,EAAE;YAC3D,kBAAgB,CAAC,sCAAsC,EAAE;YACzD,kBAAgB,CAAC,sCAAsC,EAAE;YACzD,kBAAgB,CAAC,yBAAyB,EAAE;SAC7C;IACH;AAEA,IAAA,OAAO,yBAAyB,GAAA;QAC9B,OAAO;YACL,kBAAgB,CAAC,yCAAyC,EAAE;YAC5D,kBAAgB,CAAC,kDAAkD,EAAE;YACrE,kBAAgB,CAAC,sCAAsC;SACxD;IACH;AAEA,IAAA,OAAO,qBAAqB,GAAA;QAC1B,OAAO;YACL,kBAAgB,CAAC,2BAA2B,EAAE;YAC9C,kBAAgB,CAAC,iBAAiB,EAAE;YACpC,YAAY,CAAC,qBAAqB,EAAE;SACrC;IACH;AAEA,IAAA,OAAO,gCAAgC,GAAA;QACrC,OAAO;YACL,aAAa,CAAC,sBAAsB,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAK;AAC9D,gBAAA,MAAM,KAAK,GAAG,MAAM,CAAC,kBAAgB,CAAC;gBACtC,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;AACxC,gBAAA,OAAO,MAAM,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,GAAG,KAAK,EAAE,WAAW,EAAE,CAAA,CAAA,CAAG,EAAE,CAAC;AAC3E,YAAA,CAAC,CAAC;YACF,kBAAgB,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,KAAK,KAAI;AAC/C,gBAAA,MAAM,OAAO,GAAG,aAAa,EAAE;gBAC/B,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;gBACxC,MAAM,CAAC,MAAK;oBACV,IAAI,OAAO,EAAE,IAAI,KAAK,CAAC,KAAK,KAAK,uBAAuB,EAAE;wBACxD,UAAU,CAAC,MAAK;AACd,4BAAA,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,GAAG,KAAK,EAAE,WAAW,EAAE,uBAAuB,EAAE,CAAC;wBAClF,CAAC,EAAE,GAAG,CAAC;oBACT;AACF,gBAAA,CAAC,CAAC;AACJ,YAAA,CAAC,CAAC;SACH;IACH;AAEA,IAAA,OAAO,uCAAuC,CAAC,SAAS,GAAG,WAAW,EAAA;QACpE,OAAO,kBAAgB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;AACpD,YAAA,MAAM,SAAS,GAAG,gBAAgB,CAAC,SAAS,CAAC;AAC7C,YAAA,MAAM,OAAO,GAAG,MAAM,CAAC,cAAc,CAAC;AACtC,YAAA,MAAM,CAAC,MAAM,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC,SAAS,EAAG,CAAU,CAAC,CAAC;AACzF,QAAA,CAAC,CAAC;IACJ;AAEA,IAAA,OAAO,wCAAwC,GAAA;QAC7C,OAAO,kBAAgB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;AACpD,YAAA,MAAM,SAAS,GAAG,eAAe,CAAS,WAAW,CAAC;AACtD,YAAA,MAAM,OAAO,GAAG,MAAM,CAAC,cAAc,CAAC;AACtC,YAAA,MAAM,CAAC,MAAM,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC,SAAS,EAAE,CAAU,CAAC,CAAC;AACxF,QAAA,CAAC,CAAC;IACJ;AAEA,IAAA,OAAO,yCAAyC,GAAA;QAC9C,OAAO;AACL,YAAA,kBAAgB,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,IAAG;AAC3C,gBAAA,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;AACrD,YAAA,CAAC,CAAC;SACH;IACH;AAEA,IAAA,OAAO,kDAAkD,GAAA;QACvD,OAAO;AACL,YAAA,kBAAgB,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,IAAG;gBAC3C,MAAM,CAAC,MAAK;AACV,oBAAA,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;wBAAE;AACtB,oBAAA,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;AAChE,gBAAA,CAAC,CAAC;AACJ,YAAA,CAAC;SACF;IACH;AAEA,IAAA,OAAO,4BAA4B,CAAC,GAAG,GAAG,SAAS,EAAA;QACjD,OAAO,kBAAgB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;AACpD,YAAA,MAAM,QAAQ,GAAG,iBAAiB,CAAC,GAAG,CAAC;AACvC,YAAA,MAAM,OAAO,GAAG,0BAA0B,CAAC,MAAM,CAAC;AAClD,YAAA,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC;YAClD,MAAM,UAAU,GAAG,YAAY,CAAC,MAAM,aAAa,CAAC;AAClD,gBAAA,KAAK,EAAE,MAAM;AACb,gBAAA,MAAM,EAAE,OAAO;AAChB,aAAA,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC,EAClD,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,EAC5D,GAAG,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC,EAC5D,WAAW,CAAC,CAAC,CAAC,CACf,CAAC;YACF,MAAM,CAAC,MAAK;gBACV,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,UAAU,EAAE,CAAC;gBACxD,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,EAAW,CAAC;AAC3D,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;IACJ;AAEA,IAAA,OAAO,yBAAyB,CAAC,GAAG,GAAG,OAAO,EAAA;QAC5C,OAAO,kBAAgB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;AACpD,YAAA,MAAM,OAAO,GAAG,0BAA0B,CAAC,MAAM,CAAC;AAClD,YAAA,MAAM,MAAM,GAAG,gBAAgB,CAAQ,GAAG,CAAC;YAC3C,MAAM,UAAU,GAAG,YAAY,CAAC,MAAM,aAAa,CAAC;AAClD,gBAAA,KAAK,EAAE,MAAM;AACb,gBAAA,MAAM,EAAE,OAAO;aAChB,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,EACtC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,EAC5D,WAAW,CAAC,CAAC,CAAC,CACf,CAAC;AACF,YAAA,MAAM,CAAC,QAAQ,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,EAAW,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9E,QAAA,CAAC,CAAC;IACJ;IAEA,OAAO,mCAAmC,CAAC,SAAkD,EAAA;QAC3F,OAAO,kBAAgB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;AACpD,YAAA,MAAM,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC;YACpC,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACpF,YAAA,MAAM,CAAC,MAAM,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AACnD,QAAA,CAAC,CAAC;IACJ;IAEA,OAAO,qCAAqC,CAAC,SAAoD,EAAA;QAC/F,OAAO,kBAAgB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;YACpD,MAAM,QAAQ,GAAG,mBAAmB,CAAC,EAAC,KAAK,EAAE,IAAI,EAAC,CAAC;AACnD,YAAA,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,SAAS,CAAC,QAAQ,EAAE,CAAC,gDAAC;AAClD,YAAA,MAAM,CAAC,MAAM,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AACnD,QAAA,CAAC,CAAC;IACJ;AAEA,IAAA,OAAO,sCAAsC,GAAA;QAC3C,OAAO,kBAAgB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;YACpD,MAAM,eAAe,GAAG,YAAY,CAAC,MAAM,aAAa,CAAC;AACvD,gBAAA,eAAe,EAAE,EAAE,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;AAC5C,gBAAA,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE;AACtB,aAAA,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,eAAe,IAAI,CAAC,CAAC,IAAI,CAAC,EAClE,GAAG,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,KAAK,WAAW,CAAC,KAAK,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC,EAC5E,MAAM,CAAC,CAAC,eAAe,KAAK,CAAC,CAAC,eAAe,CAAC,EAC9C,WAAW,CAAC,CAAC,CAAC,CACf,CAAC;AAEF,YAAA,MAAM,CAAC,MAAM,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,EAAW,CAAC,CAAC;AAC9E,QAAA,CAAC,CAAC;IACJ;AAEA,IAAA,OAAO,sCAAsC,GAAA;QAC3C,OAAO,kBAAgB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;AACpD,YAAA,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,EAAW,CAAC,CAAC;AAC3E,YAAA,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE;AAC9B,QAAA,CAAC,CAAC;IACJ;AAEA,IAAA,OAAO,2BAA2B,GAAA;AAChC,QAAA,OAAO,aAAa,CAAC,QAAQ,CAAC,eAAe,EAAE,MAAK;AAClD,YAAA,MAAM,KAAK,GAAG,MAAM,CAAC,kBAAgB,CAAC;AACtC,YAAA,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC;AAC9B,YAAA,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAG,CAAC,qDAAC;AAC/E,YAAA,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,0DAAC;AAEtE,YAAA,OAAO,MAAK;AACV,gBAAA,MAAM,gBAAgB,GAAG,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAG,EAAE,cAAc,EAAE,CAAC;AACxF,gBAAA,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,WAAW,CAAC;AACjF,gBAAA,MAAM,OAAO,GAAG,KAAK,CACnB,KAAK,CAAC,OAAO,EAAE,EACf,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,WAAW,EAAE,EACzC,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,CAC9C;AACD,gBAAA,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,MAAK;AACrB,oBAAA,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,MAAK;AACpD,wBAAA,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC;AAE9B,oBAAA,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,KAAI;AACjB,wBAAA,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;AACpB,wBAAA,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC;AAC/B,oBAAA,CAAC,CAAC;AACJ,gBAAA,CAAC,CAAC;AACJ,YAAA,CAAC;AACH,QAAA,CAAC,CAAC;IACJ;AAEA,IAAA,OAAO,iBAAiB,GAAA;QACtB,OAAO,aAAa,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAK;AACzD,YAAA,OAAO,MAAM,OAAO,CAAC,IAAI,EAAE;AAC7B,QAAA,CAAC,CAAC;IACJ;AAEA,IAAA,OAAO,yBAAyB,GAAA;QAC9B,OAAO,aAAa,CAAC,kBAAgB,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAK;AACjE,YAAA,MAAM,KAAK,GAAG,MAAM,CAAC,kBAAgB,CAAC;YACtC,OAAO,CAAC,OAAO,KAAI;AACjB,gBAAA,KAAK,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;AACvD,YAAA,CAAC;AACH,QAAA,CAAC,CAAC;IACJ;AAEA,IAAA,OAAO,2BAA2B,GAAA;AAChC,QAAA,OAAO,kBAAgB,CAAC,WAAW,CAAC,OAAO,CAAC,MAAK;AAC/C,YAAA,MAAM,KAAK,GAAG,MAAM,CAAC,kBAAgB,CAAC;YAGtC,MAAM,kBAAkB,GAAG,CAAC,SAAc,EAAE,IAAI,GAAG,EAAE,KAAI;gBACvD,IAAI,eAAe,GAAU,EAAE;AAE/B,gBAAA,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,IAAG;oBAC5C,MAAM,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC;AACvC,oBAAA,MAAM,WAAW,GAAG,IAAI,GAAG,CAAA,EAAG,IAAI,CAAA,CAAA,EAAI,GAAG,CAAA,CAAE,GAAG,GAAG;AAGjD,oBAAA,IAAI,OAAO,CAAC,OAAO,EAAE;wBACnB,eAAe,CAAC,IAAI,CAAC;AACnB,4BAAA,IAAI,EAAE,WAAW;4BACjB,MAAM,EAAE,OAAO,CAAC,MAAM;4BACtB,KAAK,EAAE,OAAO,CAAC,KAAK;4BACpB,MAAM,EAAE,OAAO,CAAC,MAAM;4BACtB,KAAK,EAAE,OAAO,CAAC,KAAK;4BACpB,OAAO,EAAE,OAAO,CAAC,OAAO;4BACxB,KAAK,EAAE,OAAO,CAAC,KAAK;4BACpB,OAAO,EAAE,OAAO,CAAC;AAClB,yBAAA,CAAC;oBACJ;AAGA,oBAAA,IAAI,OAAO,CAAC,QAAQ,EAAE;AACpB,wBAAA,eAAe,GAAG,eAAe,CAAC,MAAM,CAAC,kBAAkB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;oBACpF;AACF,gBAAA,CAAC,CAAC;AAEF,gBAAA,OAAO,eAAe;AACxB,YAAA,CAAC;AAED,YAAA,MAAM,UAAU,GAAG,YAAY,CAAC,MAAM,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;YAE9D,MAAM,CAAC,MAAK;AACV,gBAAA,MAAM,SAAS,GAAG,UAAU,EAAE;AAC9B,gBAAA,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;AAC1C,gBAAA,OAAO,CAAC,GAAG,CAAC,mCAAmC,EAAE,SAAS,CAAC;gBAC3D,OAAO,CAAC,GAAG,CAAC,kCAAkC,EAAE,IAAI,EAAE,KAAK,CAAC;gBAC5D,OAAO,CAAC,GAAG,CAAC,mCAAmC,EAAE,IAAI,EAAE,MAAM,CAAC;gBAC9D,IAAI,IAAI,EAAE;AACR,oBAAA,MAAM,eAAe,GAAG,kBAAkB,CAAC,IAAI,CAAC;AAChD,oBAAA,MAAM,YAAY,GAAG,eAAe,CAAC,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;oBACjE,OAAO,CAAC,GAAG,CAAC,CAAA,oBAAA,EAAuB,eAAe,CAAC,MAAM,CAAA,kBAAA,CAAoB,CAAC;AAC9E,oBAAA,OAAO,CAAC,GAAG,CAAC,8BAA8B,EAAE,YAAY,CAAC;gBAC3D;AACF,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;IACJ;AAEA,IAAA,OAAO,+BAA+B,CACpC,eAAgG,EAChG,EACE,SAAS,GAAG,MAAM,IAAI,EACtB,OAAO,GAIR,EAAA;QAED,OAAO,aAAa,CAAC,kBAAgB,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAK;AACjE,YAAA,MAAM,OAAO,GAAG,MAAM,CAAC,mBAAmB,CAAC;AAC3C,YAAA,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC;AAC9B,YAAA,MAAM,QAAQ,GAAG,eAAe,EAAE;AAClC,YAAA,MAAM,oBAAoB,GAAG,0BAA0B,EAAE;YAEzD,OAAO,CAAC,OAAwC,KAAI;gBAClD,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC;AAC/B,gBAAA,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC;AAC9B,gBAAA,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC5C,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;oBAC/C;gBACF;AACA,gBAAA,OAAO,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,MAAK;AAC5B,oBAAA,MAAM,IAAI,GAAG,OAAO,EAAE;AACtB,oBAAA,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,MAAK;AAC1C,wBAAA,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC;AACpC,wBAAA,OAAO,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAI;AACpD,4BAAA,OAAO,QAAQ,CAAC,EAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAC,CAAC;AAC9C,wBAAA,CAAC,CAAC;AACJ,oBAAA,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,KAAI;AACjB,wBAAA,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;AACpB,wBAAA,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC;AACzC,oBAAA,CAAC,CAAC;AACJ,gBAAA,CAAC,CAAC;AACJ,YAAA,CAAC;AACH,QAAA,CAAC,CAAC;IACJ;AAES,IAAA,OAAO,GAAG,MAAM,CAAC,cAAc,CAAC;AAChC,IAAA,MAAM,GAAG,kBAAgB,CAAC,MAAM,CAAC,MAAM,EAAE;AACzC,IAAA,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;AACnC,IAAA,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,iDAAC;IACnD,gBAAgB,GAAG,uBAAuB,EAAE;AAC5C,IAAA,eAAe,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC,2DAAC;AACjE,IAAA,aAAa,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,aAAa,CAAC,yDAAC;AACnE,IAAA,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,mDAAC;AACvD,IAAA,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,gDAAC;AAClD,IAAA,qBAAqB,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,iEAAC;AACpF,IAAA,sBAAsB,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,sBAAsB,CAAC,kEAAC;IACrF,YAAY,GAAG,KAAK,CAAC,SAAS,CAAe,OAAO;QAC3D,GAAG,IAAI,CAAC,qBAAqB,EAAE;QAC/B,GAAG,IAAI,CAAC,sBAAsB;KAC/B,CAAC,CAAC,wDAAC;IACK,aAAa,GAAG,KAAK,CAAW,SAAS,CAAC,MAAM,EAAE,CAAC,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,eAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;IACpD,gBAAgB,GAAG,KAAK,CAAW,SAAS,CAAC,MAAM,EAAE,CAAC,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;AAC7C,IAAA,gBAAgB,GAAG,eAAe,CAAQ,OAAO,CAAC;AAC5D,IAAA,eAAe,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC,2DAAC;AACvD,IAAA,KAAK,GAAG,yBAAyB,CAAC,MAAM,CAAC;AACnD,IAAA,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,gDAAC;AACjC,IAAA,WAAW,GAAG,YAAY,CAAC,MAAM,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IACpE,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,MAAO,IAAI,CAAC,MAAM,EAAU,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,OAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;IACpF,QAAQ,GAAG,YAAY,CAAC,MAAM,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,WAAW,EAAG,CAAC,CAAC;AAC5G,IAAA,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC,mDAAC;IACjD,IAAI,GAAG,eAAe,EAAE;AAEjC,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE;AACP,QAAA,kBAAgB,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC;IACpD;uGApXW,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,qBAAA,EAAA,EAAA,iBAAA,EAAA,uBAAA,EAAA,UAAA,EAAA,uBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,sBAAA,EAAA,EAAA,iBAAA,EAAA,wBAAA,EAAA,UAAA,EAAA,wBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;AAAhB,gBAAgB,GAAA,kBAAA,GAAA,UAAA,CAAA;AAF5B,IAAA,aAAa,EAAE;;AAEH,CAAA,EAAA,gBAAgB,CAqX5B;2FArXY,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAD5B,SAAS;mBAAC,EAAE,UAAU,EAAE,IAAI,EAAE;;AAqbzB,MAAO,WAAY,SAAQ,iBAAiB,CAAA;AAC7B,IAAA,KAAK,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAC1C,IAAA,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC;AAC9B,IAAA,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC;IACxB,uBAAuB,GAAG,MAAM,CAAC,iBAAiB,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC;AAGpE,IAAA,cAAc,CAAC,OAAY,EAAA;AACnC,QAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,aAAa,EAAE,OAAO,EAAE,CAAC;IACxD;uGATW,WAAW,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAX,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,WAAW,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,SAAA,EApDX;YACT,cAAc;YACd,YAAY;YACZ;AACD,SAAA,EAAA,eAAA,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EApYU,gBAAgB,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,eAAA,EAAA,eAAA,EAAA,SAAA,EAAA,SAAA,EAAA,MAAA,EAAA,MAAA,EAAA,wBAAA,EAAA,wBAAA,EAAA,cAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,MAAA,EAAA,SAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAqYjB;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BT,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,k4BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAtCC,iBAAiB,sFACjB,YAAY,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACZ,SAAS,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACT,gBAAgB,yFAChB,cAAc,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,YAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;AA6DN,UAAA,CAAA;AADT,IAAA,MAAM,CAAC,iBAAiB,CAAC,QAAQ,CAAC,aAAa,CAAC;;;;AAGhD,CAAA,EAAA,WAAA,CAAA,SAAA,EAAA,gBAAA,EAAA,IAAA,CAAA;2FATU,WAAW,EAAA,UAAA,EAAA,CAAA;kBA7DvB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,eAAe,EAAA,OAAA,EAChB;wBACP,iBAAiB;wBACjB,YAAY;wBACZ,SAAS;wBACT,gBAAgB;wBAChB;qBACD,EAAA,SAAA,EACU;wBACT,cAAc;wBACd,YAAY;wBACZ;qBACD,EAAA,QAAA,EACS;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BT,EAAA,cAAA,EAEe;AACd,wBAAA;AACE,4BAAA,SAAS,EAAE,gBAAgB;AAC3B,4BAAA,MAAM,EAAE;gCACN,OAAO;gCACP,eAAe;gCACf,SAAS;gCACT,MAAM;gCACN,wBAAwB;gCACxB,cAAc;gCACd,kBAAkB;gCAClB,iBAAiB;gCACjB,MAAM;gCACN,SAAS;AACV;AACF,yBAAA;AACF,qBAAA,EAAA,MAAA,EAAA,CAAA,k4BAAA,CAAA,EAAA;;;ACvfH;;AAEG;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"xxmachina-components-pages-query-v2.mjs","sources":["../../../../../packages/@xxmachina/components/src/lib/pages/query-v2/query-v2.page.store.ts","../../../../../packages/@xxmachina/components/src/lib/pages/query-v2/query-v2.page.ts","../../../../../packages/@xxmachina/components/src/lib/pages/query-v2/query-v2.page.html","../../../../../packages/@xxmachina/components/src/lib/pages/query-v2/xxmachina-components-pages-query-v2.ts"],"sourcesContent":["import { Directive, computed, effect, inject, input, signal, Provider } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { InjectableComponent, provideEffect } from '@ng-atomic/core';\nimport { Query } from '@xxmachina/common/domain/models';\nimport { QueryFeature } from '@xxmachina/components/features/query';\nimport { Action } from '@ng-atomic/core';\nimport { injectRouteData } from '@ng-atomic/common/utils';\nimport { map, startWith } from 'rxjs';\nimport { buildItemsMapFromResult } from '@xxmachina/components/pages/query';\nimport { FormBuilder } from '@angular/forms';\nimport { ListOrganism } from '@ng-atomic/components/organisms/list';\n\nexport type PresenterType = 'table' | 'list';\n\nexport enum ActionId {\n CLICK_ITEM = '[@xxmachina/components/pages/query-v2] Click Item',\n}\n\n@Directive({ standalone: true })\nexport class QueryPageV2Store extends InjectableComponent {\n static readonly ActionId = ActionId;\n\n \n static provideClickItemEffect<T>(handler: (item: T) => void): Provider[] {\n return [\n provideEffect(ListOrganism.ActionId.CLICK_ITEM, () => handler),\n ];\n }\n\n readonly query = input<Query>(injectRouteData<Query>('query')());\n readonly navEndActions = input<Action[]>(injectRouteData<Action[]>('navEndActions')());\n readonly columnNames = input<string[]>([]);\n readonly presenter = input<PresenterType>(injectRouteData<PresenterType>('presenter')() ?? 'table');\n\n readonly feature = inject(QueryFeature);\n private readonly fb = inject(FormBuilder);\n\n \n readonly queryPanelExpanded = signal(true);\n readonly transformerPanelExpanded = signal(false);\n readonly presenterPanelExpanded = signal(true);\n\n \n readonly openPanelCount = computed(() =>\n [this.queryPanelExpanded(), this.transformerPanelExpanded(), this.presenterPanelExpanded()]\n .filter(Boolean).length\n );\n\n \n toggleQueryPanel(expanded: boolean): void {\n if (!expanded && this.openPanelCount() <= 1) return;\n this.queryPanelExpanded.set(expanded);\n }\n\n toggleTransformerPanel(expanded: boolean): void {\n if (!expanded && this.openPanelCount() <= 1) return;\n this.transformerPanelExpanded.set(expanded);\n }\n\n togglePresenterPanel(expanded: boolean): void {\n if (!expanded && this.openPanelCount() <= 1) return;\n this.presenterPanelExpanded.set(expanded);\n }\n\n \n readonly title = computed(() => this.query()?.title || 'データ一覧');\n readonly queryType = computed(() => this.query()?.type || 'graphql');\n\n \n private readonly isLoading$ = this.feature.result$.pipe(\n map(() => false),\n startWith(true),\n );\n readonly isLoading = toSignal(this.isLoading$, { initialValue: true });\n\n \n readonly result = computed(() => this.feature.result() ?? {});\n\n readonly itemsMap = computed(() => buildItemsMapFromResult(this.result()));\n\n readonly items = computed(() => {\n const map = this.itemsMap();\n const keys = Object.keys(map);\n if (keys.length === 0) return [];\n return map[keys[0]]?.items ?? [];\n });\n\n readonly itemCount = computed(() => this.items().length);\n\n \n readonly displayedColumns = computed(() => {\n const items = this.items();\n if (items.length === 0) return [];\n const firstItem = items[0];\n if (!firstItem || typeof firstItem !== 'object') return [];\n return Object.keys(firstItem);\n });\n\n \n readonly tableForm = computed(() => {\n const columns = this.displayedColumns();\n const columnsMap: any = {};\n columns.forEach(col => {\n columnsMap[col] = { width: 150, hidden: false };\n });\n return this.fb.group({\n columns: this.fb.group({ map: this.fb.group(columnsMap) })\n });\n });\n\n \n readonly columnFormFieldMap = computed(() => {\n const columns = this.displayedColumns();\n const fieldMap: any = {};\n columns.forEach(col => {\n fieldMap[col] = { type: 'text', label: col };\n });\n return fieldMap;\n });\n\n constructor() {\n super();\n\n \n effect(() => {\n const query = this.query();\n if (query) {\n this.feature.form.patchValue({\n id: query.id,\n title: query.title,\n type: query.type,\n graphql: query.graphql as never,\n });\n this.feature.refresh();\n }\n });\n }\n\n refresh(): void {\n this.feature.refresh();\n }\n}\n","import { Component, ChangeDetectionStrategy, inject } from '@angular/core';\n\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { RouterOutletFrame } from '@ng-atomic/components/frames/router-outlet';\nimport { NavigatorOrganismStore } from '@ng-atomic/components/organisms/navigator';\nimport { NgAtomicComponent, Effect } from '@ng-atomic/core';\nimport { JsonPipe } from '@angular/common';\nimport { QueryFeature } from '@xxmachina/components/features/query';\nimport { QueryPageV2Store, ActionId } from './query-v2.page.store';\nimport { ListOrganism } from '@ng-atomic/components/organisms/list';\nimport { TableOrganism } from '@ng-atomic/components/organisms/table';\n\n@Component({\n selector: 'pages-query-v2',\n standalone: true,\n imports: [\n ReactiveFormsModule,\n RouterOutletFrame,\n MatExpansionModule,\n MatIconModule,\n MatProgressSpinnerModule,\n MatButtonModule,\n MatFormFieldModule,\n MatInputModule,\n NavigatorOrganismStore,\n TableOrganism,\n ListOrganism,\n JsonPipe\n],\n providers: [\n QueryFeature.provideDefault(),\n ],\n templateUrl: './query-v2.page.html',\n styleUrl: './query-v2.page.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [\n {\n directive: QueryPageV2Store,\n inputs: ['query', 'navEndActions', 'columnNames', 'presenter']\n }\n ]\n})\nexport class QueryPageV2 extends NgAtomicComponent {\n static readonly ActionId = ActionId;\n readonly store = inject(QueryPageV2Store);\n\n @Effect(ListOrganism.ActionId.CLICK_ITEM)\n protected onItemClick(item: any) {\n this.dispatch({ id: ActionId.CLICK_ITEM, payload: item });\n }\n}\n","<frames-router-outlet>\n <organisms-navigator\n injectable\n [endActions]=\"store.navEndActions()\"\n (action)=\"dispatch($event)\"\n >\n <span class=\"title\">{{ store.title() }}</span>\n </organisms-navigator>\n\n <div class=\"qtp-container\">\n <!-- Query Panel -->\n <mat-expansion-panel class=\"config-panel query-panel\"\n [expanded]=\"store.queryPanelExpanded()\"\n (opened)=\"store.toggleQueryPanel(true)\"\n (closed)=\"store.toggleQueryPanel(false)\">\n <mat-expansion-panel-header>\n <mat-panel-title>\n <mat-icon>code</mat-icon>\n <span>Query</span>\n </mat-panel-title>\n <mat-panel-description class=\"header-actions\">\n <span class=\"query-type\">{{ store.queryType() }}</span>\n <button mat-flat-button color=\"primary\" class=\"header-run-button\"\n (click)=\"store.refresh(); $event.stopPropagation()\">\n <mat-icon>play_arrow</mat-icon>Run\n </button>\n </mat-panel-description>\n </mat-expansion-panel-header>\n <div class=\"query-content\">\n <div class=\"query-form\" [formGroup]=\"store.feature.form\">\n <div class=\"form-row\" formGroupName=\"graphql\">\n <mat-form-field appearance=\"outline\" class=\"endpoint-field\">\n <mat-label>Endpoint</mat-label>\n <input matInput formControlName=\"endpoint\" placeholder=\"GraphQL Endpoint\">\n </mat-form-field>\n </div>\n <div class=\"form-row query-row\" formGroupName=\"graphql\">\n <mat-form-field appearance=\"outline\" class=\"query-field\">\n <mat-label>Query</mat-label>\n <textarea matInput formControlName=\"query\" rows=\"12\"\n placeholder=\"GraphQL Query or Subscription\"></textarea>\n </mat-form-field>\n </div>\n <div class=\"form-row variables-row\" formGroupName=\"graphql\">\n <mat-form-field appearance=\"outline\" class=\"variables-field\">\n <mat-label>Variables (JSON)</mat-label>\n <textarea matInput formControlName=\"variablesJson\" rows=\"3\"\n placeholder='{\"limit\": 25, \"offset\": 0}'></textarea>\n </mat-form-field>\n <mat-form-field appearance=\"outline\" class=\"headers-field\">\n <mat-label>Headers (JSON)</mat-label>\n <textarea matInput formControlName=\"headersJson\" rows=\"3\"\n placeholder='{\"content-type\": \"application/json\"}'></textarea>\n </mat-form-field>\n </div>\n </div>\n </div>\n </mat-expansion-panel>\n\n <!-- Transformer Panel -->\n <mat-expansion-panel class=\"config-panel transformer-panel\"\n [expanded]=\"store.transformerPanelExpanded()\"\n (opened)=\"store.toggleTransformerPanel(true)\"\n (closed)=\"store.toggleTransformerPanel(false)\">\n <mat-expansion-panel-header>\n <mat-panel-title>\n <mat-icon>transform</mat-icon>\n <span>Transformer</span>\n </mat-panel-title>\n <mat-panel-description class=\"header-actions\">\n <button mat-flat-button color=\"primary\" class=\"header-run-button\"\n (click)=\"store.refresh(); $event.stopPropagation()\">\n <mat-icon>play_arrow</mat-icon>Run\n </button>\n </mat-panel-description>\n </mat-expansion-panel-header>\n <div class=\"transformer-content\" [formGroup]=\"store.feature.form\">\n <div formGroupName=\"graphql\">\n <mat-form-field appearance=\"outline\" class=\"transformer-field\">\n <mat-label>Transformer (TypeScript)</mat-label>\n <textarea matInput formControlName=\"transformerTs\" rows=\"10\"\n placeholder=\"const transformer = (data) => data;\"></textarea>\n </mat-form-field>\n </div>\n </div>\n </mat-expansion-panel>\n\n <!-- Presenter Panel -->\n <mat-expansion-panel class=\"config-panel presenter-panel\"\n [expanded]=\"store.presenterPanelExpanded()\"\n (opened)=\"store.togglePresenterPanel(true)\"\n (closed)=\"store.togglePresenterPanel(false)\">\n <mat-expansion-panel-header>\n <mat-panel-title>\n <mat-icon>table_chart</mat-icon>\n <span>Presenter</span>\n </mat-panel-title>\n <mat-panel-description class=\"header-actions\">\n @if (store.isLoading()) {\n <mat-spinner diameter=\"16\"></mat-spinner>\n }\n <span>{{ store.itemCount() }} 件</span>\n </mat-panel-description>\n </mat-expansion-panel-header>\n <div class=\"presenter-content\">\n @switch (store.presenter()) {\n @case ('list') {\n <organisms-list\n [items]=\"store.items()\"\n (action)=\"dispatch($event)\"\n />\n }\n @default {\n <organisms-table\n [items]=\"store.items()\"\n [form]=\"store.tableForm()\"\n [columnFormFieldMap]=\"store.columnFormFieldMap()\"\n />\n }\n }\n </div>\n </mat-expansion-panel>\n </div>\n</frames-router-outlet>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.QueryPageV2Store"],"mappings":"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"}
|